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.

Mikrokontroler PIC18F8720 firmy Microchip Technology
Przykładowe mikrokontrolery Atmel AVR

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

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

Pamięć programu

edytuj

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

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

Jako języki programowania mikrokontrolerów najczęściej wykorzystywane są asemblery, język C, uproszczone dialekty języka BASIC oraz (rzadziej) język Pascal (np. mikroPascal[2]). 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

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

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). Dostępne są rozwiązania 8, 16 i 32-bitowe. 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:

Niekwestionowany standard dla rynku masowego narzuciła firma Intel, która wprowadziła na rynek mikrokontroler 8051 – prototyp rodziny MCS-51. Przez wiele lat producenci mikrokontrolerów starali się zachować zgodność wsteczną z tą rodziną (oznaczaną także jako S51 lub x51). Spośród 8-bitowych mikrokontrolerów obecnie najpopularniejsze są mikrokontrolery AVR (firmy Atmel) oraz PIC (firmy Microchip Technology). Mikrokontrolery 16-bitowe są stosunkowo mniej popularne. Wiele z nich jest wyposażonych w bloku DSP (np. rodziny MSP430 firmy Texas Instruments czy dsPIC24 firmy Microchip). Natomiast wśród mikrokontrolerów 32-bitowych zdecydowanie dominują te, które są oparte na architekturze ARM. Wyjątkiem są 32-btowe mikrokontrolery z rodziny PIC32, które wykorzystują architekturę MIPS. Od niedawna są także oferowane mikrokontrolery 32-bitowe, używające architektury RISC-V (np. firm GigaDevice i WCH), ale są one na razie mało popularne.

Zobacz też

edytuj

Przypisy

edytuj

Linki zewnętrzne

edytuj


  NODES
INTERN 1