基于FPGA單芯片四核二乘二取二的安全系統(tǒng)
引 言
二乘二取二系統(tǒng)的兩套計(jì)算機(jī)系統(tǒng)各有兩個(gè)CPU,并且所有結(jié)構(gòu)和配件完全相同。兩套系統(tǒng)之間采取雙機(jī)熱備份,大幅提高了系統(tǒng)可靠性,在一些領(lǐng)域得到了廣泛應(yīng)用。基于二乘二取二容錯(cuò)結(jié)構(gòu)的計(jì)算機(jī)聯(lián)鎖系統(tǒng)在國(guó)外已有成熟的應(yīng)用,如K5B和E132,其良好的可靠性和安全性引起國(guó)內(nèi)業(yè)界的廣泛關(guān)注。
系統(tǒng)可靠性冗余設(shè)計(jì)是提高系統(tǒng)可靠性的重要方法,但由于冗余會(huì)增加系統(tǒng)成本、體積和重量,因此必須合理地選擇冗余結(jié)構(gòu)和數(shù)量。對(duì)價(jià)格昂貴、重量大、體積大的冗余部分,更應(yīng)作合理考慮。由于二乘二取二硬件冗余技術(shù)是通過(guò)多個(gè)相同部件完成同一功能,在提高系統(tǒng)可靠性的同時(shí)也存在一些不足:
◆增加了系統(tǒng)的成本、結(jié)構(gòu)、重量和所需空間;
◆在某些情況下硬件技術(shù)的應(yīng)用受到限制;
◆對(duì)大型復(fù)雜系統(tǒng)均采用硬件冗余技術(shù)是不可能的。
以上不足將限制二乘二取二冗余技術(shù)的應(yīng)用,F(xiàn)usion和coreABC的組合為以上問(wèn)題提供了良好的解決方案。
1 二乘二取二系統(tǒng)
二乘二取二系統(tǒng)有4個(gè)CPU,兩個(gè)CPU組成一組。每?jī)蓚€(gè)CPU的輸出經(jīng)比較器表決輸出,兩個(gè)CPU和一個(gè)比較器表決系統(tǒng)組成一個(gè)子系統(tǒng)。兩個(gè)子系統(tǒng)具有完全相同的硬件結(jié)構(gòu),一個(gè)為主單元,一個(gè)作為備用單元。開(kāi)機(jī)后兩個(gè)子系統(tǒng)獨(dú)立同步工作,系統(tǒng)取工作單元的輸出為系統(tǒng)輸出。當(dāng)兩個(gè)子系統(tǒng)均正常工作時(shí),系統(tǒng)取主單元的輸出為系統(tǒng)輸出,若備用單元發(fā)生故障,系統(tǒng)輸出仍為主單元的輸出,備用單元進(jìn)入維修狀態(tài)。當(dāng)主單元發(fā)生故障時(shí),系統(tǒng)切換至備用單元,此時(shí)系統(tǒng)輸出為備用單元的輸出,主單元進(jìn)入維修狀態(tài);一旦主單元維修完畢,可以正常工作時(shí),則系統(tǒng)切換至主單元,取主單元的輸出為系統(tǒng)輸出。若主單元和備用單元均無(wú)法正常工作,則系統(tǒng)故障,系統(tǒng)無(wú)法繼續(xù)正常工作。除子系統(tǒng)故障時(shí)系統(tǒng)自動(dòng)切換外,系統(tǒng)還具有手動(dòng)切換的功能。由于兩個(gè)子系統(tǒng)具有完全相同的結(jié)構(gòu)和進(jìn)行完全相同的工作,所以手動(dòng)切換不影響系統(tǒng)的正常工作。導(dǎo)致系統(tǒng)故障的因素有很多,根據(jù)不同的應(yīng)用場(chǎng)合,需要針對(duì)不同的故障進(jìn)行檢測(cè)和維修。二乘二取二系統(tǒng)的工作示意圖如圖1所示。
2 系統(tǒng)的具體實(shí)現(xiàn)
在設(shè)計(jì)時(shí),首先要考慮FPGA門電路的數(shù)量,以及嵌入4個(gè)軟核所要占用的門陣列資源。其次,要考慮其他硬件資源,比如時(shí)鐘、存儲(chǔ)器等。綜合各方面的考慮,本設(shè)計(jì)選擇Actel的Fusion StartKit數(shù)?;旌?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/FPGA">FPGA實(shí)現(xiàn)二乘二取二系統(tǒng)。Fusion StartKit數(shù)?;旌?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/FPGA">FPGA擁有600萬(wàn)門門陣列,片內(nèi)集成了Flash存儲(chǔ)器、RAM、FIFO和模擬模塊;片外提供48 MHz的晶振;支持coreABC軟核的嵌入。
2.1 軟核的嵌入
coreABC是一種具有高可配置性的軟核,占用資源少,特別適于低端應(yīng)用。它能夠掛載可編程高級(jí)外圍總線(APB),支持APB總線下的外圍設(shè)備,通過(guò)coreAI直接控制ACM塊,還可配置8位、16位和32位APB接口??梢酝ㄟ^(guò)APB總線控制coreAI核,進(jìn)行電壓、電流采集,以及模數(shù)轉(zhuǎn)換。圖2給出一種配置方案。coreABC可使用軟/硬代碼存儲(chǔ)方式,本設(shè)計(jì)采用硬代碼存儲(chǔ)方式。硬代碼存儲(chǔ)方式只需占用門陣列資源,而軟代碼存儲(chǔ)方式要占用Flash存儲(chǔ)口資源。由于FPGA片內(nèi)集成了2個(gè)Flash存儲(chǔ)口,嵌入4個(gè)核時(shí)Flash存儲(chǔ)口資源不足。Actel coreABC的推出對(duì)實(shí)現(xiàn)可配置的小系統(tǒng)極具意義,它使用很少的系統(tǒng)資源就可搭建起完整的控制單元。
2.2 比較電路的實(shí)現(xiàn)
二取二CPU的比較電路采用冗余設(shè)計(jì),它主要負(fù)責(zé)對(duì)coreABC軟核的總線信號(hào)進(jìn)行比較判決,保證系統(tǒng)正常運(yùn)行,其電路圖如圖3所示。比較電路的工作原理為:片外寄存器分別從兩個(gè)CPU獲得總線數(shù)據(jù)信息,經(jīng)異或模塊OE1=A1+A2,OE2=B1+82進(jìn)行判斷,分別控制數(shù)據(jù)鎖存器輸出,并配合時(shí)鐘信號(hào)控制鎖存器同步輸出;從鎖存器輸出的數(shù)據(jù)經(jīng)或電路處理后形成比較結(jié)果,即DATA_OUT=D1+D2。若比較結(jié)果確認(rèn)CPU此次運(yùn)算一致,則系統(tǒng)正常輸出;若比較電路確認(rèn)CPU運(yùn)算有誤,則重新進(jìn)行運(yùn)算。
評(píng)論