Mikrokontroler
Z Wikipedii
Mikrokontroler (ang. MCU) - komputer zrealizowany w postaci pojedynczego układu scalonego, zawierającego jednostkę centralną (CPU), pamięć RAM, na ogół, pamięć programu oraz rozbudowane układy wejścia-wyjścia. Określenie mikrokontroler pochodzi od głównego obszaru zastosowań, jakim jest sterowanie urządzeniami elektronicznymi.
Mikrokontroler stanowi użyteczny i całkowicie autonomiczny system mikroprocesorowy, nie wymagają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 wykorzystuje się powszechnie w sprzęcie AGD, układach kontrolno-pomiarowych, w przemysłowych układach automatyki, w telekomunikacji itp.
Spis treści |
[edytuj] Budowa
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 lub 32-bit,
- pamięć danych (RAM)
- pamięć programu
- 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 - np. mogą to być elementy opcjonalnej magistrali adresów i danych
- układy czasowo - licznikowe,
- kontrolery przerwań,
Ponadto, mikrokontroler może zawierać:
- kontrolery transmisji szeregowej lub równoległej (UART, SPI, I2C, USB, CAN, 1-Wire itp.),
- proste przetworniki analogowo-cyfrowe lub cyfrowo-analogowe,
- obszar nieulotnej pamięci danych, np EEPROM lub opartej o dodatkowe podtrzymywanie bateryjne
- zegar czasu rzeczywistego (RTC).
- układ kontroli poprawnej pracy, tzw watchdog, którego zadaniem jest przeprowadzenie restartu mikrokontrolera w razie zapętlenia się programu.
- wewnętrzne czujniki wielkości nieelektrycznych, np. temperatury
[edytuj] Pamięć programu
Ze względu na rodzaj użytej pamięci programu, możemy wyróżnić mikrokontrolery:
- z pamięcią stałą (ROM) programowaną fabrycznie - jest to najtańsze rozwiązanie w produkcji masowej
- wielokrotnie programowalne - wyposażone w pamięć EPROM, EEPROM lub Flash, wymagające użycia zewnętrznych programatorów - tego rodzaju mikrokontrolery nadają się szczególnie dobrze do zastosowań prototypowych i niewielkich serii produkcyjnych
- programowalne w zmontowanym urządzeniu docelowym (In-System Programmable - ISP), przez interfejs szeregowy,
- 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 stałe tablice (Look-Up Tables, LUT)
[edytuj] Taktowanie
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)
- własnym generatorem, wymagającym podłączenia zewnętrznych elementów ustalających częstotliwość taktowania (najczęściej jest to rezonator kwarcowy 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 o syntezę 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 do podtrzymywania stanu pamięci oraz oczekiwania na sygnał wybudzający (np. przerwanie zewnętrzne).
[edytuj] Oprogramowanie
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 (np. Actum Realizer).
[edytuj] Historia, producenci i ewolucja mikrokontrolerów
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. Wprowadza się rozbudowane układy peryferyjne (sterownik wyświetlacza LCD, dekoder MP3, sterownik magistrali ATA, radiomodem i inne). Oprócz klasycznych rozwiązań ośmio i szesnastobitowych, pojawiają się układy ze słowem 32-bitowym. Jeden z kierunków rozwojowych oferuje sprzętowe wsparcie języków wysokiego poziomu, takich jak Java. Niektóre firmy produkują 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 najbardziej popularnych mikrokontrolerów należą układy takich firm jak Atmel, Intel, Freescale Semiconductor (dawniej Motorola), Infineon, Analog Devices, Philips, ST, Hitachi i wielu innych. 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ść wstecz z tą rodziną (oznaczaną także jako S51 lub x51). Bardzo popularne są również mikrokontrolery AVR firmy Atmel oraz PIC firmy Microchip Technology.
Pierwszym seryjnie produkowanym mikrokontrolerem był układ Intel 8048, sprzedawany od 1976 roku. Niemniej, za wynalazcę mikrokontrolera należałoby raczej 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 TMS0100, produkowane już w roku 1972.
[edytuj] Linki zewnętrzne
- http://mikrokontrolery.net - wszystko o mikrokontrolerach jednoukładowych
- Microchip PIC Project database and resource page
Intel:
8-bitowe: MCS-48 • MCS-51 • 8xC251
16-bitowe: 80186/80188 • MCS-96 • MXS296
32-bitowe: i386EX • i960
Motorola (Freescale Semiconductor):
8-bitowe: 68HC05 • 68HC08 • 68HC11
16-bitowe: 68HC12 • 68HC16 • DSP56k
32-bitowe: MPC500 • MPC 860 • MPC 8240/MPC 8250 • MPC 8540/MPC 8560 • 683XX
Atmel: Atmel AT89 • Atmel AVR • Atmel ARM • MARC 4 • Atmel AVR32
Texas Instruments: MSP430 • TMS370
Philips: LPC2000 • LPC900 • LPC700