R6-1.DOC

(452 KB) Pobierz
Szablon dla tlumaczy

Rozdział 6.
Układy równoległego wejścia-wyjścia

Jednostka centralna wyposażona w pamięci programu i danych nie tworzyą jeszcze pełnego systemu mikroprocesorowego. Każdy system musi bowiem komunikować się z otoczeniem. Komunikacja ta może być prowadzona szeregowo lub równolegle. Transmisja szeregowa, w której informacja przesyłana jest szeregowo bit po bicie, stosowana jest najczęściej do łączenia kilku lub więcej układów w celu uzyskania przetwarzania rozproszonego. Natomiast transmisja równoległa, polegająca na przesyłaniu od razu całych bajtów, pozwala m. in. na wyposażenie systemu mikro­procesorowego w układ komunikacji z użytkownikiem. W najprostszym przypadku układ taki zawiera klawiaturę i zespół wyświetlaczy 7-segmentowych.

Programowalne układy wejścia-wyjścia

Układ równoległego wejścia-wyjścia można zbudować wykorzystując układy TTL, takie jak rejestry i bufory, także z wyjściami trójstanowymi. Obsługa takiego układu wymaga jednak programowego generowania i sprawdzania niezbędnych sygnałów sterujących. Oczywiście jest to rozwiązanie najprostsze sprzętowo, ale pochłaniające cenny czas mikroprocesora. Ponadto złożony moduł może zawierać nawet kilkanaście układów scalonych. Zamiast nich można wykorzystać specjalizowane, programowalne układy dużej skali integracji, specjalnie przeznaczone do stosowania w modułach równoległego wejścia-wyjścia. Układy takie pozwalają nie tylko na sprzętową realizację sygnałów sterujących, lecz potrafią także wykonywać szereg dodatkowych czynności, takich jak np. automatyczne wykrywanie zmiany stanu określonych sygnałów. Nie trzeba chyba dodawać, jak wpływa to na odciążenie mikroprocesora.

Na kolejnym etapie rozwoju układów scalonych znajdują się specjalizowane sterowniki określonych urządzeń, np. stacji dyskietek, dysków twardych, monitorów itp. Układy te wykraczają poza ramy niniejszej książki i nie będą tu omawiane.

Układ 8255

Układ 8255 firmy Intel jest programowalnym układem równoległego wejścia-wyjścia. Jest on wyposażony w dwie grupy wyprowadzeń, służących do:

·         dołączenia układu do magistrali systemowej,

·         sterowania urządzeniami zewnętrznymi.

Interfejs systemowy układu zawiera następujące sygnały:

·         D0-D7 dwukierunkowa, 8-bitowa magistrala danych z wyjściami trójstanowymi;,

·         A0-A1 wejścia adresowe układu, służące do wyboru jego rejestrów wewnętrznych;,

·         wejście uaktywnienia układu, aktywne w staniem niskim;,

·         wejście żądania odczytu informacji z układu, aktywne w staniem niskim;,

·         wejście żądania zapisu informacji do układu, aktywne w staniem niskim;,

·         RES wejście zerowania układu, aktywne w staniem wysokim.

Interfejs urządzeń zewnętrznych zawiera trzy dwukierunkowe, 8-bitowe porty wejścia-wyjścia: A, B i C. Porty mogą pracować w kilku trybach, przy czym pewne tryby jednych portów wymuszają użycie pozostałych portów w określonych trybach.

W trybie „0” prostego wejścia-wyjścia (bez po­twierdze­nia) może pracować dowolny port. Podczas programowania trybu pracy należy ustalić m. in. kierunek transmisji obowiązujący dla całego portu, przy czym port C może być podzielony na dwie połowy, dla których kierunek ten można ustalić indywidualnie. Układ zapamiętuje dane wyjściowe są zapamiętywane, natomiast dane wejściowe nie. Odczyt informacji polega zatem na odczytaniu aktualnego stanu wyprowadzeń portu.

W trybie „1” jednokierunkowym z potwierdzeniem mogą pracować porty A i B. Sygnały sterujące dla portów w tym trybie zapewnia port C, tak więc niektórych jego bitów nie można wówczas swobodnie wykorzystać. Tryb i kierunek transmisji (wejście lub wyjście) można ustalić indywidualnie dla obu portów. Dane wejściowe i wyjściowe są zapamiętywane w rejestrach układu.

Port A jest jedynym, który może pracować w trybie „2” dwukierunkowym z potwierdzeniem. Port B może wówczas pracować w dowolnym trybie, natomiast port C zapewnia sygnały sterujące, podobnie jak w trybie „1”. Dane wejściowe i wyjściowe są zapamiętywane w rejestrach układu.

Znaczenie sygnałów sterujących w trybach „1” i „2” jest następujące:

·         IRQ sygnał zgłoszenia przerwania dla mikroprocesorówav (aktywny w staniem wysokim);,

·         wejście wpisujące dane z urządzenia zewnętrznego do portu (stan aktywny niski);,

·         IBF (ang. Input Buffer Full) zajętość odbiornika; stan aktywny (wysoki) oznacza, że mikroprocesor nie odczytał jeszcze danych wpisanych przez urządzenie;,

·         (ang. Output Buffer Full) zajętość nadajnika; stan aktywny (niski) oznacza, że urządzenie może pobrać z portu informację wpisaną przez mikroprocesor;,

·         wejście potwierdzające odebranie informacji przez urządzenie (stan aktywny niski).

Rysunek 6.1. 1. Wyprowadzenia układów 8255 i Z-80 PIO

Układ Z-80 PIO

Układ Z-80 PIO firmy Zilog jest programowalnym układem równoległego wejścia-wyjścia. Podobnie jak 8255 jest on wyposażony w dwie grupy wyprowadzeń, służących do:

·         dołączenia układu do magistrali systemowej,

·         sterowania urządzeniami zewnętrznymi.

Interfejs systemowy układu zawiera następujące sygnały:

·         D0-D7 dwukierunkowa, 8-bitowa magistrala danych z wyjściami trójstanowymi;,

·         wejście adresowe układu, służące do wyboru rejestrów wewnętrznych portu A lub B;,

·         wejście adresowe układu, służące do wyboru rejestru sterującego lub danych portu;,

·         wejście uaktywnienia układu, aktywne w staniem niskim;,

·         wejście sygnału z mikroprocesora;,

·         wejście sygnału z mikroprocesora;,

·         wejście żądania odczytu informacji z układu, aktywne w staniem niskim;,

·         IEI wejście zezwolenia na generację przerwania;,

·         IEO wyjście zezwolenia na generację przerwania;,

·         wyjście zgłoszenia przerwania, aktywne stanem niskim;,

·         CLK wejście zegarowe.

Interfejs urządzeń zewnętrznych zawiera dwa dwukierunkowe, 8-bitowe porty wejścia-wyjścia: A i B, z których każdy jest wyposażony w dwa sygnały sterujące (wyjście RDY i wejście ). Porty mogą pracować w kilku trybach. Znaczenie sygnałów sterujących jest zależne od trybu pracy portu.

Tryb „0” jest trybem wyjściowym z potwierdzeniem. Wpisanie danych do rejestru portu powoduje przejście sygnału RDY tego protu w stan aktywny (poziom wysoki). Sygnał ten pozostaje aktywny do chwili pojawienia się narastającego zbocza sygnału , po czym jest zerowany. Jeżeli sygnał nie pojawił się, to RDY zostanie automatycznie wyzerowane na początku kolejnego zapisu danych. Dzięki temu podczas operacji zapisu RDY jest zawsze w stanie niskim (nieaktywnym).

Bezpośrednie połączenie i RDY powoduje wygenerowanie impulsu o czasie trwania rów­nym okresowi zegara, podawanego na wejście CLK.

Słowo „podawanego” odnosi się tutaj do słowa „zegara”. Czy taka była intencja Autora?

Nie jest wówczas generowane przerwanie.

Tryb „1” jest trybem wejściowym z potwierdzeniem. Otoczenie zapisuje informację do rejestru portu danych za pomocą sygnałuem . Zbocze narastające tego sygnału powoduje zgłoszenie przerwania oraz przejście wyjścia RDY w stan niski (brak gotowości, czyli bufor wejściowy zapełniony). Narastające zbocze sygnału powoduje przejście RDY w stan wysoki.

Tryb „2” jest trybem dwukierunkowym z potwierdzeniem, przy czym może w nim pracować tylko port A. Sygnały sterujące portu B zabiera się wówczas na potrzeby portu A, tak więc port B może pracować tylko w trybie „3” bitowym. Sygnały sterujące portu A używane są w operacjach wyjściowych, a portu B – w wejściowych. Poza tym zasady stosowania obu par sygnałów są takie same jak w trybach „1” i „2”.

...

Zgłoś jeśli naruszono regulamin