Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AWS IoTLibreria via etere (OTA)
Nota
Il contenuto di questa pagina potrebbe non esserlo up-to-date. Consulta la pagina della libreria di FreeRTOS.org
Introduzione
La libreria di aggiornamentiAWS IoT Over-the-air (OTA) consente di gestire la notifica, il download e la verifica degli aggiornamenti del firmware per i dispositivi FreeRTOS utilizzando HTTP o MQTT come protocollo. Utilizzando la libreria dell'agente OTA, è possibile separare logicamente gli aggiornamenti firmware e l'applicazione in esecuzione sul dispositivo. L'agente OTA può condividere una connessione di rete con l'applicazione. Mediante la condivisione di una connessione di rete, è possibile ottenere un potenziale risparmio di una notevole quantità di RAM. Inoltre, la libreria dell'agente OTA consente di definire la logica specifica dell'applicazione per il testing, il commit o il rollback di un aggiornamento del firmware.
L'Internet of Things (IoT) estende la connettività Internet ai dispositivi integrati che tradizionalmente non erano connessi. Questi dispositivi possono essere programmati per comunicare dati utilizzabili su Internet e possono essere monitorati e controllati da remoto. Grazie ai progressi tecnologici, questi dispositivi integrati tradizionali stanno aumentando rapidamente le funzionalità Internet negli spazi consumer, industriali e aziendali.
I dispositivi IoT vengono in genere distribuiti in grandi quantità e spesso in luoghi difficili o poco pratici da accedere per un operatore umano. Immagina uno scenario in cui viene scoperta una vulnerabilità di sicurezza che può esporre i dati. In tali scenari, è importante aggiornare i dispositivi interessati con correzioni di sicurezza in modo rapido e affidabile. Senza la possibilità di eseguire aggiornamenti OTA, può anche essere difficile aggiornare i dispositivi dislocati geograficamente. Avere un tecnico che aggiorni questi dispositivi sarà costoso, dispendioso in termini di tempo e spesso poco pratico. Il tempo necessario per aggiornare questi dispositivi li espone a vulnerabilità di sicurezza per un periodo più lungo. Richiamare questi dispositivi per l'aggiornamento sarà inoltre costoso e potrebbe causare gravi interruzioni ai consumatori a causa dei tempi di inattività.
Gli aggiornamenti via etere (OTA) consentono di aggiornare il firmware del dispositivo senza un costoso richiamo o la visita di un tecnico. Questo metodo aggiunge i seguenti vantaggi:
-
Sicurezza: capacità di rispondere rapidamente alle vulnerabilità di sicurezza e ai bug del software scoperti dopo l'implementazione dei dispositivi sul campo.
-
Innovazione: i prodotti possono essere aggiornati frequentemente man mano che vengono sviluppate nuove funzionalità, guidando il ciclo di innovazione. Gli aggiornamenti possono avere effetto rapidamente con tempi di inattività minimi rispetto ai metodi di aggiornamento tradizionali.
-
Costo: gli aggiornamenti OTA possono ridurre significativamente i costi di manutenzione rispetto ai metodi tradizionalmente utilizzati per aggiornare questi dispositivi.
La fornitura della funzionalità OTA richiede le seguenti considerazioni di progettazione:
-
Comunicazione sicura: gli aggiornamenti devono utilizzare canali di comunicazione crittografati per evitare che i download vengano manomessi durante il transito.
-
Ripristino: gli aggiornamenti possono fallire a causa di problemi quali la connettività di rete intermittente o la ricezione di un aggiornamento non valido. In questi scenari, il dispositivo deve essere in grado di tornare a uno stato stabile ed evitare che si blocchi.
-
Verifica dell'autore: è necessario verificare che gli aggiornamenti provengano da una fonte attendibile, insieme ad altre convalide come la verifica della versione e della compatibilità.
Per ulteriori informazioni sull'impostazione di aggiornamenti OTA con FreeRTOS, consultaAggiornamenti via etere di FreeRTOS.
AWS IoTLibreria via etere (OTA)
La libreriaAWS IoT OTA consente di gestire le notifiche dei nuovi aggiornamenti disponibili, scaricarli ed eseguire la verifica crittografica degli aggiornamenti del firmware. Utilizzando la libreria client over-the-air (OTA), è possibile separare logicamente i meccanismi di aggiornamento del firmware dall'applicazione in esecuzione sul dispositivo. La libreria client over-the-air (OTA) può condividere una connessione di rete con l'applicazione, risparmiando memoria nei dispositivi con risorse limitate. Inoltre, la libreria client over-the-air (OTA) consente di definire una logica specifica dell'applicazione per testare, eseguire o ripristinare un aggiornamento del firmware. La libreria supporta diversi protocolli applicativi come Message Queuing Telemetry Transport (MQTT) e Hypertext Transfer Protocol (HTTP) e offre varie opzioni di configurazione che puoi ottimizzare in base al tipo e alle condizioni della rete.
Le API di questa libreria forniscono queste funzioni principali:
-
Registrati per ricevere notifiche o sondaggi per le nuove richieste di aggiornamento disponibili.
-
Ricevi, analizza e convalida la richiesta di aggiornamento.
-
Scarica e verifica il file in base alle informazioni contenute nella richiesta di aggiornamento.
-
Esegui un autotest prima di attivare l'aggiornamento ricevuto per assicurarti la validità funzionale dell'aggiornamento.
-
Aggiorna lo stato del dispositivo.
Questa libreria utilizza iAWS servizi per gestire varie funzioni relative al cloud, come l'invio di aggiornamenti del firmware, il monitoraggio di un gran numero di dispositivi in più regioni, la riduzione del raggio d'azione delle implementazioni difettose e la verifica della sicurezza degli aggiornamenti. Questa libreria può essere utilizzata con qualsiasi libreria MQTT o HTTP.
Le demo di questa libreria mostrano over-the-air aggiornamenti completi utilizzando la libreria e iAWS servizi CoreMQTT su un dispositivo FreeRTOS.
Funzionalità
Di seguito è riportata l'interfaccia completa dell'agente OTA:
OTA_Init
-
Inizializza il motore OTA avviando OTA Agent («OTA Task») nel sistema. Può esistere un solo agente OTA.
OTA_Shutdown
-
Segnala all'agente OTA di spegnere. Facoltativamente, l'agente OTA annullerà l'iscrizione a tutti gli argomenti relativi alle notifiche di lavoro MQTT, interromperà eventuali lavori OTA in corso e cancellerà tutte le risorse.
OTA_GetState
-
Ritorna lo stato corrente dell'agente OTA.
OTA_ActivateNewImage
-
Attiva l'immagine del firmware più recente del microcontroller ricevuta tramite OTA. (Lo stato del processo dettagliato ora dovrebbe essere self-test).
OTA_SetImageState
-
Imposta lo stato della convalida dell'immagine del firmware del microcontroller attualmente in esecuzione (testing, accettato o rifiutato).
OTA_GetImageState
-
Ottiene lo stato della convalida dell'immagine del firmware del microcontroller attualmente in esecuzione (testing, accettato o rifiutato).
OTA_CheckForUpdate
-
Richiede l'aggiornamento OTA successivo disponibile dal servizio aggiornamenti OTA.
OTA_Suspend
-
Sospendi tutte le operazioni dell'agente OTA.
OTA_Resume
-
Riprendi le operazioni dell'agente OTA.
OTA_SignalEvent
-
Segnala un evento all'attività dell'agente OTA.
OTA_EventProcessingTask
-
Ciclo di elaborazione degli eventi dell'agente OTA.
OTA_GetStatistics
-
Ottieni le statistiche dei pacchetti di messaggi OTA che includono il numero di pacchetti ricevuti, messi in coda, elaborati e scartati.
OTA_Err_strerror
-
Conversione da codice di errore a stringa per errori OTA.
OTA_JobParse_strerror
-
Converte un codice di errore OTA Job Parsing in una stringa.
OTA_PalStatus_strerror
-
Conversione da codice di stato a stringa per lo stato OTA PAL.
OTA_OsStatus_strerror
-
Conversione da codice di stato a stringa per lo stato del sistema operativo OTA.
Documentazione di riferimento dell'API
Per ulteriori informazioni, vedere AWS IoTOver-the-air Update: Functions
Esempio di utilizzo
Un'applicazione per un dispositivi compatibili con OTA che utilizza il protocollo MQTT consente di gestire l'agente OTA utilizzando la seguente sequenza di chiamate API.
-
Connect all'agenteAWS IoT CoreMQTT. Per ulteriori informazioni, consulta Libreria del componente CoreMQTT.
-
Inizializza l'agente OTA chiamando
OTA_Init
, inclusi i buffer, le interfacce ota richieste, il nome dell'oggetto e il callback dell'applicazione. Il callback implementa la logica specifica dell'applicazione che viene eseguita dopo il completamento di un processo di aggiornamento OTA. -
Quando l'aggiornamento OTA è completo, FreeRTOS chiama il callback di completamento del lavoro con uno dei seguenti eventi:
accepted
,rejected
, oself test
. -
Se la nuova immagine del firmware è stata rifiutata (ad esempio a causa di un errore di convalida), l'applicazione può in genere ignorare la notifica e attendere l'aggiornamento successivo.
-
Se l'aggiornamento è valido ed è stato contrassegnato come accettato, chiama
OTA_ActivateNewImage
per ripristinare il dispositivo e avviare la nuova immagine del firmware.
Portabilità
Per informazioni sulla portabilità della funzionalità OTA sulla tua piattaforma, consulta Porting the OTA Library nella FreeRTOS Porting Guide.
Utilizzo della memoria
Dimensione del codiceAWS IoT OTA (esempio generato con GCC per ARM Cortex-M) | ||
---|---|---|
File | Con ottimizzazione -O1 | Con ottimizzazione -Os |
ota.c | 8,3 K | 7,5 K |
ota_interface.c | 0,1 K | 0,1 K |
ota_base64.c | 0,6 K | 0,6 K |
ota_mqtt.c | 2,4 K | 2,2 K |
ota_cbor.c | 0,8 K | 0,6 K |
ota_http.c | 0,3 K | 0,3 K |
Stime totali | 12,5 K | 11,3 K |