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