摘要
在軌重構(gòu)(OTA)技術(shù)因其在航天、工業(yè)控制、物聯(lián)網(wǎng)等領(lǐng)域的高可靠性和持續(xù)服務(wù)需求而備受關(guān)注。本文以國科安芯推出的AS32S601芯片為研究對象,深入分析其OTA方案的設(shè)計(jì)原理、技術(shù)細(xì)節(jié)及優(yōu)化策略,并結(jié)合芯片的硬件特性,探討其在不同應(yīng)用場景中的適用性及潛在挑戰(zhàn),旨在提供一個(gè)全面、客觀的技術(shù)評估,為相關(guān)領(lǐng)域的研究與實(shí)踐提供參考。
1. 引言
1.1 背景知識
在現(xiàn)代嵌入式系統(tǒng)中,OTA技術(shù)已成為提升系統(tǒng)靈活性和可靠性的重要手段。OTA允許設(shè)備在不中斷運(yùn)行的情況下,通過遠(yuǎn)程或本地更新固件,從而快速修復(fù)漏洞、優(yōu)化性能或擴(kuò)展功能。這一技術(shù)在航天、工業(yè)控制、汽車電子和物聯(lián)網(wǎng)等領(lǐng)域具有重要應(yīng)用價(jià)值。特別是在航天領(lǐng)域,由于設(shè)備一旦發(fā)射后難以進(jìn)行物理維護(hù),OTA技術(shù)成為保障系統(tǒng)長期可靠運(yùn)行的關(guān)鍵。
1.2 研究意義
AS32S601作為一款高性能、高可靠性的MCU,其OTA方案的設(shè)計(jì)與優(yōu)化具有重要的研究意義。通過對該方案的深入分析,可以為類似嵌入式系統(tǒng)的設(shè)計(jì)提供重要參考,同時(shí)也有助于推動(dòng)OTA技術(shù)在更多領(lǐng)域的應(yīng)用。
2. OTA技術(shù)概述
2.1 OTA的基本原理
OTA技術(shù)的核心在于動(dòng)態(tài)更新系統(tǒng)固件,而無需中斷設(shè)備的正常運(yùn)行。這一過程通常涉及以下幾個(gè)關(guān)鍵步驟:
固件下載 :通過網(wǎng)絡(luò)或本地存儲設(shè)備下載新的固件版本。
固件驗(yàn)證 :對下載的固件進(jìn)行完整性校驗(yàn)(如CRC校驗(yàn))和來源驗(yàn)證(如數(shù)字簽名驗(yàn)證)。
固件更新 :將驗(yàn)證通過的固件寫入備用存儲區(qū),并設(shè)置更新標(biāo)志位。
系統(tǒng)重啟與切換 :設(shè)備重啟后,根據(jù)更新標(biāo)志位切換至新的固件運(yùn)行。
2.2 OTA技術(shù)的研究進(jìn)展
近年來,OTA技術(shù)在多個(gè)領(lǐng)域取得了顯著進(jìn)展。在工業(yè)控制領(lǐng)域,OTA被廣泛用于機(jī)器人控制系統(tǒng)的固件更新,以提升生產(chǎn)效率和設(shè)備靈活性。在汽車電子領(lǐng)域,OTA技術(shù)被應(yīng)用于車身控制系統(tǒng)(BCM)、電機(jī)驅(qū)動(dòng)系統(tǒng)等,以實(shí)現(xiàn)功能升級和故障修復(fù)。此外,在商業(yè)航天領(lǐng)域,OTA技術(shù)也被用于衛(wèi)星和航天器的在軌維護(hù),延長其使用壽命。
3. AS32S601芯片OTA方案設(shè)計(jì)與優(yōu)化
3.1 方案設(shè)計(jì)
3.1.1 關(guān)鍵設(shè)計(jì)
Bootloader設(shè)計(jì) :Bootloader負(fù)責(zé)驗(yàn)證App1和App2的完整性,并跳轉(zhuǎn)至有效應(yīng)用。在系統(tǒng)啟動(dòng)時(shí),Bootloader首先檢查App1和App2的完整性和有效性,若均無效,則進(jìn)入恢復(fù)模式。
App1/App2雙備份機(jī)制 :互為冗余,支持熱切換。設(shè)計(jì)中采用兩個(gè)獨(dú)立的應(yīng)用存儲區(qū),正常運(yùn)行時(shí)一個(gè)為活動(dòng)應(yīng)用,另一個(gè)為備用應(yīng)用,確保系統(tǒng)在更新過程中始終具備可用的應(yīng)用。
冗余參數(shù)區(qū) :用于存放程序關(guān)鍵參數(shù),保證系統(tǒng)配置的一致性和可靠性。
3.1.2 啟動(dòng)流程邏輯
**void** Bootloader_Run() {
// 1. 初始化硬件(時(shí)鐘、串口、Flash等)
HW_Init();
// 2. 檢查App1/App2的有效性(簽名+CRC)
**if** (Verify_App(App1_Addr) == SUCCESS) {
Current_App = App1;
} **else** **if** (Verify_App(App2_Addr) == SUCCESS) {
Current_App = App2;
} **else** {
Enter_Recovery_Mode(); // 無有效App,進(jìn)入恢復(fù)模式
}
// 3. 檢查是否需要更新(如OTA標(biāo)志位)
**if** (Check_OTA_Flag()) {
Start_OTA_Update(); // 從OTA Cache拷貝到非活動(dòng)App區(qū)
}
// 4. 跳轉(zhuǎn)到當(dāng)前App
Jump(Current_App);
}
3.1.3 App驗(yàn)證方法
CRC32校驗(yàn) :快速檢查固件完整性,確認(rèn)數(shù)據(jù)在傳輸和存儲過程中未被篡改或損壞。
數(shù)字簽名(ECDSA/RSA) :驗(yàn)證固件來源合法性,確保更新的固件來自可信來源,防止惡意軟件入侵。
版本號比對 :防止版本回滾,確保系統(tǒng)始終運(yùn)行最新版本的固件,提升系統(tǒng)的安全性和穩(wěn)定性。
3.1.4 OTA更新步驟
下載固件:通過網(wǎng)絡(luò)或本地存儲設(shè)備下載新的固件版本。
校驗(yàn)固件 :對下載的固件進(jìn)行簽名驗(yàn)證和CRC校驗(yàn),確保其完整性和真實(shí)性。
設(shè)置標(biāo)志位 :在Flash中標(biāo)記下次啟動(dòng)時(shí)需要切換至新固件所在的應(yīng)用區(qū)。
重啟系統(tǒng) :系統(tǒng)重啟后,Bootloader根據(jù)標(biāo)志位完成應(yīng)用區(qū)的切換,并運(yùn)行新的固件。
3.2 優(yōu)化策略
3.2.1 存儲分區(qū)優(yōu)化
存儲分區(qū)設(shè)計(jì)需注意以下幾點(diǎn):
■ PFlash最大支持2MB(包括4個(gè)block,即4×512KB)
■ DFlash最大支持512KB(包括1個(gè)block)
■ 塊(Block)容量:512KB/block
?注意:每個(gè)區(qū)都要單獨(dú)占用一個(gè)block(boot、APP1、APP2),因此程序最大不能超過512KB
3.2.2 地址跳轉(zhuǎn)優(yōu)化
在實(shí)現(xiàn)應(yīng)用切換時(shí),需采用安全的地址跳轉(zhuǎn)方法,確保系統(tǒng)穩(wěn)定運(yùn)行。示例代碼如下:
__attribute__ ((noinline))
**void** Jump(uint32_t addr)
{
__asm("jr a0");
**while** (1);
}
?注意:跳轉(zhuǎn)前需關(guān)閉所有外設(shè)中斷,防止中斷干擾導(dǎo)致系統(tǒng)異常。
3.2.3 軟重啟優(yōu)化
軟重啟功能允許系統(tǒng)在更新后快速恢復(fù)運(yùn)行,提升系統(tǒng)可用性。實(shí)現(xiàn)軟重啟的代碼示例如下:
void Fcu_Init()
{
FCU_CLK_ENABLE();
FCU_InitTypeDef FCU_InitStructure;
FCU_StructInit(&FCU_InitStructure);
FCU_InitStructure.FCU_Channel **=** FCU_CHANNEL_SOFTWARE0;
FCU_InitStructure.FCU_FaultToResetCnt **=** 0;
FCU_InitStructure.FCU_AlarmToFaultCnt **=** 1;
FCU_InitStructure.FCU_FaultAction **=** GLOBAL_SOFTWARE_RESET;
FCU_InitStructure.FCU_AlarmAction **=** NONE;
FCU_InitStructure.FCU_FaultLevel **=** FAULT;
FCU_InitStructure.FCU_MaskEnable **=** DISABLE;
FCU_Init(&FCU_InitStructure);
FCU_ClearSoftwareFault(FCU_SOFTWARE_CHANNEL_0);
FCU_Cmd(FCU_CHANNEL_SOFTWARE0,ENABLE);
}
FCU_SetSoftwareTrigger(FCU_SOFTWARE_CHANNEL_0); **//** 觸發(fā)軟件重啟
4. 應(yīng)用場景分析
4.1 特種工業(yè)控制
在工業(yè)自動(dòng)化尤其是核工業(yè)領(lǐng)域,AS32S601可用于機(jī)器人控制、工業(yè)通用控制系統(tǒng)等。其高可靠性和實(shí)時(shí)性特點(diǎn)使其在復(fù)雜的工業(yè)環(huán)境中表現(xiàn)優(yōu)異。例如,在機(jī)器人關(guān)節(jié)控制中,OTA技術(shù)可以實(shí)現(xiàn)運(yùn)動(dòng)控制算法的動(dòng)態(tài)更新,提升機(jī)器人靈活性和適應(yīng)性。
4.2 汽車電子
在汽車應(yīng)用中,OTA技術(shù)可作為車身控制系統(tǒng)(BCM)的核心,控制內(nèi)外燈光、中控鎖、車窗等設(shè)備,提升駕駛體驗(yàn)和車輛安全性。此外,OTA技術(shù)還可用于電機(jī)驅(qū)動(dòng)系統(tǒng)的固件更新,優(yōu)化引擎散熱風(fēng)扇、水泵等部件的性能。
4.3 商業(yè)航天
在商業(yè)航天領(lǐng)域,AS32S601憑借其高可靠性和抗輻射能力,可用于運(yùn)動(dòng)控制、信號系統(tǒng)等關(guān)鍵任務(wù),保障航天任務(wù)的順利執(zhí)行。OTA技術(shù)在衛(wèi)星和航天器的在軌維護(hù)中發(fā)揮重要作用,延長其使用壽命并提升任務(wù)成功率。
5. 結(jié)論
AS32S601的OTA方案通過合理的系統(tǒng)設(shè)計(jì)和嚴(yán)格的驗(yàn)證機(jī)制,實(shí)現(xiàn)了固件的動(dòng)態(tài)更新,確保系統(tǒng)在不斷電的情況下平滑過渡至新版本。結(jié)合其高性能內(nèi)核、豐富存儲資源和強(qiáng)大安全機(jī)制,該方案在工業(yè)控制、汽車電子和商業(yè)航天等領(lǐng)域具有廣闊的應(yīng)用前景。隨著技術(shù)的不斷進(jìn)步,OTA技術(shù)將為嵌入式系統(tǒng)的靈活性和可靠性帶來新的提升。
-
mcu
+關(guān)注
關(guān)注
147文章
18367瀏覽量
378438 -
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6856瀏覽量
113124 -
FlaSh
+關(guān)注
關(guān)注
10文章
1700瀏覽量
153828 -
OTA
+關(guān)注
關(guān)注
7文章
622瀏覽量
37528 -
bootloader
+關(guān)注
關(guān)注
2文章
240瀏覽量
47343
發(fā)布評論請先 登錄
基于FPGA的可重構(gòu)系統(tǒng)結(jié)構(gòu)分析
怎么設(shè)計(jì)PAD在接收機(jī)動(dòng)態(tài)可重構(gòu)結(jié)構(gòu)中的應(yīng)用?
電源系統(tǒng)優(yōu)化系列——如何分析高性能信號鏈中電源紋波
電源系統(tǒng)優(yōu)化——深入解讀優(yōu)化高速數(shù)據(jù)轉(zhuǎn)換器的配電網(wǎng)絡(luò)
基于二進(jìn)制GA的曲線重構(gòu)優(yōu)化方案

網(wǎng)架重構(gòu)分時(shí)段全局優(yōu)化方法

皮秒脈沖激光技術(shù)在AS32S601單粒子效應(yīng)評估中的應(yīng)用

AS32S601 芯片在衛(wèi)星互聯(lián)網(wǎng)推進(jìn)系統(tǒng)中的技術(shù)適配性研究
MCU芯片AS32S601在衛(wèi)星光纖放大器(EDFA)中的應(yīng)用探索
AS32S601 芯片 ADC 模塊交流耦合測試:技術(shù)要點(diǎn)與實(shí)踐

AS32S601與ASP4644S芯片抗輻照性能解析及核電站消防應(yīng)用

基于AS32S601微控制器的CANFD多幀數(shù)據(jù)傳輸處理方法研究

評論