A 32 bites mikrokontroller (MCU) eszközök népszerűségének növekedése a beágyazott közösségben nem meglepő. Ezek a funkciógazdag eszközök számos különböző alkalmazáshoz illeszkednek, ami megmagyarázza, miért választja őket sok beágyazott fejlesztő a következő terveihez. A tervezők felismerik, hogy az ilyen összetett eszközök mindent kínálnak, amire szükségük van a nyers számítási teljesítmény, a gazdag perifériakészlet, valamint a fejlesztési eszközök és könyvtárak széles skálájához való könnyű hozzáférés tekintetében.
E 32 bites eszközök közül sokan a rendkívül sikeres ARM-magokon alapulnak. Így a fejlesztők biztosak lehetnek abban, hogy a piacon elérhetőek a második forráskódú eszközök, valamint a fejlesztési, tesztelési és validálási eszközök átfogó készlete.
Ha azonban közelebbről megvizsgáljuk a legújabb MCU-piaci trendeket, kiderül, hogy nem a 32 bites eszközök az egyetlenek, amelyek erős növekedést tapasztalnak (1. táblázat). A 8 bites MCU-k szárnyaló piaca összetett növekedési rátával (6,4%) büszkélkedhet, amely közel áll a 32 biteshez (6,9%). Más iparági elemzők azonos növekedési ütemet prognosztizálnak a 8 és 32 bites mikrokontrollerek esetében.
A 8 bites eszközök fellendülése egyértelműen rávilágít arra, hogy a 32 bites MCU helyett 8 bites eszköz használatának kell, hogy legyen néhány nyomós oka. Ez a cikk arra kíván rávilágítani, hogy a 8 bites eszközök miért tartják meg piaci részesedésüket.
Lényeges különbségek
A 8 és 32 bites MCU-k közötti alapvető különbségek a költség- és árszerkezet, a CPU teljesítmény, az egyszerű használat, a hardver közeli funkciók hatékonysága és a statikus energiafogyasztás. Amikor egy új tervezésbe kezdenek, a fejlesztőknek gondosan fel kell mérniük az MCU-val szemben támasztott követelményeket a szükséges feldolgozási képességek mennyisége, a szükséges interfészek mértéke és – akkumulátorral működő tervek esetén – a mindent eldöntő energiafogyasztási profilok alapján. Kétségtelen, hogy egy 32 bites MCU nagyobb teljesítményt nyújt, mint egy 8 bites eszköz, de a mérnöknek azzal a hagyományos döntéssel kell szembenéznie, hogy a piacon elérhető legjobb eszköz és az alkalmazás tényleges igényei között kell választania.
Természetesen ezek a döntések nagyban befolyásolják a várható anyagköltséget (BOM). Alacsonyabb kapuszámmal egy kevésbé összetett 8 bites eszköz biztosan olcsóbb lesz, mint egy 32 bites eszköz. Ha összehasonlítjuk a vezető gyártók 8 és 32 bites MCU-it, amelyek mindegyike hasonló mennyiségű flashmemóriával, pin-outtal stb. rendelkezik, a 8 bites eszközök jellemzően körülbelül 20%-kal kerülnek kevesebbe. Ez azonban csak az első a sok megfontolás közül. Egy másik szempont az új fejlesztés beállításának egyszerűségével kapcsolatos.
A fejlesztés egyszerűsége
Az MCU-szállítók általában több funkciót és funkciót adnak hozzá 32 bites eszközeikhez, mint a 8 bites termékekhez. Következésképpen sokkal több beállítási megfontolás merül fel egy összetettebb eszközzel kapcsolatban. Míg egyes 32 bites MCU-k egy 8 bites eszközhöz hasonló korlátozott beállítással is futtathatók, nem tudja kihasználni az erősebb eszköz további funkcióit.
Download this article in .PDF formátumban Ez a fájltípus nagy felbontású grafikákat és adott esetben kapcsolási rajzokat tartalmaz. |
Egy tipikus 32 bites ARM eszközön például független órajelbeállítások vannak magához a maghoz, az AHB buszhoz, az APBA buszhoz és az APBB buszhoz. Ezek mindegyike különböző frekvenciára állítható. Jellemzően neked is át kell kapcsolnod a használni kívánt órajelet, mert az szoftveresen van beállítva, nem hardveresen, mint a legtöbb 8 bites alkatrésznél. Továbbá az órajel megváltoztatása azt jelenti, hogy be kell állítania a flash várakozási állapotait, esetleg a mért VCC-feszültségtől függően.
Egy ilyen beállítás azonban sokkal egyszerűbb lehet egy 8 bites MCU-val. Az Atmel tinyAVR és megaAVR termékei például az alkalmazás kódolása előtt csak a veremmutató inicializálását igénylik, ami jellemzően négy sornyi kódot vesz igénybe. Az órajel, a brownout detektor, a reset pin funkció stb. kiválasztása mind előre be van programozva az eszközbe.
Az architektúra is sokkal egyszerűbb, mint egy 32 bites eszköz esetében, ahol a belső regiszterek, a perifériák és az SRAM mind ugyanazon az adatbuszon vannak leképezve. A perifériák és a CPU általában ugyanazon a frekvencián futnának, így nincs szükség perifériabusz-konfigurációra. Ráadásul a tervezőknek nem kell aggódniuk a különböző óratartományok közötti szinkronizálás késleltetése miatt.
Teljesítmény
A CPU kívánt teljesítményét illetően a mérnöknek minden felhasználási esetet figyelembe kell vennie. A valóság az, hogy sok beágyazott tervnek nincsenek magas számítási követelményei. Gyakran csak nagyon kevés adatmanipulációra van szükség, így ezeknek az igényeknek a kiegyensúlyozása az energiafogyasztási és periféria-interfekciós követelményekkel szemben döntő fontosságúvá válik.
Egy egyszerű termosztátalkalmazás például élete nagy részét alvó üzemmódban tölti. Időnként felébred, megméri a hőmérsékletet, majd döntést hoz egy relé be- vagy kikapcsolásáról, vagy utasítást küld a gazdavezérlőnek. Ezután újra alvó üzemmódba kapcsol. Ennek az alkalmazásnak a számítási és interfészigénye kicsi, de sok más alkalmazás, például tűzjelzők, elektromos szerszámok, áramlásmérők és készülékvezérlők is hasonló felhasználási profillal rendelkeznek.
A hardver közeli funkciók hatékonysága
Néhány modern mikrokontroller tartalmaz néhány hardverfunkciót, amelyek a CPU minél hatékonyabb működését szolgálják. Az Atmel esetében mind a 8 bites AVR, mind a 32 bites ARM-alapú MCU-családok rendelkeznek a Perifériás eseményrendszerrel. Az eseményrendszer olyan hardveralapú funkciók összessége, amely lehetővé teszi a perifériák számára, hogy a CPU beavatkozása nélkül lépjenek kapcsolatba egymással. Lehetővé teszi, hogy a perifériák jeleket küldjenek közvetlenül más perifériáknak, rövid és 100%-ban kiszámítható válaszidőt biztosítva.
Az eseményrendszer képességeit teljes mértékben kihasználva a chip úgy konfigurálható, hogy a CPU nagyon kevés beavatkozásával végezzen komplex műveleteket, így értékes programmemóriát és végrehajtási időt takarít meg. Egy hardveres esemény észlelése esetén fontos, hogy először észleljük az eseményt, majd átkapcsoljuk a vezérlést a kívánt megszakítási szolgáltatási rutinra (ISR).
Egy ilyen helyzetben nem a CPU sebessége az egyetlen meghatározó tényező. A kérdés az, hogy ciklusokban kifejezve mennyi időbe telik a megszakításra való reagálás, az ISR futtatása és a visszatérés. Ahogy a következő példa is mutatja, a 8 bites eszközök hatékonyabban tudják kezelni a hardver közeli műveleteket.
Gondoljunk arra, hogy egy bájtot fogadunk az SPI-n, megszakítással érzékeljük azt, majd egy egyszerű ISR-rutint futtatunk a bájt SPI-perifériáról történő kiolvasásához és az SRAM-ba történő tárolásához. Ezt a forgatókönyvet használva a 2. táblázat összehasonlítást végez egy Atmel 8 bites AVR eszköz és egy Atmel ARM Cortex M0+ alapú 32 bites MCU között. A rendelkezésre álló információk alapján kiszámított eredmények minimális megvalósításokon alapulnak. A mérnököknek azonban ellenőrizniük kell saját alkalmazásaikkal, mivel a megszakításérzékelés és a megszakításból való visszatérés több ciklust is igénybe vehet, mint a táblázatban látható. A 12 ciklus igénye a 33 ciklussal szemben azt jelenti, hogy a 8 bites CPU esetében 1,67 MB/s elméleti maximális SPI-sávszélességgel, míg a 32 bites CPU esetében 606 kB/s sávszélességgel számolhatunk 20 MHz-en történő működés esetén.
A numerikus feldolgozás mértéke hatással lehet a veremre és a szükséges memóriára is. A Fibonacci-algoritmus alkalmazása különösen jó módszer a memóriaigény tesztelésére. Mivel csak egy helyi változót használ, mindent a veremre kell tolni.
A 8 bites AVR és egy ARM 32 bites CM0+ alapú eszköz összehasonlításakor, valamint a rekurzív 15 lépcsős Fibonacci-algoritmus alkalmazásakor az AVR összesen 70 bájt vermet használ, beleértve 30 bájtot a visszatérési veremhez (15 hívás mélyen). Az ARM-alapú eszköz 192 bájtot használ (60 a visszatérési veremnek kell lennie). Ez azt jelenti, hogy a CSTACK több mint háromszor akkora, mint a 8 bites megoldás. A tipikus C kódban a verem több változója gyakran csomagolt formátumban érkezik, így ez egy extrém sarokpont. Azonban azt mondani, hogy 1,5-3-szor több SRAM-ra van szükség ugyanahhoz a 8 bites alkalmazáshoz egy 32 bites (szemben a natív 8 bites) eszközön, méltányos becslés.
Teljesítményfogyasztás
Nem lenne teljes egy MCU-cikk a statikus energiafogyasztás vizsgálata nélkül. Ez önmagában kulcsfontosságú tényező lehet a 8 vagy 32 bites eszköz közötti választásnál, különösen akkumulátoros alkalmazások esetén. A 3. táblázat szemlélteti a 8 és 32 bites eszközök teljesítményfelvételének különbségeit aktív és statikus üzemmódban egyaránt.
Agresszív gyártási technológiák növelik a tranzisztorok szivárgási áramát, amely minden egyes folyamatgenerációval nagyjából megduplázódik, és arányos a kapuk számával. A szivárgási áram magasabb hőmérsékleten exponenciálisan nő, ami egy fogyasztói design tervezésekor könnyen figyelmen kívül hagyható. A mobiltelefonokat és a személyi médialejátszókat mindenhová magunkkal visszük, és mint mindannyian tapasztaltuk, a nyáron egy autóban tapasztalt hőmérséklet könnyen 40 °C fölé emelkedhet.
Az, hogy a mikrokontroller mennyi időt tölt aktív és statikus üzemmódban, jelentősen hozzájárul az alkalmazás teljes teljesítményköltségvetéséhez.
Az aktív és statikus üzemmódok közötti arány természetesen az alkalmazás követelményeitől függően változik. Az előző SPI-megszakítási példát véve (ismét a 2. táblázat) és 80 kb/s SPI-adatsávszélességet feltételezve, a 8 bites CPU az idejének 1,2%-át aktív üzemmódban tölti, szemben a 32 bites processzorral, amely 3,3%-ot tölt aktív üzemmódban (4. táblázat).
Következtetés
Az, hogy egy jövőbeli tervezésnél 8 vagy 32 bites mikrokontrollert használjunk-e, a dolgok internetének (IoT) alkalmazásával járhat. Az, hogy az IoT valójában hogyan alakul ki, sok vitára ad okot, de minden bizonnyal kihívást jelent a mérnökök számára az MCU-igény részletes felmérése. A vezeték nélküli kapcsolat, különösen a ZigBee, szintén lényeges elem lesz, de ez nem jelenti automatikusan azt, hogy nagyobb teljesítményű eszközre lesz szükség.
Download this article in .PDF formátumban Ez a fájltípus nagy felbontású grafikákat és adott esetben kapcsolási rajzokat is tartalmaz. |
Egy sor elérhető 8 bites mikrokontroller termék elégíti ki az alacsony feldolgozási szint és a vezeték nélküli csatlakoztathatóság igényét. Ilyen például az Atmel ATmegaRFR2 sorozat, amely IEEE 802.15.4-kompatibilis, egychipes, 2,4 GHz-es vezeték nélküli mikrokontroller megoldást kínál, amely megfelel az akkumulátorral működő, alacsony költségű IoT-tervezésekhez.
Ingar Fredriksen, az Atmel MCU marketingigazgatója az EMEA-régióban, Trondheimben, Normayban. A Trodheimi Egyetemi Főiskolán szerzett villamosmérnöki alapdiplomát.
Paal Kastnes, az MCU Applications csapat munkatársa, aki az Atmel munkatársainak és ügyfeleinek az Atmel mikrokontrollerek és eszközök használatára vonatkozó képzésére specializálódott, szintén Trondheimben dolgozik. Villamosmérnöki alapdiplomáját a Trondheimi Egyetemi Főiskolán szerezte meg.