Jste zde

Ze souboje MCU versus MPU vychází vítězně Atmel. Nabídne obojí

V textu proti sobě stanou mikrokontroléry a mikroprocesory. Obě strany jsou v něčem lepší a jinde zase pokulhávají. Rozhodně však mají co nabídnout. Článek nezná poražené, těmi se tak staneme maximálně my sami, pokud se nedokážeme správně rozhodnout.
Volba správné součástky, na které založíme svůj nový návrh, může vzbuzovat obavy. A není se ani čemu divit, když nalezení kompromisu – rovnováhy mezi cenou, výkonem a proudovým odběrem celého systému – mívá dalekosáhlý dopad. V prvé řadě se pochopitelně zaměříme na vhodné předpoklady samotné technologie, nicméně stane – li se naše součástka základem určité platformy pro celou řadu nových produktů, bude nás její volba nepochybně provázet ještě hodně dlouho. Ať již v kladném či záporném slova smyslu a bez ohledu na to, zda své řešení vystavíme na mikrokontroléru (MCU) či mikroprocesoru (MPU), které dnes necháme utkat se mezi řádky.
 
 
Pojďme se tedy nejdříve věnovat některým z hlavních rozdílů mezi MCU a MPU. K ukládání a vykonávání svého programu MCU obvykle využívají vestavěnou (tzv. on-chip) paměť Flash. Takový způsob uložení programu znamená velmi rychlé spuštění včetně následného běhu. Jediné praktické omezení použití embedded paměti pak spočívá v konečné velikosti celkově dostupného prostoru. Většina nabízených obvodů Flash MCU bude mít maximum v podobě paměti programu 2 Mbyte, což se již v závislosti na konkrétní aplikaci může prokázat jako limitující faktor. To však u MPU, které k ukládání programu a dat využívají externí paměť, již z principu nehrozí. Program se zde bude zpravidla nacházet v non – volatilní paměti typu NAND či sériové Flash, kdy je po zapnutí natažen do vnější DRAM a teprve pak můžeme „začít“. MPU se nám tedy nerozběhnou tak rychle jako v případě MCU, nicméně velikost DRAM a také NVM, které zde můžeme k procesoru připojit, bude v řádu stovek Mbyte a dokonce i Gbyte (NAND). Další rozdíl pak bude spočívat v napájení. Zatímco v případě MCU a jejich vlastního zdroje napájení si můžeme vystačit jen s jedinou napájecí hladinou, u MPU přichází na scénu hned několik různých napěťových úrovní pro jádro, DDR a tak dále. Vývojář se tak na desce plošného spoje pravděpodobně neobejde bez dalších integrovaných obvodů pro napájení, měničů apod.
 
Atmel nabídne mikrokontroléry pro každou aplikaci
 
Z pohledu připravované aplikace pak mohou vybrané požadavky „promlouvat“ do výběru součástky docela konkrétním způsobem. Tak třeba, bude počet vyžadovaných kanálů periferního rozhraní větší než jsme schopni s daným MCU zajistit? Nebo sjednalo si marketingové oddělení uživatelské rozhraní, které z důvodu nedostatečné velikosti paměti na čipu, příp. nedostatečného výkonu MCU, nejsme schopni realizovat? Začínáme – li tedy s vývojem a máme přitom všechny tyto otázky na mysli, dostaneme pravděpodobně ve výsledku hned několik různých variant produktu. V takovém případě zřejmě upřednostníme návrh odvíjející se od určité platformy, která by poskytla větší prostor v otázce budoucího přizpůsobení výkonu nebo též možností využitelných rozhraní.
 
Dlouhodobé partnerství s ARM přináší své výsledky
 
Atributem, který se nestanovuje zas až tak jednoduše, se stává požadovaný výkon pro zpracování. Při vyčíslení se zde budeme setkávat s vyjádřením v Dhrystone MIPS (DMIPS). Mikrokontrolér založený na ARM Cortex-M4, např. MCU SAM4 od Atmelu, tak třeba ohodnotíme 150 DMIPS, zatímco aplikační procesor (MPU) ARM Cortex-A5, např. SAMA5D3 od stejného výrobce, zajistí až 850 DMIPS. Jedním ze způsobů jak stanovit požadované DMIPS je poohlédnout se po těch částech aplikace, které budou z hlediska výkonu nejnáročnější. Běh plného operačního systému (OS), např. Linuxu, Androidu či Windows CE, by pro naši aplikaci mohl znamenat přinejmenším 300 – 400 DMIPS. V řadě případů si však můžeme vystačit i s nekomplikovaným RTOS, kdy 50 DMIPS bude více než dostačujících. S nasazením RTOS se dále pojí též požadavek na docela málo paměťového prostoru (kernel typ. jen několik kB). Plné operační systémy si pak, a naneštěstí, budou žádat jednotku MMU (Memory Management Unit), čímž zase přesněji vymezujeme použitelný typ procesorového jádra. Na procesor přitom klademe větší požadavky. Z hlediska našeho srovnání zde bude platit přímá úměra: čím více bude aplikace založena na numerických výpočtech, tím pravděpodobnější by též mělo být nasazení MPU, to vše v kontextu požadavků OS a dalších úloh (komunikace, řízení).
 
Mikrokontroléry ARM Cortex-M3 SAM3N nabídnou 16 až 256 KB Flash
 
Ať již naši aplikaci řadíme mezi spotřební elektroniku nebo průmyslovou automatizaci, rozhodně nesmíme opomenout ani nezbytné uživatelské rozhraní, tzv. UI. Barevná, intuitivně řešená grafická rozhraní se prostě líbí a stranou přitom nezůstává ani průmyslový sektor se svými řídicími panely pro obsluhu. V úvahu však musíme vzít hned několik faktorů. A začínáme opět u požadované výkonnosti – v případě UI library, např. Qt (Linux), bychom mohli vystačit s 80 – 100 DMIPS. Hned poté však musíme zmínit složitost celého řešení. Více animací, nejrůznějších efektů či multimediálního obsahu bude pochopitelně znamenat též více změn k zobrazení a tudíž i větší požadavky na samotné zpracování a také paměť. Zmíněné požadavky budou samozřejmě dále narůstat s vyžadovaným rozlišením, takže v případech, kdy se uživatelské rozhraní stává středem zájmu všech zúčastněných stran, dáme pravděpodobně prostor právě MPU. Na druhé straně takové jednodušší uživatelské rozhraní s pseudo – statickým zobrazováním lze na panelu s menším rozlišením výhodně řešit i s využitím MCU.
 
MCU ARM Cortex-M4 SAM4L s 128 až 256 KB Flash
 
Další z argumentů, stojících za oblibou MPU, spočívá v jejich běžné výbavě embedded TFT LCD kontrolérem. Takovými možnostmi se přitom může pochlubit jen hrstka MCU, takže TFT LCD kontrolér pak bude nutné spolu s některými dalšími součástkami připojit externě. MCU tedy ze hry nevylučujeme, měli bychom však zvážit případný nárůst počtu osazených součástek. Vyhráno ale nemusíme mít ani v případě vestavěného kontroléru v Flash MCU, protože k řízení displeje stále požadujeme dostatečnou velikost embedded paměti SRAM. Tak třeba k provozu displeje QVGA 320 x 240 se 16 barvami bude potřeba 150 kB SRAM, což už není zrovna nejméně, takže se již nemusíme obejít bez další paměti se kterou pomalu, ale jistě, začínáme „stírat“ rozdíl mezi MCU a řešením založeným na MPU. Pro složitější grafická uživatelská rozhraní, zejména budou – li provozována na panelech větších než 4,3 palce, bude vhodné použít MPU. Pozorujeme – li pak dominantní pozici MPU právě na UI s barevnými TFT displeji, dokážeme s MCU skvěle ovládnout segmentové / maticové LCD displeje a další zobrazovače se sériovým rozhraním.
 
MCU ARM Cortex™ M4 SAM4S, až 2 MB paměti Flash
 
Z hlediska vzájemné propojitelnosti bude možné použít většinu MCU a také MPU, protože zde máme k dispozici veškerá běžná rozhraní. S perifériemi pro vysokorychlostní komunikaci typu HS USB 2.0, 10/100 nebo Gigabitového Ethernetu se však budeme setkávat spíše na MPU, které tak mohou lépe uchopit a zpracovávat obrovská množství dat. Zajímat nás bude dostatečný počet vhodných kanálů a také šířka pásma s ohledem na velikost datového provozu. V závislosti na použitých komunikačních protokolech si též prověříme vliv stacků třetích stran.
 
Dalším klíčovým faktorem při rozhodování mezi MCU a MPU se stává potřeba deterministického chování aplikace, resp. zpracování v reálném čase. Vzhledem k jádru použitému v MCU, stejně jako embedded Flash a zvolenému softwaru (RTOS, C), zde zcela nepochybně vítězí právě MCU, se kterými bezvadně zvládneme i ty časově nejkritičtější a deterministické aplikace. A to se již postupně dostáváme k poslednímu bodu, kterým není nic jiného než proudová spotřeba. Přestože MPU mívají nízkopříkonové režimy, nebude jich zase tolik, příp. nebudou natolik „hluboké“ jako v případě běžných MCU. Rovněž uvedení do low power módu může ve spojitosti s podporou vnějších hardwarových částí znamenat u MPU o něco větší obtíže. Ve prospěch MCU dále hovoří též samotná velikost spotřeby, která se například v nízkopříkonovém režimu s uchováním obsahu v paměti SRAM a registrech pohybuje na desetině až setině srovnatelného. Svou roli zde nepochybně hraje též velikost RAM využívané operačním systémem.
 
Srovnání základních vlastností MCU SAM4L, SAM4N a SAM4S od Atmelu
 
Z výše uvedeného tedy vyplývá, že při rozhodování, zda svůj návrh založíme na MCU nebo spíše MPU, bude nutné zvážit celou řadu otázek, zahrnujících výkon, předpoklady jako takové a v neposlední řadě též možný nárůst celkového počtu součástek včetně rozpočtu, který máme k dispozici. Obecně vzato, s MCU se budeme setkávat spíše v cenově optimalizovaných aplikacích s důrazem na nízkou vlastní spotřebu, MPU pak použijeme ve výkonnějších systémech s bohatými funkcemi. MCU se hodí do návrhů s extrémně nízkou spotřebou, např. dálkového ovládání, spotřební elektroniky či chytrých měřidel, kde bude kladen důraz na maximální výdrž bateriového zdroje napájení, zatímco si vystačíme s jednoduchým uživatelským rozhraním, případně se bez něj obejdeme úplně. Setkávat se s nimi budeme též v případě požadavků na vysoce deterministické chování. MPU jsou naproti tomu ideálním řešením pro průmyslové a spotřební aplikace založené na operačním systému, které si mohou nárokovat vysoké výpočetní výkony, požadovat nejrůznější možnosti vysokorychlostní konektivity a také propracovaná uživatelská rozhraní. Chceme – li pak ve výsledku zajistit nejlepší možnou návratnost investic v čase, vybereme si nadto takového výrobce, který nám může nabídnout vysoce vzájemně kompatibilní MCU a MPU s možností jednoduchého přechodu napříč řadami obvodů a s maximální podporou opakovaného využití jednou již navrženého programu.
 
Jednoduše použitelné periférie s bohatou výbavou, kontrolér pro LCD či podpora USB s cílem nabídnout vývojářům flexibilní nízkopříkonové řešení s vysokou výkonností – to je rodina Flash MCU SAM D20 od Atmelu
 
Dlouhodobé zkušenosti společnosti Atmel v oblasti mikrokontrolérů (MCU) a jejich inovací s sebou nese řadu prvenství, například první Flash MCU, první 32bitové Flash MCU založené na ARM7™, první 100 nA MCU s uchováním obsahu RAM a stejně tak první Flash MCU vycházející z ARM9™. A vývoj se rozhodně nezastavil ani nyní. Atmel nabízí ARM obvody založené na architekturách ARM Cortex®-M0+, Cortex-M3 a Cortex-M4 s pamětí Flash od 8 KB do 2 MB, bohatými perifériemi a řadou funkčních možností – např. Flash MCU SAM3, SAM4 nebo SAM D. Kromě ARM MCU zde najdeme též rodiny mikroprocesorů (MPU, podrobněji se jim budeme věnovat v některém z příštích článků) s ARM a bez vestavěné paměti Flash. Jedná se o prvky založené na jádru ARM Cortex®-A5, např. obvody SAMA5D3 a AT91SAM9261, vycházející z ARM926EJ-S™. Z důvodů optimalizace a zjednodušení celého vývojového procesu má výrobce okolo svých mikrokontrolérů a také mikroprocesorů vystavěn silný ekosystém.
 
Máme – li klíčové vlastnosti obou skupin obvodů vyjádřit v pěti bodech, dostaneme následující stručnou charakteristiku:
 

 

Flash MCU s ARM

 
Flash MCU od Atmelu, založené na ARM Cortex-M4, Cortex-M3, Cortex-M0+, ARM926EJ-S™ a ARM7TDMI®, nabídnou
 
  • Od 8 KB paměti Flash a 4 KB SRAM až do 2 MB Flash a 160 KB SRAM spolu s pracovními kmitočty až do 120 MHz
  • Inovační řešení DMA (Direct Memory Access) a paměti umožňující vysokorychlostní přenosy dat, zatímco procesor dostává více prostoru pro samotnou aplikaci
  • Možnosti „touch-ready“ díky kapacitní dotykové technologii Atmelu QTouch® s hardwarovou akcelerací v rámci rodiny obvodů SAM D
  • Plně softwarově konfigurovatelný modul pro sériovou komunikaci SERCOM, dostupný v řadě obvodů SAM D; zvládne I2C, USART / UART a SPI a flexibilně tak rozšiřuje možnosti rozhraní
  • Nejnižší výkonovou spotřebu mezi MCU založenými na ARM Cortex-M4
 
 

Embedded MPU s ARM

 
Embedded MPU od Atmelu, vycházející z ARM Cortex-A5 a ARM926EJ-S™, není těžké použít. Vývojářům nabízí
 
  • Výkon až 850 DMIPS na 536 MHz s FPU (Floating Point Unit)
  • Výkonovou spotřebu v aktivním režimu a při maximální rychlosti, menší než 200 mW, udávající trendy ve své třídě
  • Rychlé periférie včetně rozhraní USB high-speed host a device, Gigabit Ethernetu, CAN, TFT LCD kontroléru, rozhraní pro kameru apod.
  • Vysokou míru zabezpečení (Crypto, Secure Boot)
  • Volné distribuce (Linux, Android) a komplexní ekosystém partnerů, zajišťující doplňková hardwarová a softwarová řešení
 
Loni v létě představila společnost Atmel první řadu obvodů SAM D20 v rámci nové rodiny embedded Flash mikrokontrolérů vycházejících z jádra ARM® Cortex™-M0+ (až 48 MHz), které vyvíjela s ohledem na požadavky automatizace domácností, spotřební elektroniku, „chytrá“ měřidla nebo též průmyslové aplikace. Nechybí zde „inteligentní“ periférie spolu s firemním Event Systemem (8 kanálů, viz obr.) a také kapacitní podporou dotykového ovládání pro nejrůznější panely včetně detekce přiblížení. SAM D20 rovněž přichází s podporou ze strany nejnovější verze Atmel Studio a Atmel Software Framework, integrované vývojové platformy pro vývoj a následné ladění aplikací založených na ARM Cortex-M a AVR® MCU.
 
K dispozici máme vše potřebné, např. 12bitový A/D převodník a interní oscilátory, až osm 16bitových čítačů / časovačů, flexibilní možnosti taktování, režimy spánku a mnohé další. V přehledu výše jsme již zmiňovali sériový komunikační modul SERCOM, který lze konfigurovat jako USART, UART, SPI a I2C. Každá součástka přitom obsahuje až šest takových modulů. Při návrhu nových obvodů se myslelo též na jejich jednoduchou a intuitivní záměnu napříč možnostmi této řady. Díky Peripheral Touch Controlleru (PTC, až 256 kanálů) pak rodina ještě podpoří dotyková tlačítka, slidery či ovládací kolečka včetně detekce přiblížení a to bez potřeby vnějších součástek. Na výběr dostáváme prvky v pouzdrech s 32, 48 nebo též 64 vývody, 16 až 256 KB paměti Flash a 2 až 32 KB SRAM.
 
Ať se již tedy rozhodneme pro mikroprocesor, nebo si po zralé úvaze obhájíme spíše některou řadu mikrokontrolérů, v obou případech budeme schopni vybírat ze široké nabídky integrovaných obvodů od Atmelu, které na náš trh dodává distributor, společnost Codico GmbH (www.codico.com, e-mail: Petr.Rocek@codico.com). Zde také můžete směřovat veškeré své dotazy a to včetně požadavků na vzorky, vývojové kity, nabídky či konzultaci (ne)typických řešení. V červnu bude navíc ve spolupráci s firmou Atmel uspořádán seminář - bližší informace přineseme v následujícím článku.
 
 
Připraveno na základě článku Microprocessor (MPU) or Microcontroller (MCU)? What factors should you consider when selecting the right processing device for your next design autorské dvojice Frédéric Gaillard, product marketing manager a Andreas Eieland, senior product marketing manager, Atmel a materiálů dostupných na www.atmel.com.
 

 

Hodnocení článku: