• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      星載機(jī)檢錯(cuò)糾錯(cuò)模擬系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2018-07-27 12:22:52張志洲李東陽(yáng)
      實(shí)驗(yàn)室研究與探索 2018年7期
      關(guān)鍵詞:數(shù)據(jù)位模擬系統(tǒng)串口

      張志洲, 李東陽(yáng)

      (國(guó)防科技大學(xué) 空天科學(xué)學(xué)院,長(zhǎng)沙 410073)

      0 引 言

      大氣外層空間存在很強(qiáng)的自然輻射,主要來自各種宇宙射線和一些高能粒子(包括高能質(zhì)子、中子、粒子、重離子等)。高能粒子具有很高的能量,很難通過屏蔽來防護(hù)。特別是隨著微電子技術(shù)的發(fā)展,微電子器件體積小、質(zhì)量輕、功耗低的特點(diǎn)使其迅速在航天器中得到廣泛應(yīng)用,并且它的集成度越來越高,于是出現(xiàn)了單個(gè)高能帶電粒子造成航天器邏輯系統(tǒng)紊亂,導(dǎo)致航天器故障的單粒子效應(yīng)(Single Event Effect,SEE)[1-2]。在眾多的SEE中,對(duì)電路影響最大的,也是人們最為關(guān)注的分別是單粒子閂鎖效應(yīng)和單粒子翻轉(zhuǎn)效應(yīng)(Single Event Upset,SEU),其中又以SEU對(duì)星載RAM的影響最大[3-4]。

      單粒子翻轉(zhuǎn)效應(yīng)是人們最早發(fā)現(xiàn)的單粒子效應(yīng),所造成的邏輯錯(cuò)誤不是永久的,屬于單粒子效應(yīng)中的一種軟性錯(cuò)誤,通過系統(tǒng)復(fù)位、重新加電或?qū)懭肟苫謴?fù)。其最主要的影響是使存儲(chǔ)器數(shù)據(jù)位翻轉(zhuǎn) (“1”變“0”,“0”變“1”)[2,5]。飛行記錄表明,單個(gè)高能粒子引發(fā)的單粒子翻轉(zhuǎn)導(dǎo)致大量飛行器發(fā)生故障,輕則引起衛(wèi)星各種數(shù)據(jù)錯(cuò)誤;重則導(dǎo)致衛(wèi)星執(zhí)行錯(cuò)誤指令、發(fā)生異?;蚬收?,甚至使衛(wèi)星處于災(zāi)難性局面之中。

      1989年10月的太陽(yáng)質(zhì)子事件期間,美國(guó)TDRS-1衛(wèi)星的RAM存儲(chǔ)器記錄到239次單粒子翻轉(zhuǎn)事件。“風(fēng)云一號(hào)B”氣象衛(wèi)星于1990年9月發(fā)射后,星上姿控計(jì)算機(jī)多次出現(xiàn)單粒子翻轉(zhuǎn),從而致使衛(wèi)星姿態(tài)失控、衛(wèi)星失效;美國(guó)MSTI和IRON9906衛(wèi)星分別于1993年和1997年發(fā)生嚴(yán)重單粒子效應(yīng)而提前結(jié)束壽命。“實(shí)踐四號(hào)”探測(cè)衛(wèi)星平均每天測(cè)到3.4次單粒子翻轉(zhuǎn)事件[6-9]。

      由于航天器設(shè)計(jì)要求電子器件的體積小、功耗低、存儲(chǔ)量大、運(yùn)行速度快,這就必然促使微電子器件的集成度提高,內(nèi)部的單元電路體積縮小,而每一次狀態(tài)改變所需的能量和電荷下降,其結(jié)果是抗單粒子效應(yīng)的能力下降。因此,隨著航天事業(yè)的發(fā)展和微電子器件集成度的提高,將會(huì)不斷出現(xiàn)新的單粒子效應(yīng)問題。在航天電子設(shè)計(jì)領(lǐng)域中,這已經(jīng)成為一個(gè)不能忽視的問題,必須提出有效的手段加以解決。

      本文采用EDAC技術(shù)用于克服單粒子翻轉(zhuǎn)引起的航天電子系統(tǒng)故障,優(yōu)勢(shì)在于可以延長(zhǎng)衛(wèi)星壽命,提高衛(wèi)星應(yīng)用能力,非常適合未來敏捷航天器的平臺(tái)需要。通過了解國(guó)內(nèi)外關(guān)于EDAC技術(shù)方面的研究現(xiàn)狀,本文提出了星載機(jī)EDAC模擬系統(tǒng)設(shè)計(jì)方案,給出星載機(jī)EDAC模擬系統(tǒng)硬件電路設(shè)計(jì),完成星載機(jī)EDAC模擬系統(tǒng)軟件設(shè)計(jì),最后進(jìn)行演示驗(yàn)證。

      1 系統(tǒng)設(shè)計(jì)方案

      錯(cuò)誤檢測(cè)與糾正(Error Detection And Correction,EDAC)技術(shù)是一種差錯(cuò)控制技術(shù),也稱作糾錯(cuò)編碼、數(shù)據(jù)校驗(yàn)碼。它是一種具有發(fā)現(xiàn)某些錯(cuò)誤和自動(dòng)改錯(cuò)能力的數(shù)據(jù)編碼方法,起初應(yīng)用于數(shù)字通信系統(tǒng)中用以提高數(shù)據(jù)傳輸?shù)目煽啃?,現(xiàn)在也應(yīng)用于星載處理器中用以提高星載RAM存儲(chǔ)數(shù)據(jù)的可靠性,防止RAM內(nèi)部因單粒子翻轉(zhuǎn)效應(yīng)引發(fā)的錯(cuò)誤。其工作原理是首先對(duì)要存儲(chǔ)到RAM中的數(shù)據(jù)進(jìn)行編碼,即在原始數(shù)據(jù)中以一定的規(guī)則加入不同方式的冗余碼,然后存儲(chǔ)到RAM內(nèi)。在對(duì)數(shù)據(jù)進(jìn)行讀取時(shí),依靠多余的冗余碼來發(fā)現(xiàn)或糾正數(shù)據(jù)的錯(cuò)誤。

      目前,國(guó)內(nèi)外航天界對(duì)存儲(chǔ)器的EDAC實(shí)現(xiàn)已經(jīng)很少采用EDAC專用芯片,而一般采用以下兩種方式:①將EDAC功能直接集成在航天用CPU芯片內(nèi);②使用沒有集成EDAC功能的CPU,采用FPGA或其它器件實(shí)現(xiàn)EDAC功能[10-16]。

      1.1 系統(tǒng)需求

      本文設(shè)計(jì)一種EDAC系統(tǒng),可模擬因單粒子翻轉(zhuǎn)引起的翻轉(zhuǎn)故障,并可能利用EDAC技術(shù)排除故障。一般地,EDAC過程實(shí)現(xiàn)方案大致可分為硬件和軟件兩種方案。硬件方案是通過硬件邏輯器件(分離元件、現(xiàn)場(chǎng)可編程邏輯器件)實(shí)現(xiàn);軟件方案是在處理器內(nèi)部,通過EDAC編碼和解碼程序進(jìn)行處理。

      1.2 系統(tǒng)方案

      本文采用軟件方案。在MCU和SRAM之間設(shè)計(jì)模擬邏輯模擬單粒子翻轉(zhuǎn)故障,然后通過EDAC編碼程序檢查并糾正錯(cuò)誤,其結(jié)構(gòu)框圖如圖1所示。設(shè)計(jì)步驟主要包括:①設(shè)計(jì)帶有MCU、RS-232接口和擴(kuò)展RAM的模擬星載機(jī),并制板實(shí)現(xiàn);②串口接收數(shù)據(jù),進(jìn)行EDAC編碼后,寫入存儲(chǔ)器;③讀取存儲(chǔ)器數(shù)據(jù)時(shí)隨機(jī)注入錯(cuò)誤,星載計(jì)算機(jī)進(jìn)行EDAC處理,將錯(cuò)誤數(shù)據(jù)和糾錯(cuò)數(shù)據(jù)發(fā)送回PC機(jī)記錄。

      圖1 星載機(jī)EDAC模擬系統(tǒng)方案

      2 EDAC工作原理

      目前,絕大多數(shù)的高可靠微處理器中都采用了一定的EDAC技術(shù)。EDAC有多種編碼方式,不同的編碼方式有不同的檢錯(cuò)和糾錯(cuò)能力。例如奇偶校驗(yàn)碼只能檢測(cè)出一個(gè)碼字中的奇數(shù)位錯(cuò)誤,但是不能定位錯(cuò)誤更不能糾正錯(cuò)誤。其他的,如漢明碼可以糾正一個(gè)碼字中任何1位錯(cuò)誤,檢測(cè)出兩位錯(cuò)誤,但是對(duì)于多位錯(cuò)誤不具有任何的檢錯(cuò)和糾錯(cuò)能力。當(dāng)然,還有許多其他的編碼方式,可以檢測(cè)和糾正一個(gè)碼字中的多位錯(cuò)誤,但是它們的算法往往更為復(fù)雜,增加了編碼器和譯碼器的實(shí)現(xiàn)難度,增加了電路面積開銷,而且關(guān)鍵路徑中的延時(shí)也會(huì)變得更大。

      2.1 漢明碼

      漢明碼[9,12,16]有多種編碼方式,如果只要求糾錯(cuò)1位錯(cuò)誤,那么校驗(yàn)位K和數(shù)據(jù)位N之間的對(duì)應(yīng)關(guān)系如表1所示。

      表1 校驗(yàn)位K和數(shù)據(jù)位N之間的對(duì)應(yīng)關(guān)系表

      2.2 編碼規(guī)則

      數(shù)據(jù)存儲(chǔ)時(shí)常見的編碼方式為(7,4),這里闡述漢明碼(7,4)編碼的規(guī)則。

      假設(shè)漢明碼共m位(HmHm-1…H2H1),包括N位數(shù)據(jù)位(DNDN-1…D1)和K位校驗(yàn)位(PKPK-1…P1)。

      規(guī)則1每個(gè)校驗(yàn)位Pi在漢明碼中被分在位號(hào)2i-1的位置,其余為數(shù)據(jù)位,并從低到高依次排列。

      以(7,4)為例,3個(gè)校驗(yàn)位分別對(duì)應(yīng)漢明碼的位號(hào)為1、2、4。排列順序?yàn)镈4D3D2P3D1P2P1。

      規(guī)則2每1位校驗(yàn)碼Hi由多個(gè)校驗(yàn)位校驗(yàn),其關(guān)系為被校驗(yàn)的每1位位號(hào)要等于校驗(yàn)它的校驗(yàn)位的位號(hào)之和。

      (7,4)編碼的7位漢明碼如表2所示。

      表2 (7,4)編碼的7位漢明碼表

      據(jù)此,可以求出由各有關(guān)數(shù)據(jù)位形成Pi值的偶校驗(yàn)結(jié)果:

      P1=D1⊕D2⊕D4

      P2=D1⊕D2⊕D4

      P3=D2⊕D3⊕D4

      2.3 解碼規(guī)則

      根據(jù)如下關(guān)系對(duì)漢明碼進(jìn)行偶校驗(yàn):

      S1=P1⊕D1⊕D2⊕D4

      S2=P2⊕D1⊕D2⊕D4

      S3=P3⊕D2⊕D3⊕D4

      記S=S3∶S1為伴隨向量。根據(jù)S3∶S1中“1”的數(shù)量和位置可以反映漢明碼的出錯(cuò)情況。

      若在傳輸過程中只有1位出錯(cuò),可以得出錯(cuò)誤位與伴隨向量的對(duì)應(yīng)關(guān)系(即漢明碼譯碼表),如表3所示。

      表3 錯(cuò)誤位與伴隨向量的對(duì)應(yīng)關(guān)系表

      2.4 處理流程

      基于漢明碼的EDAC技術(shù)的處理流程為:

      (1) 編碼。根據(jù)數(shù)據(jù)位(D)計(jì)算校驗(yàn)位(P)形成漢明編碼(H),將編碼H存儲(chǔ)到RAM中。

      (2) 解碼。從RAM中讀出漢明編碼(R),計(jì)算伴隨向量(S),根據(jù)漢明碼譯碼表確定錯(cuò)誤位置,并進(jìn)行糾正。

      (3) 錯(cuò)誤處理。如果發(fā)現(xiàn)1位錯(cuò)誤,則進(jìn)行數(shù)據(jù)回寫。如果發(fā)現(xiàn)超過1位錯(cuò)誤,則告知CPU發(fā)生多位錯(cuò)誤。

      2.5 EDAC過程模擬

      在MCU和SRAM之間專門設(shè)計(jì)故障注入單元來模擬單粒子翻轉(zhuǎn)故障,然后通過EDAC編碼程序檢查并糾正錯(cuò)誤。

      模擬步驟如圖2所示。①數(shù)據(jù)寫入時(shí),S1與S12相連,數(shù)據(jù)正確寫入RAM。②數(shù)據(jù)讀出時(shí),將S1與S11相連,當(dāng)S2與S22相連時(shí),Dn位始終為“0”,當(dāng)S2與S22相連時(shí),Dn位始終為“1”。當(dāng)Dn的狀態(tài)與RAM中實(shí)際狀態(tài)相反時(shí),就是1位SEU故障。

      圖2 SEU模擬邏輯圖

      EDAC編碼流程:①根據(jù)數(shù)據(jù)D計(jì)算校驗(yàn)碼P;②將數(shù)據(jù)寫入外部RAM的Addr地址;③將校驗(yàn)碼寫入外部RAM的Addr+1地址。

      EDAC解碼流程:①?gòu)腞AM的Addr地址讀回?cái)?shù)據(jù)位;②從RAM的Addr+1地址讀回校驗(yàn)位;③計(jì)算伴隨向量S;④根據(jù)S4、S3、S2、S1譯碼,確定錯(cuò)誤位置,并糾正數(shù)據(jù)位;⑤如果S不全為0且沒有對(duì)應(yīng)編碼,則錯(cuò)誤超過1位。

      3 硬件電路設(shè)計(jì)

      按照EDAC模擬系統(tǒng)的設(shè)計(jì)需求,給出系統(tǒng)硬件架構(gòu),其總體結(jié)構(gòu)圖如圖3所示。

      圖3 星載機(jī)EDAC模擬系統(tǒng)硬件架構(gòu)

      (1) 單片機(jī)最小系統(tǒng)。本系統(tǒng)采用Silicon Laboratories公司的C8051F040單片機(jī)。C8051單片機(jī)是功能最強(qiáng)大的8位單片機(jī)之一,具有飛行經(jīng)歷。

      單片機(jī)最小系統(tǒng)如圖4所示。除了電源接口、復(fù)位接口、時(shí)鐘電路,該系統(tǒng)還提供了RAM接口、通信接口等。

      圖4 單片機(jī)最小系統(tǒng)

      (2) RAM存儲(chǔ)單元。RAM存儲(chǔ)單元包括15位地址線和8位數(shù)據(jù)線,如圖5所示。

      圖5 RAM存儲(chǔ)單元

      (3) 通信接口。通信接口將單片機(jī)的數(shù)據(jù)TX0_A發(fā)送至上位機(jī)Txd_PC,同時(shí)將上位機(jī)的命令Rxd_PC傳遞到單片機(jī)RX0_A(見圖6)。按照上述硬件系統(tǒng)的設(shè)計(jì)要求,完成PCB的布局、布線、加工和焊接。

      4 軟件架構(gòu)設(shè)計(jì)

      該系統(tǒng)的軟件算法用于模擬EDAC過程,采用(7,4)編碼結(jié)構(gòu),能驗(yàn)證1位出錯(cuò)時(shí)的檢錯(cuò)與糾錯(cuò)過程。模擬過程如下:

      (1) PC機(jī)通過串口發(fā)送一個(gè)0x00~0x0F之間的16進(jìn)制數(shù)給星載計(jì)算機(jī)(OBC);

      圖6 通信接口

      (2) OBC將數(shù)據(jù)進(jìn)行EDAC編碼后正常寫入RAM;

      (3) 對(duì)外部故障注入單元的某1位強(qiáng)制為0或1,以此造成RAM數(shù)據(jù)存儲(chǔ)過程中的某1位錯(cuò)誤,模擬一次SEU事件;

      (4) PC機(jī)發(fā)送命令控制OBC讀出RAM存儲(chǔ)的數(shù)據(jù);

      (5) OBC對(duì)讀出的數(shù)據(jù)進(jìn)行EDAC校驗(yàn);

      (6) OBC將讀出的原始數(shù)據(jù)、EDAC校驗(yàn)后數(shù)據(jù)、錯(cuò)誤數(shù)據(jù)編碼等通過串口發(fā)送給PC機(jī);

      (7) 在PC機(jī)對(duì)處理結(jié)果進(jìn)行判斷。

      涉及的軟件程序包括:

      (1) 系統(tǒng)的初始化。主要包括禁止看門狗定時(shí)器、配置系統(tǒng)時(shí)鐘、端口配置、串口初始化、RAM模塊測(cè)試等。

      (2) 接收數(shù)據(jù)。包括測(cè)試串口通信,等待串口發(fā)送數(shù)據(jù),接收數(shù)據(jù)后再發(fā)送回PC。

      (3) 數(shù)據(jù)編碼。首先將十進(jìn)制數(shù)轉(zhuǎn)化為二進(jìn)制序列,然后根據(jù)漢明碼算法計(jì)算以上4位有效數(shù)據(jù)的校驗(yàn)碼P1、P2、P3,保存到 BinaryArray 數(shù)組中,即1、2、4位保存校驗(yàn)位,3、5、6、7保存數(shù)據(jù)位。將BinaryArray數(shù)組中保存的數(shù)據(jù)(Dx)和校驗(yàn)碼(Px)按照漢明碼的編碼方式進(jìn)行編碼后,保存到變量CodeData中,并將CodeData寫入RAM。

      (4) 數(shù)據(jù)解碼。人工調(diào)整撥碼開關(guān),強(qiáng)制該位為0或1,使得某數(shù)據(jù)位出現(xiàn)編碼翻轉(zhuǎn)。然后讀取內(nèi)存data_buffer[0],保存到變量ReadData中。隨后根據(jù)漢明碼,使用數(shù)組BinaryArray計(jì)算校驗(yàn)碼S1、S2、S3。根據(jù)校驗(yàn)碼S1、S2、S3計(jì)算S。按照前文的錯(cuò)誤位與伴隨向量的對(duì)應(yīng)關(guān)系表,發(fā)現(xiàn)故障位ErrorBit,同時(shí)調(diào)整數(shù)據(jù)翻轉(zhuǎn)位ErrorBit的值,完成糾錯(cuò),并將糾錯(cuò)后的數(shù)據(jù)重新保存。

      5 演示驗(yàn)證

      演示過程分為以下幾個(gè)步驟:

      (1) 打開串口助手,設(shè)置串口號(hào)COM,波特率為600 b/s,校驗(yàn)位為NONE,數(shù)據(jù)位8,停止位1,設(shè)定16進(jìn)制發(fā)送,然后運(yùn)行程序。

      (2) PC用串口助手手動(dòng)發(fā)送00~0F的16進(jìn)制數(shù)。如在“發(fā)送的字符/數(shù)據(jù)”一欄中填入2個(gè)8位的16進(jìn)制數(shù),點(diǎn)擊發(fā)送。串口助手界面將顯示剛發(fā)送的數(shù)據(jù)SendData,解析出4為有效數(shù)據(jù)ValidData,給出編碼后的數(shù)據(jù)CodeData。

      (3) 設(shè)置故障位,跳線、撥動(dòng)撥碼開關(guān),并且再次點(diǎn)擊“手動(dòng)發(fā)送”,編碼后的數(shù)據(jù)將寫入RAM。串口助手的界面將顯示出讀回的數(shù)據(jù)ReadData,標(biāo)示出錯(cuò)誤的位ErrorBit,并給出校正后的數(shù)據(jù)DecoData。

      這里演示某數(shù)第0位檢錯(cuò)糾錯(cuò)過程。①發(fā)送16進(jìn)制數(shù)據(jù)“14”,界面顯示收到發(fā)送的數(shù)據(jù)SendData位“14”,解析出4為有效數(shù)據(jù)ValidData為“04”,給出編碼后的數(shù)據(jù)CodeData為“2A”。②設(shè)置跳線和撥動(dòng)撥碼開關(guān),令數(shù)據(jù)第1位為“1”,并且再次點(diǎn)擊“手動(dòng)發(fā)送”,編碼后的數(shù)據(jù)將寫入RAM。串口助手的界面將顯示出讀回的數(shù)據(jù)ReadData為“2B”,標(biāo)示出錯(cuò)誤的位ErrorBit為“1”,并給出校正后的數(shù)據(jù)DecoData為“04”。其中,強(qiáng)制設(shè)置數(shù)據(jù)第1位為1的故障注入單元如圖7所示。

      整個(gè)演示過程串口助手界面的顯示結(jié)果如圖8所示。

      上述演示結(jié)果表明,星載機(jī)檢錯(cuò)糾錯(cuò)模擬系統(tǒng)可以模擬MCU和RAM存儲(chǔ)單位間的1位數(shù)據(jù)翻轉(zhuǎn),并且可以自動(dòng)糾正該位錯(cuò)誤。通過多次選擇不同的16進(jìn)制數(shù)據(jù),上述模擬系統(tǒng)都能很好的模擬1位數(shù)據(jù)位故障,并能正確地糾正出該位錯(cuò)誤。

      圖7 數(shù)據(jù)位第1位強(qiáng)制置1

      圖8 演示結(jié)果

      6 結(jié) 語(yǔ)

      本文設(shè)計(jì)了基于漢明碼的EDAC存儲(chǔ)器檢錯(cuò)糾錯(cuò)模擬系統(tǒng)。包括帶有MCU、RS-232接口和擴(kuò)展RAM的模擬星載機(jī),可以隨機(jī)模擬RAM存儲(chǔ)數(shù)據(jù)過程中的1位錯(cuò)誤,此時(shí)該系統(tǒng)讀取帶有1位故障位的存儲(chǔ)器數(shù)據(jù)時(shí)能進(jìn)行EDAC處理,將錯(cuò)誤數(shù)據(jù)和糾錯(cuò)數(shù)據(jù)發(fā)送回PC機(jī)記錄,自動(dòng)完成檢錯(cuò)糾錯(cuò)過程。整個(gè)過程模擬了因單粒子效應(yīng)引起的翻轉(zhuǎn)故障,并運(yùn)用了EDAC技術(shù)進(jìn)行消除,達(dá)到了預(yù)期的設(shè)計(jì)效果。

      猜你喜歡
      數(shù)據(jù)位模擬系統(tǒng)串口
      A320飛機(jī)大氣數(shù)據(jù)的采集和計(jì)算在排故中的應(yīng)用
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      基于STM32單片機(jī)的微電網(wǎng)模擬系統(tǒng)設(shè)計(jì)
      電子制作(2018年1期)2018-04-04 01:48:22
      基于ARM和Zigbee 的變壓器試驗(yàn)培訓(xùn)模擬系統(tǒng)
      電子制作(2017年23期)2017-02-02 07:16:50
      一種適用于FPGA系統(tǒng)中的變速箱電路設(shè)計(jì)
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      減少調(diào)度自動(dòng)化設(shè)備通訊串口丟包率的措施
      基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
      虛擬現(xiàn)實(shí)焊接培訓(xùn)模擬系統(tǒng)在焊工培訓(xùn)中的應(yīng)用
      焊接(2015年1期)2015-07-18 11:07:32
      基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
      河源市| 分宜县| 灵川县| 靖边县| 腾冲县| 多伦县| 枣强县| 清流县| 仪陇县| 自贡市| 巴塘县| 聂拉木县| 新源县| 桂平市| 江口县| 阆中市| 浙江省| 集安市| 襄汾县| 彰化市| 开江县| 巩义市| 哈尔滨市| 阿坝| 田东县| 海宁市| 乌鲁木齐县| 韩城市| 咸丰县| 农安县| 民丰县| 龙口市| 乌鲁木齐市| 南靖县| 拜城县| 来安县| 绥阳县| 通州市| 大邑县| 宁南县| 西青区|