Piedinatura, modalità e applicazioni dell'interfaccia periferica programmabile (PPI) Intel 8255

ott 24 2025
Fonte: DiGi-Electronics
Naviga: 1667

L'interfaccia periferica programmabile (PPI) Intel 8255 era un componente chiave per collegare i microprocessori con i dispositivi esterni durante gli albori dei sistemi digitali. Grazie alle versatili porte I/O, alle molteplici modalità operative e alla facilità di programmazione, l'8255 consentiva una comunicazione affidabile con display, sensori e controller, rendendolo utile sia nell'istruzione che nell'industria.

Figure 1. 8255 Microprocessor

Panoramica dell'interfaccia periferica programmabile (PPI) 8255

Il chip Intel 8255 PPI è un chip I/O ampiamente utilizzato progettato per collegare microprocessori con dispositivi esterni. Funge da ponte di comunicazione per periferiche come ADC, DAC, tastiere e display. Supportando sia l'I/O diretto che quello guidato da interrupt, offre flessibilità nella progettazione del sistema. Con tre porte bidirezionali a 8 bit (A, B, C), offre 24 linee I/O configurabili. La sua economicità e la compatibilità con processori come l'Intel 8085/8086 lo hanno reso un punto fermo nei primi sistemi informatici, nei kit di formazione e nei controller industriali.

Caratteristiche del chip 8255 PPI

• Interfaccia programmabile: configurabile tramite istruzioni software per adattarsi a dispositivi come display, sensori e moduli di ingresso.

• Tre porte a 8 bit: le porte A, B e C forniscono 24 linee che possono fungere da input o output.

• Molteplici modalità operative –

Modalità 0: Input/output semplice senza handshake.

Modalità 1: I/O stroboscopico con segnali di handshake per una comunicazione sincronizzata.

Modalità 2: Trasferimento dati bidirezionale con handshaking (solo sulla porta A).

• Bit Set/Reset (BSR) – I bit della porta C possono essere impostati o cancellati individualmente per applicazioni di controllo/stato.

• Raggruppamento flessibile: le porte possono essere suddivise in gruppi a 8 bit o a 4 bit.

• Compatibilità TTL – Facile integrazione con circuiti integrati digitali standard.

• Registri di controllo indipendenti – Ogni porta può funzionare separatamente, in diverse modalità o direzioni.

Piedinatura del chip 8255 PPI

Figure 2. Pinout of 8255 Microprocessor

Perno n.GruppoSegnaleDescrizione
1–8Porta APA0–PA7Porta I/O generica a 8 bit
9–16Porta CPC0–PC7Suddivise in PC0–PC3 (inferiore) e PC4–PC7 (superiore); utilizzati come linee di I/O o handshake
17-24Porta BPB0–PB7Porta I/O generica a 8 bit
25ControlloCS'Chip select (attivo basso)
26PotenzaVccAlimentazione +5 V
27ControlloRD'Abilitazione lettura
28ControlloWR'Abilita scrittura
29ControlloRIPRISTINARipristina tutte le porte allo stato di input
30-37Bus datiD0–D7Trasferisce dati/comandi tra CPU e 8255
38-39Pin per indirizziA0, A1Seleziona registri/porte interni: 00=Porta A, 01=Porta B, 10=Porta C, 11=Controllo
40TerraGNDRiferimento a terra

Architettura del chip 8255 PPI

Figure 3. Architecture of 8255 Microprocessor

Blocco funzionaleDescrizione
Buffer del bus datiFunge da interfaccia tra il bus dati bidirezionale della CPU (D7–D0) e il bus dati interno a 8 bit dell'8255. Memorizza e trasferisce temporaneamente i dati tra la CPU e i registri o le porte interne.
Logica di controllo in lettura/scritturaGestisce tutte le comunicazioni tra la CPU e l'8255. Interpreta i segnali di controllo come RD, WR, A0, A1, CS e RESET per determinare il tipo di operazione (lettura, scrittura o controllo) e seleziona la porta o il registro di controllo corretti.
Logica di controllo (decoder)Decodifica la parola di controllo inviata dalla CPU per configurare le porte in varie modalità (Modalità 0, 1 o 2) o in modalità Bit Set/Reset (BSR). Determina il funzionamento di ciascuna porta: come input, output o handshake.
Controllo Gruppo AControlla la porta A (8 bit: PA7–PA0) e la porta superiore C (4 bit: PC7–PC4). Supporta le modalità 0, 1 e 2, consentendo I/O semplici, I/O con handshake e trasferimento dati bidirezionale
Controllo Gruppo BControlla la porta B (8 bit: PB7–PB0) e la porta C inferiore (4 bit: PC3–PC0). Supporta le modalità 0 e 1, consentendo operazioni di input/output di base o controllate da handshake.
Porta AUna porta I/O a 8 bit che può funzionare come input o output a seconda della configurazione della modalità. Supporta le modalità 0–2 sotto il controllo del Gruppo A.
Porta BUn'altra**porta I/O a 8 bit** per il trasferimento dei dati. Funziona sotto il controllo del Gruppo B e supporta le modalità 0 e 1.
Porta CUna porta a 8 bit divisa in due gruppi a 4 bit: superiore (PC7-PC4) e inferiore (PC3-PC0). Questi possono fungere da porte I/O indipendenti, linee di controllo o segnali di handshake. Le singole punte possono anche essere controllate utilizzando la modalità Bit Set/Reset (BSR).
Bus dati interno (8 bit)Collega tutti i blocchi interni dell'8255, trasferendo i dati e le informazioni di controllo tra la CPU, la logica di controllo e le porte.
AlimentazioneIl chip funziona con un'alimentazione a +5 V CC e una connessione GND per alimentare l'intero circuito.

Modalità operative e principio di funzionamento del chip 8255 PPI

L'Intel 8255 funge da interfaccia programmabile tra la CPU e le periferiche, traducendo le operazioni del bus in trasferimenti di dati paralleli. Il suo funzionamento è regolato da passaggi di inizializzazione e modalità selezionabili:

Ripristina stato

All'accensione o al ripristino, tutte le porte (A, B e C) passano automaticamente alla modalità di ingresso per evitare di danneggiare le periferiche con uscite non intenzionali.

Inizializzazione

La CPU deve inviare una parola di controllo che configura ogni porta come input/output e seleziona una delle quattro modalità operative. Fino a quando questa operazione non viene eseguita, le porte rimangono inattive.

Modalità operative

Modalità 5.3 Bit Set/Reset (BSR)

• Si applica solo alla porta C.

• Consente di impostare o cancellare singoli bit per attività di controllo/stato.

Modalità 0 – I/O semplice

• Ingresso/uscita di base senza handshake.

• Utilizzato per trasferimenti semplici come LED, interruttori e display.

Modalità 1 – I/O stroboscopico

• Aggiunge segnali di handshake (STB, ACK, IBF, OBF) tramite la porta C.

• Garantisce il trasferimento sincronizzato dei dati delle periferiche della CPU ↔.

Modalità 2 – I/O bidirezionale

• Disponibile solo sulla porta A.

• Supporta il trasferimento bidirezionale con controllo dell'handshake, utile per dispositivi ad alta velocità o asincroni.

Operazioni di lettura/scrittura

• Scrittura: la CPU inserisce i dati sul bus di sistema e l'8255 decodifica le righe di indirizzo (A0, A1) per indirizzarle al latch di uscita della porta corretta.

• Lettura: i dispositivi esterni inseriscono i dati sulle linee delle porte, che l'8255 blocca e rende disponibili alla CPU durante un comando di lettura.

Sincronizzazione

• In modalità 0, i trasferimenti di dati avvengono direttamente senza handshake.

• Nelle modalità 1 e 2, i segnali di handshake dalla porta C coordinano la prontezza e l'accettazione, prevenendo la perdita di dati durante i trasferimenti ad alta velocità o asincroni.

Considerazioni sull'interfacciamento del chip 8255 PPI

Quando si progettano sistemi con l'8255, un'attenta interfaccia garantisce l'affidabilità e previene danni sia al chip che ai dispositivi esterni:

• Stato di ingresso predefinito: al ripristino, tutte le porte sono predefinite sugli ingressi. In questo modo si evitano conflitti, ma si evita anche che le uscite rimangano inattive fino a quando non vengono configurate. La CPU deve sempre inviare una parola di controllo per definire correttamente la direzione e la modalità prima di tentare la comunicazione.

• Limiti dell'unità di uscita: le porte dell'8255 possono generare o assorbire solo corrente limitata (pochi milliampere). L'azionamento diretto di carichi pesanti come lampade, solenoidi o relè non è sicuro. Invece, vengono comunemente utilizzati circuiti integrati buffer o driver come il ULN2803 (Darlington array) o porte a collettore aperto come 7406. Questi forniscono una maggiore capacità di corrente e proteggono il PPI.

• Controllo motore: per i motori CC o i motori passo-passo, le porte 8255 non devono essere collegate direttamente. Invece, le uscite devono essere instradate attraverso stadi a transistor o circuiti driver a ponte H. Questa disposizione consente il flusso di corrente bidirezionale isolando il PPI dai picchi di tensione induttivi.

• Commutazione del carico CA – L'interfacciamento con gli apparecchi CA richiede l'isolamento per motivi di sicurezza. I relè meccanici o i relè a stato solido (SSR) azionati attraverso gli stadi buffer assicurano che l'8255 gestisca solo i segnali di controllo, mentre il carico effettivo ad alta tensione viene commutato in modo sicuro dall'esterno.

• Restrizioni della porta C – I bit della porta C non sono sempre liberamente utilizzabili come I/O generici. Nelle modalità 1 e 2, diversi pin (ad es. STB, ACK, IBF, OBF) vengono automaticamente riservati per il controllo dell'handshake. È necessario tenere conto di queste righe riservate per evitare conflitti quando si combinano I/O generali con handshake.

Vantaggi del chip 8255 PPI

• Compatibilità CPU: l'8255 funziona perfettamente con processori come Intel 8085, 8086 e i loro compatibili. Il suo design si adatta ai protocolli bus standard, rendendo l'integrazione semplice senza una logica di colla aggiuntiva.

• Configurazione flessibile delle porte – Con tre porte a 8 bit (A, B, C), gli utenti possono configurarle come input, output o un mix a seconda dell'applicazione. La capacità di passare da un semplice I/O (modalità 0) a una comunicazione basata su handshake (modalità 1 e 2) consente allo stesso chip di gestire un'ampia varietà di attività.

- Funzionamento ad alimentazione singola - Funzionando con un'alimentazione standard a +5 V, l'8255 è facile da alimentare in sistemi basati su TTL. Non sono necessari regolatori speciali o più livelli di tensione, semplificando il design della scheda.

• Trasferimento dati parallelo affidabile: il chip fornisce una comunicazione parallela a 8 bit stabile e prevedibile, riducendo le incertezze temporali. Questa affidabilità lo rende adatto per il pilotaggio di display, la lettura di sensori e la gestione dei segnali di controllo nei sistemi reali.

• Valore educativo – Poiché è ben documentato e ampiamente disponibile, l'8255 è stato uno strumento didattico chiave nei laboratori di microprocessori e nei kit di formazione. È possibile comprendere rapidamente i concetti di interfaccia I/O attraverso esperimenti pratici con questo dispositivo.

Applicazioni del chip 8255 PPI

• Sistemi educativi – I kit di formazione e le schede di laboratorio includono spesso l'8255 per dimostrare i concetti di interfacciamento periferico. È possibile esercitarsi a programmare diverse modalità e osservare l'interazione effettiva con dispositivi esterni.

• Controllo del display – Il chip aziona dispositivi di output visivi come LED a sette segmenti, moduli LCD e pannelli alfanumerici. Con le sue molteplici linee I/O, può aggiornare i display o inviare comandi di controllo ai circuiti integrati del driver.

• Interfaccia tastiera – Le tastiere a matrice nei primi terminali e personal computer venivano spesso scansionate utilizzando l'8255. Configurando alcune linee come driver di fila e altre come sensori di colonna, ha rilevato in modo efficiente la pressione dei tasti.

• Controllo del motore: i motori passo-passo e i motori CC possono essere controllati quando l'8255 è abbinato a stadi a transistor, array Darlington o ponti H. Ciò lo ha reso utile nella robotica, nei sistemi di posizionamento e nei progetti di automazione.

• Acquisizione dati – Quando collegato ad ADC (convertitori analogico-digitale) e DAC (convertitori digitale-analogico), l'8255 forniva un'interfaccia completa per le attività di misurazione e controllo. Ciò ha permesso ai microprocessori di gestire i segnali in apparecchiature scientifiche e industriali.

• Automazione industriale – L'8255 ha trovato impiego nel controllo dei segnali stradali, della logica degli ascensori e dei pannelli di monitoraggio dei processi. La sua capacità di gestire in modo affidabile più ingressi e uscite lo ha reso una soluzione a basso costo per i sistemi di controllo integrati.

• Retro-Computing – Le macchine classiche come i computer IBM PC/XT e MSX utilizzavano l'8255 per l'interfacciamento periferico. È stato utilizzato anche nelle stampanti e nelle schede di espansione, consolidando il suo posto nella storia dei personal computer.

Confronto dei chip 8255 PPI con altri PPI

9,1 8255 contro 8155

Figure 4. 8255 vs. 8155

L'Intel 8155 combina più funzioni in un unico pacchetto: offre un piccolo blocco di RAM statica, un timer programmabile e porte I/O per uso generico. Ciò lo rendeva adatto a sistemi compatti in cui era necessario il controllo della memoria e della temporizzazione. Al contrario, l'8255 si concentra interamente su I/O programmabili, senza memoria o temporizzazione incorporata. Il suo design più semplice lo rendeva più economico e facile da programmare quando l'applicazione non richiedeva RAM o timer integrati.

9,2 8255 contro 8259

Figure 5. 8255 vs. 8259

Il controller di interrupt programmabile 8259 ha uno scopo molto diverso: gestire gli interrupt hardware per aiutare la CPU a rispondere rapidamente agli eventi esterni. Mentre l'8255 gestisce il trasferimento di dati I/O parallelo, l'8259 coordina i segnali di interruzione. In molti sistemi basati su microprocessore, i due chip sono stati utilizzati insieme, 8255 per l'interfacciamento con dispositivi come tastiere e display e 8259 per la gestione delle richieste di interrupt generate da tali dispositivi.

8255 rispetto ai moderni espansori GPIO

Figure 6. 8255 vs. Modern GPIO Expanders

I sistemi odierni utilizzano spesso espansori GPIO basati su I²C o SPI (come MCP23017 o PCF8574). Questi dispositivi forniscono pin I/O aggiuntivi con meno connessioni, risparmiando spazio sulla scheda e riducendo il numero di pin sulla CPU. Tuttavia, funzionano in serie, il che può essere più lento rispetto all'accesso diretto in parallelo dell'8255. Sebbene l'8255 richieda più linee bus, la sua struttura parallela consente trasferimenti più rapidi e lo rende molto prezioso negli ambienti educativi, dove il controllo diretto dei singoli pin e la comprensione della temporizzazione del bus sono importanti per l'apprendimento.

Risoluzione dei problemi e problemi comuni

Lavorare con l'8255 a volte può portare a guasti del sistema se le regole di progettazione non vengono seguite attentamente. I problemi e i rimedi comuni includono:

Porte non inizializzate: dopo il ripristino, tutte le porte passano automaticamente alla modalità di ingresso. Se la CPU non invia una parola di controllo corretta, le uscite rimangono inattive o si comportano in modo imprevedibile. Programmare sempre il registro di controllo prima di tentare di leggere o scrivere dati.

• Parole di controllo errate: le parole di controllo configurate in modo errato possono assegnare le direzioni o le modalità errate alle porte, bloccando i segnali previsti. Eseguire un controllo incrociato dei valori delle parole di controllo con le tabelle del foglio dati per garantire le impostazioni corrette dei bit.

Errori di handshake: nelle modalità 1 e 2, la porta C fornisce i segnali di handshake necessari (STB, ACK, IBF, OBF). Connessioni mancanti, cablate o interpretate in modo errato portano a trasferimenti bloccati o persi. Verificare attentamente sia il cablaggio che le aspettative a livello logico dei dispositivi collegati.

Uscite di sovraccarico: ogni pin della porta può gestire solo piccole correnti. Il pilotaggio diretto dei LED è possibile con i resistori, ma i motori, i relè e le lampade richiedono stadi buffer esterni come array di transistor o circuiti integrati driver. Ignorare questo limite rischia di danneggiare permanentemente il chip.

• Conflitti bus: se più dispositivi tentano di pilotare il bus di sistema contemporaneamente, possono verificarsi danni ai dati o all'hardware. Un corretto arbitraggio del bus e l'uso di segnali di abilitazione (RD', WR', CS') evitano questo problema.

• Strumenti di debug: quando i problemi persistono, le apparecchiature di test aiutano a isolare i guasti. Gli analizzatori logici possono confermare i segnali di temporizzazione e controllo, mentre gli oscilloscopi possono verificare se il problema deriva da un cablaggio hardware rumoroso o da un'inizializzazione errata del software.

Conclusione

L'Intel 8255 PPI rimane una pietra miliare dell'interfaccia dei microprocessori. Sebbene sia stato in gran parte sostituito dai moderni espansori GPIO e dall'I/O integrato nel microcontrollore, continua a fungere da strumento didattico attivo. La sua chiarezza nel dimostrare il trasferimento parallelo dei dati, la configurazione delle porte e l'handshaking lo rende prezioso per chiunque.

Domande frequenti [FAQ]

Qual è la parola di controllo in 8255 e perché è importante?

La parola di controllo è un'istruzione a 8 bit inviata dalla CPU per configurare le porte e le modalità dell'8255. Senza di esso, tutte le porte rimangono nello stato di input predefinito. Definisce se ogni porta funge da ingresso o uscita e seleziona tra le modalità 0, 1, 2 o Bit Set/Reset.

L'8255 può azionare direttamente motori o relè?

No. Le uscite 8255 possono generare o assorbire solo pochi milliampere, il che è insufficiente per motori o relè. I circuiti di pilotaggio esterni, come array di transistor o ponti H, devono essere utilizzati per gestire in modo sicuro correnti più elevate.

Perché l'8255 è ancora oggi utilizzato nell'istruzione?

L'8255 offre un modo chiaro e pratico per apprendere l'I/O del microprocessore, le parole di controllo e il trasferimento dati parallelo. La sua architettura semplice aiuta gli studenti a comprendere i concetti fondamentali prima di passare ai moderni microcontrollori.

Cosa succede se si utilizza la porta C in modalità handshake?

Nelle modalità 1 e 2, alcune linee della porta C sono riservate ai segnali di handshake (come STB, ACK, IBF, OBF). Questi pin non possono essere utilizzati come I/O generici durante tali modalità, di cui è necessario tenere conto per evitare conflitti.

In che modo l'8255 differisce dai moderni espansori GPIO?

A differenza degli espansori I²C/SPI che utilizzano la comunicazione seriale, l'8255 funziona con un bus parallelo, consentendo trasferimenti più veloci ma richiedendo più pin. Ciò rende l'8255 meno efficiente in termini di spazio, ma prezioso per il controllo effettivo e l'apprendimento della temporizzazione del bus.