Krzysztof Arnold Instytut Elektroniki i Telekomunikacji Politechnika Poznańska Ul. Piotrowo 3A 6 965 Poznań E mail: karnold@et.put.poznan.pl 25 Poznańskie Warsztaty Telekomunikacyjne Poznań 8-9 grudnia 25 MODUŁ NARZĘDZIOWY CPU DLA SYEMÓW Z MIKROPROCESOREM Z88 Streszczenie: W pracy porównano właściwości sprzętowych i programowych środków wspomagających prowadzenie prac badawczych w środowisku systemów mikroprocesorowych. Omówiono architekturę i właściwości mikroprocesora Z88. Przedstawiono rozwiązanie modułu wspierającego uruchamianie systemów z mikroprocesorem Z88, współpracującego z emulatorem pamięci, zarządzanym z poziomu komputera PC. Ponadto przedyskutowano zalety proponowanego rozwiązania.. WĘP Specyfika działania i znaczny stopień złoŝoności mikroprocesora sprawiają, Ŝe łączne uruchamianie oprogramowania i sprzętu jest najmniej przewidywalnym i często najbardziej pracochłonnym etapem procesu projektowania systemów mikroprocesorowych. Stwarza to potrzebę korzystania ze środków wspierających uruchamianie, ale względy ekonomiczne ograniczają zwykle moŝliwość wbudowania dodatkowych układów wspomagania w opracowywane systemy. W pracach prowadzonych na kolejnych etapach tworzenia systemów mikroprocesorowych wykorzystywane są natomiast odpowiednio specjalizowane narzędzia. W pierwszym rzędzie naleŝą do nich zewnętrzne systemy projektowo- uruchomieniowe MDS i symulatory skrośne, pozwalające na wczesne wykrycie i usunięcie większości błędów programowych. Weryfikacja oprogramowania odbywa się jednak wówczas poza środowiskiem projektowanego systemu mikroprocesorowego, co uniemoŝliwia zbadanie właściwości dynamicznych programów uŝytkownika w docelowych warunkach pracy. Ocena czasowych uwarunkowań działania programu i jego współpracy ze sprzętem moŝe być dokonywana przy wykorzystaniu takich środków wspomagających, jak sprzętowe pakiety prototypowe i dedykowane małe systemy laboratoryjne z programem monitora. Rozwiązania te przybliŝają środowisko sprzętowe docelowego systemu, ale ich obszar działania jest zawęŝony ze względu na mało elastyczną strukturę układową i niewygodne wprowadzanie poprawek programowych. Na tym tle zdecydowanie najlepsze, ale i kosztowne wsparcie procesu projektowego zapewniają systemy MDS wyposaŝone w sondę emulacyjną oraz analizatory stanów logicznych. Wykrycie istotnych błędów dopiero na etapie uruchamiania systemu docelowego moŝe spowodować cofnięcie prac do zmian w projekcie technicznym włącznie i zwiększenie kosztów przedsięwzięcia. Z tego względu końcowa weryfikacja sprzętu i oprogramowania powinna być poprzedzona sprawdzeniem współdziałania kluczowych podprogramów z podsystemami warstwy sprzętowej. Wymaga to stworzenia odpowiedniego środowiska sprzętowego. W warunkach laboratoryjnych wymagania takie moŝe spełniać system modułowy, pozwalający na elastyczne modelowanie systemów mikroprocesorowych o róŝnej strukturze układowej, przy rozsądnych nakładach na wsparcie w postaci emulatora pamięci i programu asemblera, a takŝe układu pracy krokowej. Jest to istotne zwłaszcza tam, gdzie wokół złoŝonego mikroprocesora moŝna tworzyć róŝnorodne konfiguracje sprzętowe. Dotyczy to wielu wykorzystywanych obecnie procesorów, w tym w szczególności układu Z88, standardowo współpracującego z zewnętrzną magistralą. 2. WŁAŚCIWOŚCI MIKROPROCESORA Z88 Sprzętowe i programowe moŝliwości mikroprocesorów sygnowanych symbolami Z88/Z8 MPU predestynują je do przejęcia większości podstawowych funkcji systemowych w 8-bitowych systemach o typowej konfiguracji lub pełnienia roli zaawansowanych jednostek centralnych w systemach bardziej złoŝonych. Procesor Z88 jest połączeniem rdzenia jednostki centralnej z niemal wszystkimi podstawowymi układami wejścia/wyjścia []. Rdzeń jednostki centralnej obejmuje pięć bloków funkcjonalnych (rys.): - generator zegarowy, - właściwą jednostkę centralną CPU, - jednostkę zarządzania pamięcią MMU, - kontroler stanu magistral, - kontroler przerwań. Jednostka centralna CPU jest programowo zgodna z wcześniejszym mikroprocesorem Z8 CPU i moŝe w skróconym czasie wykonywać wszystkie jego instrukcje oraz rozkazy z rozszerzenia listy. Blok zarządzania pamięcią MMU pozwala na korzystanie z zewnętrznej pamięci programu i danych PWT 25 - POZNAŃ 8-9 GRUDNIA 25 /5
o pojemności MB, przy logicznym adresowaniu przez CPU 64kB pamięci w obrębie wskazanej strony. Rozbudowany kontroler przerwań przegląda linie zgłoszeń i ustala priorytety przerwań pochodzących z dwunastu zewnętrznych i wewnętrznych źródeł (tab.) oraz odpowiada za potwierdzenie przyjęcia przerwania. TxS CKS A9- XTAL EXTAL Gen. PRT PRT CSI/ Port MMU Addr. Buf. CPU ASCI Ch ASCI Ch BSC Intr. DMAC DMAC Data Buf. RESET WR MREQ BUSREQ BUSACK RFSH INT INT DREQ TEND TxA RxA RTS CTS DCD TxA CKA/ TEND RxA D7- Rys.. Schemat funkcjonalny mikroprocesora Z88 System przerwań mikroprocesora Z88 jest hierarchiczny, a generowane przy wykryciu nielegalnego kodu operacji przerwane TRAP ma najwyŝszy priorytet i moŝe być wykorzystane do M E zwiększenia niezawodności działania systemu mikroprocesorowego, rozszerzania listy rozkazów i tworzenia makroinstrukcji, a takŝe zakładania pułapek programowych. Obsługa przerwania /INT moŝe odbywać się w trzech trybach, z pobieraniem kodu instrukcji R z szyny danych (tryb ), restartem programu od adresu 38H (tryb ) i pobraniem z szyny danych młodszego bajtu wektora przerwania, wskazującego miejsce adresu podprogramu obsługi przerwania w tablicy adresów startowych (tryb 2). Aktywizacja trybu 2 pozwala na obsługę zgłoszeń wystawianych na linii /INT przez specjalizowane układy peryferyjne, zorganizowane w łańcuchowy, priorytetowy system przerwań. W przypadku przerwań /INT, / i pozostałych przerwań wewnętrznych młodszy bajt wektora przerwań jest pobierany z rejestru IL procesora, a programowana relokacja podprogramów obsługi przerwań jest moŝliwa w zakresie węŝszym niŝ dla przerwania /INT [,2]. Tab.. Przerwania mikroprocesora Z88 Źródło Typ przerwania Priorytet przerwania TRAP / /INT /INT / PRT PRT DMA DMA CSI/O ASCI ASCI Zewnętrzne niemaskowalne NajwyŜszy NajniŜszy Zintegrowane układy wejścia/wyjścia tworzą cztery bloki funkcjonalne. W ich skład wchodzą: - układ bezpośredniego dostępu do pamięci (dwa kanały DMA), - asynchroniczny szeregowy interface komunikacyjny (dwa kanały ASCI), - taktowany szeregowy interface wejścia/wyjścia (pojedynczy kanał CSI/O), - programowany i przeładowywany układ odmierzania czasu (dwa kanały PRT). Tab.2. Tryby pracy kanału DMA Rodzaj transferu Inkrementacja/dekrementacja adresu pamięć*-pamięć we/wy-pamięć pamięć*-pamięć we/wy-pamięć * * pamięć-we/wy pamięć-we/wy *układ we/wy w przestrzeni adresowej pamięci SAR+, DAR+ SAR-, DAR+ SAR bez zmian, DAR+ SAR bez zmian, DAR+ SAR+, DAR- SAR-, DAR- SAR bez zmian, DAR- SAR bez zmian, DAR- SAR+, DAR bez zmian SAR-, DAR bez zmian SAR+, DAR bez zmian SAR-, DAR bez zmian Kontroler kanału DMA wspiera kilkanaście wariantów szybkiego transferu danych wewnątrz PWT 25 - POZNAŃ 8-9 GRUDNIA 25 2/5
pamięci oraz pomiędzy pamięcią a układami wejścia/wyjścia, z uwzględnieniem układów lokowanych w przestrzeni adresowej pamięci (tab. 2) i obu układów ASCI. Kanał DMA operuje w przestrzeni adresowej MB przy współpracy z pamięcią i w obszarze 64kB dla układów wejścia/wyjścia. Transfer danych moŝe być prowadzony w trybie ciągłym lub przeplatanym, gdy po przesłaniu kaŝdego bajtu kontroler DMA zwalnia szynę danych na jeden cykl maszynowy CPU. Kanał DMA ma niŝszy priorytet i funkcje ograniczone do obustronnej wymiany danych pomiędzy pamięcią a układami wejścia/wyjścia [3]. Asynchroniczny szeregowy interface komunikacyjny ASCI dysponuje dwoma w pełni niezaleŝnymi nadajnikami/odbiornikami typu UART, wyposaŝonymi w podzbiór linii modemowych i prowadzącymi odrębne transmisje full-duplex dla 7- lub 8-bitowych słów danych, z moŝliwością programowania 9-go bitu przy komunikacji wieloprocesorowej. Oba kanały ASCI mogą pracować z zegarem wewnętrznym i programowaną szybkością transmisji lub z zewnętrznym sygnałem taktującym. Błędy parzystości, ramki i przepełnienia odbiornika są po detekcji sygnalizowane przez ustawienia bitów kontrolnych w rejestrze statusu i przez zgłoszenie odblokowanego przerwania. Układ ASCI zgłasza przerwanie równieŝ po wykryciu narastającego zbocza sygnału na wejściu /DCD i standardowo po opróŝnieniu nadajnika lub skompletowaniu ramki w odbiorniku [,3,4]. Szeregowy port CSI/O, taktowany zegarem wewnętrznym lub zewnętrznym, jest przeznaczony do prowadzenia szybkiej transmisji synchronicznej typu half-duplex i szczególnie przydatny dla komunikacji wieloprocesorowej. Dwa programowalne 6-bitowe układy czasowe PRT zliczają impulsy o częstotliwości sygnału zegarowego mikroprocesora, podzielonej przez 2. Zawartość timerów jest dekrementowana i moŝe być przechwycona dla bieŝącego odczytu. Po osiągnięciu stanu zerowego następuje automatyczne przeładowanie wartości początkowej i przejście do kolejnego cyklu zliczania, sygnalizowane przerwaniem. Układ PRT posiada zewnętrzne wyjście TOUT, ustawiane w stanie niskim, wysokim lub zanegowanym przy przejściu stanu rejestru danych timera przez zero. Pozwala to na programowanie parametrów generowanego sygnału PWM. Zasoby wewnętrzne mikroprocesora Z88 mogą być ponadto wprowadzone w stany i IOOP (zatrzymanie pracy układów wejścia/wyjścia), a takŝe w oszczędnościowy tryb uśpienia SLEEP i zapewniający najmniejszy pobór mocy tryb SYEM OP [,3,4]. 3. WYMAGANIA DLA MODUŁU Z88 Znaczny stopień złoŝoności wewnętrznej mikroprocesora Z88 oraz róŝnorodność moŝliwości programowania jego pracy (tryby pracy, sekwencje sterujące, wektory przerwań, funkcje niektórych wyprowadzeń) i gospodarowania zasobami podnoszą rangę etapu uruchamiania kontrolowanych przez wymieniony procesor systemów. Wśród środków wspomagających uruchamianie systemów mikroprocesorowych w warunkach laboratoryjnych na szczególną uwagę zasługują rozwiązania z emulatorami pamięci, zarządzanymi z poziomu nadrzędnego komputera PC. Wprowadzenie sprzętowego emulatora do systemu modułowego (rys.2) umoŝliwia jego wykorzystanie do testowania róŝnych typów mikroprocesorów, włącznie z mikroprocesorami jednoukładowymi, zwykle zdolnymi do pobierania rozkazów z zewnętrznej pamięci programu. CPU Magistrala systemowa Emulator pamięci Mikrokomputer PC kontrolny Rys.2. Schemat funkcjonalny modułowego systemu mikroprocesorowego z emulatorem pamięci W przypadku mikroprocesorów współpracujących standardowo z szyną systemową i wyposaŝonych w mechanizm pracy krokowej, takich jak Z88, praca w uruchomieniowym środowisku sprzętowym opartym na magistrali dostarcza wiele cennych informacji. Skłania to do opracowania moŝliwie uniwersalnego modułu, ułatwiającego konfigurowanie i uruchamianie systemów z jednostką centralną Z88. Przewidywana rola i miejsce modułu w laboratoryjnym systemie mikroprocesorowym prowadzą do sformułowania następujących wymagań projektowych: - moŝliwość pracy krokowej lub ciągłej mikroprocesora, - kontrola pracy modułu na poziomie testowania funkcjonalnego, - obserwacja stanu modułu na zasadzie monitorowania wybranych linii, - moŝliwość konfigurowania programowo multipleksowanych wyprowadzeń procesora w celu pełnego wykorzystania jego zasobów sprzętowych, - buforowanie magistrali adresowej, danych i sterującej, - zwolnienie magistrali systemowej na Ŝądanie /BUSREQ, - minimalizacja liczby układów buforowych i sterujących, niezbędnych dla bezpiecznej współpracy jednostki Z88 z magistralą, - zasilanie modułu przez złącza systemowe, - zerowanie modułu przez złącze systemowe i złącze uŝytkownika, PWT 25 - POZNAŃ 8-9 GRUDNIA 25 3/5
- wyprowadzenie portów szeregowych ASCI, ASCI, CSI/O na złącze uŝytkownika, - moŝliwość korzystania z sygnałów portów szeregowych na poziomie TTL lub RS 232C, - moŝliwość ustawienia potwierdzeń w grupie sygnałów modemowych ASCI na stałe w obrębie modułu, - moŝliwość konfigurowania dekodera adresów układów wejścia/wyjścia (dekodowanie niepełne) w obrębie modułu, - przejrzystość tworzonej struktury logicznej, - zamieszczenie opisów konfiguracyjnych na płycie modułu, - mała obciąŝalność linii w obrębie modułu, - mały pobór mocy, - format modułu zgodny z standardem EUROCA. 4. CHARAKTERYYKA MODUŁU Z MIKROPROCESOREM Z88 Zaprojektowany w oparciu o przedstawione wymagania moduł narzędziowy składa się z mikroprocesora Z88 i układów towarzyszących. Są one odpowiedzialne za: - buforowanie wyprowadzeń mikroprocesora od strony magistrali systemowej, - buforowanie portów ASCI i CSI/O od strony złącz uŝytkownika, - zapewnienie translacji poziomów TTL/RS232C i RS232C/TTL w kanałach transmisji szeregowej, - dekodowanie adresów układów wejścia/wyjścia, - sprzętowe konfigurowanie linii sygnałowych multipleksowanych programowo, - zerowanie pakietu i systemu, - monitorowanie wybranych linii. Układy buforowe umiejscowione od strony złącza systemowego (rys.3) pełnią funkcję wzmacniaczy prądowych, zapewniających poprawne sterowanie linii adresowych, linii danych i linii sterujących przy zwiększonym obciąŝeniu magistrali lub większej częstotliwości sygnału zegarowego mikroprocesora. Po odebraniu przez procesor Ŝądania dostępu do magistrali, wystawionego przez zewnętrzny sterownik DMA, układy te wchodzą w stan wysokiej impedancji. Kierunek przepływu danych przez bufor szyny danych jest dynamicznie przydzielany za pośrednictwem układu sterującego DIR. Linie /DREQ (Ŝądanie obsługi zgłaszane przez zewnętrzny układ wejścia/wyjścia nadzorowany przez kanał DMA) i /TEND (sygnał zakończenia transmisji wystawiany przez kanał DMA) są konfigurowane przez uŝytkownika pod kątem wyboru aktywnego złącza. Konfigurator wyprowadzeń /, i E umoŝliwia przydział tych linii do wybranych linii uŝytkownika na złączu systemowym. Dekoder adresu pozwala na przydział adresów dla ośmiu układów wejścia/wyjścia. Układy umieszczone po stronie złącz uŝytkownika zapewniają monitorowanie stanu mikroprocesora i jego zabezpieczenie, konfigurowanie współdzielonych lub dwukierunkowych linii wyprowadzanych na złącza oraz translację poziomów napięć do standardu RS232C. W szczególności pozwalają one na: - określanie funkcji linii CKA/DREQ i wybór standardu transmisji w kanale ASCI, - określanie przeznaczenia linii CKA/TEND i wybór standardu transmisji w kanale ASCI, - określanie przeznaczenia linii CKS i RXS/CTS w kanale CSI/O, - określanie funkcji linii A8/TOUT. Złącze systemowe Ster. HZ Ster. DIR Dekoder adr. A8/TOUT DREQ TEND RFSH E BUSREQ BUSACK RESET INT INT M MREQ WR D7- A9- Z88 TxA RxA CKA/ DREQ RTS CTS DCD TxA RxA CKA/ TEND TxS RXS/CTS CKS Złącze uŝytkownika INT INT BUSA M P3- Ukł. mon. ASCI Rys.3. Schemat funkcjonalny modułu z mikroprocesorem Z88 RS 232 ASCI RS 232 CSI/O Ekspozycja stanów logicznych linii, / i /M na płycie czołowej modułu pozwala na wygodne monitorowanie stanu mikroprocesora przy aktywizacji trybu pracy krokowej (tab.3). Podczas pracy w tym trybie moŝna uzyskać wszystkie informacje o stanach ustalonych magistrali, występujących po uaktywnieniu sygnałów sterujących mikroprocesora w poszczególnych cyklach maszynowych (rys.4). PWT 25 - POZNAŃ 8-9 GRUDNIA 25 4/5
Dane te ujawniają przebieg komunikacji pomiędzy mikroprocesorem a pamięcią i układami wejścia/wyjścia oraz pozwalają wnioskować o ustawieniach niektórych rejestrów jednostki centralnej, nie obejmują natomiast wiedzy o zaleŝnościach czasowych pomiędzy sygnałami i stanach przejściowych w systemie. Tab.3. Kody statusowe Z88 / /M Wyjście A 9- D 7- X CPU, cykl FETCH CPU, cykle FETCH2,3 CPU, cykle inne niŝ FETCH Operacja DMA Tryb Tryby SLEEP i SYEM OP Adres Dane Odczyt magistrali wejścia/wyjścia wejściowe Rys.4. Wykres czasowy cyklu odczytu układu wejścia/wyjścia z taktami oczekiwania Z88 Oscyloskop T T 2 T w T w T w T w T 3 Magistrala systemowa Mikrokomputer PC Rys.5. Schemat funkcjonalny systemu przy testowaniu trybów i IOOP MoŜliwości konfigurowania modułu z jednostką centralną Z88 pozwalają na uruchamianie systemów równieŝ bez uciekania się do trybu pracy krokowej, poprzez wykorzystanie cech mikroprocesora czy tworzenie testowych pętli programowych. Wejście procesora Z88 w tryb IOOP moŝna przykładowo odróŝnić od wejścia w tryb dzięki śledzeniu dowolnego peryferyjnego układu transmisji równoległej i obserwacji oscyloskopowej sygnału TOUT (rys.5). 5. WNIOSKI Prezentowany moduł narzędziowy, wspomagający uruchamianie systemów mikroprocesorowych z jednostką centralną Z88, jest w stosunku do typowych pakietów prototypowych rozwiązaniem o większych moŝliwościach funkcjonalnych i znacznej uniwersalności. Przedstawione rozwiązanie ma istotne zalety, do których przede wszystkim naleŝą: - moŝliwość wykorzystania modułu w systemach o róŝnej konfiguracji, - moŝliwość efektywnego i elastycznego wykorzystania wszystkich zasobów wewnętrznych mikroprocesora, z dostosowaniem współdzielonych funkcji do postawionego zadania włącznie, - moŝliwość kontrolowania stanu modułu i mikroprocesora, - łatwość konfigurowania modułu. Wymienione cechy zostały potwierdzone po wykonaniu modułu i jego zastosowaniach systemowych w ramach procesu dydaktycznego. Dzięki wprowadzeniu rozwiązań ułatwiających konfigurowanie i diagnostykę modułu pozwala on bowiem nie tylko na prezentację systemu o ustalonej strukturze, ale przede wszystkim na implementację róŝnych rozwiązań sprzętowych. W ten sposób omawiany moduł systemowy Z88 moŝe ułatwiać: - uruchamianie systemów mikroprocesorowych z jednostką Z88, - weryfikację oprogramowania w pracach badawczych, - wspomaganie projektowania systemów mikroprocesorowych (w tym niestandardowych aplikacji Z88), - zrozumienie zasad funkcjonowania procesora i poszczególnych jego zasobów sprzętowych, - uzupełnienie danych literaturowych. SPIS LITERATURY. Z88 / Z8 TM MPU. Microprocessor Solutions for Datacommunications and Computer Peripheral Applications. User s Manual. Zilog 989. 2. Z8 Family. Questions and Answers. Zilog 993. 3. Z88. Microprocessor Unit Product Specification. Zilog 23. 4. Z88x. Family MPU User Manual. Zilog 23. PWT 25 - POZNAŃ 8-9 GRUDNIA 25 5/5