亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        載人航天工程高可靠嵌入式軟件設(shè)計方法

        2022-03-10 06:21:14束韶光劉俊陽

        束韶光,崔 宇,劉俊陽

        (北京航天自動控制研究所,北京,100854)

        0 引 言

        隨著計算機技術(shù)和設(shè)備數(shù)字化的飛速發(fā)展,航天系統(tǒng)從早期以硬件設(shè)備為主導(dǎo)、軟件實現(xiàn)硬件系統(tǒng)特定功能的年代,逐漸邁入以軟件為神經(jīng)中樞,貫穿于航天系統(tǒng)的各條脈絡(luò)的年代。如今的航天軟件,既可在天上實現(xiàn)飛行控制,又可在地面完成各項檢測任務(wù),其可靠性已成為影響航天系統(tǒng)質(zhì)量的關(guān)鍵因素。

        近年來,中國運載火箭型號進入了跨越式發(fā)展的關(guān)鍵時期,大量軟件和硬件的新技術(shù)在載人運載型號中得到了應(yīng)用與推廣。這些新技術(shù)的應(yīng)用,造成軟件功能和復(fù)雜度的不斷增加。當(dāng)前的軟件已不再是簡單堆疊起來的獨立配置項,而是有機結(jié)合的復(fù)雜分布式軟件系統(tǒng)。軟件產(chǎn)品作為中國運載型號的重要組成部分,直接影響航天任務(wù)的成敗,可能造成人員傷亡、設(shè)備損壞和環(huán)境破壞等事故,在這種背景下,載人航天任務(wù)對軟件可靠性提出了更高要求,而運載火箭承擔(dān)著空間站工程的發(fā)射和運載的重要任務(wù),軟件可靠性更是倍受關(guān)注,其中承擔(dān)關(guān)鍵重要功能的嵌入式軟件的可靠性設(shè)計又是一個重要環(huán)節(jié)。

        航天型號關(guān)鍵軟件大多是飛行中使用的嵌入式軟件,固化在航天箭載計算機中,與硬件關(guān)系密切,協(xié)同完成特定功能;航天型號大部分為強實時系統(tǒng),具有嚴(yán)格的時限要求,要求軟件在一定時間完成相應(yīng)的處理,系統(tǒng)處理結(jié)果不僅要求邏輯正確,而且要求時間時序正確可靠。

        軟件的錯誤或缺陷(不可靠)會導(dǎo)致任務(wù)的失敗,甚至導(dǎo)致災(zāi)難性的后果。1996年6月4日,阿里安5運載火箭因64位浮點向16位帶符號整數(shù)值的數(shù)據(jù)轉(zhuǎn)換問題導(dǎo)致首飛失敗。1998年12月,美國火星軌道器數(shù)據(jù)數(shù)制轉(zhuǎn)換問題,導(dǎo)致毀壞。1999年4月,美國某軍事衛(wèi)星發(fā)射任務(wù)中,由于運載器某個常量輸入錯誤,并且地面試驗未檢查出,導(dǎo)致系統(tǒng)工作異常。2009年8月19日,韓國首枚運載火箭羅老號,由于測量高壓罐壓力的軟件出現(xiàn)了問題取消發(fā)射。大量的事故案例表明,軟件設(shè)計和數(shù)據(jù)設(shè)計過程中,都需要對可能發(fā)生的故障進行分析,采取充分的可靠性措施,避免出現(xiàn)缺陷或消除故障,來確保系統(tǒng)不發(fā)生失效。

        軟件可靠性一般是指在規(guī)定的條件下和規(guī)定的時間內(nèi),軟件無失效運行的概率,軟件可靠性設(shè)計是軟件可靠性工程的重要內(nèi)容,實質(zhì)是在常規(guī)的軟件設(shè)計中,應(yīng)用各種必須的方法和技術(shù),使程序設(shè)計在兼顧用戶的各種需求時,全面滿足軟件的可靠性要求。軟件的可靠性設(shè)計貫穿于研制過程始終。本文主要從載人航天嵌入式軟件的程序設(shè)計和數(shù)據(jù)設(shè)計兩個方面來具體描述高可靠嵌入式軟件的一些設(shè)計方法。

        1 程序可靠性設(shè)計方法

        運載型號的嵌入式軟件的代表產(chǎn)品是控制系統(tǒng)飛行軟件,由它自主、實時完成對火箭的飛行控制,保障載荷精確入軌。同樣在火箭發(fā)射流程中,也有些嵌入式軟件與發(fā)射點火這類安全關(guān)鍵的功能相關(guān)。針對具有這些安全關(guān)鍵功能的程序,都需要采取充分的可靠性設(shè)計措施,來確保軟件安全可靠運行,避免發(fā)生危險事件,導(dǎo)致任務(wù)失敗。而程序的查錯容錯設(shè)計、多版本容錯設(shè)計、同步輸出設(shè)計是保障嵌入式軟件可靠性的重要方法。

        1.1 查錯容錯設(shè)計

        軟件查錯容錯設(shè)計是指在業(yè)務(wù)邏輯功能設(shè)計基礎(chǔ)上,增加某些特定可靠性措施,使程序在運行過程中自動查找存在的錯誤并控制錯誤影響的一種設(shè)計方法。它主要包括檢查點設(shè)計和巡回檢測設(shè)計兩個方面。

        1.1.1 檢查點設(shè)計

        檢查點設(shè)計是在程序的相關(guān)部位設(shè)置檢查點,檢查是否發(fā)生了故障。檢查點設(shè)置和執(zhí)行的原則有以下兩點:

        a)接口原則:在設(shè)計時考慮其它硬件或軟件單元存在著錯誤;

        b)實時原則:當(dāng)錯誤征兆被偵測到后,應(yīng)盡快處理,限制錯誤的損害程度。

        嵌入式軟件的檢查點的選取是為了有效和及時地識別故障,從而讓軟件的業(yè)務(wù)邏輯不應(yīng)該因為故障特別是瞬發(fā)故障而不能繼續(xù)執(zhí)行任務(wù)。

        原則上講,嵌入式軟件在與其他硬件交互時,往往需要進行檢查點設(shè)計來完善可靠性措施。對于有時間應(yīng)答要求的操作,可以設(shè)置一個計時器,當(dāng)在預(yù)定的時間內(nèi)未獲得應(yīng)答要求時,則可推斷必定出現(xiàn)了故障。如軟件通過硬件進行信號采集,對等待外部信號的程序可進行超時處理,在采集過程中插入檢查點程序,實現(xiàn)使用定時器來控制循環(huán)動作的上限,使得程序能在規(guī)定時間內(nèi)(無論采集成功或失?。┩顺龅却獠啃盘柕臓顟B(tài),避免程序陷入死循環(huán),從而避免出現(xiàn)程序“假死”現(xiàn)象。飛行控制軟件中AD采樣單元在采樣速率陀螺模擬量數(shù)值時采取了該方法。AD采樣單元中對某一路AD通道的采樣流程見圖1。

        圖1 速率陀螺信號單個通道采集設(shè)計流程Fig.1 Rate Gyro Signal Acquisition Design Diagram

        圖1中加粗線的程序段就是一個簡單的檢查點設(shè)計。程序在未判斷出AD轉(zhuǎn)換結(jié)果寄存器有效前,會循環(huán)讀取該寄存器的值,為了避免AD轉(zhuǎn)換結(jié)果寄存器出現(xiàn)異常而無法退出循環(huán)的故障情況發(fā)生,在此處設(shè)置檢查點,通過對AD讀取次數(shù)進行控制來完成AD采樣的可靠性退出機制,能有效避免硬件錯誤的影響范圍和程度。

        另外軟件與軟件之間的交互過程中也往往需要設(shè)計檢查點。以三冗余的飛行控制軟件與組合導(dǎo)航軟件通過雙口RAM交換信息的設(shè)計方法為例。單模的組合導(dǎo)航軟件在讀取三冗余的飛行控制軟件前,需要通過讀取三CPU雙口RAM硬件同步信號判斷三CPU數(shù)據(jù)是否準(zhǔn)備好,當(dāng)組合導(dǎo)航軟件判斷存在未準(zhǔn)備好數(shù)據(jù)的CPU時,會進入判斷硬件同步信號的循環(huán)中。為了避免硬件同步信號出現(xiàn)異常無法退出循環(huán)的故障情況發(fā)生,組合導(dǎo)航軟件在查詢同步信號狀態(tài)處設(shè)置了檢查點,通過設(shè)置超時時間完成可靠性退出機制。組合導(dǎo)航軟件讀取雙口RAM檢查點設(shè)計見圖2。

        圖2 組合導(dǎo)航飛控導(dǎo)航數(shù)據(jù)的錄取設(shè)計流程Fig.2 Navigation Data Admission Design Diagram

        圖2中加粗線的的程序段是組合導(dǎo)航軟件的2個檢查點。根據(jù)圖2中流程可知,無論數(shù)據(jù)準(zhǔn)備好的飛行控制軟件是2個還是小于2個,均會進入循環(huán)查詢的檢查點,區(qū)別僅是所設(shè)置的超時時間不同,此項可靠性設(shè)計使得組合導(dǎo)航軟件能在飛行控制軟件各種異常狀態(tài)下均能繼續(xù)正常運行。

        1.1.2 巡回檢測設(shè)計

        巡回檢測設(shè)計,即軟件主動對硬件及程序或數(shù)據(jù)進行循環(huán)檢查的設(shè)計,其中包括定時或低優(yōu)先級的巡檢等。嵌入式軟件中主要檢測以下幾個方面:

        a)對RAM中代碼區(qū)進行CRC校驗,以保證正確的操作;

        b)對RAM中諸元區(qū)進行CRC校驗,以保證正確的操作;

        c)對關(guān)鍵及重要的標(biāo)志字及邏輯功能進行校核。

        嵌入式軟件啟動后,會完成各關(guān)鍵數(shù)據(jù)及關(guān)鍵硬件寄存器的初始化工作,同時在后臺對存放在RAM區(qū)的代碼段和諸元數(shù)據(jù)段進行了循環(huán)CRC校核,確保程序與數(shù)據(jù)上傳及搬移的正確性,循環(huán)校核任務(wù)工作在火箭點火前。圖3給出了飛行控制軟件的自檢流程,它是巡回檢測的典型應(yīng)用。

        圖3 飛行控制軟件巡回自檢流程Fig.3 Flight Control Software Tour Self-check Flow Chart

        1.2 多版本容錯設(shè)計

        版本程序設(shè)計由個開發(fā)小組各自獨立實現(xiàn)相同功能的相異程序和表決器組成,各相異程序的運算結(jié)果經(jīng)過比較(表決)以確定輸出。在表決器不能分辨出對錯的情況下,采取少數(shù)服從多數(shù)的表決方式確定輸出。

        火箭的點火時序程序采用了3版本程序設(shè)計。點火時序程序是控制系統(tǒng)能順利完成火箭點火控制工作的重要組成部分,它由3個功能相同、版本不同、相互獨立的程序組成。3個程序由3個開發(fā)人員獨立完成,點火1時序程序的輸出經(jīng)過硬件控制與點火2時序程序、點火3時序程序的輸出三取二后完成火箭的點火和緊急關(guān)機時序的控制。3個軟件在實現(xiàn)相同時序控制功能的前提下,采用了不同的設(shè)計方法:

        a)點火1時序程序的計時零點為點火,后續(xù)時序的輸出采用相對于點火零點的絕對時間;

        b)點火2時序程序的計時零點為點火,時序的輸出采用相對于前一時序的相對時間;

        c)點火3時序程序使用了跑表型延時接通定時器和延時斷開定時器,時序的接通以點火計時到為條件;本路斷開以本路接通作為起始,延時斷開。

        3種不同的設(shè)計方法避免了共因失效,即避免了軟件同因一種邏輯故障機理失效的可能性,從而提高了軟件系統(tǒng)的可靠性。

        1.3 同步輸出設(shè)計

        載人航天中使用到的三冗余軟件在完成相同的功能時,由于輸入的隨機性以及軟件運行方式的差異性 ,存在三冗余軟件在相鄰的不同周期收到同一輸入信號的情形,三冗余軟件信號響應(yīng)時刻的不同,會導(dǎo)致輸出結(jié)果會有所差別。為避免上述情況的發(fā)生,嵌入式軟件采用了交互表決策略進行同步處理。

        以三冗余驅(qū)動信號輸出嵌入式軟件為例,在三CPU輸出前需要軟件進行三CPU同步判別:運行在單個CPU上的每個軟件通過查詢?nèi)鼵PU同步狀態(tài),以及表決功能完成三CPU同步輸出。三CPU同步輸出判別流程見圖4。

        圖4 三CPU同步輸出流程Fig.4 Three CPU Synchronous Output Flow Chart

        圖4描述的同步輸出基本邏輯如下:

        a)本機在決定是否要輸出前,需確定本機及另外兩機是否準(zhǔn)備好輸出;

        b)如果本機和另外兩機均準(zhǔn)備好,則本機立即輸出,此時另外兩機也會立即輸出,可以確保此情況三機同步輸出;

        c)如果本機未準(zhǔn)備好,而另外兩機準(zhǔn)備好,則進入超時等待機制;如果超時時間Timerout 1過了本機仍未準(zhǔn)備好輸出,則本機不輸出,另外兩機輸出;

        d)如果本機準(zhǔn)備好,而另外只有1機準(zhǔn)備好,則進入超時等待機制,如果超時時間Timerout 2過了三機仍未全部準(zhǔn)備好,則本機和另外一機輸出。

        這種同步策略從邏輯上保障了只要有兩機準(zhǔn)備好時就能實現(xiàn)輸出的脈沖嚴(yán)格同步,確保脈沖驅(qū)動功能的可靠性。

        2 數(shù)據(jù)可靠性設(shè)計方法

        火箭使用的數(shù)據(jù)主要包括計算常量、內(nèi)部變量、諸元數(shù)據(jù)以及實時采集的數(shù)據(jù)。計算常量固化在軟件代碼中。諸元數(shù)據(jù)與當(dāng)次飛行任務(wù)密切相關(guān),它隨著飛行任務(wù)不同而變化,需要在臨發(fā)射前生成并裝訂到箭載計算機內(nèi)存中,供飛行軟件使用。實時采集的數(shù)據(jù)主要包括電壓、壓力、液位等。本章以諸元數(shù)據(jù)為例闡述嵌入式軟件中數(shù)據(jù)的可靠性設(shè)計方法。

        2.1 諸元數(shù)據(jù)生成設(shè)計

        諸元數(shù)據(jù)設(shè)計過程中,考慮到在人工輸入、計算、生成、使用等環(huán)節(jié)可能引入錯誤,因此采取了相應(yīng)的可靠性設(shè)計方法進行避錯、查錯,同時從流程上規(guī)范諸元數(shù)據(jù)生成及驗證的過程,具體流程如圖5所示。圖5中闡述了諸元數(shù)據(jù)設(shè)計含諸元輸入數(shù)據(jù)確認(rèn)、諸元數(shù)據(jù)自動生成、諸元數(shù)據(jù)完整性確認(rèn)、諸元數(shù)據(jù)驗證等工作,本節(jié)分別從諸元產(chǎn)生的全生命周期中各個階段闡述可靠性設(shè)計和驗證的技術(shù)方法。

        圖5 諸元數(shù)據(jù)設(shè)計及驗證流程Fig.5 Data Design and Verification Process

        為避免人工生成諸元數(shù)據(jù)過程中引入操作錯誤,通過諸元生成系統(tǒng)讀取諸元原始數(shù)據(jù)以及配置文件,自動生成箭上飛行控制軟件能夠識別的二進制格式的諸元文件。諸元原始數(shù)據(jù)由多組文件組成,如制導(dǎo)諸元、姿控諸元、時序諸元等數(shù)據(jù)輸入文件。配置文件也由多組文件組成,與諸元數(shù)據(jù)輸入文件相對應(yīng),它規(guī)定了相應(yīng)諸元的數(shù)據(jù)類型、數(shù)目、計算約束條件等信息。諸元數(shù)據(jù)自動生成軟件依次讀取諸元原始數(shù)據(jù)輸入文件中的數(shù)據(jù),轉(zhuǎn)換成為目標(biāo)處理器識別的二進制數(shù)據(jù),根據(jù)配置文件排列順序。圖6為諸元自動生成系統(tǒng)的示意圖。

        圖6 飛行諸元數(shù)據(jù)設(shè)計和生成系統(tǒng)Fig.6 Flight Metadata Design and Generation System

        2.2 諸元正向生成的可靠性設(shè)計

        a)諸元輸入數(shù)據(jù)合理性檢測。

        根據(jù)查錯設(shè)計原則,對讀到的數(shù)據(jù)進行合理性檢測,當(dāng)檢測到輸入數(shù)據(jù)不合理時立即中止諸元生成工作,并向用戶反饋該錯誤。合理性檢測主要包括:

        1)變量范圍合理性檢測。如助推段俯仰、偏航切換網(wǎng)絡(luò)時間的非負(fù)性判斷。

        2)數(shù)組變量非負(fù)性和單調(diào)性檢測。如為對飛行時和各段飛行時t的非負(fù)性和單調(diào)性檢查,以及每行數(shù)據(jù)時間間隔合理性檢查。

        b)數(shù)組型諸元數(shù)據(jù)外推設(shè)計。

        為保證飛行控制軟件使用諸元數(shù)據(jù)時工作于內(nèi)插狀態(tài),將數(shù)據(jù)進行外推,最終裝訂量滿足裝訂時間范圍后如果仍未填滿數(shù)據(jù)空間,則將數(shù)據(jù)進行外推擴展,直至填滿整個裝訂數(shù)據(jù)空間,對飛行控制軟件起到內(nèi)插保護的效果。

        2.3 諸元數(shù)據(jù)完整性確認(rèn)設(shè)計

        為確保諸元數(shù)據(jù)的完整性,對諸元數(shù)據(jù)進行完整性檢驗設(shè)計。在二進制諸元文件開頭增加諸元數(shù)據(jù)開始標(biāo)志,尾部增加諸元數(shù)據(jù)結(jié)束標(biāo)志以及校驗信息,使飛行控制軟件能在啟動運行后,根據(jù)文件中諸元數(shù)據(jù)開始標(biāo)志和結(jié)束標(biāo)志計算出諸元文件長度,根據(jù)諸元文件的長度以及文件中的CRC值循環(huán)進行諸元段CRC校驗,如果計算的CRC校驗碼與文件中自帶的CRC校驗碼相等,則諸元數(shù)據(jù)沒有損壞,否則說明諸元數(shù)據(jù)在傳輸或存儲過程中發(fā)生損壞。二進制格式的諸元數(shù)據(jù)空間分配示意見圖7。

        圖7 二進制諸元文件結(jié)構(gòu)Fig.7 Binary Metafile Structure Diagram

        2.4 諸元數(shù)據(jù)的反向比對設(shè)計

        為驗證編譯器在諸元數(shù)據(jù)源碼向目標(biāo)碼轉(zhuǎn)換過程的正確性。對諸元數(shù)據(jù)目標(biāo)碼進行快速逆向解析、比對和翻譯,并在源碼中定位,生成比對報告,驗證諸元目標(biāo)碼和源碼的一致性。設(shè)計上是先以內(nèi)存map文件和諸元模板文件為基礎(chǔ),把諸元目標(biāo)碼逆向生成源碼,其中要解決目標(biāo)碼中諸元變量的源碼定位、分析和格式翻譯等諸多問題。再利用諸元模板、誤差容限配置進行諸元比對。它能確保生成諸元數(shù)據(jù)目標(biāo)碼產(chǎn)品同源碼完全一致,避免由于生成過程缺陷影響最終諸元數(shù)據(jù)產(chǎn)品的正確性。計算溢出錯誤便可通過諸元數(shù)據(jù)的反向比對進行檢驗。計算溢出錯誤,就是在計算過程中,變量的值超過了該變量類型的有效范圍。通過反向生成得到的源文件同初始源文件進行比對,即可檢驗出計算溢出錯誤。圖8為諸元源文件和逆向生成源文件比對設(shè)計示意。

        圖8 諸元源文件和逆向生成源文件比對設(shè)計示意Fig.8 Schematic Diagram of Comparison Design between Data Source Files and Reverse Generated Source Files

        3 結(jié)束語

        本文重點從程序可靠性設(shè)計與數(shù)據(jù)可靠性設(shè)計兩方面入手,介紹高可靠嵌入式軟件中與可靠性相關(guān)的重要而具體設(shè)計的方法,也正是這些方法的實踐和應(yīng)用,使火箭系統(tǒng)冗余方案能有效發(fā)揮作用,從而圓滿完成載人航天工程發(fā)射任務(wù)。

        少妇做爰免费视频了| 女同亚洲女同精品| 欧美一片二片午夜福利在线快| 成在线人视频免费视频| 免费人成视频网站在线观看不卡| av新型国产在线资源| 久久黄色国产精品一区视频| 国产特级毛片aaaaaa高潮流水| 高清破外女出血av毛片| 97久久超碰国产精品2021 | 一本久到久久亚洲综合| 免费va国产高清不卡大片| 亚洲精品中文字幕91| 久久中文字幕人妻淑女| 美女高潮黄又色高清视频免费| 国产成人精品一区二区视频| 国产360激情盗摄一区在线观看| 国产精品亚洲一区二区三区在线看| 久久久精品国产亚洲av网麻豆| 亚洲精品天天影视综合网| 人人妻人人妻人人片av| 国产91色在线|亚洲| 精品亚洲av一区二区| 亚洲av免费不卡在线观看| 少妇私密会所按摩到高潮呻吟| 国产乱子伦精品免费无码专区| 国产综合精品久久久久成人| 亚洲av日韩av天堂久久不卡| 国产免费观看黄av片| 日日噜噜噜夜夜爽爽狠狠| 亚洲Va中文字幕久久无码一区 | 一区二区三区四区国产亚洲| 亚洲av成人av三上悠亚| 亚洲av乱码一区二区三区按摩| a国产一区二区免费入口| 一区视频在线观看免费播放.| 亚洲av一二三四五区在线| 亚洲中文字幕舔尻av网站| 又粗又硬又黄又爽的免费视频| 男人天堂av在线成人av| 亚洲av色av成人噜噜噜|