本發(fā)明涉及一種基于FPGA的雙余度計(jì)算機(jī)控制系統(tǒng)的設(shè)計(jì)方法,通過對系統(tǒng)中輸入、輸出及CPU資源進(jìn)行細(xì)粒度的管理和組合,實(shí)現(xiàn)靈活冗余替換,從而顯著增加系統(tǒng)的任務(wù)可靠性。
背景技術(shù):
雙余度計(jì)算機(jī)控制系統(tǒng)廣泛應(yīng)用于飛控等有較高可靠性要求的領(lǐng)域。其原理是系統(tǒng)中存在兩套控制電路,當(dāng)其主控制電路出現(xiàn)故障時(shí)將控制權(quán)切換到冗余控制電路,主控制電路的所有資源都不再使用。當(dāng)兩套控制電路都出現(xiàn)故障時(shí)系統(tǒng)將處于失控狀態(tài)。但實(shí)際情況是兩套控制電路的故障點(diǎn)往往不相同,例如第一套控制電路的輸入通道1故障,而第二套控制電路則可能是輸入通道9故障或CPU故障等。如果能夠靈活組合資源,則仍然使系統(tǒng)正常工作。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供了一種通過FPGA靈活管理雙余度計(jì)算機(jī)系統(tǒng)中各種資源的方法,對各種資源進(jìn)行細(xì)粒度的管理,實(shí)現(xiàn)更加靈活的組合,從而盡可能避免系統(tǒng)失控。該方法器件使用量小,可實(shí)現(xiàn)多個(gè)不同類故障點(diǎn)的冗余切換。
本發(fā)明的技術(shù)解決方案是:
一種基于FPGA的雙余度計(jì)算機(jī)控制系統(tǒng)的設(shè)計(jì)方法,其特殊之處在于,該方法包括:
1】系統(tǒng)的每一路輸入、輸出電路及CPU電路 均分別與同一FPGA相連;
2】FPGA可對每一路輸入、輸出電路分別進(jìn)行調(diào)配切換;
3】主從CPU均可讀取或控制每一輸入、輸出電路;
4】當(dāng)某一路輸入、輸出電路及CPU電路出現(xiàn)故障時(shí)僅切換該路器件。
上述基于FPGA的雙余度計(jì)算機(jī)控制系統(tǒng)的設(shè)計(jì)方法,其特征在于,該方法具體描述為:
1】外部輸入器件單獨(dú)與FPGA連接,F(xiàn)PGA將每一路流式數(shù)據(jù)讀取并存入FPGA內(nèi)部兩個(gè)獨(dú)立的FIFO,兩個(gè)FIFO的輸出端分別通過FPGA與主、從CPU的總線連;每一路輸入開關(guān)量通過兩個(gè)獨(dú)立的buffer與兩個(gè)CPU的總線連接,使兩個(gè)CPU可以獨(dú)立讀取每一路輸入通道的數(shù)據(jù);
2】每個(gè)輸出器件的所有控制線單獨(dú)與FPGA連接,并在FPGA內(nèi)部實(shí)現(xiàn)輸出控制器對其進(jìn)行控制;
數(shù)據(jù)的控制和流向:每一個(gè)輸出控制器的輸入端通過FPGA內(nèi)部的多路開關(guān)分別與兩個(gè)CPU的總線連,通過切換可接收每個(gè)CPU的指令,同時(shí)輸出控制器接收到的數(shù)據(jù)可被從CPU讀出;
3】為每個(gè)輸出器件設(shè)計(jì)自檢電路,用以測試輸出器件是否正常;
4】系統(tǒng)初始態(tài)時(shí)主控制電路得到控制權(quán),主CPU從主輸入電路讀取輸入數(shù)據(jù)并進(jìn)行計(jì)算,再將計(jì)算所得的控制寫入FPGA中相應(yīng)的輸出控制器對輸出器件進(jìn)行控制;
主CPU同時(shí)比對每一路主、從輸入電路的輸入結(jié)果,當(dāng)某一路主輸入異常時(shí)便不再采用該路數(shù)據(jù)而采用從輸入電路中對應(yīng)的通道數(shù)據(jù);主CPU查詢每一輸出器件自檢電路結(jié)果,判斷是否為預(yù)期結(jié)果,如果不是則控制切換電路將該路輸出切換為相應(yīng)的從輸出電路;
5】從CPU同步進(jìn)行上一步4】中主CPU進(jìn)行的讀取和計(jì)算工作,并監(jiān)控其輸出數(shù)據(jù)及切換控制動作;當(dāng)從CPU發(fā)現(xiàn)主CPU動作異常則切換控制權(quán)。
上述流式數(shù)據(jù)包括AD以及串行輸入接口數(shù)據(jù)。
本發(fā)明的優(yōu)點(diǎn)在于:
1、對系統(tǒng)中各電路模塊用同一FPGA進(jìn)行靈活管理;
2、系統(tǒng)結(jié)構(gòu)簡潔,器件數(shù)量少;
3、出現(xiàn)故障時(shí)僅將最小范圍的故障相關(guān)器件切換,而非將該組所有器件切換;
4、能夠?qū)?yīng)主從電路同時(shí)出現(xiàn)多個(gè)異類故障;
5、較大程度提高系統(tǒng)的任務(wù)可靠性。
附圖說明
圖1為本發(fā)明原理框圖。
具體實(shí)施方式
參見圖1,一種基于FPGA的雙余度計(jì)算機(jī)控制系統(tǒng)的設(shè)計(jì)方法,該方法包括:
1】系統(tǒng)上電初始,主CPU獲得所有輸出器件的控制權(quán),F(xiàn)PGA中的切換開關(guān)將FPGA中所有輸出控制器的輸入端切換到主CPU的總線,切換開關(guān)陣列將系統(tǒng)輸出切換到主輸出電路;
2】系統(tǒng)每一路輸入均接入主、從兩路輸入器件,每一路輸入器件的輸出結(jié)果獨(dú)立輸入同一FPGA中;
3】FPGA將每一路流式輸入器件產(chǎn)生的數(shù)據(jù)分別存入2個(gè)內(nèi)部FIFO中。主、從CPU通過總線分別在2個(gè)FIFO的輸出端奪取流式數(shù)據(jù),從2個(gè)不同的Buffer中讀取開關(guān)量數(shù)據(jù);
4】主、從CPU分別比對每一路輸入量的主、從兩路輸入器件的結(jié)果,若均正確則采用主輸入器件的結(jié)果,若主輸入器件的結(jié)果故障則采用從輸入器件的結(jié)果;
5】主、從CPU分別根據(jù)輸入量計(jì)算需輸出的結(jié)果;
6】主CPU計(jì)算的需輸出結(jié)果經(jīng)FPGA中連接輸出控制器的多路開關(guān)寫入FPGA中的輸出控制器,然后從檢查控制及讀取模塊中的數(shù)據(jù)判斷該路輸出工作是否正常,若不正常則操作切換開關(guān)陣列將系統(tǒng)該路輸出切換至從輸出電路的對應(yīng)通道。從CPU讀取并驗(yàn)證輸出控制器中數(shù)據(jù)及主CPU的切換動作,若不正確則切換FPGA中的多路開關(guān)到從CPU總線,即將控制權(quán)切換到從CPU。