Mikrokontrolery
Na czym polega ich szczególna rola w świecie dzisiejszej elektroniki?
Czy kiedykolwiek ktoś z nas zastanawiał się jak wyglądałoby życie człowieka bez otaczającego nas świata elektroniki? Odpowiedzi było by zapewne tyle co i osób starających się na nie odpowiedzieć. Według mnie życie miałoby zupełnie inny charakter. Ludzie na pewno żyliby w o wiele wolniejszym tempie. Żeby nie być tutaj gołosłownym posłużę się takim przykładem, np. dawniej ludzie o wszelkich informacjach dowiadywali się ze sporym opóźnieniem. Tą informacją mogła być np. wiadomość o jakimś kataklizmie lub innym wydarzeniu. Opóźnienie zależało od odległości „wydarzenie - człowiek”, więc nawet na krótkich dystansach rzędu kilkudziesięciu kilometrów opóźnienie w przekazaniu informacji mogło wynosić w zależności od środka w jaki ta informacja miała zostać przekazana (czy to przez gońca czy tez przez np. podróżnika) godzinę lub więcej. A jak jest dziś? Informacje są przekazywane z wielką szybkością (jedynym opóźnieniem jakie występuje jest czas jaki potrzebuje impuls elektryczny lub fala elektromagnetyczna na pokonanie odległości „nadawca - odbiorca”), więc życie nabiera znacznie większego tempa. Jednak zastanówmy się przez chwilę w jaki sposób informacje są przekazywane dzisiaj? Za pomocą radia, telewizora, komputera itd.? Wszystkie te urządzenia są urządzeniami elektronicznymi, więc widzimy jaki ogromny wpływ na życie człowieka ma właśnie elektronika. Przykład jaki podałem jest banalny i podałem go tylko po to, byśmy na samym początku czytania tej pracy zdali sobie sprawę z tego jaką, rolę odgrywa w dzisiejszych czasach elektronika.
A teraz już przejdę do sedna sprawy, czyli będę pisał o rzeczy w mojej pracy najistotniejszej tj. o mikrokontrolerach. Pewnie dla większości ludzi, którzy na co dzień nie mają styczności z elektroniką nazwa ta może budzić mieszane uczucia. Zapewne wszyscy, którzy nigdy wcześniej nie słyszeli nic o mikrokontrolerze zadają sobie pytanie: „Co to jest ten mikrokontroler?”. Odpowiedź znajdziecie w dalszej części mojej pracy. Będę się starał wyjaśniać wszystkie sprawy w sposób nieco odmienny. Nie chcę podawać tu „suchych” wiadomości i informacji, lecz postaram się wszystko opisywać i podawać jak najwięcej przykładów, aby czytający miał jak najlepszy obraz tego co właśnie czyta.
W swojej pracy będę chciał zawrzeć następujące informacje na temat mikrokontrolerów:
Budowa mikrokontrolerów;
Cechy mikrokontrolerów;
Zastosowanie mikrokontrolerów;
Oraz przedstawienie szczególnego znaczenia mikrokontrolerów we współczesnej elektronice.
Zastanawiając się nad rozpoczęciem swojej pracy wpadłem na pomysł, aby całą tą krótką „przygodę z mikrokontrolerem” zacząć od opisania jego zastosowania. Podczas opisywania zastosowania, wyniknie odpowiedź na pytanie:, „Jaką rolę pełni mikrokontroler?”.
Aby lepiej przybliżyć czytającemu zastosowanie mikrokontrolera oraz na podstawie zastosowania przedstawić jego cechy, dosyć dokładnie przeanalizowałem rolę tegoż elementu elektronicznego w trzech następujących użyciach (użyć jest o wiele, wiele więcej, po przeczytaniu tegoż krótkiego omówienia-porównania, zobaczymy, jak powszechnie jest używany mikrokontroler, a my nawet nie zdajemy sobie sprawy z tego faktu):
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, rozmiar1, 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).
Pamięć programu jest wykonana w technologii ROM, EPROM, OTP, FLASH, natomiast pamięć danych najczęściej jest typu SRAM. W tabeli poniżej przedstawię własności używanych w mikrokontrolerach pamięci.
Własność pamięci |
Stosowane typy pamięci |
|
- programowanie zawartości pamięci w procesie produkcyjnym i nie może być przeprowadzone przez użytkownika;
- pamięci z możliwością kasowania dotychczasowej zawartości promieniami ultrafioletowymi i wprowadzania nowej zawartości za pomocą zewnętrznego programatora. Umieszczane są w obudowach z okienkiem kwarcowym w celu umożliwienia kasowania.
- pamięci typu EPROM umieszczane w obudowach bez okienka kwarcowego. Dlatego możliwe jest tylko jednokrotne zaprogramowanie pamięci bez możliwości skasowania jej zawartości.
- pamięci z możliwością kasowania jej zawartości i programowania bezpośrednio w systemie mikroprocesorowym.
|
|
- pamięci RAM statyczne. Są to pamięci o krótkich czasach dostępu, prostsze w obsłudze przez jednostkę centralną, ale droższe.
- pamięci RAM dynamiczne. Są to pamięci tańsze, lecz ich obsługa jest przez jednostkę centralna jest bardziej skomplikowana. Polega to na konieczności wykonywania w krótkich odstępach czasu określonych operacji na pamięci (tzw. odświeżaniu). Przeciwnym razie dane zawarte w pamięci dynamicznej zanikają.
|
Wiele firm zajmuje się produkcją mikrokontrolerów. Chciałbym wymienić niektóre z nich:
Atmel
Intel
Freescale Semiconductor
Philips
Analog Devices
Microchip Technology
Mam nadzieję, że mój referat każdemu przybliżył pojęcie mikrokontrolera i pozwolił na zrozumienie jego istoty.
Bibliografia:
Internet:
Książki:
„Mikroprocesor w pytaniach i odpowiedziach” - K. Sacha i A. Rydzewski
W pisaniu referatu posłużyłem się również wykładem p. dr inż. Zbigniewa Czaji z Politechniki Gdańskiej.