background image

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. 
 

 

background image

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). 
 



porty 

Pamięć ROM programu 

Pamięć RAM danych 

MAGISTRALA 

 

            P O R T Y 

background image

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   

 

 

 

 

 

 

1980   

 

 

 

 

 

 

1985   

 

 

 

 

 

 

1990   

 

 

16 

 

 

 

 

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 

background image

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. 

 
 

background image

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. 
 

background image

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. 

Nadawanie=1 

Odbieranie=1 

Magistrala 
wewnętrzna 

Łącze danych 

Bit nadawany 
nadawany 

Bit odbierany 

Impuls zapisu 

background image

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 











 




Ę 




Port IN 

Port OUT 

f   IN 

f   OUT 

background image

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. 
 
 
 

background image

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 

background image

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. 

 

        4 

Priorytety zadań 

Czas realizacji zadań 

background image

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), 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3a 

3b 

Jednakowe priorytety zadań 

Czas realizacji zadań 

background image

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. 

background image

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 

background image

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. 

background image

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). 
 
 
 
 
 
 
 
 
 
 
 
 

background image

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 

 
 
 
 

background image

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 

background image

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 

background image

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 

background image

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. 

 
 
 
 
 
 
 
 
 
 

background image

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ń 

background image

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 

background image

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 

background image

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 

background image

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. 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

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 











 




Ę 




background image

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.