Nástup popularity 32bitových mikrokontrolérů (MCU) v komunitě vestavných zařízení není překvapením. Tato funkčně bohatá zařízení vyhovují celé řadě různých aplikací, což vysvětluje, proč si je mnoho vývojářů vestavných systémů vybírá pro své další návrhy. Konstruktéři si uvědomují, že tato komplexní zařízení nabízejí vše, co potřebují, pokud jde o hrubý výpočetní výkon, bohatou sadu periferií a snadný přístup k široké škále vývojových nástrojů a knihoven.
Mnoho z těchto 32bitových zařízení je založeno na velmi úspěšných jádrech ARM. Vývojáři tak mají jistotu, že mají přístup k zařízením s druhým zdrojem a že na trhu je k dispozici rozsáhlá sada vývojových, testovacích a validačních nástrojů.
Při bližším pohledu na nedávné trendy na trhu MCU však zjistíme, že 32bitová zařízení nejsou jediná, která zažívají silný růst (tabulka 1). Prudce rostoucí trh s 8bitovými MCU se může pochlubit složeným tempem růstu (6,4 %), které se blíží tempu růstu 32bitových zařízení (6,9 %). Ostatní průmysloví analytici předpovídají pro 8bitové a 32bitové mikrokontroléry stejnou míru růstu.
Vzestup 8bitových zařízení jasně zdůrazňuje, že musí existovat nějaké pádné důvody pro použití 8bitového zařízení namísto 32bitového MCU. Tento článek se snaží objasnit, proč si 8bitová zařízení udržují podíl na trhu.
Zásadní rozdíly
Zásadní rozdíly mezi 8bitovými a 32bitovými MCU jsou struktura nákladů a ceny, výkon procesoru, snadnost použití, účinnost hardwaru v blízkosti funkcí a statická spotřeba energie. Když se vývojáři pouštějí do nového návrhu, musí pečlivě rozčlenit požadavky na MCU na základě množství požadovaných výpočetních schopností, míry potřebného propojení a u návrhů napájených z baterií také na základě veledůležitých profilů spotřeby energie. Není pochyb o tom, že 32bitový MCU poskytuje vyšší výkon než 8bitové zařízení, ale inženýr stojí před tradičním rozhodnutím volit mezi nejlepším dostupným zařízením na trhu a skutečnými potřebami aplikace.
Tato rozhodnutí samozřejmě výrazně ovlivní pravděpodobné náklady na kusovník (BOM). Při nižším počtu hradel bude méně složité 8bitové zařízení jistě levnější než 32bitové. Při porovnání 8bitových a 32bitových MCU od předních výrobců, z nichž každý má podobné množství paměti flash, vývody atd. stojí 8bitová zařízení obvykle asi o 20 % méně. To je však pouze první z mnoha úvah. Další aspekt se týká snadnosti nastavení pro nový vývoj.
Snadnost vývoje
Dodavatelé MCU mají tendenci přidávat do svých 32bitových zařízení více funkcí a vlastností na rozdíl od 8bitových produktů. V důsledku toho se u složitějšího zařízení objevuje mnohem více úvah o nastavení. Zatímco některé 32bitové MCU mohou pracovat s omezeným nastavením podobným nastavení 8bitového zařízení, nejste schopni využít další funkce výkonnějšího zařízení.
Stáhněte si tento článek v .PDF Tento typ souboru obsahuje grafiku ve vysokém rozlišení a případně schémata. |
Například typické 32bitové zařízení ARM bude mít nezávislé nastavení hodin pro samotné jádro, sběrnici AHB, sběrnici APBA a sběrnici APBB. Všechny mohou být nastaveny na různé frekvence. Obvykle také budete muset přepnout na hodiny, které chcete používat, protože se nastavují softwarově, nikoli hardwarově jako u většiny 8bitových součástek. Změna hodin navíc znamená, že musíte nastavit čekací stavy pro paměť flash, případně je předurčuje naměřené napětí VCC.
Takové nastavení však může být u 8bitového MCU mnohem jednodušší. Například produkty tinyAVR a megaAVR společnosti Atmel vyžadují před kódováním aplikace pouze inicializaci ukazatele zásobníku, která obvykle zabere čtyři řádky kódu. Volba hodin, detektoru výpadku, funkce resetovacího pinu atd. je v zařízení předem naprogramována.
Architektura je také mnohem jednodušší než u 32bitového zařízení s vnitřními registry, periferiemi a pamětí SRAM, které jsou mapovány na stejné datové sběrnici. Periferie a CPU by normálně běžely na stejné frekvenci, takže není nutná žádná konfigurace periferní sběrnice. Navíc se konstruktéři mohou vyhnout obavám z latence při synchronizaci mezi různými hodinovými doménami.
Výkon
Pokud jde o požadovaný výkon procesoru, měl by inženýr zvážit všechny případy použití. Skutečnost je taková, že mnoho vestavných návrhů nemá vysoké požadavky na výpočetní výkon. Často je vyžadována jen velmi malá manipulace s daty, takže rozhodující se stává vyvážení těchto potřeb s požadavky na spotřebu energie a rozhraní periferií.
Například jednoduchá aplikace termostatu stráví většinu svého života v režimu spánku. Jednou za čas se probudí, změří teplotu a pak rozhodne o zapnutí/vypnutí relé nebo vyšle pokyn hostitelskému řadiči. Poté se vrátí do režimu spánku. Požadavky na výpočetní výkon a rozhraní této aplikace jsou malé, ale podobný profil použití má i mnoho dalších aplikací, jako jsou požární hlásiče, elektrické nářadí, průtokoměry a ovládání spotřebičů.
Efektivita hardwarových funkcí blízkých procesoru
Mnoho moderních mikrokontrolérů obsahuje některé hardwarové funkce, které slouží k co nejefektivnějšímu provozu procesoru. V případě společnosti Atmel jsou obě rodiny MCU založené na 8bitovém AVR a 32bitovém ARM vybaveny systémem periferních událostí. Systém událostí je soubor hardwarových funkcí, které umožňují interakci periferií bez zásahu CPU. Umožňuje periferiím posílat signály přímo jiným periferiím, což zajišťuje krátkou a 100% předvídatelnou dobu odezvy.
Při plném využití možností systému událostí lze čip nakonfigurovat tak, aby prováděl složité operace s velmi malým zásahem CPU, což šetří cennou paměť programu i čas provádění. V případě detekce hardwarové události je důležité nejprve detekovat událost a poté přepnout řízení na požadovanou rutinu obsluhy přerušení (ISR).
V těchto situacích není rychlost procesoru jediným rozhodujícím faktorem. Jde o to, jak dlouho z hlediska cyklů trvá reakce na přerušení, spuštění ISR a návrat. Jak ukáže následující příklad, 8bitová zařízení mohou být při zpracování hardwarových akcí v blízkosti efektivnější.
Přemýšlejte o přijetí jednoho bajtu na SPI, použití přerušení k jeho detekci a následném spuštění jednoduché rutiny ISR pro přečtení bajtu z periferie SPI a jeho uložení do paměti SRAM. Na základě tohoto scénáře je v tabulce 2 uvedeno srovnání mezi 8bitovým zařízením Atmel AVR a 32bitovým MCU založeným na Atmel ARM Cortex M0+. Výsledky jsou vypočteny na základě dostupných informací a vycházejí z minimálních implementací. Inženýři by si to však měli ověřit u svých vlastních aplikací, protože detekce přerušení a návrat z přerušení může trvat více cyklů, než je uvedeno v tabulce. Potřeba 12 cyklů oproti 33 cyklům se rovná teoretické maximální šířce pásma SPI 1,67 MB/s pro 8bitový procesor a šířce pásma 606 kB/s pro 32bitový procesor při běhu na 20 MHz.
Stupeň numerického zpracování může mít také vliv na zásobník a potřebnou paměť. Použití Fibonacciho algoritmu je jednou z obzvláště dobrých metod pro testování paměťových nároků. Vzhledem k tomu, že používá pouze lokální proměnnou, je třeba vše přesunout na zásobník.
Při porovnání 8bitového AVR a 32bitového zařízení na bázi ARM CM0+ a použití rekurzivního 15stupňového Fibonacciho algoritmu využívá AVR celkem 70 bajtů zásobníku, včetně 30 bajtů pro návratový zásobník (15 volání do hloubky). Zařízení na bázi ARM používá 192 bajtů (60 by měl tvořit návratový zásobník). To znamená, že CSTACK je více než třikrát větší než 8bitové řešení. V typickém kódu jazyka C je často více proměnných na zásobníku v zabaleném formátu, takže se jedná o extrémní roh. Nicméně tvrzení, že pro stejnou 8bitovou aplikaci na 32bitovém (oproti nativnímu 8bitovému) zařízení je potřeba 1,5 až 3krát více paměti SRAM, je spravedlivý odhad.
Spotřeba energie
Žádný článek o MCU by nebyl úplný bez zkoumání statické spotřeby energie. Ta sama o sobě může být klíčovým faktorem při rozhodování mezi 8bitovým nebo 32bitovým zařízením, zejména pro aplikace napájené z baterie. Tabulka 3 ilustruje rozdíly ve spotřebě energie mezi 8 a 32bitovými zařízeními v aktivním i statickém režimu.
Agresivní výrobní technologie zvyšují svodový proud tranzistorů, který se s každou generací procesu zhruba zdvojnásobuje a je úměrný počtu hradel. Únikový proud se exponenciálně zvyšuje při vyšších teplotách, což lze při návrhu spotřebního designu snadno přehlédnout. Mobilní telefony a osobní multimediální přehrávače se přenášejí všude, a jak jsme všichni zjistili, teploty zažívané v létě uvnitř automobilu se mohou snadno vyšplhat nad 40 °C.
Počet času, který mikrokontrolér stráví v aktivním režimu oproti statickému režimu, významně přispívá k celkovému rozpočtu spotřeby aplikace.
Přirozeně se poměr mezi aktivním a statickým režimem bude lišit v závislosti na požadavcích aplikace. Vezmeme-li opět předchozí příklad přerušení SPI (tabulka 2) a předpokládáme-li šířku datového pásma SPI 80 kb/s, stráví 8bitový procesor v aktivním režimu 1,2 % svého času ve srovnání s 32bitovým, který v aktivním režimu stráví 3,3 % (tabulka 4).
Závěr
Přemýšlení o tom, zda pro budoucí návrh použít 8bitový nebo 32bitový mikrokontrolér, může zahrnovat aplikaci internetu věcí (IoT). To, jak se internet věcí skutečně utváří, vyvolává spoustu diskusí, ale jistě bude pro inženýry výzvou k podrobnému posouzení požadavku na MCU. Nezbytnou součástí bude také bezdrátové připojení, zejména ZigBee, ale to automaticky neznamená, že bude potřebovat zařízení s vyšším výkonem.
Stáhnout tento článek v .PDF Tento typ souboru obsahuje grafiku ve vysokém rozlišení a případně schémata. |
Řada dostupných 8bitových mikrokontrolérů uspokojí potřebu nízké úrovně zpracování a bezdrátového připojení. Jedním z takových příkladů je řada Atmel ATmegaRFR2, která poskytuje jednočipové řešení bezdrátového mikrokontroléru kompatibilního s IEEE 802.15.4 a pracujícího v pásmu 2,4 GHz, které se hodí pro nízkonákladové projekty internetu věcí napájené z baterií.
Ingar Fredriksen, marketingový ředitel společnosti Atmel pro oblast MCU v regionu EMEA, sídlí v norském Trondheimu. Získal bakalářský titul v oboru elektrotechniky na Trodheim University College.
Paal Kastnes personální inženýr v týmu MCU Applications, který se specializuje na školení zaměstnanců a zákazníků společnosti Atmel v používání mikrokontrolérů a nástrojů Atmel, sídlí rovněž v Trondheimu. Získal bakalářský titul v oboru elektrotechniky na Univerzitní vysoké škole v Trondheimu.