Microchip Technology Inc
Avtor: Hardik Patel
2019_279_13
Naprave interneta stvari (IoT) se vse bolj množično pojavljajo na tržišču, od gospodinjskih aparatov in medicinskih pripomočkov, pa do avtomobilov. Proizvajalci teh naprav se trudijo ostati v prednosti pred konkurenčnimi podjetji z inovacijami in fleksibilnostjo pri vgradnji in uporabi te nove tehnologije.
Načrtovalci morajo v svoje izdelke vgraditi kar najvišjo možno stopnjo prilagodljivosti, da naprave izpolnjujejo zahtevo po sposobnosti slediti neprestanemu razvoju IoT ekosistema ko so, na primer, na voljo nove funkcionalnosti in spremenjeni predpisi. Sposobnost posodabljanja programske opreme pa hkrati omogoča dodajanje novih funkcij in izboljšavo obstoječih z novimi možnostmi tudi potem, ko je izdelek na terenu. Omogoča tudi odpravljanje morebitnih težav z ugnezdeno programsko opremo med njeno uporabo. Običajno se kot medij za shranjevanje kode programske opreme uporabljajo Flash pomnilniki, kot je na primer NOR Flash, zaradi možnosti ponovnega (pre)programiranja in zanesljivosti. Ko ponovno napišemo ali spremenimo del kode ugnezdene programske opreme naprave, ki se sicer nahaja v Flash pomnilniku naprave, lahko proizvajalci zlahka posodobijo zmogljivosti svojih naprav. Ko pa želite posodobiti ugnezdeno programsko opremo, je potrebno upoštevati tri stvari: kaj posodabljati in koliko programske kode bo potrebno posodobiti, kako pogosto bo to potrebno in koliko časa bo potrebnega (hitrost) za posodobitev.
Kaj in kolikšen del programske opreme posodobiti
Kaj in kolikšne posodobitve programske opreme je treba upoštevati v začetni fazi načrtovanja naprave IoT? Posodobljeni del ugnezdene programske opreme mora biti shranjen v ločenem območju NOR Flash pomnilnika, ki ne bo omogočil posodabljanja. Posodabljanje katerega koli dela NOR Flash pomnilnika se namreč začne najprej z brisanjem tega dela pomnilnika in nato programiranjem novih informacij v tem delu. NOR Flash je organiziran po posameznih delih, ki jih imenujemo sektorji in bloki in so različnih velikosti. Čipi z NOR Flash pomnilniki, kot je na primer SST26VF064B (64 Mbit ali 64Mb), izdelan v SST tehnologiji SuperFlash®, so organizirani v enotne 4KB sektorje, ki jih je mogoče posamično izbrisati in ponovno programirati (4 KB = 4 * 1024 * 8bit = 32.762 bitov). Prav tako pa je organiziran tudi v večjih blokih po 8KB, 32KB in 64KB, ki se tudi lahko brišejo posamično. En 8 KB blok ima torej dva sektorja, en 32 KB blok ima osem sektorjev, en blok 64 KB pa 16 sektorjev. Slika 1 prikazuje organizacijo pomnilnika SST26VF064B v 8 KB / 32 KB / 64 KB blokih. Vsak blok je lahko tudi posamično zaščiten.
Pred posodabljanjem programske kode v Flash pomnilniku, je treba zaščito blokov pred brisanjem/pisanjem onemogočiti, da bi bilo brisanje in potem programiranje v izbranem bloku sploh mogoče. Po končani posodobitvi je priporočljivo, da te bloke znova zaščitite, s čimer preprečite morebitne nenamerno brisanje teh območij. Nadgradljivi del ugnezdene programske opreme mora biti organiziran v sektorjih in blokih, tako da je dovolj zmogljivosti, da ga lahko uporabite tako za posodobitve z omejenimi možnostmi, kot tudi za funkcije z največjimi možnostmi prilagoditve. Ker je hitrost izvajanja posodobitev pogojena s številom sektorjev in blokov, ki jih je treba izbrisati in ponovno programirati je bolje, da istočasno razmišljamo o obeh, o hitrosti in prilagodljivosti, ko organiziramo posodobitev dela ugnezdene programske opreme. Slika 2 prikazuje osnovno organizacijo pomnilnika razdeljeno na dele, ki podpirajo posodobitve in na dele, kjer posodobitve niso mogoče. V delih, ki jih ni mogoče obnavljati, je na primer zagonska koda (bootloader), imenujemo jih tudi zaščitene regije. Tisti deli ugnezdene programske opreme, ki predstavljajo pomembnejše funkcije ali posebne dodatke in so predvideni za nadgradnjo, lahko glede na zahteve glede njihove prilagodljivosti razdelimo na manjše ali večje bloke.
Slikovne datoteke, ki jih nameravamo posodabljati, so tako shranjene v večjih blokih, prilagodljive spremenljivke in parametri pa so lahko v manjših blokih.
Kako pogosto posodabljati
Glavna omejitev pri tem, kako pogosto bi želeli posodobiti ugnezdeno programsko opremo, je omejitev vzdržljivosti pomnilnika, ki se v aplikaciji uporablja. SuperFlash pomnilnik, kot je SST26VF064B, zagotavlja trajnost 100.000 ciklov brisanja-pisanja, kar pomeni, da je mogoče vsak sektor izbrisati in ponovno programirati 100.000 krat. Možnost 100.000-kratne posodobitve ugnezdene programske opreme sicer zveni več kot dovolj, vendar veliko IoT naprav med svojim delovanjem zbira podatke in jih shranjuje v Flash pomnilnik, zato je treba pri izračunu končnih omejitev glede ciklov brisanja in pisanja upoštevati tudi to. Pomembno je, da v pomnilniku določite dovolj sektorjev, s čimer upoštevate tudi vzdržljivost. Naj pojasnim s primerom. Recimo, da naprava IoT zbira in hrani 16 bajtov informacij, informacije pa naj bi se med življenjsko dobo izdelka zbrale in shranile 100 milijonov krat. Število sektorjev, ki jih je treba dodeliti, se lahko izračuna na naslednji način:
1 sektor = 4 KB
Recimo na primer, da so vse naslovljive pomnilne lokacije v sektorju uporabljene za shranjevanje informacij, zapišemo 16 bajtov podatkov hkrati, ki so vsakič zapisani na novo lokacijo, dokler ni dosežen konec sektorja (npr. 0x0000-0x000F nato 0x0010-0x001F in 0x0020- 0x002F itd.)
Ker je 4 KB / 16 bajtov = 256, to število pomeni, koliko takšnih zapisov je mogoče shraniti, preden dosežemo pomnilno zmogljivost sektorja in izbrišemo vse podatke v tem sektorju.
Meja vzdržljivosti 1 sektorja = 100.000 ciklov
Če lahko tako en sektor zapišemo 256 krat v 100.000 ciklih, lahko 16 bajtov podatkov zberemo in shranimo 25.600.000-krat.
Če je zahteva aplikacije, da se podatki zbirajo in shranijo 100 milijon-krat, se število dodeljenih sektorjev izračuna kot 100.000.000 / 25.600.000 = 3,9. To pomeni, da je treba v opisanem primeru predvideti 4 sektorje za shranjevanje 16 bajtov podatkov, ki bodo zadoščali za zapisovanje skozi celotno življenjsko dobo te IoT naprave.
Inženirji, ki načrtujejo IoT naprave, morajo zato narediti podobne izračune, da razporedijo dovolj sektorjev in blokov za parametre beleženja podatkov, da ne bi prekoračili meje skrajne vzdržljivosti glede števila pisanj in brisanj pri uporabljenem Flash pomnilniku.
Hitrost posodobitve
Hitrost posodobitve je mogoče izračunati na podlagi števila blokov in sektorjev, ki jih je treba izbrisati in reprogramirati. Vzemimo spet nov primer, kjer je treba reprogramirati 1Mb, 2Mb ali 4Mb kode / podatkov ugnezdene programske opreme, ki je shranjena v več 64 KB blokih pomnilnika SST26VF064B . Koda oziroma podatki so lahko sestavljeni iz programske kode ugnezdene programske opreme, slikovnih datotek ali kakšne druge kode, ki jo je treba posodobiti. Posodobitev vključuje tudi izvajanje zaporedja ukaznih navodil za Flash. Zaporedje bi se tako na primer začelo z umikanje zaščite blokov pomnilnika, brisanjem teh blokov, programiranjem teh blokov s posodobljenimi podatki / kodo in ponovno zaščito teh blokov pomnilnika. Zahtevano zaporedje navodil za posodabljanje pomnilnika SST26VF064B v velikostih 1Mb / 2Mb / 4Mb je prikazano v tabeli 1. Iz tabele 1 je razvidno, da izstopata dva časa: čas, ki je potreben za brisanje in čas programiranja. SST26VF064B uporablja tehnologijo SuperFlash, ki zagotavlja odlične zmogljivosti brisanja. Primerjava faz brisanja in zapisovanja programa s tehnologijo SuperFlash v primerjavi z običajnim Flash pomnilnikom je prikazana v tabeli 2.
Bistveno boljša zmogljivost brisanja, ki jo nudi tehnologija SuperFlash v primerjavi s klasičnim Flash pomnilnikom je izjemno pomembna pri zmanjšanju potrebnega časa za posodobitve. SST26VF064B podpira največjo taktno frekvenco 104 MHz, z najdaljšim časom izbrisa posameznega sektorja 25 ms, najdaljšim časom izbrisa bloka 25 ms in največjim časom programiranja ene strani 1,5 ms. Poleg tega je med posameznimi ukazi čipu s Flash pomnilnikom, ki deluje pri taktni frekvenci 104 MHz, potrebno vsaj 12ns zakasnitve (CE na visokem nivoju). Z uporabo zaporedja ukazov, ki so prikazani v tabeli 1, skupaj s poznavanjem potrebnih časov za programiranje in brisanje, je izračun časa, potrebnega za posodobitev 1Mb / 2Mb / 4Mb pomnilnika v tehnologiji SuperFlash in običajnega Flash pomnilnika prikazan v tabelah 3 in 4. Takšne izračune morajo inženirji pri načrtovanju IoT naprav izvesti, da ocenijo hitrost posodabljanja in poskusijo čim bolj zmanjšati izpade funkcionalnosti IoT naprave med posodobitvami.
Zaključek
Inženirji morajo pri načrtovanju svojih IoT naprav zagotoviti prilagodljivost za posodobitev ugnezdene programske kode in podatkov. Kaj in koliko kode posodobiti, kako pogosto izvajati posodobitev in hitrost posodabljanja so vprašanja, o katerih je pri načrtovanju IoT naprave prav tako treba dobro razmisliti. Izbira ustreznega pomnilnika ima lahko pri tem ključno vlogo in prinaša neprimerno boljše rezultate pri izračunu časa in hitrosti izvajanja posodobitev programske kode.
Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.
www.microchip.com
Inženirji morajo pri načrtovanju svojih IoT naprav zagotoviti prilagodljivost za posodobitev ugnezdene programske kode in podatkov. Kaj in koliko kode posodobiti, kako pogosto izvajati posodobitev in hitrost posodabljanja so vprašanja, o katerih je pri načrtovanju IoT naprave prav tako treba dobro razmisliti. Izbira ustreznega pomnilnika ima lahko pri tem ključno vlogo in prinaša neprimerno boljše rezultate pri izračunu časa in hitrosti izvajanja posodobitev programske kode.
Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.