摘要:本文以星載測控系統為背景,提出了一種基于 Actel Flash FPGA的高可靠設計方案。采用不易發(fā)生單粒子翻轉的 flash FPGA芯片,結合 FPGA內部的改進(jìn)型三模冗余、分區設計和降級重構,實(shí)現了高實(shí)時(shí)、高可靠的系統。 2 引言 在復雜的空間環(huán)境中存在各種高能粒子和宇宙射線(xiàn),星載系統的電子器件容易發(fā)生單粒子翻轉等錯誤,造成整個(gè)系統的崩潰。對于星載系統而言,可靠性是非常重要的一項性能指標。在系統研制時(shí),必須保證系統在局部出現故障時(shí)屏蔽和容忍錯誤,把錯誤造成的損失降到昀低。比較常用的可靠性措施包括選用抗擾等級高的元器件和適當的屏蔽設計等,但是這些措施都無(wú)法絕對預防永久性故障的發(fā)生,為了滿(mǎn)足衛星可靠性的要求必須進(jìn)行冗余設計。 本文中的設計就采用 Flash型 FPGA取代了 SRAM型 FPGA,前者在結構上的特點(diǎn)決定了它不容易發(fā)生單粒子翻轉等錯誤,從而在固件上提高了可靠性。同時(shí)采用了改進(jìn)型的 TMR冗余設計,在保障可靠性的同時(shí)也兼顧了實(shí)時(shí)性。 3 基本思想和系統實(shí)現 3.1 Flash型 FPGA概述目前廣泛用于電子產(chǎn)品的 FPGA(Field-Programmable Gate Array,現場(chǎng)可編程門(mén)陣列)主要有反熔絲型、SRAM型和 Flash型三種。反熔絲型 FPGA利用熔絲點(diǎn)的通斷來(lái)存儲編程信息,只能燒寫(xiě)一次,可靠性很高,但是同時(shí)開(kāi)發(fā)成本也很高,一般只在成熟正品中使用。 SRAM型 FPGA使用非常廣泛,它的可編程單元是六管結構,編程信息是保存在附加的 PROM里的,每次上電時(shí)從 PROM中加載到 FPGA中,斷電后編程內容消失。在航天應用中,SRAM型 FPGA昀大的缺點(diǎn)是容易發(fā)生單粒子翻轉(Single Event Upset, SEU),以及上電加載過(guò)程中容易產(chǎn)生錯誤指令。 Flash型 FPGA的可編程單元是兩個(gè)三極管組成的 flash開(kāi)關(guān),其中一個(gè)只在編程時(shí)起傳感器作用,另一個(gè)控制開(kāi)關(guān)的通斷,兩個(gè)管子共享的浮柵門(mén)存儲了編程信息。 Flash型 FPGA無(wú)需附加 PROM,上電時(shí)間也很短,另外 flash相比于 SRAM不容易出現單粒子翻轉,因此 Flash型 FPGA很適合航天應用。 本文中的遙控系統采用 Actel公司的 ProASIC plus系列的 APA300芯片。 3.2 系統描述 本文主要實(shí)現了高可靠遙控系統中將地面和星載計算機發(fā)送的串行碼字譯碼成對應通道指令脈沖的功能,全部功能在一塊 FPGA中實(shí)現。遙控電路板上采用兩塊相同的 FPGA進(jìn)行雙機熱備份,通過(guò) 54LVC244選擇輸出。每塊 FPGA內部又采用了下面描述的改進(jìn)型 TMR設計。該系統完成了遙控譯碼的功能,各指令響應正常。 本文重點(diǎn)介紹 FPGA片內的改進(jìn)型 TMR冗余設計。 3.3 改進(jìn)型 TMR設計 三模冗余(TMR)是一種常用的容錯技術(shù),把需要容錯的部分復制三份,然后由表決器根據多數表決原則輸出結果。TMR屬于靜態(tài)冗余技術(shù),它能夠掩蓋 1個(gè)子系統的錯誤,而不能修復錯誤。當 2個(gè)或 2個(gè)以上的子系統出錯,或者表決器出錯時(shí),TMR系統將輸出錯誤的結果。TMR技術(shù)的優(yōu)點(diǎn)是簡(jiǎn)單易行,對于瞬時(shí)出現的錯誤具有良好的容錯效果,但是代價(jià)是付出了 3倍的面積開(kāi)銷(xiāo)。 本文設計中采用的改進(jìn)型 TMR,實(shí)質(zhì)上是一種 3+n模冗余,N個(gè)子系統中昀多只有三個(gè)子系統同時(shí)處于運行狀態(tài),其余的 N-3個(gè)子系統作為備份隊列,當某個(gè)子系統出現錯誤時(shí),表決模塊用備份的子系統替換下錯誤的子系統,繼續維持 TMR結構。當已無(wú)備份可用時(shí), 3模冗余系統可以進(jìn)行降級重構,由 3模冗余降級為 1模。由于延長(cháng)了三模冗余系統的工作時(shí)間,整個(gè)系統的可靠性得到了很大提高。 考慮到資源消耗與可靠性提高的平衡,本文設計中采用了 3+1模結構,也就是 3模冗余, 1模備份。3+1模結構的工作方式為:正常時(shí)進(jìn)行三模冗余表決輸出,出現第 1次永久性故障時(shí)表決處理模塊能夠檢測出錯誤,在輸出正常信號的同時(shí)用備用子系統替換故障子系統,繼續維持 TMR結構;出現第 2 次永久故障時(shí),表決處理模塊仍然能夠檢測出錯誤,在輸出正常信號的同時(shí)切除故障子系統,自動(dòng)降級為單模工作直至單模子系統完全損壞。這種 3+1模結構借鑒了軟件容錯中的恢復塊技術(shù)和動(dòng)態(tài)冗余結構,能夠容忍至少 2個(gè)子系統錯誤。由于 APA300實(shí)現遙控系統資源余量較大,采用了單片 FPGA片內冗余的方案,進(jìn)一步簡(jiǎn)化了系統的復雜度。 3+1模結構的狀態(tài)轉移圖如下, TMR、SMR和 Failure三個(gè)狀態(tài)分別代表三模冗余、單模工作和系統失效。 在設計中,通過(guò)冗余單元的互鎖機制(Inter-Lock, IL)來(lái)防止錯誤數據通過(guò)冗余單元邊界傳播,為此采用了分區約束的方法進(jìn)行布局布線(xiàn)設計。分區設計不僅能夠隔離錯誤,而且可以充分利用 APA300的 Spine分布,減少路徑延遲。 在用戶(hù)約束文件 GCF文件中作如下約束: 這四條語(yǔ)句把 U1"U4四個(gè)子系統分別限制在一個(gè) spine內,除了全局時(shí)鐘線(xiàn)和輸入輸出線(xiàn)以外,子系統之間沒(méi)有直接的連接,這樣分區布局布線(xiàn)以后就能夠有效地隔離錯誤。 在保證可靠性的同時(shí),3+1模設計昀大程度的保證了輸出的實(shí)時(shí)性,不需要經(jīng)過(guò)關(guān)機等待周期、重發(fā)指令周期或者輸出不確定周期,能夠連續輸出正確結果直到系統完全倒向錯誤狀態(tài)。為了避免系統重構時(shí)過(guò)快降級,考慮到很多錯誤是瞬時(shí)出現又隨即恢復的軟錯誤,因此設定錯誤出現一定次數(例如 3次)以后才去掉故障模塊。 對于 3+1模結構,可靠性提高的代價(jià)是付出了 4倍的資源開(kāi)銷(xiāo),另外輸出時(shí)間延遲會(huì )略有增加,因為關(guān)鍵路徑上的表決器增加了判斷、替換的邏輯單元。因此這種結構只適用于資源充裕、系統頻率不高的場(chǎng)合。在空間應用系統中,工作速度往往不是昀重要的,因而 3+1模結構實(shí)質(zhì)上是用速度換面積(可靠性),在資源不足的情況下可以只對關(guān)鍵模塊、錯誤敏感率高的模塊進(jìn)行冗余,以節省資源。 4 系統可靠性分析 假設單機的可靠性為(運行 5年后) , 普通 TMR和本文中改進(jìn)型 TMR的可靠性分別為。由于 2個(gè)以上子系統同時(shí)發(fā)生錯誤的概率很小,假定同一時(shí)刻昀多只有一個(gè)子系統發(fā)生錯誤。 TMR可以容忍 1個(gè)子系統錯誤,可靠性相當于 3個(gè)子系統都正常的可靠性加上某一個(gè)子系統錯誤、其它兩個(gè)子系統正常的可靠性: 同理,改進(jìn)型 TMR的可靠性相當于以下三種情況的可靠性之和: 1)4個(gè)子系統都正常 2)1個(gè)子系統錯誤,其它 3個(gè)子系統正常 3)2個(gè)子系統錯誤,其它 2個(gè)子系統正常 取一系列的 R0值(0≤R0≤1),按(1)(2)兩式計算出 RTMR和 RTMR+1如下表 1: 由表 1可以看出, 3+1模結構的可靠性遠高于 3模冗余和單模工作,特別是在子模塊可靠性降低的情況下提高可靠性的效果更為顯著(zhù)。 5 結論 本文提出了一種基于 Flash型 FPGA的高可靠系統解決方案,改進(jìn)型的 TMR冗余利用片內備份的子系統替換出錯的系統,能夠長(cháng)期維持 TMR系統,有效地提高可靠性。本文所述思想同樣適用于多芯片 /多機情況下的冗余方案。本系統即將應用于某航天型號設備中,經(jīng)過(guò)初步聯(lián)試證明本系統能夠滿(mǎn)足可靠性和性能的要求。 本文作者創(chuàng )新點(diǎn):1、將 Flash FPGA用于星載測控系統,提高了固件可靠性;2、改進(jìn)型 TMR(3+1模冗余)改善了三模冗余的不足,延長(cháng)了系統使用時(shí)間,大大提高了系統的可靠性。 |