CentronicsEdit
An Wang, Robert Howard och Prentice Robinson började utveckla en billig skrivare på Centronics, ett dotterbolag till Wang Laboratories som tillverkade specialiserade datorterminaler. Skrivaren använde sig av dot matrix-principen, med ett skrivarhuvud som består av en vertikal rad med sju metallstift som är anslutna till solenoider. När solenoiderna fick ström trycktes stiften framåt för att träffa pappret och lämna en prick. För att skapa en komplett teckenglyf, skulle skrivarhuvudet få ström till specifika stift för att skapa ett enda vertikalt mönster, varefter skrivarhuvudet skulle förflytta sig en liten bit åt höger och processen skulle upprepas. På den ursprungliga konstruktionen skrevs en typisk glyf ut som en matris som var sju hög och fem bred, medan A-modellerna använde ett skrivhuvud med nio stift och bildade glyfer som var 9 gånger 7.
Detta lämnade kvar problemet med att skicka ASCII-data till skrivaren. Medan en seriell port gör det med ett minimum av stift och kablar, kräver den att enheten buffrar datan när den anländer bit för bit och omvandlar den tillbaka till flerbitsvärden. En parallellport gör detta enklare; hela ASCII-värdet presenteras på stiften i fullständig form. Förutom de åtta datapinnarna behövde systemet också olika styrstift samt elektriska jordar. Wang råkade ha ett överskottslager av 20 000 Amphenol 36-stifts mikrobandkontakter som ursprungligen användes till en av deras tidiga miniräknare. Gränssnittet behövde bara 21 av dessa stift, resten var jordade eller inte anslutna. Kontakten har blivit så nära förknippad med Centronics att den nu populärt kallas ”Centronics-kontakten”.
Den Centronics modell 101-skrivaren, med denna kontakt, släpptes 1970. Värden skickade ASCII-tecken till skrivaren med hjälp av sju av åtta datapinnar och drog dem högt till +5 V för att representera en 1. När datan var klar drog värden STROBE-pinnen lågt, till 0 V. Skrivaren svarade genom att dra BUSY-linjen högt, skriva ut tecknet och sedan återföra BUSY till lågt igen. Värden kunde då skicka ytterligare ett tecken. Kontrolltecken i data orsakade andra åtgärder, som CR
eller EOF
. Värden kunde också få skrivaren att automatiskt starta en ny rad genom att dra AUTOFEED-linjen högt och hålla den där. Värden var tvungen att noga övervaka BUSY-linjen för att se till att den inte matade data till skrivaren för snabbt, särskilt med tanke på operationer med variabel tid, t.ex. pappersmatning.
Skrivarens sida av gränssnittet blev snabbt en de facto-standard inom branschen, men tillverkarna använde olika kontakter på systemsidan, så det krävdes en mängd olika kablar. NCR använde t.ex. den 36-stiftiga mikrobandskontakten i båda ändar av anslutningen, tidiga VAX-system använde en DC-37-kontakt, Texas Instruments använde en 25-stiftig kortkantskontakt och Data General använde en 50-stiftig mikrobandskontakt. När IBM införde det parallella gränssnittet i IBM PC använde de DB-25F-kontakten i PC-änden av gränssnittet, vilket skapade den nu välkända parallella kabeln med en DB25M-kontakt i ena änden och en 36-stifts mikrobandkontakt i den andra.
I teorin kunde Centronics-porten överföra data så snabbt som 75 000 tecken per sekund. Detta var mycket snabbare än skrivaren, som i genomsnitt hade cirka 160 tecken per sekund, vilket innebar att porten tillbringade en stor del av sin tid på tomgång. Prestandan definierades av hur snabbt värden kunde svara på skrivarens BUSY-signal och be om mer data. För att förbättra prestandan började skrivarna bygga in buffertar så att värden kunde skicka data till dem snabbare, i omgångar. Detta minskade (eller eliminerade) inte bara fördröjningar på grund av latens i väntan på att nästa tecken ska anlända från värddatorn, utan frigjorde också värddatorn för att utföra andra operationer utan att orsaka prestandaförlust. Prestandan förbättrades ytterligare genom att använda bufferten för att lagra flera rader och sedan skriva ut i båda riktningarna, vilket eliminerade fördröjningen när skrivarhuvudet återvände till den vänstra sidan av sidan. Sådana förändringar mer än fördubblade prestandan hos en annars oförändrad skrivare, vilket var fallet med Centronics-modeller som 102 och 308.
IBMEdit
IBM släppte IBM Personal Computer 1981 och inkluderade en variant av Centronics-gränssnittet – endast skrivare med IBM-logotyp (ommärkt från Epson) kunde användas med IBM PC. IBM standardiserade parallellkabeln med en DB25F-kontakt på PC-sidan och den 36-stiftiga Centronics-kontakten på skrivarsidan. Leverantörerna släppte snart skrivare som var kompatibla med både standard Centronics och IBM:s implementering.
Den ursprungliga parallella IBM-skrivaradaptern för IBM PC från 1981 var utformad för att stödja begränsad dubbelriktighet, med 8 rader datautgång och 4 rader dataingång. Detta gjorde att porten kunde användas för andra ändamål, inte bara för utdata till en skrivare. Detta åstadkoms genom att datalinjerna kunde skrivas på av enheter i båda ändarna av kabeln, vilket krävde att värddatorns portar var dubbelriktade. Denna funktion fick liten användning och togs bort i senare revideringar av maskinvaran. Flera år senare, 1987, återinförde IBM det dubbelriktade gränssnittet med sin IBM PS/2-serie, där det kunde aktiveras eller inaktiveras för att vara kompatibelt med tillämpningar som är hårdkodade så att de inte förväntar sig att en skrivarport ska vara dubbelriktad.
Bi-TronicsEdit
I takt med att skrivarmarknaden expanderade uppstod nya typer av utskriftsmekanismer. Dessa stödde ofta nya funktioner och feltillstånd som inte kunde representeras på den befintliga portens relativt få statuspinnar. IBM:s lösning kunde visserligen stödja detta, men det var inte trivialt att implementera och stöddes inte vid den tidpunkten. Detta ledde till Bi-Tronics-systemet, som introducerades av HP på deras LaserJet 4 1992. Detta system använde fyra befintliga statuspinnar, ERROR, SELECT, PE och BUSY, för att representera en nibble och använde två överföringar för att skicka ett 8-bitarsvärde. Bi-Tronics-läget, numera känt som nibble-läge, indikerades genom att värden drog SELECT-linjen högt, och data överfördes när värden kopplade AUTOFEED lågt. Andra ändringar i handshakingprotokollen förbättrade prestandan och nådde 400 000 cps till skrivaren och cirka 50 000 cps tillbaka till värden. En stor fördel med Bi-Tronics-systemet är att det kan styras helt och hållet i mjukvara i värddatorn och använder i övrigt oförändrad hårdvara – alla stift som används för dataöverföring tillbaka till värddatorn var redan skrivar-till-värd-ledningar.
EPP och ECPEdit
Introduktionen av nya enheter som skannrar och multifunktionsskrivare krävde mycket mer prestanda än vad antingen Bi-Tronics- eller IBM-stilens backchannels kunde hantera. Två andra standarder har blivit mer populära för dessa ändamål. Enhanced Parallel Port (EPP), som ursprungligen definierades av Zenith Electronics, liknar IBM:s byte mode i konceptet, men ändrar detaljerna i handskakningen för att möjliggöra upp till 2 MB/s. Extended Capability Port (ECP) är i princip en helt ny port i samma fysiska hölje som också lägger till direkt minnesåtkomst baserad på ISA och körlängdskodning för att komprimera data, vilket är särskilt användbart vid överföring av enkla bilder som fax eller skannade svartvita bilder. ECP erbjuder prestanda på upp till 2,5 MB/s i båda riktningarna.
Alla dessa förbättringar samlas som en del av IEEE 1284-standarden. Den första versionen 1994 innehöll det ursprungliga Centronics-läget (”kompatibilitetsläge”), nibble- och byte-lägena samt en ändring av den handshaking som redan användes i stor utsträckning. Den ursprungliga Centronics-implementeringen krävde att BUSY-ledningen skulle växla vid varje ändring på en datalinje (busy-by-line), medan IEEE 1284 kräver att BUSY ska växla vid varje mottaget tecken (busy-by-character). Detta minskar antalet BUSY-omkopplingar och de resulterande avbrotten på båda sidor. Genom en uppdatering 1997 standardiserades skrivarstatuskoderna. År 2000 flyttades lägena EPP och ECP in i standarden, liksom flera kontakt- och kabelstilar och en metod för daisy chaining av upp till åtta enheter från en enda port.
Vissa värdsystem eller utskriftsservrar kan använda en strobosignal med en relativt låg spänning eller en snabb växling. Något av dessa problem kan orsaka ingen eller intermittent utskrift, saknade eller upprepade tecken eller skräputskrift. Vissa skrivarmodeller kan ha en strömbrytare eller inställning för att ställa in upptagen per tecken, andra kan kräva en handshake-adapter.
DataproductsEdit
Dataproducts införde en mycket annorlunda implementering av det parallella gränssnittet för sina skrivare. Det använde en DC-37-kontakt på värdsidan och en 50-stiftskontakt på skrivarsidan – antingen en DD-50 (ibland felaktigt kallad ”DB50”) eller den blockformade M-50-kontakten; M-50 kallades också Winchester. Dataproducts parallel fanns i en kortlinjeversion för anslutningar upp till 15 m (50 fot) och en långlinjeversion som använde differentiell signalering för anslutningar upp till 150 m (500 fot). Dataproducts-gränssnittet fanns på många stordatorsystem fram till 1990-talet, och många skrivartillverkare erbjöd Dataproducts-gränssnittet som tillval.
En mängd olika enheter utformades så småningom för att fungera på en parallellport. De flesta enheter var enkelriktade (one-way) enheter som endast var avsedda att svara på information som skickades från datorn. Vissa enheter, t.ex. Zip-enheter, kunde dock fungera i dubbelriktat läge. Skrivare tog så småningom också upp det dubbelriktade systemet, vilket gjorde det möjligt att skicka olika statusrapportinformation.