物聯網智能設備終端OTA遠程升級方案

FOTA(Firmware Over-The-Air),即利用無線通信技術,雲服務器來實現遠程的固件更新,包含以下幾部分內容,節點端,FOTA服務器,升級方式,文件類型.bin,升級過程管理,安全性。

1 硬件環境

設備主控爲Stm32f103VE 內置ram空間64k,內置用戶flash空間512k;

SIM7600 4G模塊,稱之爲4G模塊;
公司數據服務器,稱之爲Dserver,負責後臺邏輯和協議通信;
公司文件服務器,稱之爲Fserver, 用於存放固件升級文件;
App 表示用戶應用程序代碼;
Bootloader 表示用戶應用程序引導程序;

2 整體思路

  • 2.1 OTA的升級方式選擇

固件原位升級 固件乒乓升級 固件冗餘升級
centered 文本居中 right-aligned 文本居右 在這裏插入圖片描述

綜上,考慮採用方案2.

2.1 stm32主flash空間劃分

(1)劃分4個區:
bootloader區,app1區和app2區;
(2)各區大小:
BootLoader區大小12k, app1區和app2區各自大小250k;

2.2 整體流程

出紙機在通電聯網後和Dserver握手時,會上傳當前MCU固件的版本號。正常工作情況下運行應用程序,接收到Dserver發過來的升級命令後,MCU將4G模塊設置爲http模式,然後向Fserver發送get請求數據包,之後4G模塊連續從Fserver接收數據發送給MCU, MCU將接收到的數據存儲到相應的APPflash存儲區,整個文件接收完成之後,校驗通過(待確定),置位參數區域的需要更新標誌,然後stm32軟件復位,bootloader將根據文件升級標誌,pc跳轉到app位置執行程序。

2.3 用到了4G模塊有3種工作模式

  • AT指令模式;
  • 透傳模式;
  • Http client模式;

3 流程圖

在這裏插入圖片描述

4 數據通信協議格式

4.1 服務器通知設備進行固件升級

在這裏插入圖片描述

4.2 上報升級結果

設備升級完成後,會自動重啓,連接服務器,握手時上報版本號,服務器判斷,如果OTA控制檯的該設備正在升級中,且上報的是升級後的版本號,那麼認爲升級成功;如果上報的是老版本號,認爲升級失敗。

5 升級文件名稱格式

在這裏插入圖片描述
注:

  1. 升級文件軟件版本號爲最新版本號,設備當前軟件版本只有小於最新版本才允許升級。
  2. 每次都會發布兩個相同軟件版本號、升級flash區域標誌不同的文件。
  3. 如果當前設備軟件版本號爲E-x.x.x,升級對應升級flash區域標誌爲O的文件
    如果當前設備軟件版本號爲O-x.x.x,升級對應升級flash區域標誌爲E的文件

這個只是草稿版本供參考,後續優化,分享代碼,用到了文件CRC校驗,工具已經上傳。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章