999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于向量表的在軌程序上注方法的研究

2013-03-28 01:53:14朱亞杰王勁強(qiáng)石志成楊明明
電子設(shè)計(jì)工程 2013年11期
關(guān)鍵詞:程序方法

朱亞杰,王勁強(qiáng),石志成,楊明明

(北京空間機(jī)電研究所北京100081)

隨著空間相機(jī)的功能、智能化及自主性要求越來(lái)越高,星載相機(jī)軟件[1]設(shè)計(jì)的復(fù)雜程度及可重配置性要求也越來(lái)越高,其功能、性能、安全性和可修改性直接影響了系統(tǒng)的可靠性和穩(wěn)定性[2],可見(jiàn)星載相機(jī)軟件的可修改性在軟件的生命期[3]內(nèi)具有非常重要的作用,這便客觀上需要星載相機(jī)軟件具有地面干預(yù)能力以應(yīng)對(duì)各種可能出現(xiàn)的異常事件。因此,為真正實(shí)現(xiàn)相機(jī)的星載軟件系統(tǒng)的在軌可修改性,使其具有較大的靈活性,進(jìn)行程序上注技術(shù)的研究非常重要的。據(jù)報(bào)告,NASA和ESA研制的衛(wèi)星大多具有程序上注能力,英國(guó)的SURREY公司將“在軌程序上注,完成系統(tǒng)加載”作為其商業(yè)化衛(wèi)星平臺(tái)的主要特色,但對(duì)具體的實(shí)現(xiàn)方法卻極少提及[4]。

近幾年,國(guó)內(nèi)研制的航天器中不少分系統(tǒng)也逐漸開(kāi)始采用程序上注技術(shù),也提出了一些實(shí)現(xiàn)方法[5],并證明是解決某些在軌問(wèn)題的有效手段,但在空間相機(jī)分系統(tǒng)中的研究極少。針對(duì)空間相機(jī)軟件系統(tǒng)對(duì)在軌維護(hù)、故障自診斷及重配置等的迫切需求,本文提出了一種基于嵌入式系統(tǒng)平臺(tái)的程序上注的方法,來(lái)研究程序上注技術(shù)在星載相機(jī)軟件系統(tǒng)中的應(yīng)用。通過(guò)該方法的實(shí)現(xiàn),一方面,可根據(jù)空間相機(jī)在軌運(yùn)行情況,及時(shí)消除軟件功能模塊的自身故障,提高其可靠性和安全性;另一方面,通過(guò)軟件在軌重組,利用現(xiàn)有硬件資源,增加或刪除軟件功能模塊,進(jìn)一步提高空間相機(jī)對(duì)新的需求的適應(yīng)能力。

1 程序上注的嵌入式系統(tǒng)硬件平臺(tái)

為研究程序上注技術(shù),設(shè)計(jì)了一種基于BM3803+FLASH+SRAM+1553B的嵌入式系統(tǒng)平臺(tái),系統(tǒng)由BM3803、FLASH、SRAM、1553B組成,如圖1所示。

圖1 硬件平臺(tái)結(jié)構(gòu)框圖Fig.1 Structure diagram of hardware platform

本系統(tǒng)采用基于SPARC V8的國(guó)產(chǎn)高性能32位微處理器BM3803,時(shí)鐘頻率為0~100MHz,具有8個(gè)寄存器窗口;5級(jí)流水線(xiàn);完全的三模冗余、EDAC和奇偶校驗(yàn);硬件乘/除法器,并且具有豐富的外設(shè),可擴(kuò)展性極好。

BM3803處理器的抗輻射性能好,總劑量(TID)抗輻能力為100 krad(Si),優(yōu)于1E-5錯(cuò)誤/器件/day的SEU事件,優(yōu)于70 Mev cm2/mg的抗閂鎖(SEL)能力,并且處理事務(wù)的速度快、容錯(cuò)設(shè)計(jì)好、自身具有檢錯(cuò)與一位糾錯(cuò)功能以及良好的可擴(kuò)展性等,使其能夠滿(mǎn)足各種航天應(yīng)用的功能和性能指標(biāo)要求,在航天領(lǐng)域有廣闊的應(yīng)用前景。

FLASH以它的集成度和擦寫(xiě)次數(shù)方面的技術(shù)優(yōu)勢(shì)成為市場(chǎng)主流。對(duì)于數(shù)據(jù)存儲(chǔ)器采用讀寫(xiě)速度非常快的SRAM,以匹配速度較快的BM3803處理器。考慮到太空粒子的輻射效應(yīng),如單粒子翻轉(zhuǎn)(SEU)、電離總劑量(TID)等,分別選擇比較成熟的軍品AM29LV160D型號(hào)的FLASH和3DSR16VS4502型號(hào)的SRAM,它們與同類(lèi)產(chǎn)品相比具有高可靠性和高集成度、功耗低、讀寫(xiě)速度快的特點(diǎn)。分別選用三片器件來(lái)組成512MB的FLASH空間和1MB的SRAM空間為程序上注提供了足夠大的存儲(chǔ)資源。

1553B總線(xiàn)具有分布處理、集中控制和實(shí)時(shí)響應(yīng)的特點(diǎn),并且具有極高的可靠性,采用雙冗余系統(tǒng),有兩個(gè)傳輸通道(A、B),保證了良好的容錯(cuò)設(shè)計(jì)和故障隔離,每組1553B總線(xiàn)的A、B總線(xiàn)為熱備份關(guān)系,通信波特率最高可達(dá)2Mbps,在實(shí)時(shí)性和可靠性方面保證了系統(tǒng)內(nèi)部的總線(xiàn)通信。

2 程序上注技術(shù)的研究

2.1 程序上注的原理

程序上注主要是星載相機(jī)軟件在運(yùn)行過(guò)程中通過(guò)地面人為干預(yù),將需要修改的可執(zhí)行代碼注入到星載計(jì)算機(jī)的內(nèi)存中,以替換原來(lái)的功能模塊,從而改變軟件的運(yùn)行程序以應(yīng)對(duì)各種可能出現(xiàn)的異常。

程序上注主要是分兩步來(lái)實(shí)現(xiàn)的[6]。首先,地面通過(guò)通信鏈路將需要上注的程序代碼上傳給星務(wù)計(jì)算機(jī)。然后,星務(wù)計(jì)算機(jī)通過(guò)星上1553B總線(xiàn)等將這些程序代碼下發(fā)至相機(jī)分系統(tǒng)的存儲(chǔ)區(qū),以修改原程序代碼。本文重點(diǎn)研究后一個(gè)步驟,即相機(jī)分系統(tǒng)接收星務(wù)計(jì)算機(jī)上注的程序代碼以及后續(xù)處理過(guò)程。

圖2 程序上注的原理Fig.2 Theory of on-board reprogramming

2.2 程序上注的實(shí)現(xiàn)

2.2.1 實(shí)現(xiàn)方法

本文主要是采用修改向量表的方法來(lái)實(shí)現(xiàn)程序上注。

修改向量表的方法主要是以子程序(軟件模塊)為基本的替代單位[6],將所有子程序(包括有可能進(jìn)行程序上注的子程序)的入口地址放在一個(gè)向量表中,軟件在調(diào)用任何子程序時(shí)均是通過(guò)調(diào)用向量表來(lái)獲得子程序的入口地址。程序上注時(shí),首先將修改或增加的程序代碼(一個(gè)或多個(gè)子程序)注入到FLASH中的相應(yīng)位置,然后再修改向量表中的子程序入口地址,使之指向想要調(diào)用的子程序的入口地址。

2.2.2 子程序調(diào)用機(jī)制

程序上注是以子程序?yàn)榛咎娲鷨挝唬浖谡{(diào)用任何子程序時(shí),均是通過(guò)向量表來(lái)獲得子程序的入口地址。向量表是用來(lái)存放子程序的入口地址,定義為一個(gè)一維指針數(shù)組。向量表會(huì)為可能上注的子程序預(yù)留一定的空間,其大小依據(jù)軟件設(shè)計(jì)需要來(lái)定義。

向量表需要定義兩次,一次是將BootLoader和用戶(hù)應(yīng)用程序一起固化在FLASH中的初始化定義,另一次是在FLASH的注入向量表區(qū)0x20000起始地址中的定義。上電時(shí),BootLoader會(huì)將0x20000處的向量表搬移到初始化定義的位置并覆蓋,然后運(yùn)行主程序并從向量表中獲取正確的入口地址。這樣能保證每次上電時(shí),向量表的搬移地址不變,以保證BootLoader不變,這也是該方法的的一個(gè)優(yōu)勢(shì)所在。

圖3 向量表的定義Fig.3 Definition of vector table

圖3(b)中SubProg2_Mod_Addr是SubProg2_Addr修改后的子程序,SubProg4_New_Addr是新增加的子程序。如果仍需運(yùn)行SubProg2_Addr子程序,只需要修改向量表,將SubProg2_Addr修改回來(lái)并注掉SubProg2_Mod_Addr即可。

該方法是通過(guò)向量表來(lái)直接調(diào)用子程序。如向量表中的定義的子程序SubProg1_Addr、SubProg2_Addr、SubProg3_Addr,則軟件中調(diào)用這3個(gè)子程序的原理如圖4所示。

圖4 子程序調(diào)用流程圖Fig.4 Flow chart of calling sub-program

系統(tǒng)上電后,啟動(dòng)引導(dǎo)加載程序BootLoader,將應(yīng)用程序搬移到SRAM中,PC指針會(huì)跳至SRAM的起始地址0x40000000開(kāi)始運(yùn)行應(yīng)用程序,進(jìn)入主函數(shù)找到向量表入口地址,進(jìn)而判斷子程序的入口地址是否不為零,若不為零,進(jìn)入子程序入口地址,反之繼續(xù)往下判斷。

2.2.3 地址空間分配

1)FLASH存儲(chǔ)區(qū)

FLASH主要用來(lái)存放系統(tǒng)引導(dǎo)加載程序、用戶(hù)應(yīng)用程序以及上注的程序等。地址空間為:0x0-0x1FFFFFFF。

圖5 FLASH的地址空間劃分Fig.5 Address space dipartition of FLASH

圖5中,將新向量表統(tǒng)一放在FLASH的起始地址為0x20000的位置,新子程序模塊統(tǒng)一放在FLASH的起始地址為0x40000的位置。每個(gè)新子程序模塊單獨(dú)存放在FLASH中的注入程序段中,即新子程序1、2依次存放在SA1、SA2段中。只要進(jìn)行程序上注,向量表就必須修改并且注入到FLASH的0x20000位置,以替換原來(lái)的向量表,這樣搬移到SRAM中運(yùn)行的向量表才是更新后的向量表。

由于使用該方法進(jìn)行程序上注是以子程序?yàn)閱挝唬词棺映绦蛑袃H僅修改了一個(gè)變量,也需要將整個(gè)子程序全部重新注入。由于不可知未來(lái)將要上注多大代碼量的子程序,為了提高代碼區(qū)的使用效果,暫規(guī)定任何一個(gè)需要注入的子程序的可執(zhí)行代碼長(zhǎng)度不超過(guò)32*1 024字。因此在極端情況下,分段注入FLASH的子程序區(qū)可以注入29個(gè)新子程序。

2)SRAM存儲(chǔ)區(qū)

SRAM的速度較快,程序會(huì)搬移到SRAM中運(yùn)行,并且向量表總是在所有程序的最后。地址空間為:0x40000000-0x400FFFFF。

新子程序統(tǒng)一搬移到SRAM的起始地址為0x40200000空間。

新向量表替換原來(lái)向量表的位置,在SRAM中的0x4000C000起始地址空間。

由于在定義向量表的時(shí)候已經(jīng)給新子程序預(yù)留了空間,在替換原向量表時(shí)不會(huì)存在覆蓋后面程序代碼的問(wèn)題。

圖6 SRAM的地址空間劃分Fig.6 Address space dipartition of SRAM

3 上注數(shù)據(jù)包的幀格式

相機(jī)分系統(tǒng)使用單消息模式接收衛(wèi)星數(shù)管分系統(tǒng)發(fā)送的數(shù)據(jù)代碼。上注代碼按照每條消息32個(gè)字打包,每條消息有3部分組成:包頭(消息序號(hào)數(shù))、應(yīng)用程序代碼、應(yīng)用程序代碼按位異或和校驗(yàn)位。具體格式如表1所示。

表1 注入數(shù)據(jù)包幀格式Tab.1 Frame format of reprogramming data package

當(dāng)上注應(yīng)用程序代碼結(jié)束后,衛(wèi)星數(shù)管分系統(tǒng)會(huì)向相機(jī)分系統(tǒng)發(fā)送一個(gè)結(jié)束字說(shuō)明上注程序已完成。這個(gè)結(jié)束字是由標(biāo)志位、應(yīng)用程序代碼長(zhǎng)度、地址位組成。具體如表2。

表2 結(jié)束字?jǐn)?shù)據(jù)包幀格式Tab.2 Frame form at of ending data package

4 試驗(yàn)驗(yàn)證

在實(shí)驗(yàn)室環(huán)境中進(jìn)行了BM3803子程序模塊的更新試驗(yàn),驗(yàn)證使用修改向量表方法來(lái)實(shí)現(xiàn)BM3803軟件的程序上注的可行性與正確性。試驗(yàn)時(shí)地檢臺(tái)將SPE-C2.53編譯生成的.bin文件經(jīng)1553B總線(xiàn)注入。如圖7所示。

圖7 試驗(yàn)?zāi)MFig.7 Experiment simulation figure

為了便于觀察,將子程序A的計(jì)算結(jié)果作為遙測(cè)量返給地檢臺(tái),同時(shí)利用BM3803的板上資源加入亮燈現(xiàn)象。

原現(xiàn)象:運(yùn)行子程序A,地檢臺(tái)上返遙測(cè)量為10,同時(shí)6燈亮。

目標(biāo):利用修改向量表的方法修改子程序A為A’,注入A’,運(yùn)行,返遙測(cè)量為18,同時(shí)8燈亮。

具體步驟如下:

1)將引導(dǎo)加載程序BootLoader與含有子程序A的應(yīng)用程序一起燒寫(xiě)至FLASH的0x0起始地址空間。

2)從編譯生成的.bin文件中提取出向量表B的代碼,燒寫(xiě)至FLASH的0x20000起始地址空間,系統(tǒng)上電后,地檢臺(tái)收到的返遙測(cè)量為10,同時(shí)6燈亮,證明子程序A正確運(yùn)行。

3)地面修改子程序A和向量表B。修改后的新子程序記為A’,新向量表記為B’。編譯含有A’和B’的完整應(yīng)用程序,驗(yàn)證二者的正確性,并從編譯后生成的.bin文件中提前二者的程序代碼。

4)對(duì)照上述所講的上注數(shù)據(jù)包的幀格式將A’和B’進(jìn)行打包。A’大小為12128字節(jié),分為203條消息來(lái)上注。

5)通過(guò)1553B總線(xiàn)將打包好的A’和B’傳送至BM3803的存儲(chǔ)區(qū)。程序上注的數(shù)據(jù)代碼要求很高的可靠性,這便利用包頭和校驗(yàn)位進(jìn)行驗(yàn)證。若包頭和校驗(yàn)位有一個(gè)不正確,均會(huì)返回相應(yīng)的錯(cuò)誤給地檢臺(tái),地檢臺(tái)再做相應(yīng)的重發(fā)處理。

6)注入代碼結(jié)束后,地檢臺(tái)會(huì)發(fā)送一個(gè)結(jié)束字,依據(jù)結(jié)束字的標(biāo)志位0x2000和0x4000判斷相應(yīng)的存儲(chǔ)位置。A’上注結(jié)束后,結(jié)束字的標(biāo)志位為0x4000,會(huì)存放在FLASH的0x40000起始地址空間。B’上注結(jié)束后,結(jié)束字的標(biāo)志位為0x2000,會(huì)存放在FLASH的0x20000起始地址空間。這樣便使FLASH中的應(yīng)用程序得以更新。

7)系統(tǒng)斷/上電,初始化BootLoader會(huì)將A’搬移到SRAM的0x40200000起始地址空間,B’搬移到原向量表的位置0x4000C000起始地址空間,與未修改的程序組成一完整程序運(yùn)行。地檢臺(tái)上的反遙測(cè)量為18,同時(shí)8燈亮。與預(yù)期目標(biāo)一致,證明子程序A’正確的運(yùn)行了。同時(shí)也驗(yàn)證了利用修改向量表方法來(lái)實(shí)現(xiàn)程序上注的可行性與正確性。

8)考慮到上注過(guò)程中的實(shí)時(shí)性要求,每條消息之間的時(shí)間間隔設(shè)置為61580最短時(shí)間間隔8 μ,使用示波器測(cè)得將子程序A’注入BM3803的存儲(chǔ)取所需要的時(shí)間為106 ms,這個(gè)時(shí)間完全滿(mǎn)足實(shí)時(shí)性的需求,可以被接受。

本實(shí)驗(yàn)驗(yàn)證了使用修改向量表的方法來(lái)修改子程序,以替換原來(lái)的子程序,完成程序上注的過(guò)程。同樣,驗(yàn)證了利用該方法來(lái)增加新子程序模塊、刪除子程序等試驗(yàn),結(jié)果是正確的,完全驗(yàn)證了該方法來(lái)實(shí)現(xiàn)程序上注技術(shù)的正確性。

5 結(jié)束語(yǔ)

程序上注技術(shù)是提高星載相機(jī)軟件自治性和靈活性的一種有效手段,能夠更好地滿(mǎn)足星載相機(jī)軟件功能的自身故障修改,以及對(duì)新增功能進(jìn)行適應(yīng)性、完善性維護(hù)[7,8],是未來(lái)星載相機(jī)軟件的發(fā)展方向。我國(guó)在這方面的研究還比較少,因而本文的研究有著非常好的應(yīng)用前景。同時(shí),由于它過(guò)多地依賴(lài)天地通信[9],上注過(guò)程容易被中斷并且剛剛起步,缺乏有效地地面檢驗(yàn)措施和上天經(jīng)驗(yàn),因此急需做進(jìn)一步的工作。本文是在國(guó)產(chǎn)高性能微處理器BM3803的嵌入式硬件平臺(tái)上進(jìn)行程序上注的研究,試驗(yàn)證明,這種修改向量表的方法來(lái)實(shí)現(xiàn)程序上注是合理可行的,能夠滿(mǎn)足星載相機(jī)軟件的在軌修改及擴(kuò)充功能,以提高空間相機(jī)的可靠性和適應(yīng)性,延長(zhǎng)其壽命。

[1] Peccia N,Giannini F.XMMInstrument On-board Software Maintenance Concept[J].NASA report,1994(1):984-992.

[2] 朱虹,王海燕.一種星載軟件在軌編程功能的設(shè)計(jì)和實(shí)現(xiàn)技術(shù)[J].上海航天,2004(1):26-31.ZHU Hong,WANG Hai-yan.The technology of design and realization of on-board programming for AOCS[J].Aerospace Shanghai,2004(1):26-31.

[3] Tai A T,Alkalai L.On-board Maintenance for Long-life System[C]//Proceeding of the IEEE Workshop on Application-Specific software Engineering and Technology(ASSET-98),Los Angeles,USA 1998:69-74.

[4] 高進(jìn),顧斌.衛(wèi)星在軌編程技術(shù)研究[C]//中國(guó)宇航學(xué)會(huì)計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)委員會(huì)2004年學(xué)術(shù)交流會(huì),北京,中國(guó)宇航學(xué)會(huì),2004:201-204.

[5] 吳國(guó)春,鐘興旺,陶曉霞.星載軟件在軌重配置中斷處理機(jī)制研究[J].空間電子技術(shù),2011(2):68-71.WU Guo-chun,ZHONG Xing-wang,TAO Xiao-xia.Interrupt processing technology on On-Board software reconfiguration for satellites[J].Space Electronic Technology,2011(2):68-71.

[6] 張然峰,郝賢鵬,金龍旭,等.空間相機(jī)軟件在軌重注方法研究與實(shí)現(xiàn)[J].光機(jī)電信息,2011(6):30.ZHANG Ran-feng,HAO Xian-peng,JIN Long-xu,et ak.Study and Realization on Method of Software in Space Camera On-Board Reprogramming[J].Optics,Mechanics&Electronics Information,2011(6):30.

[7] Ann T T,Kam S T,Leon A,et al.Low-cost error containment and recovery for on-board guarded software upgrading and beyond[J].IEEE Transactions on Computers,2002,51(2):121-136.

[8] Ann T.T,Kam S.T,Leon A,et al.Chau and William H.Sanders.“On-board Guarded Software Upgrading for Space Mission”[C]//Proceeding of the 18th Digital Avionics System Conference,Los Angeles,USA,1999:1-8.

[9] LIU Peng,DAI Guo-jun,F(xiàn)U Ting-ting.Fault-tolerant Onboard Evolutionary Platform for Adaptive Allocation of Hardware and Software Tasks[C]//Proceeding of the 7thWorld Congress on Intelligent Control and Automation,Chongqing,China,2008:107-110.

猜你喜歡
程序方法
學(xué)習(xí)方法
試論我國(guó)未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創(chuàng)衛(wèi)暗訪(fǎng)程序有待改進(jìn)
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢(qián)方法
捕魚(yú)
主站蜘蛛池模板: 四虎影视8848永久精品| 欧美一道本| 色综合久久综合网| 国产日韩欧美中文| 中文字幕亚洲乱码熟女1区2区| 国产丝袜丝视频在线观看| a级毛片免费看| 国产视频自拍一区| 亚洲无码日韩一区| 日韩欧美国产另类| 狠狠色噜噜狠狠狠狠色综合久 | 亚洲丝袜中文字幕| 日韩资源站| 国产高清无码麻豆精品| 米奇精品一区二区三区| 亚洲男人天堂2020| 香蕉在线视频网站| 亚洲人成电影在线播放| 国产一区二区三区在线观看视频| 欧美成人午夜在线全部免费| 黄网站欧美内射| 国产麻豆另类AV| 午夜无码一区二区三区| 午夜性刺激在线观看免费| 国产亚卅精品无码| 2020精品极品国产色在线观看| 97se亚洲综合在线天天| 亚洲香蕉在线| 国产美女自慰在线观看| 欧美精品色视频| 久久精品66| 99久久99视频| 精品精品国产高清A毛片| 日韩在线2020专区| 亚洲国产午夜精华无码福利| 热热久久狠狠偷偷色男同| 刘亦菲一区二区在线观看| 国产精品亚洲片在线va| 精品黑人一区二区三区| 国产精品亚洲专区一区| 国产偷倩视频| 不卡无码h在线观看| 亚洲无码日韩一区| 熟女视频91| 精品人妻AV区| 欧美精品二区| 91欧美在线| 亚洲无码精品在线播放| www欧美在线观看| 欧美A级V片在线观看| 综合久久久久久久综合网| 97se亚洲综合在线| 福利小视频在线播放| 国产精品视频999| 亚洲天堂精品在线| 成年片色大黄全免费网站久久| 久久综合九色综合97网| 911亚洲精品| 亚洲黄色成人| 天堂亚洲网| 亚洲乱码视频| 狠狠色综合网| 久久婷婷六月| 中文天堂在线视频| 免费A级毛片无码免费视频| 一级毛片在线播放免费| 福利视频久久| 91精品国产自产在线老师啪l| 国产v精品成人免费视频71pao | 精品福利网| 99re这里只有国产中文精品国产精品 | 成人一级黄色毛片| 久草中文网| 91在线中文| 色婷婷成人| 视频一区视频二区日韩专区| 成人中文字幕在线| 国产精品白浆无码流出在线看| 四虎精品黑人视频| 伊人久热这里只有精品视频99| 黄色片中文字幕| 风韵丰满熟妇啪啪区老熟熟女|