在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在線升級 | 物聯網中的OTA升級原理

機智云 ? 2023-02-02 09:59 ? 次閱讀

從最新的固件方式來看,可以分成以下幾類

01OTA升級

1.1 概念

OTA:Over-the-Air Technology,即空中下載技術。

OTA升級:通過OTA方式實現固件或軟件的升級。

只要是通過無線通信方式實現升級的,都可以叫OTA升級,比如網絡/藍牙

通過有線方式進行升級,叫本地升級,比如通過UARTUSB或者SPI通信接口來升級設備固件。

1.2 優點

1.通過OTA方式,可以對分布在各地的設備進行軟件升級,而不必讓運維人員各地奔波。

2.物聯網平臺支持通過OTA方式進行設備固件升級,是智能設備修復系統漏洞、實現系統升級的手段。

3.在迅速變化和發展的物聯網市場,新的產品需求不斷涌現,因此對于智能硬件設備的更新需求就變得空前高漲,設備不再像傳統設備一樣一經出售就不再變更。通過固件升級用戶提供更好的服務。

1.3 實現原理

核心流程:

1.制作升級包

2.下載升級包

3.驗簽升級包

4.更新程序

bfcea268-a21b-11ed-ad0d-dac502259ad0.png

下載方式:

不管采用OTA方式還是有線通信方式升級,下載升級包的方式包括后臺式下載和非后臺式下載兩種模式。

后臺式下載:

在升級的時候,新固件在后臺悄悄下載,即新固件下載屬于應用程序功能的一部分,在新固件下載過程中,應用可以正常使用,也就是說整個下載過程對用戶來說是無感的,下載完成后,系統再跳到BootLoader程序,由BootLoader完成新固件覆蓋老固件的操作。比如智能手機升級Android或者iOS系統都是采用后臺式方式,新系統下載過程中,手機可以正常使用。

bfe2a9fc-a21b-11ed-ad0d-dac502259ad0.png

非后臺式下載:

在升級的時候,系統需要先從應用程序跳入到BootLoader程序,由BootLoader進行新固件下載工作,下載完成后BootLoader繼續完成新固件覆蓋老固件的操作,至此升級結束。早先的功能機就是采用非后臺來升級操作系統的,即用戶需要先長按某些按鍵進入bootloader模式,然后再進行升級,整個升級過程中手機正常功能都無法使用。

bff3f694-a21b-11ed-ad0d-dac502259ad0.png

新舊固件覆蓋模式:

新固件替換老固件覆蓋的兩種方式:雙區模式和單區模式。

雙區模式:

雙區模式中老固件和新固件在flash中各占一塊bank(存儲區)。假設老固件放在bank0(運行區)中,新固件放在bank1(下載區)中,升級的時候,應用程序先把新固件下載到bank1中,只有當新固件下載完成并校驗成功后,系統才會跳入BootLoader程序,然后擦除老固件所在的bank0區,并把bank1的新固件拷貝到bank0中。

后臺式下載必須采用雙區模式進行升級。

優點:升級過程中出現問題或者新固件有問題,它還可以選擇之前的老固件老系統繼續執行而不受其影響。

缺點:多占用flash空間的一個存儲區,在系統資源比較緊張的時候較為困難。

c00ca0ae-a21b-11ed-ad0d-dac502259ad0.png

單區模式:

單區模式的非后臺式下載只有一個bank0(運行區),老固件和新固件共享這一個bank0。升級的時候,進入bootloader程序后先擦除老固件,然后直接把新固件下載到同一個bank中,下載完成后校驗新固件的有效性,新固件有效升級完成,否則要求重來。

優點:

跟雙區模式相比,單區模式節省了Flash空間的一個bank,在系統資源比較緊張的時候,單區模式是一個不錯的選擇。

缺點:

如果升級過程中出現問題或者新固件有問題,單區模式碰到這種情況就只能一直待在bootloader中,然后等待再次升級嘗試,此時設備的正常功能已無法使用,從用戶使用這個角度來說,可以說此時設備已經“變磚”了。

相比較,雙區模式雖然犧牲了很多存儲空間,但是換來了更好的升級體驗。

c01d1a6a-a21b-11ed-ad0d-dac502259ad0.png

02MCU OTA升級

以MCU(微控制器)固件升級為例,講解嵌入式裸機程序的OTA升級。由于裸機固件是固化在設備的存儲器(如flash)中,即存儲器中保存的是機器碼,對MCU進行OTA固件升級,也就是要實現通過OTA方式將存儲器中舊固件的機器碼替換為新固件的機器碼。

c0371500-a21b-11ed-ad0d-dac502259ad0.png

數字簽名

簽名:

A給B發送消息,A先計算出消息的消息摘要,然后使用自己的私鑰加密消息摘要,被加密的消息摘要就是簽名。

驗簽:

B收到消息后,也會使用和A相同的方法計算消息摘要,然后用A的公鑰解密簽名,并與自己計算出來的消息

摘要進行比較,如果相同則說明消息是A發送給B的,同時,A也無法否認自己發送消息給B的事實。

(B使用A的公鑰解密簽名文件的過程,叫做"驗簽")

c04ac5f0-a21b-11ed-ad0d-dac502259ad0.png

密碼學基礎概念:

1.什么是消息摘要?

2.什么是非對稱加解密?私鑰與公鑰?

3.什么是數字簽名?

數字簽名的作用:保證數據完整性,機密性和發送方角色的不可抵賴性。

消息摘要函數:MD4、MD5、SHA-1、SHA-256、SHA-384、SHA-512

數字簽名算法RSA、Rabin方式、ElGamal方式、DSA

2.1 制作升級包

通過簽名工具使用簽名算法對固件進行數字簽名,簽名后的文件即為升級包。

升級包的內容一般包括firmware、header和signature value。

Firmware:固件

Header:頭部信息。存放配置信息,如版本號、產品類型等。

Signature value:簽名值。對firmware和header簽名后的值。

c06f58ca-a21b-11ed-ad0d-dac502259ad0.png

簽名工具:上位機軟件,能計算固件的簽名值,并將固件打包為升級包的格式。

固件簽名:上位機軟件先計算整個固件的消息摘要,使用非對稱密碼的私鑰對摘要進行加密,被加密后的消息摘要數據就是簽名值。

固件簽名的意義:

計算hash值可以識別固件是否被篡改和偽裝,確保固件的完整性。

使用非對稱秘鑰簽名方便后續驗證升級包身份的合法性。

2.2 下載升級包

根據上位機軟件和MCU設備約定的通信協議,上位機軟件將升級包通過OTA方式發送給MCU設備,

MCU設備收到數據后,根據通信協議解析出升級包的數據,并將升級包的數據保存到存儲器中。

通信協議的作用:

通訊雙方約定俗成地用于數據交流的格式。

下載的方式:

1.在應用程序中下載:后臺式

2.在BootLoader中下載:非后臺式

2.3 驗簽升級包

MCU設備接收完所有的升級包后,先計算升級包中固件的摘要,然后使用非對稱秘鑰的

公鑰解密升級包的簽名值,如果解密出來的固件摘要與自己計算的摘要相同,則驗簽成功。

2.4 更新固件

驗簽成功保證了固件的完整性和合法性后,MCU設備從應用程序進入BootLoader程序,在BootLoader程序中將flash中的新固件數據搬運到舊固件的存儲區,將其覆蓋。然后BootLoader程序啟動固件運行,此時固件為新固件。

flash固件數據更新:擦除flash,寫flash。


03Linux OTA升級

Linux系統的組成:

主要由三大部分組成,包括uboot(引導啟動程序)、kernel(內核)和rootfs(根文件系統)。

三者在flash中的分區如下:

應用程序存放于rootfs。

c08bcf64-a21b-11ed-ad0d-dac502259ad0.png

Linux系統的啟動流程:

c09efcc4-a21b-11ed-ad0d-dac502259ad0.png

3.1 系統升級

Linux系統由uboot\kernel\rootfs三大部分組成,對Linux系統進行升級,也就是對flash中這三個分區的數據進行更新替換。

由于uboot\kernel\rootfs在flash分區中是以二進制數據存儲的,與MCU固件在flash中存的是二進制數據一樣,包括uboot\kernel\rootfs的升級文件也是以二進制數方式直接寫入到對應的Flash分區。其升級方式與MCU固件的升級原理基本是一致的。

一般可在uboot中下載升級包來升級uboot\kernel\rootfs ,與MCU在BootLoader程序中完成升級類似。

c0c61958-a21b-11ed-ad0d-dac502259ad0.png

3.2 應用程序升級

在Linux系統中,應用程序是存放在文件系統中,并以可執行程序文件的方式存在,其在系統中就是文件,這與MCU固件存放在flash分區的方式不同。

應用程序的升級流程與MCU固件、Linux系統升級基本一致。應用程序的升級除了可以升級可執行文件外,還可以升級配置文件等。

應用程序升級流程:

制作升級包(打包簽名工具)、下載升級包(下載工具)、升級包驗簽、程序更新

與MCU OTA升級區別:

制作升級包:將應用程序相關的文件(可執行程序、庫文件、配置文件等)打包為壓縮包

作為一個整體再進行簽名。

c0d719b0-a21b-11ed-ad0d-dac502259ad0.png

升級包下載和驗簽通過后,將壓縮包解壓,可以得到應用程序的相關文件。

應用程序的更新,可以通過啟動應用程序的程序來更新,如啟動腳本、啟動程序,類似MCU升級的BootLoader程序作用。

更新方式:

1.直接覆蓋舊程序;

2.保留舊程序,執行新程序;

直接覆蓋舊程序:

c0ec2260-a21b-11ed-ad0d-dac502259ad0.png

保留舊程序,執行新程序:

ping\pong操作

c0ff0470-a21b-11ed-ad0d-dac502259ad0.png

04總結

OTA升級的核心:

c117a1e2-a21b-11ed-ad0d-dac502259ad0.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2923

    文章

    45692

    瀏覽量

    385747
  • OTA
    OTA
    +關注

    關注

    7

    文章

    600

    瀏覽量

    36061
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    一文解鎖OTA遠程升級方案!基于RK3562全國產平臺

    通過網絡下載固件進行升級,也支持下載固件到SD卡或U盤進行升級。 而且,升級固件可按需定制,既能讓設備系統全面革新,也能升級1個或多個功能模塊。憑借遠程、靈活、便捷的特性,
    的頭像 發表于 04-07 10:15 ?213次閱讀
    一文解鎖<b class='flag-5'>OTA</b>遠程<b class='flag-5'>升級</b>方案!基于RK3562全國產平臺

    淺談車規MCU (MGEQ1C064) OTA升級

    本帖最后由 noctor 于 2025-3-4 16:17 編輯 淺談車規MCU (MGEQ1C064) OTA升級 OTA升級為汽車打造新價值
    發表于 03-04 12:52

    OTA軟件升級管理系統

    OTA(Over-the-Air Technology,空中下載技術)是通過空中下載的方式對車輛的軟件進行遠程升級。經緯恒潤OTA軟件升級
    的頭像 發表于 01-13 09:39 ?515次閱讀
    <b class='flag-5'>OTA</b>軟件<b class='flag-5'>升級</b>管理系統

    OTA升級】無需數據線,一條命令即可完成固件升級

    OTA無線升級過程視頻演示:OTA介紹OTA(Over-The-Air,空中升級)是一種通過無線通信技術實現遠程更新設備固件或軟件的方法。設
    的頭像 發表于 12-11 01:00 ?2749次閱讀
    【<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>】無需數據線,一條命令即可完成固件<b class='flag-5'>升級</b>!

    聯網的Fota是什么,如何使用HTTP來給設備升級

    一 概述 FOTA(Firmware Over-The-Air)移動終端的空中下載軟件升級,指通過云端升級技術,為具有連網功能的設備提供固件升級服務。在
    的頭像 發表于 09-25 14:35 ?1342次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網</b><b class='flag-5'>中</b>的Fota是什么,如何使用HTTP來給設備<b class='flag-5'>升級</b>

    S3N8R16工程代碼里面只要調用了wifi、藍牙、mqtt等相關接口,編譯出來的固件拿去ota升級升級不了,為什么?

    碰到個很奇怪的現象,我的工程代碼里面只要調用了wifi、藍牙、mqtt等相關接口,編譯出來的固件拿去ota升級升級不了,沒有調用就能正常升級,一直搞不懂是什么原因,有dalao遇
    發表于 07-19 07:31

    OTA升級后重啟,printf日志錯誤的原因?

    OTA升級后重啟,printf日志錯誤。
    發表于 07-18 06:26

    ESP8266 OTA升級失敗的原因?

    我正在使用自定義服務器來升級 esp8266。我可以從服務器下載圖像,但總是升級失敗。 我將以下.bin文件下載到閃存(下載前,我擦除整個閃存): ------------ 2 MByte
    發表于 07-11 07:45

    ESP8266 OTA升級不成功的原因?

    我正在使用最新的 RTOS SDK 版本 1.5 ESP8266。我使用自定義服務器進行OTA升級。 有時 OTA 升級成功,有時即使閃爍了正確的圖像,
    發表于 07-10 06:14

    如何在ESP8266上運行OTA升級

    在 ESP8266 (ESP-12F) 上運行 OTA 升級
    發表于 07-10 06:13

    esp-ali-smartliving SDK功能OTA升級失敗的原因?

    ,使用阿里生活物聯網平臺OTA升級失敗,提示:Not digestSign key in json doc of OTA,如下圖 請問如何解決呢?
    發表于 06-28 08:50

    請問ESP32是否支持串口在線升級

    請問ESP32是否支持串口在線升級。對OTA升級例程進行修改,將http傳輸改為串口傳輸,是否可行。
    發表于 06-18 06:30

    ESP-IDF是否支持基于BLE的OTA升級

    節點需要切換到WiFi才能完成HTTP升級,ESP-IDF是否支持基于BLE的OTA升級
    發表于 06-12 07:49

    ESP-IDF4.4 OTA升級失敗的原因?

    ESP-IDF4.4 OTA 功能,在啟動OTA功能后下載固件過程中出現wifi無Internet訪問,然后很快網絡恢復,需要等待很久后OTA升級失敗。
    發表于 06-06 08:19

    ESP IDF OTA升級失敗的原因?

    ESP IDF 5.1.1,官方OTA例程,升級過程失敗,tcp拉取文件中斷,有遇到類似情況的嗎,日志如下: I (59717) ota: ot
    發表于 06-05 07:27
    主站蜘蛛池模板: 一区二区三区免费精品视频 | a级网| 丁香视频在线观看播放 | 天天射天天干 | 天天射色综合 | 日本三级理论 | 亚洲第一在线播放 | 黄网站在线观看高清免费 | 亚洲成人国产 | 有坂深雪在线 | 五月天精品在线 | 琪琪see色原网一区二区 | 老湿司午夜爽爽影院榴莲视频 | 六月激情婷婷 | 六月激情 | 天天做天天添天天谢 | 色视频在线观看在线播放 | 三级精品在线观看 | 亚洲 丝袜 制服 欧美 另类 | 性喷潮久久久久久久久 | 午夜免费体验 | 天天天狠天天透天天制色 | www亚洲成人| 国产高清视频免费最新在线 | 中文字幕精品一区二区三区视频 | аⅴ天堂中文在线网 | 久久影视免费观看网址 | avbobo在线观看 | 欧洲性freefree大白屁股 | 爽好舒服快小柔小说 | 欧美影院一区二区 | 亚洲国产情侣偷自在线二页 | 五等分的新娘免费漫画 | 99亚洲自拍| 日本成片视频 | 韩国理论三级在线观看视频 | 日韩黄色免费 | 人人爽影院 | 最近的中文字幕免费动漫视频 | 五月天婷婷丁香中文在线观看 | 人与牲动交xxxxbbb |