profil

Centronics - interfejs IEEE 1284

poleca 85% 1219 głosów

Treść
Grafika
Filmy
Komentarze

interfejs Centronics (IEEE 1284)

Interfejs Centronics w wersji oryginalnej - łącze jednokierunkowe przesyłające informacje od komputera do drukarki - był przeznaczony jedynie do tego zadania, co wynikało z braku potrzeby dwukierunkowej komunikacji z drukarką. Ostatecznie stał się w PC-tach standardem łącza równoległego.
W porcie dwukierunkowym zmieniono rozwiązania układów wyjściowych portu i wprowadzono dodatkowy bit w rejestrze sterującym, który decyduje o kierunku transmisji.
Stworzono związany z tym portem pięciotrybowy standard IEEE1284:
• Forward direction only:
• - Compatibility Mode - tryb pracy jednokierunkowego portu Centronics

Reverse direction only
• - Nibble Mode – (półbajt) tryb zgodny z trybem przesyłającym powrotne dane przez rejestr statusowy portu Centronics

- Byte Mode - tryb zgodny z pracą portu w komputerach typu PS2
bi-directional mode:
- EPP Mode - zmodyfikowany port równoległy pozwalający na swobodną transmisję w obie strony used primarily by non-printer peripherals, CD ROM, tape, hard drive, network adapters, etc....
- ECP Mode - najbardziej zaawansowany tryb pracy portu równoległego, tworzący dwukierunkową magistralę 8-bitową mogącą przesłać zarówno dane, jak i adresy. used primarily by new generation of printers and scanners

Łącze to pozwala używać zwykłego przewodu do drukarki (Centronics) jako kabla LapLink/InterLink.
W każdym komputerze zainstalowany jest port Centronics. Pewnie wielu elektroników, zastanawiało się jak go obsłużyć i oczywiście znaleźć rozkład wyprowadzeń.
Każde łącze równoległe posiada trzy własne rejestry. Ich adresy podaje się zwykle w odniesieniu do macierzystego adresu bazowego (tj. jako przemieszczenie): Przy przemieszczeniu 00h linie D0..D7 tworzą dwukierunkowy rejestr. Przemieszczenie 01h tworzy 5-bitowy rejestr wejściowy, natomiast przemieszczenie 02h tworzy 4-bitowy rejestr dwukierunkowy.

Adresem portu LPT1 jest 378h i kolejno LPT2, LPT3, LPT4: 278h, 3BCh, 2BCh.
standard Centronics wtyku równoległego kabla drukarki jest jednym z najstarszych elementów architektury PC, który utrzymuje się w niezmienionej formie przez cały szereg lat. Modele prostych złącz równoległych były w użyciu na wiele wcześniej zanim pojawiły się mikrokomputery. Złącza takie służyły głównie do przekazywania danych pomiarowych. W momencie opracowywania przez firmę IBM pierwotnych zarysów PC zaistniała potrzeba implementacji prostego złącza równoległego obsługującego drukarkę. W tym celu sięgnięto po uproszczony wariant standardu Centronics posługującego się w pełnej wersji 29 liniami połączeniowymi i poziomami logicznymi TTL. W oryginale obydwa końce przewodu połączeniowego wyposażone były w specjalny 36-końcówkowy wtyk, którego duże rozmiary nie znalazły uznania wśród twórców architektury PC. Zmieniono, więc format gniazda po stronie komputera na bardziej kompaktowy typ SUB-D (DB-25) dysponujący 25 końcówkami. Aby zachować wszystkie oryginalne linie sygnałowe protokołu Centronics zredukowana została do ośmiu liczba przewodów masy (w oryginale 12).. Magistrala danych jest 8-bitowa a wiec interfejs równoległy przesyła jednocześnie (równolegle) osiem bitów, czyli na raz przesyłany jest jeden bajt. Ponieważ interfejs równoległy jest w stanie przesyłać w tym samym czasie więcej danych to komunikacja prowadzona takim łączem jest znaczenie szybsza niż przy użyciu interfejsu szeregowego
Ponieważ jedynym zadaniem łącza równoległego, wynikającym z przyjętej architektury systemu, była obsługa drukarki nie ma się, co dziwić, iż specyfikacja obejmowała wyłącznie transfer jednokierunkowy (od komputera do drukarki). Oprócz 8-bitowej magistrali danych złącze równoległe wyposażone jest w cztery linie sterujące (~STR, -ALF, ~IN1, ~DSL). Drukarka mogła, co prawda zgłaszać pewne sytuacje nienormalne (jak np. brak papieru), ale o transmisji danych w odwrotnym kierunku nie było mowy. Odkryto jednak możliwość transmisji półbajtowej. Oryginalna specyfikacja portu równoległego definiuje 5 linii statusowych (~ERR, SEL, PAP, -ACK, BSY), z których część służy realizacji protokołu Centronics a część pozwala na sygnalizację pewnych stanów wyjątkowych. W omawianym trybie cztery spośród tych linii wykorzystuje się do transmisji w kierunku odwrotnym. Dwa następujące po sobie półbajtowe cykle pozwalają na organizację wymiany danych w tempie około 100 kB/s.
W złącze równoległe wyposażano przez długi czas wszystkie, przeznaczone do współpracy z PC drukarki. Nie jest to oczywiście jedyna możliwość, bowiem drukarka może również współpracować ze złączem szeregowym. Port szeregowy, jakkolwiek wolniejszy od równoległego, pozwala na pokonanie dużo większych dystansów dzielących komputer od drukarki, co w niektórych zastosowaniach ma kluczowe znaczenie. Specyfikacja łącza szeregowego dopuszcza transmisję danych na odległość do 200 m natomiast łącze równoległe jedynie do około 5 m.
Współczesne drukarki wykraczają poza rolę biernego odbiorcy poleceń i danych, dysponują, bowiem zdolnością dwustronnej komunikacji z obsługującym je komputerem. Możliwości takie wymagają jednak korzystania z portów równoległych, które zostały rozbudowane o dodatkowe funkcje, nie ujęte w standardzie oryginalnego IBM-PC.
Port USB (Universal Serial Bus)




Introduction to the IEEE 1284-1994 Standard


Standard, \"IEEE Std.1284-1994 Standard Signaling Method for a Bi-directional Parallel Peripheral Interface for Personal Computers\", jest stworzony do komputerów klasy PC – Pentium 286 I wyżej. Przewiduje on dużą szybkość przesyłu danych między komputerem a urządzeniem zewnętrznym które jest w stanie przesyłać 50 – 100 razy szybciej niż oryginalny port równoległy
Compatibility Mode
Ten tryb jest najczęściej stosowanym przez większość komputerów PC aby transferowac dane do drukarki. Potocznie nazywany jest trybem centronics. W tym trybie dane są umieszczane na liniach portu, status drukarki jest sprawdzany pod kątem błędów i zajęcia, a następnie Strob danych jest generowany przez oprogramowanie by przesłać dane do drukarki.
Figure 1 describes this transfer:

Figure 1 -- Compatibility Mode Data Transfer Cycle

Compatibility Mode - fazy:
1. Zapis danych do rejestru danych
2. Program czyta status rejestru by sprawdzić czy drukarka nie jest zajęta
3. Jeżeli nie zajęta, zapisujemy rejestr kontrolny aby ustawić STROBE line
4. Write to the Control register to de-assert the STROBE line
Jak można zauważyć, jeden bajt danych potrzebuje czterech instrukcji WE/WY i jak to tylko możliwe dużo dodatkowych instrukcji. W skutkach tych limitów transfer maksymalny ogranicza się do 150K bytes/sek. Taka prędkość jest dostateczna dla komunikacji z macierzą i wieloma starszymi drukarkami laserowymi, ale dla nowszych drukarek, kart sieciowych, usuwalnych napędów dyskowych może być niewystarczająca. Oczywiście tryb ten służy jedynie do wysyłania od Hosta, dlatego też musi być kombinowany z kanałem działajćym w przeciwnym kierunku, aby otrzymać dwukierunkowy tor. Wiele z zintegrowanych kontrolerów 1284 I/O posiadają zaimplementowany tryb używajcy bufer FIFO do transferu danych w tym protokole. Tryb ten jest zwany „Fast centronics” lub „Parallel Port FIFO mode”. Gdy jest on włączony, dane zapisane do FIFO zostaną przesłane do drukarki uzywając hardware’owo generowanego strobu dla komunikacji. Dzięki temu w niektórych systemach można osiągnąc nawet do 500K bytes/sek jednak jest to nie zdefiniowane w IEEE 1284 i nie jest oficjalnie zgodne z tym standardem.
Nibble Mode (półbajt)
Tryb półbajt jest najprostszym sposobem utworzenia kanału zwrotnego danych od urządzenia. Ten tryb jest zwykle łączony z trybem compatilibity aby stworzyć tor dwukierunkowy.
Kazdy ze standardów portów równoległych przeiwduje 5 lini od urządzenia do PC które mogą być użyte do przesyłania statusu. Uzywając tych linii urządzenie może wysyłać bajt danych ( 8 bitów) wysyłając 2 półbajty ( 4-bity) informacji do PC w dwóch cyklach zegarowych. Jednak od czasu użycia nACK do przsyłania żądań przerwania, bit używany do transferu półbajtu nie jest bezproblemowo załadowany do bajtu w rejestrze statusu. W tym przypadku oprogramowanie musi odczytać status a później manipulować bitami w celu otrzymania poprawnego bajtu.
Tablica sygnałów dla trybu nibble (półbajt):
SPP Signal Nibble Mode Name In/Out Description -- Signal usage when in Nibble Mode data transfer
nSTROBE nSTROBE Out Nie używany w tym trybie
nAUTOFEED HostBusy Out Host nibble mode handshake signal. Set low to indicate host is ready for nibble. Set high to indicate nibble has been received.
nSELECTIN 1284Active Out Set high when host is in a 1284 transfer mode.
nINIT nINIT Out Not used for reverse data transfer
nACK PtrClk In Set low to indicate valid nibble data, set high in response to HostBusy going high.
BUSY PtrBusy In Used for Data bit 3, then 7
PE AckDataReq In Used for Data bit 2, then 6
SELECT Xflag In Used for Data bit 1, then 5
nERROR nDataAvail In Used for Data bit 0, then 4
DATA[8:1] Not Used


Figure 1 -- Nibble Mode Data Transfer Cycle 1284 Nibble Mode phase transition:
1. Host sygnalizuje możliwość przyjęcia danych, ustawiając stan niski na HostBusy
2. urządzenie odpowiada ustawiając pierwszy półbajt na liniach statusu
3. urządzenie sygnalizuje prawidłowy półbajt ustawiając PtrClk na stan niski.
4. Host ustawia HostBusy na wysoki aby wskazać że właśnie otrzymało półbajt I nie jest jeszcze gotowy na przyjęcie następnego.
5. urządzenie ustawia PtrClk na wysoki aby potwierdzić.
6. Kroki są powtarzane dla kolejnego pakietu.
Tryb nibble jak compatilibity, potrzebuje pomocy oprogramowania I protokołu aby ustawiać I czytać linie na porcie równoległym. W trybie tym maksymalny transfer danych może osiągnąć do 50K bajtów /sekundę.

ECP Mode
The Extended Capability Port, lub ECP,
Protokół został zaproponowany przez Hewlett Packard i Microsoft jako zaawansowany tryb służacy do komunikacji z drukarką skanerem lub podobnymi urządeniami. Tak jak protokół EPP, ECP oferuje wysokiej jakości dwukierunkową ścieżkę pomiędzy PC a urządzeniami peryferyjnymi.
The ECP protocol umożliwia następujące cykle jego pracy:
• Data cycles [ dane ]
• Command cycles [ rozkazy ]
command cycles podzielone są na 2 typy, Run-Length Count i Channel address.
W przeciwienstwie do EPP, gdy ECP został zaproponowany, standard rejestrów został również stworzony. Więcej o tym można przeczytać w dokumencie Microsoftu „The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard” dokument ten definiuje właściwości tej implementacji której standard IEEE-1284 nie posiada. Te własności to między innymi Run_Length_Encoding (RLE,) kompresja danych dla host adapters, FIFO dla obu stron transmisji (forward adn reverse) oraz DMA programujące I/O dla interfejsu rejestrów w Hoście.
RLE umożliwia kompresję w czasie rzeczywistym, co pozwala osiągnąć ratio 64:1
Jest to bardzo korzystne w drukarkach i skanerach, gdzie przesyłane są duże rastry obrazów które niejednokrotnie posiadają duże fragmenty identycznych danych.
Aby korzystać z tego trybu oba urządzenia (PC i peryferia) muszą obsługiwać RLE
Adresowanie kanałów jest koncepcyjnie nieznacznie inne od adresowania EPP. Kanały adresowe są uzywane aby zaadresować kilka logicznych urządzeń w jednym fizycznym urządzeniu. W ten sposób można tworzyć mulit-funkcjonalne urządzenia np. FAX/drukarka/modem w jednym. Każda z tych odrębnych funkcji może być traktowana jako odzielne urządzenie. Uzywanie adresowania ecp pozwala na np. korzystanie z modemu, gdy drukarka zajmuje się właśnie przetwarzaniem i drukowaniem obrazu. W trybie compatilibity było by to niemożliwe ze względu na to iż kanał drukarki byłby zajęty. W ECP sterownik programowy adresuje inny kanał i komunikacja może być nadal prowadzona.
Wraz z innymi trybami 1284, protokół ECP przedefiniowywuje sygnały SPP aby były bardziej consistent with the ECP handshake
Table 1 -- ECP Mode Signals
SPP Signal ECP Mode Name In/Out Description -- Signal usage when in ECP Mode data transfer
nSTROBE HostClk Out Używane z PeriphAck do transferu danych lub adresu z komputera do urządzenia
nAUTOFEED HostAck Out Provides Command/Data status in the forward direction. Używane z PeriphClk do transferu danych z urządzenia do PC
nSELECTIN 1284Active Out Ustawiony na wysoki gdy host jest w trybie 1284
nINIT nReverseRequest Out ustawiamy na niski aby transmitować dane z urz. Do hosta.
nACK PeriphClk In Uzywane z HostAck do transferu danych z urządzenia do hosta
BUSY PeriphAck In Używane z HostClk do transferu danych lub adresów z hosta do urządzenia. Provides Command/Data status in the reverse direction.
PE nAckReverse In Driven low to acknowledge nReverseRequest.
SELECT Xflag In Flaga rozciągliwości
nERROR nPeriphRequest In Set low by peripheral to indicate that reverse data is available.
Data[8:1] Data[8:1] Bi-Di Transfer danych host<->urządzenie
Rysunek przedstawia dwustronne cykle przesyłu danych. Gdy HostAck jest wysoki, wskazuje iż ma miejsce cykl danych. Gdy HostAck jest niski, ma miejsce cykl poleceń i dane reprezentowane są przez którykolwiek z(RLE Mount lub adres kanału). Bit 8 z bajtu danych jest używany do wskazania RLE czy adresu kanału. Jeżeli jest zerem – wtedy bity 1-7 reprezentują Run Length Mount (0-127). Jeżeli bit ten jest jedynką, wtedy bity 1-7 reprezentują adres kanału.

Figure 1 -- ECP Forward Data and Command Cycle
Forward Transfer phase transistions:
1. Host umieszcza dane na liniach danych, i informuje o cyklu danych ustawiając HostAck na stan wysoki.
2. Host ustawia HostClk na niski aby wskazać poprawne data
3. urządzenie uznaje hosta ustawiając PeriphAck na stan wysoki.
4. Host ustawia HostClk na stan wysoki. This is the edge that should be used to clock the data in to the peripheral.
5. urządzenie ustawia PeriphAck na stan niski aby wskazać że jest gotowe na następny bajt danych.
6. Cykl się powtarza, ale w tym przypadku jest to tryb rozkazów ponieważ HostAck jest niski.
Używane przewody
Mimo ogólnego przekonania, nie ma czegoś takiego jak standardowy kabel drukarkowy. Mówi się tak na kabel DB25 (męski) i 36-scieżkowy konektor na drugim końcu. Cabel może posiadać od 18 do 25 żył, z czego 1 do 8 to masa.
Some of the parameters for a compliant 1284 cable assembly include:
1. All signals are twisted pair with a signal and ground return
2. Each signal and ground return has a characteristic unbalanced impedance of 62 +/- 6 ohms over the frequency band of 4 to 16 MHz
3. The wire-to-wire crosstalk is to be no greater than 10%
4. The cable will have a minimum of 85% optical braid coverage over foil.
5. The cable shield shall be connected to the connector backshell using a 360 degree concentric method. A pigtail connection is not acceptable.
6. Compliant cable assemblies shall be marked with: \"IEEE Std 1284-1994 Compliant\"

Załączniki:
Czy tekst był przydatny? Tak Nie

Czas czytania: 12 minuty