Aggiornamenti OTA downstream con Azure Sphere
Molte soluzioni Azure Sphere incorporano sia un MCU certificato azure Sphere che altri processori come parte di una soluzione IoT completa. Questi altri processori necessitano di aggiornamenti regolari del firmware. Questa guida descrive come abilitare gli aggiornamenti OTA downstream tramite Azure Sphere.
A seconda dello scenario specifico dell'applicazione, esistono diversi modi per ottenere questo risultato. Ogni soluzione ha un flusso comune:
- Attivare l'aggiornamento del firmware.
- Acquisire l'aggiornamento del firmware.
- Determinare un percorso di download intermedio.
- Convalidare il firmware e aggiornare il processore downstream.
Fase 1: Attivare l'aggiornamento del firmware
Problema: come viene avviato il processo di aggiornamento del firmware?
Opzioni:
Ogni versione dell'app Azure Sphere è associata a una versione del firmware downstream:
- Descrizione: all'avvio dell'app Azure Sphere, la versione del firmware supportata viene confrontata con la versione distribuita nel processore downstream. Se le versioni non corrispondono, è necessario un aggiornamento.
- Vantaggi: contratto di supporto definito tra l'app Azure Sphere e la versione del firmware. Inoltre, sfrutta il processo di aggiornamento dell'app Azure Sphere esistente.
- Contro: è necessario aggiornare l'app Azure Sphere per attivare un aggiornamento del firmware anche se non sono presenti modifiche all'app Azure Sphere. Inoltre, deve aggiungere il monitoraggio dello stato di avanzamento dell'aggiornamento.
hub IoT di Azure aggiornamento del firmware di gestione dei dispositivi:
- Descrizione: quando un aggiornamento del firmware è pronto, un operatore della soluzione IoT crea una nuova configurazione di gestione dei dispositivi con il firmware aggiornato. L'applicazione Azure Sphere riceve la richiesta di aggiornamento del firmware e può iniziare l'aggiornamento.
- Vantaggi: facile soluzione di gestione per definire, attivare e monitorare un aggiornamento.
- Contro: è necessario usare hub IoT di Azure, non sono supportati altri endpoint cloud.
Controllo del firmware separato (soluzione personalizzata):
- Descrizione: creare un controllo del firmware personalizzato nell'applicazione Azure Sphere. Controllare regolarmente un endpoint definito per una nuova versione e, se ne viene rilevato uno, avviare un aggiornamento.
- Pro: funziona con qualsiasi endpoint cloud per scaricare il firmware.
- Cons: deve aggiungere il monitoraggio del processo di aggiornamento. Soluzione creata personalizzata, quindi non sfruttando alcun percorso di aggiornamento esistente.
Soluzione consigliata: se l'attivazione di aggiornamenti per processori downstream tramite gli aggiornamenti dell'app Azure Sphere funziona per lo scenario, questo approccio è consigliato. Questa soluzione garantisce che le versioni del firmware azure Sphere e downstream siano sempre abbinate e non richieda la compilazione di un altro sistema per l'attivazione degli aggiornamenti. In caso contrario, se l'applicazione usa già hub IoT di Azure, Gestione dispositivi IoT è la soluzione consigliata, altrimenti è necessaria una soluzione personalizzata.
Esempi:
- La soluzione di riferimento ExternalMcuUpdate mostra come richiedere una versione specifica del firmware in un dispositivo downstream per ogni versione dell'applicazione Azure Sphere.
- Azure Sphere External MCU OTA implementa un aggiornamento del firmware per Azure Sphere usando hub IoT di Azure gestione dei dispositivi.
- hub IoT di Azure'esercitazione per l'aggiornamento del firmware descrive come attivare gli aggiornamenti tramite hub IoT di Azure proprietà del dispositivo gemello.
Fase 2: Acquisire l'aggiornamento del firmware
Problema: come scaricare il firmware in base ai vincoli di memoria di Azure Sphere MT3620?
Opzioni:
Includere il firmware downstream nel pacchetto immagine distribuito in MT3620. Ciò è possibile se le dimensioni totali del software MT3620 incluso l'immagine downstream non superano il limite di flash documentato.
Scaricare il firmware da una posizione ospitata, ad esempio usando Archiviazione BLOB di Azure. Potrebbe essere necessario scaricare il firmware in blocchi poiché il limite di RAM di MT3620 può impedire l'intera immagine scaricata nella RAM. È importante convalidare il server usato per il download del firmware, ad esempio usando HTTPS, per assicurarsi che solo il firmware attendibile venga scaricato e applicato al processore downstream. Si noti che in questo caso, è possibile che un dispositivo sia online mentre l'app Azure Sphere viene aggiornata, ma quindi passa offline prima che la nuova app possa scaricare il nuovo firmware downstream. Se si tratta di una possibilità per il caso d'uso, è importante mantenere la compatibilità tra l'app Azure Sphere e le versioni precedenti del firmware downstream.
Soluzione consigliata: se l'immagine del firmware rientra nel limite di flash del pacchetto di immagini di Azure Sphere e se è accettabile aggiornare il software MT3620 ogni volta che è necessario un aggiornamento downstream, è consigliabile includere l'immagine downstream nel pacchetto immagine MT3620. In caso contrario, sarà necessario scaricare l'immagine del firmware dalla posizione ospitata.
Esempi:
- La soluzione di riferimento ExternalMcuUpdate mostra come includere un'immagine del firmware downstream come parte di un pacchetto di immagini di Azure Sphere.
- HTTPS Curl Easy Sample illustra come eseguire un download in blocchi usando un buffer RAM a dimensione fissa.
Fase 3: Determinare un percorso di download intermedio
Problema: questo problema è rilevante solo se non si usa un'immagine del firmware incorporata nel pacchetto di immagini di Azure Sphere e dove il firmware scaricato è maggiore della RAM disponibile in MT3620.
Opzioni:
- Flash esterno connesso ad Azure Sphere.
- Memoria MCU o PC downstream.
Non c'è una risposta corretta o sbagliata per dove archiviare il firmware scaricato. Questa scelta dipende dalla configurazione e dal costo dell'hardware. Qual è l'opzione migliore per te? È possibile associare memoria flash esterna al dispositivo Azure Sphere o selezionare un processore downstream con spazio di archiviazione sufficiente per ricevere l'aggiornamento del firmware.
Soluzione consigliata: selezionare l'opzione migliore per la configurazione.
Esempi:
Fase 4: Convalidare il firmware e aggiornare il processore downstream
Problema: come si convalida e si applica l'aggiornamento del firmware al processore downstream?
Opzioni: ogni processore avrà una soluzione diversa. La maggior parte dei produttori di processori include esempi che mostrano come eseguire gli aggiornamenti del firmware nei propri dispositivi ed è necessario seguire le procedure consigliate per la soluzione specifica. Il download e l'aggiornamento del firmware devono eseguire un controllo di integrità per convalidare il firmware prima di avviare l'aggiornamento.
Soluzione consigliata: differisce per ogni processore. Vedere l'esempio del produttore del processore.
Esempio: Soluzione di riferimento ExternalMcuUpdate illustra come aggiornare un nRF52 nordico su un'interfaccia UART da MT3620.