Extinderea orizonturilor cu noile periferice ale microcontrolerelor pe 8 biţi

by donpedro

Microchip_EA0217_MCA669_DeschidereMicrocontrolerele au cunoscut multe progrese de la lansarea primului MCU ROM (Read Only Memory) acum peste 40 de ani. Microcontrolerele pe 8 biţi, în particular, s-au dezvoltat de la un simplu controler logic la un circuit inteligent complet integrat ce beneficiază şi de funcţii analogice. Privirea clasică asupra perifericelor unui microcontroler pe 8 biţi a fost una în care fiecare modul era proiectat pentru a realiza o funcţie fixă şi nimic mai mult. Cele mai recente generaţii pe 8 biţi au fost create să fie diferite de la bază, ceea ce reprezintă o schimbare de paradigmă care necesită o abordare complet nouă în proiectarea produsului final. Aceste noi microcontrolere pe 8 biţi au integrat un număr de periferice unice care pot îndeplini funcţii multiple şi sarcini după cum este nevoie. Suplimentar, aceste periferice pot fi configurate şi combinate pentru a crea noi funcţii, anterior dificil de executat şi în unele cazuri chiar imposibil de implementat. Majoritatea acestor noi peri­ferice pot opera independent, fără supervizarea unui nucleu, reducând astfel utilizarea CPU în realizarea sarcinilor necesare. Mai mult, multe dintre peri­ferice pot fi utilizate şi în modul SLEEP, posibilitate utilă pentru majoritatea aplicaţiilor sensibile din punct de vedere al consumului energetic.

Microchip_EA0217_MCA669_Fig-1

Figura 1: Exemplu de aplicaţie cu oscilator controlat numeric.

Utilizarea perifericelor independente de nucleu
Unul dintre cele mai uzuale periferice din acest nou set este CLC (Configurable Logic Cell). Acesta este un modul foarte simplu, dar foarte puternic, care oferă funcţii logice standard — precum AND, OR, XOR, monostabil SR şi circuit bistabil J-K— pe care utilizatorul le poate configura pentru a crea porţi logice pentru condiţionarea semnalului. Semnalele de intrare şi ieşire din modulul CLC pot fi conectate la orice I/O, periferice sau registre, prin conexiune internă. Modulul poate fi utilizat ca un simplu router de semnal, ca un circuit logic de legătură sau ca un circuit inteligent de stare a maşinii pentru controlul revenirii în mod operaţional (wake-up). Microcontrolerele tradiţionale necesită un dispozitiv logic programabil (PLD) extern sau programe suplimentare pentru a obţine controlul logic dorit şi chiar şi aşa nu se oferă toată flexibilitatea CLC.
Oscilatorul controlat numeric (NCO) este un alt modul configurabil ce poate fi utilizat ca un numărător pe 20 de biţi sau ca un controler PWM cu control de frecvenţă variabilă şi înaltă rezoluţie, după cum se poate observa în figura 1. Acesta nu este un circuit uzual PWM/temporizator, în care performanţele şi funcţiile sunt aproape în opoziţie una faţă de alta.
NCO, cu rezoluţia sa mare şi controlul liniar al frecvenţei, poate ajuta la simplificarea unui algoritm de control complex utilizat în mod uzual în multe aplicaţii de surse de alimentare, precum controlul balastului electronic pentru iluminare, cu funcţionalitate de reglare a luminii, prin controlul foarte precis al curentului în circuit. O altă utilizare a NCO este de a comanda o alarmă audio de la o alarmă de fum, deoarece oferă controlul unei frecvenţe variabile, schimbând cu uşurinţă înălţimea tonului alarmei. Controlul mai fin al frecvenţei generate permite de asemenea un reglaj mai bun al tonului şi înălţimii sunetului generat, fără necesitatea unor componente analogie externe.
Chiar dacă aceste periferice integrate pot fi utilizate de sine stătător, magia se întâmplă cu adevărat atunci când mai multe module sunt combinate pentru a crea diverse funcţii. De exemplu, codarea Manchester este comun utilizată în aplicaţii de telecomunicaţii şi stocare de date. Algoritmul uzual Manchester poate solicita foarte mult firmware-ul şi necesită resurse CPU pentru a gestiona sarcina.
Prin utilizarea modulelor NCO şi CLC în tandem pentru a crea un decodor Manchester decoder, această funcţie operează în întregime în hardware cu utilizare nulă a procesorului. Un circuit de criptare Manchester poate fi proiectat utilizând numai un singur modul CLC, fără module, fără niciun bit de firmware.
Alte periferice, precum temporizatorul unghiular (AT), temporizatorul de măsurare a semnalului (SMT) şi acceleratorul matematic (MathAcc), sunt un pic mai sofisticate prin comparaţie cu modulele CLC sau NCO. AT poate fi utilizat pentru măsurarea oricăror semnale periodice – precum traductoare optice, detectoare de trecere prin zero şi senzori Hall — pentru aplicaţii de control motoare şi aplicaţii de alimentare AC, indiferent de viteza motorului sau frecvenţa semnalului. Modulul AT realizează instantaneu transformarea domeniului timp/unghi, totul în hardware şi, încă odată, fără nicio încărcare a procesorului.
Gestionarea acestei sarcini cu un microcontroler tradiţional necesita în mod tipic mai multe temporizatoare pentru a număra şi măsura unităţile de timp, iar apoi acestea trebuiau transformate în domeniul fază/unghi prin calcule matematice (prin firmware) sau prin tabele de căutare stocate în memoria program, dacă se cunoaşte perioada. Abordarea tradiţională necesită mult firmware şi resurse CPU pentru calculele matematice, precum şi constrângeri de dimensiune pentru tabelul de căutare, ceea ce poate limita numărul de valori disponibile, conducând astfel la aproximări şi imprecizii. Modulul AT poate genera automat întreruperi şi evenimente, direct pe baza valorilor fază-unghi configurate de proiectant. Suplimentar, AT are trei funcţii PWM Comparare/Captare (CCP) la dispoziţia utilizatorului.

Microchip_EA0217_MCA669_Fig-2

Figura 2: Aprindere prin descărcare capacitivă utilizând un periferic integrat de temporizator unghiular.

Microchip_EA0217_MCA669_Fig-3

Figura 3: Comparaţie în implementarea unui sistem de aprindere prin descărcare capacitivă.

Comparaţie implementări tradiţionale vs. implementări independente de nucleu
Un alt exemplu de combinaţie între mai multe peri­ferice pentru a simplifica sarcina este controlul aprinderii prin descărcare capacitivă (CDI), ce se poate observa în figura 2, adesea utilizat în motoare mici cu ardere internă.
Microcontrolerul are două sarcini principale într-un sistem CDI controlat digital:
•    Determinarea avansului unghiului de aprindere al bujiei, pe baza informaţiilor de la diferiţi senzori.
•    Stabilirea factorului de umplere al semnalelor PWM pentru a furniza pulsurile de aprindere către convertorul DC/DC pentru generarea scânteilor.
Fără a trece prin toate detaliile de proiectare ale unui sistem de control pentru un motor cu ardere internă, implementarea unui CDI cu ajutorul unui MCU PIC16F161x, combinând AT, CLC şi câteva alte periferice, precum SMT şi MathACC, îmbu­nătăţeşte substanţial performanţa generală, deoarece aceste periferice gestionează eficient calculele RPM şi controlul timpilor de aprindere ale bujiei, încă odată, cu o intervenţie foarte redusă a procesorului. Pentru o analiză mai în detaliu a acestui proiect, vă rugăm să accesaţi nota de aplicaţie AN1980 trecută la bibliografie în finalul articolului.
Figura 3 oferă o comparaţie între metodele convenţionale şi cele independente de nucleu pentru proiectarea unui sistem CDI.
După cum demonstrează figura 3, metoda AT îmbunătăţeşte substanţial performanţele sistemului prin reducerea timpului de execuţie şi utilizare a CPU cu mai mult de 50%, reducând în acelaşi timp şi dimensiunea programului cu 40%.
Există un număr de modalităţi de a genera un semnal PWM, fie prin firmware, fie prin hardware; dar când vine vorba de măsurarea şi extragerea informaţiei de la un semnal PWM primit, opţiunile devin oarecum limitate. Abordarea tipică utilizează temporizatoare şi CCP-uri, cu un mare număr de cicluri CPU pentru a determina valorile pentru puls, perioadă sau factor de umplere. Este posibilă combinarea dintre mo­dulele CLC şi NCO pentru a răspunde acestor sarcini, cu câteva rânduri suplimentare de program. În orice caz, perifericul SMT menţionat în exemplul anterior este un numărător/temporizator pe 24 de biţi cu ceas avansat şi logică poartă, care permite diferite moduri de achiziţie. Aceste moduri includ măsurarea şi stocarea automată a valorilor perioadei şi factorului de umplere, fără supervizarea nucleului sau fără calcule suplimentare. SMT este foarte folosi­tor în orice proiect care măsoară un semnal PWM, precum în cazul controlului motoarelor.
Odată cu creşterea capabilităţilor oferite de aceste periferice avansate, una dintre îngrijorările pro­iectanţilor este cum să gestioneze I/O limitate şi resursele disponibile ale MCU, pentru a maximiza performanţele dispozitivului. Prea multe module şi un număr de pini insuficient a fost una dintre deficienţele care au limitat capabilităţile microcontrolerelor tradiţionale pe 8 biţi cu număr redus de pini. Odată cu adăugarea unor funcţii recente, precum selecţia pinilor pentru periferice (PPS), proiectanţii pot acum direcţiona orice semnal digi­tal către orice pin de I/O, rapid, fără utilizarea unor componente externe. Un proiect uzual ce necesită mai multe UART-uri poate avea nevoie de un microcontroler cu număr mare de pini, cu câteva module UART, pentru a duce la îndeplinire sarcina. Cu noua generaţie de microcontrolere pe 8 biţi, această sarcină poate fi realizată cu orice microcontroler care are un singur UART şi PPS sau CLC pentru a direcţiona cu uşurinţă semnalele de comunicaţie către mai mulţi pini.

Pentru a concluziona, perifericele independente de nucleu oferă mai multă flexibilitate pentru proiectanţi, oferindu-le abilitatea de a configura şi combina câteva periferice, de a crea multiple funcţii de aplicaţii, fără a sacrifica performanţele CPU sau consumul energetic.
Aceste noi periferice hardware fac să dispară dependenţa de nucleu, şi adaugă determinism proiectului general al sistemului. Cea mai nouă generaţie de microcontrolere pe 8-biţi este de aceea considerată mult mai capabilă şi mai puternică faţă de MCU tradiţionale pe 8 biţi, şi poate adesea atinge performanţe mai ridicate decât micro­con­trole­rele pe 32 de biţi cu abordare centrată pe software, prin executarea a numeroase funcţii cu ajutorul hardware-ului integrat, independent de nucleu.

Bibliografie:

Autor:  Jin Xu, Asia Pacific Business Development Manager, MCU8 Division, Microchip Technology Inc.

 

Microchip Technology | www.microchip.com

Sigla-Microchip

S-ar putea să vă placă și

Adaugă un comentariu