1. oktobra, 2019

Nižji stroški in večja zmogljivost z mikrokontrolerji brez Flash pomnilnika

Revija logo digikey 300x150 - Nižji stroški in večja zmogljivost z mikrokontrolerji brez Flash pomnilnikaDigi-Key Electronics
Avtor: Rich Miron
2019_278_19

Od omrežij interneta stvari (IoT) se zahteva, da opravljajo vse bolj zahtevne naloge. Zaradi tega morajo imeti končne IoT točke več pomnilnika, zlasti tiste, ki že zdaj ob robu omrežja izvajajo zahtevnejše ravni računalniške obdelave. Flash pomnilnik mikrokontrolerskega čipa je omejen na približno 1 megabit (Mbit), številne končne IoT točke višjega razreda pa potrebujejo veliko več pomnilnika.

278 19 01 300x274 - Nižji stroški in večja zmogljivost z mikrokontrolerji brez Flash pomnilnika

Slika 1: NXP RT1052 ima široko paleto vrhunskih perifernih naprav, vključno s serijskim SPI XiP vmesnikom in podporo za šifriranje podatkov. (Vir slike: NXP)

Običajna rešitev je bila razširitev programskega pomnilnika mikrokontrolerja z zunanjim Flash pomnilniškim čipom. Ko pa so potrebe po pomnilniku velike do 8 megabitov ali več, je večina programskega pomnilnika zagotovljena iz zunanjih komponent.

Zato je za razvijalce v mnogih primerih bolje, da sploh ne uporabijo mikrokontrolerskega čipa s Flash pomnilnikom in namesto tega uporabijo mikrokontroler brez Flash pomnilnika – angl. ROMless – in skupaj z njim zunanji hitri oktalni SPI eXecute-in-place (XiP) Flash pomnilniški čip. Tako je cena mikrokontrolerja precej nižja, njegova zasnova pa omogoča razširljivost v prihodnosti. Pomisleke glede hitrosti dostopa do pomnilnika ublažijo hitri oktalni pomnilniški vmesniki.

Ta članek obravnava mikrokontrolerje brez Flash pomnilnika (ROMless) in zunanje pomnilnike ter možnosti njihove uporabe za končne IoT točke in ugnezdene sisteme, ki potrebujejo velike količine programskega pomnilnika. Opisuje tudi, kako uresničiti omenjeni koncept z uporabo mikrokontrolerjev brez Flash pomnilnika proizvajalca NXP Semiconductors in oktalnega SPI XiP Flash pomnilniškega čipa proizvajalca Adesto Technologies.

Razširitev pomnilnika končnih IoT točk ob robu omrežja
Večina nižje do srednje zmogljivih kontrolnih IoT točk za upravljanje uporablja mikrokontroler, v katerem je strojna programska oprema s Flash pomnilnikom. Strojno programsko opremo razširimo z dodajanjem programske kode, brezžičnih IP komunikacijskih skladov in izboljšane varnostne kode. Razširitev kode se lahko dogaja med razvojem ali pa nastane kot rezultat posodobitev na terenu.

Od nekaterih kontrolnih IoT točk se zahteva, da opravljajo vse več računalniških funkcij. Namesto prenosa neobdelanih ali delno obdelanih podatkov senzorjev po omrežju v osrednji računalnik, ki jih obdela, te končne IoT točke izvajajo vse bolj zapletene naloge, na primer algoritme združevanja senzorjev, interpolacijo podatkov, prepoznavanje vzorcev ali slik ter vse bolj zapleteno računalništvo z umetno inteligenco (AI).

Na ta način osrednji računalnik prejme samo rezultat lokalne obdelave vozlišča kontrolnih IoT točk namesto posameznih bajtov surovih podatkov senzorjev, zaradi česar se zmanjša promet v brezžičnem omrežju. Ker je RF oddajnik lahko najpomembnejši porabnik energije v končni IoT točki, morajo končne točke na robu omrežja, ki se napajajo na baterije, imeti baterije z daljšo življenjsko dobo.

Sistemi, ki jih je treba posodobiti na terenu, se spopadajo z dodatnimi pomnilniškimi izzivi. Če želimo posodobiti običajne sisteme, potrebujemo vsaj dvakrat več programskega pomnilnika, kot je ocenjeno. Prostor je namenjen tako obstoječemu programskemu pomnilniku kot tudi morebitnim OTA (over-the-air) posodobitvam. Nekateri sistemi lahko zahtevajo celo trikratnik predvidenega prostora programskega pomnilnika, pri čemer je dodatni pomnilnik dodeljen tovarniško ugnezdeni strojni programski opremi, ki je predvidena samo za branje. Pri nekaterih vrstah okvar sistema, na primer pri odkrivanju vdorov ali poškodovani sliki strojne programske opreme, lahko sistem z namestitvijo prvotne tovarniške slike strojne programske opreme obnovi sistem.

Pri nekaterih programih lahko ta razširitev pomnilnika hitro preseže mejo 1 megabita vgrajenega Flash pomnilnika, zaradi česar si je treba pomagati z zunanjim pomnilnikom. Običajna rešitev je bila, da smo dodali zunanji vzporedni Flash pomnilniški čip. Njegova slabost je, da na mikrokontrolerju zaseda približno 36 zunanjih priključkov – priključkov, ki bi jih sicer lahko uporabili za vhodno-izhodne kanale. S tem izgubimo prostor na matični plošči računalnika in povečamo verjetnost elektromagnetnih motenj (EMI) z nje.

Razširitev programskega pomnilnika s SPI vmesnikom

278 19 02 300x178 - Nižji stroški in večja zmogljivost z mikrokontrolerji brez Flash pomnilnika

Slika 2: Flash pomnilnik ATXP032-CCUE-T proizvajalca Adesto uporablja oktalni SPI vmesnik, I/O0 do I/O7, za vmesnik do mikrokontrolerja. Podatkovni medpomnilnik za zapisovanje SRAM izboljšuje delovanje operacij pisanja v Flash pomnilnik. (Vir slike: Adesto Technologies)

Programski pomnilnik lahko razširimo z vzporednim vodilom ali tudi s serijskim perifernim vmesnikom (SPI). Medtem ko običajni SPI uporablja samo en podatkovni vod za pol-dupleks enobitne prenose, je z leti začel podpirati dvovrstične in štirivrstične podatkovne vode, kar ima za posledico ustrezno povečanje pretočnosti podatkov. Ta pretočnost se je povečala do točke, ko je postalo praktično vzpostaviti povezavo z zunanjim Flash SPI pomnilniškim čipom velike zmogljivosti.

Za aplikacije programskega pomnilnika običajni dvovrstični ali štirivrstični SPI uporablja konfiguracijo senčnega Flash pomnilnika, pri čemer se zunanji Flash pomnilnik kopira v vdelani statični pomnilnik z naključnim dostopom (SRAM), ki je preslikan v programski pomnilnik. Prednost tega je, da lahko preprosto razširimo programski pomnilnik in hkrati povečamo hitrost izvajanja, saj zmanjkuje hitrega SRAM-a, vendar ima tudi velike pomanjkljivosti. Ker je količina notranjega pomnilnika SRAM omejena, se do pomnilnika dostopa z odstranjevanjem, ko se Flash pomnilnik po potrebi zamenja z notranjim SRAM pomnilnikom. To ozko grlo lahko zmanjšamo z dodajanjem več SRAM-a v čip; ker pa je SRAM eden najdražjih blokov na katerem koli polprevodniku, ima to slabost, da močno zviša ceno mikrokontrolerja.

Novejša različica vmesnika SPI je XiP. SPI XiP omogoča, da CPE mikrokontrolerja izvaja kodo strojne programske opreme neposredno iz SPI vmesnika zunanjega Flash pomnilnika. Hitrost izvajanja programa je mogoče znatno izboljšati z dodajanjem predpomnilnika v vmesnik SPI XiP.

Priljubljenost SPI XiP vmesnika je povzročila nedavno razširitev vmesnika na osem podatkovnih vodov. Ta oktalni SPI XiP vmesnik je povečal prepustnost do točke, ko deluje veliko hitreje, kot kadar zmanjkuje Flash pomnilnika mikrokontrolerskega čipa – hitreje kot 100 Mb/s.

Spremembe SPI vmesnika
Spomnimo se razvoja, ki se je začel pred 30 leti. Zamislite si sistem, v katerem je čip z 1 megabitom Flash pomnilnika in 32 megabitov zunanjega Flash pomnilnika, do katerega dostopa oktalen SPI XiP vmesnik. Programski pomnilnik v čipu je tako minimalen, da se postavlja vprašanje: ali je mogoče, da bi bil sistem še vedno enako učinkovit z mikrokontrolerskim čipom brez Flash pomnilnika?

Dolgo je veljala domneva, da je sistem srednjega dosega, v katerem je mikrokontroler s Flash pomnilnikom, vedno bolj stroškovno učinkovit v primerjavi s sistemom, v katerem je mikrokontroler brez Flash pomnilnika, a ima zunanji Flash pomnilniški čip. Domnevo so ovrgli šele pred kratkim.

Če odstranimo Flash pomnilnik mikrokontrolerskega čipa, s tem seveda znižamo ceno mikrokontrolerja. Če pa pogledamo bolj natančno, se izkaže, da če Flash pomnilnika ne potrebujemo več, potem lahko izločimo tudi funkcije procesne tehnologije, ki se uporabljajo samo za Flash pomnilnik. S tem se zmanjšajo stroški proizvodnega postopka in posledično cena mikrokontrolerja. To je povzročilo, da so se znova pojavili izdelki, ki so se pred približno 30 leti imenovali »ROMless« mikrokontrolerji. Danes pravimo, da so brez Flash pomnilnika.

(Ponovna) uvedba mikrokontrolerjev brez Flash pomnilnika
Visoko zmogljiv mikrokontroler, ki lahko izkoristi hitrost Flash pomnilnika, je model MIMXRT1052DVL6B (RT1052) brez Flash pomnilnika proizvajalca NXP Semiconductors. RT1052 prihaja iz NXP-ove družine procesorjev i.MX RT1050 in je izdelan na podlagi 600-megaherčnega (MHz) procesorja ARM® Cortex®-M7 z 32 kilobajti ukaznega predpomnilnika in 32 kilobajti podatkovnega predpomnilnika. Takt procesorja s hitrostjo 600 MHz dosežemo tako, da odstranimo Flash pomnilnik in uporabimo procesno tehnologijo CMOS velike hitrosti, ki je ne omejuje notranji Flash pomnilnik. RT1052 ima veliko količino SRAM-a – 512 kilobajtov – ki ga je mogoče razdeliti za uporabo programskega ali podatkovnega pomnilnika.

Mikrokontroler ima različne periferne enote, vključno z LCD vmesnikom, vmesnikom za digitalni fotoaparat (CSI) in Pixel Processing Pipeline (PXP) za podporo vrhunske kamere, vmesnikom SPDIF za digitalni zvok, dvema USB OTG vmesnikoma, dvema Flash pomnilniškima karticama eMMC/SD, dvema 20-kanalnima analogno-digitalnima pretvornikoma (ADC) in šifrirnim modulom. Celoten seznam perifernih naprav je prikazan na diagramu (slika 1).

Druga možnost je NXP-ov MIMXRT1051DVL6B (RT1051). Ima enake lastnosti kot RT1052, le da nima vmesnikov LCD, CSI in PXP.

RT1052 ima FlexSPI vmesnik, ki lahko izvaja kodo z dvovrstičnimi, štirivrstičnimi ali oktalnimi SPI XiP vmesniki. Za dodatno varnost strojne programske opreme mikrokontroler podpira šifriran programski pomnilnik prek SPI XiP vmesnika, katerega dober primer je ATXP032-CCUE-T proizvajalca Adesto Technologies.

Delovanje modernega Flash pomnilnika z XiP vmesnikom
Adestov ATXP032-CCUE-T je 32-megabajtni oktalni Flash pomnilniški čip, ki podpira prenos podatkov s hitrostjo do 266 megabajtov na sekundo v oktalnem načinu dvojne hitrosti prenosa (DTR) – kar je veliko hitreje kot mikrokontrolerski čip s Flash pomnilnikom. Potrebuje en 1,8-voltni napajalnik in ima v tipičnem oktalnem načinu tok pripravljenosti 35 mikroamperov (µA). Največji takt SPI vmesnika, ki ga podpira, je 133 MHz.

278 19 03 300x196 - Nižji stroški in večja zmogljivost z mikrokontrolerji brez Flash pomnilnika

Slika 3: Mikrokontroler NXP RT1052 brez Flash pomnilnika ima oktalen SPI XiP vmesnik, ki se zlahka poveže z Adestovim ATXP032-CCUE-T. Oktalno delovanje SPI XiP vmesnika je za jedro ARM povsem pregledno. (vir slike: Digi-Key Electronics)

Med aktivnim branjem Flash pomnilnika ATXP32 porablja 142 µA/MHz plus 1 miliamper (mA) (običajno). Pri svojem najvišjem taktu 133 MHz SPI v oktalnem načinu porablja le 19,9 mA.

ATXP032-CCUE-T podpira tudi standardna načina vmesnika SPI 0 in 3 ter štirivrstični način SPI vmesnika. V varnostnem registru z 256 bajti je tovarniško programiran edinstven identifikator s 128 bajti ter 128 bajtov enkratnega programirljivega pomnilnika (OTP), ki se lahko uporablja za shranjevanje podatkov o napravi, kot je naslov nadzora dostopa do medija (MAC) ali varnostni ključ.

Zanimiva je sestava Flash pomnilniškega čipa ATXP032-CCUE-T. Razdeljen je na štiri bloke po 8 megabitov. Notranja logika je konfigurirana tako, da lahko gostiteljski mikrokontroler izvaja kodo iz enega bloka med programiranjem ali brisanjem drugega. To operacijo gostiteljski mikrokontroler prepozna in ne potrebuje posebnih nastavitev.

ATXP032-CCUE-T ima tudi tri registre stanja in krmiljenja za konfiguriranje delovnih parametrov naprave, kot so način nizke porabe, omogočanje ali onemogočanje DTR načina in nastavitev standardnega, štirivrstičnega ali oktalnega načina SPI vmesnika (standardni vmesnik SPI je privzet). Branje iz registrov stanja lahko pokaže stanje programa ali brisanje, stanje nizke porabe in če je kateri koli pomnilnik zaščiten pred pisanjem.

Združitev mikrokontrolerjev brez Flash pomnilnika in zunanjih pomnilnikov XiP
Združitev mikrokontrolerskih čipov RT1052 in ATXP032-CCUE-T je enostavna (slika 3). Ob vklopu RT1052 začne izvajati kodo iz 96 kilobajtov zagonskega ROM-a v vezju. Zagonski ROM bere stanje 14 konfiguracijskih priključkov zagonskega načina, ki izberejo, katerega od številnih zunanjih pomnilniških vmesnikov RT1052 naj se uporabi za programski pomnilnik. Možnosti vključujejo zunanjo kartico eMMC, kartico micro SD, običajni zunanji vzporedni vmesnik ali SPI XiP (v tem primeru Adestov ATXP032-CCUE-T).

Možnosti zagona RT1052 vključujejo tudi prenos kode iz naprav, ki podpirajo USB OTG ali UART, ki se izvrši iz SRAM-a. Možnosti zagonskega načina lahko nastavite tudi med proizvodnjo tako, da preobremenite notranje varovalke v RT1052 mikrokontrolerju, namesto da uporabite konfiguracijske priključke zagonskega načina. Ko je oktanski SPI XiP vmesnik omogočen za izvedbo programskega pomnilnika z zagonskim ROM-om RT1052 mikrokontrolerja, se program takoj zažene. ARM jedro nato zažene strojno programsko opremo iz Adestovega Flash pomnilniškega čipa ATXP032-CCUE-T na enak način kot iz zunanje vzporedne naprave s Flash pomnilnikom ali notranjega Flash pomnilnika.

Zaradi hitrih prenosov podatkov je treba oktalni serijski Flash pomnilnik postaviti na računalniško ploščo čim bližje vrat oktalnega SPI XiP vmesnika. Za zmanjšanje motenj nobena sled PC-ja ne sme biti daljša od 120 milimetrov (mm). Signal takta mora biti od drugih signalov oddaljen vsaj za trikratno širino vezi plošče računalnika, da preprečimo motnje. Dvosmerni podatkovni signali I/O [0:7] morajo biti 10 mm drug od drugega, da se prepreči zamik.

Zaključek
Zaradi trendov računalniških procesov na robu omrežja, potreb po OTA posodobitvah in s tem povezanih potreb po razširljivosti pomnilnika imajo končne IoT točke večje potrebe po pomnilniku. V nekaterih primerih lahko razvijalci teh naprav na končnih točkah razmislijo o možnosti uporabe mikrokontrolerjev brez Flash pomnilnika.

Kot je opisano v članku, lahko razvijalci s pomočjo mikokontrolerjev brez Flash pomnilnika, hitrih vmesnikov in oktalnih Flash pomnilniških čipov SPI XiP izdelujejo visoko zmogljive, stroškovno učinkovite končne IoT točke ali ugnezdene sisteme, namesto da za izdelavo uporabijo tradicionalni pristop z mikrokontrolerji, ki imajo vdelan Flash pomnilnik.

www.digikey.com
Tags: