Mikrokomputer 8022

Uproszczony schemat blokowy, symbol logiczny oraz rozkład sygnałów na końcówkach obudowy układu 8022 pokazano na rys.
Funkcje sygnałów są następujące:
P00 - P07 (port 0) - 8-bitowy port we-wy; wyjścia z otwartym kolektorem, wejścia z komparatorami napięcia;
UTH - wejście napięcia odniesienia dla komparatorów z P0;
P10 - P17 (port 1) - 8-bitowy port we-wy;
P20 - P27 (port2) - 8-bitowy port we-wy; przy współpracy z ekspanderem 8243 bity P20-P24 pełnią funkcję 4-bitowej magistrali
PROG - wyjście sygnału sterującego do współpracy z układem ekspandera 8243;
T0(Test 0) - wejście przerywające (aktywny stan niski); jego stan może być testowany za pomocą rozkazów skoków warunkowych JT0, JNT0;
T1 (Test 1)- wejście pracujące jako dekoder przejścia przez 0 napięcia zewnętrznego sygnału wolnozmiennego; opcjonalnie - wejście sygnału logicznego; stan wejścia może być testowany za pomocą rozkazów skoków warunkowych JT1, JNT1;po wykonaniu rozkazu STRT CNT - wejście sygnału zegarowego dla układu czasowo-licznikowego;
RESET - wejście zerujące; aktywny poziom wysoki;
XTAL1 - pierwsza końcówka do dołączenia rezonatora zewnętrznego; wejście zewnętrznego sygnału zegarowego;
XTAL2 - druga końcówka do dołączenia rezonatora zewnętrznego;
ALE - wyjście sygnału zegarowego, wyznaczającego cykle maszynowe o częstotliwości fxtal/30;
AN0, AN1 - wejścia analogowe do przetwornika a/c;
AUCC - zasilanie przetwornika a/c (+5,5 V +- 1 V);
AUSS - masa analogowa (0 V); wyznacza dolny poziom zakresu przetwornika a/c;
UAREF - napięcie odniesienia dla przetwornika a/c; wyznacza górny poziom zakresu przetwornika;
SUBST - podłoże; końcówka do dołączenia kondensatora bocznikującego;
UCC - zasilanie (+5,5 V +- 1 V);
USS - masa (0 V).

Mikrokomputer 8022 jest funkcjonalnie i elektrycznie bazowany na układzie 8021. Większość bloków funkcjonalnych obu mikrokomputerów jest taka sama lub nieco zmodyfikowana. Do układu 8022 zostały dodane nowe bloki. Takie same w obu mikrokomputerach są następujące elementy:
- jednostka arytmetyczno-logiczna i rejestry użytkowe,
- pamięć danych,
- układ czasowo-licznikowy,
- port P1 i wejście T1,
- sposób dołączenia ekspandera 8243,
- zegar systemowy i cykl maszynowy,
- zerowanie mikrokomputera i jego specjalne tryby pracy.

Niewielkie zmiany w mikrokomputerze 8022 w stosunku do 8021 dotyczą podanych niżej elementów. Są to:
- powiększona pamięć programu, mająca pojemność 2048 (2K) słów, adresowana za pomocą konwencjonalnego 11-bitowego licznika rozkazów,
- 8-bitowy port P2.

Zmienione lub nowe elementy w mikrokomputerze 8022 to:
- port P0,
- wejście T0,
- system przerwań,
- przetwornik analogowo-cyfrowy.

Port P0

Port P0 mikrokomputera 8022 jest pseudodwukierunkowym portem, w którym linie wejściowe mogą pracować jako komparatory napięcia. Strukturę jednej linii portu pokazano na rys.
Dołączenie opornika R wymuszającego stan wysoki linii w przypadku, gdy jest ona wyjściem, jest opcjonalne i może być określone (dowolnie dla każdej linii) przez użytkownika przy zamawianiu maski pamięci ROM. Jeśli nie ma opornika R, to linia wykorzystana jako wyjście jest wyjściem z otwartym kolektorem.

Jeśli linia działa jako wejście, to jej stan logiczny jest czytany z wyjścia analogowego komparatora porównującego napięcie na końcówce linii z napięciem odniesienia UTH (wspólnym dla wszystkich linii). Dokładność komparatora wynosi ok. 100mV. Napięcie odniesienia UTH może przybierać wartość z przedziału (USS, UCC/2). W konfiguracji bez opornika R linia portu P0 jest więc wejściem sygnału analogowego, przetwarzanego na sygnał dwunstanowy, z ustawianym progiem przełączania.

Jeśli końcówka UTH nie jest z niczym połączona, to próg przełączania komparatora jest ustawiony wewnętrznie tak, by linia (również w konfiguracji z opornikiem R) mogła być wykorzystana jako wejście sygnału logicznego w standardzie TTL.

Zasady programowej komunikacji z portem P0 są takie same, jak z portami P1 i P2.

WEJŚCIE T0

Wejście T0 mikrokomputera 8022 jest wejściem logicznym, którego stan może być testowany za pomocą rozkazów skoków warunkowych JT0 i JNT0. Wejście to pełni ponadto funkcję wejścia przerywającego. Stan niski na T0 jest sygnałem zgłoszenia przerwania zewnętrznego.

SYSTEM PRZERWAŃ

System przerwań mikrokomputera 8022 jest jednopoziomowy. Przyjmuje dwa zgłoszenia przerwań:
- zewnętrzne - poziom niski na wejściu T0; wyższy priorytet; start programu obsługi od adresu 3;
- wewnętrzne - przepełnienie licznika w układzie czasowo-licznikowym; niższy priorytet; start programu obsługi od adresu 7.

Organizacja i zasady wykorzystania systemu są podobne jak w mikrokomputerze 8048 Występuje jednak między nimi pewna różnica. Otóż, w czasie przyjęcia przerwania na stosie zapisuje się tylko stan licznika rozkazów (nie ma słowa stanu). Wprowadzono specjalny rozkaz powrotu z przerwania - RETI, którego wykonanie powoduje zdjęcie adresu powrotu ze stosu i wpisanie go do licznika rozkazów. Jest on sygnałem końca obsługi dla systemu przerwań (podobnie jak RETR w 8048).

Należy przy tym zwrócić uwagę, że w celu zabezpieczenia przed zmianą ustalonych w programie głównym wartości akumulatora oraz znaczników C i AC (nie są zapisywane na stosie), należy je zapisać do pamięci i odtworzyć w programie obsługi przerwania. Można to zrobić tak:

MOV R6,A		;zapamiętanie zawartości akumulatora
CLR A			;przetworzenie stanu znaczników C i CA
DAD			;na cyfry dziesiętne 6 w akumulatorze
MOV R7,A		;zapamiętanie znaczników
...			;program obsługi przerwania
MOV A,R7
ADD A,#0AAH		;odtworzenie znaczników
MOV A,R6		;odtworzenie akumulatora
RETI			;powrót z przerwania

PRZETWORNIK ANALOGOWO-CYFROWY

Mikrokomputer 8022 zawiera 8-bitowy, dwukanałowy przetwornik analogowo-cyfrowy (ang. analog to digital converter), którego schemat blokowy przedstawiono na rysunku
Przetwarzanie jest dokonywane metodą kolejnych przybliżeń (ang. successive approximation technique), w czterech cyklach maszynowych mikrokomputera.

Dwa kanały wejściowe przetwornika są dołączone do wewnętrznego multipleksera analogowego. Przełączenie multipleksera odbywa się programowo, za pomocą rozkazów SEL AN0 i SEL AN1, których wykonanie powoduje dołączenie wybranego wejścia do przetwornika i rozpoczęcie przetwarzania. Przetwarzanie sygnału z określonego wejścia jest po uruchomieniu prowadzone cyklicznie, w sposób ciągły. Po zakończeniu jednego cyklu przetwarzania automatycznie rozpoczyna się następny. Wykonanie rozkazu SEL AN podczas przetwarzania powoduje przerwanie tego procesu i rozpoczęcie nowego, tzn. przetwarzanie sygnału z nowo określonego wejścia.

Na początku cyklu przetwarzania napięcie na wybranym wejściu jest próbkowane i zapamiętywane wewnętrznie (ang. sample and hold), po czym w kolejnych krokach cyklu przetwarzania jest ono porównywane przez komparator z napięciem wzorcowym. Napięcie wzorcowe jest pobierane z odpowiedniego punktu drabinki oporowej, złożonej z 256 identycznych oporników, dołączonych między końcówkami napięcia odniesienia UAREF i masy analogowej AUSS. Punkt drabinki oporowej, z którego jest pobierane napięcie wzorcowe, jest określony przez zawartość rejestru kolejnych przybliżeń SAR. W kolejnych krokach, do kolejnych bitów tego rejestru (począwszy od bitu najbardziej znaczącego) wpisuje się jedynka, po czym, w zależności od wyniku porównania tak określonego napięcia wzorcowego z przetwarzanym, bit ten jest zerowany lub nie. Po ośmiu krokach wynik przetwarzania jest przepisywany z rejestru SAR do rejestru wyniku CRR, z którego może być odczytany programowo rozkazem RAD. Kolejne wyniki przetwarzania wpisują się do rejestru CRR co cztery cykle maszynowe. Sterowanie przebiegiem cyklu przetwarzania jest całkowicie sprzętowe.

Programowe sterowanie przetwornikiem ogranicza się do wybrania kanału i rozpoczęcia procesu przetwarzania za pomocą rozkazów SEL AN oraz odczytania wyniku rozkazem RAD. Nie jest wytwarzany sygnał gotowości wyniku przetwarzania. Odczytanie rejestru CRR może się odbyć w dowolnej chwili, co najmniej cztery cykle maszynowe po wykonaniu rozkazu SEL AN, po czym zawsze będzie odczytywany wynik ostatnio zakończonego cyklu przetrwania.

Zakres przetwarzanego napięcia jest określony przez poziom dołączonego z zewnątrz napięcia odniesienia UAREF. Powinno ono mieścić się w granicach od Ucc/2 do Ucc.

Celem zapewnienia dobrej dokładności przetwarzania, przetwornik a/c ma osobne, oddzielone od części cyfrowej, zasilanie z końcówki AUcc (+5 V) i z końcówki AUss (0 V - masa analogowa).

Jest też wyprowadzone podłoże (ang. substrate), tzn. końcówka SUBST. Zaleca się dołączenie kondensatora bocznikującego o pojemności od 0,5 nF do 10 nF między tę końcówkę a masę.

LISTA ROZKAZÓW

Lista rozkazów mikrokomputera 8022 jest podzbiorem listy mikrokomputera 8048, uzupełnionym o rozkazy obsługi przetwornika analogowo-cyfrowego:
SEL AN0 - dołącz kanał 0; start przetwarzania
SEL AN1 - dołącz kanał 1; start przetwarzania
RAD     - czytaj wynik przetwarzania

Poniżej przedstawiono rozkazy usunięte z listy mikrokomputera 8048.
Przeslania Rejestry i znaczniki Skoki Wejście-wyjście Rozkazy sterujące
MOV A,PSW DEC Rr JF0 adr ANL Pp,#n SEL RB0
MOV PSW,A CLR F0 JF1 adr ORL Pp,#n SEL RB1
MOVX A,@Ri CPL F0 JNI adr INS A,BUS* SEL MB0
MOVX @Ri,A CLR F1 JBb adr ANL OUTL BUS,A* SEL MB1
MOVP3 A,@A CPL F1 Podprogramy ANL BUS,#n ENT0 CLK
RETR** ORL BUS,#n
* - zastąpione przez IN A,P0 i OUTL P0,A
**- zastąpiony przez RETI

Powrót