La capacità di aggiornamento del firmware può essere personalizzata non solo durante l'installazione iniziale presso il sito del cliente, ma anche dopo l'installazione del prodotto, nuove funzionalità / funzionalità possono essere aggiunte sul sito e eventuali problemi del firmware possono essere risolti durante l'uso. I componenti di memoria volatile hanno capacità di registrazione riproducibili e sono estremamente affidabili e vengono spesso utilizzati come supporti di memorizzazione del codice del programma del firmware.
Riscrivendo il firmware del componente e modificando parte del programma (il componente utilizza la memoria non volatile), il produttore può aggiornare facilmente le funzionalità o gli aggiornamenti del dispositivo. Quando si desidera aggiornare il firmware, ci sono tre aspetti da considerare, ovvero l'aggiornamento. Cosa / quanto codice di programma, frequenza di aggiornamento e tempo richiesto per eseguire l'aggiornamento (velocità).
Consideriamo innanzitutto il firmware numero di codice del programma di aggiornamento
Nel dispositivo dell'IoT fase di progettazione iniziale, che deve essere considerata / firmware update numero relativo alla parte non aggiornato, il firmware porzione aggiornato può essere immagazzinato in aree separate NOR assemblaggio flash. Eventuali aggiornamenti frammento NOR flash devono avere questa parte cancellazione della memoria, quindi programmare le nuove informazioni nella sezione bruciare. NOR memoria flash è suddivisa in una pluralità di porzioni denominati segmenti e blocchi, le loro dimensioni variano.
NOR componenti di memoria flash (come l'uso del componente tecnologia SST SuperFlash), è suddiviso in una pluralità di blocchi di 4 KB, ogni blocco può essere cancellato individualmente e poi riscritto (4KB = 4 × 1024 × 8 bit = 32,762 bit). Può essere divisa in un grande segmenti 8KB, 32KB e 64KB che possono essere cancellati singolarmente.
Di conseguenza, v'è una dimensione di due blocchi di 8 KB, 32KB una dimensione di 8 blocchi, blocchi di 64 KB di 16. Fig. 1 mostra SST26VF064B utilizzando regione di memoria 8KB / 32KB / 64KB composto, e ciascuna regione può essere protetta separatamente. prima di ogni aggiornamento qualsiasi parte di una memoria flash, deve annullare la zona di protezione della porzione per consentire la combustione e cancellazione.
configurazione di memoria figura 1 SST26VF064B (l'immagine) è composto da otto segmenti 8KB, 32KB segmenti e due segmenti 126 di composizione 64 KB.
sezione dopo l'aggiornamento, nuovamente queste sezioni opportunamente protetti per evitare scrittura accidentale o cancellare queste aree. Il firmware può essere aggiornato deve essere sufficientemente flessibile modo suddiviso in segmenti e blocchi, in modo da supportare contemporaneamente un numero limitato e il numero massimo di aggiornamento caratteristiche / funzionalità.
Poiché la velocità di esecuzione è determinata dal numero di settori e blocchi che devono essere cancellati e riscritti, è meglio considerare sia la velocità che la flessibilità quando si organizza la parte aggiornabile del firmware.
La Figura 2 mostra un esempio di organizzazione della memoria come parti aggiornabili e non aggiornabili.Le parti non aggiornabili come il codice di bootstrap sono archiviate nell'area protetta.
La Figura 2 divide l'organizzazione della memoria in più parti non aggiornabili (come il codice del caricatore) e le parti aggiornabili (come la funzione / codice del programma caratteristico, il codice del programma immagine e il codice del programma della variabile parametro).
La parte aggiornabile del firmware, ad esempio caratteristiche / caratteristiche, ecc., È divisa in sezioni più piccole o sezioni più grandi in base ai requisiti di flessibilità L'immagine aggiornabile è memorizzata nella sezione più grande con variabili aggiornabili / I parametri sono memorizzati in sezioni più piccole.
La principale limitazione della frequenza di aggiornamento del firmware viene effettuato il numero della domanda di memoria fratazzo resistente restrizioni scrittura. Tecnologia di memoria SuperFlash (come SST26VF064B) volte resistenza riscrivibile fino a 100.000 volte, il che significa che ogni sezione può essere bruciato e cancellato 100.000 volte.
Calcola la frequenza di aggiornamento della verifica della resistenza di scrittura del firmware
Il firmware può essere aggiornato 100.000 volte, ma suona molto, tuttavia molti dispositivi IoT raccolgono dati durante l'uso e memorizzano le informazioni nel flash NOR, quindi questo deve essere preso in considerazione quando si calcola il limite massimo di tolleranza di scrittura.
Considerando il numero di scritture, è necessario assegnare un numero sufficiente di segmenti in memoria. Come verrà illustrato di seguito, si presume che il dispositivo IoT stia raccogliendo e archiviando 16 byte di informazioni e che le informazioni siano raccolte e archiviate durante la vita del prodotto. 100 milioni di volte.
In questo modo, il numero di sezioni che dovrebbero essere assegnate può essere calcolato come segue:
1 sezione = 4 KB
Supponiamo che tutte le unità di indirizzo nel segmento siano utilizzate per memorizzare le informazioni (16 byte di dati alla volta) e quindi scrivere in una nuova posizione di indirizzo fino al raggiungimento della fine del segmento (ad esempio, 0x0000-0x000F. , 0x0010-0x001F, 0x0020-0x002F, ecc.).
Poiché 4 KB / 16 byte = 256, questo è il numero di volte in cui è possibile scrivere la capacità sul supporto di memorizzazione prima di raggiungere la capacità della sezione e cancellare tutti i dati nella sezione.
. Il limite di resistenza alla cancellazione di 1 zona = 100.000 volte.
Pertanto, se un settore può essere scritto 256 volte e il numero di tempi antigraffio è 100.000, allora 25,6 milioni di dati possono essere raccolti e archiviati.
Se un'applicazione deve raccogliere e archiviare dati 100 milioni di volte, il numero di segmenti da allocare è 100.000.000 / 25.600.000 = 3.9 Pertanto, in questo esempio, è necessario assegnare quattro segmenti per gestire 100 milioni di cicli di vita. Byte data.
I progettisti di apparecchiature IoT devono eseguire calcoli simili per allocare sezioni e blocchi sufficienti per i parametri di registrazione dei dati per evitare di superare i limiti di tolleranza di scrittura dei componenti flash NOR.
Riduci i tempi di aggiornamento e riduci i tempi di fermo macchina
Il numero può essere calcolato conformemente alla necessità di cancellare e riscrivere la sezione e la velocità di aggiornamento di piastrelle diverse ipotesi devono riscrivere i segmenti SST26VF064B 64KB memorizzati nella 1Mb, 2Mb 4Mb o firmware codice / dati di programma; codice di programma / dati può essere immagine codice di programma firmware o altro codice di programma formata per aggiornare la composizione.
procedura di aggiornamento Flash comporta la realizzazione di una serie di istruzioni di comando per annullare la protezione dalla sezione di memoria sequenza di avvio e quindi eliminare queste sezioni, con dati aggiornati / bruciare il codice del programma, ed infine ri-protezione.
SST26VF064B impiegato può fornire una migliore tecnologia SuperFlash prestazioni cancelli, rispetto alla memoria flash tradizionale, cancellando prestazioni SuperFlash fornite dalla tecnica preferita è utile per abbreviare il tempo di aggiornamento.
La frequenza di frequenza massima supportata da SST26VF064B è 104 MHz, il tempo di cancellazione del segmento massimo è 25 ms e il tempo massimo di registrazione della pagina è di 1,5 ms. Inoltre, richiede 12 ng di ritardo (CE) per l'elaborazione di ciascun comando di comando sulla memoria flash con una frequenza di 104 MHz. Tempo elevato).
I metodi specifici sono indicati rispettivamente nella Tabella 1 e Tabella 2. Questi calcoli devono essere completati dai tecnici dell'apparecchiatura IoT per stimare la velocità di esecuzione dell'aggiornamento, al fine di ridurre al minimo i tempi di fermo delle apparecchiature IoT durante l'aggiornamento.
La selezione della memoria volatile appropriata migliora la flessibilità del dispositivo IoT
I progettisti di dispositivi IoT necessitano di una certa flessibilità nell'aggiornamento del codice e dei dati delle applicazioni: quanti / quanti codici di programma vengono aggiornati, quanto spesso e quanto velocemente sono i problemi da risolvere nella progettazione di dispositivi IoT, la scelta della memoria non volatile influisce su questi Problemi e svolgono un ruolo chiave nel calcolo del tempo e della velocità degli aggiornamenti del codice del programma.