《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA的航空總線容錯(cuò)機(jī)制設(shè)計(jì)
一種基于FPGA的航空總線容錯(cuò)機(jī)制設(shè)計(jì)
2015年微型機(jī)與應(yīng)用第10期
丁志平
(東華大學(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ò)處理能力,。
Abstract:
Key words :

  摘  要: 航天應(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ò)處理能力,。

  關(guān)鍵詞: 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 Proportional Access,,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)碼,。該控制器中傳輸32 bit數(shù)據(jù),依據(jù)海明碼的原理,,使用8 bit校驗(yàn)位,,構(gòu)成[40,32]擴(kuò)展海明碼,。依據(jù)規(guī)則,,在數(shù)據(jù)位的第2k(k=0,1,,2,,3,4,,5) bit上放置校驗(yàn)碼,。

  2.2 EDAC模塊的設(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è)部分,。

001.jpg

  上面發(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ù)位,。

002.jpg

  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ù)包括32 bit數(shù)據(jù)位和8 bit校驗(yàn)位,。

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

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

003.jpg

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

  指令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,,可以避免1 bit錯(cuò)累加形成多位錯(cuò)。659總線控制器讀取指令SRAM的EDAC狀態(tài)時(shí),,對(duì)1 bit錯(cuò)不做處理,,對(duì)2 bit錯(cuò)659總線控制器會(huì)斷開,另一個(gè)659總線控制器依靠交叉使能不一致也會(huì)斷開,。659總線控制器遇到多位錯(cuò)將會(huì)變?yōu)槲粗獱顟B(tài),,最終因?yàn)榻徊媸鼓懿灰恢乱矔?huì)斷開。圖4是32 bit數(shù)據(jù)5A5A5A5A經(jīng)過(guò)EDAC模塊之后的狀態(tài),。

004.jpg

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],。

005.jpg

  運(yùn)行時(shí)指令SRAM和數(shù)據(jù)DPRAM會(huì)同時(shí)發(fā)生故障,,導(dǎo)致主機(jī)失效。本文選用4種程序進(jìn)行試驗(yàn),,分別為遞歸(Fibonacci,,F(xiàn)I)、快速排序(Quick Sort,,QS),、矩陣乘(Matrix Multiplication,MM)和快速傅里葉變換(Fast Fourier Transform,,F(xiàn)FT),。同時(shí)向指令SRAM和數(shù)據(jù)DPRAM中注入1 480 000次故障,主機(jī)平均會(huì)有475次失效,,在這些失效中平均會(huì)有452次被檢測(cè)到并處理,,其可靠性相對(duì)不加EDAC時(shí)顯著提高,。

5 結(jié)論

006.jpg

  本文研究了EDAC的主要原理和實(shí)現(xiàn),針對(duì)ARINC 659總線控制器的體系結(jié)構(gòu)與特點(diǎn),,將[40,,32]EDAC模塊嵌入數(shù)據(jù)DPRAM和指令SRAM中,用來(lái)糾正1 bit錯(cuò)位和檢驗(yàn)2 bit錯(cuò)誤,。該設(shè)計(jì)嵌入在FPGA中,,與傳統(tǒng)的利用糾錯(cuò)芯片硬件電路相比,簡(jiǎn)化了電路,,能快速地實(shí)現(xiàn)ARINC 659總線控制器的糾錯(cuò)檢錯(cuò),,有效降低了單粒子翻轉(zhuǎn)效應(yīng)對(duì)存儲(chǔ)器的影響,提升系統(tǒng)的整體性能,。

  參考文獻(xiàn)

  [1] 付劍.星載計(jì)算機(jī)的硬件容錯(cuò)設(shè)計(jì)與可靠性分析[D].長(zhǎng)沙:國(guó)防科技大學(xué),,2009.

  [2] 張喜民,魏婷.ARINC659容錯(cuò)數(shù)據(jù)總線測(cè)試驗(yàn)證系統(tǒng)研制[J].西安電子科技大學(xué)學(xué)報(bào)(自然科學(xué)版),,2011,,38(6):140-145.

  [3] 劉淑芬.崔星.計(jì)算機(jī)RAM檢錯(cuò)糾錯(cuò)電路的設(shè)計(jì)與實(shí)現(xiàn)[J].航天控制,2003(4):59-67.

  [4] 賈文濤,,張春元,,付劍,等.一種高可靠雙機(jī)備份星載計(jì)算機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[C].第六屆中國(guó)測(cè)試會(huì)議,,2010.7.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。