环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產(chǎn)品分類(lèi)

當(dāng)前位置: 首頁(yè) > 工業(yè)電子產(chǎn)品 > 半導(dǎo)體產(chǎn)品 > 微控制器MCU

類(lèi)型分類(lèi):
科普知識(shí)
數(shù)據(jù)分類(lèi):
微控制器MCU

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

發(fā)布日期:2022-04-22 點(diǎn)擊率:66

物聯(lián)網(wǎng) (IoT) 產(chǎn)品的設(shè)計(jì)者需要不斷地評(píng)估平臺(tái)和組件的選擇,以降低成本和功率,同時(shí)提高性能和加快連接應(yīng)用的設(shè)計(jì)。目前有相當(dāng)多的解決方案可供選擇,但設(shè)計(jì)者面臨的挑戰(zhàn)是,一旦部署,如何進(jìn)行無(wú)線空中下載 (OTA) 更新以保持設(shè)備固件的更新。

關(guān)鍵是要看一下現(xiàn)有的平臺(tái),看看它們有哪些額外的工具和支持來(lái)支持 OTA 更新。這樣的支持可以大大簡(jiǎn)化過(guò)程,但前期可能需要一些關(guān)注。

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

OTA 更新介紹

大多數(shù)開(kāi)發(fā)團(tuán)隊(duì)的核心重點(diǎn)是實(shí)現(xiàn)其產(chǎn)品的特定功能,也就是產(chǎn)品差異化業(yè)務(wù)邏輯。然而,每個(gè)物聯(lián)網(wǎng)產(chǎn)品都有一個(gè)基本功能集,需要在設(shè)備的整個(gè)生命周期內(nèi)進(jìn)行部署、配置和維護(hù)。安全更新是一個(gè)很好的例子。鑒于需要執(zhí)行這些更新,在評(píng)估一個(gè)合適的開(kāi)發(fā)平臺(tái)時(shí),一個(gè)重要但容易被忽視的功能是引導(dǎo)程序或固件 OTA (FOTA) 更新(有時(shí)只稱(chēng)為 OTA)能力。

OTA 為工程師提供了根據(jù)技術(shù)和業(yè)務(wù)要求遠(yuǎn)程維護(hù)和升級(jí)其產(chǎn)品的能力,而不需要派維護(hù)人員到設(shè)備上或讓終端客戶(hù)主動(dòng)對(duì)設(shè)備做一些更新。相反,所有這些成本都可以通過(guò)讓設(shè)備在后臺(tái)默默地或在半夜操作之類(lèi)“停工”時(shí)間內(nèi)升級(jí)其固件方式來(lái)消除。

OTA 架構(gòu)可以有許多不同的形式和配置,從定制的解決方案一直到云提供商提供的標(biāo)準(zhǔn)實(shí)現(xiàn)方案。圖 1 中可以看到一個(gè)典型的架構(gòu)實(shí)例。

OTA 架構(gòu)概覽展示了更新應(yīng)用固件的示例過(guò)程示意圖圖 1:OTA 架構(gòu)概覽展示在現(xiàn)場(chǎng)向所部署設(shè)備更新應(yīng)用固件的示例過(guò)程。(圖片來(lái)源:Beningo Embedded Group)

在這個(gè)例子中,一個(gè) OEM 使用亞馬遜網(wǎng)絡(luò)服務(wù) (AWS) 物聯(lián)網(wǎng)內(nèi)核上傳新的固件版本,然后使用內(nèi)置的作業(yè)功能將更新部署到現(xiàn)場(chǎng)的設(shè)備。這只是眾多例子中的一個(gè),幾乎每個(gè)云供應(yīng)商都有類(lèi)似的解決方案。

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

  • 它有一個(gè)集成的微控制器,有 Wi-Fi/藍(lán)牙認(rèn)證模塊可用

  • 低成本

  • 開(kāi)源開(kāi)發(fā)環(huán)境和軟件框架,如 ESP-IDF 和 ESP 音頻開(kāi)發(fā)框架 (ESP-ADF)

  • 許多現(xiàn)有的應(yīng)用實(shí)例可在網(wǎng)上免費(fèi)獲得

選擇一個(gè) ESP32 模塊進(jìn)行 OTA 測(cè)試

有幾種不同的 ESP32 模塊和開(kāi)發(fā)板可供用戶(hù)購(gòu)買(mǎi),以便了解 OTA 實(shí)例。以 Adafruit 3405 ESP32 Huzzah Feather 板為例(圖 2)。這是一塊低成本的開(kāi)發(fā)板,包括對(duì) ESP32 進(jìn)行編程的所有電路,并通過(guò)一個(gè) USB 連接器為其供電。

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

3405 的核心是一個(gè) ESP32-WROOM-32D 模塊,它配備了 4 Mb 閃存、Wi-Fi、藍(lán)牙和一套完整的外設(shè),幾乎適用于任何應(yīng)用。

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

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

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

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

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

為測(cè)試而選擇的具體板子并不太重要,因?yàn)槊總€(gè) ESP32 模塊都利用了 ESP-IDF。這個(gè)框架旨在通過(guò)包括驅(qū)動(dòng)程序、中間件、RTOS 以及對(duì)本文而言很重要的引導(dǎo)程序和 OTA 庫(kù),從而為開(kāi)發(fā)者簡(jiǎn)化了軟件開(kāi)發(fā)活動(dòng)。

引導(dǎo)程序允許開(kāi)發(fā)者利用 OTA 更新,并在主要應(yīng)用仍在運(yùn)行時(shí)對(duì)內(nèi)存進(jìn)行分區(qū)以更新固件,這有助于最大限度地減少停機(jī)時(shí)間。引導(dǎo)程序的設(shè)置一開(kāi)始可能看起來(lái)很復(fù)雜,但如果指導(dǎo)得當(dāng),是很簡(jiǎn)單的。

OTA 開(kāi)發(fā)工作流

ESP32 的 OTA 開(kāi)發(fā)工作流將根據(jù)業(yè)務(wù)需求和產(chǎn)品組件選擇而略有不同。例如,一個(gè)利用 AWS 的團(tuán)隊(duì)可能會(huì)使用 AWS 的入門(mén)指南和例子來(lái)啟動(dòng)其 ESP32 OTA 解決方案。另一方面,一個(gè)正在定制自己解決方案的公司也可能會(huì)利用 ESP32 的說(shuō)明文檔。在這篇文章中,我們要看的是 ESP32 層面內(nèi)容,而不是在云端。原因是這些內(nèi)容是通用的,適用于 ESP32 的 OTA,無(wú)論使用哪個(gè)云提供商或解決方案。

一般來(lái)說(shuō),在 ESP32 上設(shè)置 OTA 更新的過(guò)程包括以下步驟:

  1. 配置 ESP32 分區(qū)表

  2. 下載支持 OTA 的固件

  3. 開(kāi)發(fā)一個(gè)工具,充當(dāng)服務(wù)器,推送新的固件

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

  5. 調(diào)換到新應(yīng)用

很明顯,這是簡(jiǎn)化的方法。開(kāi)發(fā)人員應(yīng)再次查看圖 1 以了解整個(gè)固件更新過(guò)程。這個(gè)過(guò)程可能相當(dāng)復(fù)雜,所以建議利用位于 GitHub 上的現(xiàn)有 ESP32 OTA 實(shí)例。這些例子提供了幾個(gè)關(guān)鍵實(shí)例,如:

  • HTTPS OTA

  • 本地 OTA

  • 簡(jiǎn)單 OTA

  • OTA 工具(python 腳本示例)

圖 5 顯示了部署和更新過(guò)程的步驟。開(kāi)發(fā)者需要先執(zhí)行紅色的步驟,將 OTA 解決方案部署到 ESP32 模塊上。橙色的步驟是下一步,執(zhí)行這些步驟是為了推進(jìn) OTA 更新。

Espressif Systems OTA 更新實(shí)例示意圖圖 5:位于 GitHub 上的 Espressif Systems OTA 更新例子為開(kāi)發(fā)者提供了幾個(gè)簡(jiǎn)單的例子,以讓其 ESP32 執(zhí)行 OTA 更新。(圖片來(lái)源:Espressif Systems)

為 OTA 配置一個(gè) ESP32 應(yīng)用程序

ESP32 包含一個(gè)分區(qū)表,描述了什么類(lèi)型的數(shù)據(jù)位于微控制器上以及它的位置。例如,一個(gè)標(biāo)準(zhǔn)的 ESP32 分區(qū)表看起來(lái)像表 1。

標(biāo)準(zhǔn) ESP32 分區(qū)表圖片表 1:標(biāo)準(zhǔn) ESP32 分區(qū)表顯示了數(shù)據(jù)的類(lèi)型及其在微控制器上的位置。(表格來(lái)源:Beningo Embedded)

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

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

如表所示,現(xiàn)在有一個(gè) ota_0 和 一個(gè)ota_1 應(yīng)用部分,其大小為 1Mb,此外還有一個(gè)數(shù)據(jù)部分 (otadata),是為更新過(guò)程分配的 RAM。這個(gè)表可以由開(kāi)發(fā)者修改和更新,以適應(yīng)應(yīng)用。

為了運(yùn)行 OTA 例子,有一套簡(jiǎn)單的說(shuō)明,列在 GitHub 的“如何使用實(shí)例”部分。該部分描述了如何構(gòu)建應(yīng)用并對(duì)其進(jìn)行編程。

還有 otatool,可以用來(lái)更新固件。這個(gè)腳本通常用于:

  • 讀取、寫(xiě)入和擦除 OTA 分區(qū)

  • 切換引導(dǎo)分區(qū)

  • 切換到工廠分區(qū)

該示例腳本可以通過(guò)使用命令在終端運(yùn)行該示例來(lái)執(zhí)行。

./otatool_example.sh

或者使用 Python。

python otatool_example.py

當(dāng)談到為 OTA 配置 ESP32 時(shí),確保分區(qū)的設(shè)置是一個(gè)關(guān)鍵步驟。

使用的技巧和訣竅

EPS32 OTA 解決方案可以加速和簡(jiǎn)化開(kāi)發(fā)者的固件更新方案。為了防止解決方案成為開(kāi)發(fā)負(fù)擔(dān),有幾個(gè)“技巧和訣竅”應(yīng)該牢記在心。

  • 如果可能的話,利用該公司的云供應(yīng)商所包含的現(xiàn)有 OTA 框架。這可以極大地簡(jiǎn)化開(kāi)發(fā)和集成。

  • 使用低成本的開(kāi)發(fā)板來(lái)測(cè)試 OTA 功能和引導(dǎo)程序。ESP32 有幾個(gè)選項(xiàng),可能需要一些實(shí)驗(yàn)來(lái)確定哪一個(gè)是最適合手頭的應(yīng)用。

  • 對(duì)于定制解決方案,可利用 GitHub 上的 ESP32 OTA 實(shí)例。

  • 對(duì)于產(chǎn)品作為 Wi-Fi 路由器或集線器的應(yīng)用,考慮將固件鏡像下載到外部存儲(chǔ)器,并從大容量存儲(chǔ)設(shè)備執(zhí)行更新。

  • 花一些時(shí)間查看關(guān)于分區(qū)表的 ESP32 說(shuō)明文檔。這與典型的微控制器實(shí)現(xiàn)有點(diǎn)不同。

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

遵循這些“技巧和決竅”的開(kāi)發(fā)者會(huì)發(fā)現(xiàn),當(dāng)他們?cè)噲D利用 ESP32 或任何其他 OTA 解決方案時(shí),他們可以節(jié)省大量的時(shí)間并免受煎熬。

結(jié)語(yǔ)

OTA 更新是越來(lái)越多的物聯(lián)網(wǎng)和嵌入式系統(tǒng)的一個(gè)重要功能。開(kāi)發(fā)人員需要很好地掌握這種功能的有效實(shí)現(xiàn)方法,以便在設(shè)計(jì)和開(kāi)發(fā)過(guò)程中以及在產(chǎn)品出廠后節(jié)省前期時(shí)間。

ESP32 無(wú)線微控制器已經(jīng)廣泛用于各種類(lèi)型的設(shè)備,如上所述,它有一個(gè)現(xiàn)成的 OTA 解決方案。通過(guò)利用 ESP-IDF 和相關(guān)的模塊和平臺(tái),并使用一些基于經(jīng)驗(yàn)的技巧和決竅,開(kāi)發(fā)者可以大大減輕他們的設(shè)計(jì)時(shí)間,并完成他們的 OTA 解決方案并使之可靠地運(yùn)行。

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

上一篇: 精密薄膜技術(shù)

推薦產(chǎn)品

更多
主站蜘蛛池模板: 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 实木家具_实木家具定制_全屋定制_美式家具_圣蒂斯堡官网 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 刘秘书_你身边专业的工作范文写作小秘书| 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 没斑啦-专业的祛斑美白嫩肤知识网站-去斑经验分享 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 培训中心-海南香蕉蛋糕加盟店技术翰香原中心官网总部 | 校园气象站_超声波气象站_农业气象站_雨量监测站_风途科技 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 河南彩印编织袋,郑州饲料编织袋定制,肥料编织袋加工厂-盛军塑业 河南凯邦机械制造有限公司 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 轴流风机-鼓风机-离心风机-散热风扇-罩极电机,生产厂家-首肯电子 | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 无线对讲-无线对讲系统解决方案-重庆畅博通信| 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | 北京中创汇安科贸有限公司| 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 电磁铁_推拉电磁铁_机械手电磁吸盘电磁铁厂家-广州思德隆电子公司 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 |