Constrângerea dezvoltării embedded

by donpedro

Proiectarea unor produse embedded, utile şi ieftine poate fi o provocare chiar şi pentru cei mai experimentaţi ingineri. În prezent, proiectele embedded necesită optimizarea numărului de componente, a dimensiunii fizice, a consumului de putere sau a costului, sau a tuturor celor de mai sus. Produsele embedded, complet optimizate folosesc foarte puţine resurse ce se irosesc. Aceasta forţează adesea proiectanţii să aleagă componente mai puţin costisitoare care CRED ei că vor funcţiona acolo unde componente mai scumpe ŞTIU că vor funcţiona. Ne referim la această situaţie numind-o “Constrângerea dezvoltării embedded”.
Constrângerea dezvoltării embedded este acel sentiment îngrozitor care apare când îţi dai seama că partea pe care ai pus bazele proiectului tău se dovedeşte a fi insuficientă.
Aceasta se întâmplă de obicei în mijlocul unui proiect şi provine din micşorarea anumitor resurse importante – determinând oprirea procesului de dezvoltare. Deoarece microcontrolerul pe care îl folosiţi include o varietate de resurse incluse într-un chip, există din abundenţă oportunităţi pentru a experimenta constrângerea.

Probleme comune MCU
Când folosim unităţi de microcontroler tradiţionale, există trei tipuri majore de resurse care, în mod obişnuit, sunt insuficiente:
spaţiul memoriei program;
conexiunile I/O;
setul periferic disponibil.
În continuare sunt prezentate câteva tehnici comune de proiectare care ajută la oprirea constrângerii înainte de a începe.
Când proiectăm un sistem îmbunătăţit, codul ales pare totdeauna că umple tot spaţiul disponibil … şi apoi el creşte mai mult. Dacă folosiţi un nivel mai ridicat al limbajului de proiectare, cum ar fi C, puteţi rezolva problema spaţiului codului prin cumpărarea unui compilator mai eficient. Preţul unui compilator este în mod obişnuit legat de abilitatea sa de a genera cod care este eficient atât în ceea ce priveşte spaţiul cât şi în ceea ce priveşte timpul de funcţionare.
În timp ce costul uneltei de dezvoltare este întotdeauna un punct important, o doză suplimentară de eficienţă reduce costul, dacă aceasta vă permite să terminaţi proiectul fără optimizări suplimentare pe aplicaţia dumneavoastră.
De asemenea, puteţi optimiza software-ul pentru a reduce spaţiul codului – fie că faceţi codificarea în limbaj de asamblare, fie în C. Vă puteţi concentra pe acest aspect al codului dumneavoastră şi, uzual, găsind căi mai eficiente de rezolvare ale aceleiaşi sarcini.
Totuşi, acesta este un proces care necesită timp care produce răspunsuri diminuate cu cât se lucrează mai mult la el.
O altă cale este utilizarea de intrări/ieşiri necesare realizării a tot ceea ce necesită proiectul dumneavoastră. În această situaţie, puteţi încerca să multiplexaţi funcţiile pe acelaşi pin (folosiţi acelaşi pin atât ca intrare cât şi ca ieşire) sau chiar folosiţi ieşirea pentru două funcţii diferite (implementând atât starea sus cât şi starea jos a pinului).
Setul periferic disponibil al unui anumit microcontroler este o altă caracteristică ce cauzează probleme pentru un proiectant. La jumătatea drumului proiectului dumneavoastră, descoperiţi că aveţi nevoie de un periferic la care nu v-aţi gândit la începutul proiectului. Adesea puteţi substitui implementarea unui software al unui periferic hardware care vă lipseşte. Un exemplu în acest sens este o rutină software pentru a face comunicaţie asincronă pe un port pin fără periferic hardware. Aceasta poate fi o bună soluţie atâta timp cât aveţi suficient spaţiu CPU disponibil pentru a manevra volumul de lucru suplimentar.
Adesea, proiectanţii experimentează “Constrângerea dezvoltării embedded” la proiecte reuşite ale lor. În ciuda tehnicilor descrise mai înainte, “Constrângerea” primejduieşte căutările de a finaliza un proiect la timp şi cu un anumit buget.

Cauze fundamentale
Cauzele fundamentale ale “Constrângerii” sunt lipsa flexibilităţii şi volumul total de microcontrolere ce se află pe piaţă. Când selectaţi un microcontroler, căutaţi prin grămada de informaţii până găsim setul complet de caracteristici de care avem nevoie pentru proiectul dumneavoastră.
De cele mai multe ori, cerinţele şi caracteristicile sistemului se modifică pe la jumătatea drumului – punându-vă în situaţia de a re-configura resursele sau de a modifica microcontrolerul la jumătatea procesului de proiectare. Cele mai multe MCU nu furnizează o cale de upgradare clară pentru a găsi un nou dispozitiv atunci când cel curent nu mai este util pentru proiectul dumneavoastră. Deoarece există atât de multe microcontrolere disponibile (şi caracteristicile lor variază atât de mult), găsirea piesei upgradate care are tocmai resursele necesare crescute este extrem de rară. De aceea, chiar cea mai mică modificare în mijlocul ciclului de proiectare poate conduce la eşecuri majore.
Pentru a rezolva această problemă şi a uşura “Constrângerea”, Cypress MicroSystems, a dezvoltat o linie de sisteme semnal mixat care se caracterizează prin controler pe placă. Aceste dispozitive PSoC (Programmable System on Chip) vă permit să personalizaţi setul periferic în aşa fel încât să se adapteze cel mai bine la aplicaţia dumneavoastră – în orice moment pe durata procesului de dezvoltare. Fiecare parte conţine blocuri de circuite analogice şi blocuri de circuite digitale care pot fi configurate în perifericele care se potrivesc cel mai bine aplicaţiei dumneavoastră. Când liderul departamentului de marketing din firma dumneavoastră vă cere să faceţi o altă modificare în setul de caracteristici ale sistemului, puteţi modifica simplu configuraţia – în loc să treceţi din nou prin chinurile alegerii unei noi piese.
Blocurile analogice şi digitale încorporate sunt folosite pentru a crea periferice pe aceste dispozitive. Blocurile PSoC digitale pot implementa o varietate de funcţii microcontroler standard, cum ar fi timere, PWMe (Pulse Width Modulators) şi canale de comunicaţie serială. Ele pot, de asemenea, să implementeze funcţii care nu sunt în mod normal disponibile în hardware pe microcontrolere – cum ar fi PRS (Pseudo Random Sequence generators) şi CRC (Cyclical Redundancy Checkers).
Fiecare din blocurile digitale serveşte ca o resursă de 8 biţi, însemnând că puteţi face un timer de 8 biţi de la un bloc digital. Blocurile digitale pot fi, de asemenea, înşiruite împreună dacă aveţi nevoie de lăţimi bit mai mari – făcând un PWM de 16 biţi din două blocuri digitale ce lucrează împreună.
Pe de altă parte, blocurile analogice ale acestei noi arhitecturi sunt construite în jurul amplificatoarelor operaţionale. Trei tipuri de blocuri analogice suportă o largă varietate de funcţii. Unul din aceste blocuri analogice are mai multe multiplexoare analogice pe care le puteţi seta pentru a controla topologia căii de răspuns şi o matrice rezistor programabil de precizie. Celelalte două tipuri de blocuri analogice sunt, de asemenea, construite în jurul amplificatoarelor operaţionale, dar au reţele de condensatoare pentru a fixa caracteristicile blocului.
Puteţi folosi blocurile analogice singure pentru a crea filtre şi stadii de amplificare, sau împreună cu blocurile digitale pentru a crea funcţii cum ar fi convertoare A/D şi convertoare D/A. Dumneavoastră alegeţi setul periferic, aşa că nu trebuie să recurgeţi la a face periferice software care consumă din spaţiul codului şi reduc performanţa.
Noul dispozitiv se caracterizează, de asemenea, prin resurse generoase de interconectare. Puteţi dirija atât semnale analogice cât şi semnale digitale între diferite şi variate blocuri funcţionale, creând astfel arhitectura sistemului dorită de dumneavoastră chiar pe dispozitiv. De aceea, puteţi avea un semnal analog ce vine într-un pin de la un senzor, să-l conduceţi prin stadii succesive de amplificare, filtrare şi conversie A/D şi introdus în CPU pentru procesare. Nivelul crescut de flexibilitate a interconectării este o altă caracteristică a acestei arhitecturi, care vă permite să lucraţi pe toate problemele de I/O pe care le puteţi întâmpina.

Unelte de dezvoltare

Alegerea siliciului este influenţată în mare măsură de disponibilitatea uneltelor de înaltă calitate. Cypress MicroSystems a creat, de asemenea, un IDE (Integrated Development Environment) pentru dezvoltare cu aceste produse. Numit “PsoC Designer”, programul vă permite să configuraţi resursele analogice şi digitale de la o interfaţă grafică utilizator. Dumneavoastră creaţi setul periferic care se potriveşte cel mai bine aplicaţiei şi software-ul generează automat un set de fişiere care setează biţii registrului corespunzător pentru a implementa alegerile făcute. IDE-ul creează, de asemenea, interfeţe de programare aplicaţie pentru perifericele pe care le-aţi selectat pentru a iuţi dezvoltarea software-lui. Când vă apucaţi de un nou proiect embedded, adesea mergeţi într-un teritoriu neexplorat şi nu puteţi prevedea ce modificări vor apărea – singura certitudine este modificarea. Cu toate că există multe tehnici pentru a învinge aceste modificări din proiectul dumneavoastră, există, de asemenea, o nouă soluţie microcontroler care oferă un mai mare grad de flexibilitate. Aceasta poate fi tocmai arma de care aveţi nevoie pentru a ieşi din constrângerea dezvoltării embedded următoare.

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