1. Mikroprocesor, mikrokomputer, mikrokontroler- definicje, struktura sprzętowa, przeznaczenie.
Mikroprocesor- jest to procesor wykonany w postaci pojedynczego mikroukładu o wielkim stopniu scalenia. Okreslenie mikroprocesora zawiera w sobie dwa elementy:
- funkcjonalne przeznaczenie do przetwarzania informacji w zadany z zewnatrz sposób
- technologiczne wykonanie jako elektronicznego układu scalonego o wielkim stopniu integracji.
Struktura sprzętowa mikroprocesora: zasadnicze układy mikroprocesora:
- jednostka arytmetyczno- logiczna ALU - potrafi wykonać: dodawanie, podstawowe operacje logiczne oraz przesunięcie bitowe w lewo i prawo
-rejestry uniwersalne
- układ sterujący
Najważniejsze cechy mikroprocesora i pojecia z nim zwiazane:
- rozkazy pobierane z pamieci programu,
- rozkazy pobierane zasadniczo po kolei,
- realizacja programu zawsze od tego samego adresu
w pamieci programu,
- taktowany generatorem impulsów zegarowych,
- cykl maszynowy,
- przerwania,
- długosc słowa - mikroprocesor np. 8-bitowy.
Mikrokomputer- mikroprocesor jako jednostka centralna wraz z zestawem układów dodatkowych
Przeznaczenie: zadania obliczeniowe, laboratoryjne
Szyna adresowa - połączenie miedzy jednostka centralna i pamiecia, które przenosi adres z/do miejsc, gdzie jednostka centralna chce miec dostep.
Szyna danych- czesc magistrali odpowiedzialna za transmisje danych. Szerokosc szyny danych oraz czestotliwosc z jaka dane SA na nia podawane okresla szybkosc transmisji danych danej magistrali.
Szyna sterujaca - połaczenie miedzy jednostka centralna i pamiecia oraz układem wejścia wyjscia które przenosi sygnały od mikroprocesora, okreslajace jaki rodzaj operacji ma wykonac układ współpracujacy.
Mikrokontroler- Jest to mikrokomputer, którego zastosowanie zostało zaweżone do sterowania urządzeniami elektronicznymi.
Cechy mikrokontrolera:
• stałość programu sterującego
• stała struktura pamięci ROM/RAM
• bogaty zestaw urzadzen we/wy
• rozbudowane układy przerwan
• różnorodne tryby i srodki redukcji poboru mocy
• rozbudowane mechanizmy kontroli i detekcji nieprawidłowych stanów mikrokontrolera
• umieszczenie w jednej strukturze układów cyfrowych i analogowych
Przeznaczone głównie do sterowania i związane z tym zadania.
Wiele możliwości współpracy z innymi urządzeniami
2. Architektura harwardzka, Von-Neumanna, zmodyfikowana harwardzka
(podział ze względu na typ struktury mapy pamięci)
Architektura Von-Neumanna
Cechuje się jednolitą przestrzenią adresową, w której wszystkie pamięci, rejestry i układy we/wy są umieszczone w jednej, wspólnej przestrzeni adresowej.
W architekturze tej zakłada się, że podział przestrzeni adresowej na pamięć programu, pamięć danych oraz obszar we/wy jest czysto umowny i zależy wyłącznie od rozmieszczenia tych elementów w obszarze adresowympodczas projektowania systemu.
Mikrokontroler ma jedną szynę danych wspólną dla danych i programu.
Architektura Harwardzka
Opiera się na użyciu dwóch oddzielnych szyn dla danych i rozkazów, dzięki czemu w trakcie pobierania argumentów wykonywanej właśnie instrukcji można równocześnie zacząć pobieranie następnego słowa rozkazowego (pre-fetch).
Skraca to cykl rozkazowy i zwiększa szybkość pracy.
W tym przypadku stosuje się inne rozkazy dla pamięci programu i inne dla pamięci danych. Ponadto magistrala danych i rozkazów mogą mieć różną szerokość.
Obszary adresowe pamięci danych i programu (wewnętrznych i czasami zewnętrznych) są rozdzielone. Pociąga to za sobą niejednoznaczność adresów, ponieważ pod tym samym adresem jednostka centralna widzi pamięć RAM i ROM.
Zmodyfikowana architektura Harwardzka
Zmodyfikowana architektura harwardzka jest rozwiązaniem pośrednim, starającym się połączyć zalety architektury harwardzkiej i Von-Neumanna. Obszary pamięci ROM i RAM są rozdzielone, ale charakteryzują się taką samą długością słowa.
Dzięki multiplekserom i odpowiedniej organizacji magistrali pamięci ROM i RAM możliwe jest z pewnymi ograniczeniami przesyłanie stałych z pamięci ROM do rejestrów i pamięci RAM (wspólna magistrala adresowa i danych).
Jedynym rejestrem niewidocznym jako komórka pamięci RAM jest rejestr akumulatora A.
3. Architektura RISC i CISC
Architektura RISC- czyli o zredukowanej liście instrukcji, odznacza się następującymi cechami:
Procesor jest zbudowany zgodnie z architekturą harwardzką,
Procesor wykorzystuje przetwarzanie potokowe w celu zwiększenia szybkości wykonywania programu,
Zbiór realizowanych instrukcji jest ograniczony i spełnia warunki ortogonalności (symetrii).
Architektura RISC- przetwarzanie potokowe
W przetwarzaniu potokowym jednostka centralna dysponuje pobranymi na zapas instrukcjami, które są kierowane do współbieżnego wykonania w jej poszczególnych jednostkach wykonawczych. W procesorze tego typu zamiast prostego rejestru instrukcji stosuje się pamięć FIFO, która gromadzi kolejkę instrukcji. Instrukcje pobierane z pamięci programu do kolejki opuszczają ją w takiej samej kolejności i są kierowane do poszczególnych układów wykonawczych.
Architektura CISC
Architektura CISC charakteryzuje się rozbudowaną liczbą instrukcji (często powyżej 100). Przeciwstawia się ją architekturze RISC. Cecha ortogonalności nie jest zachowana. Instrukcje są wąsko specjalizowane, współpracują na ogół tylko z określonymi rejestrami i wymagają stosowania określonych trybów adresowania.
4. Tryby adresowania
Adresowanie natychmiastowe
-Operand (argument) jest podany w jawnej postaci w kodzie instrukcji
ADD A,#dana,
MOV A,#0F3h
ADD a,#3
Adresowanie bezpośrednie
-po kodzie rozkazu następuje adres argumentu umieszczonego w pamięci danych (komórki pamięci RAM).
ADD A,adres
ADD A,37h
MOV A,0F8h
Adresowanie implikowane, rejestrowe wewnętrzne
- zarówno operand (argument) jak i miejsce przeznaczenia wyniku są określone przez słowo rozkazowe.
ADD A,R1
INC A
Adresowanie pośrednie
-część adresowa instrukcji wskazuje na komórkę pamięci
zawierającą adres efektywny.
Adresowanie pośrednie
MOV A, @R1 - prześlij do akumulatora wartość komórki wewnętrznej RAM, której adres zawarty jest w rejestrze R1,
ADD A,@R0 - dodaj do akumulatora wartość komórki wewnętrznej RAM, której adres zawarty jest w rejestrze R0,
MOVX A, @DPTR - prześlij do akumulatora wartość komórki zewnętrznej RAM, której adres zawarty jest w rejestrze DPTR.
Adresowanie indeksowe
- polega na obliczeniu adresu przez sumowanie zawartości specjalnie przeznaczonego do indeksowania rejestru, nazywanego rejestrem indeksowym (akumulator A), z adresem bezpośrednim, zapisanym w instrukcji (PC lub DPTR).
Adresowanie indeksowe
JMP @A+DPTR - skocz pod adres będący sumą A i DPTR,
MOVC A,@A + PC - prześlij do A wartość sumy poprzedniej zawartości A i wskaźnika PC
Adresowanie względne
- służy do adresowania pamięci względem adresu aktualnie wykonywanej instrukcji w pamięci programu. Adres ten jest przechowywany w specjalnie do tego celu przeznaczonym rejestrze, nazywanym licznikiem programu PC (program counter), licznikiem rozkazów lub wskaźnikiem instrukcji IP
JNB adres bitu,etykieta,
JNB P0.1,LOOP - jeżeli wartość bitu P0.1 jest równa 0 to skocz do etykiety LOOP.
5. Kody liczbowe, przeprowadzanie operacji arytmetycznych
Kod dziesiętny
145,06=1·102+4·101+5·100+0·10-1+6·10-2
Podstawą jest liczba 10.
Kod binarny
1011=1·23+0·22+1·21+1·20
Podstawą jest liczba 2
Przeliczanie z dziesiętnego na binarny:
19/2 9 1
9/2 4 1
4/2 2 0 =10011
2/2 1 0
1/2 0 1
Wynik otrzymujemy w kolejności od najmłodszego do najstarszego bitu
Kod szesnastkowy (heksadecymalny)
10,11, 12,13,14,15
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
3E8= 3·162+14·161+8·160 = 768+224+8=1000
Przeliczanie z szesnastkowego na dziesiętny
467/16 29 3
29/16 1 D =1D3
1/16 0 1
Wynik otrzymujemy w kolejności
od najmłodszego do najstarszego znaku
Kod uzupełnień do jedności U1
Reprezentacja liczby ujemnej uzyskuje się przez negowanie liczby dodatniej:
0110=0·23+1·22+1·21+0·20 =6
1001 = -6
- Najstarszy bit wskazuje na znak liczby
- Istnieją dwie reprezentacje zera:
0000
1111
Odejmowanie w kodzie U1:
Kod uzupełnień do dwóch U2
Waga najstarszego bitu jest zawsze ujemna
1001=-1·23+0·22+0·21+1·20 = -7
0110=0·23+1·22+1·21+0·20 =6
Liczbę ujemną otrzymuje się przez zaprzeczenie liczby dodatniej i dodanie jedności:
0110=0·23+1·22+1·21+0·20 =6
-zaprzeczenie
1001=-1·23+0·22+0·21+1·20 = -7
-dodanie +1 - 1010 = -6
Odejmowanie w kodzie U2
W odróżnieniu od U1 w kodzie U2 przeniesienie jest ignorowane. Oznacza to, że operacje wykonuje się w jednym kroku.
Kod BCD
3 9 2
392= 0011 1001 0010
Kod BCD - dodawanie:
89+45=134
Kod 1 z „n”
-Znak bitu na poszczególnej pozycji wyraża wartość liczbową
0 0000000001
1 0000000010
2 0000000100
3 0000001000
4 0000010000
5 0000100000
6 0001000000
7 0010000000
8 0100000000
9 1000000000
6. Pamięć ROM, RAM- właściwości, parametry
Pamięć ROM- pamięci tylko do odczytu. Ten typ pamięci programowany jest przez producenta w trakcie procesu produkcyjnego.
-pamięć PROM- programowalna pamięć tylko do odczytu. Jest to pamięć jednokrotnego zapisu.
-pamięć EPROM- kasowalna pamięć tylko do odczytu. Pamięć, do której zaprogramowania potrzebne jest specjalny programator
-pamięć EEPROM- pamięć kasowalna i programowalna elektrycznie
-pamięć Flash EEPROM-pamięć w której zapisywanie lub kasowanie odbywa się jednocześnie na większej liczbie komórek.
Pamięć RAM
-Pamięć RAM jest pamięcią roboczą procesora, przechowywane są w niej dane „chwilowe” potrzebne w danym momenciedo pracy układu. Zawartość pamięci RAM jest ulotna i znika po wyłączeniu zasilania komputera.
-pamięć SRAM- Pamięć przechowuje swoją zawartość tak długo, jak ma zasilanie ,w odróżnieniu od DRAM, którą trzeba okresowo odświeżać
-pamięć DRAM- Zbudowana jest na kondensatorach które są okresowo odświeżane przez specjalizowany układ.
Podstawowe parametry pamięci:
Pojemność -określa ilość informacji jaką można w niej przechować wyrażoną w bitach, bajtach lub słowach.
Organizacja- sposób rozłożenia bitów w słowa
Szybkość:
-czas dostępu - czas od momentu żądania informacji z pamięci do momentu, w którym ta informacja ukaże się na wyjściu pamięci
-czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy dwoma żądaniami dostępu do pamięci
- szybkość transmisji - określa ile bajtów (bitów) można przesłać pomiędzy pamięcią a innym urządzeniem w jednostce czasu
- Koszt.
- Pobór mocy.
7. Cykl rozkazowy mikroprocesora- etapy
Rozkazy są pobierane z pamięci i pobierane sekwencyjnie.
Etap 1. Pobranie rozkazu z pamięci:
wysłanie zawartości licznika rozkazów na magistralę adresową
odczyt instrukcji z pamięci programu
zwiększenie zawartości licznika rozkazów
Etap 2. Dekodowanie kodu rozkazowego:
zakodowanie odczytanego z pamięci rozkazu
odczytanie operandów z rejestrów
Etap 3. Obliczenie adresu argumentu, pobranie argumentu z pamięci, wykonanie rozkazu
Przykładowe operacje:
-obliczenie adresu efektywnego danej umieszczonej w pamięci
- wykonanie operacji matematycznej na rejestrach
-wykonanie operacji z użyciem danej umieszczonej w rejestrach
Etap 4. Ustalenie adresu wynikowego
odczytanie danej z pamięci danych
wpisanie adresu do licznika programów
Etap 5. Zapisanie wyniku
zapisanie rezultatu operacji w rejestrze lub pamięci
8. Mapa pamięci mikroprocesora SAB80C537
9. Rejestr PSW, znaczenie flag rejestru
CY- znacznik przeniesienia
AC- przeniesienie pomocnicze
F- znacznik programowy
RS1, RS0- wskaźnik aktywnego banku rejestrów roboczych
0V- znacznik nadmiaru (używany w kodzie U2)
- - rezerwa
P- znacznik parzystości
10. Budowa i programowanie przetwornika analogowo-cyfrowego w mikrokontrolerze
Przetwornik A/C jest zewnętrznym układem mikrokontrolera przeznaczonym do przetwarzania sygnałów z postaci analogowej 0…+5V DC na cyfrową 8-bitową. Wejście przetwornika A/C stanowi analogowy multiplekser umożliwiający pomiar napięciowego sygnału analogowego na 8 różnych kanałach z szybkością 13-15 cykli maszynowych Cp=19,5mV
Przetwornik A/C programujemy przy użyciu trzech rejestrów specjalnych SFR
BD,CLK- nieużywane podczas programowania
BSY- flaga stanu tylko do odczytu
MX2,MX1,MX0- wybór numeru kanału pomiarowego
ADM- określa rodzaj przetwarzania, ADM=1 - tryb ciągłego pomiaru, 0-pomiar pojedynczy
11. Budowa i programowanie licznika T2 w mikrokontrolerze SAB537
Licznik T2 jest jednym z najbardziej rozbudowanych układów wewnętrznych mikrokontrolera SAB 80C535. Z tego też względu ma bardzo dużo możliwości funkcjonalnych, zawartych w trzech trybach pracy, określanych skrótem CCR:
CCR − Compare (porównanie),
CCR − Capture (zapamiętanie wartości chwilowej),
CCR − Reload (autoładowanie wartości początkowej).
Szesnastobitowy licznik T2 tworzą dwa 8−bitowe rejestry:
bardziej znaczący TH2 i mniej znaczący TL2.
Z obsługą licznika T2 związane są linie portu P1, które w zależności od funkcji licznika mogą być wykorzystane jako:
Linie P1.0...P1.3:
-wyjścia impulsów o modulowanej szerokości sygnału (MSI),
-wejścia przerwań INT3#..INT6,
Linia P1.5/T2EX:
-sprzętowe ustalenie momentu wpisu wartości początkowej do licznika T2.
Linia P1.7/T2:
-wejście impulsów zewnętrznych,
-wejście bramkujące zliczanie impulsów wewnętrznych.
T2PS − włączenie dodatkowego dzielnika wstępnego dla
wewnętrznego źródła taktowania:
T2PS = 0 − taktowanie licznika sygnałem fosc /12,
T2PS = 1 − taktowanie licznika sygnałem fosc /24.
I3FR − wybór aktywnego zbocza sygnału przerwania
zewnętrznego INT#3,wpisu wartości początkowej:
I3FR = 0 − zbocze opadające,
I3FR = 1 − zbocze narastające.
T2R1, T2R0 − wybór trybu autoładowania licznika:
T2CM − wybór trybu porównania:
T2I1, T2I0 − wybór źródła sygnału taktującego:
Programowanie trybów pracy rejestrów CRC,CC1...CC3 jest
dokonywane w rejestrze CCEN.
11. Współpraca mikroprocesora w wybranymi urządzeniami zewnętrzymi
Przykładowy program z użyciem klawiatury:
Program, który za pomocą klawiatury steruje silnikiem prądu stałego przy:
K1- ster. pokrętłem K2- cyklowy prog.
ORG 100h
MOV T2CON,#11h
MOV CCEN,#00001010b
ANL ADCON,#11110000b
ARL ADCON,#00000110b
MOV CRCH,#0FFh
MOV CCH1,#0FFh
MOV CRCL,#0
………….. (*czesc konfig.licznika*)
MOV DPTR,#0FFB0h
MOVX A,@DPTR
JB ACC.0,PROG1 (*przyciski*)
JB ACC.1,PROG2
SJMP START
……..
PROG1:
MOV DAPR,#0
JB BSY,$
MOV CCL1,ADDAT
SJMP START
PROG2:
MOV CCL1,#0
LCALL 0P0Z
MOV CCL1,#64
LCALL OPOZ
MOV CCL1,#128
LCALL 0P0Z
MOV CCL1,#255
LCALL OPOZ
MOV CLL1,#128
LCALL 0P0Z
SJMP START
OPOZ:
MOV R5,#50
MOV R6,#100
MOV R7,#100
DJNZ R7, SK1
DJNZ R6, SK2
DJNZ R5, SK3
RET
Przykładowe programy:
1.Zmierzyć napięcie pracy przetwornika A/C z dokładnością8 bitówi zapisać w pamięci zewnętrznej
ORG 100h
ANL ADCON,#11110000b
ORL ADCON,#00000100b
MOV DAPR,#0
POH: JB BSY, $
MOV A, ADDAT
MOV DPTR,#200h
MOVX@DPTR,A
2. Zmierzyć, czy napięcie jest duże czy niskie (niskie-1 dioda, wyższe-2 diody itp.)
ORG 100h
ANL ADCON,#11110000b
ORL ADCON,#00000100b
START:
MOV DAPR,#0
JB BSY,$
MOV A,ADDAT
ANL A,#11100000
SWAP A (00001110)
PR A (00000111)
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SJMP START
3. Zmierzyć napięcie z dokładnością do 10
ORG 100h
ANL ADCON,#11110000b
ORL ADCON,#00000100b
START:
MOV DAPR,#0
JB BSY,$
MOV A,ADDAT
ANL A,#11000000b
RL A
RL A
MOV 30h,A
MOV DPTR,#TAB
MOVC A@A+DPTR
MOV DAPR,A
JB BSY,$
MOV 31h,A