清空記錄
歷史記錄
取消
清空記錄
歷史記錄
眾所周知,傳統(tǒng)MCU升級方式通常需要物理接觸MCU,通過編程器、燒錄器或其他設(shè)備進行升級操作。這種方式適用于研發(fā)設(shè)計階段對MCU進行升級。一旦設(shè)備出廠,大規(guī)?;蚍植际皆O(shè)備的升級,則面臨著大量設(shè)備返廠、拆機、人工燒錄等難題,即費錢又費力。此時需要考慮其他方式,例如:無線升級(FOTA)。啟明差分升級方案,作為升級版FOTA,該方案選用樂鑫ESP32系列無線模組將差分數(shù)據(jù)傳輸給MCU,然后在MCU上執(zhí)行升級操作,讓待升級的設(shè)備無需返廠,設(shè)備即可遠程獨自完成升級,使整個OTA過程更高效、更便捷。
差分升級,是利用算法做出原版APP和新版APP程序的差分包,將差分包下載到flash,內(nèi)部的BootLoader程序再利用算法將新版APP合成,合成后在搬運,搬運后校驗,重啟的過程。
例如:固件從v1.0升級到v1.1,兩個固件相比只修改了1K的內(nèi)容,則將不同部分剝離出來生成差分包Diff_v1.0~v1.1,通過云端將差分包推送到設(shè)備端,設(shè)備端接收完成之后,先解壓差分包,再通過差分恢復算法,根據(jù)差分包中的數(shù)據(jù)標志,將新老固件進行融合,變成新的固件,從而完成升級。
差分升級的優(yōu)點是升級固件小、下載速度快,更加節(jié)省內(nèi)存空間
BootLoader執(zhí)行的流程,如下圖所示,芯片上電或復位之后,開始運行BootLoader的代碼,之后檢測按鍵,按鍵作為升級的提示,如按鍵按下,準備升級,進入接收固件狀態(tài),接收到固件,對固件進行校驗,校驗通過后,置位跳轉(zhuǎn)標志位;校驗未通過,重新進入接收固件狀態(tài)。
檢測到跳轉(zhuǎn)標志位之后,檢查應(yīng)用程序是否有效,有效進入應(yīng)用程序運行,無效進入接收固件狀態(tài)。如果沒有按鍵按下,檢查是否有升級標志,有則解析download區(qū)的新固件,通過解壓縮算法和解差分算法,修改覆蓋舊固件,設(shè)置跳轉(zhuǎn)標志,檢查應(yīng)用程序是否有效,有效則運行應(yīng)用程序。
啟明云端差分升級DEMO硬件選擇ESP32-C3開發(fā)板&STM32L433-NUCELO開發(fā)板&STM32L053-NUCLEO開發(fā)板來搭建。DEMO演示視頻如下:
差分包最小僅為整包的1%
算法不斷優(yōu)化,差分包越來越小
差分包比整包升級時間節(jié)省約70%
智能汽車:整車OTA升級系統(tǒng)解決方案、車載智能設(shè)備升級解決方案、智能座艙升級解決方案等。
智能家居:智能家電、智能廚衛(wèi)、網(wǎng)關(guān)、機頂盒、照明等。
智能穿戴:智能腕表、智能眼鏡、健康監(jiān)測等。
智能表記:NB-IoT水表、燃氣表、智能電表等。
智能安防:煙霧報警、視頻監(jiān)控、水位感應(yīng)等。
共享設(shè)備:共享單車、共享充電寶、共享充電樁等。
機器人:教育機器人、商業(yè)服務(wù)機器人、工業(yè)機器人等。
M2M:2G/3G/4G模組wifi模組、Lora模組、NB-IoT模組等。