Creșterea popularității microcontrolerelor (MCU) pe 32 de biți în comunitatea embedded nu este o surpriză. Aceste dispozitive bogate în funcții se potrivesc unei serii de aplicații diferite, ceea ce explică de ce mulți dezvoltatori embedded le aleg pentru următoarele lor proiecte. Proiectanții recunosc faptul că astfel de dispozitive complexe oferă tot ceea ce au nevoie în ceea ce privește puterea brută de calcul, un set bogat de periferice și acces ușor la o gamă largă de instrumente și biblioteci de dezvoltare.
Multe dintre aceste dispozitive pe 32 de biți se bazează pe nucleele ARM de mare succes. Astfel, dezvoltatorii se simt încrezători că au acces la dispozitive cu sursă secundară și că un set cuprinzător de instrumente de dezvoltare, testare și validare este disponibil pe piață.
Cu toate acestea, o privire mai atentă la tendințele recente ale pieței MCU arată că dispozitivele pe 32 de biți nu sunt singurele care înregistrează o creștere puternică (tabelul 1). Piața în plină ascensiune a MCU pe 8 biți se mândrește cu o rată de creștere compusă (6,4%) apropiată de cea a celor pe 32 de biți (6,9%). Alți analiști din industrie prognozează rate de creștere identice pentru microcontrolerele pe 8 și 32 de biți.
Evoluția ascendentă a dispozitivelor pe 8 biți evidențiază în mod clar faptul că trebuie să existe unele motive convingătoare pentru a utiliza un dispozitiv pe 8 biți în locul unui MCU pe 32 de biți. Acest articol încearcă să ofere o perspectivă asupra motivelor pentru care dispozitivele pe 8 biți își păstrează cota de piață.
Diferențe esențiale
Diferențele principale dintre MCU pe 8 și 32 de biți sunt costul și structura de preț, performanța CPU, ușurința de utilizare, eficiența funcțiilor apropiate de hardware și consumul static de energie. Atunci când se lansează într-un nou proiect, dezvoltatorii trebuie să analizeze cu atenție cerințele pentru un MCU pe baza capacității de procesare necesare, a gradului de interfațare necesar și, pentru proiectele alimentate cu baterii, a profilurilor de consum de energie foarte importante. Nu există nicio îndoială că o MCU pe 32 de biți oferă performanțe mai mari decât un dispozitiv pe 8 biți, dar inginerul se confruntă cu decizia tradițională de a alege între cel mai bun dispozitiv disponibil pe piață și nevoile reale ale unei aplicații.
Desigur, aceste decizii vor influența foarte mult costul probabil al listei de materiale (BOM). Cu un număr mai mic de porți, un dispozitiv mai puțin complex pe 8 biți va fi cu siguranță mai ieftin decât un dispozitiv pe 32 de biți. Atunci când se compară MCU pe 8 și 32 de biți de la principalii furnizori, fiecare cu o cantitate similară de memorie flash, pin-out etc., dispozitivele pe 8 biți costă de obicei cu aproximativ 20% mai puțin. Dar acesta este doar primul dintre numeroasele considerente. Un alt aspect se referă la ușurința de configurare pentru o nouă dezvoltare.
Facilitatea de dezvoltare
Furnizorii de MCU au tendința de a adăuga mai multe caracteristici și funcționalități la dispozitivele lor pe 32 de biți, spre deosebire de produsele pe 8 biți. În consecință, apar mult mai multe considerente de configurare cu un dispozitiv mai complex. În timp ce unele MCU pe 32 de biți pot funcționa cu o configurație limitată similară cu cea a unui dispozitiv pe 8 biți, nu puteți profita de caracteristicile suplimentare ale dispozitivului mai puternic.
Descărcați acest articol în .Format PDF Acest tip de fișier include grafice de înaltă rezoluție și scheme, atunci când este cazul. |
De exemplu, un dispozitiv ARM tipic pe 32 de biți va avea setări de ceas independente pentru nucleul propriu-zis, pentru magistrala AHB, pentru magistrala APBA și pentru magistrala APBB. Toate acestea pot fi setate la frecvențe diferite. De obicei, va trebui, de asemenea, să treceți la ceasul pe care doriți să îl utilizați, deoarece acesta este setat în software, nu în hardware, ca majoritatea componentelor pe 8 biți. În plus, schimbarea ceasului înseamnă că trebuie să configurați stările de așteptare pentru flash, eventual în funcție de tensiunea VCC măsurată.
O astfel de configurare poate fi mult mai simplă cu un MCU pe 8 biți, totuși. De exemplu, produsele tinyAVR și megaAVR de la Atmel necesită doar inițializarea pointerului de stivă, care necesită de obicei patru linii de cod, înainte de codificarea aplicației. Alegerea ceasului, a detectorului de întrerupere, a funcției pinului de resetare etc., toate sunt preprogramate în dispozitiv.
Arhitectura este, de asemenea, mult mai simplă decât un dispozitiv pe 32 de biți, cu registre interne, periferice și SRAM, toate mapate pe aceeași magistrală de date. Perifericele și unitatea centrală de procesare ar funcționa în mod normal la aceeași frecvență, astfel încât nu este necesară configurarea magistralei periferice. Mai mult decât atât, proiectanții pot evita să fie preocupați de latența în sincronizarea între domenii de ceasuri diferite.
Performanță
Când vine vorba de performanța dorită a CPU, inginerul trebuie să ia în considerare toate cazurile de utilizare. Realitatea este că multe proiecte integrate nu au cerințe de calcul ridicate. Adesea, este necesară foarte puțină manipulare de date, astfel încât echilibrarea acestor nevoi în raport cu cerințele de consum de energie și de interfațare cu perifericele devine crucială.
De exemplu, o aplicație simplă de termostat își va petrece cea mai mare parte a vieții într-un mod de veghe. Din când în când, se va trezi și va măsura temperatura și apoi va lua decizia de a activa/dezactiva un releu sau de a trimite o instrucțiune către un controler gazdă. Apoi își va relua starea de repaus. Cerințele de calcul și de interfață ale acestei aplicații sunt mici, dar multe alte aplicații, cum ar fi detectoarele de incendiu, sculele electrice, debitmetrele și comenzile aparatelor au și ele un profil de utilizare similar.
Eficiența funcțiilor hardware apropiate
Multe microcontrolere moderne încorporează unele funcții hardware care au rolul de a ajuta procesorul să funcționeze cât mai eficient posibil. În cazul Atmel, atât familia de microcontrolere AVR pe 8 biți, cât și cea bazată pe ARM pe 32 de biți, dispun de Peripheral Event System. Un sistem de evenimente este un set de funcții bazate pe hardware care permite perifericelor să interacționeze fără intervenție din partea CPU. Acesta permite perifericelor să trimită semnale direct către alte periferice, asigurând un timp de răspuns scurt și 100% previzibil.
Când se utilizează pe deplin capacitățile sistemului de evenimente, cipul poate fi configurat pentru a efectua operații complexe cu foarte puțină intervenție din partea CPU, economisind atât memoria valoroasă a programului, cât și timpul de execuție. În cazul detectării unui eveniment hardware, este important să se detecteze mai întâi evenimentul și apoi să se comute controlul către rutina de serviciu de întrerupere (ISR) dorită.
În aceste situații, viteza CPU nu este singurul factor determinant. Este vorba de cât timp, în termeni de cicluri, este nevoie pentru a răspunde la întrerupere, a rula ISR-ul și a reveni. După cum va arăta exemplul următor, dispozitivele pe 8 biți pot fi mai eficiente în gestionarea acțiunilor apropiate de hardware.
Considerați să primiți un octet pe SPI, să folosiți o întrerupere pentru a-l detecta și apoi să rulați o rutină ISR simplă pentru a citi octetul de la perifericul SPI și a-l stoca în SRAM. Folosind acest scenariu, tabelul 2 face comparații între un dispozitiv AVR Atmel pe 8 biți și un MCU Atmel ARM Cortex M0+ pe 32 de biți. Calculate cu informațiile disponibile, rezultatele se bazează pe implementări minime. Cu toate acestea, inginerii ar trebui să verifice cu propriile aplicații, deoarece detectarea întreruperii și revenirea de la întrerupere ar putea dura mai multe cicluri decât cele prezentate în tabel. A avea nevoie de 12 cicluri față de 33 de cicluri echivalează cu a avea o lățime de bandă SPI maximă teoretică de 1,67 MB/s pentru unitatea centrală pe 8 biți și o lățime de bandă de 606 kB/s pentru o unitate centrală pe 32 de biți atunci când funcționează la 20 MHz.
Gradul de procesare numerică poate avea, de asemenea, un impact asupra stivei și a memoriei necesare. Aplicarea algoritmului Fibonacci este o metodă deosebit de bună pentru testarea cerințelor de memorie. Deoarece utilizează doar o variabilă locală, totul trebuie să fie împins în stivă.
Când se face o comparație între un AVR pe 8 biți și un dispozitiv ARM pe 32 de biți bazat pe CM0+ și se utilizează un algoritm Fibonacci recursiv în 15 etape, AVR-ul utilizează un total de 70 de octeți de stivă, inclusiv 30 pentru stiva de întoarcere (15 apeluri de adâncime). Dispozitivul bazat pe ARM utilizează 192 de octeți (60 ar trebui să fie stiva de întoarcere). Aceasta înseamnă că CSTACK este de peste trei ori mai mare decât dimensiunea soluției pe 8 biți. În codul C tipic, mai multe variabile de pe stivă vin adesea într-un format împachetat, astfel încât acesta este un colț extrem. Cu toate acestea, a spune că este nevoie de 1,5 până la 3 ori mai mult SRAM pentru aceeași aplicație centrată pe 8 biți pe un dispozitiv pe 32 de biți (față de un dispozitiv nativ pe 8 biți) este o estimare corectă.
Consumul de energie
Niciun articol despre MCU nu ar fi complet fără a investiga consumul static de energie. Numai acest lucru poate fi un factor cheie în alegerea între un dispozitiv pe 8 sau 32 de biți, în special pentru aplicațiile alimentate cu baterii. Tabelul 3 ilustrează diferențele de consum de energie între dispozitivele pe 8 și 32 de biți, atât în mod activ, cât și static.
Tehnologiile de fabricație agresive cresc curentul de scurgere al tranzistorului, care se dublează aproximativ cu fiecare generație de proces și este proporțional cu numărul de porți. Curentul de scurgere crește exponențial la temperaturi mai ridicate, ceea ce poate fi ușor trecut cu vederea atunci când se proiectează un proiect de consum. Telefoanele mobile și playerele media personale sunt transportate peste tot și, după cum am aflat cu toții, temperaturile înregistrate în timpul verii în interiorul unei mașini pot urca cu ușurință peste 40°C.
Cantitatea de timp pe care microcontrolerul o va petrece în modul activ față de modul static contribuie semnificativ la bugetul general de putere al aplicației.
Natural, raportul dintre modurile activ și static va varia în funcție de cerințele aplicației. Reluând exemplul anterior de întrerupere SPI (tabelul 2, din nou) și presupunând o lățime de bandă de date SPI de 80 kb/s, microcontrolerul pe 8 biți va petrece 1,2% din timpul său în modul activ în comparație cu cel pe 32 de biți, care va petrece 3,3% în modul activ (tabelul 4).
Concluzie
Considerarea utilizării unui microcontroler pe 8 sau 32 de biți pentru un viitor proiect poate implica o aplicație Internet of things (IoT). Modul în care IoT prinde efectiv contur provoacă multe dezbateri, dar cu siguranță îi va provoca pe ingineri să facă o evaluare detaliată a cerinței MCU. Conectivitatea wireless, în special ZigBee, va fi, de asemenea, o componentă esențială, dar asta nu înseamnă automat că va fi nevoie de un dispozitiv de putere mai mare.
Descărcați acest articol în .PDF format Acest tip de fișier include grafice de înaltă rezoluție și scheme, atunci când este cazul. |
O serie de produse disponibile cu microcontrolere pe 8 biți satisfac nevoia de niveluri scăzute de procesare și conectivitate wireless. Un astfel de exemplu este seria Atmel ATmegaRFR2, care oferă o soluție de microcontroler fără fir de 2,4 GHz, conformă cu IEEE 802.15.4, cu un singur cip, care se potrivește proiectelor IoT alimentate cu baterii și cu costuri reduse.
Ingar Fredriksen, directorul de marketing MCU al Atmel pentru regiunea EMEA, are sediul în Trondheim, Normay. El a obținut diploma de licență în inginerie electrică la Colegiul Universitar Trodheim.
Paal Kastnes inginer de personal în cadrul echipei MCU Applications, specializată în instruirea personalului Atmel și a clienților în utilizarea microcontrolerelor și a instrumentelor Atmel, este, de asemenea, stabilit în Trondheim. Și-a obținut diploma de licență în inginerie electrică la Colegiul Universitar din Trondheim.
.