Mikrokontroler


Mikrokontroler (MCU lub μC, od ang. microcontroller), mikrokomputer jednoukładowy – scalony system mikroprocesorowy, zrealizowany w postaci pojedynczego układu scalonego zawierającego jednostkę centralną (CPU), pamięć RAM oraz rozbudowane układy wejścia-wyjścia i na ogół pamięć programu jako FRAM, MRAM, ROM lub flash.
Określenie mikrokontroler pochodzi od głównego obszaru jego zastosowań, jakim jest sterowanie urządzeniami elektronicznymi, takimi jak: urządzenia biurowe, urządzenia medyczne (w tym implanty), zdalnego sterowania, elektronarzędzia, systemy sterowania silnikami samochodowymi, a nawet zabawki i inne systemy wbudowane.
Mikrokontroler stanowi użyteczny i całkowicie autonomiczny system mikroprocesorowy, niewymagający użycia dodatkowych elementów, których wymagałby do pracy tradycyjny mikroprocesor. Skądinąd, mikrokontrolery przystosowane są do bezpośredniej współpracy z rozmaitymi urządzeniami zewnętrznymi, w tym również takimi, do których obsługi tradycyjny mikroprocesor wymagałby użycia dodatkowych układów peryferyjnych.
Mikrokontrolery stosuje się powszechnie w sprzęcie AGD i RTV, układach kontrolno-pomiarowych, w przemysłowych układach automatyki, w telekomunikacji, podzespołach i urządzeniach podłączanych do komputerów (peryferyjnych, kartach rozszerzeń, kluczach sprzętowych)[1].
Budowa[edytuj | edytuj kod]
Wśród wbudowanych w typowy mikrokontroler bloków funkcjonalnych można wyróżnić:
- jednostkę obliczeniową (ALU) – przeważnie 8-bitową, ale także 16-, 32- lub 64-bitową
- pamięć danych (RAM)
- pamięć programu (FRAM, MRAM, ROM lub flash)
- uniwersalne porty wejścia-wyjścia (na ogół przypisane do konkretnych wyprowadzeń układu scalonego); część tych portów może pełnić alternatywne funkcje wybierane programowo – mogą to być elementy opcjonalnej magistrali adresowej i danych
- układy czasowo-licznikowe
- kontrolery przerwań.
Ponadto mikrokontroler może zawierać:
- kontrolery transmisji szeregowej (UART, SPI, I2C, USB, CAN, 1-Wire itp.)
- proste przetworniki analogowo-cyfrowe lub cyfrowo-analogowe
- obszar nieulotnej pamięci danych, np. EEPROM lub opartej na dodatkowym podtrzymywaniu bateryjnym
- zegar czasu rzeczywistego
- układ kontroli poprawnej pracy, tak zwany watchdog, którego zadaniem jest przeprowadzenie restartu mikrokontrolera w przypadku wejścia programu w nieskończoną pętlę;
- wewnętrzne czujniki wielkości nieelektrycznych, np. temperatury.
Pamięć programu[edytuj | edytuj kod]
Ze względu na rodzaj użytej pamięci programu, możemy wyróżnić mikrokontrolery:
- z pamięcią stałą (ROM) programowaną fabrycznie – najtańsze rozwiązanie w produkcji masowej
- wielokrotnie programowalne – wyposażone w pamięć EPROM, EEPROM, flash, MRAM lub FRAM wymagające użycia zewnętrznych programatorów. Tego rodzaju mikrokontrolery nadają się szczególnie dobrze do zastosowań prototypowych i w niewielkich seriach produkcyjnych.
- programowalne wielokrotnie w zmontowanym urządzeniu docelowym (ISP) przez interfejs komunikacyjny – wyposażone w pamięć EEPROM, flash, MRAM lub FRAM
- bez własnej pamięci programu. Niektóre mikrokontrolery mogą wykonywać jedynie programy zapisane w pamięci zewnętrznej; rozwiązanie to bywa stosowane w przypadku, gdy pamięć programu musi mieć szczególnie duży rozmiar, np. z uwagi na przechowywane w niej tablice stałych (lookup table)
Taktowanie[edytuj | edytuj kod]
Zegar systemowy mikrokontrolera może być taktowany:
- zewnętrznym sygnałem taktującym (rozwiązanie często stosowane w dużych układach wymagających synchronicznej współpracy wielu jednostek)
- rezonatorem, wymagającym podłączenia zewnętrznych elementów ustalających częstotliwość taktowania (najczęściej jest to rezonator kwarcowy lub rezonator ceramiczny i dwa kondensatory)
- wewnętrznym układem taktującym, nie wymagającym podłączania dodatkowych elementów (wiele nowoczesnych mikrokontrolerów ma wbudowane układy taktujące; w bardziej rozbudowanych wersjach oparte na syntezie częstotliwości przy pomocy pętli synchronizacji fazowej).
Zegary współczesnych mikrokontrolerów osiągają częstotliwości do kilkuset MHz, jednak w większości zastosowań taktowanie może być znacznie wolniejsze. Ustalenie odpowiedniej częstości taktowania rzadko wiąże się z zapotrzebowaniem na moc obliczeniową; najczęściej branym pod uwagę parametrem jest czas reakcji na sygnały oraz szybkość realizowanej transmisji danych. Z uwagi na zależność poboru mocy od częstotliwości taktowania, wiele mikrokontrolerów może działać w tzw. trybach uśpienia – na przykład z całkowicie wyłączonym zegarem; wówczas aktywność mikrokontrolera ograniczona jest jedynie do podtrzymywania stanu pamięci oraz oczekiwania na sygnał wybudzający (np. przerwanie zewnętrzne).
Programowanie[edytuj | edytuj kod]
Jako języki programowania mikrokontrolerów najczęściej wykorzystywane są asemblery, język C, oraz uproszczone dialekty języka BASIC. Asembler pozwala lepiej wykorzystać możliwości mikrokontrolera (w tym również ograniczone zasoby pamięci), jednak z reguły wymaga większego nakładu pracy programisty. Istnieją również wyspecjalizowane narzędzia umożliwiające zaprogramowanie mikrokontrolera w oparciu o schemat blokowy algorytmu, schemat automatu skończonego lub układ połączeń bloków operacyjnych.
Ograniczanie poboru mocy[edytuj | edytuj kod]
Niektóre mikrokontrolery umożliwiają przełączenie się w tryb z ograniczonym poborem mocy. Zazwyczaj istnieje kilka takich trybów, różniących się przykładowo:
- czasem wyjścia ze stanu uśpienia
- wyłączeniem podzespołów (np. timerów, ADC)
- poborem mocy.
Uśpienie (wstrzymanie) polega na wyłączeniu jednostki centralnej i zatrzymaniu wykonywania programu. Mikrokontroler może wyjść z trybu uśpienia po wywołaniu przerwania – wówczas wykonuje obsługę przerwania, po czym przechodzi do wykonywania programu, zaczynając od następnej instrukcji po instrukcji wstrzymania. W czasie uśpienia rejestry oraz pamięć RAM nie ulegają zmianie. Wstrzymanie działania układu może być realizowane poprzez:
- odłączenie zegara systemowego od jednostki centralnej – płytkie wstrzymanie, krótki czas powrotu
- zatrzymanie zegara systemowego – głębokie wstrzymanie, długi czas powrotu wynikający z konieczności ustabilizowania się częstotliwości zegara.
Historia, producenci i ewolucja mikrokontrolerów[edytuj | edytuj kod]
Pierwszym seryjnie produkowanym mikrokontrolerem był układ Intel 8048, sprzedawany od 1976 roku. Niemniej, za wynalazcę mikrokontrolera należałoby uznać Gary'ego Boone'a z firmy Texas Instruments – zgodnie z ustaleniami urzędu patentowego w USA. Pierwszymi układami firmy Texas Instruments, które można uznać za mikrokontrolery były, przeznaczone do kalkulatorów, układy TMS1000 produkowane już w roku 1972.
Rozwój technologii, oprócz wzrostu niezawodności, zasobów i poprawy parametrów, umożliwił także zmiany w architekturze tych układów. Do mikrokontrolerów wprowadza się rozbudowane układy peryferyjne (sterowniki wyświetlaczy LCD, dekodery MP3, sterowniki magistrali ATA, radiomodemy i inne). Oprócz klasycznych rozwiązań ośmio- i szesnastobitowych, pojawiają się układy ze słowem 32-bitowym. Jednym z kierunków rozwojowych jest oferowanie sprzętowego wsparcie języków wysokiego poziomu, takich jak Java. Produkowane są również uproszczone wersje mikrokontrolerów, w niewielkich obudowach (począwszy od trzech wyprowadzeń), co zapewnia zminimalizowanie kosztów w prostych aplikacjach.
Z drugiej strony można się spotkać z tendencją do wbudowywania gotowych rdzeni popularnych mikrokontrolerów do bardziej złożonych układów – np. układów ASIC lub programowalnych matryc FPGA. Pozwala to na ujednolicenie standardów programowania wytwarzanych urządzeń, w połączeniu z możliwością realizacji praktycznie dowolnych układów wejścia-wyjścia w postaci sprzętowej (w odróżnieniu od implementacji programowej tych samych układów, kiedy to sterowanie sygnałami na konkretnych wyprowadzeniach odbywać się musi z aktywnym wykorzystaniem realizowanego przez mikrokontroler programu).
Do najpopularniejszych mikrokontrolerów należą układy firm:
- Atmel
- Intel
- Freescale Semiconductor (dawniej Motorola)
- Infineon
- Analog Devices
- NXP (do 2006 roku oddział firmy Philips)
- STMicroelectronics
- Hitachi
- Espressif Systems.
Niekwestionowany standard dla rynku masowego narzuciła firma Intel, która wprowadziła na rynek mikrokontroler 8051 – prototyp rodziny MCS-51. Obecnie wielu producentów stara się zachować zgodność wsteczną z tą rodziną (oznaczaną także jako S51 lub x51). Bardzo popularne są również mikrokontrolery AVR firmy Atmel oraz PIC firmy Microchip Technology.
Zobacz też[edytuj | edytuj kod]
Przypisy[edytuj | edytuj kod]
Linki zewnętrzne[edytuj | edytuj kod]
- O mikrokontrolerach jednoukładowych
- Atmel Microcontrolers. atmel.com. [zarchiwizowane z tego adresu (2017-12-30)].
- Microchip Microcontrolers