mikrokontrolery, ELEKTRONIKA I PROGRAMOWANIE, Mikroprocesory, programowanie Bascom, AVR,


Mikrokontrolery

Na czym polega ich szczególna rola w świecie dzisiejszej elektroniki?

0x01 graphic

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:

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

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:

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:

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;

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.

0x08 graphic

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:

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.

0x01 graphic

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.

0x01 graphic

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:

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ść?

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

  • Zawartość pamięci nie zanika wraz z wyłączeniem napięcia zasilania.

  • Z pamięci można czytać, lecz nie można do niej dopisywać danych. Umieszczenie danych w pamięci wymaga specjalnego procesu, zwanego programowaniem.

  • ROM (Read Only Memory)

- programowanie zawartości pamięci w procesie produkcyjnym i nie może być przeprowadzone przez użytkownika;

  • EEPROM (Erasable Programmable ROM)

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

  • OTP (One Time Programmable)

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

  • FLASH (Bulk Erasable Non-Volatile Memory)

- pamięci z możliwością kasowania jej zawartości i programowania bezpośrednio w systemie mikroprocesorowym.

  • Zawartość pamięci znika wraz z wyłączeniem zasilania.

  • Z pamięci można zarówno czytać, jak i wpisywać do niej dane.

  • SRAM (Static Random Access Memory)

- pamięci RAM statyczne. Są to pamięci o krótkich czasach dostępu, prostsze w obsłudze przez jednostkę centralną, ale droższe.

  • DRAM ( Dynamic Random Access Memory)

- 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:

Mam nadzieję, że mój referat każdemu przybliżył pojęcie mikrokontrolera i pozwolił na zrozumienie jego istoty.

Bibliografia:

Internet:

Książki:

W pisaniu referatu posłużyłem się również wykładem p. dr inż. Zbigniewa Czaji z Politechniki Gdańskiej.



Wyszukiwarka