32-bittisten mikrokontrollerilaitteiden (MCU) suosion kasvu sulautettujen laitteiden yhteisössä ei ole yllätys. Nämä toiminnoiltaan monipuoliset laitteet sopivat moniin erilaisiin sovelluksiin, mikä selittää, miksi monet sulautettujen järjestelmien kehittäjät valitsevat ne seuraaviin suunnitelmiinsa. Suunnittelijat tunnistavat, että tällaiset monimutkaiset laitteet tarjoavat kaiken tarvitsemansa raa’an laskentatehon, runsaan oheislaitevalikoiman ja helpon pääsyn monenlaisiin kehitystyökaluihin ja kirjastoihin.
Monet näistä 32-bittisistä laitteista perustuvat erittäin menestyneisiin ARM-ytimiin. Näin ollen kehittäjät voivat luottaa siihen, että markkinoilla on saatavilla toisen lähdekoodin laitteita ja kattava valikoima kehitys-, testaus- ja validointityökaluja.
Mutta tarkempi tarkastelu MCU-markkinoiden viimeaikaisia trendejä paljastaa, etteivät 32-bittiset laitteet ole ainoita, joilla on voimakas kasvu (taulukko 1). 8-bittisten MCU-yksiköiden kasvavat markkinat ylpeilevät sillä, että niiden yhteenlaskettu kasvuvauhti (6,4 %) on lähellä 32-bittisten (6,9 %) kasvuvauhtia. Muut alan analyytikot ennustavat 8- ja 32-bittisille mikrokontrollereille identtisiä kasvulukuja.
8-bittisten laitteiden noususuhdanne osoittaa selvästi, että on oltava pakottavia syitä käyttää 8-bittistä laitetta 32-bittisen MCU:n sijasta. Tässä artikkelissa selvitetään, miksi 8-bittiset laitteet säilyttävät markkinaosuutensa.
Tärkeitä eroja
8- ja 32-bittisten MCU:iden periaatteelliset erot ovat kustannus- ja hintarakenne, suorittimen suorituskyky, helppokäyttöisyys, tehokkuus laitteiston lähitoiminnoissa ja staattinen virrankulutus. Uutta suunnittelua aloittaessaan kehittäjien on määriteltävä huolellisesti MCU:n vaatimukset, jotka perustuvat tarvittavaan prosessointikapasiteettiin, tarvittavien liitäntöjen määrään ja akkukäyttöisissä malleissa erittäin tärkeisiin virrankulutusprofiileihin. Ei ole epäilystäkään siitä, että 32-bittisen MCU:n suorituskyky on suurempi kuin 8-bittisen laitteen, mutta insinöörin on perinteisesti valittava markkinoiden paras saatavilla oleva laite ja sovelluksen todelliset tarpeet.
Näillä päätöksillä on tietysti suuri vaikutus todennäköisiin BOM-kustannuksiin (Bill of Materials). Kun porttien määrä on pienempi, vähemmän monimutkainen 8-bittinen laite on varmasti halvempi kuin 32-bittinen laite. Kun verrataan johtavien valmistajien 8- ja 32-bittisiä MCU-yksiköitä, joissa kummassakin on samanlainen määrä flash-muistia, pin-out jne., 8-bittiset laitteet maksavat tyypillisesti noin 20 % vähemmän. Tämä on kuitenkin vain ensimmäinen monista näkökohdista. Toinen näkökohta liittyy uuden kehityksen aloittamisen helppouteen.
Kehityksen helppous
MCU-toimittajilla on tapana lisätä 32-bittisiin laitteisiinsa enemmän ominaisuuksia ja toimintoja kuin 8-bittisiin tuotteisiin. Näin ollen monimutkaisemmassa laitteessa on paljon enemmän asennukseen liittyviä näkökohtia. Vaikka jotkin 32-bittiset MCU:t voivat toimia 8-bittisen laitteen kaltaisella rajoitetulla kokoonpanolla, et pysty hyödyntämään tehokkaamman laitteen lisäominaisuuksia.
Download this article in .PDF-muodossa Tämä tiedostotyyppi sisältää tarvittaessa korkearesoluutioisia grafiikoita ja kaavioita. |
Tyypillisessä 32-bittisessä ARM-laitteessa on esimerkiksi itsenäiset kelloasetukset itse ytimelle, AHB-väylälle, APBA-väylälle ja APBB-väylälle. Ne kaikki voidaan asettaa eri taajuuksille. Tyypillisesti sinun on myös vaihdettava haluamasi kello, koska se asetetaan ohjelmistossa, ei laitteistossa kuten useimmissa 8-bittisissä osissa. Lisäksi kellon vaihtaminen tarkoittaa, että sinun on asetettava flashin odotustilat, jotka mahdollisesti perustuvat mitattuun VCC-jännitteeseen.
Tällainen asetus voi kuitenkin olla paljon yksinkertaisempi 8-bittisellä MCU:lla. Esimerkiksi Atmelin tinyAVR- ja megaAVR-tuotteet vaativat vain pino-osoittimen alustamisen, joka vie tyypillisesti neljä riviä koodia, ennen sovelluksen koodaamista. Kellon valinta, brownout-ilmaisin, reset-pinin toiminta jne. on kaikki valmiiksi ohjelmoitu laitteeseen.
Arkkitehtuuri on myös paljon suoraviivaisempi kuin 32-bittisessä laitteessa, jossa sisäiset rekisterit, oheislaitteet ja SRAM-muisti on kaikki kartoitettu samaan dataväylään. Oheislaitteet ja CPU toimivat normaalisti samalla taajuudella, joten oheislaitteiden väylän konfigurointia ei tarvita. Lisäksi suunnittelijat voivat välttää huolehtimasta eri kelloalueiden välisen synkronoinnin viiveestä.
Suorituskyky
Kun on kyse halutusta suorittimen suorituskyvystä, insinöörin on otettava huomioon kaikki käyttötapaukset. Todellisuudessa monilla sulautetuilla malleilla ei ole suuria laskentavaatimuksia. Usein tarvitaan hyvin vähän tietojen käsittelyä, joten näiden tarpeiden tasapainottaminen virrankulutusta ja oheislaitteiden liitäntävaatimuksia vastaan on ratkaisevan tärkeää.
Esimerkiksi yksinkertainen termostaattisovellus viettää suurimman osan elämästään lepotilassa. Aina silloin tällöin se herää ja mittaa lämpötilan ja tekee sitten päätöksen releen kytkemisestä päälle/pois tai käskyn lähettämisestä isäntäohjaimelle. Sitten se jatkaa lepotilaa. Tämän sovelluksen laskenta- ja liitäntävaatimukset ovat pienet, mutta monilla muillakin sovelluksilla, kuten paloilmoittimilla, sähkötyökaluilla, virtausmittareilla ja kodinkoneiden ohjauksilla, on samanlainen käyttöprofiili.
Laitteiston lähifunktioiden tehokkuus
Monissa nykyaikaisissa mikrokontrollereissa on joitain laitteistotoimintoja, joiden tehtävänä on auttaa prosessoria toimimaan mahdollisimman tehokkaasti. Atmelin tapauksessa sekä 8-bittisessä AVR- että 32-bittisessä ARM-pohjaisessa MCU-perheessä on Peripheral Event System. Tapahtumajärjestelmä on joukko laitteistopohjaisia ominaisuuksia, jotka mahdollistavat oheislaitteiden vuorovaikutuksen ilman CPU:n väliintuloa. Sen avulla oheislaitteet voivat lähettää signaaleja suoraan muille oheislaitteille, mikä takaa lyhyen ja 100-prosenttisesti ennustettavan vasteajan.
Kun tapahtumajärjestelmän ominaisuuksia hyödynnetään täysimääräisesti, siru voidaan konfiguroida suorittamaan monimutkaisia operaatioita CPU:n puuttuessa niihin hyvin vähän, mikä säästää sekä arvokasta ohjelmamuistia että suoritusaikaa. Laitteistotapahtuman havaitsemisessa on tärkeää, että ensin havaitaan tapahtuma ja sitten vaihdetaan ohjaus haluttuun keskeytyspalvelurutiiniin (ISR).
Tällaisissa tilanteissa suorittimen nopeus ei ole ainoa ratkaiseva tekijä. Kyse on siitä, kuinka kauan, sykleinä ilmaistuna, kestää vastata keskeytykseen, suorittaa ISR ja palata. Kuten seuraava esimerkki osoittaa, 8-bittiset laitteet voivat olla tehokkaampia laitteiston lähitoimintojen käsittelyssä.
Harkitse yhden tavun vastaanottamista SPI:llä, keskeytyksen käyttämistä sen havaitsemiseen ja sitten yksinkertaisen ISR-rutiinin suorittamista tavun lukemiseksi SPI-oheislaitteesta ja sen tallentamiseksi SRAM-muistiin. Tämän skenaarion avulla taulukossa 2 tehdään vertailuja Atmelin 8-bittisen AVR-laitteen ja Atmelin ARM Cortex M0+ -pohjaisen 32-bittisen MCU:n välillä. Tulokset on laskettu käytettävissä olevien tietojen perusteella ja perustuvat vähimmäistoteutuksiin. Insinöörien on kuitenkin tarkistettava se omilla sovelluksillaan, sillä keskeytyksen havaitseminen ja keskeytyksestä palaaminen voivat viedä enemmän syklejä kuin taulukossa on esitetty. Vaadittaessa 12 sykliä verrattuna 33 sykliin SPI:n teoreettinen maksimikaistanleveys on 1,67 MB/s 8-bittisellä CPU:lla ja 606 kB/s kaistanleveys 32-bittisellä CPU:lla 20 MHz:n kellotaajuudella ajettaessa.
Numeerisen käsittelyn asteella voi olla myös vaikutusta pinoon ja tarvittavaan muistiin. Fibonacci-algoritmin soveltaminen on yksi erityisen hyvä menetelmä muistivaatimusten testaamiseen. Koska se käyttää vain paikallista muuttujaa, kaikki on työnnettävä pinoon.
Vertailtaessa 8-bittistä AVR:ää ja ARM:n 32-bittiseen CM0+-pohjaiseen laitteeseen perustuvaa laitetta ja käytettäessä rekursiivista 15-vaiheista Fibonacci-algoritmia AVR käyttää yhteensä 70 tavua pinoa, mukaan lukien 30 tavua paluupinoa varten (15 kutsua syvällä). ARM-pohjainen laite käyttää 192 tavua (60 pitäisi olla paluupinoa). Tämä tarkoittaa, että CSTACK on yli kolminkertainen 8-bittiseen ratkaisuun verrattuna. Tyypillisessä C-koodissa useammat pinossa olevat muuttujat ovat usein pakatussa muodossa, joten tämä on äärimmäinen kulma. Kuitenkin se, että samaan 8-bittiseen sovellukseen tarvitaan 1,5-3 kertaa enemmän SRAM-muistia 32-bittisessä (verrattuna natiiviin 8-bittiseen) laitteessa, on oikeudenmukainen arvio.
Virrankulutus
Kään MCU-artikkeli ei olisi täydellinen ilman staattisen virrankulutuksen tutkimista. Pelkästään tämä voi olla avaintekijä valittaessa 8- tai 32-bittisen laitteen välillä, erityisesti akkukäyttöisissä sovelluksissa. Taulukko 3 havainnollistaa 8- ja 32-bittisten laitteiden tehonkulutuseroja sekä aktiivisessa että staattisessa tilassa.
Agressiiviset valmistustekniikat lisäävät transistorien vuotovirtaa, joka noin kaksinkertaistuu jokaisessa prosessisukupolvessa ja on verrannollinen porttien määrään. Vuotovirta kasvaa eksponentiaalisesti korkeammissa lämpötiloissa, mikä voidaan helposti jättää huomiotta kuluttajasuunnittelussa. Matkapuhelimia ja henkilökohtaisia mediasoittimia kuljetetaan kaikkialle, ja kuten olemme kaikki huomanneet, kesällä auton sisällä koetut lämpötilat voivat nousta helposti yli 40 °C:n.
Aika, jonka mikrokontrolleri viettää aktiivisessa tilassa verrattuna staattiseen tilaan, vaikuttaa merkittävästi sovelluksen kokonaistehobudjettiin.
Aktiivisen ja staattisen tilan suhde vaihtelee luonnollisesti sovelluksen vaatimuksista riippuen. Edellisen SPI-keskeytysesimerkin (taulukko 2, jälleen) perusteella ja olettaen SPI-tiedon kaistanleveyden olevan 80 kb/s, 8-bittinen prosessori viettää 1,2 % ajastaan aktiivisessa tilassa verrattuna 32-bittiseen prosessoriin, joka viettää 3,3 % ajastaan aktiivisessa tilassa (taulukko 4).
Johtopäätökset
Tulevaisuuden suunnittelussa saatetaan miettiä, pitäisikö käyttää 8- vai 32-bittistä mikrokontrolleria tulevassa suunnittelussa, ja siihen saattaa liittyä esineiden internetin (Internet of Things, IoT) sovellus. Se, miten IoT todellisuudessa toteutuu, herättää paljon keskustelua, mutta se varmasti haastaa insinöörit tekemään yksityiskohtaisen arvion MCU-vaatimuksista. Langaton liitettävyys, erityisesti ZigBee, tulee myös olemaan olennainen osa, mutta se ei automaattisesti tarkoita, että siihen tarvitaan suurempitehoista laitetta.
Download this article in .PDF-muodossa Tämä tiedostotyyppi sisältää korkearesoluutioisia grafiikoita ja kaavioita soveltuvin osin. |
Monet saatavilla olevat 8-bittiset mikrokontrollerituotteet tyydyttävät matalan prosessointitason ja langattoman liitettävyyden tarpeet. Yksi tällainen esimerkki on Atmelin ATmegaRFR2-sarja, joka tarjoaa IEEE 802.15.4 -yhteensopivan, yhden sirun 2,4 GHz:n langattoman mikrokontrolleriratkaisun, joka sopii akkukäyttöisiin, edullisiin IoT-suunnitelmiin.
Ingar Fredriksen, Atmelin MCU:iden markkinointipäällikkö EMEA-alueella, sijaitsee Trondheimissa, Normajassa. Hän on suorittanut sähkötekniikan kandidaatin tutkinnon Trodheimin yliopistokorkeakoulussa.
Paal Kastnes MCU Applications -tiimin henkilöstöinsinööri, joka on erikoistunut Atmelin henkilökunnan ja asiakkaiden kouluttamiseen Atmelin mikrokontrollereiden ja -työkalujen käytössä, asuu myös Trondheimissa. Hän on suorittanut sähkötekniikan kandidaatin tutkinnon Trondheimin yliopistossa.