,
(中國科學(xué)院 紅外探測與成像技術(shù)重點(diǎn)實驗室,上海 200083)
易失性存儲器的程序重注方案研究與應(yīng)用
劉德勝,王淦泉
(中國科學(xué)院 紅外探測與成像技術(shù)重點(diǎn)實驗室,上海 200083)
本文對在軌程序重注方法和工程實現(xiàn)進(jìn)行了研究,基于第二代地球同步軌道氣象衛(wèi)星“風(fēng)云四號”掃描成像輻射計掃描控制系統(tǒng),提出了一種可靠的基于易失性存儲器的在軌程序重注方法。介紹了系統(tǒng)的組成、程序重注的方案、程序執(zhí)行的流程以及驗證的方法。試驗結(jié)果證明,該方案能夠在無需重啟的情況下實現(xiàn)在軌引導(dǎo)地面重注的新程序運(yùn)行。
程序重注;在軌編程;易失性存儲器;風(fēng)云四號
長壽命衛(wèi)星對系統(tǒng)的可靠性、可維護(hù)性有很高的要求,因此應(yīng)具有在軌程序重注的功能,以便于消除軟件的自身故障、根據(jù)在軌運(yùn)行情況更改控制規(guī)律以及根據(jù)需求的變化擴(kuò)充控制功能。國際上重要的衛(wèi)星系統(tǒng)都具有程序在軌修改的功能,美國的GPS衛(wèi)星系統(tǒng)強(qiáng)調(diào)通過從地面上載升級軟件來提升衛(wèi)星總體性能,歐洲空間局己經(jīng)建立了一套完整的工作平臺,用于支持新程序的生成并經(jīng)上行信道注入到航天器數(shù)管系統(tǒng)中[2]。
作為中國新一代地球同步軌道氣象衛(wèi)星“風(fēng)云四號”的主載荷之一,掃描成像輻射計需要實現(xiàn)不間斷連續(xù)對地觀測?!帮L(fēng)云四號”掃描輻射計主要由光學(xué)、主體結(jié)構(gòu)、掃描機(jī)構(gòu)、探測器、電子、輻射制冷器、定標(biāo)機(jī)構(gòu)、熱控等組成。二維掃描成像技術(shù)是輻射計的關(guān)鍵技術(shù)之一,如何保證掃描系統(tǒng)穩(wěn)定指向精度和面型質(zhì)量,以及解決長壽命運(yùn)動問題是系統(tǒng)設(shè)計的重要內(nèi)容[1]。為了提高掃描控制系統(tǒng)的可靠性和可維護(hù)性,采取了多種手段和措施,其中程序在軌重注是重要的一個手段和措施。
掃描控制系統(tǒng)的結(jié)構(gòu)示意圖如圖1所示,載荷中的儀器管理單元(ICU)通過1553B接收衛(wèi)星數(shù)管計算發(fā)送的指令,并將其通過串口轉(zhuǎn)發(fā)給掃描控制系統(tǒng)的FPGA。FPGA負(fù)責(zé)接收、解析指令,將相應(yīng)的參數(shù)存儲在對應(yīng)的地址,然后以固定的頻率申請CPU外部中斷,通知CPU讀取。CPU響應(yīng)中斷后從FPGA讀取數(shù)據(jù)進(jìn)行運(yùn)算,將運(yùn)算的結(jié)果返回FPGA。FPGA根據(jù)運(yùn)算的數(shù)據(jù)控制伺服電機(jī)運(yùn)動。
圖1 掃描控制系統(tǒng)結(jié)構(gòu)示意圖
正常工作模式下,CPU只響應(yīng)外部中斷,和FPGA之間的串口連接沒有啟用,F(xiàn)PGA和CPU之間的串口只在程序重注時使用。
在軌重注程序有兩種方法:軟件駐留在易失性存儲器上的重配置方法和軟件駐留在非易失性存儲器上的重配置方法。第一種方法,掉電后注入的軟件消失,重新上電時需再次注入程序,對易失性存儲器的資源冗余量要求較大,軟件注入時可不停止正在運(yùn)行的軟件;第二種方法,掉電后注入的軟件不會消失,對系統(tǒng)沒有額外的需求,軟件注入時不需要停止正在運(yùn)行的軟件。參考文獻(xiàn)[2]對這兩種方法的優(yōu)缺點(diǎn)進(jìn)行了對比,第一種方法更適合持續(xù)性工作的航天器[2]。“風(fēng)云四號”作為氣象衛(wèi)星,在軌調(diào)試完成交付正式業(yè)務(wù)運(yùn)行后需要全天不間斷承擔(dān)對地觀測任務(wù)。另外,掃描控制部分的易失性存儲器SRAM設(shè)計余量較大,使用率在20%以下,因此第一種在軌重注方法更合適。
由于FPGA接收ICU發(fā)送的指令和數(shù)據(jù),CPU不直接和ICU通信,因此存在兩種方式將在軌重注的程序發(fā)送給CPU:①ICU將在軌重注的程序發(fā)送給FPGA,F(xiàn)PGA再將程序傳送給CPU,并完成CPU新程序的引導(dǎo)和運(yùn)行;②進(jìn)行程序重注時,F(xiàn)PGA將ICU和CPU的串口直接相連,ICU直接將在軌重注的指令和程序發(fā)送給CPU,并完成新的CPU程序的引導(dǎo)和運(yùn)行,然后通知FPGA切斷ICU和CPU串口通信,收回和ICU的通信權(quán)限。
第一種方式實時性較差,需要通過FPGA轉(zhuǎn)發(fā)。指令返回碼由FPGA發(fā)出,不能通過指令返回碼確認(rèn)重注程序是否準(zhǔn)確存儲于SRAM中指定的地址和CPU此時的工作狀態(tài)。第二種方式可以實時將重注的程序存儲在SRAM中,ICU可以直接發(fā)送對CPU的操作指令,完成新程序的引導(dǎo)和運(yùn)行。程序重注的指令返回碼由CPU直接發(fā)出,能夠通過指令返回碼確認(rèn)重注程序是否準(zhǔn)確地存儲于SRAM指定的位置,以及CPU此時的工作狀態(tài)是否正常。兩種方式的對比如表1所列。
表1 CPU接收在軌重注程序方式比較
根據(jù)以上分析,可以采用第二種方式。程序重注的方案是,首先由地面經(jīng)ICU發(fā)出串口切換到CPU的指令,掃描控制FPGA接收到該指令后,經(jīng)過和CPU交互,將ICU的串口和CPU的串口直接相連,地面經(jīng)過ICU直接將重注的程序發(fā)送到CPU的SRAM中存儲,并通過指令引導(dǎo)新程序運(yùn)行。CPU程序運(yùn)行起來后通過傳輸完成信號通知FPGA斷開ICU和CPU之間的串口通信,F(xiàn)PGA收回和ICU的通信權(quán)限,恢復(fù)正常工作流程。
3.1 方案概述
當(dāng)進(jìn)行程序重注時,F(xiàn)PGA將ICU的串口和CPU的串口直接相連,F(xiàn)PGA此時不再接收ICU發(fā)送的指令。當(dāng)程序重注完成后,CPU將傳輸完成信號線置為高電平,通知FPGA將ICU和CPU之間的串口斷開,F(xiàn)PGA恢復(fù)接收指令,程序重注完成,系統(tǒng)恢復(fù)正常工作流程。
為了保證正常工作時不受干擾,CPU串口中斷在正常工作模式下是關(guān)閉的,在程序重注的時候才打開,重注完成后重新關(guān)閉串口中斷。為了保證程序重注的時候不受干擾,CPU的外部中斷在程序重注的時候是關(guān)閉的,完成后再開啟。為了實現(xiàn)以上功能,在FPGA通過外部中斷發(fā)送給CPU的數(shù)據(jù)中有“串口切換請求標(biāo)志字”UART_REQ和“CPU外部中斷關(guān)閉標(biāo)志字”EXT_INT_OFF,用于打開CPU的串口中斷和關(guān)閉外部中斷。UART_REQ的值為二進(jìn)制111B時表示開啟串口中斷,為二進(jìn)制000B時表示關(guān)閉串口中斷;EXT_INT_OFF的值為二進(jìn)制111B時表示關(guān)閉外部中斷,為二進(jìn)制000B時表示開啟外部中斷。
3.2 程序執(zhí)行流程
程序重注的流程圖如圖2所示。
具體流程如下:在進(jìn)行程序重注時,地面發(fā)出“串口切換到CPU指令” 。FPGA收到該指令后,將“串口切換請求標(biāo)志字”賦值111B,并通過外部中斷通知CPU來讀取。CPU讀到該值為111B時,將地址“CPU收到串口切換請求標(biāo)志字”置為11B。FPGA收到后,在ICU和FPGA沒有通信時將ICU的串口和CPU的串口直接相連,然后將“CPU外部中斷關(guān)閉標(biāo)志字(EXT_INT_OFF)”賦值111B,并通過外部中斷通知CPU來讀取。FPGA進(jìn)入等待狀態(tài),等待“通信傳輸完成信號”為高電平。CPU讀到“CPU外部中斷關(guān)閉標(biāo)志字”為111B時,將外部中斷關(guān)閉,打開串口中斷,將“CPU收到串口切換標(biāo)志字”置為00B,并向ICU返回串口切換指令完成返回碼,等待ICU發(fā)送程序重注指令。CPU此時可以通過串口和ICU直接通信。繞過FPGA,ICU直接將上注的程序發(fā)送給CPU,存儲在RAM保留區(qū)域。
圖2 程序重注流程圖
完成程序上注后,ICU發(fā)送新程序執(zhí)行指令。CPU收到該指令后,將串口中斷關(guān)閉,將“通信傳輸完成信號”置為高電平,等待10 ms后將“通信傳輸完成信號”置為低電平,然后將指針指向新程序的起始位置,引導(dǎo)新程序運(yùn)行。FPGA檢測到傳輸完成信號線為高電平后,將ICU和CPU的串口斷開,恢復(fù)FPGA和ICU的通信。FPGA檢測到“傳輸完成信號”為低電平后,向ICU返回新程序運(yùn)行指令返回碼。FPGA恢復(fù)接收正常工作指令,并執(zhí)行正常的工作流程操作。
3.3 可靠性設(shè)計
由于地球同步軌道的空間環(huán)境較為惡劣,單粒子和其他空間離子輻射情況較嚴(yán)重,容易引起程序運(yùn)行異常,因此除了三模冗余外,程序重注還采取了以下可靠性設(shè)計:
① 為了防止掃描機(jī)構(gòu)正在運(yùn)動時進(jìn)行程序重注,導(dǎo)致機(jī)構(gòu)控制異常,因此規(guī)定在進(jìn)行程序重注之前,必須先發(fā)送機(jī)構(gòu)返回指令,此時掃描機(jī)構(gòu)處于靜止?fàn)顟B(tài)。
② 為了防止由于單粒子效應(yīng)打翻標(biāo)志位參數(shù),導(dǎo)致FPGA誤將與ICU的通信權(quán)限交給CPU,F(xiàn)PGA和CPU交互的參數(shù)采用多位形式,同時交互參數(shù)具有自恢復(fù)能力。
③ 為了防止在CPU沒有響應(yīng)的情況下FPGA將與ICU通信的權(quán)限交給CPU后,導(dǎo)致和ICU乃至地面通信中斷,F(xiàn)PGA在發(fā)起串口切換信號時,2 s內(nèi)要收到CPU的響應(yīng),否則終止將通信權(quán)限交給CPU。
④ 為了防止CPU外部中斷和串口中斷的沖突,在進(jìn)行程序重注的時候關(guān)閉外部中斷,打開串口中斷,在正常工作模式的時候,關(guān)閉串口中斷,打開外部中斷。
⑤ 為了防止通信錯誤,對每一包重注的指令進(jìn)行和校驗檢查,如果校驗錯誤,通過指令返回碼告知地面重新發(fā)送對應(yīng)的程序包??煽啃栽O(shè)計措施如表2所列。
表2 可靠性設(shè)計措施
3.4 方案驗證
通過ICU發(fā)送“串口切換到CPU指令”,將ICU和CPU的串口直接相連進(jìn)行通信。用地檢設(shè)備將CPU新程序的二進(jìn)制文件分割為246個字節(jié)一條指令,通過程序上注指令一條一條地將新程序上注給CPU,并放入RAM內(nèi)對應(yīng)的地址。上注完成后發(fā)送新程序執(zhí)行指令,控制CPU將指針指向新程序的起始地址,引導(dǎo)新程序運(yùn)行。由于遙測中有程序標(biāo)志字,可以通過該值判斷新程序是否運(yùn)行。通過觀察程序標(biāo)志字的值,發(fā)現(xiàn)新程序運(yùn)行后,程序標(biāo)志字的值已經(jīng)改為新程序的值,新程序已經(jīng)運(yùn)行。
[1] 王淦泉,陳桂林.地球同步軌道二維掃描紅外成像技術(shù)[J].紅外與激光工程,2014(2):429-433.
[2] 陶曉霞,鐘興旺,吳國春.星載嵌入式處理器軟件在軌重配置技術(shù)研究[J].空間電子技術(shù),2008(3):68-71.
[3] 張然峰,郝賢鵬,金龍旭,等.空間相機(jī)軟件在軌重注方法研究與實現(xiàn)[J].光機(jī)電信息,2011(6):30-34.
[4] 武星星,劉金國,周懷得,等.DSP空間相機(jī)控制器的在軌程序重注[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(4):26-29.
[5] 徐偉,樸永杰.航天相機(jī)控制器在軌軟件重注[J].光電工程,2013(4):65-71.
[6] 周建,段登平,王建宇.小衛(wèi)星設(shè)計中軟件重注入的關(guān)鍵技術(shù)研究[J].空間科學(xué)學(xué)報,2002(7):275-281.
[7] 吳國春,鐘興旺,陶曉霞.星載軟件在軌重配置中斷處理機(jī)制研究[J].空間電子技術(shù),2011(2):65-70.
[8] 朱亞杰,王勁強(qiáng),石志成,等.一種基于向量表的在軌程序上注方法的研究[J].電子設(shè)計工程,2013(6):140-143.
[9] 朱虹,王海燕.一種星載軟件在軌編程功能的設(shè)計和實現(xiàn)技術(shù)[J].上海航天,2004(1):26-31.
[10] 張迎獻(xiàn).基于嵌入式系統(tǒng)的軟件注入技術(shù)研究[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2006,6(2):28-29.
劉德勝(工程師),主要研究方向為空間高精度伺服控制。
征訂啟事 《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》為中國科技核心期刊(月刊),每月1日出版。郵發(fā)代號:2-765。2018年每期定價20元,全年240元。歡迎廣大讀者從郵局訂閱,或關(guān)注微信公眾號mcuworld(可掃描下方二維碼)購買本刊及其電子刊。地址:北京市海淀區(qū)學(xué)院路37號《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》雜志社郵編:100191 電話:010?82338009 傳真:010?82317043開戶銀行:北京銀行學(xué)院路支行戶名:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》雜志社有限公司賬號:01090339100120111029936網(wǎng)址:www.mesnet.com.cnEmail:mesnet@mesnet.com.cn
ResearchandApplicationofProgramReloadingBasedonVolatileMemory
LiuDesheng,WangGanquan
(Key Laboratory of Infrared System Detection and Imaging Technology,CAS,Shanghai 200083,China)
In the paper,the on-orbit program reloading method is researched,and a practical on-orbit program reloading method based on the volatile memory is proposed.This method runs at the sweeping control system of scanning imagery radiometer in FY-4 which is the Chinese second generation geostationary weather satellite.The composition of the system,the scheme of program reloading,the process of program execution and the method of verification are introduced.The test results show that the scheme can reload the new program reliably without power off.
program reloading;on-orbit program;volatile memory;FY-4
TP311
A
2017-05-23)