Mikrokontroler (MCU)
Mikrokontroler jest kompaktowym układem scalonym zaprojektowanym do zarządzania określoną operacją w systemie wbudowanym. Typowy mikrokontroler zawiera procesor, pamięć i urządzenia peryferyjne wejścia/wyjścia (I/O) na jednym układzie scalonym.
Czasami określane jako kontroler wbudowany lub jednostka mikrokontrolera (MCU), mikrokontrolery można znaleźć między innymi w pojazdach, robotach, maszynach biurowych, urządzeniach medycznych, przenośnych radiowych urządzeniach nadawczo-odbiorczych, automatach sprzedających i urządzeniach gospodarstwa domowego. Są one zasadniczo prostymi, miniaturowymi komputerami osobistymi (PC) zaprojektowanymi do kontrolowania małych funkcji większego komponentu, bez skomplikowanego systemu operacyjnego (OS).
Jak działają mikrokontrolery?
Mikrokontroler jest wbudowany w system, aby kontrolować pojedynczą funkcję w urządzeniu. Robi to poprzez interpretację danych otrzymywanych z urządzeń peryferyjnych I/O za pomocą centralnego procesora. Tymczasowe informacje, które otrzymuje mikrokontroler są przechowywane w jego pamięci danych, gdzie procesor uzyskuje do nich dostęp i używa instrukcji przechowywanych w pamięci programu do rozszyfrowania i zastosowania przychodzących danych. Następnie wykorzystuje swoje urządzenia peryferyjne I/O do komunikacji i wykonywania odpowiednich działań.
Mikrokontrolery są wykorzystywane w szerokiej gamie systemów i urządzeń. Urządzenia często wykorzystują wiele mikrokontrolerów, które współpracują ze sobą w ramach urządzenia, aby obsługiwać swoje odpowiednie zadania.
Na przykład, samochód może mieć wiele mikrokontrolerów, które kontrolują różne indywidualne systemy w ramach, takie jak system zapobiegający blokowaniu się hamulców, kontrola trakcji, wtrysk paliwa lub kontrola zawieszenia. Wszystkie mikrokontrolery komunikują się ze sobą, aby informować o prawidłowych działaniach. Niektóre mogą komunikować się z bardziej złożonym komputerem centralnym w samochodzie, a inne mogą komunikować się tylko z innymi mikrokontrolerami. Wysyłają i odbierają dane za pomocą swoich urządzeń peryferyjnych I/O i przetwarzają te dane, aby wykonać wyznaczone zadania.
Jakie są elementy mikrokontrolera?
Główne elementy mikrokontrolera to:
- Procesor (CPU) — O procesorze można myśleć jak o mózgu urządzenia. Przetwarza on i odpowiada na różne instrukcje, które kierują działaniem mikrokontrolera. Obejmuje to wykonywanie podstawowych operacji arytmetycznych, logicznych i operacji wejścia/wyjścia. Wykonuje również operacje transferu danych, które przekazują polecenia do innych komponentów w większym systemie wbudowanym.
- Pamięć — Pamięć mikrokontrolera jest używana do przechowywania danych, które procesor otrzymuje i wykorzystuje do odpowiadania na instrukcje, do których wykonania został zaprogramowany. Mikrokontroler ma dwa główne typy pamięci:
- Pamięć programu, która przechowuje długoterminowe informacje o instrukcjach wykonywanych przez procesor. Pamięć programu jest nieulotna, co oznacza, że przechowuje informacje w czasie bez potrzeby źródła zasilania
- Pamięć danych, który jest wymagany do tymczasowego przechowywania danych, podczas gdy instrukcje są wykonywane. Pamięć danych jest lotna, co oznacza, że przechowywane w niej dane są tymczasowe i utrzymywane tylko wtedy, gdy urządzenie jest podłączone do źródła zasilania.
- Urządzenia peryferyjne I/O — Urządzenia wejściowe i wyjściowe są interfejsem procesora do świata zewnętrznego. Porty wejściowe odbierają informacje i wysyłają je do procesora w postaci danych binarnych. Procesor odbiera te dane i wysyła niezbędne instrukcje do urządzeń wyjściowych, które wykonują zadania zewnętrzne w stosunku do mikrokontrolera.
Pomimo że procesor, pamięć i urządzenia peryferyjne I/O są elementami definiującymi mikroprocesor, istnieją inne elementy, które są często uwzględniane. Sam termin peryferia I/O odnosi się po prostu do komponentów pomocniczych, które łączą się z pamięcią i procesorem. Istnieje wiele komponentów pomocniczych, które można sklasyfikować jako urządzenia peryferyjne. Posiadanie jakiegoś przejawu peryferiów I/O jest elementarne dla mikroprocesora, ponieważ są one mechanizmem, poprzez który procesor jest stosowany.
Inne elementy wspierające mikrokontrolera obejmują:
- Przetwornik analogowo-cyfrowy (ADC) — ADC jest obwodem, który konwertuje sygnały analogowe na sygnały cyfrowe. Pozwala on procesorowi w centrum mikrokontrolera na interfejs z zewnętrznymi urządzeniami analogowymi, takimi jak czujniki.
- Konwerter cyfrowo-analogowy (DAC) — DAC wykonuje odwrotną funkcję niż ADC i pozwala procesorowi w centrum mikrokontrolera na przekazywanie sygnałów wychodzących do zewnętrznych komponentów analogowych.
- System bus — Magistrala systemowa jest przewodem łączącym wszystkie komponenty mikrokontrolera razem.
- Port szeregowy — Port szeregowy jest jednym z przykładów portu I/O, który pozwala mikrokontrolerowi na połączenie z zewnętrznymi komponentami. Ma podobną funkcję do USB lub portu równoległego, ale różni się sposobem wymiany bitów.
Cechy mikrokontrolera
Procesor mikrokontrolera będzie się różnił w zależności od zastosowania. Dostępne są opcje od prostych procesorów 4-bitowych, 8-bitowych lub 16-bitowych do bardziej złożonych procesorów 32-bitowych lub 64-bitowych. Mikrokontrolery mogą korzystać z typów pamięci lotnej, takich jak pamięć o dostępie swobodnym (RAM), oraz nielotnych – w tym pamięci flash, kasowalnej programowalnej pamięci tylko do odczytu (EPROM) i elektrycznie kasowalnej programowalnej pamięci tylko do odczytu (EEPROM).
Generalnie, mikrokontrolery są zaprojektowane tak, aby można je było łatwo wykorzystać bez dodatkowych komponentów obliczeniowych, ponieważ są zaprojektowane z wystarczającą pamięcią wbudowaną, jak również oferują piny do ogólnych operacji I/O, dzięki czemu mogą bezpośrednio łączyć się z czujnikami i innymi komponentami.
Architektura mikrokontrolera może być oparta na architekturze harwardzkiej lub architekturze von Neumanna, obie oferujące różne metody wymiany danych pomiędzy procesorem a pamięcią. W architekturze harwardzkiej magistrala danych i instrukcji są oddzielne, co pozwala na jednoczesne przesyłanie danych. W architekturze von Neumanna jedna magistrala jest używana zarówno dla danych, jak i instrukcji.
Procesory mikrokontrolerów mogą być oparte na złożonych zestawach instrukcji (CISC) lub zredukowanych zestawach instrukcji (RISC). CISC ma zazwyczaj około 80 instrukcji, podczas gdy RISC ma około 30, jak również więcej trybów adresowania, 12-24 w porównaniu do 3-5 RISC. Podczas gdy CISC może być łatwiejszy do wdrożenia i ma bardziej efektywne wykorzystanie pamięci, może mieć spadek wydajności ze względu na większą liczbę cykli zegara potrzebnych do wykonania instrukcji. RISC, który kładzie większy nacisk na oprogramowanie, często zapewnia lepszą wydajność niż procesory CISC, które kładą większy nacisk na sprzęt, ze względu na uproszczony zestaw instrukcji, a zatem większą prostotę projektowania, ale ze względu na nacisk, jaki kładzie na oprogramowanie, oprogramowanie może być bardziej złożone. Który ISC jest używany, zależy od zastosowania.
Gdy mikrokontrolery były dostępne po raz pierwszy, używały wyłącznie języka asemblera. Dziś popularnym rozwiązaniem jest język programowania C. Inne popularne języki programowania mikroprocesorów to Python i JavaScript.
Mikrokontrolery posiadają piny wejściowe i wyjściowe do realizacji funkcji peryferyjnych. Do takich funkcji należą przetworniki analogowo-cyfrowe, kontrolery wyświetlaczy ciekłokrystalicznych (LCD), zegar czasu rzeczywistego (RTC), uniwersalny nadajnik odbiornika synchronicznego/asynchronicznego (USART), timery, uniwersalny nadajnik odbiornika asynchronicznego (UART) oraz uniwersalna magistrala szeregowa (USB). Czujniki zbierające dane dotyczące między innymi wilgotności i temperatury są również często dołączane do mikrokontrolerów.
Typy mikrokontrolerów
Powszechne MCU obejmują Intel MCS-51, często określany jako mikrokontroler 8051, który został po raz pierwszy opracowany w 1985 r.; mikrokontroler AVR opracowany przez firmę Atmel w 1996 r.; programowalny kontroler interfejsu (PIC) firmy Microchip Technology; oraz różne licencjonowane mikrokontrolery Advanced RISC Machines (ARM).
Liczne firmy produkują i sprzedają mikrokontrolery, w tym NXP Semiconductors, Renesas Electronics, Silicon Labs i Texas Instruments.
Zastosowania mikrokontrolerów
Mikrokontrolery są używane w wielu branżach i zastosowaniach, w tym w domu i przedsiębiorstwie, automatyce budynków, produkcji, robotyce, motoryzacji, oświetleniu, inteligentnej energii, automatyce przemysłowej, komunikacji i wdrażaniu Internetu rzeczy (IoT).
Jednym z bardzo specyficznych zastosowań mikrokontrolera jest jego użycie jako cyfrowego procesora sygnału. Często przychodzące sygnały analogowe są obarczone pewnym poziomem szumu. Szum w tym kontekście oznacza niejednoznaczne wartości, które nie mogą być łatwo przetłumaczone na standardowe wartości cyfrowe. Mikrokontroler może użyć swoich przetworników ADC i DAC do przekształcenia przychodzącego, zaszumionego sygnału analogowego w równomiernie wychodzący sygnał cyfrowy.
Najprostsze mikrokontrolery ułatwiają działanie systemów elektromechanicznych znajdujących się w przedmiotach codziennego użytku, takich jak piekarniki, lodówki, tostery, urządzenia mobilne, breloczki, systemy gier wideo, telewizory i systemy podlewania trawników. Są one również powszechne w maszynach biurowych, takich jak fotokopiarki, skanery, faksy i drukarki, a także w inteligentnych licznikach, bankomatach i systemach bezpieczeństwa.
Mikrokontrolery o bardziej zaawansowanej konstrukcji pełnią krytyczne funkcje w samolotach, statkach kosmicznych, statkach oceanicznych, pojazdach, systemach medycznych i podtrzymywania życia, a także w robotach. W scenariuszach medycznych, mikrokontrolery mogą regulować działanie sztucznego serca, nerek lub innych organów. Mogą również odgrywać zasadniczą rolę w funkcjonowaniu urządzeń protetycznych.
Mikrokontrolery a mikroprocesory
Różnica między mikrokontrolerami a mikroprocesorami stała się mniej wyraźna, ponieważ gęstość i złożoność układów scalonych stała się stosunkowo tania w produkcji, a mikrokontrolery zintegrowały więcej funkcji typu „komputer ogólny”. Ogólnie jednak można powiedzieć, że mikrokontrolery funkcjonują użytecznie samodzielnie, z bezpośrednim połączeniem z czujnikami i aktuatorami, podczas gdy mikroprocesory są zaprojektowane tak, aby zmaksymalizować moc obliczeniową na chipie, z połączeniami magistrali wewnętrznej (raczej niż bezpośrednimi wejściami/wyjściami) do sprzętu pomocniczego, takiego jak RAM i porty szeregowe. Mówiąc prościej, ekspresy do kawy używają mikrokontrolerów; komputery stacjonarne używają mikroprocesorów.
Mikrokontrolery są tańsze i zużywają mniej energii niż mikroprocesory. Mikroprocesory nie mają wbudowanej pamięci RAM, pamięci tylko do odczytu (ROM) lub innych urządzeń peryferyjnych na chipie, ale raczej dołączają się do nich za pomocą swoich pinów. Mikroprocesor może być uważany za serce systemu komputerowego, podczas gdy mikrokontroler może być uważany za serce systemu wbudowanego.
Wybór właściwego mikrokontrolera
Przy wyborze mikrokontrolera do projektu należy pamiętać o wielu kwestiach technologicznych i biznesowych.
Poza kosztem, ważne jest rozważenie maksymalnej prędkości, ilości pamięci RAM lub ROM, liczby lub typów pinów I/O w MCU, jak również poboru mocy i ograniczeń oraz wsparcia rozwoju. Pamiętaj, aby zadawać pytania takie jak: