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