一種星載軟件在軌維護(hù)及升級(jí)方法
【專利摘要】一種星載軟件在軌維護(hù)及升級(jí)方法,通過將星載軟件劃分為基礎(chǔ)程序和應(yīng)用程序,基礎(chǔ)程序存儲(chǔ)在PROM中,應(yīng)用程序存儲(chǔ)在EEPROM或FLASH等可讀寫的非揮發(fā)性存儲(chǔ)介質(zhì)中。應(yīng)用程序的存儲(chǔ)邏輯上包括原軟件存儲(chǔ)區(qū)、升級(jí)軟件存儲(chǔ)區(qū)、模塊軟件上注區(qū),三區(qū)均包含區(qū)校驗(yàn)信息,初始狀態(tài)下原軟件存儲(chǔ)區(qū)與升級(jí)軟件存儲(chǔ)區(qū)的存儲(chǔ)內(nèi)容均為星載軟件的原始應(yīng)用程序,模塊軟件上注區(qū)為空。通過地面指令控制和數(shù)據(jù)上注,可以支持星載軟件的整體軟件升級(jí)、軟件模塊替換或參數(shù)修改、增加軟件模塊三種需求,提高星載軟件在軌維護(hù)及升級(jí)的效率。
【專利說明】一種星載軟件在軌維護(hù)及升級(jí)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種衛(wèi)星軟件的在軌處理方法。
【背景技術(shù)】
[0002]衛(wèi)星的高可靠性及長(zhǎng)壽命對(duì)星載軟件的在軌維護(hù)和升級(jí)提出了高要求。星載軟件在軌維護(hù)及升級(jí)的主要原因包括:1)原有軟件設(shè)計(jì)缺陷的更正;2)當(dāng)硬件設(shè)計(jì)存在缺陷或發(fā)生故障時(shí),實(shí)現(xiàn)軟件在軌重構(gòu)或改變使用策略;3)適應(yīng)應(yīng)用需求的變化;4)在軌進(jìn)行軟件開發(fā)。目前在軌軟件維護(hù)及升級(jí)的實(shí)現(xiàn)方式是通過星地遙控,對(duì)星載原有軟件進(jìn)行修改。
[0003]根據(jù)在軌維護(hù)升級(jí)原因以及在軌維護(hù)的便利程度,星載軟件的在軌維護(hù)一般有以下三種需求:1)整體軟件升級(jí),完全替換原有方案;2)替換某些模塊或修改參數(shù);3)增加某些模塊。目前大部分星載軟件均通過預(yù)留鉤子函數(shù),通過增加某些模塊來實(shí)施在軌維護(hù),現(xiàn)有文獻(xiàn)中并未發(fā)現(xiàn)能夠同時(shí)滿足以上三種需求的軟件在軌維護(hù)方法。
[0004]另外,目前星載軟件多使用PROM或EEPROM作為軟件的存儲(chǔ)介質(zhì),使用PROM存儲(chǔ)軟件,由于PROM上的軟件不可更改,軟件整體升級(jí)和替換某些模塊不易實(shí)施,且應(yīng)用程序一般規(guī)模較大,全部存儲(chǔ)在PROM中,成本較高。使用EEPROM作為軟件的的存儲(chǔ)介質(zhì),由于EEPROM為非揮發(fā)性存儲(chǔ)介質(zhì)在空間應(yīng)用上沒有解決單粒子翻轉(zhuǎn)的問題,安全性不如PROM聞。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的技術(shù)解決問題是:克服現(xiàn)有技術(shù)的不足,提供了一種能夠同時(shí)支持整體軟件升級(jí)、軟件模塊替換或參數(shù)修改、增加軟件模塊三種需求的星載軟件在軌維護(hù)及升級(jí)方法。
[0006]本發(fā)明的技術(shù)解決方案是:一種星載軟件在軌維護(hù)及升級(jí)方法,包括如下步驟:
[0007]( I)將星載軟件劃分為基礎(chǔ)程序和應(yīng)用程序,其中基礎(chǔ)程序存儲(chǔ)在PROM中,應(yīng)用程序存儲(chǔ)在可讀寫的非揮發(fā)性存儲(chǔ)介質(zhì)中;所述的星載軟件包括星務(wù)中心計(jì)算機(jī)軟件及除星務(wù)中心計(jì)算機(jī)軟件以外的其他星載軟件,星務(wù)中心計(jì)算機(jī)軟件與地面通過星地通信鏈路通信,星務(wù)中心計(jì)算機(jī)軟件與其他星載軟件通過總線進(jìn)行通信,其中星務(wù)中心計(jì)算機(jī)軟件基礎(chǔ)程序的最小功能集包括遙控遙測(cè)功能、非揮發(fā)性存儲(chǔ)介質(zhì)讀寫功能,校驗(yàn)功能、程序加載功能;其他星載軟件基礎(chǔ)程序最小功能集包括總線通信功能、非揮發(fā)性存儲(chǔ)介質(zhì)讀寫功能、校驗(yàn)功能、程序加載功能;所述非揮發(fā)性存儲(chǔ)介質(zhì)在邏輯上包括原軟件存儲(chǔ)區(qū)、升級(jí)軟件存儲(chǔ)區(qū)、模塊軟件上注區(qū),三區(qū)均包含區(qū)校驗(yàn)信息,初始狀態(tài)下原軟件存儲(chǔ)區(qū)與升級(jí)軟件存儲(chǔ)區(qū)的存儲(chǔ)內(nèi)容均為星載軟件的原始應(yīng)用程序,而模塊軟件上注區(qū)為空;將三個(gè)存儲(chǔ)區(qū)分別劃分為塊,每一塊設(shè)置塊校驗(yàn)信息;
[0008](2)硬件加電或復(fù)位后,首先運(yùn)行基礎(chǔ)程序,基礎(chǔ)程序運(yùn)行后等待固定時(shí)間,判斷是否接收到地面發(fā)送的運(yùn)行上注模式指令;如果在等待時(shí)間內(nèi)收到運(yùn)行上注模式指令,則轉(zhuǎn)步驟(3)進(jìn)行軟件上注,否則轉(zhuǎn)步驟(4);[0009](3)接收地面發(fā)送的上注程序塊,并對(duì)上注程序塊進(jìn)行校驗(yàn);若上注程序塊校驗(yàn)正確,則依據(jù)上注程序塊中所標(biāo)識(shí)的存儲(chǔ)位置將上注程序塊存入相應(yīng)的升級(jí)軟件存儲(chǔ)區(qū)或者模塊軟件上注區(qū);若上注程序塊校驗(yàn)錯(cuò)誤,則重新發(fā)送上注數(shù)據(jù)塊,直至所有上注程序塊發(fā)送完畢;
[0010](4)根據(jù)地面發(fā)送的加載應(yīng)用程序標(biāo)志判斷加載原軟件存儲(chǔ)區(qū)還是升級(jí)軟件存儲(chǔ)區(qū),若為加載升級(jí)軟件存儲(chǔ)區(qū),轉(zhuǎn)步驟(5),若為加載原軟件存儲(chǔ)區(qū),轉(zhuǎn)步驟(6);
[0011](5)對(duì)升級(jí)軟件存儲(chǔ)區(qū)進(jìn)行區(qū)校驗(yàn),若區(qū)校驗(yàn)正確則進(jìn)行升級(jí)軟件區(qū)加載,轉(zhuǎn)步驟
(7),若區(qū)校驗(yàn)錯(cuò)誤則進(jìn)一步進(jìn)行塊校驗(yàn),并向地面下傳塊校驗(yàn)錯(cuò)誤信息進(jìn)行錯(cuò)誤定位,轉(zhuǎn)步驟(6);
[0012](6)對(duì)原軟件存儲(chǔ)區(qū)進(jìn)行區(qū)校驗(yàn),若區(qū)校驗(yàn)正確則進(jìn)行原軟件存儲(chǔ)區(qū)加載,轉(zhuǎn)步驟
(7),若區(qū)校驗(yàn)錯(cuò)誤則返回步驟(2);
[0013](7)判斷模塊軟件上注區(qū)是否有新程序塊寫入,若有新程序塊寫入則轉(zhuǎn)步驟(8),否則轉(zhuǎn)步驟(9);
[0014](8)對(duì)模塊軟件上注區(qū)的新程序塊進(jìn)行校驗(yàn),若校驗(yàn)正確則進(jìn)行模塊軟件上注區(qū)的加載,若校驗(yàn)錯(cuò)誤則向地面下傳校驗(yàn)錯(cuò)誤信息進(jìn)行錯(cuò)誤定位;
[0015](9)跳轉(zhuǎn)至SRAM區(qū)運(yùn)行應(yīng)用程序,本次星載軟件啟動(dòng)或更新完成。
[0016]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0017](I)本發(fā)明方法能夠同時(shí)支持星載軟件在軌維護(hù)及升級(jí)的三種需求,即整體軟件升級(jí)、軟件模塊替換或參數(shù)修改、增加軟件模塊,可以大大提高星載軟件在軌維護(hù)及升級(jí)的效率和通用性;
[0018](2)本發(fā)明方法將星載軟件分為基礎(chǔ)程序和應(yīng)用程序,基礎(chǔ)程序存儲(chǔ)在PROM中,應(yīng)用程序存儲(chǔ)在EEPROM中,減少了 PROM使用量,節(jié)約了成本。由于具有維護(hù)功能,并不會(huì)降低應(yīng)用程序的存儲(chǔ)安全性;
[0019](3)本發(fā)明方法將EEPEOM分為原軟件存儲(chǔ)區(qū)、升級(jí)軟件存儲(chǔ)區(qū)、模塊軟件上注區(qū)三個(gè)存儲(chǔ)區(qū),提高了軟件升級(jí)時(shí)的可靠性,同時(shí)也提高了進(jìn)行軟件恢復(fù)的便利性;
[0020](4)本發(fā)明方法將三個(gè)存儲(chǔ)區(qū)劃分為塊,提高了軟件升級(jí)時(shí)的可靠性和易用性以及出現(xiàn)校驗(yàn)錯(cuò)誤時(shí)錯(cuò)誤的快速定位;
[0021](5)本發(fā)明方法中基礎(chǔ)程序功能固定,設(shè)備出廠時(shí)即可固化PROM中的基礎(chǔ)程序,簡(jiǎn)化了星上設(shè)備返廠固化軟件的流程,縮短了研制進(jìn)度,可以節(jié)省產(chǎn)品研制經(jīng)費(fèi);并且由于多個(gè)型號(hào)或多個(gè)設(shè)備的PROM中的基礎(chǔ)程序功能一致,可以采用通用標(biāo)準(zhǔn)軟件產(chǎn)品的設(shè)計(jì)方法,易做成多型號(hào)通用的標(biāo)準(zhǔn)化軟件產(chǎn)品,進(jìn)一步減小軟件產(chǎn)品研制的工作量。
【專利附圖】
【附圖說明】
[0022]圖1為本發(fā)明方法的原理框圖;
[0023]圖2為本發(fā)明方法的流程圖。
【具體實(shí)施方式】
[0024]本發(fā)明方法的原理框圖如圖1所示。圖1中,星務(wù)中心計(jì)算機(jī)以及其他單機(jī)掛接在總線上,通過總線進(jìn)行通信。相應(yīng)的,星載軟件也包括星務(wù)中心計(jì)算機(jī)軟件和其他星載軟件。
[0025]將星載軟件分為基礎(chǔ)程序和應(yīng)用程序,基礎(chǔ)程序存儲(chǔ)在PROM等高可靠性存儲(chǔ)介質(zhì)中,而應(yīng)用程序存儲(chǔ)在EEPROM或FLASH等可讀寫的非揮發(fā)性存儲(chǔ)介質(zhì)中。
[0026]基礎(chǔ)程序具有運(yùn)行應(yīng)用程序和運(yùn)行上注兩種模式,默認(rèn)為運(yùn)行應(yīng)用程序模式。星務(wù)中心計(jì)算機(jī)軟件基礎(chǔ)程序最小功能集包括:基本遙控遙測(cè)功能、EEPROM讀寫功能、校驗(yàn)功能、將應(yīng)用程序從EEPROM加載到SRAM等功能;下位機(jī)軟件基礎(chǔ)程序最小功能集包括:總線通信功能、EEPROM讀寫功能、校驗(yàn)功能、將應(yīng)用程序從EEPROM加載到SRAM等功能。兩者的主要不同之處在于星務(wù)中心計(jì)算機(jī)軟件基礎(chǔ)程序具備基本的遙測(cè)遙控功能,而下位機(jī)軟件基礎(chǔ)程序具備總線通信功能。
[0027]如圖1所示,EEPEOM分為三區(qū),包括原軟件存儲(chǔ)區(qū)、升級(jí)軟件存儲(chǔ)區(qū)、模塊軟件上注區(qū)。三區(qū)均包含區(qū)校驗(yàn)信息,默認(rèn)原軟件存儲(chǔ)區(qū)與升級(jí)軟件存儲(chǔ)區(qū)一致,均存儲(chǔ)原應(yīng)用程序。并設(shè)有加載應(yīng)用程序標(biāo)志用來標(biāo)識(shí)運(yùn)行原軟件還是運(yùn)行升級(jí)軟件,若加載應(yīng)用程序標(biāo)志為加載升級(jí)軟件則加載升級(jí)軟件存儲(chǔ)區(qū),否則加載原軟件存儲(chǔ)區(qū),加載應(yīng)用程序標(biāo)志默認(rèn)為加載原軟件。模塊軟件上注區(qū)均為空。并將EEPROM三個(gè)存儲(chǔ)區(qū)中的每個(gè)區(qū)劃分為塊,每塊128字節(jié)(可根據(jù)實(shí)際應(yīng)用進(jìn)行調(diào)整),每一塊可以設(shè)置塊校驗(yàn)信息。
[0028]如圖2所示,軟件上注及運(yùn)行過程設(shè)計(jì)如下(其中(I)?(4)為軟件上注過程,(I )、
(5)?(11)為軟件啟動(dòng)及運(yùn)行過程):
[0029]( I)硬件加電或復(fù)位后,首先運(yùn)行PROM中的基礎(chǔ)程序,基礎(chǔ)程序等待一定時(shí)間(例如10S)。若在等待時(shí)間內(nèi)收到運(yùn)行上注模式指令,則運(yùn)行上注模式,進(jìn)行軟件上注,轉(zhuǎn)入步驟(2),否則轉(zhuǎn)入步驟(5)運(yùn)行應(yīng)用程序;
[0030](2)接收地面發(fā)送的上注程序塊,上注程序塊包括上注區(qū)域標(biāo)識(shí)(用于標(biāo)識(shí)上注到升級(jí)軟件存儲(chǔ)區(qū)還是模塊軟件上注區(qū)。整體軟件升級(jí)上注到升級(jí)軟件存儲(chǔ)區(qū),替換某些模塊或修改參數(shù)上注到升級(jí)軟件存儲(chǔ)區(qū)或模塊軟件上注區(qū),增加某些模塊上注到模塊軟件上注區(qū))、所在區(qū)域的塊標(biāo)識(shí)、上注內(nèi)容、校驗(yàn)信息等。首先對(duì)上注程序塊進(jìn)行校驗(yàn),若上注程序塊校驗(yàn)正確,依據(jù)上注區(qū)域標(biāo)識(shí)和所在區(qū)域的塊標(biāo)識(shí)寫入EEPROM中對(duì)應(yīng)的位置,轉(zhuǎn)入步驟(3 ),否則地面重新發(fā)送該上注程序塊,轉(zhuǎn)入步驟(2 );
[0031](3)重復(fù)步驟(2),直至所有待更新塊(包括更新加載應(yīng)用程序標(biāo)志及區(qū)校驗(yàn)信息)更新完畢后轉(zhuǎn)入步驟(4);
[0032](4)發(fā)送加載應(yīng)用程序指令,轉(zhuǎn)入步驟(5);
[0033](5)判斷加載應(yīng)用程序標(biāo)志,若為加載升級(jí)軟件存儲(chǔ)區(qū),轉(zhuǎn)入步驟(6),否則轉(zhuǎn)入步驟(7);
[0034](6)對(duì)升級(jí)軟件存儲(chǔ)區(qū)進(jìn)行區(qū)校驗(yàn),若校驗(yàn)正確后進(jìn)行加載,轉(zhuǎn)入步驟(9),否則轉(zhuǎn)入步驟(7 ),并下傳校驗(yàn)錯(cuò)誤信息(包括區(qū)校驗(yàn)錯(cuò)誤信息和塊校驗(yàn)錯(cuò)誤信息);
[0035](7)對(duì)原軟件存儲(chǔ)區(qū)進(jìn)行校驗(yàn),若校驗(yàn)正確后進(jìn)行加載,轉(zhuǎn)入步驟(9),否則轉(zhuǎn)入步驟(8);
[0036](8)運(yùn)行基礎(chǔ)程序上注模式,轉(zhuǎn)入步驟(2);
[0037](9)判斷模塊軟件上注區(qū)是否有更新,若有更新,轉(zhuǎn)入步驟(10),否則轉(zhuǎn)入步驟
(11);
[0038]( 10)對(duì)模塊軟件上注區(qū)的新模塊軟件進(jìn)行校驗(yàn),若校驗(yàn)正確則進(jìn)行模塊軟件上注區(qū)的加載,轉(zhuǎn)步驟(11);若校驗(yàn)錯(cuò)誤則向地面下傳校驗(yàn)錯(cuò)誤信息,轉(zhuǎn)步驟(11);
[0039](11)跳轉(zhuǎn)至SRAM區(qū)運(yùn)行應(yīng)用軟件,本次啟動(dòng)或更新完成。
[0040]可以通過間接指令對(duì)EEPROM進(jìn)行塊校驗(yàn),并將校驗(yàn)信息下傳,也可以通過間接指令對(duì)某一塊進(jìn)行數(shù)據(jù)下傳,方便EEPROM發(fā)生故障或上注出現(xiàn)錯(cuò)誤時(shí)問題查找,其下傳格式如表1所示。
[0041 ] 表1EEPR0M下傳某一塊數(shù)據(jù)
【權(quán)利要求】
1.一種星載軟件在軌維護(hù)及升級(jí)方法,其特征在于包括如下步驟: (1)將星載軟件劃分為基礎(chǔ)程序和應(yīng)用程序,其中基礎(chǔ)程序存儲(chǔ)在PROM中,應(yīng)用程序存儲(chǔ)在可讀寫的非揮發(fā)性存儲(chǔ)介質(zhì)中;所述的星載軟件包括星務(wù)中心計(jì)算機(jī)軟件及除星務(wù)中心計(jì)算機(jī)軟件以外的其他星載軟件,星務(wù)中心計(jì)算機(jī)軟件與地面通過星地通信鏈路通信,星務(wù)中心計(jì)算機(jī)軟件與其他星載軟件通過總線進(jìn)行通信,其中星務(wù)中心計(jì)算機(jī)軟件基礎(chǔ)程序的最小功能集包括遙控遙測(cè)功能、非揮發(fā)性存儲(chǔ)介質(zhì)讀寫功能,校驗(yàn)功能、程序加載功能;其他星載軟件基礎(chǔ)程序最小功能集包括總線通信功能、非揮發(fā)性存儲(chǔ)介質(zhì)讀寫功能、校驗(yàn)功能、程序加載功能;所述非揮發(fā)性存儲(chǔ)介質(zhì)在邏輯上包括原軟件存儲(chǔ)區(qū)、升級(jí)軟件存儲(chǔ)區(qū)、模塊軟件上注區(qū),三區(qū)均包含區(qū)校驗(yàn)信息,初始狀態(tài)下原軟件存儲(chǔ)區(qū)與升級(jí)軟件存儲(chǔ)區(qū)的存儲(chǔ)內(nèi)容均為星載軟件的原始應(yīng)用程序,而模塊軟件上注區(qū)為空;將三個(gè)存儲(chǔ)區(qū)分別劃分為塊,每一塊設(shè)置塊校驗(yàn)信息; (2)硬件加電或復(fù)位后,首先運(yùn)行基礎(chǔ)程序,基礎(chǔ)程序運(yùn)行后等待固定時(shí)間,判斷是否接收到地面發(fā)送的運(yùn)行上注模式指令;如果在等待時(shí)間內(nèi)收到運(yùn)行上注模式指令,則轉(zhuǎn)步驟(3)進(jìn)行軟件上注,否則轉(zhuǎn)步驟(4); (3)接收地面發(fā)送的上注程序塊,并對(duì)上注程序塊進(jìn)行校驗(yàn);若上注程序塊校驗(yàn)正確,則依據(jù)上注程序塊中所標(biāo)識(shí)的存儲(chǔ)位置將上注程序塊存入相應(yīng)的升級(jí)軟件存儲(chǔ)區(qū)或者模塊軟件上注區(qū);若上注程序塊校驗(yàn)錯(cuò)誤,則重新發(fā)送上注數(shù)據(jù)塊,直至所有上注程序塊發(fā)送完畢; (4)根據(jù)地面發(fā)送的加載應(yīng)用程序標(biāo)志判斷加載原軟件存儲(chǔ)區(qū)還是升級(jí)軟件存儲(chǔ)區(qū),若為加載升級(jí)軟件存儲(chǔ)區(qū),轉(zhuǎn)步驟(5),若為加載原軟件存儲(chǔ)區(qū),轉(zhuǎn)步驟(6); (5)對(duì)升級(jí)軟件存儲(chǔ)區(qū)進(jìn)行區(qū)校驗(yàn),若區(qū)校驗(yàn)正確則進(jìn)行升級(jí)軟件區(qū)加載,轉(zhuǎn)步驟(7),若區(qū)校驗(yàn)錯(cuò)誤則進(jìn)一步進(jìn)行塊校驗(yàn),并向地面下傳塊校驗(yàn)錯(cuò)誤信息進(jìn)行錯(cuò)誤定位,轉(zhuǎn)步驟(6); (6)對(duì)原軟件存儲(chǔ)區(qū)進(jìn)行區(qū)校驗(yàn),若區(qū)校驗(yàn)正確則進(jìn)行原軟件存儲(chǔ)區(qū)加載,轉(zhuǎn)步驟(7),若區(qū)校驗(yàn)錯(cuò)誤則返回步驟(2); (7)判斷模塊軟件上注區(qū)是否有新程序塊寫入,若有新程序塊寫入則轉(zhuǎn)步驟(8),否則轉(zhuǎn)步驟(9); (8)對(duì)模塊軟件上注區(qū)的新程序塊進(jìn)行校驗(yàn),若校驗(yàn)正確則進(jìn)行模塊軟件上注區(qū)的加載,若校驗(yàn)錯(cuò)誤則向地面下傳校驗(yàn)錯(cuò)誤信息進(jìn)行錯(cuò)誤定位; (9)跳轉(zhuǎn)至SRAM區(qū)運(yùn)行應(yīng)用程序,本次星載軟件啟動(dòng)或更新完成。
【文檔編號(hào)】G06F9/445GK103777983SQ201410036627
【公開日】2014年5月7日 申請(qǐng)日期:2014年1月24日 優(yōu)先權(quán)日:2014年1月24日
【發(fā)明者】閆國(guó)瑞, 李志剛, 史簡(jiǎn), 伍保峰, 蔣軼穎 申請(qǐng)人:航天東方紅衛(wèi)星有限公司