胡 萍,劉世佳,馬宏業(yè)
基于1553B總線的星載嵌入式軟件在軌升級方法*
胡 萍,劉世佳,馬宏業(yè)
(北京遙測技術(shù)研究所北京 100076)
針對星載嵌入式軟件在軌升級難的問題,提出了基于1553B總線的星載嵌入式軟件在軌(線)升級方法。通過1553B總線接收升級程序、固化程序和升級程序分區(qū)獨立存儲、啟動程序和應(yīng)用程序互相配合的方式,實現(xiàn)軟件升級、部分傳輸異常時補丁升級及升級異常情況下的版本回退。在某星載固態(tài)存儲設(shè)備上對方法進行了試驗驗證,結(jié)果表明,方法可對星載固態(tài)存儲設(shè)備的軟件進行在軌(線)升級,升級程序異常情況下可通過設(shè)備開關(guān)電自動回退版本,部分出錯時上注補丁量少,提高了星載嵌入式軟件測試維護和在軌維護的效率和可靠性。
1553B總線;星載軟件;軟件升級
隨著航天器壽命的增長、任務(wù)難度的加大、研制周期的縮短和星載軟件復(fù)雜度的提高,測試中發(fā)現(xiàn)問題或需求變更后升級軟件的需求也越來越多。常規(guī)的軟件升級方法是,通過相關(guān)CPU芯片(例如BM3803、DSP等)的調(diào)試接口將上位機準備的程序文件燒寫至存儲芯片中。此方法需要將產(chǎn)品從衛(wèi)星平臺拆離取回至研制單位,大多還需要將產(chǎn)品機殼打開,程序升級[1,2]后再次安裝產(chǎn)品并補充試驗,操作繁瑣、升級周期長,難以滿足用戶對研制進度的要求。因此,用戶對星載產(chǎn)品軟件不開蓋且不依賴于調(diào)試接口實現(xiàn)在線升級的需求越來越迫切。
同理,隨著衛(wèi)星壽命的延長,衛(wèi)星發(fā)射入軌后,對軟件在軌升級以實現(xiàn)錯誤修正或提升軟件能力的需求也越來越多。目前,大部分在軌產(chǎn)品不具備軟件在軌升級能力,少量軟件雖然可以進行在軌升級,但在升級過程中需要操作人員實時對上注的每包程序的接收情況進行判讀,一旦錯誤需要馬上重新上注或全部重新上注,升級時間長、效率低,而每次星地測控時間短,需要多個星地測控時段才能完成[3],嚴重影響衛(wèi)星在軌任務(wù)的執(zhí)行。
通常,星載設(shè)備組裝完成并交付衛(wèi)星使用后,僅有專用數(shù)據(jù)接口和1553B通信接口,而其中只有1553B總線上的控制器能接收地面上注數(shù)據(jù),因此,通過地面測試設(shè)備將升級程序上注至衛(wèi)星1553B控制器后,由其將升級程序通過1553B總線發(fā)送至升級設(shè)備來完成升級。
基于1553B總線實現(xiàn)在線(軌)升級方案的主要思路是:設(shè)備在地面測試過程中,在線升級通過地面測試設(shè)備模擬星上1553B總線控制器功能,由其將升級程序發(fā)送至待升級設(shè)備;衛(wèi)星在軌運行時,通過地面測控設(shè)備將升級程序上注至衛(wèi)星的1553B總線控制器,并通過1553B總線將升級程序發(fā)送至待升級設(shè)備。程序升級完成后通過指令選擇使用程序,并與Boot程序配合完成程序升級。地面系統(tǒng)在線升級和在軌升級的工作原理框圖分別如圖1和圖2所示。
實現(xiàn)基于1553B總線的星載軟件在線(在軌)升級,需要完成以下幾個方面工作:①存儲程序的硬件可分區(qū)獨立存儲;②編寫相應(yīng)的Bootloader引導(dǎo)程序,能根據(jù)需要從不同的存儲空間加載程序,實現(xiàn)軟件版本回退;③應(yīng)用軟件中具備從1553B總線接收并處理上注程序的功能。
著重針對以上三點具體的實現(xiàn)方式進行詳細的闡述及討論。
圖1 地面系統(tǒng)在線升級工作原理框圖
圖2 地面系統(tǒng)在軌升級工作原理框圖
與傳統(tǒng)的程序升級方法比較,通過1553B總線實現(xiàn)星載軟件的在線(在軌)升級,其優(yōu)勢在于:
①星載設(shè)備硬件平臺無需更改,充分利用已有硬件接口和存儲芯片,可避免產(chǎn)品重新設(shè)計帶來的技術(shù)風險和質(zhì)量風險,無需增加硬件成本;
②合蓋產(chǎn)品升級周期短,產(chǎn)品上星后在地面升級無需拆除和打開機殼,升級驗證時間從幾天縮短至幾十分鐘,大大提高了升級和驗證效率;
③升級自動完成且自動上報錯誤包,地面對錯誤包進行補充上注,無需地面操作員多次操作和實時判讀,提高了升級效率和可靠性;
④1553B總線上的終端設(shè)備,在存儲空間滿足需求的條件下,均可使用此方法進行在線(軌)升級;
⑤此方法對在軌升級同樣適用,且升級時間短,通過星地測控通道進行升級,不占用升級設(shè)備過多的任務(wù)時間;
⑥可靠性高,不會因為升級程序異常而導(dǎo)致產(chǎn)品失效。
以某衛(wèi)星的固態(tài)存儲設(shè)備為例說明,該產(chǎn)品為衛(wèi)星提供數(shù)據(jù)存儲服務(wù),對外接口有專用數(shù)據(jù)接口和1553B總線控制接口(接收測控指令和發(fā)送遙測等數(shù)據(jù)),采用CPU與FPGA配合工作方式實現(xiàn)數(shù)據(jù)的存儲和檢索讀出等功能,CPU程序在SDRAM中運行,MRAM和PROM存儲重要數(shù)據(jù)和程序。
軟件設(shè)計有2個程序,Bootloader引導(dǎo)程序和應(yīng)用程序。Bootloader引導(dǎo)程序固化在PROM中,CPU加電時即運行Bootloader程序,根據(jù)上次加電選擇的程序標志選擇固化程序或升級程序,然后立即將程序選擇標志清除,隨后加載至程序運行區(qū)并啟動執(zhí)行。完成所屬產(chǎn)品功能的應(yīng)用程序存儲在MRAM中,包括1553B總線的初始化、接收、處理和發(fā)送,以及產(chǎn)品功能實現(xiàn)模塊等。軟件功能框圖如圖3所示。
圖3 軟件功能框圖
星載軟件嵌入在CPU(如BM3803)芯片中運行,所在硬件平臺包括PROM、SDRAM、MRAM等存儲芯片,通過1553B總線與衛(wèi)星計算機通信,與FPGA配合完成產(chǎn)品的相應(yīng)功能。其中,用于存儲應(yīng)用程序的MRAM有兩組:一組用于存儲衛(wèi)星發(fā)射前版本,在地面固化程序并通過相應(yīng)的硬件處理使該組MRAM在軌不會被誤寫而導(dǎo)致在軌固化版本被破壞(即必須確保在軌產(chǎn)品硬件不失效的情況下有正確的軟件版本可以運行);另一組MRAM作為升級版本存儲空間,可以多次保存升級程序。硬件接口圖如圖4所示。
圖4 硬件接口框圖
產(chǎn)品加電或復(fù)位后,CPU啟動,從0x0地址的Bootloader程序開始運行。Bootloader程序首先檢測程序加載選擇標志(應(yīng)用程序根據(jù)地面上注指令設(shè)置,并在MRAM中冗余保存,避免出現(xiàn)異常錯誤),根據(jù)標志選擇加載固化程序還是升級程序,選擇后立即將該標志清除(寫入默認標志,表示默認為從固化程序加載);然后加載所需程序運行。若本次升級程序在線(在軌)運行異常,則可通過斷電再次加電操作,Bootloader程序加載默認的固化程序運行,保證不會因為升級程序有誤而導(dǎo)致產(chǎn)品在軌失效。
應(yīng)用程序數(shù)據(jù)拆分成若干個程序分包,每個分包中根據(jù)協(xié)議添加包頭、包序號以及包校驗值并按整星上注塊協(xié)議封裝[4],以上功能由地面測試程序完成。
應(yīng)用軟件在運行空閑狀態(tài)下,1553B總線收到程序升級指令,程序進入升級狀態(tài),不再接收其他指令,僅接收上注的升級程序。根據(jù)上注通信協(xié)議,首先對上注的程序分包進行校驗檢測,若通過檢測則根據(jù)數(shù)據(jù)包中的包序號計算在專用MRAM中存儲空間的地址,將本次分包程序?qū)懭隡RAM中;若檢測不通過,則記錄本次分包程序的包序號。每接收1包分包程序則接收計數(shù)加1,每檢測發(fā)現(xiàn)1錯誤包則錯誤包計數(shù)加1。地面設(shè)備將所有分包程序上注完后發(fā)送升級結(jié)束指令,若發(fā)現(xiàn)錯誤包計數(shù)不為0,則發(fā)送相應(yīng)指令獲取相應(yīng)的錯誤包的包序號列表,并將錯誤包再次上注。上注過程中無需地面操作人員進行判讀和干預(yù),大大縮短了升級所需的時間;錯誤包可單獨再次上注,避免出錯時大量數(shù)據(jù)重復(fù)上注,提高了升級效率。程序升級流程如圖5所示。
圖5 程序升級流程圖
基于某衛(wèi)星固態(tài)存儲器平臺測試環(huán)境,對所提出的基于1553B總線嵌入式星載軟件在線(在軌)升級方法進行試驗,主要針對程序更新和異常情況進行測試。
①原始版本(V1.00)應(yīng)用程序固化在MRAM中,通過1553B總線上注V1.01版本,目標代碼為128KB,按協(xié)議每包上注248B,分拆包后每包上注間隔為200 ms,通過傳統(tǒng)的在軌上注塊上注至星載計算機模擬設(shè)備,由其通過1553B轉(zhuǎn)發(fā)至固態(tài)存儲器,上注時長約15 min,完成后接收包計數(shù)正確,錯誤包計數(shù)為0,表明程序上注正常;若出現(xiàn)上注包錯誤則補注錯誤包;考慮到一般在軌測控弧度小于15 min,可分多次上注,完成上注前將已上注的部分程序在MRAM中冗余保存,避免因單粒子效應(yīng)的空間環(huán)境影響出現(xiàn)異常錯誤。上注完成后發(fā)送切換程序指令,產(chǎn)品斷電再重新上電,通過1553B總線下傳數(shù)據(jù)可發(fā)現(xiàn)V1.01版程序運行正常。
②上注程序中某包分拆程序校驗錯誤,上注至該包數(shù)據(jù)時,1553B下傳數(shù)據(jù)中錯誤包計數(shù)加1,上注完成后通過指令將錯誤包序號下傳至地面測試設(shè)備,重新上注該包程序,然后切換程序,產(chǎn)品斷電再重新上電,通過1553B總線下傳數(shù)據(jù)可發(fā)現(xiàn)V1.01版程序運行正常。
上注程序中有錯誤(無法運行),分拆上注完成后切換程序,產(chǎn)品斷電再重新上電,程序無法正常運行。復(fù)位后V1.00程序正常運行,實現(xiàn)版本回退。
通過試驗可知,本方法可以正確完成版本升級、補丁上注和版本回退。
本方法已在某幾個型號衛(wèi)星存儲設(shè)備中應(yīng)用,并在系統(tǒng)聯(lián)試中驗證使用,128KB大小的程序升級時間僅約10 min,大大縮短了升級時間;無需打開產(chǎn)品機殼,不需要專用下載設(shè)備,使得程序升級簡單可行,聯(lián)試中修改程序并及時驗證可縮短系統(tǒng)聯(lián)試時間。同理,上注時長約10 min,即1~2次星地測控時段即可完成128KB大小的程序升級以及切換驗證,說明本方法適用于衛(wèi)星產(chǎn)品軟件在軌升級,升級操作與地面在線升級基本相同。
本文提出了一種基于1553B總線的嵌入式星載軟件在線(在軌)升級方法,該方法通過1553B總線接收地面系統(tǒng)上注程序并處理,與指令配合實現(xiàn)升級版本的切換與使用,傳輸異常情況下可補注,升級異常版本可回退。本方法具有通用性,升級效率高,可靠性高,適用于掛接在1553B總線上的各種星載設(shè)備在線(在軌)升級。
[1] 馬振華, 張磊, 劉驍, 等. 淺談基于串口通信的在線加載程序優(yōu)化設(shè)計[J]. 信息通信, 2019, (3): 167–168.
MA Zhenhua, ZHANG Lei, LIU Xiao, et al. On the optimization design of online loader based on serial communication[J]. Information & Communication, 2019, (3): 167–168.
[2] 劉政華, 常培平. RS422總線的TMS320F2812軟件在線加載方法[J]. 單片機與嵌入式系統(tǒng)應(yīng)用, 2019, 19(5): 63–66.
LIU Zhenghua, CHANG Peiping. On-line software loading method for TMS320F2812 based on RS422 bus[J]. Microcontrollers & Embedded Systems, 2019, 19(5): 63–66.
[3] 韋涌泉, 董振輝, 張紅軍. 一種基于文件的嵌入式星載軟件在軌升級方法[J]. 單片機與嵌入式系統(tǒng)應(yīng)用, 2018, 18(5): 32–35.
WEI Yongquan, DONG Zhenhui, ZHANG Hongjun. Method of embedded onboard software upgrading based on file[J]. Microcontrollers & Embedded Systems, 2018, 18(5): 32–35.
[4] 何熊文. 一種通用遙控注入數(shù)據(jù)格式的設(shè)計與應(yīng)用[J]. 航天器工程, 2008, 17(1): 94–99.
HE Xiongwen. Design an application of a common spacecraft telecommand data format[J]. Spacecraft Engineering, 2008, 17(1): 94–99.
Method of embedded onboard software upgrading based on 1553B bus
HU Ping, LIU Shijia, MA Hongye
(Beijing Research Institute of Telemetry, Beijing 100076, China)
In the paper, a method of onboard embedded software upgrade based on 1553B bus is proposed. In this method, the upgrade program is
by 1553B bus, the solidified program and the upgrade program are stored separately, and the Bootloader program and application program cooperation with each other to realize the software upgrade. When part of the transmission is abnormal, the patch is upgrade and the version is rolled backed when the upgrade is abnormal. The results show that the method can upgrade the software of the satellite storage device on orbit(on-line), and automatically back off the version by power on/off when the upgrade program is abnormal. When some errors occur, the patch is less. The maintenance efficiency and reliability of on-board embedded software are improved.
1553B bus; Onboard software; Software upgrade
V433
A
CN11-1780(2022)01-0066-04
10.12347/j.ycyk.20200815001
胡萍, 劉世佳, 馬宏業(yè). 基于1553B總線的星載嵌入式軟件在軌升級方法[J]. 遙測遙控, 2022, 43(1): 66–69.
DOI:10.12347/j.ycyk. 20200815001
: HU Ping, LIU Shijia, MA Hongye.Method of embedded onboard software upgrading based on 1553B bus[J].Journal of Telemetry, Tracking and Command, 2022, 43(1): 66–69.
胡 萍 1978年生,本科,研究員,主要研究方向為嵌入式星載軟件設(shè)計。
劉世佳 1991年生,碩士,工程師,主要研究方向為嵌入式星載軟件設(shè)計。
馬宏業(yè) 1982年生,碩士,高級工程師,主要研究方向為嵌入式星載軟件設(shè)計。
基金項目:航天預(yù)研項目
2020-08-15
2021-01-18
Website: ycyk.brit.com.cn Email: ycyk704@163.com
(本文編輯:楊秀麗)