Porty równoległe(1)


  1. CEL ĆWICZENIA.

Celem ćwiczenia jest zapoznanie się z budową i zasadą działania portów równoległych oraz zasadami programowania tych portów.

  1. PODSTAWY TEORETYCZNE.

Budowa i zasada działania łącza równoległego

Złącze równoległe jest jednym z najstarszych elementów architektury PC, który (nie 1icząc pewnych kosmetycznych zabiegów) utrzymuje się w niezmienionej formie przez cały szereg lat. Wiele innych elementów architektury przeszło w tym samym okresie czasu wiele burzliwych etapów rozwoju zakończonych powstaniem kolejnych generacji elementów lub wręcz zatwierdzeniem całkowicie nowych standardów.

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 orygi­nale 12). Posłużenie się gniazdem DB-25 pozwoliło na umieszczenie na tej samej blaszce maskującej znormalizowaną szczelinę obudowy (Slot) dodatkowego gniazda DB-9 stanowiącego wyprowadzenie złącza szeregowego PC. Magistrala danych jest 8-bitowa i składa się z linii DO - D7.

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, —INI, —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. Sprytni programiści szybko jednak odkryli możliwość takiej transmisji (tryb półbajtowy). 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 sygna1izację pewnych stanów wyjątkowych. W omawianym trybie cztery spośród tych linii wykorzystuje się do transmisji w kierunku odwrotnym. Dwa następu­jące po sobie półbajtowe cykle pozwalają na organizację wymiany danych w tempie około 100 kB/s. Zachęciło to szereg firm do wypuszczenia na rynek kart sieciowych i kontrolerów SCSI opierających swe działanie na tak przerobionym złączu równoległym.

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. Na rynku obecne są modele wyposażone bądź to w oba rodzaje wspomnianych złącz, bądź posiadające moż1iwość wymiany modułu obsługującego łącze (interfejsu). 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ówno­ległe jedynie do około 5 m.

Współczesne drukarki wykraczają poza rolę biernego odbiorcy poleceń i danych, dyspo­nują 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.

Współczesny komputer PC może wyprowadzać na zewnątrz kilka złącz równoległych. Maksymalna liczba takich łącz, a tym samym akceptowanych przez BIOS i DOS drukarek, wynosi cztery. System operacyjny identyfikuje je poprzez oznaczenia LPT1, LPT2, LPT3 i LPT4. Każde z tych łącz musi być zatwierdzone przez BIOS w trakcie ładowania systemu. Informacja o liczbie łącz równoległych w systemie przechowywana jest w obszarze danych BIOS-u, w bitach 7. i 6. bajtu o adresie 0040:0011h. Niektóre starsze odmiany BIOS-u ignorują łącza LPT3 i LPT4.

Poruszając się na poziomie systemu operacyjnego DOS możemy odwoływać się do dru­karek przez symbole LPT1 - LPT4. Synonimem LPT1 jest PRN - domyślna drukarka systemu. Symbole te stanowią oznaczenia urządzeń i nie jest powiedziane, że z danym łączem LPTn musi współpracować drukarka. Jedynie programy obsługujące przerwania sprzętowe pochodzące od tych łącz (zwykle IRQ5 I IRQ7) ukierunkowane są na specy­fikę obsługi drukarki z łączem równoległym.

Specyfikacja portu równoległego PC ujęta została w standardzie IEEE-1284 wydanym po raz pierwszy w roku 1994. Standard ten definiuje 5 trybów pracy:

Pierwsze trzy tryby opierają się w swej przeważającej części na pierwotnej maszynie określanej jako SPP (Standard Parallel Port). Dwa pozostałe wymagają kompletnej modyfikacji sprzętu. Całkowicie odmienne są protokoły uzgadniające (Handshake) a i uzyskiwane prędkości transmisji leżą w całkiem innym zakresie. Wszystkie kolejne standardy są zgodne w dół. Należy jednak pamiętać, iż tryby bajtowy i półbajtowy nie były implementowane na wszystkich kartach i kontrolerach.

Realizacja portu równoległego w ramach architektury PC

Ewolucja złącza równoległego dotyczyła w sporym stopniu jego fizycznej lokalizacji w ramach architektury PC. Przez długi czas wchodziło ono w skład karty grafiki mono­chromatycznej jako element układu scalonego LSI zawierającego cały sterownik. Adres bazowy złącza wynosił w takim wypadku 0x3BCh.

W momencie upowszechnienia grafiki kolorowej port równoległy dokonał pierwszej przeprowadzki na samodzielną kartę rozszerzającą. Karty takie były zawsze 8-bitowe, nawet w standardzie EISA. Dekodowały one linie adresowe A0—A9 oraz sygnały ~IOR i ~IOW magistrali zewnętrznej, rozpoznając w ten sposób odwołania procesora do swych rejestrów. Drugim z możliwych wariantów było wykonanie portu równoległego jako elementu składowego uniwersalnych kart 1/0 (Multi I/O) zawierających również inne komponenty, takie jak kontrolery dysków oraz porty szeregowe.

Konfiguracja numeru portu LPT1 - 4 (odpowiada określeniu adresu bazowego) odby­wała się do niedawna za pomocą mikroprzełączników i zwór konfiguracyjnych. W ten sam sposób przebiegał przydział linii przerwań (standardowo IRQ7, alternatywnie IRQ5).

W miarę wzrostu stopnia integracji układów scalonych płyty głównej (Chip-Set) nastą­piło wchłonięcie portu równoległego przy zachowaniu całkowitej zgodności programo­wej z oryginałem. Nie jest już również konieczne poszukiwanie zwór konfiguracyjnych, bowiem stosowne opcje zawarte są w programie CMOS-SETUP.

Jeden z elementów pierwotnie zdefiniowanego złącza równoległego przetrwał wszystkie te zmiany w nienaruszonej formie. Kompletny zestaw sygnałów wyjściowych i wejścio­wych portu skupiony jest nadal w 25-końcówkowym gnieździe typu DB-25 ujętym w normie IEEE-1284-A. Sposób rozmieszczenia linii złącza przedstawia rysunek poniżej.

0x08 graphic

Rozmieszczenie sygnałów w 25 - końcówkowym gnieździe łącza równoległego

Połączenie pomiędzy komputerem a drukarką realizowane jest przewodem, który od strony komputera wyposażony jest we wtyk DB-25, a od strony drukarki w 36-końcówkowe złącze typu Centronics (w/g specyfikacji IEEE-1284-B). Od pewnego czasu na rynku egzystuje również nowa, kompaktowa forma wtyku ujęta w normie IEEE-1284-C. Wszystkie trzy typy wtyków oraz opis ważniejszych sygnałów przedstawione zostały poniżej.

0x08 graphic
0x08 graphic

0x08 graphic

Trzy typy wtyczek okablowania portu równoległego

Dostęp do łącza równoległego poprzez funkcje BIOS

Funkcja 00h

Działanie:

Funkcja ta wysyła jeden znak do dowolnego z zainstalowanych w systemie łącz równo­ległych.

Parametry wejściowe:

AH 00h;

AL. kod ASCII znaku;

DX numer łącza:

0 = LPT1,

1 = LPT2,

2 = LPT3,

4 = LPT4.

Wartości zwracane:

AH bajt statusowy.

Przykład:

mov ah,00h ; numer funkcji
mov al,`D ; znak “D”
mov dx,03h ; port LPT4
int 17h ; wyprowadź znak `D” na drukarkę LPT4

Funkcja 01h

Działanie:

Funkcja 01h przeprowadza tzw. sprzętową inicjalizację drukarki i łącza (ang. hardware reset). Linia ~INI jest aktywowana poprzez wystawienie na niej zera logicznego. Po­dobny efekt uzyskać można wysyłając tzw. sekwencję inicja1izującą (ang. software reset), na ogół <ESC>'@', przy czym korzystamy wówczas ze wszystkich 8 linii danych i linii sterujących. Należy jednak pamiętać, że nie każda drukarka reaguje na sygnał ~INI.

Parametry wejściowe:

AH 01h;

DX numer łącza:
0 = LPT1,
1 = LPT2,
2 = LPT3,
4 = LPT4.

Wartości zwracane:

AH bajt statusowy.

Przykład:

mov ah,01h ; numer funkcji

mov dx,00h ; LPT1

int 17h ;inicjalizuj drukarkę dołączoną do portu LPT1

Funkcja 02h

Działanie:

Funkcja ta zwraca w rejestrze AH bajt statusowy, odwzorowujący stan łącza i drukarki. Nie są wykonywane żadne inne operacje.

Parametry wejściowe:

AH 02h;

DX numer łącza:
0 = LPTI,
1 = LPT2,
2 = LPT3,
4 = LPT4.

Wartości zwracane:

AH bajt statusowy.

Przykład:

mov ah,02h ; numer funkcji
mov dx,01h ; LPT2
mt 17h ; bajt statusowy znajdzie się w AH

Wymieniany w opisie funkcji 00h, 01h i 02h bajt statusowy zawiera następujące dane:

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

bit 7 Stan linii BSY:
0 - drukarka wolna,
1 - drukarka zajęta.

bit 6 Stan linii ~ACK:

0 - łącze oczekuje na sygnał potwierdzenia,

1 - nadszedł sygnał potwierdzenia.

bit 5 Stan linii PAP:
1 - w drukarce brak papieru.

Bit 4 Stan linii SEL:

0 - drukarka w stanie off-line,

1 - drukarka w stanie on-line.

bit 3 Stan linii ERR:

1 - drukarka zajęta, off-line lub inny błąd, na przykład drukarka wyłączona

bity 2 - 1 Zarezerwowane (zwykle równe 1).

bit 0 Przekroczenie limitu czasu (ang. time-out) w oczekiwaniu na reakcję drukarki.

Maksymalne czasy oczekiwania systemu na reakcję drukarki definiowane są przez BIOS i przechowywane w jego obszarze danych.

  1. PRZEBIEG ĆWICZENIA.

Budowa kabla do transmisji równoległej

Transmisję równoległą w najprostszy sposób można zrealizować wykorzystując pięć najmłodszych linii dla portu danych oraz pięć linii (dla bitów) portu stanu drukarki. Takie warunki dyktowane są mianowicie przez ograniczenie jakim jest to, że port równoległy posiada w swoich standardowych trybach pracy jedynie pięć linii wejściowych przez co równocześnie możemy wprowadzić pięć bitów, korzystając z tych możliwości najlepiej jest przesyłać bajty podzielone na pół, a piąty bit traktować jak bit strobu (taktujący) transmisji. Taki sposób transmisji jest często nazywany transmisja w trybie Nibble (połówkami). Zmiany na tej linii mówią, że na porcie znajduje się dana do odczytania. Jednocześnie wykorzystanie piątej linii na transmisję byłoby dosyć kłopotliwe ponieważ jest ona na wejściu negowana tak więc podając jedynkę otrzymujemy zero i na odwrót. Ta właściwość wcale nie przeszkadza w wykorzystaniu tej linii jako linii taktującej. Rejestry danych portu równoległego są to rejestry zatrzaskowe tj. Po wpisaniu (zatrzaśnięciu) wartości jest ona stale na porcie do momentu wpisania (zatrzaśnięcia) nowej danej. 
Transmisja równoległa jest realizowana za pośrednictwem odpowiednio przerobionego kabla równoległego. Każdy, kto posiada lutownicę i trochę wprawy może sobie taki kabel zrobić przerabiając zwyczajny kabel jaki możemy kupić w sklepie. Należy w nim połączyć ze sobą następujące piny: 

0x01 graphic

Schemat kabla do transmisji równoległej

Z powyższego rysunku wynika, że po stronie nadawczej jak i odbiorczej każdy z komputerów ma do dyspozycji 5 linii. 

Adres

Rozmiar

Znaczenie

Adres bazowy 

0040:0008h

słowo

Adres bazowy złącza LPT1

LPT1 378h (3BCh)

0040 000Ah

słowo

Adres bazowy złącza LPT1

LPT2 278h (378h)

0040:000Ch

słowo

Adres bazowy złącza LPT1

LPT3 3BCh (278h)

0040:000Eh

słowo

Adres bazowy złącza LPT1

LPT4 2BCh (2bch)


 

Według oryginalnego projektu, linie kontrolne służą do sprzęgania i kontroli sygnałów pomiędzy PC i drukarką. Linie stanu są używane do sygnałów sterujących takich jak wskaźniki stanów dla takich rzeczy jak papier w drukarce, zajętość oraz błędy połączenia lub drukarki. Linie danych dostarczają dane z PC do drukarki tylko w kierunku PC=>drukarka, w portach umożliwiających transmisję dwukierunkową ustawienie odpowiedniego bitu powoduje, że rejestry danych mogą przyjmować dane z zewnątrz. 

Port równoległy posiada stałe miejsca w przestrzeni adresowej komputera. Posiada on standardowo 3 rejestry adresowane od jego adresu bazowego. Nowsze rozwiązania portu równoległego, wspierające rozszerzone tryby standardu 1284, używają od 8 do 16 rejestrów adresowanych względem adresów bazowych i są one relokowalne ze względów na standard Plug and Play spełniany przez port równoległy. 
 

Połączenie dwóch komputerów kablem równoległym

Kabel do transmisji równoległej

25-pinowe złącze typu D męskie

0x01 graphic

0x01 graphic

komputer 1

komputer 2

bit danych 0

2

15

błąd

bit danych 1

3

13

wybór

bit danych 2

4

12

brak papieru

bit danych 3

5

10

potwierdzenie

bit danych 4

6

11

zajęty

potwierdzenie

10

5

bit danych 3

zajęty

11

6

bit danych 4

brak papieru

12

4

bit danych 2

wybór

13

3

bit danych 1

błąd

15

2

bit danych 0

reset

16

16

reset

wybór

17

17

wybór

masa

25

25

masa

Schemat połączenia równoległego dwóch komputerów

Korzystając z tych samych mechanizmów programowych co w przypadku połączenia szeregowego, do transferu danych można użyć kabla równoległego. Należy zdefiniować port jako dwukierunkowy, gdyż często standardowo komunikacja odbywa się przez port w jedną stronę. Szybkość transferu przez złącze równoległe wynosi około 70 Kb/s. Połączenie kablem wykorzystujące port ECP/EPP pozwala uzyskać transfer danych rzędu 500 Kb/s.

Transmisja równoległa za pośrednictwem programu Norton Commander

Norton Commander umożliwia dostęp do zasobów dyskowych drugiego komputera. Można skopiować przenieść lub usunąć dowolny plik/katalog. Widoczne są wszystkie dyski komputera pracującego w trybie biernym.

  1. Na obu komputerach wybieramy opcję połącz.

0x01 graphic

  1. Informujemy komputer, do którego portu podłączony jest kabel. Wybieramy tryb pracy (na jednym komputerze aktywny, na drugim bierny).

0x01 graphic

  1. Pojawia się okienko informujące o oczekiwaniu na połączenie..., a po nim kolejno na komputerze "aktywny":

0x01 graphic

na komputerze "bierny":

0x01 graphic

  1. Jeśli po oczekiwaniu na połączenie pojawi się poniższy komunikat, wtedy trzeba sprawdzić kable, zresetować komputer, wypróbować inne porty (do wyboru mamy zazwyczaj 2), przetestować wszystkie warianty, sprawdzić przy pomocy np. starej myszki działanie portów, sprawdzić poprawność połączeń śledzia z kartą I/O (albo płytą główną), zobaczyć, co na temat LPT ma do powiedzenia jakiś program diagnostyczny np. MSD itd.. Co prawda NC jakoś działa pod Windows, ale zalecane jest uruchamianie go pod DOS-em - w czasie startu systemu: F8 i "wiersz poleceń" (w przypadku takich programów jak NC, Windows ma swoje kaprysy i nie zawsze pozwala manipulować portami LPT).

0x01 graphic

Układ uniwersalnego, równoległego portu wejścia/wyjścia 8255

Układ 8255 jest programowalnym równoległym portem wejścia/wyjścia. Jego polski odpowiednik to MCY7855, zgodny w zakresie topologii wyprowadzeń, parametrów elektrycznych jak i czasowych. Na poniższym rysunku przedstawiono ten układ wraz z nazwami sygnałów.

0x01 graphic

Topologia wyprowadzeń układu 8255 (MCY 7855)

Pełne wykorzystanie systemu mikroprocesorowego realizuje się w wyniku połączenia z otoczeniem (urządzeniami obsługi systemu, innymi systemami mikroprocesorowymi). Układy, które pośredniczą między magistralą systemu mikroprocesorowego, a jego otoczeniem nazywają się układami wej./wyj. lub układami sprzęgającymi (interfejs).

Podstawową funkcją tych układów jest przekazywanie informacji na zewnątrz systemu oraz pobieranie informacji i przesyłanie ich do mikrokomputera. Układy te zawierają:

Układ 8255 jest uniwersalnym portem wej./wyj. Zerowanie tego układu powoduje ustawienie wszystkich trzech 8-bitowych portów wej./wyj. (PA, PB, PC) jako portów wejściowych. W zależności od potrzeb możemy programowo ustawić port jako wyjściowy lub wejściowy. Dokonać tego możemy programowo wpisując odpowiednie ośmiobitowe słowo sterujące do specjalnego rejestru wewnątrz układu 8255. Jeden z nich zajmuje się komunikacją wyświetlacza i klawiatury z systemem. Umożliwia też połączenie systemu z wejściem magnetofonowym. Przez złącze to możemy przesyłać i pobierać dane z magnetofonu za pomocą odpowiednich bloków (zapisu i odczytu).

0x01 graphic

Schemat blokowy układu MCY 7855 (8255)

Drugi układ 8255 zajmuje się obsługą złącza wyjściowego. Do złącza tego za pomocą interfejsu możemy podłączyć różne aplikacje. Układ 8255 może pracować w trzech różnych trybach:

0x01 graphic

Rys.1. Sposób pracy układu 8255 w trybie 0

0x01 graphic

Rys.2. Sposób pracy układu 8255 w trybie 1

0x01 graphic

Rys.3. Sposób pracy układu 8255 w trybie 2

Przykładowe programy

Program wysyła znak za pośrednictwem łącza równoległego.

program lacze_rown;

uses dos,crt;

procedure wyslij(znak:byte);

var

regs:registers;

begin

regs.ah:.=$00;

regs.al:=znak;

regs.dx:=$00;

intr($17,regs);

end;

procedure inicjalizacja;

var

regs:registers;

begin

regs.ah:=$01;

regs.dx:=$00;

intr($17,regs);

end;

begin

inicjalizacja;

wyslij(ord('B'));

readln;

end.

13



Wyszukiwarka

Podobne podstrony:
mazurkiewicz,PODSTAWY TECHNIK MIKROPROCESOROWYCH, porty równoległe obsługa klawiatury matrycowej zes
T6 Elementy równoległe i prostopadłe
Porty morskie i żegluga morska w Polsce w latach 1999 2001
Wykłady 24.10, porty i terminale
Planowanie pracy równoległej transformatorów
Projektory, myszki, porty, skanery
Porty wejścia wyjścia
Żegluga morska i porty morskie w 2009
porty krajowe 11
Porty sieciowe w Windows
porty lotnicze
11 Równoliczność zbiorów
PRADNICA SYNCHRONICZNA PRACA RÓWNOLEGŁA
IIITE GR4 CW6?danie obwodu RLC równoległego w funkcji czestotliwosci Rezonans pradow
3 O dla stropu gęstożebrowego?rt60 obciążonego ścianką działową murowaną równoległ1
REZONANS SZEREGOWY I RÓWNOLEGŁY
IO-EgzaminBAMBOLEO, SEMESTRY, Sem 6, Algorytmy Rownolegle
Układ uniwersalnego, równoległego portu wejścia wyjścia?55

więcej podobnych podstron