陳海燕,穆建成,馬連川
(1.北京交通大學(xué) 軌道交通控制與安全國家重點(diǎn)實(shí)驗(yàn)室,北京 100044;2.鐵道部 科技司,北京 100844)
安全計算機(jī)作為主要技術(shù)手段是保障軌道交通信號設(shè)備安全的基礎(chǔ)設(shè)備。目前,我國鐵路的安全計算機(jī)系統(tǒng)多采用3取2、2取2乘2的冗余結(jié)構(gòu)[1]。為了提高系統(tǒng)的安全性和可擴(kuò)展性,安全計算機(jī)向分布式結(jié)構(gòu)發(fā)展,采用基于可編程邏輯實(shí)現(xiàn)時鐘級同步的2取2結(jié)構(gòu)安全I(xiàn)/O模塊的設(shè)計方法,能縮短安全響應(yīng)時間,使用可編程邏輯和硬件描述語言VHDL實(shí)現(xiàn)安全I(xiàn)/O模塊,能避免通用MCU或CPU實(shí)現(xiàn)時鐘級同步安全I(xiàn)/O模塊所遇到的問題,且有設(shè)計周期短、開發(fā)費(fèi)用低、風(fēng)險小等優(yōu)點(diǎn)。
本文針對可擴(kuò)展的安全計算機(jī)平臺,提出了一種基于FPGA的智能安全I(xiàn)/O模塊的設(shè)計方案。安全I(xiàn)/O模塊是以硬件邏輯保證平臺與應(yīng)用之間的數(shù)據(jù)傳輸安全。
安全I(xiàn)/O模塊主要是由2個完全相同的模塊A、B和一個故障比較器組成。安全主機(jī)輸出的數(shù)據(jù)傳送到安全I(xiàn)/O模塊中,分別在2個模塊中完成3取2的表決運(yùn)算,保證安全I(xiàn)/O模塊的可靠性。在2個模塊之間,利用比較電路實(shí)現(xiàn)2取2故障檢測,保證模塊的安全性。當(dāng)比較器輸入一致時,安全I(xiàn)/O模塊輸出周期性的脈沖。當(dāng)比較器輸出不一致時,I/O模塊輸出固定的0或者1,作為安全側(cè)的輸出。安全I(xiàn)/O模塊將安全主機(jī)通過通信總線輸出的數(shù)據(jù)轉(zhuǎn)換為數(shù)字量安全輸出,同時也可以將外部設(shè)備輸入的數(shù)字量通過通信總線傳輸?shù)桨踩鳈C(jī)。
FPGA主要由發(fā)送/接收部分(UART),存儲部分(FIFO),微控制單元(MCU),接口部分(I/O),完全自校驗(yàn)電路(TSC),故障檢測部分(2取2)組成。具體原理框圖見圖1。
圖1 安全I(xiàn)/O原理框圖
各個部分功能如下:
(1) UART:完成數(shù)據(jù)并/串之間的轉(zhuǎn)換。
(2) FIFO:存儲處理轉(zhuǎn)化完的數(shù)據(jù),供MCU讀取。
(3) MCU:完成3取2的表決運(yùn)算,控制數(shù)據(jù)傳輸?shù)姆较颉?/p>
(4) I/O:在允許信號開放的情況下完成數(shù)據(jù)的讀寫操作。
(5) TSC:將待比較的數(shù)據(jù)轉(zhuǎn)化為2比特數(shù)據(jù)輸出。
(6) 2取2:監(jiān)測MCU所有數(shù)據(jù)的輸入/輸出,完成2取2表決,實(shí)現(xiàn)故障安全原則。
利用硬件描述語言VHDL對FPGA的各個模塊進(jìn)行描述,然后通過頂層文件將所有模塊連接在一起,仿真結(jié)果如圖2。
圖2 仿真結(jié)果
(1)斷言方案
安全I(xiàn)/O模塊較多且與安全相關(guān),因此采用基于硬件特性描述語言(PSL)的斷言驗(yàn)證,不僅可以加速整個驗(yàn)證工作的速度,而且能夠保證設(shè)計正確性。根據(jù)安全I(xiàn)/O模塊內(nèi)部各子模塊性質(zhì)、功能、設(shè)計方法和模塊間信號傳遞的原則,詳細(xì)設(shè)計了驗(yàn)證方案如表1。驗(yàn)證內(nèi)容涉及到數(shù)據(jù)傳輸、存儲器讀寫、狀態(tài)轉(zhuǎn)換、數(shù)據(jù)比較及模塊間通信等。
(2)驗(yàn)證結(jié)果
將表1中每個斷言方案用PSL語句描述,并嵌入到模塊的VHDL語句中,軟件自動完成驗(yàn)證。驗(yàn)證結(jié)果如圖3,由圖可知每個斷言都正確,從而有效的驗(yàn)證了安全I(xiàn)/O模塊設(shè)計的正確性。
表1 安全I(xiàn)/O硬件設(shè)計的斷言驗(yàn)證方案
在電子設(shè)計自動化(EDA)開發(fā)實(shí)驗(yàn)平臺上實(shí)現(xiàn)了安全I(xiàn)/O模塊的硬件電路,如圖4。運(yùn)行EDA軟件,將編譯好的VHDL程序代碼下載到FPGA中。
圖3 驗(yàn)證結(jié)果
3組串口數(shù)據(jù)通過串口調(diào)試助手發(fā)送給FPGA,F(xiàn)PGA經(jīng)過邏輯處理,最終輸出2組動態(tài)信號和2組并行數(shù)據(jù)。如果FPGA判斷串口調(diào)試助手輸入的3組數(shù)據(jù)為安全數(shù)據(jù),則FPGA輸出的周期性脈沖信號驅(qū)動外部繼電器工作。
圖4 安全I(xiàn)/O硬件實(shí)現(xiàn)原理
長時間穩(wěn)定性測試表明安全I(xiàn)/O模塊的正確性和安全性。安全性測試時,人為使安全I(xiàn)/O模塊中的模塊A、B輸出的比較數(shù)據(jù)不一致,安全I(xiàn)/O模塊能夠正確地使輸出導(dǎo)向安全側(cè)。
本文對可擴(kuò)展安全計算機(jī)的I/O模塊進(jìn)行了專門的設(shè)計,完成了基于可編程邏輯時鐘級同步安全I(xiàn)/O模塊的設(shè)計、仿真、驗(yàn)證和實(shí)現(xiàn)。該模塊能夠保證安全計算機(jī)輸入輸出的數(shù)據(jù)和外部設(shè)備交互的高可靠性和高安全性,所付出的硬件和軟件成本較低,具有較好的實(shí)用性,能推廣到其它安全系統(tǒng)。
[1]馬連川,高倍力.一種高安全容錯控制計算機(jī)的設(shè)計與實(shí)現(xiàn)[J]. 中國安全科學(xué)學(xué)報,2004(8):101-l05.
[2]員春欣. 鐵路信號容錯技術(shù)[M]. 中國鐵道出版社,1997.