Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS IoTPerpustakaan Over the Air (OTA)
catatan
Konten pada halaman ini mungkin tidak up-to-date. Silakan lihat halaman perpustakaan FreeRtos.org
Pengantar
Pustaka pembaruanAWS IoT Over-the-air (OTA) memungkinkan Anda mengelola notifikasi, unduhan, dan verifikasi pembaruan firmware untuk perangkat FreeRTOS menggunakan HTTP atau MQTT sebagai protokol. Dengan menggunakan perpustakaan Agen OTA, Anda dapat secara logis memisahkan pembaruan firmware dan aplikasi yang berjalan di perangkat Anda. Agen OTA dapat berbagi koneksi jaringan dengan aplikasi. Dengan berbagi koneksi jaringan, Anda berpotensi menghemat sejumlah besar RAM. Selain itu, perpustakaan Agen OTA memungkinkan Anda menentukan logika khusus aplikasi untuk menguji, melakukan, atau memutar kembali pembaruan firmware.
Internet of Things (IoT) memperluas konektivitas internet ke perangkat tertanam yang secara tradisional tidak terhubung. Perangkat ini dapat diprogram untuk mengkomunikasikan data yang dapat digunakan melalui internet, dan dapat dipantau dan dikendalikan dari jarak jauh. Dengan kemajuan teknologi, perangkat tertanam tradisional ini mendapatkan kemampuan internet di ruang konsumen, industri, dan perusahaan dengan cepat.
Perangkat IoT biasanya digunakan dalam jumlah besar dan seringkali di tempat-tempat yang sulit atau tidak praktis untuk diakses oleh operator manusia. Bayangkan skenario di mana kerentanan keamanan yang dapat mengekspos data ditemukan. Dalam skenario seperti itu, penting untuk memperbarui perangkat yang terpengaruh dengan perbaikan keamanan dengan cepat dan andal. Tanpa kemampuan untuk melakukan pembaruan OTA, juga sulit untuk memperbarui perangkat yang tersebar secara geografis. Memiliki teknisi memperbarui perangkat ini akan mahal, memakan waktu, dan sering kali tidak praktis. Waktu yang diperlukan untuk memperbarui perangkat ini membuat mereka terpapar kerentanan keamanan untuk jangka waktu yang lebih lama. Mengingat perangkat ini untuk memperbarui juga akan mahal dan dapat menyebabkan gangguan yang signifikan bagi konsumen karena downtime.
Pembaruan Over the Air (OTA) memungkinkan untuk memperbarui firmware perangkat tanpa penarikan atau kunjungan teknisi yang mahal. Metode ini menambahkan manfaat berikut:
-
Keamanan - Kemampuan untuk dengan cepat merespons kerentanan keamanan dan bug perangkat lunak yang ditemukan setelah perangkat dikerahkan di lapangan.
-
Inovasi - Produk dapat diperbarui sering sebagai fitur baru yang dikembangkan, mendorong siklus inovasi. Pembaruan dapat berlaku dengan cepat dengan waktu henti minimum dibandingkan dengan metode pembaruan tradisional.
-
Biaya - Pembaruan OTA dapat mengurangi biaya perawatan secara signifikan dibandingkan dengan metode yang secara tradisional digunakan untuk memperbarui perangkat ini.
Menyediakan fungsionalitas OTA memerlukan pertimbangan desain berikut:
-
Komunikasi Aman - Pembaruan harus menggunakan saluran komunikasi terenkripsi untuk mencegah unduhan dirusak selama transit.
-
Pemulihan - Pembaruan dapat gagal karena hal-hal seperti konektivitas jaringan intermiten atau menerima pembaruan yang tidak valid. Dalam skenario ini, perangkat harus dapat kembali ke keadaan stabil dan menghindari menjadi bata.
-
Verifikasi Penulis - Pembaruan harus diverifikasi dari sumber tepercaya, bersama dengan validasi lain seperti memeriksa versi dan kompatibilitas.
Untuk informasi selengkapnya tentang pengaturan pembaruan OTA dengan FreeRTOS, lihatPembaruan FreeRTOS Over-the-Air.
AWS IoTPerpustakaan Over the Air (OTA)
PerpustakaanAWS IoT OTA memungkinkan Anda mengelola pemberitahuan pembaruan yang baru tersedia, mengunduhnya, dan melakukan verifikasi kriptografi pembaruan firmware. Dengan menggunakan perpustakaan klien over-the-air (OTA), Anda dapat secara logis memisahkan mekanisme pembaruan firmware dari aplikasi yang berjalan di perangkat Anda. Pustaka klien over-the-air (OTA) dapat berbagi koneksi jaringan dengan aplikasi, menghemat memori di perangkat yang dibatasi sumber daya. Selain itu, pustaka klien over-the-air (OTA) memungkinkan Anda menentukan logika khusus aplikasi untuk menguji, melakukan, atau memutar kembali pembaruan firmware. Perpustakaan mendukung protokol aplikasi yang berbeda seperti Message Queuing Telemetry Transport (MQTT) dan Hypertext Transfer Protocol (HTTP) dan menyediakan berbagai opsi konfigurasi yang dapat Anda sesuaikan dengan jenis dan kondisi jaringan Anda.
API library ini menyediakan fungsi-fungsi utama ini:
-
Mendaftar untuk pemberitahuan atau jajak pendapat untuk permintaan pembaruan baru yang tersedia.
-
Menerima, mengurai dan memvalidasi permintaan pembaruan.
-
Unduh dan verifikasi file sesuai dengan informasi dalam permintaan pembaruan.
-
Jalankan self-test sebelum mengaktifkan pembaruan yang diterima untuk memastikan validitas fungsional pembaruan.
-
Memperbarui status perangkat.
Perpustakaan ini menggunakanAWS layanan untuk mengelola berbagai fungsi terkait cloud seperti mengirim pembaruan firmware, memantau sejumlah besar perangkat di beberapa wilayah, mengurangi radius ledakan penyebaran yang salah, dan memverifikasi keamanan pembaruan. Perpustakaan ini dapat digunakan dengan perpustakaan MQTT atau HTTP.
Demo untuk perpustakaan ini menunjukkan over-the-air pembaruan lengkap menggunakan Perpustakaan danAWS Layanan CoreMQTT pada perangkat FreeRTOS.
Fitur
Berikut adalah antarmuka Agen OTA lengkap:
OTA_Init
-
Menginisialisasi mesin OTA dengan memulai OTA Agent (“OTA Task”) dalam sistem. Hanya satu Agen OTA yang mungkin ada.
OTA_Shutdown
-
Sinyal ke Agen OTA untuk dimatikan. Agen OTA secara opsional akan berhenti berlangganan dari semua topik pemberitahuan pekerjaan MQTT, berhenti dalam proses pekerjaan OTA, jika ada, dan menghapus semua sumber daya.
OTA_GetState
-
Mendapat status Agen OTA saat ini.
OTA_ActivateNewImage
-
Mengaktifkan gambar firmware mikrokontroler terbaru yang diterima melalui OTA. (Status pekerjaan terperinci sekarang harus self-test.)
OTA_SetImageState
-
Menetapkan status validasi gambar firmware mikrokontroler yang sedang berjalan (pengujian, diterima atau ditolak).
OTA_GetImageState
-
Mendapat keadaan gambar firmware mikrokontroler yang sedang berjalan (pengujian, diterima atau ditolak).
OTA_CheckForUpdate
-
Meminta pembaruan OTA berikutnya yang tersedia dari layanan Pembaruan OTA.
OTA_Suspend
-
Tangguhkan semua operasi Agen OTA.
OTA_Resume
-
Lanjutkan operasi Agen OTA.
OTA_SignalEvent
-
Sinyal peristiwa untuk tugas Agen OTA.
OTA_EventProcessingTask
-
Loop pemrosesan acara agen OTA.
OTA_GetStatistics
-
Dapatkan statistik paket pesan OTA yang mencakup jumlah paket yang diterima, antri, diproses dan dijatuhkan.
OTA_Err_strerror
-
Kode kesalahan untuk konversi string untuk kesalahan OTA.
OTA_JobParse_strerror
-
Mengkonversi kode kesalahan OTA Job Parsing ke string.
OTA_PalStatus_strerror
-
Kode status ke konversi string untuk status OTA PAL.
OTA_OsStatus_strerror
-
Kode status ke konversi string untuk status OS OTA.
Referensi API
Untuk informasi selengkapnya, lihat AWS IoTOver-the-air Update: Functions
Contoh penggunaan
Aplikasi perangkat berkemampuan OTA yang khas menggunakan protokol MQTT mendorong Agen OTA dengan menggunakan urutan panggilan API berikut.
-
Connect ke AgenAWS IoT CoremQTT. Untuk informasi selengkapnya, lihat Perpustakaan Agen CoreMQTT.
-
Inisialisasi Agen OTA dengan menelepon
OTA_Init
, termasuk buffer, antarmuka ota yang diperlukan, nama benda dan callback aplikasi. Callback mengimplementasikan logika khusus aplikasi yang dijalankan setelah menyelesaikan pekerjaan pembaruan OTA. -
Ketika pembaruan OTA selesai, FreeRTOS memanggil callback penyelesaian pekerjaan dengan salah satu peristiwa berikut:
accepted
,rejected
, atauself test
. -
Jika gambar firmware baru telah ditolak (misalnya, karena kesalahan validasi), aplikasi biasanya dapat mengabaikan notifikasi dan menunggu pembaruan berikutnya.
-
Jika pembaruan valid dan telah ditandai sebagai diterima, hubungi
OTA_ActivateNewImage
untuk mengatur ulang perangkat dan mem-boot gambar firmware baru.
Porting
Untuk informasi tentang mem-porting fungsionalitas OTA ke platform Anda, lihat Memindahkan Perpustakaan OTA di Panduan Porting FreeRTOS.
Penggunaan memori
Ukuran KodeAWS IoT OTA (contoh yang dihasilkan dengan GCC untuk ARM Cortex-M) | ||
---|---|---|
File | Dengan Optimasi -O1 | Dengan Optimasi -Os |
ota.c | 8.3K | 7.5K |
ota_interface.c | 0.1K | 0.1K |
ota_base64.c | 0,6K | 0,6K |
ota_mqtt.c | 2.4K | 2.2K |
ota_cbor.c | 0.8K | 0,6K |
ota_http.c | 0,3K | 0,3K |
Total perkiraan | 12.5K | 11.3K |