Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
SPIS TREŚCI |
Pojęcie bitu
|
Podrozdziały |
Dr An Wang |
Port równoległy Centronics został opracowany w Wang Laboratories przez dr An Wanga, Roberta Howarda i Prentice Robinsona. Złącze to zostało opracowane głównie do transmisji danych pomiędzy komputerem a drukarką - jednakże później wykorzystywano je również do podłączania takich urządzeń jak skanery i plotery. Obecnie Centronics zaczyna przechodzić do historii - większość współczesnych urządzeń peryferyjnych jest podłączana do komputera za pomocą magistrali USB, która posiada dużo większą szybkość działania i możliwość jednoczesnej obsługi większej liczby urządzeń.
W telekomunikacji rozróżniamy dwa rodzaje transmisji danych:
Interfejs Centronics wykorzystuje transmisję równoległą. Magistrala interfejsu posiada 8 linii transmisji danych, 4 linie sygnałów sterujących oraz 5 linii statusu. Standard Centronics opisuje dokładnie norma IEEE 1284. Komputery IBM-PC są wyposażone w gniazdo Centronics typu DB-25 Female (żeńskie), które widzimy na poniższym obrazku po lewej stronie. Z gniazdem tym współpracuje wtyczka kabla Centronics typu DB-25 Male, którą widzimy po stronie lewej na środkowym obrazku. W drukarkach stosuje się złącze DB-36 Male, widoczne poniżej po stronie prawej:
Komputer IBM-PC | Kabel łączący komputer z drukarką | Drukarka | |
DB-25 Female | DB-25 Male | DB-36 Male | DB-36 Female |
Poszczególne wtyki posiadają w DB-25 następującą numerację (widok od strony wtyków, nie od strony lutów):
Komputer | Kabel | Kabel | Drukarka |
Gniazdo DB-25 Female | Wtyczka DB-25 Male | Wtyczka DB-36 Male | Gniazdko DB-36 Female |
W poniższej tabeli zebraliśmy przypisania sygnałów do poszczególnych wtyków DB-25:
Nr wtyku | Nazwa sygnału | Kierunek transmisji | Opis sygnału |
1 | STROBE | PC → Druk. | Sygnał zegarowy |
2 | D0 | PC → Druk. | 8 linii danych |
3 | D1 | PC → Druk. | |
4 | D2 | PC → Druk. | |
5 | D3 | PC → Druk. | |
6 | D4 | PC → Druk. | |
7 | D5 | PC → Druk. | |
8 | D6 | PC → Druk. | |
9 | D7 | PC → Druk. | |
10 | ACK | PC ← Druk. | Potwierdzenie przyjęcia danych |
11 | BUSY | PC ← Druk. | Drukarka jest zajęta |
12 | POUT | PC ← Druk. | Skończył się papier w drukarce |
13 | SEL | PC ← Druk. | Drukarka jest włączona |
14 | AUTOFEED | PC → Druk. | Automatyczne przesuwanie wiersza |
15 | ERROR | PC ← Druk. | Wskazuje na błąd drukarki (lub jej wyłączenie) |
16 | RESET | PC → Druk. | Resetuje drukarkę, czyści jej bufor i inicjuje ją. |
17 | SLCT IN | PC → Druk. | Uaktywnia drukarkę lub ją dezaktywuje |
18-25 | GND | N/A | Masy dla sygnałów 1-12, w większości przypadków są to skrętki dwóch przewodów. |
A tutaj mamy przypisania sygnałów do poszczególnych wtyków DB-36:
Nr wtyku | Nazwa sygnału | Kierunek transmisji | Opis sygnału |
---|---|---|---|
1 | STROBE | PC → Druk. | Sygnał zegarowy |
2 | D0 | PC → Druk. | 8 linii danych |
3 | D1 | PC → Druk. | |
4 | D2 | PC → Druk. | |
5 | D3 | PC → Druk. | |
6 | D4 | PC → Druk. | |
7 | D5 | PC → Druk. | |
8 | D6 | PC → Druk. | |
9 | D7 | PC → Druk. | |
10 | ACK | PC ← Druk. | Potwierdzenie przyjęcia danych |
11 | BUSY | PC ← Druk. | Drukarka jest zajęta |
12 | POUT | PC ← Druk. | Skończył się papier w drukarce |
13 | SEL | PC ← Druk. | Drukarka jest włączona |
14 | AUTOFEED | PC → Druk. | Automatyczne przesuwanie wiersza |
15 | n/c | N/A | Nie używane |
16 | 0 V | N/A | Masa logiczna |
17 | CHASSIS GND | N/A | Masa osłony |
18 | +5 V PULLUP | PC ← Druk. | Napięcie stałe +5 V (maksymalnie 50 mA) |
19-30 | GND | N/A | Masy dla sygnałów 1-12, w większości przypadków są to skrętki dwóch przewodów. |
31 | RESET | PC → Druk. | Resetuje drukarkę, czyści jej bufor i inicjuje ją. |
32 | ERROR | PC ← Druk. | Wskazuje na błąd drukarki (lub jej wyłączenie) |
33 | 0 V | N/A | Masa sygnałowa |
34 | N/C | N/A | Nie używane |
35 | +5 V | PC ← Druk. | Napięcie stałe +5 V |
36 | SELCTIN | PC → Druk. | Uaktywnia drukarkę lub ją dezaktywuje |
Poszczególne sygnały portu Centronics posiadają następujące zastosowanie:
STROBE | - | Sygnał STROBE jest najważniejszym sygnałem portu Centronics, ponieważ informuje on drukarkę, że może odczytywać bajt z linii danych D0-D7. Zwykle STROBE ustawiony jest na 1 (ma napięcie 5V), a w momencie transmisji danych zmienia się na 0 (napięcie spada do około 0,5V). W tym momencie na liniach danych D0-D7 muszą być ustawione przesyłane bity. Ponieważ elementy cyfrowe posiadają różne czasy propagacji, sygnał STROBE powinien przechodzić w stan 0 z pewnym opóźnieniem, które gwarantuje ustalenie się napięć na wyjściach D0-D7. Opóźnienie to wynosi około pół mikrosekundy. Następnie sygnał STROBE przechodzi w stan niski na około 1 mikrosekundę. Po powrocie STROBE do stanu 1 dane na liniach D0-D7 utrzymują się jeszcze przez około pół mikrosekundy. Zatem całkowity czas przesłania 1 bajtu danych wynosi około dwóch mikrosekund. |
D0-D7 | - | 8 linii danych przenosi informację od komputera do drukarki (w pierwotnym standardzie Centronics linie te były jednokierunkowe, później jednak zaczęto wprowadzać dwukierunkowe linie danych, które umożliwiały transmisję również w kierunku odwrotnym). Są to zwykle kody znaków oraz dane graficzne i kody sterujące (np. przejście na inny krój pisma, pismo pochyłe lub pogrubione, itp.). Każda linia przekazuje jeden bit informacji. Bity są reprezentowane przez zwykłe poziomy TTL: 1 - 5V, 0 - 0,5V. |
ACK | - | Ten sygnał przekazuje komputerowi potwierdzenie, iż drukarka odczytała dane z linii D0-D7. Jest on aktywny w stanie niskim, tzn. utrzymuje napięcie 5V, które w momencie potwierdzenia spada do około 0,5V. W ten sposób komputer będzie wiedział, iż dane zostały przekazane do drukarki. Stan niski utrzymuje się typowo przez około 8 mikrosekund. |
BUSY | - | Przesłanie każdego bajtu zajmuje około 2 mikrosekundy, co oznacza, iż do drukarki dociera strumień danych o szybkości 500.000 B na sekundę. Tak szybko drukarka nie potrafi drukować, dlatego zastosowano linię BUSY. Po odebraniu każdego bajtu drukarka ustawia tę linię na 1, aby powstrzymać transmisję następnych bajtów aż do momentu, gdy drukarka poradzi sobie z bajtem właśnie odebranym. Gdy linia przyjmie stan 0, komputer może kontynuować przesłanie kolejnego bajtu. |
POUT | - | Jeśli w drukarce skończy się papier, to ustawia ona linię POUT na 1. W przeciwnym razie linia ta ma stan 0. Komputer, wykrywszy w ten sposób brak papieru, może odpowiednio poinformować swojego użytkownika. Gdy wystąpi taka sytuacja, linia BUSY również przechodzi w stan wysoki, aby komputer nie przesyłał dalszych danych aż do momentu rozwiązania tego problemu przez użytkownika. Oczywiście przy braku papieru na drukarce zapala się odpowiednie światełko, ale kto na nie patrzy... |
SEL | - | Gdy drukarka jest włączona i gotowa do przyjmowania danych (mówimy, że jest online), ustawia sygnał SEL na 1. Jeśli sygnał ten ma wartość 0, to drukarka jest odłączona (mówimy offline) i komputer nie będzie przesyłał do niej danych. |
AUTOFEED | - | Nie wszystkie drukarki traktują znak CR (ang. carriage return - powrót karetki - kod 13) w ten sam sposób. Niektóre z nich przesuną głowicę na początek drukowanego wiersza, a inne przesuną dodatkowo papier jeden wiersz w dół (lub w górę). Większość drukarek pozwala ustawić przełącznikami DIP lub w inny sposób, jak mają reagować na znak końca wiersza CR. Sygnał AUTOFEED załatwia tę sprawę. Gdy komputer ustawi ten sygnał na 0, to po odebraniu znaku CR drukarka automatycznie przewinie papier o jeden wiersz. Jeśli sygnał ten jest ustawiony na 1, to w celu przesunięcia papieru o jeden wiersz, komputer musi przesłać oprócz znaku CR również znak LF (ang. line feed - przesuw o wiersz - kod 10). Oczywiście całą sprawą zajmuje się oprogramowanie komunikujące się z drukarką - użytkownik często nawet nie jest świadomy tych problemów, bo i po co - dzisiaj większość drukarek pracuje w trybie graficznym drukując całą stroną. |
ERROR | - | Ta linia informuje komputer o wystąpieniu błędu w drukarce. Rodzaj błędu nie jest określony. Jeśli drukarka nie wykryła błędów, ustawia linię ERROR na 1. W przypadku błędu linia ta przyjmuje stan 0. |
RESET | - | Ten sygnał jest wykorzystywany przez komputer do ponownej inicjalizacji drukarki. Normalnie RESET ma stan 1. Przy inicjalizacji jest ustawiane na 0. Sygnał taki przydaje się do ustawienia drukarki w stan początkowy przy rozpoczynaniu sesji drukowania. Poprzednia sesja mogła przesłać do drukarki różne kody sterujące, które ustawiły ją w jakiś niepożądany stan: np. druk pisma pochyłego, pogrubionego, itp. Resetując drukarkę, pozbywamy się tych ustawień. |
SELCTIN | - | Sygnał ten pozwala komputerowi aktywować (stan 0) i dezaktywować drukarkę (stan 1). Gdy drukarka jest w stanie offline, nie będzie przyjmowała danych od komputera. |
Port Centronics pierwotnie miał być wykorzystywany do połączenia komputera z drukarką. Jednakże bardzo szybko okazało się, iż może on przesyłać dane również pomiędzy innymi typami urządzeń. Aby usprawnić taką komunikację, rozszerzono definicję sygnałów w kolejnych wersjach interfejsu Centronics. Poniżej krótko opisujemy tryby pracy portu Centronics.
Tryb ten jest używany do komunikacji komputerów osobistych z drukarkami. Często jest on opisywany skrótem SPP (ang. Standard Parallel Port - Standardowy Port Równoległy) lub jako tryb Centronics (ang. Centronics Mode). Poniższy rysunek przedstawia przebieg sygnałów na istotnych liniach portu Centronics w czasie transmisji danych od komputera do drukarki.
Cykl przesyłu bajtu danych w trybie kompatybilności
Wszystkie następne tryby pracy interfejsu Centronics wymagają wstępnej negocjacji komputera z urządzeniem zewnętrznym, w wyniku której komputer otrzymuje informację zwrotną o możliwościach podłączonego przez port urządzenia oraz o rodzajach obsługiwanych przez niego trybów komunikacyjnych.
Negocjacja (ang. negotiation) jest ciągiem zdarzeń w porcie Centronics, które nie wpływają na pracę starszych urządzeń nie obsługujących negocjacji. Natomiast w przypadku nowszych urządzeń pozwalają na ich właściwą identyfikację. Negocjację przeprowadza się zawsze w trybie kompatybilności SPP. Jeśli dane urządzenie nie zareaguje odpowiednio na zdarzenia negocjacji, to komputer pozostawi port Centronics w trybie SPP, co umożliwi mu współpracę ze starszym sprzętem. Natomiast urządzenia standardu IEEE 1284 zareagują odpowiednio na tę sekwencję i komputer będzie dla nich mógł wybrać właściwy sposób funkcjonowania interfejsu.
W czasie fazy negocjacji komputer umieszcza tzw. bajt rozszerzenia (ang. Extensibility Data Byte) na liniach D0-D7 i inicjuje sekwencję negocjacji. Żądanie może dotyczyć przejścia interfejsu w określony tryb pracy lub pobrania numeru ID urządzenia zewnętrznego. Numerem identyfikacyjnym się tutaj nie zajmiemy, poniższy opis dotyczy natomiast podstawowej sekwencji negocjacji.
Poniższa tabela przedstawia bity bajtu rozszerzenia oraz ich znaczenie dla urządzenia peryferyjnego.
Bit | Opis | wartość binarna |
|
---|---|---|---|
D7 | Żądanie rozszerzonego połączenia | 1000 0000 | |
D6 | Żądanie trybu EPP | 0100 0000 | |
D5 | Żądane trybu ECP z RLE | 0011 0000 | |
D4 | Żądanie trybu ECP bez RLE | 0001 0000 | |
D3 | Zarezerwowane | 0000 1000 | |
D2 |
Żądanie numeru ID |
Nibble |
0000 0100 |
Byte |
0000 0101 |
||
ECP bez RLE |
0001 0100 |
||
ECP z RLE |
0011 0100 |
||
D1 | Zarezerwowane | 0000 0010 | |
D0 | Tryb Byte | 0000 0001 | |
żaden | Tryb Nibble | 0000 0000 |
Na poniższym rysunku przedstawiono przebiegi sygnałów występujących podczas negocjacji komputera z urządzeniem zewnętrznym.
Termin angielski nibble oznacza czwórkę bitów - pół bajtu. Jeden bajt składa się z dwóch takich czwórek: starszej i młodszej:
← bajt → | |||||||
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
starszy niblle | młodszy nibble |
Tryb Nibble jest najpopularniejszym sposobem uzyskania kanału zwrotnego z urządzenia podłączonego do portu Centronics, gdyż nie opiera się on na standardowym sposobie pracy poszczególnych linii sygnałowych - w innych trybach linie te muszą być zwykle dwukierunkowe, a to z kolei wymaga przebudowy elektroniki realizującej to połączenie. Tryb ten zwykle łączy się z trybem kompatybilności w celu stworzenia pełnego, dwukierunkowego kanału wymiany danych. Oczywiście, podłączone urządzenie do portu Centronics musi obsługiwać ten tryb. Komputer sprawdza w fazie negocjacji możliwości urządzenia podłączonego do portu Centronics.
Standardowy port Centronics udostępnia pięć linii sygnałowych, którymi urządzenie zewnętrzne może się komunikować z komputerem. Linie te służą normalnie do informowania komputera o statusie drukarki. Jednakże można je wykorzystać do przesłania bajtu danych jako dwóch nibble w dwóch kolejnych cyklach. Poniższa tabela definiuje nazwy sygnałów w trybie Nibble.
Sygnał w trybie SPP |
Nazwa w trybie Nibble |
We/Wy | Opis wykorzystania sygnałów w trybie Nibble |
---|---|---|---|
STROBE | STROBE | Wy | Nieużywane w transmisji zwrotnej. |
AUTOFEED | HostBusy | Wy | Sygnał potwierdzenia przyjęcia danych w trybie Nibble. Stan 0 oznacza gotowość komputera na przyjęcie danych. |
SELECTIN | 1284Active | Wy | Ustawione na 1 w trybie przesyłu Nibble. |
INIT | INIT | Wy | Nieużywane w transmisji zwrotnej. |
ACK | PtrClk | We | Ustawiane na 0 przy ważnym nibble, ustawiane na 1 w odpowiedzi na HostBusy 1. |
BUSY | PtrBusy | We | Przesyła bit nibble b3, później b7 |
PE | AckDataReq | We | Przesyła bit nibble b2, później b6 |
SELECT | Xflag | We | Przesyła bit nibble b1, później b5 |
ERROR | DataAvail | We | Przesyła bit nibble b0, później b4 |
D0-D7 | nieużywane |
Poniższy rysunek przedstawia przebiegi sygnałów przy transmisji bajtu w trybie Nibble.
Tryb nibble jest realizowany programowo. Ogranicza to maksymalną szybkość przesyłu danych do około 50 KB na sekundę. Nie stanowi to problemu w przypadku drukarek, lecz ogranicza inne urządzenia, które posiadają dużo większą szybkość transmisji danych (stacje dysków, modemy sieciowe, itp). Największą zaletą tego rozwiązania jest możliwość uzyskania tego trybu na wszystkich komputerach PC wyposażonych w standardowy port Centronics.
Późniejsze implementacje standardu Centronics, dokonane szczególnie przez IBM na modelach PS/2, dodały możliwość dwukierunkowej komunikacji poprzez linie danych D0-D7, zatem port Centronics mógł służyć zarówno do przesyłania danych od komputera jak i do ich odczytu z urządzenia zewnętrznego. Dzięki takiemu rozwiązaniu urządzenie zewnętrzne może przesyłać do komputera pełny bajt danych w jednym cyklu po liniach D0-D7. Tryb bajtowy również jest uaktywniany poprzez negocjację komputera z urządzeniem zewnętrznym.
Ten tryb pozwala urządzeniu zewnętrznemu przesyłać bajt danych do komputera PC z szybkością zbliżoną do trybu kompatybilności. Poniższa tablica przedstawia sygnały wykorzystywane w trybie Byte.
Sygnał w trybie SPP |
Sygnał w trybie Byte |
We/Wy | Opis sygnałów w trybie Byte |
---|---|---|---|
STROBE | HostClk | Wy | Ustawiane w stan 0 na końcu przesyłania każdego bajtu w celu zaznaczenia, że bajt został odczytany. Jest sygnałem potwierdzenia. |
AUTOFEED | HostBusy | Wy | Ustawiane na 0, gdy komputer jest gotowy do odczytu bajtu.. Ustawiane na 1, gdy bajt zostanie odczytany. Sygnał potwierdzenia odbioru. |
SELECTIN | 1284Active | Wy | Ustawione na 1, gdy komputer pracuje w trybie rozszerzonej transmisji. |
INIT | INIT | Wy | Nieużywane, ustawione na 1. |
ACK | PtrClk | We | Ustawione na 0, gdy dane są gotowe do odczytu z D0-D7. Ustawiane na 1 w odpowiedzi na przejście linii HostBusy w stan 1. |
BUSY | PtrBusy | We | Informuje o zajętości urządzenia. |
PE | AckDataReq | We | Występuje z DataAvail |
SELECT | Xflag | We | Znacznik rozszerzenia. W trybie Byte nie jest używany. |
ERROR | DataAvail | We | Ustawiane na 0 przez urządzenie zewnętrzne, gdy dane zwrotne są dostępne. |
D0-D7 | D0-D7 | We/Wy | Używane do przesyłu danych z urządzenia zewnętrznego do komputera. |
EPP pochodzi od angielskiej nazwy Enhanced Parallel Port - Ulepszony Port Równoległy. Protokół EPP został opracowany przez firmy Intel, Xircom i Zenith Data Systems. Celem tego projektu było stworzenie portu równoległego o wysokich parametrach użytkowych, który byłby wciąż kompatybilny ze standardowym portem Centronics. Protokół EPP, oferując wiele korzyści wytwórcom urządzeń peryferyjnych sterowanych przez port równoległy, bardzo szybko się rozpowszechnił i stał się opcjonalnym sposobem przesyłu danych. Stało się to przed przyjęciem standardu IEEE 1284.
Protokół EPP udostępnia cztery typy cykli przesyłu danych:
Cykle danych używane są do przesyłu danych pomiędzy komputerem a urządzeniem zewnętrznym. Cykle adresu służą do przekazywania adresu, kanału lub polecenia i informacji sterujących. W poniższej tabeli przedstawiamy sygnały używane przez tryb EPP wraz z ich odpowiednikami dla portu SPP.
Sygnał w trybie SPP |
Sygnał w trybie EPP |
We/Wy | Opis sygnałów w trybie EPP |
---|---|---|---|
STROBE | WRITE | Wy | Aktywny w stanie 0. Oznacza operację zapisu. W cyklu odczytu ma stan 1. |
AUTOFEED | DATASTB | Wy | Aktywny w stanie 0. Oznacza wykonywanie operacji odczytu lub zapisu danych. |
SELECTIN | ADDRSTB | Wy | Aktywny w stanie 0. Oznacza wykonywanie operacji odczytu lub zapisu adresu. |
INIT | RESET | Wy | Aktywny w stanie 0. Resetuje urządzenie zewnętrzne. |
ACK | INTR | We | Przerwanie z urządzenia zewnętrznego. Wykorzystywany do generacji przerwania w komputerze. |
BUSY | WAIT | We | Sygnał potwierdzenia. W stanie 0 oznacza zgodę na rozpoczęcie cyklu. W stanie 1 oznacza zgodę na zakończenie cyklu. |
D0-D7 | D0-D7 | We/Wy | Dwukierunkowe linie danych oraz adresów. |
POUT | definiowany | We | Może być używane w różny sposób przez każde urządzenie peryferyjne. |
SELECT | definiowany | We | Może być używane w różny sposób przez każde urządzenie peryferyjne. |
ERROR | definiowany | We | Może być używane w różny sposób przez każde urządzenie peryferyjne. |
Na rysunku poniżej przedstawiamy przykładowy cykl zapisu danych - w cyklu adresu zamiast linii DATASTB jest używana w identyczny sposób linia ADDRSTB. W cyklu odczytu linia WRITE zachowuje stan 1 przez cały czas trwania cyklu. Sygnał IOW (ang. Input Output Write - Zapis Do Portu We/Wy) jest sygnałem mikroprocesora, a nie portu EPP. Znalazł się on na rysunku po to, aby pokazać, iż cały cykl zapisu EPP do urządzenia zewnętrznego odbywa się w czasie jednego cyklu we/wy wykonywanego przez procesor.
Ponieważ cykl przesyłu danych w porcie EPP odbywa się w ciągu jednego cyklu
we/wy mikroprocesora, port ten może osiągnąć dużą szybkość przesyłu danych - od
500KB do 2MB na sekundę. Jest to jedna z głównych zalet trybu EPP.
ECP jest skrótem angielskiej nazwy Extended Capability Port - Port o Rozszerzonych Możliwościach. Standard ECP został opracowany wspólnie przez Microsoft i Hewlett Packard do współpracy z drukarkami i skanerami. Zapewnia on szybką, dwukierunkową wymianę danych pomiędzy komputerem a urządzeniem zewnętrznym. Protokół ECP umożliwia transmisję dwukierunkową dla danych oraz dla rozkazów. Zaimplementowano również kompresję danych typu RLE (ang. Run Length Encoding), dzięki której ilość przesyłanych danych może być istotnie mniejsza - jest to szczególnie pożądane przy urządzeniach, które wymagają przesyłania dużej liczby danych, takich jak drukarki laserowe i skanery. Jednakże tryb kompresji RLE musi być obsługiwany po obu stronach toru transmisyjnego, aby można było z niego skorzystać.
Kodowanie RLE polega na zastępowaniu powtarzających się ciągów znaków lub bajtów informacją o ich liczbie powtórzeń. Załóżmy, że mamy ciąg: AAAAAAAAAABBBBBCCCCCCCCCCCCCCCDDDDDDDDDD W ciągu tym występuje 40 znaków = 40 bajtów danych. Powtarzające się znaki zastępujemy znakiem oraz liczbą jedno bajtową, określającą ilość powtórzeń znaku. Otrzymamy: A ( 10 ) B ( 5 ) C ( 15 ) D ( 10 ) Na niebiesko zaznaczyliśmy bajty, które zawierają liczbę powtórzeń poprzedzającego je czerwonego znaku. Teraz liczba bajtów wynosi tylko 8 - dane skompresowaliśmy do 20% pierwotnej objętości, czyli 5 do 1. Tego typu powtarzające się dane często występują w grafice - np. tło składa się z jednolitych, dużych obszarów, wypełnionych tym samym kolorem kolorem. Ponieważ ilość powtórzeń jest przesyłana w inny sposób niż znaki, przy znakach nie powtarzających się nie przesyłamy bajtu ilości powtórzeń. Taki system pozwala zawsze skompresować dane, jeśli zawierają powtórki. Przy danych różnorodnych nic nie tracimy. |
Port ECP pozwala również na adresowanie kanałów, dzięki czemu komputer może komunikować się niezależnie z różnymi urządzeniami logicznymi, które fizycznie znajdują się w jednej obudowie - np. urządzenia wielofunkcyjne zawierające jednocześnie fax/modem, skaner i drukarkę. Adresowanie kanałów umożliwia komputerowi pobieranie danych z modemu w czasie, gdy kanał drukarki jest zajęty przetwarzaniem i wydrukiem dokumentu. W trybie kompatybilności CPP, gdy drukarka staje się zajęta przetwarzaniem danych, komunikacja z nią nie jest możliwa. W trybie ECP komputer ma możliwość odwołania się do innego kanału i transmisja może odbywać się dalej.
Protokół ECP zmienia definicje sygnałów SPP, aby były bardziej spójne z regułami transmisyjnymi w tym trybie. W poniższej tabeli zebraliśmy sygnały stosowane w trybie ECP.
Sygnał w trybie SPP |
Sygnał w trybie ECP |
We/Wy | Opis sygnałów w trybie ECP |
---|---|---|---|
STROBE | HostClk | Wy | Używane wraz z PeriphAck do przesyłu danych lub adresu do urządzenia peryferyjnego. |
AUTOFEED | HostAck | Wy | Udostępnia stan Rozkazu/Danych w transmisji do urządzenia. Używane z PeriphClkdo przesyłu danych w kierunku odwrotnym. |
SELECTIN | 1284Active | Wy | Ustawione na 1, gdy komputer obsługuje tryb transmisji rozszerzonej. |
INIT | ReverseRequest | Wy | Ustawiane na 0, aby przełączyć kanał na transmisję w odwrotnym kierunku. |
ACK | PeriphClk | We | Używane wraz z HostAck do przesyłu danych w kierunku odwrotnym. |
BUSY | PeriphAck | We | Używane z HostClk d przesyłu danych lub adresu do urządzenia.. W kierunku odwrotnym udostępnia stan Rozkazu/Danych. |
PE | AckReverse | We | Ustawiane na 0 w celu potwierdzenia dla ReverseRequest. |
SELECT | Xflag | We | Znacznik rozszerzenia. |
ERROR | PeriphRequest | We | Ustawiane na 0 przez urządzenia w celu poinformowania komputera o dostępności danych zwrotnych. |
D0-D7 | D0-D7 | We/Wy | Używane do przesyłu danych pomiędzy komputerem a urządzeniem zewnętrznym. |
Na obrazku poniżej przedstawiono cykle przesyłu informacji od komputera do urządzenia zewnętrznego. Gdy linia HostAck jest ustawiona na 1, to przesyłane są dane. Gdy linia HostAck jest ustawiona na 0, komputer przesyła rozkaz, który jest albo liczbą powtórzeń poprzednio przesłanego bajtu danych dla RLE, albo adresem kanału urządzenia logicznego. Rozpoznanie umożliwia najstarszy bit D7. Jeśli ma on wartość 0, to bity D0-D6 zawierają liczbę powtórzeń dla RLE (0-127). Jeśli bit D7 ma wartość 1, to bity D0-D6 określają numer kanału logicznego (0-127). Na obrazku tym przedstawiono przesłanie bajtu danych, po którym następuje przesłanie rozkazu.
Kolejny rysunek przedstawia przesłanie danej i rozkazu w kierunku odwrotnym - od urządzenia peryferyjnego do komputera.
Powyższy opis nie wyczerpuje wszystkich cech trybu ECP. Niestety, ilość informacji jest tutaj dosyć obszerna i zainteresowanych muszę odesłać do bardziej szczegółowej literatury.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.