国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于FPGA的航空總線容錯(cuò)機(jī)制設(shè)計(jì)

2015-10-20 02:38丁志平東華大學(xué)信息科學(xué)與技術(shù)學(xué)院上海201620
關(guān)鍵詞:校驗(yàn)碼總線指令

丁志平(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上?!?01620)

一種基于FPGA的航空總線容錯(cuò)機(jī)制設(shè)計(jì)

丁志平
(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海201620)

航天應(yīng)用中,單粒子翻轉(zhuǎn)引發(fā)SRAM型FPGA的錯(cuò)誤最多,而EDAC設(shè)計(jì)在糾錯(cuò)模塊中有著廣泛的應(yīng)用。將依據(jù)擴(kuò)展海明碼設(shè)計(jì)的[40,32]EDAC模塊嵌入到ARINC 659的雙口數(shù)據(jù)DPRAM和指令SRAM中,提高了總線控制器的容錯(cuò)處理能力。

ARINC 659;單粒子翻轉(zhuǎn);錯(cuò)誤檢測(cè)與糾正;海明碼

0 引言

集成電路的應(yīng)用領(lǐng)域在不斷深入擴(kuò)大,航空航天方面要求系統(tǒng)能長(zhǎng)期可靠地運(yùn)行,其運(yùn)行的環(huán)境輻射比地面輻射嚴(yán)重,集成電路很容易受到干擾,導(dǎo)致設(shè)備不能正常工作。單粒子翻轉(zhuǎn)是指高能粒子射入集成電路的PN結(jié),會(huì)發(fā)生PN結(jié)電離、電荷積累、能量轉(zhuǎn)移等。存儲(chǔ)器件某一位數(shù)據(jù)會(huì)從一個(gè)穩(wěn)態(tài)轉(zhuǎn)變?yōu)榱硗庖粋€(gè)穩(wěn)態(tài),是引發(fā)航天器故障的主要因數(shù)。

為了最大限度地減少單粒子效應(yīng)對(duì)FPGA的影響,通常采用三模冗余的加固結(jié)構(gòu),盡管三模冗余結(jié)構(gòu)可以將錯(cuò)誤暫時(shí)隔離,但是在長(zhǎng)期工作的情況下冗余單元也可能繼續(xù)發(fā)生錯(cuò)誤。近年來(lái)國(guó)內(nèi)外采用EDAC電路來(lái)減少或避免錯(cuò)誤的發(fā)生。常見的EDAC電路都是采用專用芯片配上時(shí)序來(lái)工作的,這不利于系統(tǒng)的集成小型化和低功耗。本文基于ARINC 659控制器的設(shè)計(jì),利用Verilog HDL實(shí)現(xiàn)EDAC的功能,使設(shè)計(jì)朝著高集成、低功耗的方向發(fā)展[1]。

1 ARINC 659總線技術(shù)簡(jiǎn)介

ARINC 659[2]是一種航空電子模塊化設(shè)計(jì)的背板總線標(biāo)準(zhǔn),有魯棒分區(qū),具有確定的時(shí)間和空間性?;裟犴f爾公司根據(jù)ARINC 659標(biāo)準(zhǔn)設(shè)計(jì)的SAFEbus用于波音777的飛機(jī)信息管理系統(tǒng)中,從1993年被采納成為行業(yè)標(biāo)準(zhǔn)至今已經(jīng)穩(wěn)定運(yùn)行30多年。它能夠應(yīng)用于大型客機(jī)的電子系統(tǒng),表明ARINC 659是一種較為可靠的內(nèi)總線,適用于航天系統(tǒng)的綜合電子平臺(tái)。

在ARINC 659標(biāo)準(zhǔn)中,每一個(gè)可插拔的子板被稱作在線可更換模塊(Line Replaceable Module,LRM)。每個(gè)LRM有兩個(gè)總線接口(Bus Interface Unit,BIU)。在該標(biāo)準(zhǔn)中,一條659總線上最多允許連接32個(gè)LRM。ARINC 659使用時(shí)間觸發(fā)的調(diào)度方式稱為表驅(qū)動(dòng)比例訪問(wèn)協(xié)議(Table Driven ProportionalAccess,TDPA),并將決定總線時(shí)分復(fù)用特性的調(diào)度表保存在每個(gè)BIU中,維護(hù)協(xié)議的數(shù)據(jù)開銷非常小。ARINC 659的4線交叉校驗(yàn)機(jī)制可以對(duì)每一位進(jìn)行校驗(yàn)。

ARINC 659假設(shè)每個(gè)BIU使用獨(dú)立的時(shí)鐘,儲(chǔ)存相同的TDPA表,因此在總線工作時(shí)是沒(méi)有中心控制的分布式系統(tǒng)的。同時(shí),ARINC 659也支持LRM的冗余,協(xié)議中最多允許某項(xiàng)功能有4個(gè)LRM做備份。

目前見到的航空總線標(biāo)準(zhǔn)中,ARINC 659總線的實(shí)時(shí)性、可靠性和冗余度是最高的,但霍尼韋爾公司只提供整機(jī)解決方案,不提供芯片,因此研究該總線能為我國(guó)航空電子系統(tǒng)開發(fā)與應(yīng)用提供幫助。

2 EDAC的原理與實(shí)現(xiàn)

2.1海明碼的基本原理

海明碼是一種廣泛使用的可以糾正單個(gè)錯(cuò)誤和檢測(cè)任意兩位錯(cuò)誤的線性分組碼。常見的海明碼應(yīng)滿足不等式2m≥n+m+1,其中n為數(shù)據(jù)碼的位數(shù),m為校驗(yàn)碼的位數(shù),如果要求既要能糾正一位錯(cuò)位又能檢測(cè)出兩位錯(cuò)位,則至少需要m+1位校驗(yàn)碼。該控制器中傳輸32bit數(shù)據(jù),依據(jù)海明碼的原理,使用8bit校驗(yàn)位,構(gòu)成[40,32]擴(kuò)展海明碼。依據(jù)規(guī)則,在數(shù)據(jù)位的第2k(k=0,1,2,3,4,5)bit上放置校驗(yàn)碼。

2.2EDAC模塊的設(shè)計(jì)與實(shí)現(xiàn)

EDAC模塊在CPU與RAM之間[3],保護(hù)控制器RAM的數(shù)據(jù),CPU對(duì)RAM操作時(shí),EDAC模塊已經(jīng)對(duì)RAM中的數(shù)據(jù)進(jìn)行了預(yù)處理,同時(shí)EDAC模塊中也加入了使能信號(hào)。EDAC主要工作在寫周期和讀周期,如圖1所示,EDAC主要包括發(fā)送和接收兩個(gè)部分。

圖1 EDAC電路框圖

上面發(fā)送模塊負(fù)責(zé)海明碼編碼,用控制電路寄存器中的數(shù)據(jù)位確定校驗(yàn)位,然后依據(jù)海明碼的長(zhǎng)度和編碼方案編碼。將并行轉(zhuǎn)成串行數(shù)據(jù)發(fā)出去。接收模塊主要負(fù)責(zé)海明碼糾錯(cuò)與解碼,解碼過(guò)程就是依據(jù)已知校驗(yàn)位數(shù)確定碼字長(zhǎng)度;而糾正就是用已經(jīng)生成的校驗(yàn)碼和形成該校驗(yàn)碼的編碼方程再進(jìn)行一次異或操作,如果該等式為0,則代表沒(méi)有發(fā)生錯(cuò)誤,若等式為1,說(shuō)明有錯(cuò),可以從等式的值判斷具體的出錯(cuò)位,糾正后再?gòu)拇a字中選出數(shù)據(jù)位。

EDAC模塊通過(guò)Verilog HDL在FPGA中實(shí)現(xiàn),其總體框架如圖2所示,其各變量的含義如下:

wr:CPU讀寫信號(hào),0和1分別表示為寫和讀。

c_data[7:0]:CPU的傳送和接收數(shù)據(jù)。

mem_data[39:0]:存儲(chǔ)器數(shù)據(jù)包括32bit數(shù)據(jù)位和8bit校驗(yàn)位。

er_out[1:0]:錯(cuò)誤類型,分別為無(wú)錯(cuò)誤、1bit錯(cuò)、2bit及2bit以上錯(cuò)、校驗(yàn)位錯(cuò)誤。

圖2 EDAC模型

3 EDAC模塊在ARINC 659總線控制器中的實(shí)現(xiàn)

圖3是ARINC 659總線的系統(tǒng)框圖,雙口數(shù)據(jù)DPRAM使用[40,32]EDAC編碼保存數(shù)據(jù)。8051讀取數(shù)據(jù)時(shí),EDAC狀態(tài)寄存器記錄1bit錯(cuò)或2bit錯(cuò)。EDAC狀態(tài)寄存器有可屏蔽的EDAC中斷。依據(jù)海明編碼原理,ARINC 659總線控制器讀取數(shù)據(jù)時(shí),1bit錯(cuò)直接糾正,2bit以上的錯(cuò)不做處理,ARINC 659總線控制器自身能保存正常數(shù)據(jù),2bit以上的錯(cuò)誤導(dǎo)致ARINC 659總線校驗(yàn)全部失效,將數(shù)據(jù)錯(cuò)誤通知其他LRM。

圖3 ARINC 659片上系統(tǒng)

指令SRAM也使用[40,32]EDAC編碼保存數(shù)據(jù),寫入方法與雙端口數(shù)據(jù)DPRAM相同。正常狀態(tài)下,ARINC 659總線控制器只讀指令SRAM,指令SRAM自身也有EDAC,但隨著時(shí)間累積,單粒子翻轉(zhuǎn)可能在指令SRAM中累積,最后發(fā)生多位錯(cuò)。針對(duì)這種情況,在ARINC 659指令總線上新增EDAC刷新模塊,它每次讀取指令SRAM的一個(gè)字,再將其寫入指令SRAM,可以避免1bit錯(cuò)累加形成多位錯(cuò)。659總線控制器讀取指令SRAM的EDAC狀態(tài)時(shí),對(duì)1bit錯(cuò)不做處理,對(duì)2bit錯(cuò)659總線控制器會(huì)斷開,另一個(gè)659總線控制器依靠交叉使能不一致也會(huì)斷開。659總線控制器遇到多位錯(cuò)將會(huì)變?yōu)槲粗獱顟B(tài),最終因?yàn)榻徊媸鼓懿灰恢乱矔?huì)斷開。圖4是32bit數(shù)據(jù)5A5A5A5A經(jīng)過(guò)EDAC模塊之后的狀態(tài)。

圖4 經(jīng)EDAC模塊的SRAM狀態(tài)

4 注入故障與結(jié)果分析

通常SEU發(fā)生頻率與器件所處的軌道位置和工作時(shí)間有關(guān),每天SRAM中SEU的發(fā)生約為3×10-5位。為了加快實(shí)驗(yàn)進(jìn)度,采用與實(shí)際情況相似的硬件故障注入方式,故障注入基本頻率為10次/s。其結(jié)構(gòu)如圖5所示,包括注入機(jī)和目標(biāo)機(jī),注入機(jī)通過(guò)向FPGA發(fā)送命令的方式注入故障,實(shí)現(xiàn)故障邏輯[4]。

A new avionics bus fault tolerance mechanism design based on FPGA

Ding Zhiping
(Institute of Information Science and Technology,Donghua University,Shanghai 201620,China)

In the space environment,the most fault in SRAM type FPGA is the effect of single event upset(SEU).The EDAC module has a broad application in the field of aerospace error detection.In this paper,we use extension Hamming code to design[40,32]EDAC module and algorithm,which is embedded in ARINC 659 data dual port RAM and instructions SRAM module,to improve the fault tolerance ability of the ARINC 659 bus controller.

ARINC 659;single event upset(SEU);error detection and correction(EDAC);Hamming code

TP37

A

1674-7720(2015)10-0020-02

猜你喜歡
校驗(yàn)碼總線指令
Basic UDI校驗(yàn)碼算法
基于加密設(shè)備特征信息的配置數(shù)據(jù)自動(dòng)校驗(yàn)方法
一種基于CAN總線的誤碼測(cè)試方法
殺毒軟件中指令虛擬機(jī)的脆弱性分析
基于Excel實(shí)現(xiàn)書號(hào)校驗(yàn)碼的驗(yàn)證
身份證號(hào)碼中的數(shù)學(xué)
CAN總線并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
基于CAN總線的水下通信系統(tǒng)設(shè)計(jì)
一種基于滑窗的余度指令判別算法