AWS IoTLibreria via etere (OTA) - Gratuito RTOS

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 per l'ultimo aggiornamento.

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.

  1. Connect all'agenteAWS IoT CoreMQTT. Per ulteriori informazioni, consulta Libreria del componente CoreMQTT.

  2. Inizializza l'agente OTA chiamandoOTA_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.

  3. Quando l'aggiornamento OTA è completo, FreeRTOS chiama il callback di completamento del lavoro con uno dei seguenti eventi:accepted,rejected, oself test.

  4. 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.

  5. 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