CentronicsEdit
An Wang, Robert Howard e Prentice Robinson iniziarono lo sviluppo di una stampante a basso costo alla Centronics, una filiale dei Wang Laboratories che produceva terminali speciali per computer. La stampante utilizzava il principio della stampa a matrice di punti, con una testina di stampa costituita da una fila verticale di sette perni metallici collegati a solenoidi. Quando l’alimentazione veniva applicata ai solenoidi, il perno veniva spinto in avanti per colpire la carta e lasciare un punto. Per fare un glifo di carattere completo, la testina di stampa riceveva energia a determinati perni per creare un singolo modello verticale, poi la testina di stampa si spostava a destra di una piccola quantità, e il processo si ripeteva. Sul loro design originale, un glifo tipico veniva stampato come una matrice alta sette e larga cinque, mentre i modelli “A” usavano una testina di stampa con 9 pin e formavano glifi che erano 9 per 7.
Questo lasciava il problema di inviare i dati ASCII alla stampante. Mentre una porta seriale lo fa con il minimo di pin e fili, richiede che il dispositivo bufferizzi i dati man mano che arrivano bit per bit e li ritrasformi in valori multi-bit. Una porta parallela rende questo più semplice; l’intero valore ASCII è presentato sui pin in forma completa. Oltre agli otto pin per i dati, il sistema aveva bisogno anche di vari pin di controllo e della messa a terra elettrica. Wang ha avuto un’eccedenza di 20.000 micro connettori a nastro Amphenol a 36 pin, originariamente usati per una delle loro prime calcolatrici. L’interfaccia richiedeva solo 21 di questi pin, il resto era messo a terra o non collegato. Il connettore è diventato così strettamente associato a Centronics che ora è popolarmente conosciuto come “connettore Centronics”.
La stampante Centronics Model 101, con questo connettore, fu rilasciata nel 1970. L’host inviava caratteri ASCII alla stampante usando sette degli otto pin di dati, tirandoli alti a +5V per rappresentare un 1. Quando i dati erano pronti, l’host tirava il pin STROBE basso, a 0 V. La stampante rispondeva tirando la linea BUSY alta, stampando il carattere, e poi riportando BUSY di nuovo basso. L’host poteva quindi inviare un altro carattere. I caratteri di controllo nei dati causavano altre azioni, come il CR
o il EOF
. L’host poteva anche fare in modo che la stampante iniziasse automaticamente una nuova linea tirando la linea AUTOFEED alta, e mantenendola lì. L’host doveva sorvegliare attentamente la linea BUSY per assicurarsi che non fornisse dati alla stampante troppo rapidamente, specialmente per operazioni a tempo variabile come l’avanzamento della carta.
Il lato stampante dell’interfaccia divenne rapidamente uno standard industriale de facto, ma i produttori usavano vari connettori sul lato sistema, quindi era necessaria una varietà di cavi. Per esempio, NCR usava il connettore a nastro micro a 36 pin su entrambe le estremità della connessione, i primi sistemi VAX usavano un connettore DC-37, Texas Instruments usava un connettore a bordo scheda a 25 pin e Data General usava un connettore a nastro micro a 50 pin. Quando IBM implementò l’interfaccia parallela sul PC IBM, usò il connettore DB-25F all’estremità PC dell’interfaccia, creando l’ormai familiare cavo parallelo con un DB25M a un’estremità e un connettore a nastro micro a 36 pin all’altra.
In teoria, la porta Centronics poteva trasferire dati fino a 75.000 caratteri al secondo. Questo era molto più veloce della stampante, che aveva una media di circa 160 caratteri al secondo, il che significava che la porta passava molto del suo tempo inattivo. La performance era definita da quanto rapidamente l’host poteva rispondere al segnale BUSY della stampante chiedendo più dati. Per migliorare le prestazioni, le stampanti iniziarono a incorporare dei buffer in modo che l’host potesse inviare loro dati più rapidamente, a raffiche. Questo non solo riduceva (o eliminava) i ritardi dovuti alla latenza in attesa che il carattere successivo arrivasse dall’host, ma liberava anche l’host per eseguire altre operazioni senza causare una perdita di prestazioni. Le prestazioni sono state ulteriormente migliorate utilizzando il buffer per memorizzare diverse righe e poi stampare in entrambe le direzioni, eliminando il ritardo mentre la testina di stampa tornava al lato sinistro della pagina. Tali modifiche raddoppiarono le prestazioni di una stampante altrimenti invariata, come nel caso dei modelli Centronics come la 102 e la 308.
IBMEdit
IBM rilasciò l’IBM Personal Computer nel 1981 e incluse una variante dell’interfaccia Centronics- solo le stampanti con logo IBM (ribattezzate da Epson) potevano essere usate con il PC IBM. IBM standardizzò il cavo parallelo con un connettore DB25F dal lato del PC e il connettore Centronics a 36 pin dal lato della stampante. I fornitori rilasciarono presto stampanti compatibili sia con la Centronics standard che con l’implementazione IBM.
L’adattatore originale per stampante parallela IBM per il PC IBM del 1981 fu progettato per supportare una bidirezionalità limitata, con 8 linee di uscita dati e 4 linee di ingresso dati. Questo permetteva di usare la porta per altri scopi, non solo per l’uscita verso una stampante. Questo è stato realizzato permettendo alle linee di dati di essere scritte da dispositivi su entrambe le estremità del cavo, il che richiedeva che le porte sull’host fossero bidirezionali. Questa caratteristica fu poco utilizzata e fu rimossa nelle revisioni successive dell’hardware. Anni dopo, nel 1987, IBM reintrodusse l’interfaccia bidirezionale con la sua serie IBM PS/2, dove poteva essere abilitata o disabilitata per la compatibilità con le applicazioni cablate in modo da non aspettarsi che una porta della stampante fosse bidirezionale.
Bi-TronicsEdit
Con l’espansione del mercato delle stampanti, apparvero nuovi tipi di meccanismi di stampa. Questi spesso supportavano nuove caratteristiche e condizioni di errore che non potevano essere rappresentate sui relativamente pochi pin di stato della porta esistente. Mentre la soluzione IBM poteva supportare tutto ciò, non era banale da implementare e non era allora supportata. Questo portò al sistema Bi-Tronics, introdotto da HP sul loro LaserJet 4 nel 1992. Questo usava quattro pin di stato esistenti, ERROR, SELECT, PE e BUSY per rappresentare un nibble, usando due trasferimenti per inviare un valore a 8 bit. La modalità Bi-Tronics, ora conosciuta come modalità nibble, era indicata dall’host che tirava la linea SELECT alta, e i dati venivano trasferiti quando l’host commutava l’AUTOFEED basso. Altri cambiamenti nei protocolli di handshaking migliorarono le prestazioni, raggiungendo 400.000 cps verso la stampante e circa 50.000 cps indietro verso l’host. Un grande vantaggio del sistema Bi-Tronics è che può essere gestito interamente via software nell’host, e usa hardware altrimenti non modificato – tutti i pin usati per il trasferimento dei dati indietro all’host erano già linee da stampante a host.
EPP e ECPEdit
L’introduzione di nuovi dispositivi come scanner e stampanti multifunzione richiedeva molte più prestazioni di quelle che i backchannels Bi-Tronics o IBM style potevano gestire. Altri due standard sono diventati più popolari per questi scopi. L’Enhanced Parallel Port (EPP), originariamente definito da Zenith Electronics, è simile alla modalità byte di IBM nel concetto, ma cambia i dettagli dell’handshake per permettere fino a 2 MB/s. La Extended Capability Port (ECP) è essenzialmente una porta completamente nuova nello stesso alloggiamento fisico che aggiunge anche l’accesso diretto alla memoria basato su ISA e la codifica run-length per comprimere i dati, che è particolarmente utile quando si trasferiscono immagini semplici come fax o immagini scannerizzate in bianco e nero. ECP offre prestazioni fino a 2,5 MB/s in entrambe le direzioni.
Tutti questi miglioramenti sono raccolti come parte dello standard IEEE 1284. La prima versione del 1994 includeva la modalità Centronics originale (“modalità di compatibilità”), le modalità nibble e byte, così come un cambiamento all’handshaking che era già ampiamente utilizzato; l’implementazione Centronics originale richiedeva che il cavo BUSY si attivasse ad ogni cambiamento su qualsiasi linea di dati (busy-by-line), mentre IEEE 1284 richiede che BUSY si attivi ad ogni carattere ricevuto (busy-by-character). Questo riduce il numero di alternanze di BUSY e le conseguenti interruzioni su entrambi i lati. Un aggiornamento del 1997 ha standardizzato i codici di stato della stampante. Nel 2000, le modalità EPP ed ECP sono state spostate nello standard, così come diversi stili di connettori e cavi, e un metodo per concatenare fino a otto dispositivi da una singola porta.
Alcuni sistemi host o server di stampa possono usare un segnale stroboscopico con un’uscita di tensione relativamente bassa o un toggle veloce. Ognuno di questi problemi potrebbe causare una stampa assente o intermittente, caratteri mancanti o ripetuti o stampa spazzatura. Alcuni modelli di stampante possono avere un interruttore o un’impostazione per impostare l’occupato per carattere; altri possono richiedere un adattatore handshake.
DataproductsEdit
Dataproducts ha introdotto un’implementazione molto diversa dell’interfaccia parallela per le loro stampanti. Utilizzava un connettore DC-37 sul lato host e un connettore a 50 pin sul lato stampante, sia un DD-50 (a volte indicato erroneamente come “DB50”) o il connettore M-50 a forma di blocco; l’M-50 era anche chiamato Winchester. Il parallelo Dataproducts era disponibile in una linea corta per connessioni fino a 50 piedi (15 m) e una versione a linea lunga che utilizzava la segnalazione differenziale per connessioni fino a 500 piedi (150 m). L’interfaccia Dataproducts si trovava su molti sistemi mainframe fino agli anni ’90, e molti produttori di stampanti offrivano l’interfaccia Dataproducts come opzione.
Un’ampia varietà di dispositivi furono infine progettati per operare su una porta parallela. La maggior parte dei dispositivi erano unidirezionali (a senso unico), destinati solo a rispondere alle informazioni inviate dal PC. Tuttavia, alcuni dispositivi come le unità Zip erano in grado di operare in modalità bidirezionale. Anche le stampanti alla fine adottarono il sistema bidirezionale, permettendo l’invio di varie informazioni di rapporto sullo stato.