中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產品分類

當前位置: 首頁 > 工業電子產品 > 半導體產品 > 微控制器MCU

類型分類:
科普知識
數據分類:
微控制器MCU

如何使用 ESP32 微控制器及其 ESP-IDF 執行空中下載 (OTA) 更新?

發布日期:2022-04-22 點擊率:90

物聯網 (IoT) 產品的設計者需要不斷地評估平臺和組件的選擇,以降低成本和功率,同時提高性能和加快連接應用的設計。目前有相當多的解決方案可供選擇,但設計者面臨的挑戰是,一旦部署,如何進行無線空中下載 (OTA) 更新以保持設備固件的更新。

關鍵是要看一下現有的平臺,看看它們有哪些額外的工具和支持來支持 OTA 更新。這樣的支持可以大大簡化過程,但前期可能需要一些關注。

本文討論了 OTA 基本原理,以及為什么它是幾乎每個物聯網系統都需要支持的關鍵功能,盡管開發者面臨著諸多挑戰。然后以 Espressif Systems 的 ESP32 支持藍牙和 Wi-Fi 的微控制器以及相關模塊、套件和 ESP 物聯網開發框架 (ESP-IDF) 為例,展示如何打造一個 OTA 分區,并利用 otatool.py 腳本在應用仍在運行時執行固件更新。

OTA 更新介紹

大多數開發團隊的核心重點是實現其產品的特定功能,也就是產品差異化業務邏輯。然而,每個物聯網產品都有一個基本功能集,需要在設備的整個生命周期內進行部署、配置和維護。安全更新是一個很好的例子。鑒于需要執行這些更新,在評估一個合適的開發平臺時,一個重要但容易被忽視的功能是引導程序或固件 OTA (FOTA) 更新(有時只稱為 OTA)能力。

OTA 為工程師提供了根據技術和業務要求遠程維護和升級其產品的能力,而不需要派維護人員到設備上或讓終端客戶主動對設備做一些更新。相反,所有這些成本都可以通過讓設備在后臺默默地或在半夜操作之類“停工”時間內升級其固件方式來消除。

OTA 架構可以有許多不同的形式和配置,從定制的解決方案一直到云提供商提供的標準實現方案。圖 1 中可以看到一個典型的架構實例。

OTA 架構概覽展示了更新應用固件的示例過程示意圖圖 1:OTA 架構概覽展示在現場向所部署設備更新應用固件的示例過程。(圖片來源:Beningo Embedded Group)

在這個例子中,一個 OEM 使用亞馬遜網絡服務 (AWS) 物聯網內核上傳新的固件版本,然后使用內置的作業功能將更新部署到現場的設備。這只是眾多例子中的一個,幾乎每個云供應商都有類似的解決方案。

今天有許多支持 OTA 的微控制器可供選擇。一個廣受低成本系統和制造商歡迎的微控制器是 ESP32。ESP32 之所以如此受歡迎,有以下幾個原因:

  • 它有一個集成的微控制器,有 Wi-Fi/藍牙認證模塊可用

  • 低成本

  • 開源開發環境和軟件框架,如 ESP-IDF 和 ESP 音頻開發框架 (ESP-ADF)

  • 許多現有的應用實例可在網上免費獲得

選擇一個 ESP32 模塊進行 OTA 測試

有幾種不同的 ESP32 模塊和開發板可供用戶購買,以便了解 OTA 實例。以 Adafruit 3405 ESP32 Huzzah Feather 板為例(圖 2)。這是一塊低成本的開發板,包括對 ESP32 進行編程的所有電路,并通過一個 USB 連接器為其供電。

Adafruit 3405 Huzzah Feather Board 圖片圖 2:3405 Huzzah Feather 板包含一個 ESP32 WROOM-32D 認證型 Wi-Fi/藍牙模塊,帶 4 Mb 閃存。該板包括所有必要的硬件,可通過 USB 編程和與模塊通信。(圖片來源:Adafruit)

3405 的核心是一個 ESP32-WROOM-32D 模塊,它配備了 4 Mb 閃存、Wi-Fi、藍牙和一套完整的外設,幾乎適用于任何應用。

另一塊可以使用的開發板是 Espressif Systems 的 ESP32-LYRATD-SYNA 音頻板(圖 3)。該開發板包括 ESP32-WROVER-B 模塊。

Espressif Systems ESP32-LYRATD-SYNA 板圖片圖3 :ESP32-LYRATD-SYNA 板基于 ESP32 WROVER-B 認證型 Wi-Fi/藍牙模塊,帶 4 Mb 閃存。除了能夠讓設計者通過 USB 編程和與模塊通信外,它還具有開發音頻應用所需的電路。(圖片來源:Espressif Systems)

ESP32-LYRATD-SYNA 模塊也有 4 Mb 閃存,以及用于音頻應用的所有電路。該板包括一個音頻編解碼器、一個音頻放大器以及耳機和揚聲器插孔,以全面測試音頻應用。

最后一塊可用于 OTA 測試的開發板是 Espressif 的 ESP32-S2-SAOLA-1RI 開發板(圖 4)。說到開發板,這款最不昂貴的。該板包含一個 ESP32 Wrover 模塊,以及對該芯片進行編程的電路。除了它所包含的引腳可以很容易地放到試驗板上進行測試外,沒有任何其他的裝飾。

基于 Wrover 模塊的 Espressif Systems ESP32-S2-SAOLA-1RI 圖片圖 4:基于 Wrover 模塊的 ESP32-S2-SAOLA-1RI 是一塊裸開發板,成本低,但包括足夠的電路來對板載模塊編程。(圖片來源:Espressif Systems)

為測試而選擇的具體板子并不太重要,因為每個 ESP32 模塊都利用了 ESP-IDF。這個框架旨在通過包括驅動程序、中間件、RTOS 以及對本文而言很重要的引導程序和 OTA 庫,從而為開發者簡化了軟件開發活動。

引導程序允許開發者利用 OTA 更新,并在主要應用仍在運行時對內存進行分區以更新固件,這有助于最大限度地減少停機時間。引導程序的設置一開始可能看起來很復雜,但如果指導得當,是很簡單的。

OTA 開發工作流

ESP32 的 OTA 開發工作流將根據業務需求和產品組件選擇而略有不同。例如,一個利用 AWS 的團隊可能會使用 AWS 的入門指南和例子來啟動其 ESP32 OTA 解決方案。另一方面,一個正在定制自己解決方案的公司也可能會利用 ESP32 的說明文檔。在這篇文章中,我們要看的是 ESP32 層面內容,而不是在云端。原因是這些內容是通用的,適用于 ESP32 的 OTA,無論使用哪個云提供商或解決方案。

一般來說,在 ESP32 上設置 OTA 更新的過程包括以下步驟:

  1. 配置 ESP32 分區表

  2. 下載支持 OTA 的固件

  3. 開發一個工具,充當服務器,推送新的固件

  4. 將最新的固件下載到 ESP32 上

  5. 調換到新應用

很明顯,這是簡化的方法。開發人員應再次查看圖 1 以了解整個固件更新過程。這個過程可能相當復雜,所以建議利用位于 GitHub 上的現有 ESP32 OTA 實例。這些例子提供了幾個關鍵實例,如:

  • HTTPS OTA

  • 本地 OTA

  • 簡單 OTA

  • OTA 工具(python 腳本示例)

圖 5 顯示了部署和更新過程的步驟。開發者需要先執行紅色的步驟,將 OTA 解決方案部署到 ESP32 模塊上。橙色的步驟是下一步,執行這些步驟是為了推進 OTA 更新。

Espressif Systems OTA 更新實例示意圖圖 5:位于 GitHub 上的 Espressif Systems OTA 更新例子為開發者提供了幾個簡單的例子,以讓其 ESP32 執行 OTA 更新。(圖片來源:Espressif Systems)

為 OTA 配置一個 ESP32 應用程序

ESP32 包含一個分區表,描述了什么類型的數據位于微控制器上以及它的位置。例如,一個標準的 ESP32 分區表看起來像表 1。

標準 ESP32 分區表圖片表 1:標準 ESP32 分區表顯示了數據的類型及其在微控制器上的位置。(表格來源:Beningo Embedded)

有一個工廠應用,然后是 NVS 庫和物理層 (PHY) 初始化 (init) 數據部分。為了使用 OTA 功能,該表需要更新,以便除了主要(工廠)應用外,還要為 OTA 更新固件指定存儲器位置。對于 OTA,通常有兩個分區被分配用于更新。一個是正在更新的固件,一個是正在下載的固件,它將成為最新版本。這使得工廠應用能夠保持不變。更新后的 OTA 分區表將看起來像表 2。

典型的 ESP32 更新 OTA 分區表圖片表2:典型的 ESP32 更新 OTA 分區表。(表格來源:Beningo Embedded)

如表所示,現在有一個 ota_0 和 一個ota_1 應用部分,其大小為 1Mb,此外還有一個數據部分 (otadata),是為更新過程分配的 RAM。這個表可以由開發者修改和更新,以適應應用。

為了運行 OTA 例子,有一套簡單的說明,列在 GitHub 的“如何使用實例”部分。該部分描述了如何構建應用并對其進行編程。

還有 otatool,可以用來更新固件。這個腳本通常用于:

  • 讀取、寫入和擦除 OTA 分區

  • 切換引導分區

  • 切換到工廠分區

該示例腳本可以通過使用命令在終端運行該示例來執行。

./otatool_example.sh

或者使用 Python。

python otatool_example.py

當談到為 OTA 配置 ESP32 時,確保分區的設置是一個關鍵步驟。

使用的技巧和訣竅

EPS32 OTA 解決方案可以加速和簡化開發者的固件更新方案。為了防止解決方案成為開發負擔,有幾個“技巧和訣竅”應該牢記在心。

  • 如果可能的話,利用該公司的云供應商所包含的現有 OTA 框架。這可以極大地簡化開發和集成。

  • 使用低成本的開發板來測試 OTA 功能和引導程序。ESP32 有幾個選項,可能需要一些實驗來確定哪一個是最適合手頭的應用。

  • 對于定制解決方案,可利用 GitHub 上的 ESP32 OTA 實例。

  • 對于產品作為 Wi-Fi 路由器或集線器的應用,考慮將固件鏡像下載到外部存儲器,并從大容量存儲設備執行更新。

  • 花一些時間查看關于分區表的 ESP32 說明文檔。這與典型的微控制器實現有點不同。

  • 出于安全考慮,最好禁用應用回滾。如果應用可以回滾到以前的版本,潛在的攻擊者就有可能推送一個帶有已知漏洞的版本,并破壞系統。

遵循這些“技巧和決竅”的開發者會發現,當他們試圖利用 ESP32 或任何其他 OTA 解決方案時,他們可以節省大量的時間并免受煎熬。

結語

OTA 更新是越來越多的物聯網和嵌入式系統的一個重要功能。開發人員需要很好地掌握這種功能的有效實現方法,以便在設計和開發過程中以及在產品出廠后節省前期時間。

ESP32 無線微控制器已經廣泛用于各種類型的設備,如上所述,它有一個現成的 OTA 解決方案。通過利用 ESP-IDF 和相關的模塊和平臺,并使用一些基于經驗的技巧和決竅,開發者可以大大減輕他們的設計時間,并完成他們的 OTA 解決方案并使之可靠地運行。

下一篇: PLC、DCS、FCS三大控

上一篇: 精密薄膜技術

推薦產品

更多
中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      9000px;">

          国产美女一区二区三区| 亚洲成人www| 日本久久一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 一区二区高清视频在线观看| 国产精品久久久99| 国产精品欧美一区二区三区| 久久亚洲春色中文字幕久久久| 538在线一区二区精品国产| 欧美三级电影一区| 91国产福利在线| 色天天综合久久久久综合片| 99riav一区二区三区| 成人免费观看视频| 不卡在线观看av| 一本到一区二区三区| 成人av在线一区二区| 成人免费毛片片v| 成人亚洲一区二区一| av不卡在线观看| 欧美性受xxxx黑人xyx| 欧美亚洲一区三区| 91精品国产综合久久精品图片| 日韩精品中文字幕一区二区三区| 日韩午夜中文字幕| 国产日韩欧美在线一区| 亚洲欧洲精品一区二区三区不卡| 一区二区三区视频在线看| 一区二区三区.www| 日韩国产欧美在线视频| 国产精品亚洲第一| 92国产精品观看| 欧美精品一二三| 久久影院午夜论| 国产精品无码永久免费888| 亚洲精品国产a久久久久久 | 五月天中文字幕一区二区| 蜜臀久久99精品久久久画质超高清 | 色嗨嗨av一区二区三区| 91精品国产一区二区人妖| 久久午夜国产精品| 一区二区三区鲁丝不卡| 美女诱惑一区二区| 成人99免费视频| 日韩视频一区在线观看| 亚洲欧洲韩国日本视频| 免费欧美在线视频| 成人黄色网址在线观看| 欧美一区二区三区视频在线观看| 国产精品美女www爽爽爽| 视频一区视频二区中文| www.性欧美| 久久伊人中文字幕| 丝袜脚交一区二区| 99精品偷自拍| 欧美成人猛片aaaaaaa| 一卡二卡三卡日韩欧美| 国产一区在线视频| 欧美一区二区三区播放老司机| 亚洲美女屁股眼交3| 国产白丝精品91爽爽久久 | 国产一区二区视频在线播放| 91久久香蕉国产日韩欧美9色| 精品三级在线看| 日本少妇一区二区| 欧洲av一区二区嗯嗯嗯啊| 国产网站一区二区| 久久丁香综合五月国产三级网站 | 欧美无砖专区一中文字| 国产免费久久精品| 国产精品正在播放| 精品国产一区二区三区四区四| 亚洲无线码一区二区三区| gogo大胆日本视频一区| 欧美激情一区三区| 韩国成人在线视频| 日韩欧美国产一区二区三区| 视频一区二区三区在线| 欧美精品久久久久久久多人混战 | 久热成人在线视频| 在线不卡中文字幕播放| 视频一区欧美日韩| 欧美一区日韩一区| 免费成人结看片| 日韩精品中文字幕一区二区三区 | 亚洲高清一区二区三区| 在线中文字幕一区二区| 亚洲精选免费视频| 色狠狠综合天天综合综合| 亚洲视频你懂的| 色综合av在线| 一区二区成人在线| 欧美另类一区二区三区| 久久精品久久久精品美女| 日韩欧美你懂的| 国产91丝袜在线播放0| 国产精品三级视频| 不卡的av电影| 亚洲一区二区三区在线| 欧美精品一卡二卡| 老司机精品视频导航| 久久免费午夜影院| 91小视频在线免费看| 亚洲午夜免费视频| 日韩欧美中文字幕精品| 国产在线精品一区二区夜色| 中文欧美字幕免费| 欧美日韩在线亚洲一区蜜芽| 麻豆91免费观看| 国产精品欧美一区喷水| 精品视频在线免费看| 美女视频黄a大片欧美| 久久久久久一级片| 91麻豆蜜桃一区二区三区| 五月激情六月综合| 国产午夜精品久久久久久久 | 久久精品欧美日韩| 成人午夜看片网址| 亚洲在线成人精品| 久久久三级国产网站| 91网站最新网址| 美日韩一级片在线观看| 亚洲丝袜自拍清纯另类| 日韩三级视频在线观看| 99久久久无码国产精品| 捆绑调教一区二区三区| 亚洲精品成人少妇| 久久日韩粉嫩一区二区三区| 91久久奴性调教| 成人伦理片在线| 久久不见久久见中文字幕免费| 国产精品乱子久久久久| 精品人在线二区三区| 欧美在线看片a免费观看| 国产精品自拍三区| 男男gaygay亚洲| 亚洲乱码一区二区三区在线观看| 欧美tickling网站挠脚心| 91成人免费网站| 成人午夜精品在线| 精品一区二区免费视频| 天天综合色天天综合色h| 亚洲欧洲www| 久久综合狠狠综合久久激情| 精品视频在线视频| 91美女福利视频| 成人免费视频一区| 国产伦精一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲一区二区三区小说| 亚洲欧美日韩一区二区三区在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 欧日韩精品视频| 91女厕偷拍女厕偷拍高清| 粉嫩一区二区三区性色av| 国产一区二区三区综合| 精品在线免费观看| 久久99九九99精品| 亚洲成人综合视频| 一区二区成人在线观看| 亚洲精品v日韩精品| 亚洲欧美视频在线观看视频| 亚洲欧洲99久久| 中文字幕一区av| 自拍偷拍亚洲综合| 亚洲欧美日韩国产综合在线| 国产精品激情偷乱一区二区∴| 国产精品美女一区二区在线观看| 国产拍揄自揄精品视频麻豆| 国产色一区二区| 中文字幕中文在线不卡住| 国产精品美女视频| 亚洲人一二三区| 亚洲韩国精品一区| 日韩激情一二三区| 青草av.久久免费一区| 裸体一区二区三区| 国产一区二区0| 成人国产精品视频| 色综合久久天天综合网| 欧美色中文字幕| 欧美一个色资源| 国产色产综合色产在线视频| 成人欧美一区二区三区黑人麻豆 | 国产日韩欧美麻豆| 国产精品女同互慰在线看| 综合电影一区二区三区| 一区二区三区在线影院| 日本亚洲最大的色成网站www| 麻豆成人久久精品二区三区红 | 51精品国自产在线| 久久久久久久电影| 亚洲精品国产精品乱码不99| 日本中文一区二区三区| 国产精品综合在线视频| 色综合天天综合狠狠| 欧美一区二区三区视频在线观看| 久久久久久夜精品精品免费| 国产精品久久久久久久久久久免费看 | 欧美日韩高清一区二区不卡|