Autor: Krzysztof Janeczek
Temat zadania: Technika mikroprocesorowa i mikrokontrolery w sterowaniu maszyn
Mikroprocesor to procesor wykonany w technologii LSI (mikroprocesor 8-bitowe), VLSI (mikroprocesor 16-bitowe i 32-bitowe) lub ULSI (mikroprocesor 64-bitowe).
Układ, który dokonał rewolucji w informatyce, powstał trochę na zasadzie nieudanego produktu ubocznego. Pierwszy mikroprocesorem Intel 4004 (USA) z trudem znajdował zastosowania w wąskim gronie amatorów komputeryzacji i nie wróżono mu dalekiej przyszłości. Przodującymi producentami typowych mikroprocesorów są firmy: Intel, Motorola, MOS Technology oraz liczne zakłady dalekowschodnie, a przemysł mikroprocesorów stanowi istotną gałąź produkcji krajów rozwiniętych.
Cały sprzęt PC, sprzęt sieciowy i telekomunikacyjny, komputery laboratoryjne, osprzęt linii technologicznych, elektronika motoryzacyjna, niezliczone aplikacje domowe opierają się na mikroprocesorach.
Na procesor składają się głównie: układ sterowania, jednostka arytmetyczno - logiczna, zw. arytmometrem, oraz zespół rejestrów: rejestr rozkazów, licznik rozkazów, akumulatory i inne. Procesor wykonuje kolejne cykle rozkazowe, pobierając rozkazy i dane bezpośrednio z pamięci operacyjnej. Szczegóły dotyczące cyklu pracy mikroprocesora zostaną omówione dalej.
Pamięć operacyjna składa się z komórek ponumerowanych kolejnymi liczbami naturalnymi (0, 1, 2,...). Komórka jest ciągiem bitów, które można sobie wyobrazić jako miejsca, gdzie można wpisać 0 lub 1. Do komórek pamięci można więc wpisywać informacje w postaci zer i jedynek. Można również pobierać informacje tam zapisane. W czasie zapisywania poprzednia zawartość komórki ulega zniszczeniu. Przy odczytywaniu nie zmienia się. Numery komórek nazywane są adresami.
Zawartość pamięci może być odczytywana jedynie za pośrednictwem dwóch związanych z nią rejestrów: rejestru adresowego pamięci oraz rejestru buforowego pamięci (rys. 1). To samo dotyczy operacji zapisywania do pamięci. Przy odczytywaniu z pamięci do rejestru buforowego pobierana jest zawartość tej komórki pamięci, której adres znajduje się w rejestrze adresowym. Przy zapisie zawartość rejestru buforowego jest wpisywana do komórki o adresie z rejestru buforowego.
Rys. 1. Schemat pamięci operacyjnej (mem) oraz rejestru adresowego (ar) i buforowego (br) pamięci.
W pamięci umieszczane są programy oraz dane dla nich. Programy są ciągami rozkazów, które komputer ma wykonać. Dane są informacjami, które w wyniku wykonania programu są przekształcane w inne informacje. Arytmometr wykonuje rozkazy na danych umieszczonych w rejestrach z nim związanych. Mogą to być na przykład rozkazy dodawania liczb lub też rozkazy logiczne, takie jak iloczyn lub suma logiczna ciągów zer i jedynek. Wynik działania arytmometru pozostaje w jednym z jego rejestrów.
Poza wymienionymi wyżej rejestrami związanymi z pamięcią oraz arytmometrem w procesorze istnieją także takie, które sterują przebiegiem jego pracy. Kluczową rolę pełnia tu: rejestr rozkazów oraz rejestr zwany licznikiem rozkazów. W pierwszym pamiętany jest rozkaz aktualnie wykonywany przez komputer, w drugim - adres komórki pamięci, w której znajduje się następny rozkaz do wykonania.
Komputer działa według ustalonego schematu. Schemat ten, nazywany cyklem pracy komputera, wygląda następująco:
z pamięci operacyjnej komputera pobierana jest zawartość komórki pamięci o adresie równym zawartości licznika rozkazów
wartość ta jest przesyłana do licznika rozkazów, gdzie jest interpretowana jako rozkaz do wykonania
licznik rozkazów jest zwiększany o taką wartość, aby wskazywał następny rozkaz w pamięci operacyjnej
przygotowywane są argumenty rozkazu (operandy)
rozpoznany rozkaz jest wykonywany
następuje przejście do kolejnego cyklu pracy (chyba, że wykonano rozkaz zatrzymania pracy komputera).
Lista rozkazów mikroprocesora składa się zwykle z rozkazów arytmetycznych, logicznych, przesłań, rozkazów skoku, zatrzymania, wejścia / wyjścia oraz wywołania podprogramu. Każdy z tych rozkazów ma zero, jeden lub dwa argumenty. Argumenty mogą być umieszczone bezpośrednio w kodzie rozkazu, w rejestrze lub w pamięci. W związku z różnymi sposobami adresowania argumentów istotne jest podanie sposobu ich odnalezienia, który zależy od zastosowanego sposobu adresacji.
Sposoby adresowania operandów
Istnieje wiele sposobów adresowania. Sposoby te związane są z konkretnym typem mikroprocesora. Najprostsze jest adresowanie natychmiastowe (proste), gdy w formacie rozkazu po kodzie operacji następuje bezpośrednio argument, czyli nie ma potrzeby pobierać go ani z pamięci, ani z żadnego rejestru procesora.
Drugim popularnym trybem adresowania jest adresowanie rejestrowe. Żądany rejestr roboczy zazwyczaj jest wybierany przez wydzielone pole w kodzie operacji.
Jeśli w rejestrze roboczym jest umieszczony nie argument, lecz jego adres zwany wskaźnikiem argumentu, to otrzymuje się adresowanie wskaźnikowe, określane również jako rejestrowe pośrednie .
W adresowaniu bezpośrednim adres argumentu jest umieszczony wprost w części adresowej rozkazu.
Nazwa adresowanie indeksowe pochodzi od typowego zastosowania, związanego z operacjami na tablicach. Wówczas adres początku tablicy umieszcza się w części adresowej rozkazu, a pozycję (indeks) elementu tablicy określa zawartość rejestru indeksowego, którą można łatwo modyfikować (np. cyklicznie zwiększać lub zmniejszać o 1).
Przykładowy mikroprocesor
Przykładowy mikroprocesor wraz z pamięcią operacyjną ma charakter narzędzia demonstracyjnego, które umożliwia poznanie i zrozumienie istoty budowy i funkcjonowania bardziej zaawansowanych układów tego typu.
W rozważanym przykładzie pamięć operacyjna składa się z komórek 8 - bitowych, które jednak mogą być łączone w większe jednostki, tzw. słowa o długości 32 bitów. Wszystkie rejestry oraz rozkazy są także 32 - bitowe.
Na rysunku 2 zamieszczono schemat przykładowego mikroprocesora wraz z pamięcią operacyjną.
Rys. 2. Przykładowy mikroprocesor dydaktyczny wraz z pamięcią operacyjną.
Budowa przykładowego mikroprocesora - oznaczenia według rysunku 2
ALU - arytmometr, jednostka arytmetyczno - logiczna (ang. Arithmetical - Logical Unit) współpracuje z rejestrami, realizuje operacje arytmetyczne oraz logiczne
@A, @B - rejestry, akumulatory (ang. Register) służą do przechowywania argumentów oraz wyników operacji
pc - licznik rozkazów (ang. Program Counter) wskazuje adres komórki pamięci, gdzie umieszczony jest kolejny rozkaz do wykonania
ir - rejestr instrukcji (ang. Instruction Register), w rejestrze tym dekodowana jest każda kolejna instrukcja pobrana z pamięci operacyjnej
or - rejestr operanda (ang. Operand Register) jest wykorzystywany do obliczania operanda
rr - rejestr żądań (ang. Request Register), w tym rejestrze zapisywana jest informacja, która może być wykorzystywana przez program do podejmowania odpowiednich decyzji
sr - rejestr stanu (ang. State Register) zawiera informacje o stanie komputera po wykonaniu kolejnego rozkazu.
Strzałki na rysunku wskazują dopuszczalny kierunek przepływu informacji.
Mikroprocesor przykładowy oferuje kilka rodzajów adresacji, tzn. obliczania argumentu rozkazu. Mamy adresację natychmiastową ( w rozkazie występuje argument), bezpośrednią (w rozkazie występuje adres argumentu) oraz pośrednią (w rozkazie umieszczony jest adres adresu argumentu). Rozkazy są jedno- i dwuargumentowe. Lista rozkazów obejmuje: rozkaz pusty, rozkaz stopu, rozkazy przesłań, rozkazy arytmetyczne oraz rozkazy stopu.
Trzy powody integrowania mikroprocesorów z maszynami
Główne powody wbudowywania mikroprocesorów w urządzenia mechaniczne
można scharakteryzować trzema słowami: poszerzenie, uproszczenie,
innowacyjność.
Poszerzenie charakterystyk
Zasadnicza konstrukcja urządzenia pozostaje taka sama, często przestarzała. Dodanie
mikroprocesora może rozszerzyć lub poprawić dokładność, szybkość pracy czy
elastyczność zastosowania, zredukować wymagania eksploatacyjne, poprawić niezawodność.
Typowym przykładem jest układ sterowania silnikiem samochodowym.
Układ ten zwiększa ekonomiczność silnika, daje łagodniejszy bieg jałowy
i dłuższe okresy między kolejnymi przeglądami technicznymi.
Uproszczenie złożonych mechanizmów
System mikroprocesorowy może zastąpić jeden lub kilka skomplikowanych mechanizmów.
Przykładem może być modernizacja nacinania gwintów na tokarce.
W tokarce tradycyjnej do napędu wrzeciona i śruby pociągowej służy ten sam silnik.
Do sterowania stosunkiem prędkości śruby pociągowej i wrzeciona (przedmiotu
obrabianego) - jest to warunek wykonywania gwintów o różnym skoku - służą
zestawy wymiennych kół zębatych lub przekładnia wielostopniowa o bardzo dużej
liczbie przełożeń. Maszyna jest skomplikowana i droga. Rozwiązanie mechatroniczne
polega na zastosowaniu oddzielnych silników do napędu śruby pociągowej i
wrzeciona tokarki. Przekładnia wielostopniowa staje się zbyteczna. Elektroniczne
sterowanie stosunkiem prędkości śruby pociągowej i wrzeciona staje się wygodniejsze,
ponieważ „przekładnia” elektroniczna jest bezstopniowa i umożliwia na15
cięcie gwintu o dowolnym skoku. Konstrukcja mechaniczna tokarki zostaje
uproszczona. Jej zespoły mogą być używane bardziej elastycznie, co sprzyja
oszczędności kosztów. Podobne rozwiązanie jest stosowane w obrabiarkach do kół
zębatych w celu zastąpienia sprzężenia (powiązania) mechanicznego miedzy narzędziem
(dłutakiem) a kołem obrabianym (otoczką). Zastąpienie skomplikowanej
przekładni wielostopniowej przez oddzielnie sterowane napędy bezpośrednie
sprawia, że sprzężenie miedzy dłutakiem a otoczką staje się sztywniejsze. Odkształcenia
i drgania skrętne wałów, luzy w przekładniach i tolerancje wykonania
nie mają wpływu na proces nacinania zębów. Efekt jest podwójny: poprawa jakości
kół i uproszczenie konstrukcji maszyny.
Innowacyjność
Zastosowanie mikroprocesorów umożliwia stworzenie produktów czy systemów,
które dotychczas nie mogły być zrealizowane. Chodzi tu przede wszystkim o roboty
i maszyny, które wymagają zaawansowanych technologii sensorycznych, jak np.
rozpoznawania obrazu.
Dwa pierwsze powody nie wykluczają się wzajemnie. W wielu przypadkach zastosowanie
mikroprocesorów daje podwójną korzyść: poprawia osiągi i obniża koszty.
Mikrokontrolery w sterowaniu maszyn
Zastosowanie mikrokontrolerów jest dość powszechne i często nie zauważane przez nas.
Pralka automatyczna - wybrałem ją ze względu na to, że każdy czytający ma w domu takową pralkę i poprzez ten opis będzie mógł sobie uświadomić co jest jej „mózgiem”, jest to również przykład bardzo powiedziałbym tutaj standardowego zastosowania mikrokontrolera;
System ABS (ang. Anti-Lock Brakes System) - zastosowanie mikrokontrolera w sytuacji, kiedy poprzez użycie tegoż elementu, może zostać ocalone ludzkie życie;
System sterowania pociskami Cruise - jako precyzyjne zastosowanie mikrokontrolera w sterowaniu trajektorią lotu pocisku;
Pierwszym przykładem jak już wymieniłem będzie pralka automatyczna, jaką każdy z nas ma z pewnością w domu i używa jej dosyć często (proszę mnie tylko nie postrzegać jako eksperta w dziedzinie pralek automatycznych. Zagłębimy się tutaj nie w mechanizm jej działania, lecz w system sterowania. Muszę tutaj wspomnieć, że układy sterujące pralkami na przestrzeni lat się zmieniały, ale ogólna zasada jest taka sama. W zależności od wybranego przez nas programu prania, pranie jest poddawane kolejno odpowiednim procesom, takim jak między innymi, „kręcenie”, wirowanie, moczenie w odpowiedniej ilości wody i co ważniejsze woda ta musi mieć (w zależności od pranej tkaniny) odpowiednią temperaturę. Teraz pomyślmy jak moglibyśmy tym wszystkim sterować. Mamy na przykład 10 programów prania, a więc jest wiele procesów, które układ sterujący będzie musiał wykonywać jeden po drugim (każdy w odpowiednim przedziale czasu). Co gorsza nie chodzi tu tylko o np. włączenie po kolei namaczania, kręcenia i wirowania. Wszyscy sobie pewnie zdajemy sprawę z tego, że do pralki płynie woda zimna, a przecież ubrań nie pierze się w zimnej wodzie, tak więc jeszcze tę wodę trzeba ogrzać. Ale jak tu ją ogrzewać, jeżeli mamy 10 programów prania i wszędzie musi być woda o innej temperaturze?! Pomimo tego trzeba jeszcze sterować ciągiem przepływającej wody (włączać przypływ/odpływ wody do/z bębna) oraz jak widziałem w reklamie jednej z pralek, dozowaniem proszku (tu w postaci płynu), oraz wyświetlaniem wszystkich informacji na wyświetlaczu LCD, lub lampce/diodzie sygnalizacyjnej. Tak więc z tego procesu możemy wydobyć kilka cech mikrokontrolera, przedstawię to w punktach za pomocą schematu cecha mikrokontrolera - funkcja jaką wykonuje w pralce:
Posiada możliwość sterowania w czasie rzeczywistym - steruje lub kontroluje temperaturą/ciągiem wody przez cały okres prania;
Posiada pamięć - mamy do wyboru ustaloną przez producenta ilość programów prania;
Odbiera informacje z zewnątrz - w przypadku pralki odbiera informacje na temat zaawansowania procesu ogrzewania wody (im woda cieplejsza, tym mniej ją trzeba ogrzewać), otwarcia/zamknięcia drzwiczek pralki (nie można zacząć prania z otwartymi drzwiczkami), np. informację o stanie proszku/płynu (nic nie wypierzemy bez proszku);
Wysyła informacje do innych urządzeń peryferyjnych - w przypadku pralki urządzeniem peryferyjnym możemy nazwać: system obracania bębnem w zależności od programu (szybciej/wolniej, np. podczas wirowania ilość obr/s wzrasta), system sterowanie grzałką (trzeba ogrzać wodę do odpowiedniej temperatury zanim trafi do bębna),system sterowanie dozowaniem proszku/płynu.
Tak więc widzimy, że mikrokontroler steruje pralką, jest jej „mózgiem” i bez niego pralka byłaby „bezużyteczną stertą blachy i metalu”.
Kolejnym przykładem zastosowania mikrokontrolera jest nam powszechnie znany system ABS. System ten chroni kierowcę przed wpadnięciem w poślizg, gdy ten za mocno wciśnie pedał hamulca. Gdy samochód zaczyna się ślizgać znaczy to, że jedno lub więcej kół tracą przyczepność z podłożem, wtedy system ABS zaczyna zmniejszać ilość obrotów na tym kole aż do momentu kiedy koło uzyska pełną przyczepność do podłoża, a moment siły hamującej przekazuje na pozostałe koła, które mają pełną przyczepność do podłoża. To jest krótki opis systemu, jednak pewnie teraz zastanawiamy się jak to działa. Otóż działa to tak: jednostka sterująca (mikrokontroler), podczas wciskania pedału hamulca zaczyna kontrolować ilość obrotów na każdym ilość kół. Jeżeli ilość ta spadnie do 0 - koło ślizga się (mówiąc inaczej nie hamuje), wtedy mikrokontroler zmniejsza moment siły hamowania na tym kole, aż do momentu odzyskania pełnej przyczepności do podłoża, jednocześnie odjęty moment siły hamującej z jednego koła jest przekazywany na inne koła, przez co na nich moment zwiększa się jeszcze bardziej. Spróbujmy teraz wyciągnąć wnioski z tego opisu, tak jak na przykładzie pralki automatycznej, schemat jest ten sam: cecha - pełniona funkcja:
Posiada możliwość sterowania w czasie rzeczywistym - steruje momentem siły hamującej;
Posiada pamięć - mikrokontroler ma zapisany sposób postępowania w razie poślizgu;
Odbiera informacje z zewnątrz - odbiera informacje od czujnika obrotu kół;
Wysyła informacje do innych urządzeń peryferyjnych - steruje systemem sterowania momentem siły hamującej.
Ostatnim już przykładem jaki przygotowałem jest system sterowania pociskami Cruise. Pokazuje to nam precyzyjne zastosowanie mikrokontrolera. Otóż musimy wiedzieć, że pociski te są naprowadzane na cel drogą satelitarną. Wystrzelona rakieta jest ciągle w kontakcie z satelitą GPS, która ciągle przesyła rakiecie jej pozycję (długość i szerokość geograficzną). Na podstawie tych danych rakieta wie gdzie się znajduje, oraz na podstawie wprowadzonych do pamięci danych kieruje się na obiekt, który ma zniszczyć. Rakieta ma jeszcze systemy, dzięki którym np. nie wleci w napotkaną przeszkodę lub system, który zdetonuje ładunek wybuchowy. Chciałbym powiedzieć, że w przypadku rakiet używa się innych mikrokontrolerów niż w przypadku np. pralki, ponieważ do przetwarzania tak dużej ilości danych potrzeba mikrokontrolera o wiele szybszego. Teraz jak już w powyższych przykładach porównanie cecha - funkcja;
Posiada możliwość sterowania w czasie rzeczywistym - steruje: ciągiem silników, oblicza trajektorię lotu oraz komunikuje się z satelitą;
Posiada pamięć - ma zapisane zasady obliczania trajektorii, komunikacji itd.;
Odbiera informacje z zewnątrz - odbiera sygnały z odbiornika sygnałów satelity;
Wysyła informacje do innych urządzeń peryferyjnych - sterownik ciągu silnika, sterownik nadajnika sygnałów do satelity, zapalnik detonatora;
Tak więc widzimy, że mikrokontroler jest również używany do celów militarnych, oczywiście mikrokontrolerów stosowanych w rakietach nie da się kupić, są one specjalnie projektowane i produkowane tylko dla wojska.
Teraz chciałbym podsumować to co właśnie napisałem, nim przejdę do omawiania wewnętrznej budowy mikrokontrolera. Ale zanim to zrobię, chciałbym odpowiedzieć na pewne pytanie: „Dlaczego akurat mikrokontroler?”. Odpowiedź na to pytanie jest bardzo prosta, po pierwsze ze względu na swoje funkcje, rozmiar, mały pobór energii elektrycznej, oraz ze względu na cenę, która kształtuje się na poziomie kilku dolarów. Ale najważniejszą cechą mikrokontrolera jest to, że jest on układem bardzo uniwersalnym, a jedynym czynnikiem określającym jego funkcję w danym układzie jest program. Tak, to właśnie od programisty zależy jaką funkcję będzie pełnił dany mikrokontroler, czy będzie sterował żelazkiem, pralką, czy może automatem do kawy. Jest to cecha bardzo ważna, ponieważ w każdym z zastosowań nie musimy zmieniać wewnętrznej budowy mikrokontrolera, wystarczy tylko napisać odpowiedni program. A wracając do zastosowania, chciałbym powiedzieć, że mikrokontrolery są używane szczególnie w sprzęcie AGD, oraz do sterowania różnymi procesami przemysłowymi. Również coraz więcej elektroników - amatorów zaczyna opierać swoje projekty elektroniczne na mikroprocesorach. Np. zaprojektowanie i zbudowanie systemu antywłamaniowego, np. do domu, jest bajecznie proste. Wystarczy tylko trochę czujników ruchu/otwarcia okna lub drzwi, dzwonek, zasilanie, wszystko łączymy, a resztę kończymy pisząc odpowiedni program. Powstawanie nowych pakietów do oprogramowywania mikroprocesorów takich jak np. środowisko programistyczne Bascom, sprawia, że napisanie programu do obsługi takiego systemu antywłamaniowego zajmuje nam nie więcej niż 1-2 dni.
Rozmiary mikrokontrolera - otóż kwestia rozmiarów mikrokontrolera jest bardzo ważna. W zależności od rodzaju zastosowania jakie dany mikrokontroler ma pełnić, producenci oferują różne obudowy mikrokontrolerów. Są to technologie:
DIP - jest to technologia przestarzała, dziś używana już jedynie hobbystów. Standard polega na przełożeniu „nóg” elementu na druga stronę płytki drukowanej i przylutowaniu ich po tejże stronie. Technologia już nieużywana, ponieważ zamontowany element zawiera zbyt dużo miejsca na płytce drukowanej. Elementy wykonane w technologii DIP pokazane są na stronie tytułowej.
SMD - jest to technologia używana obecnie, polegająca na powierzchniowym montażu elementów. Technologia ta charakteryzuję się tym, że układy zbudowane w tym standardzie zajmują mało miejsca. Mikrokontrolerów wykonanych w technologii SMD używa się między innymi w urządzeniach przenośnych, ze względu ilość zajmowanego miejsca.
Teraz przyszła kolej na dokładniejsze poznanie się z samym mikrokontrolerem. W tym opisie przedstawię budowę wewnętrzną mikrokontrolera, oraz opiszę wszystkie wewnętrzne układy.
Na samym początku tego opisu chciałbym żebyśmy spróbowali, już teraz korzystając z wiadomości, które przedstawiłem powyżej, określić i opisać mikrokontroler oraz odpowiedzieć na pytanie:, Czym jest mikrokontroler?. Postaram się teraz scharakteryzować ten układ elektroniczny.
Mikrokontroler - jest to układ cyfrowy z wyspecjalizowanym mikroprocesorem i niezbędnymi urządzeniami zawartymi w jednym układzie scalonym, czyniącymi go układem autonomicznym tzn. że do pracy nie potrzebuje żadnych urządzeń zewnętrznych.
Na powyższym rysunku pokazałem uproszczoną budowę mikrokontrolera. Widać z niego, że mikrokontroler jest układem scalonym, w którego wnętrzu zintegrowane są wszystkie elementy kompletnego komputera tj. jednostka centralna, pamięci oraz urządzenia peryferyjne (za ich pomocą mikrokontroler komunikuje się z otoczeniem).
Jedną z ważniejszych cech jednostki centralnej jest szerokość szyny danych. Może ona być 8-bitowa, 16-bitowa lub 32-bitowa. Na jej podstawie określa się typ mikrokontrolera, np. mikrokontroler 8-bitowy.
Jak już wspominałem mikrokontrolery są ukierunkowane na zastosowania w układach kontrolno-pomiarowych i komunikacyjnych. Z tymi zastosowanymi wiąże się kolejna cecha: jest to częstotliwość sygnału taktującego (zegarowego). Chodzi tu o to, że w każdym z wyżej wymienionych zastosowań, daje się określić minimalną prędkość przetwarzania danych przez jednostkę centralną. Nie obowiązuje tutaj zasada wzięta z mikroprocesorów, że im większa częstotliwość przetwarzania danych tym lepiej. Musimy pamiętać o tym, że im większa częstotliwość sygnału zegarowego, tym większy pobór mocy, a to jest bardzo niekorzystne dla mikrokontrolera. Nie chodzi tutaj o to, że mikrokontroler nie może pracować przy wyższych napięciach, lecz o to, że np. duży pobór mocy skraca czas pracy mikrokontrolera np. w systemach bateryjnych, a wraz ze wzrostem poboru mocy pobieranej przez mikrokontroler zaczyna on wydzielać więcej ciepła, więc trzeba by go było chłodzić. Chciałbym jeszcze dodać, że w większości zadań jakie wykonują mikrokontrolery algorytmy przetwarzania danych nie są zbyt skomplikowane, więc nie potrzebna jest duża częstotliwość taktowania jednostki centralnej.
Na powyższym rysunku pokazałem uszczegółowioną budowę mikrokontrolera. Jednostka centralna realizuje program zawarty w pamięci programu (ROM lub FLASH). Zmienne programu są przechowywane w pamięci danych RAM. Jednostka centralna jest taktowana zegarem, którego częstotliwość jest stabilizowana oscylatorem kwarcowym. W stan początkowy mikrokontroler jest prowadzany sygnałem RESET. Układy peryferyjne umożliwiają odczyt sygnałów wejściowych cyfrowych, jak i również analogowych (przetworniki A/C) oraz generację sygnałów wyjściowych.
Mikrokontrolery posiadają następujące cechy:
Zamknięcie magistrali danych i adresowej wewnątrz jednego układu;
Stała struktura pamięci ROM/RAM;
Stałość programu sterującego;
Dostęp do rejestrów procesora i układów wejścia/wyjścia poprzez adresowanie pamięci RAM;
Rejestrowa budowa jednostki centralnej;
Procesory boolowskie wykonujące operacje na pojedynczych bitach pamięci, rejestrach i układach wejścia/wyjścia;
Bogaty zestaw urządzeń wejścia/wyjścia;
Rozbudowane i szybkie układy przerwań;
Różnorodne tryby i środki redukcji mocy pobieranej;
Rozbudowane mechanizmy kontroli i detekcji nieprawidłowych stanów mikrokontrolera;
Zawarcie w jednej strukturze układów cyfrowych (sterujących i analogowych (pomiarowych)
Jednostka centralna
Teraz chciałbym napisać o „mózgu” mikrokontrolera, czyli o jednostce centralnej. Często określa się ją jako procesor rdzeniowy lub w skrócie procesor. Procesor należy do grupy układów cyfrowych, określanych jako układy synchroniczne i sekwencyjne. Na czym polega synchroniczność i sekwencyjność?
Synchroniczność polega na tym, że wszystkie operacje są wykonywane w rytm sygnału zegarowego;
Sekwencyjność oznacza, że stan wyjść jednostki centralnej zależy nie tylko od stanu jej wejść, ale i od poprzednich stanów tego układu.
Jednostka centralna posiada również własną pamięć (rejestry) do np. przechowywania argumentów bądź rozkazów niezbędnych do wykonania danej operacji.
Pamięci
W mikrokontrolerach można wyróżnić następujące typy pamięci:
Pamięć programu (zawierająca kod programu, tablice stałych, wektor resetu i przerwań);
Pamięć danych (przechowująca zmienne);
Pamięć EEPROM (przechowująca zmienne lub tablice stałych, które po wyłączeniu zasilania mogą ulec skasowaniu).
Bibliografia:
Internet:
Książki:
„Mikroprocesor w pytaniach i odpowiedziach” - K. Sacha i A. Rydzewski