Z80 PIO
Z80 PIO jest programowalnym układem wy-wy, w którego skład wchodzą dwa równoległe porty PA i PB wraz liniami
sterującymi. Układ ten może być wykorzystany w systemach opartych na mikroprocesorze Z80 bez użycia żadnych
dodatkowych układów logicznych.
Podstawowe cechy układu:
- dwa niezależne, 8 bitowe, dwukierunkowe portyPA i PB wraz z liniami sterującymi transmisją danych z potwierdzeniem,
- cztery tryby pracy: wyjsciowy (tr. 0), wejsciowy(tr. 1), transmisja dwukierunowa (tr. 2) tylko dla portu PA i kontrola stanu pojedynczych bitów (tr. 3),
- możliwosc dołączenie ukłądu do systemu priorytetuprzerwań,
- możliwosć prowadzenia transmisji z obustronnympotwierdzeniem
- pojedyncze zasilanie +5V
- jednofazowy sygnał zegarowy
Struktura układu Z80 PIO.
Układ składa się z bufora we-wy, wewnętrznego układu sterującego, portów PA i PB wraz z liniami sterującymi oraz
układem generacji przerwań (rys poniżej). Bufor we-wy umożliwia bezposrednie łączenie Z80 PIO z Z80
Układ logiczne każdego z portów składa się z szesciurejestrów:
- 8 bitowego rejestru wejsciowego danych
- 8 bitowego rej wyj danych
- 2 bitowego rej trybu pracy
- 8 bitowego rej maski
- 8 bitowego rej wyboru wejsć i wyjsć
- 8 bitowego rej wektora przerwań
- 2 bitowego rej kontroli maskowania
Do 2 bitowego rej. trybu pracy wpisywana jest przezmikroprocesor informacja w celu ustalenia trybu pracy.
Przekazywanie danych pomiędzy urządzeniem peryferyjnym a jednostkącentralną odbywa się poprzez rej danych (wej i wyj).
Dane mogą być wpisywane i odczytywane przez mikroprocesor w dowolnym czasie. Sterowanie transmisją danych między PIO
i urządzeniem zewnętrznym umożliwiają linie związane z każdym z portów:
- ASTB (BSTB) - sygnał strobujący(wej)
- ARDY (BRDY) - sygnał gotowosci (wyj)
8 bitowy rej. maski i 8 bitowy rej wyboru wejścia i wyjścia używane są tylko w trybie bitowym. W trybie tym każda z 8 linii
portu PA może być zaprogramowana jako wejscie lub wyjście. Rej maski służy do okreslenia, które z linii we-wy portu mogą generować przerwania.
2 bitowy rej. kontroli maskowania okresla jaki stan (wysoki lub niski) ma spowodować wygenerowanie przerwania oraz
czy ma ono nastąpić w wyniku zmian na jednej czyna wszystkich niezamaskowanych liniach.
Opis wyprowadzeń.
- D0 - D7 - trójstanowe we-wy. Magistrala danych używana do przesyłania danych, słów sterujących i wektorów przerwań między CPU a PIO.
- B/A -wej. Sygnał wyboru portu PA lub PB. Niski poziom do PA, wysoki to PB.
- C/D -wej. (D aktywne poziomem niskim). Sygnał wyboru rej sterującego lub rej danych.
Wysoki poziom sygnału na tym wej. podczas wpisywania bajtu informacji powoduje,że PIO interpretuje go jako słowo sterujące, wpisując do rej sterującego.
Poziom niski wskazuje że magistrala są przesyłane dane.
- CE - wejscie (akt. poz. niskim). Sygnał wyboru układu. Stan niski na tym wejściu powoduje, że układ przyjmuje dane
i słowa sterujące z magistrali danych lub przesyła na nią dane z portów PA i PB.
- CLK - wejscie. Jednofazowy sygnał zegarowy. Z80 PIO wykorzystuje sygnał zegarowy mikroprocesora, W zależnosci
od wersji maksymalna częstotliwosć sygnału zegarowego może wynosić 2.5MHz (Z80 PIO), 4 MHz (Z80A PIO) 6 MHz (Z80B PIO).
- M1 - wejscie (akt. poz. niskim). Sygnał pierwszego cyklu maszynowego CPU. Wykorzystywany jest
do kontroli i synchronizacji operacji wewnątrz PIO. Stany niskie M1 i IORQ informują PIO o przyjęciu przez CPU zgłoszonego
przerwania. Ponadto sygnał M1 spełnia dodatkowo dwie funkcje: synchronizuje generacje przerwań z PIO, stan niski sygnału M1
przy nieaktywnych sygnałach RD i IORQ powoduje wyzerowanie układu PIO.
- IORQ - wejscie (akt poz niskim). Sygnał odczytu lub zapisu do układu we-wy. Stan niski oznacza,że liniami mag. adresowej
przesyłany jest adres ukł we-wy. Sygnał ten wraz z B/A, C/D, CE ,RD służy do transmisji danych i słów sterujących między
CPU i PIO. Jeżeli aktywne są sygnału CE, RD, IORQ, to port wybrany linią B/A przesyła dane do CPU. Odpowiednio, jeżeli aktywne są sygnały
CE, IORQ a RD nie, to do portu wybranego przez synał B/A wpisywane są dane lub słowa sterujące. Wykrycie przez PIO stanów niskich IORQ i M1powoduje
automatycznie wysłanie na mag. danych wektoru przerwań pod warunkiem, że pozwala na to systemgeneracji przerwań.
- RD - wejscie (akt. poz. niskim). Sygnał odczytu z pamięci lub układu we-wy.
- IEI -wejscie. Sygnał zezwolenia na generacje przerwania. Wejscie jest używanedo tworzenia łańcucha
priorytetu przerwań w systemach zawierających więcej niż jeden układ. Wysoki poziomna tym wejsciu oznacza,
że żaden inny układ o wyższym priorytecie przerwań nie jest obsługiwany przez mikroprocesor.
- IEO - wejscie. Sygnał zezwolenia na generację przerwania. Wraz z sygnałem IEI służy do tworzenia
łańcucha priorytetu przerwań. Przyjmuje on stan wysoki, gdy mikroprocesor nie obsługuje przerwania z układu
o wyższym priorytecie.
- INT - wyjscie (akt. poz. niskim).Sygnał zgłoszenia przerwania.
- PA0-PA7 - trójstanowe we-wy portu PA.
- ASTB - wejscie (akt poz niskim). Sygnał strobu dla PA. Znaczenie sygnału zależy od trybu pracy portu. Tryb wyjsciowy
-narastające zbocze sygnału, wysyłane przez urz. peryferyjne do PIO, oznacza potwierdzenie przyjęcia danych. Tryb wejsciowy
- sygnał strobu wysyłany jest przez urz. peryferyjne w celu wpisania danych do rej wej portu PA.
Tryb dwukierunkowy - stan aktywny powoduje wpisanie danych do rej wyjsciowego portu PA. Pojawieniesię narastającego zbocza
sygnału oznacza potwierdzenie przyjęcia danychprzez urz. peryferyjne. Tryb bitowy -sygnał nie jest wykorzystywany.
- ARDY - wyjscie. Sygnał gotowosci PA. Znaczenie zależy od trybu pracy. Tryb wyjsciowy - stan wysoki oznacza,że do rej wyj
portu PA zostały wpisane dane, a sygnały PA0 - PA7 osiągneły stany stabilne. Tryb wejsciowy - sygnał ma stan
wysoki jeżeli rej. wejściowy portu PA jest pusty i gotowy do przyjęcia danych z urządzenie peryferyjnego. Tryb dwukierunkowy
- stan aktywny jeżeli w rej. wyjściowym portu PA znajdują siędane. Tryb bitowy - nie wykorzystany, ma stałą wartosć 0.
- PB0-PB7 - trójstanowe we-wy portu PB. Wyjscia te mają zwiększoną obciążalnosć
i umożliwiają wysterowanie tranzystorów typu Darlingtona.
- BSTB - wejscie (akt poz niskim). Sygnał strobu do PB.Znaczenie jak ASTB z wyjątkiem
funkcji spełnianych w trybie dwukierunkowym.
- BRDY - wyjscie. Sygnał gotowosci portu PB. Znaczenie jak ARDY z wyjątkiem funkcji spełnianych w trybie dwukierunkowym
Tryby pracy.
Port PA może pracować w jednym z czterech trybów pracy: wyjsciowym (tr. 0), wejsciowym (tr. 1), dwukierunkowym (tr. 2),
bitowym (tr 3).
Port PB może pracować w trybach0, 1, 3. Wybór trybu pracy odbywa się poprzez ustalenie dwóch najbardziej znaczących bitów słowa
sterującego i wpisanie go do rejestru trybu pracy okreslonego portu. 00 (D7D6) - tryb0, 01 tryb 1, 10 tryb 2, 11 tryb 3.
- Tryb 0 - wysyłanie danych z potwierdzeniem. Wybór tego trybu powoduje, że dane wpisane do rej wyj
pojawiają się na mag. danych portu. Zawartosć rejestru wyjściowego może być zmieniana lub odczytywana
przez CPU w dowolnym czasie.
Wpisanie danych do rejestru wyjściowegozmienia stan wyjścia RDY na wysoki. Sygnał RDY pozostaje w tym stanie do
czasu, aż na wej STB pojawi się stan niski. Narastające zbocze STB powoduje wysłanie sygnału zgłoszenia przerwania
i zmianę RDY na niski.
- Tryb 1 - odbiór danych z potwierdzeniem. Wczytanie danych z rej. wej. portu powoduje zmianę stanu RDY
na wysoki. Urz. pereferyjne może wtedy wpisać sygnałem STB dane do rejestru wejściowego portu.
Narastające zbocze sygnału STB generuje sygnał zgłoszenia przerwania i zmienia stan wyjscia RDY na niski.
Dane mogą być wpisywane do rej wej portu bez względu na stan wyjscia RDY.
- Tryb 2 - umożliwia zarówno wczytywanie jak i wysyłanie danych z potwierdzeniem. W trybie tym może
pracować tylko port PA, który wykorzystuje linie ASTB, ARDY w operacjach wyjscia, a linie BSTB i BRDY w
operacjach wejscia. Różnica między trybem 2 i 0 polega na tym,że dane z rej. wyj. portu PA wysyłane
są na magistralę danych tylko wtedy, gdy aktywny jest sygnał ASTB.
- Tryb 3 - po wybraniu tego trybu pracynastępne słowo sterujące wysłane do portu okresla, które z lini D0-D7
będą wykorzystywane jako wejscia, a które jako wyjscia. Ustalenie linii jako wyj. wymaga wpisania 1,
a wejsciowej 0. W tym trybie pracy ASTB i BSTB sa ignorowane, a ARDY i BRDY są utrzymywane w stanie niskim.
Dane mogą być wpisywane i odczytywane z portu w dowolnym momencie.
Zerowanie układu.
Układ Z80 PIO jest zerowany automatycznie po włączeniu zasilania. Wyzerowanie układu powoduje:
- wyzerowanie obu rejestrów maski
- wybranie trybu 1 dla obu portów
- ustawienie linii PA0 - PA7 i PB0 - PB7 w stan dużej impedancji
- ustawienie wyjść ARDY i BRDY w stan niski (nieaktywny)
- wyzerowanie obu przerzutników zezwolenia na przerwanie
- zablokowanie systemu przerwań
- wyzerowanie rej wyjściowych PA i PB
Uklad ten nie ma standardowego wejścia RESET. Jego zerowanie można uzyskać w wyniku pojawienia się stanu
niskiego na wejściu M1 przy jednoczesnym pozostawieniu wejść RD i IORQ w stanie wysokim
System przerwań układu Z80 PIO.
Wewnętrzny uklad generacji przerwań umożliwia jednostece centralnej wielopoziomową obslugę przerwań według
priorytetu określonego fizyczną lokacją ukladu. Przerwania generowane są na skutek osiągnięcia zdefiniowanego
wcześniej stanu logicznego przez jedną lub wszystkie niezamaskowane linie we-wy portu. W systemie przerwań
układu Z80 PIO port A ma wyższy priorytet. W trybie wyjściowym, wejściowym i dwukierunkowym przerwania
mogą być generowane zawsze, gdy żąda tego urządzenie peryferyjne połączone z PIO (zmiana STB na wysoki).
Natomiast w trybie bitowym przerwania są generowane wtedy, gdy warunki określone przez rejestr maski i rejestr
kontroli maskowania są spełnione. Po otrzymaniu sygnalu przyjęcia przerwania (stany niskie IORQ i M1) z CPU,
uklad PIO żądający obslugi przerwania wysyla na magistrale danych 8-bitowy wektor. Wektor ten jest młodszym
bajtem 16-bitowego adresu obszaru pamięci, w którym umiejscowiono adres podprogramu obsługi przerwania.
Starszy bajt adresu powinien znajdować się w rejestrze I mikroprocesora. Najmniej znaczący bit wektora przerwania
jest automatycznie ustawiany na 0. Wektory przerwań obu portów są niezależne. Uklad PIO odbiera kod rozkazu
RETI bezpośrednio z magistrali danych. Dzięki temu wszystkie układy serii Z80 są informowane
o zakończeniu obsługi przerwania.
przygotował: Przemysław Siódemak (na podstawie "Układy mikroprocesorowe Z80")
główna |
technologie |
indeks tematyczny |
indeks alfabetyczny