熊浩倫,閆國(guó)瑞,李國(guó)軍,呂 達(dá)
(航天東方紅衛(wèi)星有限公司 北京 100094)
隨著軟件無線電技術(shù)、綜合電子技術(shù)的日益發(fā)展和星上信息處理能力的不斷提升,硬件功能軟件化已成為當(dāng)前航天技術(shù)重要的發(fā)展趨勢(shì)。小衛(wèi)星因其高度集成的特點(diǎn),軟件(含F(xiàn)PGA 產(chǎn)品)的作用和地位越來越重要,且隨著小衛(wèi)星壽命的增長(zhǎng)和任務(wù)難度的加大,軟件產(chǎn)品的復(fù)雜度越來越高,需要具備在軌重構(gòu)和更新等維護(hù)能力,以應(yīng)對(duì)可能出現(xiàn)的任務(wù)擴(kuò)展和軟件潛在缺陷[1]。目前,小衛(wèi)星星載軟件多使用PROM、EEPROM 或FLASH 作為軟件的存儲(chǔ)介質(zhì),軟件固化在PROM 中的星載計(jì)算機(jī)只具備有限的RAM 區(qū)數(shù)據(jù)在軌維護(hù)能力,如配置參數(shù)修改、注入補(bǔ)丁程序;軟件存儲(chǔ)在可在線編程器件(如EEPROM、FLASH)中的星載計(jì)算機(jī)可實(shí)現(xiàn)軟件配置參數(shù)修改、注入補(bǔ)丁程序和在軌完整重構(gòu)[2,3]??芍貥?gòu)FPGA 主要通過更改SRAM-FPGA 的外部配置存儲(chǔ)器的內(nèi)容實(shí)現(xiàn),維護(hù)時(shí)是以完整替換的方式進(jìn)行[4,5]。受空間環(huán)境影響,與可重復(fù)編程存儲(chǔ)器相比,使用只讀存儲(chǔ)器作為星載軟件的存儲(chǔ)器的可靠性更高,但不利于軟件的在軌維護(hù)[6]。小衛(wèi)星的航天器屬性和高集成特點(diǎn)要求在工程設(shè)計(jì)上既要使用有限的各種資源確保衛(wèi)星的壽命和高可靠性,也要不斷增加設(shè)計(jì)的靈活性使電子設(shè)備小型化和產(chǎn)品化。軟件在軌維護(hù)的最高追求是可靠性和靈活性的協(xié)調(diào)統(tǒng)一,將星載設(shè)備的基本功能與型號(hào)專屬應(yīng)用功能剝離開,基本功能作為生存功能,具有高可靠、通用化的特點(diǎn),型號(hào)專屬應(yīng)用功能具有軟件可定義、可重構(gòu)的特點(diǎn),兩者兼?zhèn)鋭t可以實(shí)現(xiàn)這一目標(biāo)。本文提出了一種利用可固化星載處理設(shè)備最小基本功能實(shí)現(xiàn)小衛(wèi)星軟件在軌重構(gòu)的系統(tǒng),實(shí)現(xiàn)軟件可靠上注、可靠存儲(chǔ)和可靠加載,提高了小衛(wèi)星軟件在軌維護(hù)的可靠性和靈活性。
當(dāng)前,小衛(wèi)星所涉及的領(lǐng)域已包括了空間通信與導(dǎo)航、地球遙感、戰(zhàn)略武器、空間技術(shù)試驗(yàn)與驗(yàn)證、深空探測(cè)等[7]。將小衛(wèi)星分為公用平臺(tái)和有效載荷兩大模塊,分別進(jìn)行設(shè)計(jì),一種公共平臺(tái)可滿足具有相似重量、相似姿態(tài)控制和相似能源需求的多個(gè)空間飛行任務(wù)的要求[8]。雖然不同載荷使用的某一衛(wèi)星公用平臺(tái)的星載軟件功能差異性往往較小,但新載荷的工作需求也會(huì)導(dǎo)致公用平臺(tái)星載軟件功能進(jìn)行定制式修改,破壞衛(wèi)星平臺(tái)設(shè)備的一致性,需要將共性功能產(chǎn)品化并支持軟件重構(gòu)。小衛(wèi)星載荷綜合電子技術(shù)的發(fā)展,使載荷機(jī)構(gòu)、天線或鏡頭共用技術(shù)和星載載荷數(shù)據(jù)實(shí)時(shí)處理技術(shù)得以實(shí)現(xiàn),這些均是建立在電子設(shè)備具有重構(gòu)功能的基礎(chǔ)之上[9]。
與地面系統(tǒng)軟件比,星載軟件在軌維護(hù)具有較多的條件限制:軟件注入依賴的星地測(cè)控弧段短,通信速率低,有限時(shí)間注入的數(shù)據(jù)量有限,進(jìn)行較大規(guī)模軟件注入時(shí)注入和確認(rèn)過程漫長(zhǎng),效率低下;空間環(huán)境復(fù)雜,對(duì)星載軟件可靠性要求高,可編程存儲(chǔ)器存儲(chǔ)單元數(shù)據(jù)存在單粒子翻轉(zhuǎn)或失效的風(fēng)險(xiǎn),軟件注入及加載必須進(jìn)行正確性和完整性檢查;關(guān)鍵星載軟件,如星務(wù)、姿控和電源分系統(tǒng)的軟件,需要在維護(hù)失敗時(shí)能及時(shí)回退到以前的版本,并且在維護(hù)時(shí)依然能支持衛(wèi)星平臺(tái)業(yè)務(wù)的運(yùn)轉(zhuǎn)[10]。
基于小衛(wèi)星上述特點(diǎn)和在軌軟件重構(gòu)的限制條件,在不改變現(xiàn)有小衛(wèi)星信息數(shù)據(jù)流的基礎(chǔ)上進(jìn)行在軌軟件重構(gòu)系統(tǒng)設(shè)計(jì)。采用現(xiàn)場(chǎng)總線(CAN)技術(shù),國(guó)內(nèi)小衛(wèi)星構(gòu)建了以星務(wù)管理計(jì)算機(jī)為控制和調(diào)度中心、以面向控制對(duì)象的各分系統(tǒng)計(jì)算機(jī)為執(zhí)行單元的網(wǎng)絡(luò)分布式系統(tǒng)。小衛(wèi)星在軌軟件重構(gòu)系統(tǒng)充分利用這一信息流基礎(chǔ)進(jìn)行設(shè)計(jì)。該系統(tǒng)中,星載計(jì)算機(jī)或FPGA 具備只讀存儲(chǔ)器存儲(chǔ)該產(chǎn)品的最小系統(tǒng)功能軟件,具備可重復(fù)編程存儲(chǔ)器存儲(chǔ)該產(chǎn)品的完整應(yīng)用功能軟件;最小系統(tǒng)功能軟件能實(shí)現(xiàn)完整應(yīng)用功能軟件的注入和引導(dǎo)加載;待重構(gòu)軟件可通過高速遙控通道上注到軟件公用臨時(shí)存儲(chǔ)區(qū),由星務(wù)計(jì)算機(jī)實(shí)現(xiàn)軟件的分發(fā)調(diào)度和管理。該系統(tǒng)的總體信息流如圖1 所示。每個(gè)掛接在整星現(xiàn)場(chǎng)總線上的終端設(shè)備其軟件實(shí)現(xiàn)功能可概括為兩個(gè)階段:第一階段為最小系統(tǒng)階段,該階段能完成基本的設(shè)備安全控制、應(yīng)用軟件的注入修改和應(yīng)用軟件的引導(dǎo)加載;第二階段為應(yīng)用軟件階段,該階段實(shí)現(xiàn)設(shè)備承擔(dān)的應(yīng)用功能,并具有升級(jí)程序接口,能接收和存儲(chǔ)新的軟件程序;第二階段的軟件通過復(fù)位或切機(jī)指令可以進(jìn)入第一階段運(yùn)行,當(dāng)?shù)诙A段軟件引導(dǎo)不成功或接收到駐留第一階段指令,設(shè)備才會(huì)長(zhǎng)期運(yùn)行于第一階段;否則,成功引導(dǎo)加載應(yīng)用軟件后,直接運(yùn)行應(yīng)用軟件。測(cè)控系統(tǒng)因其功能固定,無需進(jìn)行軟件重構(gòu),上注軟件可通過測(cè)控的低速信道慢速立即注入的方式注入到終端設(shè)備中,也可通過測(cè)控的高速上行通道快速注入到軟件臨時(shí)存儲(chǔ)區(qū)中,注入完畢后經(jīng)由星務(wù)計(jì)算機(jī)調(diào)度分發(fā),達(dá)到上注通道冗余和適應(yīng)補(bǔ)丁程序注入、完整程序注入的目的。軟件數(shù)據(jù)的注入、分發(fā)和引導(dǎo)加載均須經(jīng)過正確性和完整性檢查確認(rèn)。
最小系統(tǒng)是在完整的硬件環(huán)境上運(yùn)行的,但是并不實(shí)現(xiàn)完整的硬件功能。最小系統(tǒng)除了使用終端設(shè)備的總線通信接口、存儲(chǔ)器資源和必須的衛(wèi)星安全控制部件外,不使用其它硬件資源。最小系統(tǒng)在硬件描述和軟件功能上具有一致性。
終端設(shè)備采用星載計(jì)算機(jī)作為軟件重構(gòu)載體時(shí),最小系統(tǒng)在硬件資源和軟件功能上的共同點(diǎn)為:
①存儲(chǔ)器包含PROM、FLASH 和SRAM,最小系統(tǒng)軟件存儲(chǔ)在PROM 中并運(yùn)行在PROM 中,應(yīng)用軟件存儲(chǔ)在FLASH 中并被引導(dǎo)加載到SRAM 中運(yùn)行;
② 最小系統(tǒng)軟件包含BootLoad 功能、CAN 總線通信功能和安全管理功能;
③應(yīng)用軟件注入時(shí)在FLASH 中存儲(chǔ)3 份;
④ FLASH 中至少有2 個(gè)存儲(chǔ)分區(qū),非重構(gòu)軟件分區(qū)和重構(gòu)軟件分區(qū),僅重構(gòu)軟件分區(qū)的FLASH可進(jìn)行在軌擦除和寫入操作;
⑤ 應(yīng)用軟件引導(dǎo)加載時(shí)進(jìn)行三取二比對(duì),比對(duì)通過后加載到SRAM 中執(zhí)行,如果重構(gòu)軟件分區(qū)的軟件無法引導(dǎo)加載則自動(dòng)回退到加載非重構(gòu)軟件分區(qū),如果非重構(gòu)軟件分區(qū)軟件也無法完成引導(dǎo)加載則直接放棄引導(dǎo)加載,停留在最小系統(tǒng)中運(yùn)行;
⑥ 最小系統(tǒng)軟件支持將完整應(yīng)用軟件直接注入到SRAM 中運(yùn)行。
圖1 小衛(wèi)星軟件重構(gòu)系統(tǒng)信息流圖Fig.1 Information flow chart of small satellite software reconfiguration system
終端設(shè)備采用FPGA 作為重構(gòu)載體時(shí),最小系統(tǒng)在硬件資源和軟件功能上的共同點(diǎn)為:
①使用從并配置模式,利用專用控制電路或微處理器來控制重構(gòu)時(shí)序?qū)PGA 進(jìn)行配置,當(dāng)使用專用控制電路時(shí)優(yōu)先選用反熔絲型FPGA 實(shí)現(xiàn)功能,其次可選擇FLASH 型FPGA,當(dāng)使用微處理器時(shí)優(yōu)先使用PROM 存儲(chǔ)器存儲(chǔ)控制程序,待配置FPGA 的配置信息存儲(chǔ)在FLASH 中,如圖2所示;
② 最小系統(tǒng)功能通過配置FPGA 或通過微處理器實(shí)現(xiàn),最小系統(tǒng)功能包括程序加載、程序重構(gòu)、在線實(shí)時(shí)刷新、CAN 總線通信和非使用硬件的安全管理;
③FPGA 配置數(shù)據(jù)在FLASH 中存儲(chǔ)3 份;
④ FLASH 中至少有2 個(gè)存儲(chǔ)分區(qū),非重構(gòu)軟件分區(qū)和重構(gòu)軟件分區(qū),僅重構(gòu)軟件分區(qū)的FLASH可進(jìn)行在軌擦除和寫入操作;
⑤ FPGA 配置數(shù)據(jù)加載時(shí)進(jìn)行三取二比對(duì),比對(duì)通過后進(jìn)行在線重配置,如果無法完成重配置則自動(dòng)讀取非重構(gòu)區(qū)的數(shù)據(jù)進(jìn)行在線重配置,如果非重構(gòu)數(shù)據(jù)也有錯(cuò)誤,則待配置FPGA 暫時(shí)無法實(shí)現(xiàn)功能,等待地面通過指令實(shí)現(xiàn)在線重配置。
圖2 FPGA 重構(gòu)最小系統(tǒng)Fig.2 Minimum system of FPGA reconfiguration
小衛(wèi)星整星在軌的基本安全性主要包括以下三點(diǎn):
①整星上下行通道的安全性;
② 整星能源系統(tǒng)的安全性;
③星上信息傳輸通道的安全性。
當(dāng)某設(shè)備一段時(shí)間內(nèi)處于最小系統(tǒng)運(yùn)行時(shí),必須確保上述三條基本安全性不受影響。星上提供星務(wù)管理、電源管理、姿態(tài)控制和導(dǎo)航信息生成等業(yè)務(wù)的衛(wèi)星平臺(tái)設(shè)備以及載荷設(shè)備的最小系統(tǒng)功能集至少如表1 所示。
表1 各設(shè)備最小系統(tǒng)功能集Table 1 Function set of minimum system for different equipments
星載計(jì)算機(jī)的嵌入式軟件一般規(guī)模不大,可執(zhí)行文件的大小往往小于4MB,F(xiàn)PGA 配置文件的大小隨著星載FPGA 使用的門電路越來越多,最大已接近32MB。星載計(jì)算機(jī)嵌入式軟件一般還支持補(bǔ)丁程序的注入運(yùn)行,一個(gè)小補(bǔ)丁可能小于240B。軟件注入策略與注入軟件的大小相關(guān),數(shù)據(jù)量很小的補(bǔ)丁軟件通過測(cè)控慢速上行通道即可實(shí)現(xiàn)當(dāng)圈注入并立即執(zhí)行;當(dāng)數(shù)據(jù)量很大時(shí),使用測(cè)控系統(tǒng)的高速上行通道實(shí)現(xiàn)快速注入可減少測(cè)控時(shí)間,受限于總線通信速率和各設(shè)備的數(shù)據(jù)接收能力,上注軟件無法立即送達(dá)目的終端,需暫時(shí)緩存在星務(wù)存儲(chǔ)器中,軟件的分發(fā)和執(zhí)行根據(jù)延時(shí)指令進(jìn)行安排。重構(gòu)軟件以數(shù)據(jù)幀的形式注入到星務(wù)管理系統(tǒng)中,注入幀格式必須兼顧低速通道、高速通道和整星信息流的特點(diǎn)。針對(duì)小衛(wèi)星軟件重構(gòu)系統(tǒng)而設(shè)計(jì)的上行數(shù)據(jù)幀結(jié)構(gòu)如表2 所示,幀長(zhǎng)為250B。其中,首幀中包含本軟件的起始運(yùn)行地址、軟件總字節(jié)數(shù)等重要信息,尾幀包含軟件文件的完整性校驗(yàn)碼。同時(shí),為了保證每幀的正確性,需要對(duì)每幀信息進(jìn)行校驗(yàn)值計(jì)算。
表2 軟件注入數(shù)據(jù)幀格式Table 2 Transfer frame of software program data
對(duì)于存儲(chǔ)在軟件臨時(shí)存儲(chǔ)區(qū)的數(shù)據(jù),需要通過CAN 總線分發(fā)到目的終端。整星CAN 總線受星務(wù)計(jì)算機(jī)調(diào)度,主要用來進(jìn)行遙測(cè)數(shù)據(jù)的輪詢、指令和運(yùn)行參數(shù)的發(fā)送以及整星工作狀態(tài)的廣播等工作。受降額使用要求,星上CAN 總線實(shí)際每秒傳輸有效應(yīng)用數(shù)據(jù)小于6KB,CAN 總線常規(guī)業(yè)務(wù)每秒占用3KB,終端設(shè)備的額外數(shù)據(jù)接收和處理能力分布在每秒500B~6KB 字節(jié)。對(duì)于一個(gè)32MB 的載荷FPGA配置數(shù)據(jù),如果總線常規(guī)業(yè)務(wù)一直在進(jìn)行,則按最快速度分發(fā),需分發(fā)10900s,按最慢速度分發(fā),需分發(fā)65536s,分發(fā)時(shí)間較長(zhǎng)。為了應(yīng)對(duì)不同數(shù)據(jù)的分發(fā)需求,數(shù)據(jù)分發(fā)采用動(dòng)態(tài)分發(fā)的方式進(jìn)行。動(dòng)態(tài)分發(fā)是指利用星載周期性任務(wù)的時(shí)間間隙進(jìn)行數(shù)據(jù)分發(fā)控制,分為快速分發(fā)和業(yè)務(wù)空閑分發(fā),快速分發(fā)時(shí),整星不提供載荷業(yè)務(wù)運(yùn)行能力,將無需工作的設(shè)備斷電并僅保持加電設(shè)備的關(guān)鍵遙測(cè)輪詢,減少常規(guī)業(yè)務(wù)的總線占用時(shí)間,最大化軟件數(shù)據(jù)分發(fā)時(shí)間;業(yè)務(wù)空閑分發(fā)時(shí),不影響衛(wèi)星正常業(yè)務(wù),星務(wù)計(jì)算機(jī)每秒對(duì)總線數(shù)據(jù)量進(jìn)行監(jiān)視,利用各任務(wù)的空閑間隙插入軟件數(shù)據(jù)分發(fā)操作。各終端設(shè)備接收到非易失性存儲(chǔ)區(qū)軟件注入數(shù)據(jù)幀后,立即將其在線編程寫入,對(duì)于需要整體斷電的載荷設(shè)備,可以在每次工作之后斷電或工作到最長(zhǎng)限制時(shí)間后自動(dòng)斷電,由星務(wù)計(jì)算機(jī)實(shí)現(xiàn)注入的斷點(diǎn)續(xù)傳控制和進(jìn)度控制;對(duì)于無需斷電的設(shè)備,無論何種軟件數(shù)據(jù)注入幀均可連續(xù)分發(fā)完成。數(shù)據(jù)分發(fā)任務(wù)的執(zhí)行流程如圖3 所示。數(shù)據(jù)分發(fā)和普通遙控通道上行注入幀在總線上傳送的格式都一樣,各終端在最小系統(tǒng)模式下和應(yīng)用軟件模式下均能接收該數(shù)據(jù),進(jìn)行新版本應(yīng)用軟件的接收和本地存儲(chǔ)。最小系統(tǒng)軟件具有注入重構(gòu)區(qū)軟件和非重構(gòu)區(qū)軟件的功能權(quán)限,應(yīng)用軟件僅具有注入重構(gòu)區(qū)軟件的功能權(quán)限。
圖3 數(shù)據(jù)分發(fā)流程Fig.3 Data distribution flow chart
各終端功能設(shè)備的最小系統(tǒng)均具有應(yīng)用軟件加載能力,星載計(jì)算機(jī)嵌入式應(yīng)用軟件也可根據(jù)需要設(shè)計(jì)在應(yīng)用軟件下進(jìn)行其它版本應(yīng)用軟件的加載。最小系統(tǒng)進(jìn)行應(yīng)用軟件加載時(shí)有自動(dòng)加載和指令加載兩種方式,自動(dòng)加載通過監(jiān)測(cè)星箭分離狀態(tài)設(shè)置地面研制模式和在軌模式的不同的最小系統(tǒng)駐留時(shí)長(zhǎng),指令加載是指在最小系統(tǒng)中通過指令重新啟動(dòng)應(yīng)用軟件的加載,星箭分離狀態(tài)和默認(rèn)加載存儲(chǔ)區(qū)標(biāo)志可通過指令配置寫入軟件啟動(dòng)配置文件中。當(dāng)星箭分離狀態(tài)為未分離時(shí),標(biāo)識(shí)該設(shè)備處于地面研制模式,可以在最小系統(tǒng)中自動(dòng)停駐30s,等待地面發(fā)送最小系統(tǒng)指令進(jìn)行操控或進(jìn)行應(yīng)用軟件注入;無駐留指令干預(yù)的情況下,最小系統(tǒng)30s 后即自動(dòng)引導(dǎo)加載默認(rèn)加載存儲(chǔ)區(qū)的應(yīng)用軟件。當(dāng)星箭分離為已分離時(shí),最小系統(tǒng)無自動(dòng)停駐功能,啟動(dòng)后即開始引導(dǎo)加載默認(rèn)存儲(chǔ)區(qū)的應(yīng)用軟件,應(yīng)用軟件和最小系統(tǒng)軟件均有指令接口更改默認(rèn)星箭分離狀態(tài)。引導(dǎo)加載時(shí)首先從存儲(chǔ)區(qū)檢查軟件運(yùn)行的地址信息和長(zhǎng)度信息,然后三取二讀取并計(jì)算軟件文件的MD5 校驗(yàn)碼,通過后將數(shù)據(jù)搬移到目的SRAM 地址中運(yùn)行;當(dāng)三取二比對(duì)不通過或校驗(yàn)不成功時(shí),給出錯(cuò)誤類型信息,如果初次引導(dǎo)為重構(gòu)區(qū)軟件且未引導(dǎo)成功則自動(dòng)切換為引導(dǎo)加載非重構(gòu)分區(qū)軟件,如果非重構(gòu)區(qū)依然引導(dǎo)加載不成功,則軟件自動(dòng)停留在最小系統(tǒng)中運(yùn)行,放棄應(yīng)用軟件的引導(dǎo)加載。應(yīng)用軟件在進(jìn)行其它版本應(yīng)用軟件的引導(dǎo)加載時(shí),讀取軟件的過程與最小系統(tǒng)軟件一致,當(dāng)引導(dǎo)加載成功后可跳轉(zhuǎn)到新的應(yīng)用軟件起始地址運(yùn)行,如果引導(dǎo)加載不成功,則繼續(xù)運(yùn)行本應(yīng)用軟件。FPGA 配置數(shù)據(jù)的上注更新不支持運(yùn)行時(shí)讀取新的配置數(shù)據(jù)并進(jìn)行跳轉(zhuǎn),只能在最小系統(tǒng)中通過配置狀態(tài)實(shí)現(xiàn)重構(gòu)區(qū)和非重構(gòu)區(qū)配置參數(shù)的加載選擇。配置數(shù)據(jù)從FLASH 中讀取到SRAM 中進(jìn)行配置時(shí)也需進(jìn)行三取二比對(duì)和MD5 校驗(yàn)碼比對(duì),選擇過程邏輯與嵌入式軟件一樣。
為確保軟件程序數(shù)據(jù)塊注入和加載的可靠性、安全性和好用易用性,進(jìn)行如下差錯(cuò)控制設(shè)計(jì)。
①對(duì)注入數(shù)據(jù)的地址連續(xù)性進(jìn)行檢查,如果檢測(cè)出地址不連續(xù),則拒收當(dāng)前程序塊及其它非期望接收的程序塊,并將期望接收的塊序號(hào)作為遙測(cè)下傳,待地面處理;直至地面發(fā)送恢復(fù)上注指令,或接收到地址連續(xù)且正確的程序塊,恢復(fù)程序塊接收工作;地面從期望接收的塊地址開始重新發(fā)送程序塊,上注繼續(xù)。
② 對(duì)注入數(shù)據(jù)的數(shù)據(jù)正確性進(jìn)行檢查,如果校驗(yàn)錯(cuò),則拒收當(dāng)前程序塊及其它后續(xù)程序塊,并將校驗(yàn)錯(cuò)的塊地址作為遙測(cè)下傳,等候地面處理;直至地面發(fā)送恢復(fù)上注指令,或接收到正確且地址連續(xù)的程序塊,恢復(fù)程序塊接收工作;地面從校驗(yàn)錯(cuò)的塊地址重新發(fā)送程序塊,上注繼續(xù)。
③具備對(duì)程序塊存儲(chǔ)器進(jìn)行按扇區(qū)校驗(yàn)功能,并能夠通過遙測(cè)下傳存在校驗(yàn)錯(cuò)的扇區(qū)號(hào)或地址信息,支持按單個(gè)扇區(qū)擦除及程序塊重注。
④ 數(shù)據(jù)塊注入完成后根據(jù)地址信息和長(zhǎng)度信息自動(dòng)進(jìn)行MD5 碼計(jì)算,計(jì)算通過時(shí)才表明完整的程序塊已經(jīng)注入,如果計(jì)算不正確,給出遙測(cè)顯示,等待地面檢查;所有的內(nèi)存數(shù)據(jù)均可以通過遙測(cè)通道下傳到地面。
⑤ 數(shù)據(jù)加載時(shí)三取二比對(duì)檢查,當(dāng)出現(xiàn)2 份數(shù)據(jù)正常一份數(shù)據(jù)異常時(shí),記錄數(shù)據(jù)的地址并通過遙測(cè)下傳,提醒地面處理;也可設(shè)置禁止/允許類指令實(shí)現(xiàn)可重構(gòu)區(qū)存儲(chǔ)數(shù)據(jù)錯(cuò)誤時(shí)的自動(dòng)擦除和正確回寫的控制,該操作必須按扇區(qū)為最小單位進(jìn)行。
本文提出的軟件在軌重構(gòu)系統(tǒng)已經(jīng)在某新技術(shù)驗(yàn)證衛(wèi)星上研制使用,在地面測(cè)試期間進(jìn)行了多次軟件更新和容錯(cuò)測(cè)試。
某新技術(shù)驗(yàn)證衛(wèi)星共有10 個(gè)整星一級(jí)CAN 總線終端節(jié)點(diǎn),其中,6 個(gè)為星載微控制器實(shí)現(xiàn)軟件功能,星務(wù)計(jì)算機(jī)、姿控計(jì)算機(jī)和相機(jī)綜合電子計(jì)算機(jī)均具有PROM 固化的最小系統(tǒng)軟件,且可進(jìn)行應(yīng)用軟件的完整更新,其它CPU 軟件均具有補(bǔ)丁程序的注入執(zhí)行功能;4 個(gè)為FPGA 實(shí)現(xiàn)產(chǎn)品功能,數(shù)傳處理器、實(shí)時(shí)處理器和星間通信終端均采用最小系統(tǒng)架構(gòu),能實(shí)現(xiàn)FPGA 配置數(shù)據(jù)的多份存儲(chǔ)和FPGA 在線重配置。在整星測(cè)試階段,通過高速遙控上行通道進(jìn)行了多次設(shè)備軟件更新試驗(yàn),如表3所示。試驗(yàn)結(jié)果表明,該系統(tǒng)能正確完成整星各設(shè)備的軟件重構(gòu),靈活性強(qiáng)。
表3 軟件重構(gòu)試驗(yàn)結(jié)果Table 3 Software reconfiguration test results
軟件重構(gòu)系統(tǒng)的可靠性由星務(wù)設(shè)備和各終端節(jié)點(diǎn)設(shè)備進(jìn)行設(shè)計(jì)保證。容錯(cuò)試驗(yàn)包括程序數(shù)據(jù)塊上注、分發(fā)存儲(chǔ)和引導(dǎo)加載三個(gè)階段的內(nèi)容,如表4 所示。試驗(yàn)結(jié)果表明,該系統(tǒng)具有較強(qiáng)的容錯(cuò)能力,除非硬件失效,重構(gòu)軟件的程序數(shù)據(jù)導(dǎo)致的異常均有恢復(fù)處理措施,系統(tǒng)在軌安全性和可靠性高。
表4 容錯(cuò)試驗(yàn)結(jié)果Table 4 Error control test results
本文設(shè)計(jì)的基于最小系統(tǒng)的小衛(wèi)星在軌軟件重構(gòu)系統(tǒng)其本質(zhì)是落實(shí)小衛(wèi)星電子設(shè)備的通用功能產(chǎn)品化、專屬功能可配置化的要求,在不降低產(chǎn)品可靠性、安全性和壽命的基礎(chǔ)上,使同一款產(chǎn)品能滿足更多不同功能的衛(wèi)星當(dāng)前甚至未來可拓展的使用需求。該系統(tǒng)對(duì)小衛(wèi)星整星的快速研制也具有積極意義,即單機(jī)層面上,將軟件存儲(chǔ)、引導(dǎo)加載的共同點(diǎn)與設(shè)備基本功能相結(jié)合,實(shí)現(xiàn)終端設(shè)備最小系統(tǒng)的產(chǎn)品固化,應(yīng)用功能可在產(chǎn)品的全壽命周期進(jìn)行持續(xù)開發(fā)迭代而不影響整星AIT 進(jìn)度;衛(wèi)星整星層面,可以在不影響整星常規(guī)業(yè)務(wù)的情況下,通過測(cè)控通道實(shí)現(xiàn)不同大小的軟件功能重構(gòu),使星載終端設(shè)備可適應(yīng)業(yè)務(wù)變化、新技術(shù)應(yīng)用及故障修復(fù)等需求。