Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 1 z 27
Skrypt
do wykładu z przedmiotu :
Mikrokontrolery
1. Architektura mikrokontrolerów
1.1 Mikrokontrolery 8 bitowe
1.2 Mikrokontrolery 16 bitowe
1.3 Mikrokontrolery 32 bitowe
W modelu komputera (J. von Neumann) wyróżnia się :
- jednostkę centralną, (CPU);
- pamięć, (memory),
- urządzenia peryferyjne : wejścia oraz wyjścia, (Input, Output).
Produkowane aktualnie procesory (mikroprocesory) znajdują się w CPU i komunikują się
z pamięcią oraz urządzeniami peryferyjnymi poprzez magistrale systemowe :
- danych;
- adresów;
- sterowania.
Celem takiego komputera jest szybkie wykonywanie wielu różnych programów (np.
multimedialnych), które mają określone zakończenie. Programy te są kopiowane z dysku
(lub CD) do pamięci RAM. Zatem procesor powinien mieć jak największą moc
obliczeniową a adresowalna pamięć RAM - jak największą pojemność.
Mikrokontroler jest komputerem jednoukładowym ponieważ zawiera :
- mikroprocesor;
- pamięć adresowalną (ROM oraz RAM);
- urządzenia peryferyjne.
Celem takiego jednoukładowego komputera (mikrokontrolera) jest nieskończone
wykonywanie (bez określonego końca) jednego programu - reagującego na sygnały z
otoczenia. Program ten jest zapisany w pamięci stałej (ROM, FLASH) – jest on
wbudowany do systemu sterującego.
Cechą charakterystyczną mikrokontrolerów (8 bitowych) jest mała pamięć i duża liczba
różnorodnych urządzeń peryferyjnych. Moc obliczeniowa mikroprocesorów
wykorzystanych w mikrokontrolerach jest mniejsza niż mikroprocesorów stosowanych w
mikrokomputerach.
Mikrokontrolery są stosowane w urządzeniach : pomiarowych i sterujących
(automatyka) oraz transmisyjnych (telekomunikacja).
Mikrokontrolery są klasyfikowane z uwagi na szerokość wewnętrznej magistrali
danych na : 8-mio, 16-sto, oraz 32-dwu bitowe (istnieją także mikrokontrolery 4-ro
bitowe i 64-ro bitowe). W mikrokontrolerach 8-mio bitowych dla adresowania małej
pamięci wewnętrznej (danych i programu) magistrala adresów miała mniejsze znaczenie.
Aktualnie mikrokontrolery 16-sto i 32-dwu bitowe wykorzystują również adresowaną
pamięć zewnętrzną, co wymaga odpowiednio szerokiej magistrali adresów.
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 2 z 27
Klasyczna architektura Mikrokontrolera jest pokazana na rysunku
Legenda :
1 – układ przerwań,
2 – układy czasowe,
3 – sterowniki komunikacji,
4 – urządzenia peryferyjne
Komunikacja klasycznego mikrokontrolera z otoczeniem następuje poprzez porty.
Magistrala może być udostępniona na zewnątrz dla pamięci lub urządzeń peryferyjnych
Mikrokontrolery są klasyfikowane z uwagi na szerokość magistral danych. Wyróżnia się
przy tym magistralę wewnętrzną oraz magistralę zewnętrzną. Pierwsze mikrokontrolery
(4 oraz 8 bitowe) posiadały tylko wewnętrzną magistralę danych. Nowsze
mikrokontrolery (16 i 32 a także 64 bitowe) udostępniają na zewnątrz magistralę danych
(głównie dla dostępu do dużych pamięci adresowalnych).
C
P
U
porty
Pamięć ROM programu
Pamięć RAM danych
MAGISTRALA
2
3
4
1
P O R T Y
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 3 z 27
Rozwój mikrokontrolerów przedstawia poniższa tabela
od roku
wewnętrzna magistra danych
zewnętrzna magistrala danych
1975
4
-
1980
8
-
1985
8
8
1990
16
8
1995
16
16
2000
32
16
2005
32
32
?
64
32
Cechą charakterystyczną mikrokontrolerów ( w odróżnieniu od mikroprocesorów)
jest to, że nowsze wersje nie wypierają z rynku wersji starszych. Kolejne wersje są
konstruowane dla kolejnych zastosowań. Mikrokontrolery 4 bitowe są do dzisiaj
stosowane w artykułach gospodarstwa domowego, sejfach, zamkach szyfrowych, itp.
Mikrokontrolery te są programowane w asemblerze. Program funkcjonowania takich
mikrokontrolerów jest zapisywany (wbudowany) w pamięci ROM a 4 bitowa
wewnętrzna magistrala danych jest wystarczająca.
Mikrokontrolery nowszych generacji (8 oraz 32 bitowe) mają kilkaset urządzeń
peryferyjnych. Programowanie takich mikrokontrolerów za pomocą asemblera nie jest
możliwe w praktyce. Z tego powodu wykorzystywane są pakiety programowe wyższych
poziomów oparte głównie na języku C. Programy takie są lokowane na zewnątrz
mikrokontrolera – stąd potrzeba szerokiej zewnętrznej magistrali danych i magistrali
adresowej.
Należy oczekiwać, że niebawem na rynku pojawią się mikrokontrolery 64 bitowe
– głównie dla zastosowań w telekomunikacji.
2. Układy przerwań
a. Przerwania priorytetowe
b. Przerwania maskowane
Cechą charakterystyczną konstrukcji mikrokontrolerów są rozbudowane układy
przerwań. Mikrokontroler jest automatem realizującym ogólny program w niekończącej
się pętli czasowej. W trakcie realizacji tego ogólnego programu mogą się pojawić
zdarzenia, które wymagają uruchomienia innych szczególnych programów o wyższym
priorytecie.
W takich przypadkach mikrokontroler zawiesza wykonywanie ogólnego
programu i przechodzi do realizacji szczególnego programu obsługi przerwania.
Zawieszenie realizacji ogólnego programu jest nazywane wywłaszczeniem programu.
Polega ono na zapisaniu na tzw. stosie systemowym aktualnych wartości wszystkich
rejestrów (Program Counter, Accumulator, Instruction Register, Status Register)
opisujących tzw. kontekst realizacji zawieszanego programu. Program szczególny jest
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 4 z 27
zapisany w pamięci pod określonym adresem. Zatem przejście do obsługi przerwania
polega na podstawieniu do Program Counter (licznika rozkazów) nowego adresu
początkowego szczególnego programu.
W ogólnym przypadku zdarzenia wywołujące przerwanie realizacji aktualnego
programu mogą mieć przypisane różne priorytety (na kilkunastu poziomach, np. 16).
Wówczas przejście do obsługi przerwania (czyli uruchomienie szczególnego programu)
następuje tylko wówczas, gdy aktualnie realizowany program ma niższy priorytet niż
program szczególny do obsługi zgłoszonego przerwania. Zatem program o niższym
priorytecie jest wywłaszczany przez program o wyższym priorytecie – a kontekst
realizowanego programu jest zapisywany na tzw. stosie systemowym. W przypadku
przerwań priorytetowych, programy o najniższym priorytecie mogą nie być realizowane.
Z tego względu wprowadza się ograniczenie czasu realizacji programu – bez względu na
priorytet.
W niektórych przypadkach przyczyną przerwania realizacji programu może być
wyczerpanie limitu czasu przeznaczonego na realizację tego programu. Po takim
przerwaniu tzw. kontekst jest również zapisywany na stosie systemowym, a
mikrokontroler przystępuje do realizacji innego zawieszonego programu o aktualnie
najwyższym priorytecie. W tym celu ze stosu jest odczytywany odpowiedni kontekst
ponownie uruchamianego programu. Metoda ta daje większe prawdopodobieństwo
realizacji programów o niskich priorytetach – ale nie daje gwarancji ich realizacji.
W trakcie realizacji programów obsługi przerwań, niektóre darzenia wywołujące
te przerwania mogą być maskowane. Oznacza to, że przerwania maskowane nie będą
uwzględniane w realizacji programów. W ogólnym przypadku przerwania są
obsługiwane według jednego z dwóch trybów:
- priority mode;
- round-robin mode.
W trybie round-robin mode zdarzenia (przerwania) są traktowane jako o równych
priorytetach. Do obsługi każdego zdarzenia przydzielany jest określony limit czasu.
Wyczerpanie tego limitu powoduje wywłaszczenie aktualnie realizowanego programu. W
ramach danego limitu program obsługi przerwania może się zakończyć. W obydwu
przypadkach mikrokontroler przechodzi do obsługi kolejnego (wg numerów)
zgłoszonego przerwania lub realizuje ogólny program niekończącej się pętli czasowej.
Układy przerwań są oceniane z punktu widzenia :
- liczby linii przerwań;
- rejestrowanej przyczyny przerwania (sygnał zewnętrzny, błąd programisty,
przekłamanie sprzętowe, itp.);
- czasu reakcji mikrokontrolera na zdarzenie przerwania.
Czas reakcji mikrokontrolera jest zależny od szybkości działania układów zapisu tzw.
kontekstu wywłaszczanego programu. Ponadto w niektórych przypadkach mikrokontroler
musi rozpoznać przyczynę przerwania. W najnowszych kontrolerach niektóre zdarzenia
przerwania są rozpoznawane i obsługiwane lokalnie – bez udziału CPU. Dla przykładu
obsługa przerwania o przyjęciu bajtu z linii szeregowej – polega na przeniesieniu tego
bajtu do innego rejestru mikrokontrolera. Taka operacja – obsługa przerwania – może
być wykonana bez angażowania CPU, co skraca czas reakcji mikrokontrolera.
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 5 z 27
3. Układy czasowe
a. TIMER-y
b. COUNTER-y
Mikrokontrolery są wyposażane w układy czasowe, zbudowane z liczników oraz
rejestrów przesuwających (tzw. TIMER-ów oraz COUNTER-ów).
TIMER jest czasomierzem sygnalizującym, że upłynął zadany czas. Dla przykładu jeśli
mikrokontroler przesyła dane poprzez łącze szeregowe, to musi być uwzględniona
szybkość transmisji łącza (mniejsza niż mikroprocesora). Mikrokontroler jest
wyposażony w zegar o wyższej częstotliwości niż częstotliwość transmisji danych w
łączu szeregowym. W związku z tym TIMER jest konfigurowany tak, by dawał sygnał
transmisji danych z częstotliwością łącza szeregowego. Można to osiągnąć ustalając w
rejestrze konfiguracyjnym TIMER-a zadaną liczbę impulsów zegara (odstęp czasowy
transmisji na łączu) natomiast w TIMER-ze zliczać impulsy z zegara. W przypadku
równości komparator daje sygnał do transmisji, a TIMER jest zerowany.
COUNTER jest licznikiem dowolnych impulsów z zewnętrznych układów
peryferyjnych. COUNTER może być skonfigurowany tak by liczył w systemie do
dowolnego N. COUNTER-y są wykorzystywane do zliczania zmian sygnałów
zewnętrznych (np. bitów) zapisywanych do rejestrów przesuwających – lub zliczania
elementów (np. bajtów lub znaków) zapisywanych do pamięci buforowej FIFO lub
LIFO.
4. Porty - Łącza równoległe
a. PORT-y
b. Łącze równoległe PCI
Wszystkie mikrokontrolery są wyposażone w PORT-y. PORT jest układem, który
pozwala na transfer danych z mikrokontrolera do otoczenia – lub w kierunku odwrotnym
z otoczenia do mikrokontrolera. Dane wewnątrz mikrokontrolera są udostępniane na
równoległych liniach (ścieżkach) wewnętrznej magistrali danych. Dane te są
transferowane równocześnie poprzez PORT do otoczenia mikrokontrolera. Zatem PORT
jest łączem równoległym. Schemat PORT-u dla transmisji jednego bitu pokazano
poniżej. Bit z magistrali jest przekazywany przez bramkę 1 (AND) do przerzutnika 3. W
ten sposób stan przerzutnika (bit) znajdzie się na linii łącza. Bit z łącza jest
przekazywany – w trakcie odczytu - poprzez bramkę 2 (AND) bezpośrednio ma
wewnętrzną magistralę danych mikrokontrolera. Dla N-bitowego PORT-u równoległego
takich układów jest N.
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 6 z 27
Łącze równoległe PCI (Peripheral Components Interconenct) jest znane z architektury
komputerów.
5. Sterowniki komunikacji szeregowej
a. UART
b. CAN
Mikrokontroler komunikuje się z dalszym otoczeniem poprzez łącza szeregowe.
Transmisja szeregowa jest prowadzona poprzez PORT lecz jest sterowana specjalnym
układem UART (Universal Asynchronuos Receiver/Transmiter). UART steruje
wysyłaniem danych z mikrokontrolera lub odbieraniem danych przez mikrokontroler.
Dane są transmitowane zgodnie z ustalonym protokołem, np. protokołem znakowym
(Profibus DP lub Interbus-S). Zatem ramka zawiera określoną liczbę bitów (np. bit startu,
8 bitów dla znaku, bit parzystości oraz bit stopu).
Schemat sterownika UART transmisji szeregowej pokazano na poniższym rysunku.
1
2
3
Nadawanie=1
Odbieranie=1
Magistrala
wewnętrzna
Łącze danych
Bit nadawany
nadawany
Bit odbierany
Impuls zapisu
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 7 z 27
W trybie wysyłania informacji (TDX) dane magistrali wewnętrznej są przekazane do
bufora OUT. Bufor OUT może zawierać jeden lub więcej rejestrów (tyle ile liczy ramka
określonego protokołu). Bufor działa na zasadzie pamięci typu FIFO. Dane z bufora OUT
są przekazane do Rejestru Przesuwającego OUT. Następnie dane są wyprowadzane
(poprzez przesuwanie) z częstotliwością f OUT poprzez Port OUT do otoczenia
mikrokontrolera.
W trybie odbierania informacji (RDX) dane z otoczenia mikrokontrolera są
przekazywane poprzez Port IN do Rejestru Przesuwającego IN. Dane są zapisywane
(przesuwane) z częstotliwością f IN. Z Rejestru Przesuwającego IN dane są zapisywane
do rejestru Bufora IN. Bufor IN działa na zasadzie pamięci typu FIFO. Bufor ten może
mieć jeden lub wiele rejestrów (tyle ile liczy ramka określonego protokołu). Z Bufora IN
dane są transferowane równolegle na wewnętrzną magistralę.
Rejestr CONTROL umożliwia konfigurację i sterowanie kontrolera UART. Dla
przykładu bity Rejestru CONTROL informują czy dane zastały wysłane z Rejestru
Przesuwającego OUT – lub czy dane zostały odebrane do Rejestru Przesuwającego IN.
Sterowniki CAN są stosowane w przemysłowych sieciach mikrokontrolerów.
Rejestr Przesuwny IN
Rejestr Przesuwny OUT
Rejestr CONTROL
Bufor IN
Bufor OUT
M
A
G
I
S
T
R
A
L
A
W
E
W
N
Ę
T
R
Z
N
A
Port IN
Port OUT
f IN
f OUT
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 8 z 27
6. Systemy operacyjne czasu rzeczywistego
a. Struktura systemu
b. Funkcjonowanie systemu
System operacyjny czasu rzeczywistego RTOS (Real Time Operating System) jest
specjalizowanym systemem operacyjnym dla mikrokontrolerów. Mikrokontroler jest
automatem reagującym na zdarzenia. Automat ten wykonuje w tle program bazowy,
który jest niekończącą się pętla czasową. Realizacja tej pętli jest przerywana przez
określone zdarzenia, po których mikrokontroler przechodzi do programów specjalnych
obsługujących przerwania. Podstawowe znaczenie ma gwarancja reakcji na zdarzenie w
czasie nie przekraczającym ustalonego limitu.
Program wbudowany (embedded program) do mikrokontrolera może być napisany w
asemblerze lub w języku wyższego poziomu, np. C. Program taki ma cechy systemu
operacyjnego – na tle programu bazowego uruchamiane są programy specjalne dla
obsługi przerwań. Idea ta została rozwinięta tak, że powstały systemy RTOS dla
mikrokontrolerów.
Podstawowymi celami stosowania systemów RTOS w mikrokontrolerach są :
- skrócenie czasu opracowywania programu wbudowanego,
- zwiększenie niezawodności programu wbudowanego,
- ułatwienie zarządzania procesem tworzenia programów wbudowanych.
Systemy RTOS posiadają reguły i algorytmy zarządzania zasobami
mikrokontrolera – głównie czasem i pamięcią. Ponadto systemy RTOS posiadają także
reguły i algorytmy koordynacji programów obsługi przerwań, np. poprzez przekazywanie
danych. W związku z tym programiści mogą skupiać się na opracowywaniu programów
obsługi przerwań – a system RTOS zapewnia ich realizację.
Program wbudowany zawierający reguły i algorytmy systemu RTOS oraz zbiór
modułów obsługi przerwań jest bardziej niezawodny niż program wbudowany bez
systemu RTOS. Wynika to z faktu, że system RTOS jest stosowany powszechnie – tym
samym jest dobrze przetestowany.
Zasada funkcjonowania sytemu RTOS w mikrokontrolerze jest przedstawiona na
poniższym rysunku.
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 9 z 27
Program źródłowy może być napisany w języku wyższego poziomu (np. C) z
wykorzystaniem biblioteki systemu RTOS. System RTOS składa się z jądra (kernel) oraz
Biblioteki (Library). System RTOS realizuje funkcje usługowe dla programu użytkowego
(źródłowego, wbudowanego) oraz zarządza podstawowymi zasobami, tzn. czasem i
pamięcią.
Program użytkowy (źródłowy, wbudowany) składa się z zadań (tasks) tworzących
procesy (processes). Wymiana informacji pomiędzy zadaniami odbywa się za
pośrednictwem systemu RTOS.
7. Metody przydziału czasu i pamięci
a. Przydział czasu dla zadań
b. Przydział pamięci dla zadań
Wbudowany do mikrokontrolera program użytkowy składa się z sieci zadań, które są
wykonywane w jednym mikroprocesorze (CPU). Z tego względu system RTOS
przydziela czas dla realizacji tych zadań. Stosowane są dwie skrajne metody przydziału
czasu dla realizacji zadań :
Program źródłowy
Jądro systemu RTOS
Biblioteka RTOS
Program Wbudowany
M I K R O K O N T R O L E R
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 10 z
27
- obsługa priorytetowa,
- obsługa cykliczna.
W przypadku obsługi priorytetowej zakłada się, że zadaniom nadano priorytety ich
realizacji. CPU realizuje zadanie zgłoszone (przerwanie aktywne) o najwyższym
priorytecie bez ograniczenia czasowego. Po zakończeniu realizacji tego zadania CPU
rozpocznie realizować zadanie aktywne (zgłoszone przerwanie) o najwyższym
priorytecie. Jeśli w trakcie realizacji zadania o pewnym priorytecie pojawi się przerwanie
o wyższym priorytecie – to aktualnie realizowane zadanie zostaje wywłaszczone.
Aktualny kontekst obliczeń zostaje zapisany na tzw. stos. CPU przechodzi do realizacji
zgłoszonego zadania o najwyższym priorytecie. W ten sposób aktywne zadania
(przerwania) o niskich priorytetach mogą nie być obsługiwane.
Metoda obsługi priorytetowej jest pokazana na poniższym rysunku.
Zadanie o priorytecie 1 jest wywłaszczone przez zadanie o priorytecie 2. Zadanie o
priorytecie 2 jest wywłaszczone przez zadanie o priorytecie 3. Zadanie o priorytecie 3
jest wywłaszczone przez zadanie o priorytecie 4, które jest zrealizowane w całości. Po
zakończeniu zadania o priorytecie 4 realizowane jest do końca zadanie o priorytecie 3. Po
zakończeniu zadania o priorytecie 3 realizowane jest do końca zadanie o priorytecie 2. Po
zakończeniu zadania o priorytecie 2 realizowane jest do końca zadanie o priorytecie 1.
W przypadku obsługi cyklicznej zakłada się, że zadania mają jednakowe
priorytety ale są realizowane cyklicznie według nadanych im numerów. Ponadto każde
zadanie ma określony limit czasu realizacji. Jeśli czas ten zostanie wyczerpany to zadanie
zostanie wywłaszczone (będzie realizowane w następnym cyklu) Należy przy tym
zaznaczyć, że w dowolnej chwili realizowane są tylko aktywne zadania (dla zgłoszonych
przerwań).
Metoda obsługi cyklicznej jest pokazana na poniższym rysunku.
1
2
3
4
3
2
1
Priorytety zadań
Czas realizacji zadań
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 11 z
27
Zadania 1 oraz 2 nie wyczerpują limitu czasu realizacji. Zadanie 3 wyczerpuje limit czasu
realizacji, dlatego w aktualnym cyklu jest zrealizowane tylko 3a natomiast w kolejnym
cyklu 3b.
Przydział dedykowanej pamięci dla zadań likwiduje czas zapisu tzw. kontekstu na
stos, bo kontekst dla każdego zdania jest zapamiętany. Przy dużej liczbie zadań może
wystąpić ograniczenie pamięci wewnętrznej mikrokontrolera. Wówczas niektóre dane sa
zapisywane w pamięci zewnętrznej – co wydłuża czas dostępu do nich. W przypadku
takich problemów wprowadza się podział pamięci (modele pamięci) : small, medium
oraz large. W pamięciach tych zapisuje się dane w zależności od częstości ich
wykorzystywania.
8. Metody wymiany informacji między zadaniami
a. Wymiana wewnętrzna (queues, semaphores),
b. Wymian zewnętrzna (signals, sockets),
1
2
3a
1
2
3b
1
Jednakowe priorytety zadań
Czas realizacji zadań
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 12 z
27
9. Programowanie mikrokontrolerów
a. Programowanie w asemblerze
b. Programowanie w języku C
Mikrokontrolery są automatami stosowanymi w :
- sprzęcie gospodarstwa domowego, (4 bitowe),
- urządzeniach pomiarowo-kontrolnych, (8 bitowe),
- sterowaniu procesami przemysłowymi, (16 bitowe),
- sieciach komputerowych i telekomunikacyjnych, (32 bitowe).
Mikrokontroler jako automat posiada wbudowany program – najczęściej w pamięci
ROM, EPROM lub FLASH. W związku z tym istotne znaczenie ma programowanie
mikrokontrolerów.
Celem programowania mikrokontrolerów jest tzw. program wbudowany, tzn.
zapisany do pamięci stałej mikrokontrolera. Program wbudowany ma postać maszynową,
tzn. składa się z szeregów zer (0) oraz jedynek (1). Programowanie w języku
maszynowym, który uwzględnia konstrukcję CPU, jest żmudne. Dlatego jest stosowane
dla krótkich programów w mikrokontrolerach 4 bitowych (np. zamki szyfrowe, sejfy,
itp.).
W programowaniu mikrokontrolerów 8 bitowych stosuje się asembler (język niskiego
poziomu). Asembler zawiera listę rozkazów w postaci mnemoników, np. ADD dla
dodawanie lub MOV dla przesunięcia danych pomiędzy rejestrami. Programowanie w
asemblerze zabiera mniej czasu niż w języku maszynowym. Jednakże w praktyce lista
rozkazów asemblera jest dostosowana do możliwości CPU mikrokontrolera. Program
napisany w asemblerze musi być zamieniony na postać maszynową, by być
wbudowanym (zapisanym) do pamięci stałej mikrokontrolera. Stanowi to pewien
problem, ponieważ na rynku występuje kilkaset mikrokontrolerów 8 bitowych. Z tego
względu producenci mikrokontrolerów dostarczają do mikrokontrolera asembler (listę
rozkazów oraz program konwertujący kod do postaci maszynowej), którym może się
posłużyć użytkownik.
W ogólnym przypadku mikrokontrolery 8 bitowe oraz 16 bitowe są programowane w
asemblerze. Przy tym istnieje tendencja do standaryzacji asemblerów dla pewnych klas
CPU, tzw. rodzin mikrokontrolerów – np. rodziny 8 bitowej 8051 lub rodziny 16 bitowej
80166.
W związku z ciągłą rozbudową mikrokontrolerów, do ich programowania
wykorzystuje się coraz powszechniej języki wysokiego poziomu, np. C lub C++.
Wykorzystanie wprost standardowego języka ANSI C nie jest możliwe. Wynika to
przede wszystkim z różnicy w metodyce programowania mikrokomputerów i
mikrokontrolerów. W przypadku programowania mikrokomputerów – program jest
opracowywany i instalowany w tym samym systemie (mikrokomputerze jako klasie
systemów). Natomiast w przypadku mikrokontrolerów wyróżnia się, tzw. Development
System oraz Target System. Program w języku wysokiego poziomu (np. C) jest
opracowywany w Development System (w mikrokomputerze) natomiast ostatecznie jest
on instalowany (wbudowywany) w Target System-ie (w mikrokontrolerze). Z tych
względów metodyka programowania mikrokontrolerów 8 bitowych oraz 16 bitowych
składa się z kilku etapów.
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 13 z
27
W pierwszym etapie opracowywany jest kod źródłowy w języku wysokiego poziomu.
Następnie kod ten jest kompilowany do postaci relokowalnych modułów. Ponadto
korzysta się także z relokowalnych modułów bibliotecznych języka wysokiego poziomu
oraz relokowalnych modułów systemu operacyjnego czasu rzeczywistego (RTOS).
Relokowalne moduły są łączone przy pomocy specjalnego programu – linkera – do
postaci kodu absolutnego. Kod absolutny ma postać maszynową dostosowaną do
mikrokontrolera (8 bitowego lub 16 bitowego). Ponadto dla wbudowania takiego
programu do pamięci stałej mikrokontrolera stosowane są specjalne programatory, w
których stosowany jest standard HEX (firmy Intel) lub S-Record (firmy Motorola).
W ogólnym przypadku programowania mikrokontrolerów w języku wysokiego
poziomu stosowane są pewne odmiany języka ANSI C. Modyfikacje polegają na dodaniu
typów danych bitowych oraz operacji na bitach. Ponadto dla programowania obsługi
przerwań wprowadza się rozkaz INTERRUPT .
Dla programowania rodziny 8051 mikrokontrolerów 8 bitowych stosowany jest język
C51 natomiast dla rodziny 80166 mikrokontrolerów 16 bitowych stosowany jest język
C166. Programowanie mikrokontrolerów w języku wysokiego poziomu wymaga dużych
pamięci. Z tego względu rośnie rola pamięci zewnętrznych w mikrokontrolerach.
Ponadto trwają prace standaryzacyjne języka C++ dla programowania mikrokontrolerów.
Celem tych prac jest wyeliminowanie tych elementów języka C++, które maja
największe wymagania pamięci.
10. Uruchamianie programów mikrokontrolerów
a. Programowe symulatory mikrokontrolerów
b. Uruchamiania programów w systemie docelowym
Bezbłędnie działający program wbudowany mikrokontrolera ma podstawowe
znaczenie. Mikrokontrolery stosowane są do sterowania procesami technologicznymi lub
sieciami telekomunikacyjnymi. W związku z tym błąd programu może spowodować
znaczne straty. Pod tym względem uruchamianie programów mikrokontrolerów jest
zadaniem traktowanym z większą powagą niż w mikrokomputerach (gdzie np.
wypuszcza się wersje nie dopracowane – beta).
Mikrokomputer
powinien sterować kompleksowym środowiskiem, w którym
występuje wiele zdarzeń o różnym priorytecie. Z tego względu opracowanie i
uruchomienie bezbłędnego programu jest procesem – prób i błędów. W procesie tym
stosowane są dwie metody :
- programowe symulatory mikrokontrolerów,
- uruchamianie programów w mikrokontrolerze (Target System).
Programowe symulatory mikrokomputerów stanowią standardowe wyposażenie pakietów
programowania mikrokontrolerów (software tools), które są oferowane przez różne
firmy, np. Keil Software lub Tasking Software. Symulatory są stosowane na
początkowym etapie wdrażania programu dla mikrokontrolera. Pozwalają one na szybkie
wykrywanie logicznych błędów w opracowywanym programie. Jednakże w programach
dla mikrokontrolerów istotne znaczenie maja zależności czasowe pomiędzy zdarzeniami
a w szczególności czasy reakcji na przerwania. Weryfikacja programu
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 14 z
27
mikrokomputerowego
w tym względzie może być przeprowadzona tylko w
rzeczywistym systemie (Target System).
Do uruchamianie programów w rzeczywistych mikrokontrolerach stosowanych
jest kila metod – o różnej efektywności, czasie i kosztach.
a.
Metoda prób i błędów
Polega na opracowywaniu kolejnych wersji programu i zapisywaniu
(wbudowywaniu) go do pamięci stałej. Następnie sprawdza się poprawność
funkcjonowania programu w mikrokontrolerze. Metoda jest czasochłonna i
kosztowna z uwagi na programowanie pamięci stałej : ROM lub EPROM.
b.
Metoda emulatora pamięci stałej
Jest analogiczna do metody prób i błędów. Różnica polega na tym, że zamiast
pamięci stałej (ROM lub EPROM) wstawia się pamięć RAM.
Przeprogramowywanie pamięci RAM jest łatwiejsze.
c.
Metoda monitora programowego rezydującego w pamięci stałej
mikrokontrolera.
Monitor jest małym programem kontrolującym działanie testowanego programu.
Wyniki testowania są przekazywane na zewnątrz mikrokontrolera poprzez port
szeregowy. Monitory są stosowane w mikrokontrolerach 8 bitowych, 16 bitowych
oraz 32 bitowych.
d.
Metoda emulatora sprzętowego mikrokontrolera
Jest to metoda kosztowna (cena emulatora) lecz efektywna. Emulator pozwala
sprawdzać program wbudowany „krok po kroku”.
e.
Metoda specjalnych zasobów wewnętrznych mikrokontrolera
Mikrokontrolery wyposaża się w specjalne programy typu debugger.
Mikrokontroler posiada specjalne (dedykowane) wyjścia (debug PORT, JTAG)
poprzez które przekazuje na zewnątrz informacje o realizacji programu
wbudowanego.
Oprogramowanie do testowania uruchamianych programów wbudowanych wchodzi w
skład pakietów Software Tools oferowanych dla mikrokontrolerów.
11. Standaryzacja oprogramowania mikrokontrolerów
a. Standaryzacja kodu wynikowego programu
b. Standaryzacja systemów operacyjnych czasu rzeczywistego
Standaryzacja oprogramowania mikrokontrolerów obejmuje :
- standardy języków wysokiego poziomu (C oraz C++),
Standardy języków programowania wysokiego poziomu dotyczą języka C oraz
języka C++. W standardach tych wprowadzono dodatkowe typy zmiennych binarnych
oraz rozkazy na bitach. Ponadto wprowadzono rozkazy związane z obsługa przerwań, np.
Interrupt n (dla funkcji przyporządkowanej n-temu przerwaniu) oraz Using n (dla
oznaczenia obszaru pamięci dla n-tego przerwania). Wprowadzono także modele pamięci
: small, compact, large.
Standardy języków wysokiego poziomu maja umożliwić przenoszenie programów
źródłowych pomiędzy różnymi systemami.
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 15 z
27
- standardy asemblerów dla rodzin mikrokontrolerów,
Standardy kodu wynikowego maja umożliwić przenoszenie programów po
kompilacji. Stosowane sa następujące standardy : OMF (Object Module Format), ELF
(Executable Link Format), COFF (common Object File Format).
- standardy systemów operacyjnych czasu rzeczywistego,
Systemy operacyjne czasu rzeczywistego nie są konieczne dla mikrokontrolerów
8 bitowych, ułatwiają programowanie mikrokontrolerów 16 bitowych – i są konieczne
dla mikrokontrolerów 32 bitowych. Przykłady systemów operacyjnych czasu
rzeczywistego dla rodziny MPC860 mikrokontrolerów 32 bitowych podano niżej :
System operacyjny
Producent
Nucleus PLUS
Accelerated Technology
pSOS
Integrated Systems
OS-9
Microware Systems
VRTX
Mentor Graphics Corporation
MQX
Precise Software Technologies
QNX
QNX Software
AMX
Kadak Products
VxWorks
Wind River Systems
RTXC
Embeded Systems Products
Threadx
Expres Logic
OSE
Enea Data
LynxOS
Lynx Teal-Time Systems
ChorusOS
Chorus
Ponadto wprowadzony standard POSIX (Portale Operate System Interface) umożliwia
przenoszenie kodu źródłowego programu użytkowego pomiędzy różnymi systemami
operacyjnymi czasu rzeczywistego.
- standardy zapisu kodu maszynowego w pamięci stałej mikrokontrolera.
Ponadto programatory pamięci stałej mikrokontrolera (ROM, EPROM) akceptują
kod maszynowy zapisany w standardzie HEX (firmy Intel) lub S-Record (firmy
Motorola). Wszystkie standardy oprogramowania dla mikrokontrolerów tworzą
zintegrowane środowisko EDE (Embedded Development Environment).
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 16 z
27
Rodziny mikrokontrolerów
12. Mikrokontrolery rodziny 8051
a. Architektura
b. Programowanie
Podstawowe rodziny mikrokontrolerów 8 bitowych i ich producentów
wyszczególniono niżej :
Oznaczenie rodziny
Producent
8051
Intel, Philips, Siemens, Atmel
6805/08/11
Motorola
ST62/72/92
STMicroelectronics
PICmicro
Microchip Technology
COP8
National Simiconductor
Rodzina mikrokontrolerów 8051 została utworzona w roku 1980 przez firmę Intel.
Następnie produkcją mikrokontrolerów na licencji Intel –a zajęły się firmy Philips oraz
Siemens. Aktualnie mikrokontrolery rodziny 8051 są produkowane przez kilkanaście
firm światowych. Odmian tych mikrokontrolerów jest kilkaset – a ich cena wynosi
kilkadziesiąt złotych.
Podstawową architekturę mikrokontrolerów rodziny 8051 pokazano na poniższym
rysunku
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 17 z
27
Zegar
Jednostka Centralna - CPU
Pamięć ROM
programu
Pamięć ROM
danych
Pamięć RAM
programu
Pamięć RAM
danych
Sterowniki
magistral zewn.
Wewnętrzne
Urządzenia
Peryferyjne
Układy przerwań
P O R T Y
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 18 z
27
Cechą charakterystyczną tej architektury jest to, że mikrokontroler nie udostępnia na
zewnątrz magistrali systemowej. Ponadto mikrokontroler komunikuje się z otoczeniem
tylko poprzez swoje PORT-y. Mikrokontroler posiada pamięć wewnętrzną typu Harvard
(podział pamięci na program oraz dane).
Podstawowe parametry rodziny mikrokontrolerów 8051 wyszczególniono niżej :
Intel 8051
Moc obliczeniowa (MIPS) = 1
Częstotliwość zegara (MHZ) = 12
Wewnetrzna pamięć RAM (bajty) = 128
PORT-y równoległe = 4
UART = 1
Przetwornik analogowo cyfrowy (liczba kanałów/rozdzielczość) = brak
Philips 80C552
Moc obliczeniowa (MIPS) = 1,3
Częstotliwość zegara (MHZ) = 16
Wewnetrzna pamięć RAM (bajty) = 256
PORT-y równoległe = 5
UART = 1
Przetwornik analogowo cyfrowy (liczba kanałów/rozdzielczość) = 8/10
Siemens 80C515
Moc obliczeniowa (MIPS) = 1,5
Częstotliwość zegara (MHZ) = 18
Wewnetrzna pamięć RAM (bajty) = 256
PORT-y równoległe = 6
UART = 1
Przetwornik analogowo cyfrowy (liczba kanałów/rozdzielczość) = 8/8
Dallas 80C320
Moc obliczeniowa (MIPS) = 9
Częstotliwość zegara (MHZ) = 33
Wewnetrzna pamięć RAM (bajty) = 256
PORT-y równoległe = 4
UART = 1
Przetwornik analogowo cyfrowy (liczba kanałów/rozdzielczość) = 8/10
Atmel 89C55
Moc obliczeniowa (MIPS) = 4
Częstotliwość zegara (MHZ) = 33
Wewnetrzna pamięć RAM (bajty) = 256
PORT-y równoległe = 4
UART = 1
Przetwornik analogowo cyfrowy (liczba kanałów/rozdzielczość) = brak
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 19 z
27
Programy wbudowane mikrokontrolerów rodziny 8051 są opracowywane przy pomocy
pakietów programów narzędziowych (software tools). Programy narzędziowe są
zintegrowane w specjalnym środowisku (Embedded Development Environment), które
funkcjonuje pod systemem operacyjnym Windows.
Cykl tworzenia i uruchamiania oprogramowania szykowego pokazano na schemacie.
Embedded Development Environment
uVISION
C51
Compiler
A51
Assembler
C51
Library
A51
Library
BL51
Linker for Code-Banking
dScope51
Debugger
OH51 Object-Hex
Converter
Emulator and Programmer
EPROM/FLASH
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 20 z
27
Programy użytkowe mogą być pisane w assemblerze A51 lub w języku
wysokiego poziomu C51. Programy te są kompilowane do postaci modułów
relokowalnych. Połączenie tych modułów wraz z modułami bibliotecznymi następuje w
Linkerze BL51.
Kod maszynowy może być testowany przy pomocy Debugger-a dScope51. Przed
wbudowaniem (zapisem do pamięci stałej) kod maszynowy jest konwertowany do
postaci wymaganej przez programator. Ponadto kod ten może być wykorzystany w fazie
uruchamiania programu użytkowego w Emulatorze.
Mikrokontrolery rodziny 8051 znalazły szerokie zastosowanie w automatycznych
pomiarach, sterowaniu oraz w sieciach komputerowych i telekomunikacyjnych.
==================
13. Mikrokontrolery rodziny 80166
a. Architektura
b. Programowanie
Mikrokontrolery 16 bitowe zostały wprowadzone około 1990 roku, w odpowiedzi na
zapotrzebowanie w systemach pomiarowo-kontrolnych. Charakteryzują się one dużą
różnorodnością wewnętrznych i zewnętrznych układów peryferyjnych. Ponadto układy
pamięci oraz urządzenia peryferyjne wykorzystują odrębne magistrale systemowe.
Pierwszą rodzinę mikrokontrolerów 16 bitowych wprowadziła na rynek firma Intel.
Aktualnie do najważniejszych rodzin mikrokomputerów 16 bitowych należą :
Rodzina
Producent
8096/196/296
Intel
MPS430
Texas Instruments
6812/16
Motorola
80166
Siemens
Do zastosowań w programowalnych sterownikach przemysłowych powszechnie
stosowane są mikrokontrolery należące do rodziny 80166, produkowane przez firmę
Siemens. Moc obliczeniowa tych mikrokontrolerów wynosi około 10 MIPS.
Ogólną architekturę mikrokontrolerów 80166 pokazano na poniższym rysunku.
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 21 z
27
Z E G A R
Jednostka Centralna
CPU
CPU
Pamięć
ROM
Pamięć
RAM
Sterowniki
Magistral Zewnętrznych
P O R T Y
Wewnętrzne
Urządzenia Peryferyjne
Układy
Przerwań
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 22 z
27
Mikrokontrolery rodziny 80166 maja pamięć typu von Neumann (wspólna dla
programu i danych). Poprzez magistralę zewnętrzną podłączana jest pamięć zewnętrzna
oraz zewnętrzne (specjalizowane) urządzenia peryferyjne.
Podstawowe parametry dla kolejnych generacji rodziny mikrokontrolerów 80166
wyszczególniono poniżej.
Mikrokontroler C166
Częstotliwość zegara (MHz) =20
Liniowa przestrzeń adresowa (KB) =256
Wewnętrzna pamięć RAM (KB) = 1
Liczba Portów = 76
Liczba wejść analogowych/Rozdzielczość = 10/10
Liczba kanałów CAPCOM = 16
Sterowniki komunikacji asynchronicznej = 2
Mikrokontroler C165
Częstotliwość zegara (MHz) =25
Liniowa przestrzeń adresowa (MB) =16
Wewnętrzna pamięć RAM (KB) = 2
Liczba Portów = 77
Liczba wejść analogowych/Rozdzielczość = brak
Liczba kanałów CAPCOM = brak
Sterowniki komunikacji asynchronicznej = 1
Mikrokontroler C167
Częstotliwość zegara (MHz) =20
Liniowa przestrzeń adresowa (MB) =16
Wewnętrzna pamięć RAM (KB) = 4
Liczba Portów = 111
Liczba wejść analogowych/Rozdzielczość = 16/10
Liczba kanałów CAPCOM = 32
Sterowniki komunikacji asynchronicznej = 1
Mikrokontroler C161
Częstotliwość zegara (MHz) =16
Liniowa przestrzeń adresowa (MB) =8
Wewnętrzna pamięć RAM (KB) = 3
Liczba Portów = 76
Liczba wejść analogowych/Rozdzielczość = 4/8
Liczba kanałów CAPCOM = brak
Sterowniki komunikacji asynchronicznej = 1
Mikrokontroler C163
Częstotliwość zegara (MHz) =25
Liniowa przestrzeń adresowa (MB) =16
Wewnętrzna pamięć RAM (KB) = 1
Liczba Portów = 77
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 23 z
27
Liczba wejść analogowych/Rozdzielczość = brak
Liczba kanałów CAPCOM = 8
Sterowniki komunikacji asynchronicznej = 1
Mikrokontroler C164
Częstotliwość zegara (MHz) =20
Liniowa przestrzeń adresowa (MB) =4
Wewnętrzna pamięć RAM (KB) = 2
Liczba Portów = 59
Liczba wejść analogowych/Rozdzielczość = 8/10
Liczba kanałów CAPCOM = 8
Sterowniki komunikacji asynchronicznej = 1
Wszystkie mikrokontrolery rodziny 80166 mają CPU typu RISC. Z analizy rozwoju
kolejnych generacji mikrokontrolerów rodziny 80166 wynika, że pierwszy uniwersalny
mikrokontroler 80166 został rozbudowany dla różnych zastosowań. Stąd kolejne
mikrokontrolery maja lepsze tylko niektóre parametry. Natomiast pamięć adresowalna
została rozbudowana dla całej rodziny 80166.
Programy użytkowe (wbudowane) są tworzone dla rodziny mikrokontrolerów
80166 w zintegrowanym środowisku (Embedded Development Environment). Cykl
tworzenia i uruchamiania programów użytkowych jest analogiczny jak dla rodziny
mikrokontrolerów 8051. Dodatkiem w pakiecie programów narzędziowych jest system
operacyjny czasu rzeczywistego. System ten (jego moduły) jest kompilowany i łączony w
kod wynikowy absolutny. Ponadto ważne znaczenie dla testowania programu
wbudowanego ma symulator mikrokontrolera, który jest włączony do pakietu EDE.
14. Mikrokontrolery rodziny MPC860
a. Architektura
b. Programowanie
Mikrokontrolery 32 bitowe zostały wprowadzone na rynek przed rokiem 2000.
Przyczyną pojawienia się tych mikrokontrolerów był rozwój sieci telekomunikacyjnych i
komputerowych, głównie Internetu. Okazało się, że oprogramowanie mikrokontrolerów
nie nadąża za rozbudową wewnętrznych i zewnętrznych układów peryferyjnych. Ponadto
programowanie złożonych mikrokontrolerów (kilkaset wyprowadzeń z układu) nie było
możliwe w asemblerze. W związku z tym powszechnie zaczęto stosować języki
wysokiego poziomu – głównie C oraz C++. Ponadto wprowadzono systemy operacyjne
czasu rzeczywistego, które wspomagają tworzenie programów dla mikrokontrolerów.
Języki C oraz C++ zostały zmodyfikowane, tak by zapewnić obsługę przerwań a
jednocześnie zmniejszyć wymaganie dużej pamięci dla programów pisanych w tych
językach. Potrzeba programowania w językach wysokiego poziomu spowodowała
zmianę architektury mikrokontrolerów. Przede wszystkich mikrokontrolery 32 bitowe
mają możliwość adresowania pamięci do 1 GB. Taka pamięć nie mieści się w
mikrokontrolerze, dlatego potrzebny był bezpośredni dostęp do wewnętrznych magistral
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 24 z
27
systemowych. Mikrokontrolery 32 bitowe nie posiadają stałej pamięci wewnętrznej.
Program i dane znajdują się w pamięci zewnętrznej SRAM lub DRAM . Do produkcji
mikrokontrolerów zaczęto używać mikroprocesorów stosowanych w mikrokomputerach.
Te mikroprocesory nazywane są wbudowanymi do mikrokontrolerów. Przykłady
mikrokontrolerów wywodzących się z mikroprocesorów podano niżej.
Mikroprocesor
Rodzina mikrokontrolerów
Producent
i960
80960VH
Intel
80386
80386EX
Intel
68000
683xx
Motorola
PowerPC
MPC860/8260
Motorola
Mikrokontrolery 32 bitowe powstały głównie na zapotrzebowanie
telekomunikacji. Cechą charakterystyczną tych mikrokontrolerów jest moduł procesora
komunikacyjnego – obok procesora centralnego. W telekomunikacji powszechnie
stosowane są mikrokontrolery rodziny MPC860/8260. Parametry mikrokontrolerów
kolejnych generacji tej rodziny wyszczególniono niżej.
Mikrokontroler MPC801
Częstotliwość zegara (MHz) = 40
Moc obliczeniowa (MIPS) = 52
Moduł SCC = brak
Moduł SMC = brak
Mikrokontroler MPC821
Częstotliwość zegara (MHz) = 66
Moc obliczeniowa (MIPS) = 86
Moduł SCC = 2
Moduł SMC = 2
Mikrokontroler MPC823
Częstotliwość zegara (MHz) = 80
Moc obliczeniowa (MIPS) = 105
Moduł SCC = 1
Moduł SMC = 2
Mikrokontroler MPC850
Częstotliwość zegara (MHz) = 80
Moc obliczeniowa (MIPS) = 105
Moduł SCC = 2
Moduł SMC = 2
Mikrokontroler MPC855
Częstotliwość zegara (MHz) = 80
Moc obliczeniowa (MIPS) = 105
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 25 z
27
Moduł SCC = 1
Moduł SMC = 2
Mikrokontroler MPC860
Częstotliwość zegara (MHz) = 80
Moc obliczeniowa (MIPS) = 105
Moduł SCC = 4
Moduł SMC = 2
Mikrokontroler MPC8240
Częstotliwość zegara (MHz) = 266
Moc obliczeniowa (MIPS) = 375
Moduł SCC = brak
Moduł SMC = brak
Mikrokontroler MPC8260
Częstotliwość zegara (MHz) = 200
Moc obliczeniowa (MIPS) = 280
Moduł SCC = 4
Moduł SMC = 2
Architektura mikrokontrolerów rodziny MPC860 została pokazana na rysunku.
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 26 z
27
Kontroler pamieci zewnetrznych
Sterownik zewnętrznych magistral systemowych
Porty PCMCIA
System Integration Unit
PowerPC
Cache programu
Cache danych
RISC
Serial Communication Controller
Serial Management Controller
Fast Communication Controller
Multichannel Communication Controller
P O R T Y
Communication Processor Module
M
A
G
I
S
T
R
A
L
A
W
E
W
N
Ę
T
R
Z
N
A
Przedmiot : Systemy Wbudowane - Mikrokontrolery
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Strona 27 z
27
Programowanie mikrokomputerów 32 bitowych jest realizowane w pakietach
Embedded Development Environment. Wyróżnia się przy tym System Rozwojowy (host)
oraz System Docelowy (target).
W skład systemu rozwojowego wchodzą :
- kompilatory języków wysokiego poziomu, C oraz C++
- program dla konsolidacji modułów relokowalnych, Linker
- system operacyjny czasu rzeczywistego, VRTX
- program uruchomieniowy, Debugger
- program komunikacyjny z systemem docelowym Xtrace Target Manager
- symulator systemu docelowego, Virtual Target
W skład systemu docelowego wchodzą :
- program użytkowy
- jadro systemu operacyjnego VRTX
- program bazowy + monitor programowy.
Aktualnie na rynku dostępnych jest kilka kompilatorów języków wyższego poziomu (C
oraz C++), firm :
- Greek Hills Software,
Tasking,
Meta Ware,
Micro Mentor Graphics.
Schemat blokowy tworzenia i uruchamiania programu użytkowego dla mikrokontrolerów
32 bitowych jest analogiczny jak dla mikrokontrolerów 16 bitowych.