FOTA(Firmware Over-The-Air),即利用無線通信技術,雲服務器來實現遠程的固件更新,包含以下幾部分內容,節點端,FOTA服務器,升級方式,文件類型.bin,升級過程管理,安全性。
1 硬件環境
設備主控爲Stm32f103VE 內置ram空間64k,內置用戶flash空間512k;
SIM7600 4G模塊,稱之爲4G模塊;
公司數據服務器,稱之爲Dserver,負責後臺邏輯和協議通信;
公司文件服務器,稱之爲Fserver, 用於存放固件升級文件;
App 表示用戶應用程序代碼;
Bootloader 表示用戶應用程序引導程序;
2 整體思路
固件原位升級 | 固件乒乓升級 | 固件冗餘升級 |
---|---|---|
綜上,考慮採用方案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 升級文件名稱格式
注:
- 升級文件軟件版本號爲最新版本號,設備當前軟件版本只有小於最新版本才允許升級。
- 每次都會發布兩個相同軟件版本號、升級flash區域標誌不同的文件。
- 如果當前設備軟件版本號爲E-x.x.x,升級對應升級flash區域標誌爲O的文件
如果當前設備軟件版本號爲O-x.x.x,升級對應升級flash區域標誌爲E的文件