Elemente de bază privind utilizarea memoriilor în sistemele embedded

2 MARTIE 2020

Memoria reprezintă o componentă importantă a fiecărui sistem embedded bazat pe microcontroler. De exemplu, dezvoltatorii au nevoie de suficientă memorie RAM pentru a reține toate variabilele volatile, pentru a crea un registru tampon și pentru a gestiona diverse pachete de date ale aplicațiilor. Pe cât de importantă este memoria RAM pentru un sistem embedded, dezvoltatorii au nevoie și de un loc unde să stocheze programul de aplicație, datele non-volatile și informațiile de configurare. Extinderea opțiunilor oferite de tehnologia memoriilor non-volatile face dificilă determinarea memoriei potrivite pentru o aplicație. Articolul oferă o introducere în diferitele tehnologii și folosește exemple de la furnizori precum ON Semiconductor, Adesto Technologies, Renesas, ISSI, Cypress Semiconductor, Advantech, GigaDevice Semiconductor și Silicon Motion pentru a ajuta dezvoltatorii să înțeleagă caracteris­ticile fiecărui tip de memorie. De asemenea, pentru ca acestea să poată fi utilizate cât mai eficient, articolul vă oferă sfaturi privind alegerea memoriei potrivite pentru o aplicație.

EEPROM și FRAM în sistemele embedded

Primul și cel mai des utilizat dispozitiv de memorie care este luat în considerare la integrarea într-un sistem embedded este memoria EEPROM. Aceasta este o memorie nevolatilă care este adesea folosită pentru a stoca parametrii de configurare a sistemului pentru o aplicație. De exemplu, un dispozitiv conectat la o rețea, de tipul unei magistrale CAN, poate stoca ID-ul în EEPROM.

Caracteristicile care recomandă memoria EEPROM să fie o alegere bună pentru dezvoltatorii de sisteme embedded sunt:

  • O amprentă fizică mică
  • Soluție relativ ieftină
  • Rata obișnuită de transfer, care variază de la 100 până la 1000 Kbiți/s
  • Interfață electrică standardizată
  • De obicei, acceptă interfețe I2C și SPI

Figura 1: CAT24C32WI-GT3 este o memorie EEPROM de 1 Kbiți de la ON Semiconductor care se poate conecta la un microcontroler printr-un port I2C sau SPI pentru a stoca date de configurare și date ale aplicației. (Sursa imaginii: ON Semiconductor)

O căutare rapidă pentru memorii EEPROM pe site-ul Digi-Key arată în prezent nouă furnizori de dispozitive EEPROM, cu peste 5,800 de variante. De exemplu, CAT24C32WI-GT3 de la ON Semiconductor este un dispozitiv EEPROM de 32 Kbiți (4 KB), este disponibilă într-o capsulă SOIC cu 8-pini și se poate conecta la magistrala I2C la viteze de până la 1 MHz (Figura 1).

Ceea ce este interesant în legătură cu EEPROM-ul este că aceasta este inclusă uneori direct în microcontroler. De exemplu, microcontrolerul R7FS128783A01CFM#AA1 pe 32-biți de la Renesas are integrată o memorie EEPROM de 4 kKB ce poate fi folosită de dezvoltatori.

Acest lucru presupune că nevoile de configurare ale aplicației nu depășesc memoria de 4 KB. În caz contrar, dezvoltatorii trebuie să folosească un dispozitiv extern sau ar putea emula memorie EEPROM suplimentară folosind memoria flash a microcontrolerului.

În ciuda popularității, memoria EEPROM are următoarele dezavantaje potențiale:

  • De obicei, limitarea la 1,000,000 de cicluri de ștergere/scriere
  • Viteza de scriere a ciclurilor este de aproximativ 500 nanosecunde (ns)
  • Necesitatea unor instrucțiuni multiple pentru a scrie o celulă
  • Păstrarea datelor pentru 10 ani sau mai mult (mai nou, este nevoie de 100 de ani sau mai mult)
  • Susceptibilitate la radiații și temperaturi ridicate de operare

Figura 2: Familia FRAM de la Cypress înglobează o varietate de memorii cu diferite variante de stocare, de la 4 Kbiți (Kb) până la 4 Megabiți (Mb), care se pot conecta la un microcontroler prin SPI pentru a stoca datele de configurare și datele aplicației. FM25L16B-GTR (din imagine) operează până la 20 MHz. (Sursa imaginii: Cypress Semiconductor)

EEPROM funcționează bine în multe aplicații, dar acolo unde este necesară o fiabilitate ridicată – cum ar fi în industria auto, medicală sau în sistemele spațiale – dezvoltatorii vor dori să utilizeze o soluție de memorie mai robustă, cum ar fi memoria FRAM.

Denumirea FRAM provine de la „memorie feroelectrică cu acces aleatoriu” și oferă mai multe avantaje față de memoria EEPROM:

  • Este mai rapidă (ciclurile de scriere sunt mai mici de 50 ns)
  • Are mai multe cicluri de scriere (până la 1 trilion față de 1 milion pentru EEPROM)
  • Consum de putere mai mic (necesită 1.5 volți pentru operare)
  • Mai tolerantă la radiații

FRAM este disponibilă în variante de memorie similare cu cele ale memoriei EEPROM. De exemplu, familia FRAM de la Cypress Semiconductor poate varia de la 4 Kbiți la 4 Mbiți. FM25L16B-GTR are 16 Kbiți (Figura 2). Este disponibilă într-o capsulă SOIC cu 8-pini și poate opera până la 20 MHz.

Figura 3: CY15B104Q-LHXIT este un dispozitiv de 4 Mbiți, care operează până la 40 MHz. Face parte din familia Cypress FRAM, putând avea valori de la 4 Kbiți la 4 Mbiți. (Sursa imaginii: Cypress Semiconductor)

Vârful de gamă este reprezentat de CY15B104Q-LHXIT de la Cypress Semiconductor, care are 4 Mbiți și suportă viteze de interfațare de până la 40 MHz (Figura 3). Câteva caracteristici interesante ale acestei memorii FRAM includ:

  • Păstrarea datelor pentru 151 ani
  • 100 de trilioane de cicluri de citire/scriere
  • Este un înlocuitor direct pentru memoria EEPROM și memoria serială flash

După cum era de așteptat, memoria FRAM este mai scumpă decât EEPROM, motiv pentru care este important să cântăriți cu atenție factorii de mediu în care va opera un dispozitiv, atunci când selectați memoria potrivită pentru o aplicație.

Memorii Flash, eMMC și SD card în sisteme embedded

Memoria flash dintr-un sistem embedded poate fi utilizată în diferite scopuri. În primul rând, memoria flash externă ar putea fi folosită pentru a extinde memoria flash internă, cu rolul de a crește memoria disponibilă pentru programul aplicației. Acest lucru se face în mod obișnuit folosind module flash SPI precum GD25Q80CTIGR de la GigaDevice Semiconductor (figura 4). GD25Q80CTIGR ar putea fi utilizată pentru a extinde memoria internă cu 8 Mbiți, presupunând că microcontrolerul este proiectat cu această caracteristică – conectare prin interfața SPI.

Figura 4: Memoria flash GD25Q80CTIR de la GigaDevice Semiconductor Limited poate fi utilizată pentru a extinde memoria flash internă cu 8 Mbiți utilizând portul SPI. (Sursa imaginii: GigaDevice Semiconductor Limited)

În al doilea rând, memoria flash externă ar putea fi folosită pentru a stoca informațiile de configurare sau date ale aplicației, în locul unei memorii EEPROM sau FRAM. Un cip extern de memorie flash poate fi folosit pentru a reduce costurile legate de lista de materiale necesare (BOM) sau pentru a mări memoria internă pentru datele stocate din aplicație. Se poate configura o schemă cu memoria și perifericele microcontrolerului care să includă și această memorie flash externă astfel încât să îi fie mai ușor dezvoltatorului să o acceseze, fără a fi necesar să efectueze apeluri personalizate către un driver, care ar trebui să se interfațeze cu o memorie EEPROM sau FRAM.

Un exemplu de dispozitiv de memorie flash externă care ar fi utilizat în acest scop este AT25SF161 de la Adesto Technologies (Figura 5). Aceasta utilizează o interfață SPI în așteptare (QSPI). QSPI este o extensie la protocolul normal SPI, care permite transferul mai multor date pentru sistem. Acest lucru este extrem de interesant pentru dezvoltatorii care trebuie să stocheze sau să recupereze cantități mari de date pe durata unei singure tranzacții.

QSPI funcționează prin eliminarea intervenției procesorului asupra perifericului QSPI și modificarea interfeței standard cu patru pini (MOSI, MISO, CLK și CS) la una cu șase pini (CLK, CS, IO0, IO1, IO2, IO3). Acest lucru permite ca patru pini să fie utilizați pentru intrare și ieșire față de cei doi pini tradiționali ai interfeței SPI.

Figura 5: Dispozitivele externe de memorie flash AT25SF161 de la Adesto Technologies pot fi utilizate pentru extinderea memoriei flash interne. Acestea dispun de o interfață QSPI pentru stocarea și recuperarea mai rapidă a datelor. (Sursa imaginii: Adesto Technologies)

Nu în ultimul rând, memoria flash poate fi utilizată pentru a stoca datele aplicației și informații despre sarcină utilă. De exemplu, un sistem GPS nu stochează toate hărțile, local, pe procesor; acesta folosește un dispozitiv extern stocare, precum un SD card sau un dispozitiv eMMC. Aceste dispozitive de stocare media pot fi conectate la un microcontroler prin SPI sau printr-o interfață SDIO dedicată, care permite o interfațare eficientă cu dispozitivul de memorie externă.

De exemplu, IS21ES04G-JCLI eMMC de la ISSI poate fi conectată direct la o interfață SDIO a microcontrolerului, pentru a adăuga dispozitivului 32 Gbiți de memorie flash (Figura 6).

Figura 6: Modulul flash eMMC de la ISSI are 32 Gbiți de memorie și se poate conecta la un dispozitiv gazdă prin SPI sau SDIO. (Sursa imaginii: ISSI)

Din punct de vedere al interfeței electrice, cardurile SD și dispozitivele eMMC sunt similare. Adică au aceiași pini comuni care sunt utilizați pentru conectarea dispozitivelor la un microcontroler, deși vin în capsule diferite. Totuși, cele două tipuri de memorie pot fi destul de diferite unele de altele. Față de cardurile SD, memoria eMMC prezintă, în general, următoarele diferențe:

  • Este mai robustă și este mai puțin probabil să fie coruptă fizic
  • Interacțiunea este mai rapidă
  • Este mai scumpă
  • Este lipită pe placă și nu poate fi demontată

Dacă utilizatorul nu are nevoie să înlocuiască memoria, atunci utilizarea eMMC oferă o soluție mai robustă, dar va depinde de aplicația finală. În ambele cazuri, un dezvoltator trebuie să își selecteze tipul de memorie cu atenție, deoarece nu toate memoriile sunt la fel.

De exemplu, un subsistem care va fi plasat într-un automobil poate solicita ca memoria să fie testată și certificată ca fiind fiabilă la un standard mai înalt decât dispozitivele flash obișnuite. În acest caz, un dezvoltator va căuta o memorie certificată pentru industria auto, cum ar fi modulul SM668GE4-AC eMMC de 4 GB de la Silicon Motion.

Figura 7: Cardul microSD SQF-MSDM1-4G-21C SQFlash de la Advantech dispune de 4 GB de memorie și se încadrează în Clasa 10 de viteză de scriere. (Sursa imaginii: Advantech Corp

Când vine vorba de carduri SD, dezvoltatorii trebuie să acorde o atenție deosebită la ceea ce cumpără, deoarece, la fel ca la memoriile eMMC, nu toate cardurile SD sunt identice. Dezvoltatorii trebuie să examineze cu atenție clasa de viteză și temperatura de operare pentru card. De exemplu, la majoritatea cardurilor SD, temperatura de operare este cuprinsă între 0 și 70°C, ceea ce înseamnă un domeniu potrivit pentru electronica de larg consum.

Există, de asemenea, clase de viteză pentru fiecare card, care descriu viteza maximă de transfer ce poate fi atinsă. De exemplu, o încadrare în clasa 2 înseamnă că un card va fi lent pentru o aplicație care stochează imagini, spre deosebire de un card din clasa 10, care este proiectat pentru videoclipuri HD, precum cardul microSD SQF-MSDM1-4G-21C SQFlash de 4 GB de la Advantech.

Sfaturi și trucuri pentru selectarea memoriei

Selectarea tipului de memorie și a interfeței potrivite pentru un produs embedded poate fi o provocare. Iată o serie de „sfaturi și trucuri” pe care dezvoltatorii trebuie să le ia în considerare atunci când aleg memoria potrivită pentru o aplicație:

  • Identificați clar condițiile de operare pentru memorie, cum ar fi:
    • Estimarea ciclurilor de ștergere/scriere
    • Condiții și factori de mediu, cum ar fi temperatura, vibrațiile și radiațiile
    • Cantitatea datelor ce urmază a fi stocate
  • Determinați vitezele de transfer minime și maxime necesare pentru a utiliza cu succes memoria pentru aplicație
  • Selectați tipul de interfață de memorie care corespunde cel mai bine vitezei de transfer a datelor
  • Pentru condiții dure de mediu, cum ar fi sistemele din industria auto sau aeronautică, selectați memoria care are specificații pentru aceste domenii sau care este tolerantă la radiații
  • Utilizați o placă separată pentru a testa dispozitivul de memorie selectat, prin mixarea acesteia cu kitul de dezvoltare al microcontrolerului

Urmați aceste sfaturi pentru a vă asigura că selectați memoria potrivită pentru aplicația voastră embedded.

Concluzie

Dezvoltatorii beneficiază astăzi de o gamă largă de dispozitive de memorie nevolatilă de unde își pot alege soluția potrivită pentru stocarea datelor, în funcție de codul aplicației și până la informațiile de configurare. După cum a fost prezentat, dezvoltatorii trebuie să evalueze cu atenție nevoile aplicației lor și apoi să selecteze cu atenție tipul și interfața de memorie pentru a echilibra aceste nevoi cu costurile aplicației.

Autor: Rich Miron – Inginer de aplicații

Rich Miron, Inginer de aplicații la Digi-Key Electronics, face parte din grupul de autori care crează articole tehnice (Technical Content Group) din 2007, având res­ponsabilitatea principală de a scrie și edita articole, bloguri și module de instruire pentru cunoașterea produselor.
Înainte de Digi-Key, el a testat și calificat sisteme de control și instrumentare pentru submarine nucleare. Rich deține o diplomă în inginerie electrică și electronică de la Universitatea de Stat din North Dakota din Fargo, ND.

Digi-Key Electronics   |    https://www.digikey.ro

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *

  • Folosim datele dumneavoastră cu caracter personal NUMAI pentru a răspunde comentariilor/solicitărilor dumneavoastră.
  • Pentru a primi raspunsuri adecvate solicitărilor dumneavoastră, este posibil să transferăm adresa de email și numele dumneavoastră către autorul articolului.
  • Pentru mai multe informații privind politica noastră de confidențialitate și de prelucrare a datelor cu caracter personal, accesați link-ul Politica de prelucrare a datelor (GDPR) si Cookie-uri.
  • Dacă aveți întrebări sau nelămuriri cu privire la modul în care noi prelucrăm datele dumneavoastră cu caracter personal, puteți contacta responsabilul nostru cu protecția datelor la adresa de email: gdpr@esp2000.ro
  • Abonați-vă la newsletter-ul revistei noastre