|
|
Interfaccia Centronics |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
E’ una interfaccia parallela ad 8 bit di tipo asincrona usata soprattutto per collegare un computer ad una stampante parallela. Il flusso di dati è tipicamente monodirezionale e va, naturalmente, dal computer alla stampante. Recentemente, grazie alla evoluzione della interfaccia, è possibile anche inviare sulle stesse linee dati che vanno dal dispositivo periferico al computer e ciò consente l’utilizzo di tale interfaccia anche per il collegamento di dispositivi di input come, ad esempio, lo scanner o la webcam. Il connettore sul retro del computer è di tipo D a 25 poli femmina. Su un PC possono prendere posto fino a 3 interfacce parallele denominate LPT1, LPT2 e LPT3 (Line Printer Terminal). Ciascuna delle 3 LPT presenta 3 indirizzi contigui destinate alle periferiche di I/O. L’indirizzo base della LPT1 è 888 (in esadecimale: 378), gli altri due indirizzi sono 889 e 890. L’indirizzo base della LPT2 è 632 (in esadecimale: 278), gli altri due indirizzi sono 633 e 634. L’indirizzo base della LPT3 è 956 (in esadecimale: 3BC), gli altri due indirizzi sono 957 e 958. Si riassume la situazione nella seguente tabella 3.
Tabella 3
Alla LPT1 viene riservato l’interrupt IRQ7. Il registro base di indirizzo 888, denominato registro dati, contiene 8 bit di uscita dal PC. Il registro di indirizzo successivo 889, noto come registro di stato, è accessibile solo dall’esterno e solamente per 5 dei suoi 8 bit. È detto registro di stato perché ciascuna delle 5 linee individua un particolare stato in cui si trova la stampante (occupata, carta esaurita, errore, ecc.). Il registro di indirizzo 890, noto come registro di controllo, rende disponibili solo 4 bit di uscita. In fig.4 si mostra il connettore a 25 poli posto sul retro del computer.
Fig. 4 – Interfaccia Centronics. Connettore a 25 poli femmina posto sul retro del PC
In tabella 4 si riporta la piedinatura, la denominazione, la direzione, l’indirizzo e l’uso delle linee che l’interfaccia Centronics mette a disposizione sul connettore D a 25 poli agli indirizzi 888, 889 e 890 della LPT1.
Tabella 4
Registro dati (indirizzo 888) : Le linee di uscita DATA8...DATA1, di indirizzo 888 (378 esadecimale), situate tra i pin 9....2, sono memorizzate, cioè rappresentano i bit di uscita di altrettanti flip-flop.
Registro di stato (indirizzo 889): L’interfaccia Centronics possiede 5 linee di ingresso all’indirizzo 889 (379 esadecimale) con i seguenti valori e logiche di funzionamento: _____ BUSY (pin 11) vale 128 se è al livello basso (logica negativa). ACK (pin 10) vale 64 se è al livello alto (logica positiva). PAPER OUT (pin 12) vale 32 se è al livello alto (logica positiva). SELECTED (pin 13) vale 16 se è al livello alto (logica positiva). ERROR (pin 15) vale 8 se è al livello alto (logica positiva).
I rimanenti 3 bit meno significativi del byte di ingresso non sono accessibili sul connettore e sono poste, internamente all’interfaccia, al livello alto (1112 = 710 ). Avendo a disposizione 5 bit (32 combinazioni) è possibile acquisire, via software in una variabile A, un valore compreso tra 0 e 31. Ciò si realizza con i seguenti passaggi: ____ A = A XOR 128 (per complementare il bit applicato su BUSY); A = A - 7 (per azzerare i tre bit meno significativi : operazione, comunque, non necessaria); A = A / 8 (per lo scorrimento a destra di 3 posizioni).
L'algoritmo di acquisizione in linguaggio QBASIC risulta, pertanto:
A = ((INP(889) XOR 128) - 7 ) / 8
In questo modo la parola di ingresso A assume un valore compreso tra 0 e 31.
Registro di controllo (indirizzo 890): L’indirizzo Centronics 890 (37A esadecimale) rende disponibile in uscita altri 4 bit di cui tre attivi in logica negativa ed una in logica positiva : ___ _____ STB = STROBE (pin 1) vale 1 se è al livello basso (logica negativa). __ __________ AF = AUTOFEED (pin 14) vale 2 se è al livello basso (logica negativa).
IP = INIZIALIZE PRINTER (pin 16) vale 4 se è al livello alto (logica positiva). __ _____________ SI = SELECT INPUT (pin 17) vale 8 se è al livello basso (logica negativa).
IRQE = ABILITA INTERRUPT vale 16 se è al livello alto (logica positiva) ma non è disponibile fisicamente.
Se si intende
trasmettere una parola a 4 bit con valore compreso tra 0 e 15 e con i bit attivi
in logica positiva, occorre commutare (XOR con 1 logico) i bit
OUT 890, A XOR 11
Procedura per dichiarare di ingresso la porta all'indirizzo 888. Se l'interfaccia Centronics è impostata come EPP (Enhanced Parallel Port) è possibile effettuare l'input di un byte all'indirizzo 888 purché si imposti ad 1 il bit 5 del registro di controllo posto all'indirizzo 890. Impostando a 0 il bit 5 dell'indirizzo 890, il byte DATA8...DATA1 del registro dati all'indirizzo 888 ritorna a funzionare come byte di output. Si riporta un semplice listato di test in QBASIC (facilmente modificabile in un altro linguaggio di programmazione) per provare la Centronics all'indirizzo 888 come canale di input a 8 bit. Con un semplice spezzone di cavo telefonico (quello usato per collegamenti su bread-board) si collega il pin 2 (DATA1) al pin 25 (GND) del connettore (femmina) a 25 poli posto sul retro del PC e si prova il programma ottenendo sul monitor la stampa continua del numero 254 fino alla pressione di un tasto qualsiasi sulla tastiera. Portando il filo sul pin 3, 4, ecc. tenendo l'altro capo del filo sempre a massa, si può verificare che effettivamente il dato in lettura si modifica in funzione del pin collegato a massa. È superfluo dire che le linee DATA8 ... DATA1 posti sui pin 9...2 sono da ritenersi allo stato 1 se tenute aperte. Per impostare l'interfaccia Centronics come EPP, infine, si va nel BIOS SETUP e si imposta la stampante come EPP anziché come SPP.
Fig.5. – Programma e collegamenti per provare la Centronics come porta di ingresso all’indirizzo 888.
|