CentronicsEdit
An Wang, Robert Howard i Prentice Robinson rozpoczęli prace nad tanią drukarką w firmie Centronics, filii Wang Laboratories, która produkowała specjalistyczne terminale komputerowe. Drukarka wykorzystywała zasadę druku igłowego, z głowicą drukującą składającą się z pionowego rzędu siedmiu metalowych pinów połączonych z solenoidami. Po podłączeniu zasilania do elektromagnesów, trzpień był popychany do przodu, aby uderzyć w papier i pozostawić kropkę. Aby utworzyć kompletny glif znaku, głowica drukująca otrzymywała zasilanie do określonych pinów, aby utworzyć pojedynczy pionowy wzór, następnie głowica przesuwała się w prawo o niewielką wartość i proces się powtarzał. W oryginalnym projekcie, typowy glif był drukowany jako matryca o wysokości siedmiu i szerokości pięciu, podczas gdy modele „A” używały głowicy drukującej z 9 pinami i tworzyły glify o wymiarach 9 na 7.
Pozostawiało to problem przesyłania danych ASCII do drukarki. Podczas gdy port szeregowy robi to przy minimalnej ilości pinów i przewodów, wymaga od urządzenia buforowania danych w miarę ich napływu bit po bicie i przekształcania ich z powrotem w wartości wielobitowe. Port równoległy czyni to prostszym; cała wartość ASCII jest prezentowana na pinach w kompletnej formie. Oprócz ośmiu pinów danych, system potrzebował również różnych pinów sterujących oraz uziemień elektrycznych. Tak się złożyło, że Wang posiadał nadwyżkę 20 000 36-pinowych mikrozłączek taśmowych Amphenol, które były oryginalnie użyte w jednym z ich wczesnych kalkulatorów. Interfejs wymagał tylko 21 z tych pinów, reszta była uziemiona lub niepodłączona. Złącze stało się tak blisko związane z Centronics, że jest teraz popularnie znany jako „Centronics connector”.
Drukarka Centronics Model 101, wyposażony w to złącze, został wydany w 1970 roku. Host wysłał znaki ASCII do drukarki za pomocą siedmiu z ośmiu pinów danych, ciągnąc je wysoko do +5V, aby reprezentować 1. Kiedy dane były gotowe, host pociągnął STROBE pin niski, do 0 V. Drukarka odpowiedziała ciągnąc BUSY linii wysoki, drukowanie znaku, a następnie powrót BUSY do niskiego ponownie. Host mógł wtedy wysłać kolejny znak. Znaki sterujące w danych powodowały inne działania, takie jak CR
lub EOF
. Host mógł również sprawić, że drukarka automatycznie rozpoczynała nową linię, podciągając linię AUTOFEED do stanu wysokiego i utrzymując ją w tym stanie. Host musiał uważnie obserwować linię BUSY, aby upewnić się, że nie podaje ona danych do drukarki zbyt szybko, zwłaszcza biorąc pod uwagę operacje o zmiennym czasie, takie jak podawanie papieru.
Strona drukarki interfejsu szybko stała się branżowym standardem de facto, ale producenci używali różnych złączy po stronie systemu, więc wymagana była różnorodność kabli. Na przykład, NCR używał 36-pinowego złącza mikrowstążkowego na obu końcach połączenia, wczesne systemy VAX używały złącza DC-37, Texas Instruments używał 25-pinowego złącza krawędziowego karty, a Data General używał 50-pinowego złącza mikrowstążkowego. Kiedy IBM zaimplementował interfejs równoległy w IBM PC, użył złącza DB-25F na końcu PC interfejsu, tworząc obecnie znany kabel równoległy z DB25M na jednym końcu i 36-pinowym złączem mikrowstążkowym na drugim.
W teorii port Centronics mógł przesyłać dane tak szybko, jak 75 000 znaków na sekundę. To było znacznie szybciej niż drukarka, która średnio około 160 znaków na sekundę, co oznacza, że port spędził większość czasu bezczynnie. Wydajność była określona przez to, jak szybko host mógł odpowiedzieć na sygnał BUSY drukarki z prośbą o więcej danych. Aby poprawić wydajność, drukarki zaczęły wyposażać się w bufory, dzięki czemu host mógł wysyłać dane szybciej, w seriach. To nie tylko zmniejszyło (lub wyeliminowało) opóźnienia wynikające z oczekiwania na następny znak przychodzący od hosta, ale również umożliwiło hostowi wykonywanie innych operacji bez powodowania spadku wydajności. Wydajność została jeszcze bardziej poprawiona poprzez użycie bufora do przechowywania kilku linii, a następnie drukowanie w obu kierunkach, eliminując opóźnienie podczas powrotu głowicy drukującej na lewą stronę strony. Takie zmiany ponad dwukrotnie zwiększyły wydajność niezmienionej drukarki, jak to miało miejsce w przypadku modeli Centronics, takich jak 102 i 308.
IBMEdit
IBM wypuścił IBM Personal Computer w 1981 roku i uwzględnił wariant interfejsu Centronics – tylko drukarki z logo IBM (przemianowane z Epson) mogły być używane z IBM PC. IBM ustandaryzował kabel równoległy ze złączem DB25F po stronie komputera i 36-pinowym złączem Centronics po stronie drukarki. Sprzedawcy wkrótce wypuścili drukarki zgodne zarówno ze standardowym złączem Centronics, jak i implementacją IBM.
Oryginalny adapter drukarki równoległej IBM dla IBM PC z 1981 roku został zaprojektowany do obsługi ograniczonej dwukierunkowości, z 8 liniami danych wyjściowych i 4 liniami danych wejściowych. Dzięki temu port mógł być używany do innych celów, nie tylko do wysyłania danych do drukarki. Zostało to osiągnięte poprzez umożliwienie zapisu linii danych przez urządzenia na obu końcach kabla, co wymagało, aby porty na hoście były dwukierunkowe. Funkcja ta nie była zbyt często wykorzystywana i została usunięta w późniejszych wersjach sprzętu. Lata później, w 1987 roku, IBM ponownie wprowadził dwukierunkowy interfejs w serii IBM PS/2, gdzie można go było włączyć lub wyłączyć w celu zapewnienia zgodności z aplikacjami, które nie oczekują dwukierunkowego portu drukarki.
Bi-TronicsEdit
Wraz z rozwojem rynku drukarek pojawiły się nowe typy mechanizmów drukujących. Często obsługiwały one nowe funkcje i warunki błędów, które nie mogły być reprezentowane przez stosunkowo niewiele pinów stanu istniejącego portu. Chociaż rozwiązanie IBM mogło to obsługiwać, nie było trywialne w implementacji i nie było w tym czasie wspierane. Doprowadziło to do powstania systemu Bi-Tronics, wprowadzonego przez HP w LaserJet 4 w 1992 roku. Wykorzystywał on cztery istniejące piny stanu, ERROR, SELECT, PE i BUSY do reprezentowania nibble, używając dwóch transferów do wysłania 8-bitowej wartości. Tryb Bi-Tronics, obecnie znany jako tryb nibble, był sygnalizowany przez hosta przez przeciągnięcie linii SELECT w stan wysoki, a dane były przesyłane, gdy host przełączał linię AUTOFEED w stan niski. Inne zmiany w protokołach handshaking poprawiły wydajność, osiągając 400,000 cps do drukarki i około 50,000 cps z powrotem do hosta. Główną zaletą systemu Bi-Tronics jest to, że może on być sterowany całkowicie programowo w hoście i wykorzystuje niezmodyfikowany sprzęt – wszystkie piny używane do przesyłania danych z powrotem do hosta były już liniami drukarka-host.
EPP i ECPEdit
Wprowadzenie nowych urządzeń, takich jak skanery i drukarki wielofunkcyjne, wymagało znacznie większej wydajności, niż mogły obsłużyć kanały zwrotne w stylu Bi-Tronics lub IBM. Dwa inne standardy stały się bardziej popularne dla tych celów. Enhanced Parallel Port (EPP), pierwotnie zdefiniowany przez Zenith Electronics, jest podobny w koncepcji do trybu bajtowego IBM, ale zmienia szczegóły przekazywania danych (handshaking), aby umożliwić przesyłanie danych z szybkością do 2 MB/s. Extended Capability Port (ECP) jest w zasadzie całkowicie nowym portem w tej samej obudowie fizycznej, który dodaje również bezpośredni dostęp do pamięci w oparciu o ISA i kodowanie run-length w celu kompresji danych, co jest szczególnie przydatne przy przesyłaniu prostych obrazów, takich jak faksy lub czarno-białe zeskanowane obrazy. ECP oferuje wydajność do 2,5 MB/s w obu kierunkach.
Wszystkie te ulepszenia są zebrane jako część standardu IEEE 1284. Pierwsze wydanie w 1994 roku zawierało oryginalny tryb Centronics („compatibility mode”), tryby nibble i byte, jak również zmianę w handshaking, który był już szeroko stosowany; oryginalna implementacja Centronics wymagała, aby przewód BUSY przełączał się przy każdej zmianie w dowolnej linii danych (busy-by-line), podczas gdy IEEE 1284 wymaga, aby BUSY przełączał się przy każdym odebranym znaku (busy-by-character). Zmniejsza to liczbę przełączania BUSY i wynikających z tego zakłóceń po obu stronach. Aktualizacja z 1997 r. znormalizowała kody stanu drukarki. W 2000 r. tryby EPP i ECP zostały przeniesione do standardu, jak również kilka stylów złączy i kabli oraz metoda łączenia łańcuchowego do ośmiu urządzeń z jednego portu.
Niektóre systemy hosta lub serwery druku mogą używać sygnału stroboskopowego o stosunkowo niskim napięciu wyjściowym lub szybkiego przełączania. Każdy z tych problemów może powodować brak lub przerywane drukowanie, brakujące lub powtarzające się znaki lub drukowanie śmieci. Niektóre modele drukarek mogą mieć przełącznik lub ustawienie do ustawiania zajętości według znaków; inne mogą wymagać adaptera handshake.
DataproductsEdit
Dataproducts wprowadził bardzo różną implementację interfejsu równoległego dla swoich drukarek. Wykorzystywał on złącze DC-37 po stronie hosta i złącze 50 pinowe po stronie drukarki – albo DD-50 (czasami błędnie określane jako „DB50”) lub złącze M-50 w kształcie bloku; M-50 było również określane jako Winchester. Interfejs równoległy Dataproducts był dostępny w wersji krótkiej linii dla połączeń do 50 stóp (15 m) oraz w wersji długiej linii wykorzystującej sygnalizację różnicową dla połączeń do 500 stóp (150 m). Interfejs Dataproducts można było znaleźć na wielu systemach mainframe aż do lat 90-tych, a wielu producentów drukarek oferowało interfejs Dataproducts jako opcję.
Duża różnorodność urządzeń została ostatecznie zaprojektowana do pracy na porcie równoległym. Większość urządzeń była urządzeniami jednokierunkowymi (jednokierunkowymi), przeznaczonymi tylko do odpowiadania na informacje wysyłane z komputera. Jednak niektóre urządzenia, takie jak napędy Zip, były w stanie pracować w trybie dwukierunkowym. Drukarki również w końcu przyjęły system dwukierunkowy, pozwalając na przesyłanie różnych informacji o stanie urządzenia.