CentronicsEdit
Een Wang, Robert Howard en Prentice Robinson begonnen met de ontwikkeling van een goedkope printer bij Centronics, een dochteronderneming van Wang Laboratories die speciale computerterminals produceerde. De printer gebruikte het dot matrix afdrukprincipe, met een printkop bestaande uit een verticale rij van zeven metalen pennen verbonden met solenoïden. Wanneer de solenoïden onder stroom werden gezet, werd de pen naar voren geduwd om het papier te raken en een punt achter te laten. Om een volledig letterteken te maken, werd de printkop onder stroom gezet om een verticaal patroon te maken, waarna de printkop een klein stukje naar rechts bewoog en het proces zich herhaalde. Op hun oorspronkelijke ontwerp, werd een typische glyph gedrukt als een matrix zeven hoog en vijf breed, terwijl de “A” modellen een printkop met 9 pinnen gebruikten en glyphs vormden die 9 bij 7 waren.
Hiermee bleef het probleem van het verzenden van de ASCII gegevens naar de printer. Een seriële poort doet dit met een minimum aan pinnen en draden, maar vereist dat het apparaat de binnenkomende gegevens bit voor bit buffert en weer omzet in multi-bit waarden. Een parallelle poort maakt dit eenvoudiger; de volledige ASCII-waarde wordt in complete vorm op de pinnen gepresenteerd. Naast de acht datapinnen had het systeem ook diverse controlepinnen nodig, alsmede elektrische aansluitingen. Wang had toevallig een overtollige voorraad van 20.000 Amphenol 36-pins micro-bandconnectoren die oorspronkelijk werden gebruikt voor een van hun vroege rekenmachines. De interface had slechts 21 van deze pennen nodig, de rest was geaard of niet aangesloten. De connector is zo nauw verbonden geraakt met Centronics dat hij nu in de volksmond de “Centronics connector” wordt genoemd.
De Centronics Model 101 printer, voorzien van deze connector, werd uitgebracht in 1970. De host stuurde ASCII-tekens naar de printer met behulp van zeven van de acht datapinnen, door ze hoog te trekken naar +5 V om een 1 weer te geven. Wanneer de gegevens klaar waren, trok de host de STROBE-pin laag, naar 0 V. De printer reageerde door de BUSY-lijn hoog te trekken, het teken af te drukken, en vervolgens BUSY weer laag te zetten. De host kon dan een ander teken verzenden. Regeltekens in de data veroorzaakten andere acties, zoals de CR
of EOF
. De host kon de printer ook automatisch een nieuwe regel laten starten door de AUTOFEED-lijn hoog te trekken en te houden. De host moest de BUSY-lijn goed in de gaten houden om ervoor te zorgen dat deze niet te snel gegevens naar de printer stuurde, vooral gezien de variabele tijd die nodig is voor bijvoorbeeld een papierinvoer.
De printerkant van de interface werd al snel een de facto industriestandaard, maar fabrikanten gebruikten verschillende connectoren aan de systeemkant, zodat er een verscheidenheid aan kabels nodig was. NCR gebruikte bijvoorbeeld de 36-pins micro ribbon connector aan beide uiteinden van de verbinding, vroege VAX systemen gebruikten een DC-37 connector, Texas Instruments gebruikte een 25-pins card edge connector en Data General gebruikte een 50-pins micro ribbon connector. Toen IBM de parallelle interface op de IBM PC implementeerde, gebruikten zij de DB-25F connector aan het PC-uiteinde van de interface, waardoor de nu bekende parallelle kabel ontstond met een DB25M aan het ene uiteinde en een 36-pins micro ribbon connector aan het andere.
In theorie kon de Centronics poort gegevens zo snel overbrengen als 75.000 karakters per seconde. Dit was veel sneller dan de printer, die gemiddeld ongeveer 160 tekens per seconde kon overbrengen, wat betekende dat de poort een groot deel van de tijd inactief was. De prestaties werden bepaald door hoe snel de host kon reageren op het BUSY-signaal van de printer, waarin om meer gegevens werd gevraagd. Om de prestaties te verbeteren, gingen printers buffers inbouwen, zodat de host ze sneller gegevens kon sturen, in bursts. Dit verminderde (of elimineerde) niet alleen vertragingen als gevolg van latentie bij het wachten op het volgende teken van de host, maar maakte de host ook vrij om andere bewerkingen uit te voeren zonder prestatieverlies te veroorzaken. De prestaties werden verder verbeterd door de buffer te gebruiken om meerdere regels op te slaan en vervolgens in beide richtingen af te drukken, waardoor de vertraging tijdens het teruglopen van de printkop naar de linkerkant van de pagina werd geëlimineerd. Dergelijke veranderingen verdubbelden ruimschoots de prestaties van een verder ongewijzigde printer, zoals het geval was bij Centronics modellen als de 102 en 308.
IBMEdit
IBM bracht in 1981 de IBM Personal Computer uit en bevatte een variant van de Centronics interface-alleen printers met IBM-logo (rebranded van Epson) konden worden gebruikt met de IBM PC. IBM standaardiseerde de parallelle kabel met een DB25F connector aan de PC kant en de 36-pins Centronics connector aan de printer kant. Leveranciers brachten al snel printers uit die compatibel waren met zowel de standaard Centronics als de IBM implementatie.
De oorspronkelijke parallelle printeradapter van IBM voor de IBM PC van 1981 was ontworpen om beperkte bidirectionaliteit te ondersteunen, met 8 lijnen van gegevensuitvoer en 4 lijnen van gegevensinvoer. Hierdoor kon de poort ook voor andere doeleinden worden gebruikt, niet alleen voor uitvoer naar een printer. Dit werd bereikt door het mogelijk te maken dat de datalijnen konden worden beschreven door apparaten aan beide uiteinden van de kabel, waardoor de poorten op de host bidirectioneel moesten zijn. Deze functie werd weinig gebruikt en werd verwijderd in latere revisies van de hardware. Jaren later, in 1987, herintroduceerde IBM de bidirectionele interface met zijn IBM PS/2 series, waar deze kon worden aan- of uitgezet voor compatibiliteit met toepassingen die niet verwachtten dat een printerpoort bidirectioneel was.
Bi-TronicsEdit
Toen de printermarkt zich uitbreidde, verschenen er nieuwe typen afdrukmechanismen. Deze ondersteunden vaak nieuwe functies en foutcondities die niet konden worden weergegeven op de relatief weinige statuspinnen van de bestaande poort. Hoewel de IBM oplossing dit kon ondersteunen, was het niet triviaal om dit te implementeren en werd het op dat moment niet ondersteund. Dit leidde tot het Bi-Tronics systeem, dat door HP in 1992 op hun LaserJet 4 werd geïntroduceerd. Dit systeem gebruikte vier bestaande statuspinnen, ERROR, SELECT, PE en BUSY om een nibble weer te geven, waarbij twee overdrachten werden gebruikt om een 8-bits waarde te verzenden. De Bi-Tronics-modus, nu bekend als nibble-modus, werd aangegeven door de host die de SELECT-lijn hoog trok, en de gegevens werden overgebracht wanneer de host de AUTOFEED laag schakelde. Andere wijzigingen in de handshaking protocollen verbeterden de prestaties, tot 400.000 cps naar de printer en ongeveer 50.000 cps terug naar de host. Een groot voordeel van het Bi-Tronics systeem is dat het volledig in software in de host kan worden aangestuurd, en verder ongewijzigde hardware gebruikt – alle pinnen die worden gebruikt voor de gegevensoverdracht terug naar de host waren al printer-naar-host lijnen.
EPP en ECPEdit
De introductie van nieuwe apparaten zoals scanners en multifunctionele printers vroeg om veel meer prestaties dan de Bi-Tronics of IBM stijl backchannels aankonden. Twee andere standaarden zijn populairder geworden voor deze doeleinden. De Enhanced Parallel Port (EPP), oorspronkelijk gedefinieerd door Zenith Electronics, is qua concept vergelijkbaar met IBM’s byte mode, maar wijzigt de details van de handshaking om een snelheid tot 2 MB/s mogelijk te maken. De Extended Capability Port (ECP) is in wezen een geheel nieuwe poort in dezelfde fysieke behuizing die ook directe geheugentoegang op basis van ISA toevoegt, alsmede run-length codering om de gegevens te comprimeren, hetgeen vooral nuttig is bij de overdracht van eenvoudige beelden zoals faxen of in zwart-wit gescande beelden. ECP biedt prestaties tot 2,5 MB/s in beide richtingen.
Al deze verbeteringen zijn verzameld als onderdeel van de IEEE 1284 standaard. De eerste uitgave in 1994 omvatte de oorspronkelijke Centronics-modus (“compatibiliteitsmodus”), nibble- en byte-modi, alsmede een wijziging in de handshaking die reeds op grote schaal werd gebruikt; de oorspronkelijke Centronics-implementatie riep op tot BUSY om te schakelen bij elke wijziging op elke regel met gegevens (busy-by-line), terwijl IEEE 1284 oproept tot BUSY om te schakelen bij elk ontvangen teken (busy-by-character). Dit vermindert het aantal BUSY-omschakelingen en de daaruit voortvloeiende onderbrekingen aan beide zijden. Een update in 1997 standaardiseerde de printerstatuscodes. In 2000 werden de EPP- en ECP-modi in de standaard opgenomen, evenals diverse connector- en kabelstijlen en een methode voor het in serie schakelen van maximaal acht apparaten vanaf een enkele poort.
Sommige hostsystemen of afdrukservers kunnen een stroboscoopsignaal gebruiken met een relatief lage spanningsuitvoer of een snelle toggle. Elk van deze problemen kan leiden tot geen of intermitterende afdrukken, ontbrekende of herhaalde tekens of rommelige afdrukken. Sommige printermodellen kunnen een schakelaar of instelling hebben om de busy per karakter in te stellen; andere kunnen een handshake adapter nodig hebben.
DataproductsEdit
Dataproducts introduceerde een heel andere implementatie van de parallelle interface voor hun printers. Het gebruikte een DC-37 connector aan de host kant en een 50 pins connector aan de printer kant- ofwel een DD-50 (soms foutief aangeduid als een “DB50”) of de blokvormige M-50 connector; de M-50 werd ook aangeduid als Winchester. Parallel Dataproducts was verkrijgbaar in een short-line versie voor verbindingen tot 15 m (50 feet) en een long-line versie met differentiële signalering voor verbindingen tot 150 m (500 feet). De Dataproducts interface was tot in de jaren negentig op veel mainframe systemen te vinden, en veel printerfabrikanten boden de Dataproducts interface als optie aan.
Er werd uiteindelijk een grote verscheidenheid aan apparaten ontworpen om op een parallelle poort te werken. De meeste apparaten waren uni-directioneel (eenrichtings), alleen bedoeld om te reageren op informatie die van de PC werd verzonden. Sommige apparaten, zoals Zip drives, konden echter in twee richtingen werken. Printers namen uiteindelijk ook het bidirectionele systeem over, waardoor diverse statusrapportinformatie kon worden verzonden.