Mikrokontrolér - Microcontroller

Matrice od Intel 8742, 8-bitového mikroprocesoru, která zahrnuje CPU běží na 12 MHz, 128 bajtů z paměti RAM , 2048 bajtů z paměti EPROM a I / O na stejném čipu
Dva mikrokontroléry ATmega

Mikrokontroléru ( MCU pro mikrokontroléru jednotky ) je malý počítač na jeden kov-oxid-polovodič (MOS), integrovaný obvod (IC) třísek. Mikrokontrolér obsahuje jeden nebo více procesorů ( jádra procesorů ) spolu s pamětí a programovatelnými vstupně/výstupními periferiemi. Na čipu je často zahrnuta také programová paměť ve formě feroelektrické RAM , NOR flash nebo OTP ROM , stejně jako malé množství RAM . Mikroprocesory jsou navrženy pro vestavěné aplikace, na rozdíl od mikroprocesorů používaných v osobních počítačích nebo jiných aplikacích obecného účelu sestávajících z různých diskrétních čipů.

V moderní terminologii je mikrokontrolér podobný, ale méně sofistikovaný než systém na čipu (SoC). SoC může zahrnovat mikrořadič jako jednu ze svých součástí, ale obvykle jej integruje s pokročilými periferiemi, jako je jednotka pro zpracování grafiky (GPU), modul Wi-Fi nebo jeden nebo více koprocesorů .

Mikrokontroléry se používají v automaticky řízených výrobcích a zařízeních, jako jsou řídicí systémy automobilových motorů, implantabilní lékařská zařízení, dálková ovládání, kancelářské stroje, spotřebiče, elektrické nářadí, hračky a další vestavěné systémy . Díky zmenšení velikosti a nákladů ve srovnání s konstrukcí, která využívá samostatný mikroprocesor , paměť a vstupní/výstupní zařízení, umožňují mikrořadiče hospodárné digitálně řídit ještě více zařízení a procesů. Mikroprocesory se smíšeným signálem jsou běžné a integrují analogové komponenty potřebné k ovládání nedigitálních elektronických systémů. V kontextu internetu věcí jsou mikrokontroléry ekonomickým a oblíbeným prostředkem pro sběr dat , snímání a ovládání fyzického světa jako okrajových zařízení .

Některé mikrokontroléry mohou používat čtyřbitová slova a pracovat s frekvencemi až 4 kHz pro nízkou spotřebu energie (jednociferné miliwatty nebo mikrowatty). Obecně mají schopnost zachovat funkčnost při čekání na událost , jako je stisknutí tlačítka nebo jiné přerušení ; spotřeba energie při spánku (hodiny procesoru a většina periferií vypnutá) může být pouze nanowattů, takže mnohé z nich jsou vhodné pro aplikace s dlouhou životností baterie. Jiné mikrokontroléry mohou plnit kritické funkce, kde mohou fungovat více jako procesor digitálního signálu (DSP) s vyššími hodinami a spotřebou energie.

Dějiny

Pozadí

Počátky jak mikroprocesoru, tak mikrokontroléru lze vysledovat až k vynálezu MOSFET (tranzistor s efektem pole na bázi oxidu kovu a polovodiče), známého také jako tranzistor MOS. Byl vynalezen Mohamedem M. Atallou a Dawonem Kahngem v Bell Labs v roce 1959 a poprvé představen v roce 1960. Ve stejném roce Atalla navrhl koncept integrovaného obvodu MOS , což byl čip s integrovanými obvody vyrobený z MOSFETů. V roce 1964 dosáhly čipy MOS vyšší hustoty tranzistorů a nižších výrobních nákladů než bipolární čipy. Čipy MOS se dále zvyšovaly ve složitosti rychlostí předpovídanou Moorovým zákonem , což vedlo k integraci ve velkém měřítku (LSI) se stovkami tranzistorů na jednom čipu MOS koncem 60. let. Aplikace čipů MOS LSI na výpočetní techniku byla základem prvních mikroprocesorů, protože inženýři začali uznávat, že na jednom čipu MOS LSI může být obsažen kompletní počítačový procesor .

První vícečipové mikroprocesory, čtyřfázové systémy AL1 v roce 1969 a Garrett AiResearch MP944 v roce 1970, byly vyvinuty s více čipy MOS LSI. První jednočipový mikroprocesor byl Intel 4004 , povolený na jediném čipu MOS LSI v roce 1971. To bylo vyvinuto Federico Faggin , používat jeho křemík-gate technologie MOS, spolu s Intel inženýry Marcian Hoff a Stan Mazor a Busicom inženýr Masatoshi Shima . Následoval 4bitový Intel 4040 , 8bitový Intel 8008 a 8bitový Intel 8080 . Všechny tyto procesory vyžadovaly několik externích čipů k implementaci funkčního systému, včetně čipů paměti a periferního rozhraní. Výsledkem bylo, že celkové náklady na systém byly několik set dolarů (70. léta v USA), což znemožňovalo ekonomickou počítačovou automatizaci malých spotřebičů. Společnost MOS Technology představila mikroprocesory pod 100 USD, 6501 a 6502 , s hlavním cílem vyřešit tuto ekonomickou překážku, ale tyto mikroprocesory stále vyžadovaly externí podporu, paměť a periferní čipy, které udržovaly celkové náklady na systém ve stovkách dolarů.

Rozvoj

Jedna kniha připisuje inženýrům TI Garymu Boonovi a Michaelu Cochranovi úspěšné vytvoření prvního mikrokontroléru v roce 1971. Výsledkem jejich práce byl TMS 1000 , který byl komerčně dostupný v roce 1974. Kombinoval paměť jen pro čtení, paměť pro čtení/zápis, procesor a hodiny na jednom čipu a byl zaměřen na vestavěné systémy.

V období od začátku do poloviny 70. let začali japonští výrobci elektroniky vyrábět mikrokontroléry pro automobily, včetně 4bitových MCU pro zábavu v autě , automatických stěračů, elektronických zámků a palubní desky a 8bitových MCU pro ovládání motoru.

Částečně v reakci na existenci jednočipového TMS 1000 vyvinula společnost Intel počítačový systém na čipu optimalizovaném pro řídicí aplikace Intel 8048 , přičemž komerční díly byly poprvé dodány v roce 1977. Kombinovaly RAM a ROM na stejném čipu s mikroprocesor. Mezi mnoha aplikacemi by se tento čip nakonec dostal do více než miliardy počítačových klávesnic. V té době prezident společnosti Intel Luke J. Valenter uvedl, že mikrokontrolér je jedním z nejúspěšnějších produktů v historii společnosti, a rozšířil rozpočet divize mikrokontrolérů o více než 25%.

Většina mikrokontrolérů v této době měla souběžné varianty. Jeden měl paměť programu EPROM s průhledným křemenným okénkem ve víku obalu, které umožňovalo jeho vymazání vystavením ultrafialovému světlu. Tyto vymazatelné čipy byly často používány k prototypování. Druhá varianta byla buď maskou naprogramovaná ROM, nebo varianta PROM, která byla programovatelná pouze jednou. U posledně jmenovaného se někdy používalo označení OTP, což znamená „jednorázové programovatelné“. V mikrokontroléru OTP byl PROM obvykle stejného typu jako EPROM, ale balíček čipů neměl křemenné okno; protože neexistoval způsob, jak vystavit EPROM ultrafialovému světlu, nebylo možné jej vymazat. Protože vymazatelné verze vyžadovaly keramické obaly s křemennými okénky, byly výrazně dražší než verze OTP, které bylo možné vyrobit v levnějších neprůhledných plastových obalech. U vymazatelných variant byl pro jeho průhlednost vůči ultrafialovému světlu vyžadován křemen, místo levnějšího skla - pro které je sklo do značné míry neprůhledné - ale hlavním rozlišovacím faktorem nákladů byl samotný keramický obal.

V roce 1993 zavedení paměti EEPROM umožnilo rychle elektricky vymazat mikrokontroléry (počínaje Microchip PIC16C84 ) bez nákladného balíčku podle požadavků EPROM , což umožnilo jak rychlé prototypování, tak programování v systému . (Technologie EEPROM byla k dispozici již dříve, ale dřívější EEPROM byla dražší a méně odolná, takže nebyla vhodná pro nízkonákladové sériově vyráběné mikrokontroléry.) Ve stejném roce Atmel představil první mikrokontrolér využívající paměť Flash , speciální typ EEPROM. Ostatní společnosti rychle následovaly, s oběma typy paměti.

V současné době jsou mikrořadiče levné a snadno dostupné pro fandy, s velkými online komunitami kolem určitých procesorů.

Objem a náklady

V roce 2002 bylo asi 55% všech prodaných CPU na světě 8bitových mikrokontrolérů a mikroprocesorů.

V roce 1997 byly prodány více než dvě miliardy 8bitových mikrokontrolérů a podle společnosti Semico byly v roce 2006 prodány více než čtyři miliardy 8bitových mikrokontrolérů. V poslední době společnost Semico tvrdila, že trh MCU v roce 2010 vzrostl o 36,5% a v roce 2011 o 12%.

Typický domov ve vyspělé zemi pravděpodobně bude mít pouze čtyři univerzální mikroprocesory, ale kolem tří desítek mikrokontrolérů. Typický automobil střední třídy má asi 30 mikrokontrolérů. Lze je také nalézt v mnoha elektrických zařízeních, jako jsou pračky, mikrovlnné trouby a telefony.

Historicky na trhu MCU dominoval 8bitový segment [..] 16bitové mikrokontroléry se staly největší objemovou kategorií MCU v roce 2011 a poprvé v tomto roce předběhly 8bitová zařízení [..] IC Insights věří, že trh MCU projde v příštích pěti letech podstatnými změnami, protože 32bitová zařízení neustále získávají větší podíl prodejů a objemů jednotek. Očekává se, že do roku 2017 budou 32bitové MCU představovat 55% prodeje mikrokontrolérů [..] Pokud jde o objemy jednotek, očekává se, že 32bitové MCU budou v roce 2017 představovat 38% dodávek mikrokontrolérů, zatímco 16bitová zařízení budou představovat Předpovídá se, že 34% z celkového počtu a 4/8bitových návrhů bude 28% prodaných kusů v daném roce. Očekává se, že 32bitový trh MCU bude rychle růst v důsledku rostoucí poptávky po vyšších úrovních přesnosti v systémech vestavěného zpracování a růstu konektivity pomocí internetu. [..] Očekává se, že v příštích několika letech budou složité 32bitové MCU představovat více než 25% výpočetního výkonu ve vozidlech.

-  IC Insights, MCU Trh na migrační cestu k 32bitové a ARM-založené zařízení

Náklady na výrobu mohou být nižší než 0,10 USD za jednotku.

Náklady se časem propadly, přičemž nejlevnější 8bitové mikrokontroléry byly v roce 2018 k dispozici za méně než 0,03 USD a některé 32bitové mikrokontroléry kolem 1 USD za podobné množství.

V roce 2012, po globální krizi-dosud nejhorší roční pokles prodeje a oživení a průměrné prodejní ceny meziročně klesající o 17%-největší snížení od 80. let-byla průměrná cena za mikrokontrolér 0,88 USD (0,69 USD za 4–4 roky) /8bitový, 0,59 $ za 16bitový, 1,76 $ za 32bitový).

V roce 2012 se celosvětový prodej 8bitových mikrokontrolérů pohyboval kolem 4 miliard dolarů, zatímco u 4bitových mikrokontrolérů došlo také k značnému prodeji.

V roce 2015 bylo možné koupit 8bitové mikrokontroléry za 0,311 USD (1 000 jednotek), 16bitové za 0,385 USD (1 000 jednotek) a 32bitové za 0,378 USD (1 000 jednotek, ale za 0,35 USD za 5 000).

V roce 2018 lze 8bitové mikrořadiče koupit za 0,03 $, 16 bitů za 0,393 $ (1 000 jednotek, ale za 0,563 $ za 100 nebo 0,349 $ za plný kotouč 2 000) a 32bitové za 0,503 $ (1 000 jednotek, ale za 0,466 $ za 5 000). 32bitový mikrokontrolér s nižší cenou v jednotkách jednoho lze získat za 0,891 USD.

V roce 2018 jsou všechny levné mikrokontroléry výše z roku 2015 dražší (s inflací vypočítanou mezi cenami za tyto konkrétní jednotky mezi roky 2018 a 2015) za: 8bitový mikrokontrolér lze zakoupit za 0,319 USD (1 000 jednotek) nebo o 2,6% vyšší, 16bitový za 0,464 $ (1 000 jednotek) nebo o 21% vyšší a 32bitový za 0,503 $ (1 000 jednotek, ale za 0,466 $ za 5 000) nebo o 33% vyšší.

PIC 18F8720 mikrokontrolér v 80-pin TQFP balíčku

Nejmenší počítač

21. června 2018 byla Michiganskou univerzitou vyhlášena „nejmenší počítač na světě“ . Zařízení je „bezdrátový a bezbateriový senzorový systém 0,04 mm3 16nW s integrovaným procesorem Cortex-M0+ a optickou komunikací pro měření buněčné teploty“. Měří pouhých 0,3 mm na stranu - zakrnělé zrnkem rýže. [...] Kromě paměti RAM a fotovoltaiky mají nová výpočetní zařízení procesory a bezdrátové vysílače a přijímače . Protože jsou příliš malé na to, aby mohly mít konvenční rádiové antény, přijímají a vysílají data viditelným světlem. Základna poskytuje světlo pro napájení a programování a přijímá data. " Zařízení je 1/10 velikosti počítače, o kterém se dříve tvrdilo, že má světový rekord ve velikosti IBM z měsíců zpět v březnu 2018, což je „menší než zrnko soli“, má milion tranzistorů, výroba stojí méně než 0,10 $ a v kombinaci s technologií blockchain , je určen pro logistiku a „kryptokotvy“-aplikace digitálních otisků prstů .

Vestavěný design

Mikrokontrolér lze považovat za samostatný systém s procesorem, pamětí a periferiemi a lze jej použít jako vestavěný systém . Většina dnes používaných mikrokontrolérů je zabudována do jiných strojů, jako jsou automobily, telefony, spotřebiče a periferie pro počítačové systémy.

Zatímco některé vestavěné systémy jsou velmi propracované, mnohé mají minimální požadavky na paměť a délku programu, bez operačního systému a nízkou složitost softwaru. Mezi typická vstupní a výstupní zařízení patří spínače, relé , solenoidy , LED diody , malé nebo vlastní displeje z tekutých krystalů , radiofrekvenční zařízení a senzory pro data, jako je teplota, vlhkost, úroveň světla atd. Integrované systémy obvykle nemají klávesnici, obrazovku , disky, tiskárny nebo jiná rozpoznatelná I/O zařízení osobního počítače a může jim chybět jakékoli zařízení pro lidskou interakci.

Přerušení

Mikrokontroléry musí poskytovat reakce v reálném čase (předvídatelné, i když ne nutně rychlé) na události ve vestavěném systému, který ovládají. Když dojde k určitým událostem, systém přerušení může signalizovat procesoru, aby pozastavil zpracování aktuální sekvence instrukcí a zahájil rutinní službu přerušení (ISR nebo „obsluha přerušení“), která provede jakékoli požadované zpracování na základě zdroje přerušení před návrat do původní instrukční sekvence. Možné zdroje přerušení jsou závislé na zařízení a často zahrnují události, jako je přetečení interního časovače, dokončení převodu analogového signálu na digitální, změna logické úrovně na vstupu, například stisknutím tlačítka, a data přijatá na komunikačním spojení. Tam, kde je spotřeba energie důležitá jako u bateriových zařízení, mohou přerušení také probudit mikrokontrolér ze stavu spánku s nízkou spotřebou energie, kde je procesor zastaven, dokud není vyžadováno něco provést periferní událostí.

Programy

Programy mikrořadiče se obvykle musí vejít do dostupné paměti na čipu, protože poskytnout systém s externí rozšiřitelnou pamětí by bylo nákladné. Kompilátory a assemblery se používají k převodu kódů na vysoké úrovni i v jazycích sestavení na kompaktní strojový kód pro uložení do paměti mikrořadiče. V závislosti na zařízení může být programová paměť trvalá, pouze pro čtení, kterou lze naprogramovat pouze z výrobního závodu, nebo to může být flash nebo vyměnitelná paměť pouze pro čtení.

Výrobci často vyráběli speciální verze svých mikrořadičů, aby pomohli vývoji hardwaru a softwaru cílového systému. Původně to zahrnovalo verze EPROM, které mají v horní části zařízení „okno“, přes které lze vymazat paměť programu ultrafialovým světlem, připravené k přeprogramování po programovacím („vypalovacím“) a testovacím cyklu. Od roku 1998 jsou verze EPROM vzácné a byly nahrazeny EEPROM a flash, které se snadněji používají (lze je elektronicky vymazat) a jejich výroba je levnější.

Jiné verze mohou být k dispozici tam, kde je k ROM přistupováno jako k externímu zařízení, nikoli jako k interní paměti, ale vzhledem k široké dostupnosti levných programátorů mikrokontrolérů jsou stále vzácnější.

Použití zařízení programovatelných v terénu na mikrořadiči může umožnit aktualizaci firmwaru v terénu nebo pozdní revize z výroby u produktů, které byly sestaveny, ale ještě nebyly dodány. Programovatelná paměť také zkracuje dobu potřebnou k nasazení nového produktu.

Tam, kde jsou požadovány stovky tisíc identických zařízení, může být použití dílů naprogramovaných v době výroby ekonomické. Tyto části „ naprogramované maskou “ mají program stanoven stejným způsobem jako logika čipu, současně.

Přizpůsobený mikrořadič obsahuje blok digitální logiky, který lze přizpůsobit pro další možnosti zpracování, periferie a rozhraní, která jsou přizpůsobena požadavkům aplikace. Jedním z příkladů je AT91CAP od společnosti Atmel .

Další funkce mikrokontroléru

Mikrokontroléry obvykle obsahují několik až desítek univerzálních vstupně/výstupních pinů ( GPIO ). Piny GPIO jsou softwarově konfigurovatelné na stav vstupu nebo výstupu. Když jsou piny GPIO konfigurovány do vstupního stavu, často se používají ke čtení senzorů nebo externích signálů. Konfigurovány do výstupního stavu, GPIO piny mohou pohánět externí zařízení, jako jsou LED nebo motory, často nepřímo, prostřednictvím externí výkonové elektroniky.

Mnoho vestavěných systémů potřebuje číst senzory, které produkují analogové signály. K tomu slouží převodník analogového signálu na digitální (ADC). Protože jsou procesory postaveny tak, aby interpretovaly a zpracovávaly digitální data, tj. 1 s a 0 s, nejsou schopni dělat nic s analogovými signály, které do něj mohou být vysílány zařízením. Analogově digitální převodník se tedy používá k převodu příchozích dat do formy, kterou procesor dokáže rozpoznat. Méně obvyklou funkcí u některých mikrokontrolérů je převodník digitálního signálu na analogový (DAC), který umožňuje procesoru vydávat analogové signály nebo úrovně napětí.

Kromě převodníků obsahuje mnoho vestavěných mikroprocesorů také řadu časovačů. Jedním z nejběžnějších typů časovačů je programovatelný intervalový časovač (PIT). PIT může buď odpočítávat od nějaké hodnoty k nule, nebo až do kapacity počítajícího registru, přetékat na nulu. Jakmile dosáhne nuly, odešle procesoru přerušení, které indikuje, že počítání dokončilo. To je užitečné u zařízení, jako jsou termostaty, které pravidelně testují teplotu kolem sebe, aby zjistili, zda je třeba zapnout klimatizaci, topení atd.

Vyhrazený blok PWM (Module Pulse Width Modulation ) umožňuje CPU řídit měniče výkonu , odporové zátěže, motory atd., Aniž by využívalo mnoho zdrojů CPU v těsných časovacích smyčkách .

Univerzální asynchronní přijímač / vysílač (UART) blok umožňuje příjem a vysílání dat přes sériovou linku s velmi malým zatížením procesoru. Dedikovaný hardware na čipu také často obsahuje možnosti komunikace s jinými zařízeními (čipy) v digitálních formátech, jako je Inter-Integrated Circuit ( I²C ), Serial Peripheral Interface ( SPI ), Universal Serial Bus ( USB ) a Ethernet .

Vyšší integrace

Die of a PIC12C508 8 -bit, fully static, EEPROM / EPROM / ROM -based CMOS microcontroller made by Microchip Technology using a 1200 nanometry process

Mikroprocesory nemusí implementovat externí adresu nebo datovou sběrnici, protože integrují RAM a energeticky nezávislou paměť na stejném čipu jako CPU. Pomocí menšího počtu pinů lze čip umístit do mnohem menšího, levnějšího balení.

Integrace paměti a dalších periferií na jeden čip a jejich testování jako jednotky zvyšuje náklady na tento čip, ale často vede ke snížení čistých nákladů na vestavěný systém jako celek. I když jsou náklady na procesor s integrovanými periferiemi o něco vyšší než náklady na CPU a externí periferie, mít méně čipů obvykle umožňuje menší a levnější desku s obvody a snižuje pracnost potřebnou k sestavení a testování desky s plošnými spoji v kromě tendence ke snížení míry defektů u hotové sestavy.

Mikroprocesor je jediný integrovaný obvod , obvykle s následujícími funkcemi:

Tato integrace drasticky snižuje počet čipů a množství kabeláže a prostoru na desce s obvody, které by byly potřebné k výrobě ekvivalentních systémů využívajících samostatné čipy. Kromě toho, zejména na zařízeních s nízkým počtem pinů, každý pin může být propojen s několika interními periferiemi, přičemž funkce pinů je zvolena softwarem. To umožňuje použití součásti v širším spektru aplikací, než kdyby piny měly vyhrazené funkce.

Mikroprocesory se ukázaly být velmi populární ve vestavěných systémech od jejich zavedení v 70. letech minulého století.

Některé mikrokontroléry používají Harvardskou architekturu : oddělené paměťové sběrnice pro instrukce a data, což umožňuje souběžný přístup. Tam, kde je použita harvardská architektura, mohou mít instrukční slova pro procesor jinou bitovou velikost, než je délka vnitřní paměti a registrů; například: 12bitové instrukce používané s 8bitovými datovými registry.

Rozhodnutí, kterou periferii integrovat, je často obtížné. Prodejci mikrokontrolérů často obchodují s provozními frekvencemi a flexibilitou návrhu systému s ohledem na požadavky svých zákazníků na uvedení na trh a celkově nižší náklady na systém. Výrobci musí vyvážit potřebu minimalizace velikosti čipu vůči dalším funkcím.

Architektury mikrokontrolérů se velmi liší. Některá provedení obsahují univerzální mikroprocesorová jádra s jednou nebo více funkcemi ROM, RAM nebo I/O integrovanými v balíčku. Další provedení jsou určena pro řídicí aplikace. Sada instrukcí pro mikrořadič má obvykle mnoho instrukcí určených pro bitovou manipulaci (bitové operace), aby byly řídicí programy kompaktnější. Například procesor pro obecné účely může vyžadovat několik instrukcí k otestování bitu v registru a větvi, pokud je bit nastaven, kde by mikrořadič mohl mít jedinou instrukci k zajištění této běžně požadované funkce.

Mikrokontroléry tradičně nemají matematický koprocesor , takže aritmetiku s pohyblivou řádovou čárkou provádí software. Některé nedávné návrhy však obsahují funkce optimalizované pro FPU a DSP. Příkladem může být řada založená na Microchip PIC32 MIPS.

Programovací prostředí

Mikrokontroléry byly původně programovány pouze v jazyce sestavení , ale k cílení mikrokontrolérů a vestavěných systémů se nyní běžně používají také různé programovací jazyky na vysoké úrovni , jako je C , Python a JavaScript . Kompilátory pro jazyky obecného určení budou mít obvykle určitá omezení a také vylepšení, aby lépe podporovaly jedinečné vlastnosti mikrokontrolérů. Některé mikrokontroléry mají prostředí, která pomáhají vyvíjet určité typy aplikací. Prodejci mikrokontrolérů často volně zpřístupňují nástroje, které usnadňují přijetí jejich hardwaru.

Mikrokontroléry se speciálním hardwarem mohou vyžadovat vlastní nestandardní dialekty C, jako je SDCC pro 8051 , které brání používání standardních nástrojů (například knihoven kódů nebo nástrojů pro statickou analýzu) i pro kód nesouvisející s hardwarovými funkcemi. Tlumočníci mohou také obsahovat nestandardní znaky, jako jsou například MicroPython , když vidlička, CircuitPython , snažily přesunout hardwarové závislostem na knihovnách a mají jazykovou dodržovat více CPython standardu.

U některých mikrokontrolérů je k dispozici také firmware tlumočníka. Například BASIC na raných mikrokontrolérech Intel 8052 ; ZÁKLADNÍ a FORTH na Zilogu Z8 a některých moderních zařízeních. Tyto tlumočníky obvykle podporují interaktivní programování .

U některých mikrokontrolérů jsou k dispozici simulátory . Ty umožňují vývojáři analyzovat, jaké by mělo být chování mikrokontroléru a jeho programu, pokud by používali skutečnou část. Simulátor ukáže vnitřní stav procesoru a také to, že z výstupů, stejně jako umožňuje vstupní signály, které mají být generovány. Zatímco na jedné straně bude většina simulátorů omezena tím, že nebudou schopny simulovat mnohem jiný hardware v systému, mohou vykonávat podmínky, které by jinak bylo obtížné fyzicky libovolně reprodukovat ve fyzické implementaci, a může to být nejrychlejší způsob ladění a analýzy problémy.

Nedávné mikrokontroléry jsou často integrovány s ladicími obvody na čipu, které při přístupu k emulátoru obvodu (ICE) přes JTAG umožňují ladění firmwaru pomocí debuggeru . ICE v reálném čase může umožňovat prohlížení a/nebo manipulaci s vnitřními stavy za běhu. Trasovací ICE může zaznamenávat spuštěné programy a stavy MCU před/za spouštěcím bodem.

Typy

Od roku 2008 existuje několik desítek architektur a dodavatelů mikrokontrolérů, včetně:

  • Základní procesory ARM (mnoho prodejců)
    • Jádra
    ARM Cortex-M jsou specificky zaměřena na aplikace mikrokontrolérů
  • Technologie Microchip Atmel AVR (8bitový), AVR32 (32bitový) a AT91SAM (32bitový)
  • Jádro M8C společnosti Cypress Semiconductor použité v jejich PSoC (Programmable System-on-Chip)
  • Freescale ColdFire (32bitový) a S08 (8bitový)
  • Freescale 68HC11 (8bitový) a další založené na rodině Motorola 6800
  • Intel 8051 , vyráběný také společnostmi NXP Semiconductors , Infineon a mnoha dalšími
  • Infineon : 8bitové XC800 , 16bitové XE166 , 32bitové XMC4000 (Cortex M4F na bázi ARM), 32bitové mikroprocesory TriCore a 32bitové Aurix Tricore Bit
  • Maxim Integrated MAX32600, MAX32620, MAX32625, MAX32630, MAX32650, MAX32640
  • MIPS
  • Technologie Microchip PIC , (8bitový PIC16, PIC18, 16bitový dsPIC33 / PIC24), (32bitový PIC32)
  • Polovodiče NXP LPC1000, LPC2000, LPC3000, LPC4000 (32bitové), LPC900, LPC700 (8bitové)
  • Vrtule paralaxy
  • PowerPC ISE
  • Rabbit 2000 (8bitový)
  • Renesas Electronics : 16bitový MCU RL78 ; RX 32bitový MCU ; SuperH ; 32bitový MCU V850 ; H8 ; 16bitový MCU R8C
  • Silicon Laboratories Pipelined 8bitové mikrokontroléry 8051 a 32bitové mikrokontroléry na bázi ARM se smíšeným signálem
  • STMicroelectronics STM8 (8bitový), ST10 (16bitový), STM32 (32bitový), SPC5 (automobilový 32bitový)
  • Texas Instruments TI MSP430 (16-bit), MSP432 (32-bit), C2000 (32-bit)
  • Toshiba TLCS-870 (8bitový/16bitový)
  • Existuje mnoho dalších, z nichž některé se používají ve velmi úzkém spektru aplikací nebo se více podobají aplikačním procesorům než mikrokontrolérům. Trh s mikrokontroléry je extrémně roztříštěný, s mnoha prodejci, technologiemi a trhy. Všimněte si toho, že mnoho prodejců prodává nebo prodalo více architektur.

    Přerušení latence

    Na rozdíl od počítačů pro všeobecné použití se mikrokontroléry používané ve vestavěných systémech často snaží optimalizovat latenci přerušení nad propustností instrukcí. Mezi problémy patří snížení latence a zvýšení předvídatelnosti (podpora ovládání v reálném čase).

    Když elektronické zařízení způsobí přerušení, během přepnutí kontextu musí být uloženy mezivýsledky (registry), než se může spustit software zodpovědný za zpracování přerušení. Musí být také obnoveny po dokončení obsluhy přerušení . Pokud existuje více registrů procesorů , může tento proces ukládání a obnovy trvat déle a prodloužit latenci. (Pokud ISR nevyžaduje použití některých registrů, může je jednoduše nechat na pokoji, než je ukládat a obnovovat, takže v takovém případě se tyto registry netýkají latence.) Způsoby, jak snížit takovou latenci kontextu/obnovy, zahrnují relativně málo registrů v jejich centrálních procesorových jednotkách (nežádoucí, protože to podstatně zpomaluje většinu nepřerušovaného zpracování), nebo alespoň to, že je hardware neuloží všechny (to se nezdaří, pokud software poté potřebuje kompenzovat uložením zbytku „ručně“) . Další technika zahrnuje utrácení křemíkových bran na „stínové registry“: Jeden nebo více duplicitních registrů používaných pouze přerušovacím softwarem, možná podporujících vyhrazený zásobník.

    Mezi další faktory ovlivňující latenci přerušení patří:

    • Cykly potřebné k dokončení aktuálních aktivit CPU. Aby se minimalizovaly tyto náklady, mají mikrokontroléry obvykle krátké kanály (často tři instrukce nebo méně), malé vyrovnávací paměti pro zápis a zajišťují, aby delší instrukce byly spojitelné nebo restartovatelné. Zásady návrhu RISC zajišťují, že většina instrukcí má stejný počet cyklů, což pomáhá vyhnout se potřebě většiny takové logiky pokračování/restartu.
    • Délka jakékoli kritické sekce, kterou je třeba přerušit. Vstup do kritické sekce omezuje přístup k souběžné datové struktuře. Když k datové struktuře musí přistupovat obsluha přerušení, kritická sekce musí toto přerušení zablokovat. Latence přerušení se tedy prodlužuje o jak dlouho je přerušení blokováno. Když existují silná externí omezení latence systému, vývojáři často potřebují nástroje pro měření latence přerušení a sledování, které kritické sekce způsobují zpomalení.
      • Jedna běžná technika blokuje všechna přerušení po dobu kritické sekce. To se snadno implementuje, ale někdy se kritické sekce nepříjemně prodlužují.
      • Složitější technika pouze blokuje přerušení, která mohou spustit přístup k této datové struktuře. To je často založeno na prioritách přerušení, které obvykle neodpovídají odpovídajícím strukturám dat systému. V souladu s tím se tato technika používá většinou ve velmi omezených prostředích.
      • Procesory mohou mít hardwarovou podporu pro některé kritické sekce. Jako příklady lze uvést podpůrnou atomové přístup k bitů nebo bajtů v rámci slovo nebo jiné atomové přístup primitiva jako v LDREX / STREX exkluzivní přístup primitiv zavedených v ARMv6 architektury.
    • Přerušte vnoření. Některé mikrokontroléry umožňují přerušení s vyšší prioritou přerušit ty s nižší prioritou. To umožňuje softwaru spravovat latenci tím, že časově kritickým přerušením bude přidělena vyšší priorita (a tedy nižší a předvídatelnější latence) než méně kritickým.
    • Spouštěcí rychlost. Když dojde k přerušení zády k sobě, mohou se mikrokontroléry vyhnout dalšímu cyklu ukládání/obnovy kontextu formou optimalizace ocasního volání .

    Mikrokontroléry nižší třídy obvykle podporují méně řízení latence přerušení než ty vyšší.

    Technologie paměti

    U mikrokontrolérů se běžně používají dva různé druhy paměti, energeticky nezávislá paměť pro ukládání firmwaru a paměť pro čtení a zápis pro dočasná data.

    Data

    Od nejranějších mikrokontrolérů po současnost se jako pracovní paměť pro čtení/zápis téměř vždy používá šestistranový SRAM, přičemž v souboru registru je použito několik dalších tranzistorů na bit .

    Kromě SRAM mají některé mikrokontroléry také interní EEPROM pro ukládání dat; a dokonce i ty, které nemají žádný (nebo nestačí), jsou často připojeny k externímu sériovému čipu EEPROM (například BASIC Stamp ) nebo externímu sériovému flash paměťovému čipu.

    Několik mikrokontrolérů počínaje rokem 2003 má „samoprogramovatelnou“ flash paměť.

    Firmware

    Nejrannější mikrokontroléry používaly k ukládání firmwaru masku ROM. Pozdější mikrokontroléry (jako rané verze Freescale 68HC11 a rané mikrokontroléry PIC ) měly paměť EPROM , která používala průsvitné okénko umožňující vymazání pomocí UV světla, zatímco produkční verze takové okno neměly, přičemž šlo o OTP (jednorázově programovatelné) . Aktualizace firmwaru byly ekvivalentní výměně samotného mikrokontroléru, takže mnoho produktů nebylo možné upgradovat.

    Motorola MC68HC805 byl první mikrokontrolér, který k ukládání firmwaru používal EEPROM . Mikroprocesory EEPROM se staly populárnějšími v roce 1993, kdy Microchip představil PIC16C84 a Atmel představil 8051jádrový mikrokontrolér, který jako první používal paměť NOR Flash k ukládání firmwaru. Dnešní mikrokontroléry téměř výhradně používají flash paměť, několik modelů používá FRAM a některé ultra levné součásti stále používají OTP nebo Mask-ROM.

    Viz také

    Reference

    externí odkazy