Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00498 006391 11255530 na godz. na dobę w sumie
Układy mikroprocesorowe. Przykłady rozwiązań - książka
Układy mikroprocesorowe. Przykłady rozwiązań - książka
Autor: Liczba stron: 132
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-702-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> hardware >> inne
Porównaj ceny (książka, ebook, audiobook).
Książka prezentuje podstawy konstrukcji urządzeń cyfrowych i mikroprocesorowych. Zawiera ona omówienia wybranych układów scalonych małej, średniej i dużej skali integracji oraz liczne przykłady ich zastosowań. Pewne zdziwienie czytelnika może wprawdzie budzić dobór mikroprocesorów do ilustracji niektórych zagadnień (są to mikroprocesory 8-bitowe Z-80, 8048 i 8051). Jeżeli jednak głębiej przyjrzeć się współczesnym układom mikroprocesorowym, okazuje się, że podstawowe techniki konstrukcyjne -- a takie właśnie prezentuje książka -- mimo upływu 20 lat, pozostały niezmienione.

W poszczególnych rozdziałach znajdziesz:

Książka przeznaczona jest dla studentów kierunków takich, jak informatyka, elektronika czy automatyka. Może być również wykorzystana przez uczniów techników elektronicznych, a także przez wszystkich zainteresowanych podstawami konstrukcji sprzętu komputerowego.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Uk‡ady mikroprocesorowe. Przyk‡ady rozwi„zaæ Autor: Bart‡omiej Zieliæski ISBN: 83-7197-702-6 Format: B5, stron: 130 Ksi„¿ka prezentuje podstawy konstrukcji urz„dzeæ cyfrowych i mikroprocesorowych. Zawiera ona om(cid:243)wienia wybranych uk‡ad(cid:243)w scalonych ma‡ej, (cid:156)redniej i du¿ej skali integracji oraz liczne przyk‡ady ich zastosowaæ. Pewne zdziwienie czytelnika mo¿e wprawdzie budzi(cid:230) dob(cid:243)r mikroprocesor(cid:243)w do ilustracji niekt(cid:243)rych zagadnieæ (s„ to mikroprocesory 8-bitowe Z-80, 8048 i 8051). Je¿eli jednak g‡Œbiej przyjrze(cid:230) siŒ wsp(cid:243)‡czesnym uk‡adom mikroprocesorowym, okazuje siŒ, ¿e podstawowe techniki konstrukcyjne -- a takie w‡a(cid:156)nie prezentuje ksi„¿ka -- mimo up‡ywu 20 lat, pozosta‡y niezmienione. W poszczeg(cid:243)lnych rozdzia‡ach znajdziesz: podstawowe w‡a(cid:156)ciwo(cid:156)ci elektryczne uk‡ad(cid:243)w cyfrowych oraz zasady ich stosowania; funkcje wybranych cyfrowych uk‡ad(cid:243)w scalonych ma‡ej i (cid:156)redniej skali integracji oraz r(cid:243)¿norodne przyk‡ady ich zastosowaæ; wyprowadzenia wybranych mikroprocesor(cid:243)w 8-bitowych (Z-80, 8048, 8051) oraz zasady konstrukcji jednostki centralnej z ich wykorzystaniem; pamiŒci sta‡e (ROM, PROM, EPROM, EEPROM) oraz statyczne (SRAM) oraz zasady tworzenia blok(cid:243)w pamiŒci o zadanej organizacji; pamiŒci dynamiczne (DRAM) oraz zasady tworzenia blok(cid:243)w pamiŒci dynamicznej; programowalne uk‡ady r(cid:243)wnoleg‡ego wej(cid:156)cia-wyj(cid:156)cia (8255, Z-80 PIO) oraz ich zastosowanie do sterowania klawiatur„ i wy(cid:156)wietlaczem; programowalne uk‡ady czasowo-licznikowe (8253, Z-80 CTC) oraz ich zastosowanie do pomiaru zale¿no(cid:156)ci czasowych; zasady tworzenia z‡o¿onych uk‡ad(cid:243)w wej(cid:156)cia-wyj(cid:156)cia oraz do‡„czania ich do r(cid:243)¿nych typ(cid:243)w mikroprocesor(cid:243)w. Ksi„¿ka przeznaczona jest dla student(cid:243)w kierunk(cid:243)w takich, jak informatyka, elektronika czy automatyka. Mo¿e by(cid:230) r(cid:243)wnie¿ wykorzystana przez uczni(cid:243)w technik(cid:243)w elektronicznych, a tak¿e przez wszystkich zainteresowanych podstawami konstrukcji sprzŒtu komputerowego. Przedmowa ............................................................................................................5 Rozdział 1. Właściwości układów TTL....................................................................7 Wejścia układów TTL ...................................................k...................................................k...7 Wejście zwykłe ...................................................k...................................................k.......7 Wejście Schmitta ...................................................k...................................................k....8 Wyjścia układów TTL...................................................k...................................................k...9 Wyjście przeciwsobne ...................................................k...............................................9 Wyjście z otwartym kolektorem ...................................................k................................9 Dobór rezystora dla wyjścia z otwartym kolektorem .................................................10 Wyświetlacz 7-segmentowy ...................................................k....................................12 Wyjście trójstanowe...................................................k.................................................13 Typowe parametry układów cyfrowych...................................................k.........................13 Przykłady...................................................k...................................................k.....................14 Rozdział 2. Funkcje układów TTL.........................................................................19 Sterowniki wyświetlaczy...................................................k................................................20 Układy porównywania cyfr...................................................k............................................20 Komparator 4-bitowy...................................................k...............................................21 Komparatory 8-bitowe ...................................................k.............................................21 Multipleksery i demultipleksery...................................................k.....................................22 Multipleksery ...................................................k...................................................k........22 Demultipleksery ...................................................k...................................................k....24 Kodery i generatory parzystości...................................................k.....................................25 Kodery priorytetowe 74148 i 74348 ...................................................k........................26 Układy kontroli parzystości 74180 i 74280 ...................................................k.............26 Układy czasowe...................................................k...................................................k...........27 Układ 74121...................................................k...................................................k..........27 Układ 74123...................................................k...................................................k..........27 Układ NE555 ...................................................k...................................................k........29 Przerzutniki ...................................................k...................................................k.................30 Układ 7474...................................................k...................................................k............30 Liczniki...................................................k...................................................k........................31 Liczniki asynchroniczne ...................................................k..........................................31 Liczniki synchroniczne ...................................................k............................................32 Bufory i rejestry z wyjściami trójstanowymi ...................................................k.................35 Bufory ...................................................k...................................................k...................35 Rejestry ...................................................k...................................................k.................36 Przykłady...................................................k...................................................k.....................37 4 Układy mikroprocesorowe. Przykłady rozwiązań Rozdział 3. Mikroprocesor i jednostka centralna.................................................47 Jednostka centralna Z-80...................................................k................................................47 Opis wyprowadzeń Z-80...................................................k..........................................48 Buforowanie wyprowadzeń ...................................................k.....................................49 Generator sygnału zegarowego i układ zerowania ...................................................k..50 Układ pracy krokowej...................................................k..............................................51 Jednostka centralna 8048 ...................................................k...............................................52 Opis wyprowadzeń 8048...................................................k..........................................52 Buforowanie wyprowadzeń ...................................................k.....................................54 Dołączenie ekspanderów ...................................................k.........................................54 Zwiększenie liczby przerwań...................................................k...................................56 Układ pracy krokowej...................................................k..............................................57 Jednostka centralna 8051 ...................................................k...............................................57 Opis wyprowadzeń 8051...................................................k..........................................59 Buforowanie wyprowadzeń ...................................................k.....................................60 Dołączenie ekspanderów ...................................................k.........................................61 Zwiększenie liczby przerwań...................................................k...................................61 Układ pracy krokowej...................................................k..............................................62 Rozdział 4. Pamięci stałe i statyczne ..................................................................63 Pamięci PROM...................................................k...................................................k............64 Pamięci EPROM ...................................................k...................................................k.........65 Pamięci statyczne RAM ...................................................k.................................................66 Konstrukcja modułów pamięci...................................................k.......................................68 Przykłady...................................................k...................................................k.....................68 Rozdział 5. Pamięci dynamiczne..........................................................................79 Przegląd układów pamięci DRAM ...................................................k................................79 Przykłady...................................................k...................................................k.....................80 Rozdział 6. Układy równoległego wejścia-wyjścia................................................97 Programowalne układy wejścia-wyjścia ...................................................k........................97 Układ 8255...................................................k...................................................k............98 Układ Z-80 PIO...................................................k...................................................k.....99 Przykłady...................................................k...................................................k...................102 Rozdział 7. Układy czasowe ..............................................................................111 Programowalne układy czasowe ...................................................k..................................111 Układ 8253...................................................k...................................................k..........111 Układ Z-80 CTC ...................................................k...................................................k.113 Przykłady...................................................k...................................................k...................114 Rozdział 8. Złorone układy wejścia-wyjścia .......................................................121 Dodatek A Literatura .......................................................................................129 Rozdział 6. 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 prze- syłaniu od razu całych bajtów, pozwala m.in. na wyposażenie systemu mikroproceso- rowego w układ komunikacji z użytkownikiem. W najpr ostszym przypadku układ taki zawiera klawiaturę i zespół wyświetlaczy 7-segmentowy ch. Programowalne układy wejlcia-wyjlcia 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, programowal- ne 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ą reali- zację sygnałów sterujących, lecz potrafią także wykonywać szereg dodatkowych czynności, takich jak np. automatyczne wykrywanie zmiany stanu określonych sy- gnałów. Nie trzeba chyba dodawać, jak wpływa to na o dciążenie mikroprocesora. Na kolejnym etapie rozwoju układów scalonych znajdują się specjalizowane sterow- niki określonych urządzeń, np. stacji dyskietek, dysków twardych, monitorów itp. Układy te wykraczają poza ramy niniejszej książki i n ie będą tu omawiane. 98 Układy mikroprocesorowe. Przykłady rozwiza(cid:23) Układ 8255 Układ 8255 firmy Intel jest programowalnym układem równo ległego wejścia-wyjścia. Jest on wyposażony w dwie grupy wyprowadzeń, służącyc h 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ścia mi trójstanowymi;  A0 – A1 — wejścia adresowe układu, służące do wyboru jego rej estrów wewnętrznych;  CS — wejście uaktywnienia układu, aktywne w stanie nisk im;  RD — wejście żądania odczytu informacji z układu, aktywn e w stanie niskim;  WR — wejście żądania zapisu informacji do układu, aktywn e w stanie niskim;  RES — wejście zerowania układu, aktywne w stanie wysoki m. 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 potwierdzenia) — 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, natomiast dane wejściowe — nie. Odczyt informacji polega za- tem na odczytaniu aktualnego stanu wyprowadzeń port u. 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 po- twierdzeniem. 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 n astępujące: Rozdział 6.  Układy równoległego wejlcia-wyjlcia 99  IRQ — sygnał zgłoszenia przerwania dla mikroprocesorów (aktywny w stanie wysokim);  STB — wejście wpisujące dane z urządzenia zewnętrznego do portu (stan aktywny — niski);  IBF (ang. Input Buffer Full) — zajętość odbiornika; stan akt ywny (wysoki) oznacza, że mikroprocesor nie odczytał jeszcze dany ch wpisanych przez urządzenie;  OBF (ang. Output Buffer Full) — zajętość nadajnika; stan akty wny (niski) oznacza, że urządzenie może pobrać z portu informację wpisaną przez mikroprocesor;  ACK — wejście potwierdzające odebranie informacji przez u rządzenie (stan aktywny — niski). Rysunek 6.1. Wyprowadzenia układów 8255 i Z-80 PIO Interfejs urządzeń zewnętrznych Interfejs magistrali systemowej 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ścia mi trójstanowymi;  A/B — wejście adresowe układu, służące do wyboru rejestró w wewnętrznych portu A lub B; 100 Układy mikroprocesorowe. Przykłady rozwiza(cid:23)  D/C — wejście adresowe układu, służące do wyboru rejestru sterującego lub danych portu;  CE — wejście uaktywnienia układu, aktywne w stanie nisk im;  1M — wejście sygnału 1M z mikroprocesora;  IORQ — wejście sygnału IORQ z mikroprocesora;  RD — wejście żądania odczytu informacji z układu, aktywn e w stanie niskim;  IEI — wejście zezwolenia na generację przerwania;  IEO — wyjście zezwolenia na generację przerwania;  INT — wyjście zgłoszenia przerwania, aktywne stanem nisk im;  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 STB ). 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 portu w stan aktywny (poziom wysoki). Sygnał ten pozostaje aktywny do chwili pojawienia się narastającego zbocza sygnału STB , po czym jest zerowany. Jeżeli sygnał STB nie pojawił się, to RDY zostanie automatycznie wyzerowane na początku kolejnego zapisu danych. Dzięki temu pod- czas operacji zapisu RDY jest zawsze w stanie niskim (nieaktywnym). Bezpośrednie połączenie STB i RDY powoduje wygenerowanie impulsu o czasie trwania równym okresowi zegara, podawanego na wejście CLK. Nie jest wówczas generowane przerwanie. Tryb „1” jest trybem wejściowym z potwierdzeniem. Otoczenie zapisuje informację do rejestru portu danych za pomocą sygnału STB . Zbocze narastające tego sygnału powoduje zgłoszenie przerwania oraz przejście wyjścia RDY w stan niski (brak go- towości, czyli bufor wejściowy zapełniony). Narastające zbocze sygnału RD powo- duje 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 ste- rują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”. Tryb „3” — tzw. bitowy — nie wymaga używania sygnałów sterujących. W trybie tym można m.in. automatycznie sprawdzać zadane warunki logiczne. Spełnienie Rozdział 6.  Układy równoległego wejlcia-wyjlcia 101 takiego warunku (przejście wartości wyniku funkcji logicznej z „0” na „1”) może spowodować generację przerwania. Tryb ten można zatem stosować do sterowania obiektem, unikając konieczności ciągłego programowego sprawdzania stanu poszcze- gólnych sygnałów. Nieco większego komentarza wymaga układ przerwań, stosowany w układach mikro- procesorowych rodziny Z-80. W pewnym sensie można powiedzieć, że układy te re- alizują koncepcję „rozproszonego sterownika przerwań”. Nie ma tu bowiem potrzeby stosowania specjalnego układu pełniącego tę funkcję. Określenie priorytetów przerwań pochodzących od poszczególnych układów odbywa się już na etapie projektowania systemu mikroprocesorowego. Każdy układ rodziny Z-80 jest wyposażony w wejście IEI oraz wyjście IEO. Służą one do kaskadowego połączenia układów w łańcuch priorytetów (ang. daisy chain1 ). Układ o najwyższym priorytecie ma wejście IEI stale ustawione na „1”, a jego wyjście IEO steruje wej- ściem IEI kolejnego układu. Wyjścia INT wszystkich układów są zwarte i dołączone do wejścia INT mikroprocesora Z-80. Załóżmy, że układy nr 2 i 3 zgłaszają przerwanie. Mikroprocesor generuje cykl przyję- cia przerwania, który jest dekodowany przez wszystkie układy na podstawie stanu linii 1M i IORQ . Układ nr 1 może odpowiedzieć (jego wejście IEI ma stan wysoki), ale nie zgłaszał przerwania. Dlatego też jego wyjście IEO jest w stanie wysokim. Układ nr 2 może zatem odpowiedzieć i rzeczywiście to czyni, gdyż zgłaszał przerwanie. Jego wyj- ście IEO przyjmuje wówczas stan niski, zatem układ nr 3 i ewentualne kolejne układy nie mogą w tej chwili odpowiedzieć na przyjęcie przerwania. Układ nr 2 jest zatem je- dynym, który odpowiedział mikroprocesorowi i wysłał mu wektor przerwania. Mikro- procesor przechodzi wobec tego do obsługi przerwani a od układu nr 2. Rysunek 6.2. Zasada działania przerwań w układach Z-80 PIO 1 W dosłownym tłumaczeniu — „łańcuch stokrotek”. 102 Układy mikroprocesorowe. Przykłady rozwiza(cid:23) Przykłady Przykład 1. Zaprojektować prosty moduł wejścia-wyjścia, zawierający cztery rejestry wejściowe i cztery rejestry wyjściowe. Moduł powinien współpracować z mikroprocesorem Z-80 i zajmować adresy: a) FC – FFh lub b) 3C – 3Fh w przestrzeni wejścia-wyjścia. Rysunek 6.3. Rozwiązanie przykładu 1a Skoro moduł ma zawierać w sumie osiem rejestrów (cztery wejściowe i cztery wyj- ściowe) i zajmować tylko cztery komórki w przestrzeni adresowej, to rejestry wyj- ściowe muszą współdzielić adresy z rejestrami wejściowymi. Od strony programowej wygląda to tak, jak gdyby pod jednym adresem był zarówno rejestr wejściowy, jak i wyjściowy. Natomiast w układzie cykle odczytu odwołują się fizycznie do innego układu, niż cykle zapisu. Mikroprocesor Z-80 generuje 8-bitowe adresy w przestrzeni wejścia-wyjścia. Dwie najmłodsze linie adresowe służą do wyboru układu wewnątrz modułu, natomiast po- zostałe — do sprawdzenia, czy adres na magistrali znajduje się w zakresie przezna- czonym dla modułu. Warunek ten należy sprawdzać, gdy sygnał IORQ jest w stanie niskim, co oznacza dostęp mikroprocesora do przestrzeni wejścia-wyjścia. Dodatko- wo można sprawdzać stan sygnału 1M — powinien być on w stanie wysokim. Upewniamy się w ten sposób, że mikroprocesor rzeczywiście zamierza przeprowa- dzić odczyt lub zapis układu wejścia-wyjścia, a nie zamierza realizować cyklu po- twierdzenia przerwania, w którym oba te sygnały są a ktywne. Rozdział 6.  Układy równoległego wejlcia-wyjlcia 103 Jeżeli adres jest rzeczywiście adresem modułu, to w zależności od realizowanego cy- klu maszynowego uaktywnia się jeden z demultiplekserów 74139. Jeden z nich włą- cza układy wyjściowe, drugi natomiast — wejściowe. Wybór konkretnego układu od- bywa się na podstawie stanu dwóch najmłodszych lini i adresowych mikroprocesora. Układy wyjściowe to oczywiście rejestry — zastosowano tu układy 74374, które za- pamiętują informację w chwili wystąpienia zbocza narastającego sygnału wpisujące- go CLK. Umożliwia to sterowanie wejść sygnałami aktywnymi w stanie niskim, po- nieważ mikroprocesor Z-80 utrzymuje dane na magistrali jeszcze przez pewien krótki czas po przejściu sygnału RD lub WR w stan wysoki. Czas ten wystarcza do zapa- miętania informacji przez układ 74374. Układy wyjściowe to bufory z wyjściami trójstanowymi. Dlaczego bufory? Otóż przedstawiony układ nie wykorzystuje jakichkolwiek sygnałów sterujących ze strony otoczenia systemu. Nie ma możliwości zapamiętania danych wejściowych w reje- strze, bo nie można określić momentu, w którym powinno to nastąpić. Dlatego też je- dynym sposobem odczytania informacji z otoczenia jest wczytanie danych znajdują- cych się na wejściach modułu w chwili realizowania cyklu odczytu przez mikroprocesor. Zamiast buforów można też zastosować rejestry 74573, przy czym ich wejścia wpisujące (C) powinny być w stanie wysokim. W zasadzie układy te pełnią wówczas funkcję buforów. Rysunek 6.4. Rozwiązanie przykładu 1b Dekoder adresów w wersji b) można zrealizować wykorzystując dwa demultipleksery 74138. Pierwszy z nich sprawdza linie adresowe A2 – A4 oraz A7, a także stan sygna- łów sterujących. Układ jest aktywny, gdy mikroprocesor przeprowadza odczyt lub zapis przestrzeni adresowej wejścia-wyjścia przy A7 = „0”. Wówczas, jeżeli wyjścia 104 Układy mikroprocesorowe. Przykłady rozwiza(cid:23) A2 – A4 także są w stanie wysokim, wyjście 7Y przyjmuje stan niski. Powoduje to uaktywnienie drugiego układu 74138, o ile A5 = „1” i A6 = „0”. Wówczas wybrane wyjście tego układu przyjmuje stan niski. Wybór wyjścia odbywa się na podstawie stanu dwu najmłodszych linii adresowych oraz sygnału RD . Gdy mikroprocesor re- alizuje odczyt, wybiera się jedno z wyjść , gdy zapis — 3Y0Y  7Y4Y  . Włączenie drugiego demultipleksera następuje, gdy określone wyjście pierwszego jest aktywne. Gdyby zatem wprowadzić możliwość wyboru wyjścia, można by było usta- wiać moduł w jednej z ośmiu przestrzeni adresowych, zależnie od numeru wyjścia pierwszego demultipleksera, które steruje wejściem b ramkującym drugiego układu. Warto zadać sobie pytanie, czy pominięcie sygnału zapisu nie spowoduje niepożądane- go uaktywniania się układów wyjściowych. Mikroprocesor Z-80 odwołuje się do prze- strzeni adresowej wejścia-wyjścia tylko w trzech cyklach maszynowych: odczytu, zapi- su i potwierdzenia przerwania. Ostatni z nich można wykluczyć, ponieważ pierwszy demultiplekser 74138 jest wówczas nieaktywny. Ponieważ realizowany jest zawsze al- bo odczyt, albo zapis, wystarczy sprawdzić tylko jeden sygnał — w tym przypadku RD . Jeżeli bowiem cykl maszynowy nie jest cyklem odcz ytu, to na pewno jest to zapis. Pozostała część modułu pozostaje bez zmian. Przykład 2. Zaprojektować system wejścia-wyjścia, realizujący zapamiętywanie informacji wej- ściowej i wyjściowej. Układ powinien informować mikroprocesor o zapisaniu danych wejściowych, a otoczenie o ich odczytaniu oraz informować otoczenie o zapisaniu nowej informacji, a mikroprocesor — o jej odczytaniu. Ponadto moduł powinien za- pewniać możliwość przesyłu danych bez potwierdzenia. Moduł powinien współpra- cować z mikroprocesorem 8051 i zajmować adresy 00 – 01h w przestrzeni zewnętrz- nej pamięci danych. W zadaniu należy również umożliwić późniejsze dołączenie 64 KB zewnętrznej pamięci danych. Aby móc później dołączyć 64 KB pamięci danych, należy wprowadzić do układu sy- gnał, umożliwiający określenie, czy cykl odczytu lub zapisu zewnętrznej pamięci da- nych ma się odnosić do pamięci, czy też do przedstawionego modułu. Sygnał ten jest na schemacie oznaczony jako M/IO; jego stan wysoki oznacza odwołanie do modułu, niski zaś — do pamięci. W ramach modułu nie określono sposobu jego wytwarzania. Przykładowy sposób rozwiązania to użycie wolnej linii któregoś z portów mikropro- cesora 8051. Wówczas sygnał ten można łatwo zmieniać p rogramowo. Przyjęto, że podczas odwołań do rejestrów modułu mikroprocesor generuje adres 8-bitowy. Adres może być też 16-bitowy, jednak linie A8 – A15 nie są uwzględnione w dekoderze adresów. Dekoder uaktywnia się, gdy bity A2 – A7 są w stanie niskim, sygnał M/IO — w wysokim, a mikroprocesor realizuje cykl odczytu lub zapisu ze- wnętrznej pamięci danych. Wówczas, zależnie od stanu linii A0 i A1 oraz sygnału RD uaktywnia się odpowiednie wyjście drugiego demultipleksera 74138, umożli- wiając zapis lub odczyt żądanego rejestru. Rozdział 6.  Układy równoległego wejlcia-wyjlcia 105 Rysunek 6.5. Rozwiązanie przykładu 2. Pod adresem 01h znajduje się zestaw układów wejścia-wyjścia, które umożliwiają transmisję bez potwierdzenia. Działają one tak samo, jak w przykładzie 1. — dane wyjściowe wpisywane są do rejestru 74574, a wejściowe wczytywane są bez zapa- miętywania przez bufor 74541. Pod adresem 00h umieszczono zestaw rejestrów realizujących wejście-wyjście z po- twierdzeniem. Przesyłane dane zawsze zapisuje się do odpowiedniego rejestru. Zapis pod adres 00h powoduje wpisanie danej do układu wyjściowego 74574 oraz wpisanie „0” do przerzutnika 7474. Na skutek tego sygnał OBF poprzez stan niski informuje otoczenie, że w rejestrze wyjściowym są dane do pobrania. Aby je odczytać, otocze- nie powinno ustawić sygnał RIA w stan niski. Wówczas na wyjściach OA0 – OA7 pojawia się zawartość rejestru wyjściowego, a do przerzutnika wpisuje się stan „1”. Powoduje to zgłoszenie przerwania INT do mikroprocesora. 1 Otoczenie może także zapisać dane do układu wejściowego. W tym celu ustawia ono odpowiednio wejścia IA0 – IA7, których stan zapamiętuje się w rejestrze podczas na- rastającego zbocza sygnału WIA. Powoduje to wpisanie „0” do przerzutnika, który generuje do otoczenia sygnał IBF informujący o zapełnieniu rejestru wejściowego oraz zgłasza przerwanie INT do mikroprocesora. Jeżeli w procedurze obsługi prze- rwania mikroprocesor odczyta zawartość rejestru, to do przerzutnika wpisze się „1”, co spowoduje przejście sygnału IBF w stan niski. Oznacza to, że otoczenie może za- pisać kolejny bajt danych. 0 106 Układy mikroprocesorowe. Przykłady rozwiza(cid:23) Przykład 3. Zaprojektować moduł wyświetlania multipleksowanego i klawiatury matrycowej, za- wierający 64 klawisze i 8 wyświetlaczy. Wykorzystać dwa rejestry wyjściowe i jeden wejściowy. Rysunek 6.6. Rozwiązanie przykładu 3. Jeden rejestr zawiera adres załączonego wyświetlacza, drugi — kod wyświetlanej cy- fry. Kod ten podaje się bezpośrednio na wybrany wyświetlacz, zatem można włączyć dowolną kombinację jego segmentów. Zmiana kodu BCD lub dwójkowego na kod wyświetlacza odbywa się wyłącznie na drodze programowej. W rejestrze wyboru ak- tywnego wyświetlacza wszystkie bity — prócz jednego — mają stan „1”. Wystero- wanie wspólnego wejścia segmentów wyświetlacza wymaga zastosowania wzmac- niacza tranzystorowego, ponieważ prąd płynący przez to wejście jest zbyt duży dla wyjść układów cyfrowych. Jeżeli tranzystor jest dołączony do wyjścia będącego w stanie niskim, to napięcie baza-emiter wystarcza do wprowadzenia go w stan nasy- cenia, co powoduje załączenie wyświetlacza. Napięcie na kolektorze jest wówczas bliskie VCC. Gdy natomiast wyjście rejestru jest w stanie wysokim, tranzystor znaj- duje się w stanie odcięcia (zatkania) i wyświetlacz j est wyłączony. Stan niski na wybranym wyjściu rejestru można też użyć do wyboru sprawdzanej linii klawiatury. Jest to zatem klawiatura z „krążącym zerem”. Załóżmy, że wciśnięty kla- wisz znajduje się na przecięciu linii Si i Ki, przy czym linia Si jest wybrana — na od- powiadającym jej wyjściu rejestru jest stan niski. Stan ten przenosi się na linię Ki i może być odczytany przez bufor 74541. Znając numer linii Si i Ki można jedno- znacznie określić, który klawisz został wciśnięty. Rozdział 6.  Układy równoległego wejlcia-wyjlcia 107 Dołączenie diod do każdego klawisza gwarantuje poprawną pracę klawiatury. Gdyby diod nie było, mikroprocesor mógłby błędnie interpretować stan klawiatury. Załóżmy, że wciśnięto trzy klawisze, znajdujące się na przecię ciu linii Si i Ki, Sj i Ki oraz Sj i Kj. Pobudzenie linii Si powoduje ustawienie linii Ki w stan niski. Stan ten następnie prze- nosi się przez drugi klawisz na linię Sj, a z niej — przez trzeci klawisz — na Kj. W rezultacie mikroprocesor odczytując stan klawiatury wczyta bajt, w którym dwa bity mają wartość „0”. Poprawność lokalizacji wciśniętego klawisza zależy teraz od kolejności sprawdzania bitów słowa stanu. Jeżeli wcześniej sprawdzona będzie linia Ki, to mikroprocesor otrzyma parę Si i Ki, a więc kod pierwszego klawisza. Gdyby nato- miast najpierw sprawdził linię Kj, otrzyma parę Si i Kj, oznaczającą klawisz, który nie był wciśnięty. Opisany efekt błędnego dekodowania klawiatury matrycowej można całkowicie usunąć przez włączenie diod w taki sposób, by stan aktywny linii prze- chodził tylko w kierunku S (cid:1) K. Kierunek włączenia diod zależy więc od tego, czy jest to klawiatura z „krążącym zerem”, czy z „krążącą jed ynką”. Przedstawiony układ jest dość prosty, wymaga jednak stosunkowo złożonej obsługi programowej. Do zadań mikroprocesora należą tu:  zmiana kodu dwójkowego na kod „1 z n” przed zapisaniem do rejestru wyboru aktywnej linii;  zmiana kodu BCD lub dwójkowego na kod wyświetlacza 7-se gmentowego przed zapisaniem do rejestru wyświetlanego znaku;  zmiana kodu „1 z n” na kod dwójkowy po odczytaniu stanu klawiatury;  sprawdzanie, czy wciśnięto jakikolwiek klawisz;  dotrzymywanie zadanej częstości przełączania wyświetl aczy i przeglądania klawiatury. Wszystkie wymienione zadania można zrealizować sprzętowo, tj. za pomocą odpo- wiednich układów scalonych, także przy użyciu programowalnych układów równole- głego wejścia-wyjścia. Przykład 4. Zaprojektować moduł wyświetlania multipleksowanego i klawiatury matrycowej, za- wierający 64 klawisze i 8 wyświetlaczy. Alfabet wyświetlacza składa się wyłącznie z cyfr dziesiętnych w kodzie BCD. Wykorzystać układ 8255 pracujący w trybie z po- twierdzeniami. Układ powinien współpracować z mikroprocesorem 8051 i zgłaszać dwa osobne przerwania:  od klawiatury — gdy wykryto wciśnięcie klawisza,  od wyświetlacza — gdy trzeba zmienić aktywny wyświetl acz. 108 Układy mikroprocesorowe. Przykłady rozwiza(cid:23) Rysunek 6.7. Rozwiązanie przykładu 4. Port PB układu 8255 pracuje jako wyjście. Linie PB0 – PB2 poprzez demultiplekser 74139 wybierają aktywny wyświetlacz i pobudzają klawiaturę. Wspólne wejścia wy- świetlaczy steruje się za pośrednictwem wzmacniaczy tranzystorowych. Na wyjściach PB3 – PB6 podawany jest kod cyfry do wyświetlenia. Dodatkowo najstarszy bit portu steruje wyświetlaniem kropki dziesiętnej poprzez br amkę wzmacniającą. Wpisaniu informacji do portu PB towarzyszy automatyczna aktywacja sygnału OBFB . Powoduje to ładowanie kondensatora. Gdy kondensator się naładuje, bramka Schmitta wytwarza sygnał ACKB , informujący o „zużyciu” danych portu PB i ko- nieczności wpisania nowej informacji. Układ 8255 generuje sygnał przerwania od portu PB. Odpowiednio dobierając opóźnienie w układzie można zatem zmieniać czę- stość odświeżania wyświetlaczy. Port PA układu pracuje jako wejście służące do wczytywania stanu klawiatury. Gdy układ wykryje wciśnięty klawisz, jedna z linii Ki przyjmuje stan niski, skutkiem cze- go wyjście 8-wejściowej bramki NAND przyjmuje stan wysoki. Na wejściu STBA pojawia się stan aktywny, a zawartość linii portu PA wpisuje się do rejestru we- wnętrznego w układzie 8255. Po zapamiętaniu tej informacji układ automatycznie ge- neruje sygnał przerwania od portu PA. Sygnał ten można wykorzystać w mikroproce- sorze 8051 jako zgłoszenie przerwania od klawiatury. Dzięki sprzętowej realizacji wielu funkcji modułu mikroprocesor musi tylko zmieniać kod „1 z n” na kod dwójkowy po odczytaniu stanu klawiatury. Czynność ta jest wykonywana w procedurze obsługi przerwania klawiatury. Alternatywnie można Rozdział 6.  Układy równoległego wejlcia-wyjlcia 109 zakodować stan klawiatury używając kodera priorytetowego, np. układu 74148 lub 74348. Rozwiązanie takie jest konieczne, gdy liczba linii Ki przekracza liczbę wol- nych linii wejściowych portu. Przykład 5. Zaprojektować moduł wyświetlania multipleksowanego i klawiatury matrycowej, za- wierający 128 klawiszy i 8 wyświetlaczy. Alfabet wyświetlacza składa się z 32 zna- ków. Wykorzystać układ Z-80 PIO pracujący w trybie z potwierdzeniami. Układ po- winien współpracować z mikroprocesorem Z-80 i zgłaszać dwa osobne przerwania:  od klawiatury — gdy wykryto wciśnięcie klawisza,  od wyświetlacza — gdy trzeba zmienić aktywny wyświetl acz. Rysunek 6.8. Rozwiązanie przykładu 5. Aby można było sterować ośmioma wyświetlaczami i pokazywać na nich do 32 róż- nych znaków, potrzeba 8 linii wyjściowych portu. Oczywiście przełączanie wyświe- tlaczy wymaga zewnętrznego dekodowania (układ 74138) i wykorzystuje 3 najmłod- sze bity portu. Pozostałe bity podają kod znaku do wyświetlenia. Zmianą tego 5-bitowego kodu na kod wyświetlacza zajmuje się pamięć PROM (74S188) o organi- zacji 328. Jest to układ z wyjściami z otwartym kolektorem, a więc może sterować wyświetlaczami bezpośrednio, o ile prąd świecenia pojedynczego segmentu nie prze- kracza maksymalnego prądu wyjściowego układu w stani e niskim. Układ opóźniający włączony między linie sterujące portu PB powoduje automatyczną generację przerwania od tego portu po upływie zadan ego czasu. 110 Układy mikroprocesorowe. Przykłady rozwiza(cid:23) Jeżeli nie można wykorzystać więcej niż 8 linii wyjściowych do przeglądania kla- wiatury, to układ musi mieć 16 linii wejściowych z klawiatury. Do dyspozycji po- zostaje jednak tylko jeden port 8-bitowy. Dlatego też konieczne jest użycie dwóch koderów priorytetowych (74348) połączonych kaskadowo. Wyjścia adresowe ( ) tych układów są trójstanowe, można więc połączyć je razem, ponieważ są one aktyw- ne tylko wtedy, gdy układ jest włączony (wejście EI w stanie niskim), a wśród wejść informacyjnych co najmniej jedno jest aktywne. 2A0A  Jeśli wszystkie wyjścia klawiatury (linie K0 – K15) są nieaktywne, to wyjścia adreso- we pierwszego układu są w stanie wysokiej impedancji, a wyjście EO przyjmuje stan niski. Identyczna sytuacja panuje na wyjściach drugiego kodera, zatem wejście STB układu PIO pozostaje nieaktywne. Jeśli aktywna jest co najmniej jedna linia klawiatury dołączona do pierwszego kodera, to wybiera on linię o najwyższym priorytecie, a jej numer pojawia się na wyjściach adresowych. Jednocześnie wyjście EO przyjmuje stan wysoki, co blokuje pracę dru- giego układu. Stan tego sygnału uzupełnia też zakodowany numer linii, dzięki czemu można stwierdzić, z którego kodera pochodzi informacja. Wyjście EO drugiego ko- dera jest też w stanie wysokim, a więc na wejściu STB układu PIO jest stan aktywny. W związku z tym 4-bitowy kod linii klawiatury jest zapamiętywany w rejestrze wej- ściowym układu PIO. Jeżeli linie przyłączone do pierwszego kodera są nieaktywne, ale aktywna jest co najmniej jedna linia wejściowa drugiego kodera, to na jego wyjściach pojawia się numer linii o najwyższym priorytecie. Sygnał EO jest w stanie wysokim, co powo- duje wpisanie informacji do rejestru wejściowego układu PIO. Jest ona uzupełniona o stan wyjścia EO pierwszego kodera (w tym przypadku jest to stan ni ski). Zapamiętanie informacji w porcie PA powoduje zgłoszeni e przerwania od tego portu. Układ PIO może zgłaszać przerwania od obu portów, o ile zostanie odpowiednio za- programowany. Ponieważ układ ma tylko jedno wyjście zgłoszenia przerwania, roz- różnienie ich odbywa się dopiero w trakcie cyklu potwierdzenia przyjęcia przerwania przez mikroprocesor na podstawie wektora przerwań, który PIO przekazuje mikro- procesorowi.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Układy mikroprocesorowe. Przykłady rozwiązań
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: