Proiectare și optimizare pentru procesarea semnalelor în cortex-m4

Pe măsură ce lipsa spectrului de frecvențe devine mai tangibilă, nevoia de utilizare atentă crește. În aceste condiții, este necesar să se mențină un nivel ridicat de eficiență spectrală pe întreaga bandă de frecvență alocată serviciilor wireless terestre. Articolul se referă la metoda de procesare digitală a semnalelor RF (RF DSP), aplicată efectiv în condiții de impingere imprevizibile.







În varietatea existentă de microcontrolere (MK), este ușor să vă pierdeți. Articolul descrie o metodologie cuprinzătoare pentru selectarea unui model adecvat. Sunt date exemple practice și tabele cu caracteristici de bază ale MC.

Arhitectura Harvard

Procesorul Cortex-M4 este construit în conformitate cu arhitectura Harvard, caracterizată prin prezența autobuzelor separate de comandă și de date. Datorită capacității de a citi simultan comenzi și date din memorie, Cortex-M4 este capabil să efectueze multe operații în paralel, ceea ce accelerează executarea aplicației. AMBA AHB-Lite ICode pe 32 de biți selectează comenzi din zona de cod a memoriei, iar magistrala DCBA AHB-Lite AMBA pe 32 de biți accesează date din zona de cod a memoriei. Busurile periferice oferă acces la componentele din afara procesorului Cortex-M4.

Tipuri de date pe 8 și 16 biți

Cortex-M4 are registre de date pe 32 de biți. Multe aplicații de prelucrare a semnalelor sunt manipulate cu eșantioane de date pe 8 și 16 biți. Registrele pe 32 de biți permit o performanță sporită datorită faptului că pot stoca două eșantioane de date pe 16 biți sau pe patru eșantioane de 8 biți și pot lucra cu astfel de formate de date.
Procesorul Cortex-M4 oferă o gamă largă de funcții SIMD (instrucțiuni simple, date multiple - o instrucțiune, o mulțime de date), care garantează executarea unor astfel de algoritmi pentru numărul minim de cicluri de procesor. Folosind funcțiile SIMD, operațiile numerice pot fi aplicate simultan la două valori pe 16 biți sau patru pe 8 biți.

SIMD aritmetică

Procesorul Cortex-M4 este capabil să efectueze operații aritmetice pe date de 8 și 16 biți ambalate. Diferitele versiuni ale acestor comenzi sunt prezentate în Tabelul 3. Există și alte comenzi puternice care vă permit să modificați jumătate de cuvânt în al doilea registru al operandului și să efectuați diverse operații cu jumătate de cuvinte. Există, de asemenea, comenzi pentru adăugarea unei diferențe nesemnate care poate funcționa cu date de imagine pixel și sunt foarte utile în aplicații, cum ar fi calculul traiectoriei.

Tabelul 3. Operațiuni aritmetice SIMD ale procesorului Cortex-M4

Operații matematice cu cutoff

Valorile de eșantionare a datelor în algoritmii de procesare a semnalelor cu puncte fixe trebuie să rămână într-un interval de numere clar definit. Dacă numerele sunt prea mici, efectul zgomotului de cuantizare degradează performanța. În cazul în care numerele sunt prea mari, atunci există o posibilitate de depășire. Punctele fixe de algoritmi necesită o scalare atentă și sunt aproape întotdeauna proiectate pentru a permite o eventuală depășire în anumite condiții. Manetele aritmetice cu număr întreg standard depășesc cel mai rău posibil: se efectuează un acces ciclic la valoarea de depășire a eșantionului, ceea ce duce la întreruperea continuității semnalului. Pentru a reduce acest efect, procesorul Cortex-M4 oferă operații matematice cu cutoff. Când valoarea eșantionului este depășită, este trunchiată la valoarea maximă pozitivă sau negativă. Cutofful apare în același ciclu ca și operațiunea aritmetică și nu implică costuri neproductive (a se vedea Figura 3).

Proiectare și optimizare pentru procesarea semnalelor în cortex-m4

Fig. 3. Prelucrarea semnalelor

Multi-registru schimbător circular

Operațiile de schimbare sunt, de asemenea, foarte frecvente în algoritmii DSP cu un punct fix. Deplasarea este folosită, de exemplu, pentru a oferi biți suplimentari de protecție împotriva supraîncărcării. Majoritatea dispozitivelor pot, de regulă, să deplaseze valori cu un bit spre stânga sau spre dreapta, dar sunt necesare operații de repetare repetate în mod repetat. În procesorul Cortex-M4, datele sunt deplasate la un număr arbitrar de biți la stânga sau la dreapta într-un singur ciclu de ceas, ceea ce îmbunătățește eficiența codului.

Implementarea hardware-ului în MK, care nu poate fi folosită simplu și convenabil, este un lucru inutil. Simplitatea programării este crucială pentru dezvoltarea rapidă a hardware-ului de înaltă performanță. Timp de mulți ani, s-au făcut încercări de a face tehnologia microcontrolerului disponibilă pe piața de masă, folosind instrumente de dezvoltare software foarte prietenoasă pentru crearea de aplicații complexe. Procesorul Cortex-M4 și ecosistemul său de suport software sunt, de asemenea, menite să îmbunătățească principiul ușurinței utilizării în crearea funcțiilor de prelucrare a semnalelor care în mod tradițional au fost considerate dificil de implementat.







Instrumente de dezvoltare software

Funcțiile integrate de procesare a semnalelor procesorului Cortex-M4 simplifică dezvoltarea software-ului de aplicație utilizând un singur pachet de instrumente pentru dispozitivul de procesare în comparație cu arhitecturile care folosesc procesoare separate de aplicații împreună cu DSP-uri programabile sau acceleratoare cu funcții fixe. Un mediu de dezvoltare unic accelerează timpul la piață, deoarece software-ul joacă un rol din ce în ce mai important în dezvoltarea sistemului.
Multe operațiuni de procesare a semnalului de înaltă performanță ale procesorului Cortex-M4 pot fi îmbunătățite cu ajutorul compilatorului. Când este necesară optimizarea codului, compilatoarele C oferă suport pentru funcțiile încorporate pentru implementarea operațiilor de asamblare la nivel scăzut. Funcțiile încorporate fac posibilă utilizarea tuturor capabilităților de programare în asamblare în mediul de dezvoltare C și, în același timp, evitarea complexității codului de asamblare.

Standardul interfeței de programare a MK Cortex (CMSIS)

În mod normal, standardele sunt utilizate pentru a îmbunătăți calitatea produselor și pentru a asigura aplicarea lor în diferite proiecte. În industria electronică există multe astfel de standarde, dar pe piața MC există numeroase arhitecturi de procesoare de marcă în care software-ul standard standard nu poate fi utilizat. Această situație se schimbă rapid în primul rând datorită introducerii rapide a procesoarelor ARM Cortex-M. Pentru prima dată, industria MK încorporată a reușit să se standardizeze pe baza unei singure platforme hardware populare.
ARM a creat standardul cortex Cortex Cortex (Cortex Microcontroller Software Interface Standard), care permite producătorilor de semiconductori și microprogramatorilor să creeze programe care pot fi ușor integrate în dispozitive. Standardul CMSIS a fost dezvoltat în strânsă cooperare cu mai mulți furnizori cheie de semiconductori și software. CMSIS este un nivel hardware independent al producătorului, care oferă o abordare unificată a interfeței periferice, a componentelor RTOS și a microprogramelor (a se vedea figura 4). Acest standard este scalabil, ceea ce garantează compatibilitatea acestuia pentru toate MC-urile bazate pe procesoare de familie Cortex-M - de la membrii mai tineri ai acestei familii cu memorie de 8 KB la dispozitive cu periferice complexe de comunicare, cum ar fi Ethernet sau USB-OTG. CMSIS a fost conceput ca un standard software deschis, pe care oricine îl poate folosi.

Proiectare și optimizare pentru procesarea semnalelor în cortex-m4

Pentru a reduce cheltuielile aeriene în ciclurile frecvent inițiate, există o metodă de implementare a unei circuite pe care compilatorul o folosește, dar poate fi folosită și manual pentru a îmbunătăți performanța. Aceasta este o metodă eficientă de optimizare independentă de limbă. În fiecare ciclu există costuri neproductive pentru verificarea numărătorului de buclă și creșterea acesteia în fiecare iterație (3 cicluri în procesorul Cortex-M4). Implementarea unei buclă procesează indici de ciclu n într-o singură iterație, ceea ce reduce costurile de n ori (vezi Tabelul 9). După cum se poate observa din tabel, bucla interioară are acum 5,75 cicluri pe coeficient de filtrare.

Tabelul 9. Codul de implementare a buclă-ului intern pentru calcularea filtrului FIR

Implementarea ciclului de 4 ori

Un total de 5,75 cicluri pe coeficient de filtrare

suma + = coeffs [k] * state [stateIndex];

suma + = coeffs [k] * state [stateIndex];

suma + = coeffs [k] * state [stateIndex];

suma + = coeffs [k] * state [stateIndex];

costurile neproductive ale ciclului

2 x 4 = 8 cicluri

Tabelul 10. Utilizarea comenzilor SIMD pentru optimizarea codului bucla interioară pentru calculul filtrului FIR

Un total de 2,375 cicluri de ceas pe coeficient de filtrare

filtLen = filtLen <<2;

pentru (k = 0; k suma = __SMLALD (c, s, suma);

suma = __SMLALD (c, s, suma);

suma = __SMLALD (c, s, suma);

suma = __SMLALD (c, s, suma);

Total 19 de cicluri sau 2,375 cicluri de ceas per factor

Procesarea unui filtru FIR necesită un acces foarte frecvent la memorie. 12 dintre cele 19 măsuri din ultima versiune a codului sunt legate de accesul la memorie. De exemplu, 2 descărcări consecutive necesită trei cicluri de ceas ale procesorului Cortex-M4, iar comanda MAC necesită doar un ciclu de ceas. Când un bloc de date este procesat, lățimea de bandă a memoriei poate fi îmbunătățită prin calcularea simultană a mai multor ieșiri și cache-ul multiplicării coeficienților și variabilelor de stare. Figura 7 prezintă o schemă de cache pentru variabilele intermediare.

Proiectare și optimizare pentru procesarea semnalelor în cortex-m4

Fig. 7. Cachearea variabilelor intermediare

Funcțiile MK și DSP se apropie repede, deoarece utilizatorii au nevoie de tehnologii eficiente și ușor de utilizat pentru procesarea semnalelor. Procesorul ARM Cortex-M4 oferă o modalitate excelentă de implementare a dispozitivelor digitale de gestionare a semnalelor pentru aplicații precum managementul alimentării, automatizarea industrială, integrarea audio, gestionarea digitală a energiei și aplicațiile pentru automobile.
procesor Cortex-M4 extinde procesoarele Cortex-M de familie în procesarea semnalului digital prin introducerea unei construcții DSP funcții cum ar fi un singur ciclu de înaltă performanță comenzi, SIMD-aritmetică multiplica-se acumuleze, operații matematice Cutoff și blocuri de calcul cu virgulă mobilă unică precizie.
Dezvoltarea aplicațiilor de pe Cortex-M4 este ușor și se poate face în întregime în C. Folosind tehnici simple, vă puteți dezvolta programe cu costuri minime si efort pentru dezvoltarea optimizat. procesor Cortex-M4 - o opțiune excelentă pentru sistemele de construcție bazată pe ultima generație de IC și controlere de semnal digital, deoarece astfel de sisteme sunt proiectate pentru aplicații care necesită capacități mai mari de procesare a semnalului.







Articole similare

Trimiteți-le prietenilor: