Acest articol este o introducere tehnică pentru familia RZ/A, noul procesor embedded de la Renesas. Dispozitivul este disponibil într-un număr de opțiuni și un număr de configurații, concepute pentru a oferi
proiectanților variante multiple, atunci când proiectează unitatea lor TFT sau o aplicație GUI. Acest articol va intra în unele detalii cu privire la caracteristicile familiei RZ/A, inclusiv o prezentare tehnică a arhitecturii memoriei, care include cea mai mare memorie RAM din lume (până la 10MB), precum și o arhitectură cu magistrală special concepută pentru a asigura transfer cu bus rapid la memorie. Dispozitivul este dotat, de asemenea, cu un Video Display Controller de la Renesas (a 5-a generație), care nu este doar capabil de a comanda un ecran până la dimensiunea WXGA, dar, de asemenea, sprijină mai multe funcții suplimentare în hardware, care ar fi de multe ori executate în software, astfel încât să permită funcționare completă la o viteză mai mică de ceas. Dispozitivul este dotat, de asemenea, cu un bloc compatibil OpenVG 1.1; Articolul va reuși să arate modul în care acest lucru poate fi folosit pentru a îmbunătăți performanțele și pentru a reduce depășirea de memorie deja utilizată – memory overhead.
Familia RZ/A de la Renesas este o serie total nouă de microcontrolere embedded care vizează piața de interfețe om-mașină – Human Machine Interface (HMI). Linia RZ de la Renesas înseamnă o nouă direcție luată înspre zona de procesare embedded, bazată pe nucleul Cortex A9 de la ARM, care rulează la 400MHz și include toate drepturile IP pentru a crea o aplicație HMI de ultimă oră fără implicarea de costuri, efort și compromisuri în dezvoltarea curentă de aplicații HMI.
Familia RZ/A de la Renesas este o serie total nouă de microcontrolere embedded care vizează piața de interfețe om-mașină – Human Machine Interface (HMI). Linia RZ de la Renesas înseamnă o nouă direcție luată înspre zona de procesare embedded, bazată pe nucleul Cortex A9 de la ARM, care rulează la 400MHz și include toate drepturile IP pentru a crea o aplicație HMI de ultimă oră fără implicarea de costuri, efort și compromisuri în dezvoltarea curentă de aplicații HMI.
Autor: Robert Kalman, Product Marketing Manager – Industrial Communications Business Group, Renesas Electronics Europe GmbH
Embedded MPU?
Dar ce înseamnă, de fapt, termenul “embedded MPU”? În scopul de a răspunde la această întrebare, trebuie să aruncăm o scurtă privire la oferta actuală pe întreg spectrul MPU / MCU. Astăzi, un MCU conține de obicei memorie flash embedded și RAM, care rulează cod din memoria flash, dar oarecum limitat în ceea ce privește performanța, mai ales atunci când vine vorba de domeniul pe care îl analizăm – nivelul de performanță necesar pentru o aplicaţie Human Machine Interface. Alternativa de astăzi este clasicul sistem cu MPU (sau microprocesor) care atinge nivelul de performanță necesar și îl poate depăși în mod semnificativ; cu toate acestea, tipic, nu va conţine nicio memorie flash internă ci doar o cantitate mică de RAM intern.
MPU-urile tipice au locul lor în piață, la fel ca şi MCU-urile, însă, există cu certitudine un gol semnificativ între cele două zone. Umplerea acestui gol se poate face cu ajutorul unui eMPU. Acesta este ca un MPU, nu conține memorie Flash, dar are un nucleu CPU care rulează la o performanță care nu ar fi posibilă pentru un MCU tipic. Acest nivel de performanță (ca și la MPU) poate fi realizat numai prin rularea de cod din RAM. Spre deosebire de sistemul cu microprocesor, care va utiliza RAM extern, eMPU conține tot RAM-ul de care va avea nevoie pentru aplicație.
După cum se poate vedea în diagramele sistemului de mai jos, un MCU (microcontroler) este evident cel mai simplu, dar eMPU oferă un compromis care înseamnă performanța unui MPU fără complexitatea asociată acestuia.
Tipic, eMPU porneşte de la o memorie flash serială externă, în comparație cu un MPU, care foloseşte de obicei o memorie flash NOR externă. Acest lucru poate avea mai multe avantaje:
• Este posibil să se utilizeze un bloc serial flash QSPI care poate atinge performanțe chiar mai mari decât cele oferite de o memorie flash NOR standard.
• Este nevoie de mai puțin spațiu pe un PCB și mai puțini pini pentru eMPU decât pentru o memorie flash NOR paralelă pe 32-biți.
(N.R. Există două categorii importante de memorii flash denumite după porţile logice NAND şi NOR.
Caracteristicile interne ale celulelor de memorie flash individuale prezintă caracteristici similare cu cele ale porţilor corespunzătoare.)
eMPU are suficientă memorie RAM internă, nefiind nevoie să utilizeze RAM extern, în comparație cu un MPU care va folosi de obicei memorie DDR sau SDRAM externă. Acest lucru poate avea mai multe avantaje:
• Aplicația este decuplată de piața de memorie RAM. Deși acest lucru, probabil, poate să nu fie văzut ca un punct pozitiv pentru proiectantul hardware mediu, orice echipă de aprovizionare va respira ușurată fiindcă va fi liberă de acest lucru.
• Necesită mai puțin spațiu pe un PCB și, de asemenea, mai puțini pini pe eMPU și, împreună cu utilizarea unei memorii flash seriale, poate permite proiectanților să utilizeze o capsulă QFP mult mai mică, pentru a permite un PCB cu 2 straturi, în loc de un PCB multistrat.
• Se elimină cerința pentru o sursă suplimentară de alimentare la 1.8V pentru memoria DDR.
Acum, în mod clar, există o limită prin care performanța unui eMPU nu ajunge la cea a sistemului multi-gigahertz cu patru nuclee dintr-un PC desktop, dar nu toate sistemele HMI de astăzi trebuie să fie construite ca un PC. Există o altă cale!
Caracteristicile dispozitivelor RZ/A
RZ/A se caracterizează printr-un nucleu Cortex A9, care este activat cu un ceas la 400MHz și include opțional o arhitectură cu unitate în virgulă mobilă cu dublă precizie VFP (Visual FoxPro) conformă IEEE754 și opțional, extensia NEON (SIMD) de uz general cu o singură instrucțiune la date multiple pe 128 biți. Aceste extensii accelerează operațiunile tipice în aplicațiile DSP, multimedia și de vizualizare. Nucleul, așa cum este standard pe nucleele Cortex A9, are memorie cache de 32kB pentru instrucțiuni și memorie cache de 32kB pentru date. În plus, acesta include 128kB de memorie cache L2 pentru a se asigura executarea codului la performanță maximă chiar în cazul în care acesta se execută dintr-o memorie non-volatilă externă.
Nucleul, singur, nu iese în evidenţă cu nimic. Caracteristica unică a acestui dispozitiv este includerea de 10MB de RAM intern. Acest RAM este împărțit în 4 blocuri separate. Fiecare bloc are dimensiunea de 2MB și are un bus dedicat larg de 128-biți care rulează la 133MHz. Aceasta înseamnă că fiecare bloc poate fi adresat concomitent cu diferite periferice de pe cip. În același timp, procesorul poate rula cod dintr-un bloc, poate scrie date pe un al doilea bloc, în timp ce al treilea bloc poate conține datele de imagine care să fie scrise la ecranul TFT, ultimul bloc putând fi utilizat pentru vreun acces DMA sau ca buffer de comunicații pentru o stivă TCP/IP; toate acestea fără coliziuni pe bus. Acesta este, desigur, un alt avantaj major al arhitecturii eMPU. Deși un MPU are, tipic, un bus rapid la RAM-ul extern, există, de asemenea, numai unul dintre ele. Astfel, probabilitatea unei coliziuni pe bus este mare.
O caracteristică a memoriei SRAM de 10MB în familia RZ/A este memoria RAM de mică putere. În blocul zero al memoriei RAM există 128kB RAM pentru “retenție-date”, care este, de asemenea, împărțit în continuare, în blocuri mai mici. Aceste blocuri pot rămâne alimentate în modurile de mică putere și permit o trezire semnificativ mai rapidă din aceste moduri. Codul de pornire și chiar datele primului ecran trimise la TFT pot fi salvate, și prin urmare, de îndată ce utilizatorul apasă un buton sau pornește sistemul, este cât mai aproape posibil de o stare activă, imediat. Acest lucru este în mod clar un alt avantaj major asupra sistemelor MPU de astăzi, care, în scopul de a obține cel mai mic consum posibil de energie vor elimina alimentarea cu putere a memoriei RAM și, prin urmare, vor trebui să repornească totul, din nou, de la zero.
O altă caracteristică unică a familiei RZ/A este SPI Multi-I/O. Acest periferic poate fi considerat ca un simplu bloc SPI serial, cu câteva îmbunătățiri suplimentare. Prima astfel de îmbunătățire a blocului este că suportă nu numai modul serial standard, dar, de asemenea, noul mod QSPI. Acest mod utilizează patru linii de date paralele, spre deosebire de busul serial standard pe 3 fire. Cu noua viteză îmbunătățită a acestei conexiuni, din evaluările inițiale se observă o îmbunătățire a performanței de peste 9 ori în comparație cu modulele anterioare SPI. De asemenea, se dovedește că este posibil să se realizeze performanțe chiar mai bune (aproximativ 3%) decât la accesarea unei memorii paralele NOR flash externă, de exemplu.
Acest lucru are rezultatul de a permite un timp de boot-are rapid, fără a fi nevoie pentru a conecta un bus pe 32 de biți la un dispozitiv. Altă caracteristică a blocului SPI Multi-I/O este funcționalitatea “execută în loc”. Blocul permite unităţii centrale (CPU) să acceseze memoria flash serială QSPI ca și cum ar fi fost un spațiu de adrese liniar, extern. Această caracteristică este, de asemenea, susținută de memoria cache L2, astfel încât codul poate fi rulat direct de pe această memorie flash externă. Rezultatul acestei caracteristici este că orice cod critic care trebuie să fi rulat rapid și în mod regulat poate fi rulat din memoria RAM internă, iar codul care nu trebuie să fi rulat în mod regulat poate fi rulat de la memoria flash externă. Deci, cu toate că proiectanții sunt limitați la doar 10 MB de RAM, cantitatea de cod care poate fi scrisă este limitată doar de dimensiunea memoriei SPI flash externă, disponibilă.
În cele din urmă, din punct de vedere al comunicațiilor, dispozitivul vine cu tot ceea ce v-ați aștepta. Există un Ethernet MAC, două interfețe USB2.0 suportând atât gazda și funcționalitatea dispozitivului, precum și până la 5 canale CAN.
O privire de ansamblu asupra Graphics IP (Video Display Controller și OpenVG)
Deci, aşa acum am învățat, familia RZ/A este un procesor rapid, care atinge înaltă performanță pe baza unei memorii interne de 10MB și a unui larg bus de date pentru evitarea coliziunilor. Aceasta suportă, de asemenea, un număr de periferice care susțin toate interfețele standard, fiind de așteptat în același timp, să permită proiectanților de sisteme de a realiza un sistem la un cost de materiale redus, fără a compromite performanța. Toate aceste lucruri sunt frumoase, dar nu se ajunge încă la esența reală a aplicaţiei țintă.
Cum controlezi ecranul?
RZ/A are două caracteristici care fac controlul unui ecran foarte simplu și permit un GUI impresionant. Prima dintre aceste caracteristici este VDC5. Acesta este un controler de afișare video, de generaţie a 5-a, produs de Renesas și este capabil de a comanda ecrane cu o dimensiune maximă de până la 1999 pixeli × 2035 linii, ceea ce îl face cel mai impresionant din această categorie. VDC5 suportă de fapt, până la 2 canale ceea ce înseamnă că pot fi acționate concomitent două ecrane. VDC5 suportă, de asemenea, interfețe digitale standard, precum interfața LVDS, astfel încât tendința de a utiliza interfața LVDS pentru ecrane din ce în ce mai mari poate fi, de asemenea, sprijinită.
Prima porţiune a VDC-ului este controlerul de intrare care poate primi până la două semnale de intrare video cu o dimensiune maximă de până la 1440 × 1024. Controlerul de intrare sprijină compensarea de fază, precum și corecția zgomotului pe orizontală și corecția de contrast. Semnalele de intrare sunt apoi transmise la blocul de scalare.
Blocul de scalare (există două blocuri pe un canal VDC5) poate fi utilizat pentru a scala cele două intrări video, fie în sus sau în jos, pentru a crea imaginea cu dimensiunea corectă pentru ecran. Imaginile pot fi de asemenea rotite, cele două intrări video putând fi chiar suprapuse folosind amestecarea alfa (alpha blending) și o tabelă de căutare a culorilor (colour look-up table – CLUT). Imaginile finale (dacă ambele intrări sunt tratate separat) sau imaginea (în cazul în care numai o intrare este utilizată sau cele două intrări sunt suprapuse) sunt apoi stocate într-un buffer de cadre în memoria RAM și trecute la sintetizatorul de imagine.
Sintetizatorul de imagine combină până la 4 straturi individuale pentru a crea o singură imagine. Atunci când se utilizează numai una, sau nicio intrare video, aceste straturi sunt libere să fie utilizate pentru alte părți ale interfeţei GUI, ca strat suprapus separat sau pictograme. Printr-un proces de amestecare alfa și CLUT, imaginea unică finală este creată pentru ecran și trimisă la controlerul de ieșire.
În final, controlerul de ieșire ia imaginea generată și o trimite la ecranul TFT, fie prin intermediul LVDS, fie prin ieșirea digitală, într-unul din numeroasele formate suportate: RGB888 (24 biți, ieșire paralelă), RGB666 (18 biți, ieșire paralelă), RGB565 (16 biți, ieșire paralelă) sau RGB888 (8 biți, ieșire serială). Datorită operației de amestecare alfa și combinării a mai multor straturi, procesorul poate fi descărcat de această funcționalitate.
Al doilea dispozitiv periferic al RZ/A, care este util pentru dezvoltarea HMI, este motorul grafic compatibil OpenVG, care este un accelerator de grafică vectorială 2D. IP accelerează etapele 2 la 8 ale magistralei OpenVG, folosind hardware dedicat și o bibliotecă testată de conformitate.
Motorul OpenVG poate fi utilizat pentru a umple bufferele cadru, iar VDC5 poate fi apoi utilizat pentru a conduce datele imaginii pe ecran. Avantajul de a folosi OpenVG este că permite utilizarea de grafică vectorială care poate îmbunătăți considerabil eficiența, precum și caracteristica “look and feel” ale GUI.
Se pot da două exemple simple: în cazul în care o imagine trebuie să fie rotită, cel mai simplu mod de a face acest lucru cu o imagine bitmap, este de a salva imaginea de 360 de ori, fiecare rotită cu 1 grad, apoi, pur și simplu se arată fiecare imagine, una după alta. Acest lucru este în mod clar o depășire semnificativă în ceea ce privește utilizarea memoriei și, de asemenea, în ceea ce privește lățimea de bandă a dispozitivului, în timp ce o implementare vectorială a aceleași imagini înseamnă rotirea pur şi simplu a imaginii, suportul pentru această rotație fiind inclus în hardware-ul din dispozitivul RZ. Al doilea exemplu este cel al scalării; în acest caz, o imagine descrie cât o mie de cuvinte, așa că voi lăsa imaginea de mai jos necomentată.
Punând totul împreună
Dispozitivul RZ/A, noul eMPU de la Renesas, este proiectat pentru a umple golul dintre tradiționalul MPU și zonele tradiționale de piață MCU. Acesta dispune de până la 10MB de memorie SRAM embedded și suportă o trezire rapidă de la moduri de consum mai mici. Dispozitivul are nevoie doar de o memorie flash serială și ieftină, din care se poate porni direct.
Memoria de 10MB este de ajuns pentru a stoca ambele buffere – front și back – pentru o aplicație HMI cu buffer dublu. Memoria RAM internă de 10MB din RZ este conectată la o magistrală multi-strat și este separată în blocuri de 2MB, astfel încât memoria RAM poate fi citită sau scrisă, concomitent, din surse multiple. Aceasta permite o performanță ridicată a aplicației interfeței om-mașină pentru a rula pe un sistem care nu are nevoie de RAM extern și care are un număr redus de pini, disponibil în capsule QFP, astfel încât proiectanții sunt capabili să utilizeze un PCB cu 2 straturi.
RZ/A nu va atinge niciodată simplitatea unui microcontroler pe 8 biți cu 16k de memorie ROM şi nici nu va atinge vreodată performanțele unui procesor quad-core la 2GHz, dar Renesas consideră că următoarea ta aplicație de interfaţă om-maşină are nevoie doar de un pic mai multă performanță decât poate oferi un MCU standard, dar fără a face un salt mare la o arhitectură microprocesor.
Renesas
www.renesas.com