馬振華 梁欣穎 張弛
摘要:某控制系統(tǒng)在使用和維護過程中,經(jīng)常需要對其嵌入式應(yīng)用軟件進行升級。為了克服仿真器燒寫方式操作麻煩且效率低下的缺點,設(shè)計了一個在線加載軟件來完成應(yīng)用軟件的在線升級,為地面維護人員升級軟件提供了便利。
關(guān)鍵詞:在線加載;RS422;FLASH
1 概述
當今社會,各種嵌入式控制系統(tǒng)已經(jīng)廣泛應(yīng)用于人們生活的方方面面。某控制系統(tǒng)軟件包括系統(tǒng)軟件及應(yīng)用軟件。在使用過程中,經(jīng)常需要根據(jù)實際情況對其嵌入式應(yīng)用軟件進行升級。在調(diào)試階段,通常打開產(chǎn)品口蓋利用JTAG接口進行軟件燒寫,[1,2]但是在產(chǎn)品裝機后此種方法不僅麻煩且效率非常低。因此研究在不開口蓋的情況下完成應(yīng)用軟件的在線升級的方案十分必要。為了充分利用現(xiàn)有資源且對現(xiàn)有系統(tǒng)軟件及應(yīng)用軟件影響最小,新設(shè)計一個在線加載軟件用于在上位機的控制下,通過RS422總線接收應(yīng)用軟件鏡像文件,完成應(yīng)用軟件的在線加載。整個加載過程中無需打開產(chǎn)品口蓋連接仿真器。
2 在線加載軟件設(shè)計
考慮到FLASH扇區(qū)擦除及固化過程耗時較長,不宜在實時任務(wù)中執(zhí)行,在線加載軟件采用前后臺任務(wù)的結(jié)構(gòu)。在前臺周期任務(wù)中進行應(yīng)用軟件鏡像文件目標碼的接收及緩存,目標碼全部緩存完畢后,在后臺任務(wù)中依次進行FLASH扇區(qū)擦除、固化及目標碼的CRC校驗。在整個加載過程中,在線加載軟件每60ms實時向上位機發(fā)送當前加載狀態(tài)(包括傳輸中、傳輸成功、傳輸失敗、固化中、固化成功、固化失敗、校驗中、校驗成功、校驗失敗、空)及加載進度,以便地面維護人員實時監(jiān)控本次應(yīng)用軟件的加載狀態(tài)及加載進度。當加載失?。▊鬏斒?、固化失敗、校驗失?。┗虮敬渭虞d完成后,加載軟件支持再次重新加載應(yīng)用軟件;另外,在加載過程中,地面維護人員也可中斷本次加載過程并重頭開始加載應(yīng)用軟件。
2.1 前臺任務(wù)設(shè)計
前臺任務(wù)主要完成上位機下發(fā)數(shù)據(jù)的接收及解析。每60ms接收上位機下發(fā)的數(shù)據(jù),根據(jù)通信協(xié)議解析加載模式、加載請求、退出加載命令及目標碼等數(shù)據(jù)。在加載模式下,當接收到應(yīng)用軟件的加載請求時,緩存目標碼至RAM緩沖區(qū);當目標碼全部緩存完畢后,置完整緩存標志為1,并設(shè)置加載狀態(tài)為傳輸成功。當某包數(shù)據(jù)連續(xù)十個周期通信故障時,設(shè)置加載狀態(tài)為傳輸失敗。當接收到清除命令且NVM中擦除標志為未擦除時,設(shè)置NVM中進入加載標志為無效以便下電退出加載軟件。前臺任務(wù)處理流程如圖1所示。
2.2 后臺任務(wù)設(shè)計
后臺任務(wù)在前臺任務(wù)執(zhí)行的空閑時段運行。由于FLASH扇區(qū)擦除及固化操作花費時間比較長,故設(shè)計時將FLASH相關(guān)扇區(qū)擦除、目標碼固化及目標碼校驗放在后臺任務(wù)中執(zhí)行。后臺任務(wù)中實時監(jiān)控完整緩存標志的狀態(tài),當其值為1時,開始根據(jù)緩存目標碼的大小擦除所需扇區(qū),擦除成功后再將目標碼文件寫入FLASH對應(yīng)扇區(qū),寫入成功后再將FLASH中寫入數(shù)據(jù)進行CRC校驗,校驗成功后繼續(xù)等待,直到上位機發(fā)送退出加載命令或重新加載請求。為了防止加載過程中應(yīng)用軟件被擦除,本次加載確未成功加載新的應(yīng)用軟件而導(dǎo)致產(chǎn)品無法正常運行的情況,加載軟件專門在NVM中設(shè)計一個擦除標志。在擦除FLASH扇區(qū)時,先設(shè)置NVM中擦除標志為擦除,在加載成功后再將該標志設(shè)置為未擦除。在接到退出加載命令時,同時檢查NVM中擦除標志為未擦除時才允許退出加載軟件,這樣就有效避免了應(yīng)用軟件擦除產(chǎn)品無法正常運行的情況。前臺任務(wù)處理流程如圖2所示。
3 結(jié)語
本文針對某控制系統(tǒng)設(shè)計了一個在線加載軟件,該加載軟件通過RS422總線接收加載命令及應(yīng)用軟件目標碼,在上位機的控制下,完成應(yīng)用軟件的在線加載。整個加載過程中,產(chǎn)品不需要打開口蓋,也無需移位,有效地降低了地面維護人員進行應(yīng)用軟件升級的成本,提高了工作效率。
參考文獻:
[1]張曉斌,周鑫,鄭先成.基于RS232的FLASH在線編程研究[J].機電一體化,2011(2):3536,74.
[2]黃繩雄,張榮芬.嵌入式設(shè)備遠程在線升級技術(shù)的研究[J].電子設(shè)計工程,2012,20(9:172174,177).
作者簡介:馬振華(1986),男,漢族,陜西延安人,碩士,工程師,研究方向:計算機應(yīng)用。