專利名稱:衛(wèi)星星務軟件上注方法
技術領域:
本發(fā)明涉及衛(wèi)星技術領域,特別地,涉及一種衛(wèi)星星務軟件上注方法。
背景技術:
星務軟件是衛(wèi)星的電子系統(tǒng)的核心,負責衛(wèi)星的任務調(diào)度和綜合信息處理,對星上各任務模塊的運行進行高效可靠的管理和控制,監(jiān)視全星狀態(tài)并協(xié)調(diào)整星工作。星務軟件的可靠性是衛(wèi)星整星可靠性設計的重要組成部分。目前提高星務軟件可靠性的途徑主要有:(1)按照軟件工程方法組織軟件的開發(fā);(2)在設計時按照航天工程軟件開發(fā)規(guī)范進行設計;(3)通過專業(yè)部門進行軟件評測,檢查軟件功能,排除缺陷;(4)冗余備份;(5)在線更新。其中,在線更新功能是重要手段之一,也是衛(wèi)星發(fā)射后可以使用的唯一手段。在線更新可分為參數(shù)更新和軟件上注。參數(shù)更新是將重要參數(shù)作為變量別寫入軟件,通過遙控指令對參數(shù)進行在線調(diào)整。參數(shù)更新只能對軟件功能進行微調(diào),較大的功能調(diào)整只能通過軟件上注完成。軟件上注是指在衛(wèi)星星務軟件功能需要進行較大更改的情況下,衛(wèi)星地面測控站通過測控鏈路將新的星務軟件上傳至衛(wèi)星,并替換原有星務軟件。(此處請發(fā)明人補充對“軟件上注”的簡要說明)目前,在國內(nèi)外衛(wèi)星上,參數(shù)更新使用較多。軟件上注方式只在個別微小衛(wèi)星上使用過,并且上注軟件是上注至SRAM (Static RAM,靜態(tài)隨機存儲器)(請發(fā)明人補充英文全稱以及中文標準譯文)中運行,并沒有寫入非易失存儲器,若OBC (On-board Computer,星載計算機)(請發(fā)明人補充英文全稱以及中文標準譯文)斷電重啟,上注的軟件會丟失。國內(nèi)少數(shù)大衛(wèi)星曾實現(xiàn)過部分軟件模塊的上注,還未查到星務軟件整體上注的相關資料。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種穩(wěn)定可靠、重啟后不會丟失的、且能實現(xiàn)星務軟件的整體替換的衛(wèi)星星務軟件上注方法,以解決上注軟件上注至SRAM中運行,OBC斷電重啟,上注的軟件會丟失的問題;且可實現(xiàn)星務軟件的整體替換。為實現(xiàn)上述目的,本發(fā)明提供了一種衛(wèi)星星務軟件上注方法,包括以下步驟:S2:接收地面站上傳的上注軟件,并將所述上注軟件存儲在星載計算機的外部SRAM 中;S5:將所述上注軟件從所述外部SRAM中寫入到FLASH中并替換原星務軟件。作為本發(fā)明的進一步改進:在完成所述步驟S2之后,且在進行所述步驟S5之前,所述方法還包括步驟:S3:校驗所述外部SRAM中的上注軟件。所述步驟S3包括以下步驟:S301:接收來自地面站的校驗指令,并根據(jù)所述外部SRAM中的所述上注軟件計算校驗值;
S302:將計算得到的校驗值與地面站根據(jù)上傳的所述上注軟件算得的校驗值進行比對;若二者相同,則判定校驗成功;否則,將所述外部SRAM中的所述上注軟件丟棄,并重復所述步驟S2和所述步驟S3。所述步驟S2中還包括:S201:在接收地面站上傳的所述上注軟件之前,先接收來自地面站的準備接收上注軟件指令,并根據(jù)所述準備接收上注軟件指令將已接收軟件數(shù)量和軟件塊接收標志均置零;S202:開始接收所述上注軟件并將所述上注軟件存儲在星載計算機的外部SRAM中,并且根據(jù)接收到的數(shù)據(jù)塊實時更新所述已接收軟件數(shù)量;S203:所述上注軟件接收完成后,將所述軟件塊接收標志置位。在進行所述步驟S2之前,所述方法還包括步驟:S1:從 PROM (Programable Read-Only Memory,可編程只讀存儲器)啟動。在完成所述步驟S5之后,所述方法還包括步驟:S6:校驗所述FLASH中的所述上注軟件。在進行所述步驟S2之前,所述方法還包括步驟:SlA:從 FLASH 啟動;在完成所述步驟S3之后,且在進行所述S5之前,所述方法還包括步驟:S4:從PROM啟動;通過參數(shù)上注接收并設置所述上注軟件大小;在完成所述步驟S4后,重復步驟S3,然后再進行所述步驟S5。在進行所述步驟S2之前,所述方法還包括以下步驟:SlB:接收地面站上傳的上注客戶端,并將所述上注客戶端存儲在星載計算機的外部SRAM中;SlC:在所述外部SRAM中運行所述上注客戶端。所述步驟SlB中,所述上注客戶端存儲在所述外部SRAM中的第一存儲空間;所述步驟S2中,所述上注軟件存儲在外部SRAM中的第二存儲空間;且所述第一存儲空間和所述第二存儲空間相互獨立。在完成所述步驟S5之后,所述方法還包括步驟:S6:校驗所述FLASH中的所述上注軟件。本發(fā)明具有以下有益效果:1、本發(fā)明的衛(wèi)星星務軟件上注方法,先將上注軟件存儲在外部SRAM中;再寫入到FLASH中并替換原星務軟件,能保證OBC斷電重啟時,上注的軟件不會丟失;2、本發(fā)明的衛(wèi)星星務軟件上注方法,通過步驟S5,能實現(xiàn)整體替換FLASH中的原星務軟件,實現(xiàn)星務軟件的整體上注功能。除了上面所描述的目的、特征和優(yōu)點之外,本發(fā)明還有其它的目的、特征和優(yōu)點。下面將參照圖,對本發(fā)明作進一步詳細的說明。
構成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1是本發(fā)明優(yōu)選實施例的衛(wèi)星的硬件系統(tǒng)結構示意圖;圖2是本發(fā)明優(yōu)選實施例的衛(wèi)星星務軟件上注方法的流程示意圖;圖3是本發(fā)明優(yōu)選實施例的衛(wèi)星星務軟件上注方法的優(yōu)選流程示意圖;圖4是本發(fā)明優(yōu)選實施例1的衛(wèi)星星務軟件上注方法的流程示意圖;圖5是本發(fā)明優(yōu)選實施例1的衛(wèi)星星務軟件上注方法中步驟S2的具體流程示意圖;圖6是本發(fā)明優(yōu)選實施例1的衛(wèi)星星務軟件上注方法中步驟S2的具體流程示意圖7是本發(fā)明優(yōu)選實施例1的衛(wèi)星星務軟件上注方法的部分步驟的具體流程示意圖;圖8是本發(fā)明優(yōu)選實施例2的衛(wèi)星星務軟件上注方法的流程示意圖;圖9是本發(fā)明優(yōu)選實施例2的衛(wèi)星星務軟件上注方法的部分步驟的具體流程示意圖;圖10是本發(fā)明優(yōu)選實施例3的衛(wèi)星星務軟件上注方法的流程示意圖;圖11是本發(fā)明優(yōu)選實施例3的SRAM中的上注客戶端及上注軟件的存儲示意圖。
具體實施例方式以下結合附圖對本發(fā)明的實施例進行詳細說明,但是本發(fā)明可以由權利要求限定和覆蓋的多種不同方式實施。參見圖2,本發(fā)明的衛(wèi)星星務軟件上注方法,包括以下步驟:S2:接收地面站上傳的上注軟件(上注軟件即需上注的星務軟件),并將上注軟件存儲在星載計算機的外部SRAM中;S5:將上注軟件從外部SRAM中寫入到FLASH中并替換原星務軟件。其中,替換原星務軟件是指擦除原星務軟件的FLASH存儲片區(qū),并將上注軟件從外部SRAM中分塊寫入FLASH存儲空間。通過上述步驟,先將上注軟件存儲在星載計算機的外部SRAM中;再寫入到FLASH中并替換原星務軟件,能保證OBC斷電重啟時,上注的軟件不會丟失;并能實現(xiàn)整體替換FLASH中的原星務軟件,實現(xiàn)星務軟件的整體上注功能。整體上注可實現(xiàn)軟件功能的完全更新(部分上注,上注的數(shù)據(jù)量小,占用的測控資源也少。具體使用部分上注還是軟件上注,需要根據(jù)實際的應用需求來定。)。在實際應用時,參見圖3,在完成上述步驟S2之后,且在進行步驟S5之前,還可進行步驟S3:校驗外部SRAM中的上注軟件。即在上注軟件接收完畢后,進行校驗,可保證上注的軟件的完整性。參見圖1,典型的衛(wèi)星的星載計算機的硬件系統(tǒng),包括MCU (Micro Control Unit,微控制器)和FPGA (現(xiàn)場可編程門陣列,F(xiàn)ield Programable Gate Array), FPGA外設有SRAM (靜態(tài)隨機存儲器Static RAM)和PROM (可編程只讀存儲器,Programable Read-OnlyMemory),并通過TTC (測控分系統(tǒng),用于實現(xiàn)星地無線通信)實現(xiàn)與地面的數(shù)據(jù)交互。MCU(Micro-Control Unit,微控制器)采用ARM7 (LPC2294)芯片,PROM中存放簡化的星務軟件,MCU的片內(nèi)FLASH (FLASH Memory,F(xiàn)LASH存儲器)存放完整的星務軟件,由FPGA控制從FLASH存儲器還是從PROM加載軟件。從地面站上傳的上注軟件緩存在SRAM中,SRAM除為星務軟件提供運行空間外,還用于存儲有效載荷數(shù)據(jù)和上注軟件。以下實施例均是在圖1所示的硬件系統(tǒng)環(huán)境下進行的,該硬件環(huán)境僅作為優(yōu)選的實施方式,并不限定本發(fā)明的衛(wèi)星星務軟件上注方法的實施環(huán)境。實施例1:參見圖4,本實施例的衛(wèi)星星務軟件上注方法,包括以下步驟:S1:從 PROM (Programmable Read Only Memory,可編程序的只讀存儲器)啟動(非默認的啟動方式)。由于FLASH不能對自身正在運行的程序進行擦寫,故可以從PROM啟動以實現(xiàn)后續(xù)的FLASH擦寫行為。S2:地面站通過上行無線鏈路將需上注的星務軟件(以下簡稱上注軟件)上傳,衛(wèi)星接收地面站上傳的上注軟件,并將上注軟件存儲在星載計算機的外部SRAM中。實際應用中,參見圖5,步驟S2優(yōu)選采用以下的步驟實現(xiàn):S201:在接收地面站上傳的上注軟件之前,先接收來自地面站的準備接收上注軟件指令,并根據(jù)準備接收上注軟件指令將已接收軟件數(shù)量和軟件塊接收標志均置零,并將待接收數(shù)據(jù)包編號置0,然后向地面站發(fā)送回復(準備就緒),以通知用戶。S202:衛(wèi)星開始接收上注軟件并將上注軟件存儲在星載計算機的外部SRAM中,并且根據(jù)接收到的數(shù)據(jù)塊實時更新已接收軟件數(shù)量。已接收軟件數(shù)量可使用全局變量U8 ProgRecFlag[]表示,用于記錄已上載的軟件塊,每收到一塊就將數(shù)組中對應的元素置OxFF。實際應用時,在接收上注軟件時,對每個接收到的數(shù)據(jù)包進行校驗,丟棄重復的、以及錯誤的數(shù)據(jù)包,將正確的數(shù)據(jù)包按照計算得到的位置依次存儲,若存儲的上注軟件的數(shù)據(jù)包超過限定的軟件大小(軟件大小由MCU片內(nèi)FLASH容量決定,上注軟件大小不能超過FLASH容量。),則也需要丟棄。S203:上注軟件接收完成后,衛(wèi)星將軟件塊接收標志置位(本實施例中,置位具體為置1),并且向地面站發(fā)送確認信息后。地面站在上傳上注軟件時(開始上傳時進行計時),根據(jù)文件指針的位置判斷是否上傳完畢,當上傳完畢,并且收到衛(wèi)星發(fā)出的確認信息后,地面站提示用戶:上注軟件已上傳完成。實際應用時,可能一軌未能完成上注軟件的傳輸,則需要在下一軌對上注軟件進行續(xù)傳(參見圖6);或者如果在上注過程中發(fā)生丟包,則需要對衛(wèi)星已接收的數(shù)據(jù)包進行查詢并對丟失的數(shù)據(jù)包進行重傳。則進行續(xù)傳(或重傳)前,地面站向衛(wèi)星發(fā)送查詢軟件數(shù)據(jù)量指令,則衛(wèi)星將上注軟件信息打包發(fā)送給地面站,上注軟件信息中包括已接收的軟件數(shù)據(jù)量以及軟件塊接收情況列表,地面站收到該上注軟件信息后,提示用戶進行續(xù)傳。用戶確認續(xù)傳后,地面站根據(jù)上注軟件信息生成重傳列表,然后將需續(xù)傳的數(shù)據(jù)打包(未傳完的上注軟件)發(fā)送給衛(wèi)星(并計時),衛(wèi)星開始接收數(shù)據(jù)包并將數(shù)據(jù)包續(xù)寫入上注軟件的存儲空間。S3:校驗外部SRAM中的上注軟件。實際應用時,參見圖7,步驟S3—般采用以下步驟實現(xiàn):S301:衛(wèi)星接收來自地面站的“上注軟件校驗”的指令(間接指令),并根據(jù)外部SRAM中的上注軟件計算校驗值。本實施例中,衛(wèi)星將校驗值發(fā)送給地面站,由地面站進行比對,實際應用時,由衛(wèi)星或者地面站進行比對均可。S302:將計算得到的校驗值與地面站根據(jù)上傳的上注軟件算得的校驗值進行比對;若二者相同,則判定校驗成功;否則,將外部SRAM中的上注軟件丟棄,并重復步驟S2和步驟S3。S5:將上注軟件從外部SRAM中寫入到FLASH中替換原星務軟件。參見圖7,本實施例中,衛(wèi)星收到來自地面站的“上注軟件寫入FLASH”的指令(間接指令)后,擦除FLASH扇區(qū),然后將上注軟件從SRAM中分塊復制到MCU的內(nèi)存中,然后再從內(nèi)存中將這些分塊的數(shù)據(jù)寫入FLASH,直至所有數(shù)據(jù)寫完。S6:校驗FLASH中的上注軟件。參見圖7,本實施例中,衛(wèi)星收到來自地面站的“FLASH寫入校驗”的指令(間接指令)后,開中斷,設置內(nèi)存映射方式為用戶FLASH模式,以實現(xiàn)對FLASH數(shù)據(jù)的訪問(對于LPC2294,通過設置MEMMAP=I實現(xiàn)),然后讀取FLASH數(shù)據(jù)(FLASH數(shù)據(jù)即步驟S5中寫入的上注軟件)并計算校驗值,將校驗值打包,然后再設置內(nèi)存映射模式為用戶外部模式,以恢復PROM軟件運行(對于LPC2294,通過設置MEMMAP=3實現(xiàn)),然后開中斷,并將校驗值數(shù)據(jù)包發(fā)送給地面站,由地面站將校驗值與自身計算的校驗值進行比較,如二者相同,則認為校驗通過,本校驗步驟原理與步驟S3相同,步驟S3及步驟S6中,衛(wèi)星的校驗值計算方法與地面站的校驗值計算方法均可采用通用的校驗算法,也可以是自定義的用戶算法,只要衛(wèi)星和地面站采用的完全相同的校驗值計算方法即可達到校驗的目的。如果校驗通過,地面通過切機指令(停止看門狗)重啟到FLASH運行。本實施例的方法步驟簡單,易于實現(xiàn)。但由于軟件在PROM中的運行速度慢(約是在FLASH中運行速度的I/16 ),因此采用由PROM啟動再上注的方式上注時間較長,一軌難以上注完成。實施例2:參見圖8、圖9,本實施例的衛(wèi)星星務軟件上注方法,包括以下步驟:SlA:從FLASH啟動(默認的啟動方式)。S2:接收地面站上傳的上注軟件,并將上注軟件存儲在星載計算機的外部SRAM中。該步驟與實施例1相同。S3:校驗外部SRAM中的上注軟件。校驗過程與實施例1相同。校驗正確后,切至PROM啟動。由于切機時僅是OBC復位,SRAM不會斷電,因此上注到外部SRAM中的軟件不會丟失。但上注軟件大小由于存在內(nèi)存中,切機后即無法使用。S4:參見圖9,從PROM啟動;通過參數(shù)上注功能接收并設置上注軟件大小。(地面站發(fā)送帶有參數(shù)(上注軟件大小)的遙控指令,衛(wèi)星的TTC分系統(tǒng)接收指令并傳給OBC,OBC從中提取參數(shù)。)重復步驟S3。S5:將上注軟件從外部SRAM中寫入到FLASH中并替換原星務軟件。該步驟與實施例I的步驟S5基本相同,在此不再贅述。S6:校驗FLASH中的上注軟件。參見圖9,校驗過程與實施例1的步驟S6基本相同,在此不再贅述。該實施例2可克服實施例1的上注時間較長的不足,上注速度較快,但需要一個上
注參數(shù)。實施例3:參見圖10,本實施例的衛(wèi)星星務軟件上注方法,包括以下步驟:
SlB:從FLASH啟動星務軟件(默認的啟動方式),接收地面站上傳的上注客戶端(帶軟件上注功能),并將上注客戶端存儲在星載計算機的外部SRAM中。SlC:在外部SRAM中運行上注客戶端(通過間接指令“上注軟件啟動”跳到SRAM中運行)。參見圖11,步驟SlB中,上注客戶端存儲在外部SRAM中的第一存儲空間;步驟S2中,上注軟件存儲在外部SRAM中的第二存儲空間;且第一存儲空間和第二存儲空間相互獨立(存儲區(qū)域不能有重疊)。S2:接收地面站上傳的上注軟件,并將上注軟件存儲在外部SRAM中。該步驟與實施例I基本相同,在此不再贅述。S3:校驗外部SRAM中的上注軟件;該步驟與實施例1的步驟S3基本相同,在此不再贅述。S5:將上注軟件從外部SRAM中寫入到FLASH中并替換原星務軟件。該步驟與實施例I的步驟S5基本相同,在此不再贅述。S6:校驗FLASH中的上注軟件。該步驟與實施例1的步驟S6基本相同,在此不再復述。上注軟件寫入FLASH后,通過切機實現(xiàn)從FLASH啟動,運行新的星務軟件。一般通過間接指令“停止看門狗”,停止星上看門狗的輸出,F(xiàn)PGA將執(zhí)行切機操作。綜上可知:本發(fā)明的衛(wèi)星星務軟件上注方法,先將上注軟件存儲在星載計算機的外部SRAM中;再寫入到FLASH中并替換原星務軟件,能保證OBC斷電重啟時,上注的軟件不會丟失;并能實現(xiàn)整體替換FLASH中的原星務軟件,實現(xiàn)星務軟件的整體上注功能。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種衛(wèi)星星務軟件上注方法,其特征在于,包括以下步驟: 52:接收地面站上傳的上注軟件,并將所述上注軟件存儲在星載計算機的外部SRAM中; 55:將所述上注軟件從所述外部SRAM中寫入到FLASH中并替換原星務軟件。
2.根據(jù)權利要求1所述的衛(wèi)星星務軟件上注方法,其特征在于,在完成所述步驟S2之后,且在進行所述步驟S5之前,所述方法還包括步驟: 53:校驗所述外部SRAM中的上注軟件。
3.根據(jù)權利要求2所述的衛(wèi)星星務軟件上注方法,其特征在于,所述步驟S3包括以下步驟: 5301:接收來自地面站的校驗指令,并根據(jù)所述外部SRAM中的所述上注軟件計算校驗值; 5302:將計算得到的校驗值與地面站根據(jù)上傳的所述上注軟件算得的校驗值進行比對;若二者相同,則判定校驗成功;否則,將所述外部SRAM中的所述上注軟件丟棄,并重復所述步驟S2和所述步驟S3。
4.根據(jù)權利要求1所述的衛(wèi)星星務軟件上注方法,其特征在于,所述步驟S2中還包括: 5201:在接收地面站上 傳的所述上注軟件之前,先接收來自地面站的準備接收上注軟件指令,并根據(jù)所述準備接收上注軟件指令將已接收軟件數(shù)量和軟件塊接收標志均置零; 5202:開始接收所述上注軟件并將所述上注軟件存儲在星載計算機的外部SRAM中,并且根據(jù)接收到的數(shù)據(jù)塊實時更新所述已接收軟件數(shù)量; 5203:所述上注軟件接收完成后,將所述軟件塊接收標志置位。
5.根據(jù)權利要求1至4中任一項所述的衛(wèi)星星務軟件上注方法,其特征在于,在進行所述步驟S2之前,所述方法還包括步驟: S1:從PROM啟動。
6.根據(jù)權利要求5所述的衛(wèi)星星務軟件上注方法,其特征在于,在完成所述步驟S5之后,所述方法還包括步驟: 56:校驗所述FLASH中的所述上注軟件。
7.根據(jù)權利要求2至4中任一項所述的衛(wèi)星星務軟件上注方法,其特征在于,在進行所述步驟S2之前,所述方法還包括步驟: SlA:從 FLASH 啟動; 在完成所述步驟S3之后,且在進行所述S5之前,所述方法還包括步驟: 54:從PROM啟動;通過參數(shù)上注接收并設置所述上注軟件大小; 在完成所述步驟S4后,重復步驟S3,然后再進行所述步驟S5。
8.根據(jù)權利要求1至4中任一項所述的衛(wèi)星星務軟件上注方法,其特征在于,在進行所述步驟S2之前,所述方法還包括以下步驟: SlB:接收地面站上傳的上注客戶端,并將所述上注客戶端存儲在星載計算機的外部SRAM 中; SlC:在所述外部SRAM中運行所述上注客戶端。
9.根據(jù)權利要求8所述的衛(wèi)星星務軟件上注方法,其特征在于,所述步驟SlB中,所述上注客戶端存儲在所述外部SRAM中的第一存儲空間;所述步驟S2中,所述上注軟件存儲在外部SRAM中的第二存儲空間;且所述第一存儲空間和所述第二存儲空間相互獨立。
10.根據(jù)權利要求9所述的衛(wèi)星星務軟件上注方法,其特征在于,在完成所述步驟S5之后,所述方法還包括步驟: S6:校驗所述FL ASH中的所述上注軟件。
全文摘要
本發(fā)明公開了一種衛(wèi)星星務軟件上注的處理方法,包括步驟S2接收地面站上傳的上注軟件,并將上注軟件存儲在星載計算機的外部SRAM中;S5將上注軟件從外部SRAM中寫入到FLASH中并替換原星務軟件。本發(fā)明能保證OBC斷電重啟時,上注的軟件不會丟失;并能實現(xiàn)整體替換FLASH中的原星務軟件,實現(xiàn)星務軟件的整體上注功能。
文檔編號G06F11/14GK103164242SQ201310041108
公開日2013年6月19日 申請日期2013年2月1日 優(yōu)先權日2013年2月1日
發(fā)明者楊磊, 繩濤, 陳利虎, 宋新, 劉鵬飛, 程云 申請人:中國人民解放軍國防科學技術大學