?

基于FPGA的多任務硬看門狗容錯技術

2012-09-21 10:43包明磊姚艷松
單片機與嵌入式系統應用 2012年9期
關鍵詞:看門狗監視系統多任務

包明磊,姚艷松

(國電南京自動化股份有限公司,南京 210061)

引 言

電力系統微機繼電保護裝置作為保證電力系統設備安全運行的自動裝置,對于嵌入式系統自身的可靠性有著很高的要求。多年來,圍繞著保護裝置嵌入式系統的抗干擾技術,以及其受干擾后的自我恢復,在硬件和軟件等方面積累了多種方法。這些方法相互結合,配合使用,有效地提高了系統的可靠性與抗干擾能力[1-2]。

看門狗技術是最常見的抗干擾技術??撮T狗分為硬看門狗和軟看門狗;硬看門狗采用“看門狗”電路,即通過定時器對任務在運行時間上加以約束;軟看門狗采用處理器內部定時器,把任務的最大理論運行時間作為時間約束[2-4]。

以往,在多任務系統中一般設置一個優先級最高的任務作為監視器,對系統中運行的所有任務進行監控,只要有一個任務出現故障,該監視任務就延遲喂狗,使硬看門狗溢出,重啟系統。使用這種方法需要額外消耗嵌入式系統的信號量資源和任務運行時間,減少保護算法的運行時間,且對監視任務要求較高。當中斷運行時間過長時,無法及時恢復[3]。

本文介紹一種多任務硬看門狗容錯技術,通過這種技術,保護裝置嵌入式軟件的所有任務(包括中斷)都可以互相無干擾地對硬看門狗喂狗,可以在確保嵌入式系統運行效率的基礎上,保證系統的安全可靠。

1 多任務硬看門狗容錯技術設計

多任務硬看門狗容錯技術是以硬看門狗芯片為基礎,以FPGA為核心,以外圍電路為輔助,充分考慮保護裝置的需求,共同構成一個可實現監視、告警、自恢復等功能的抗干擾系統,具體原理如圖1所示。保護裝置一般需要運行7~10個任務和2~3個定時中斷,每個任務和中斷均需要確保硬看門狗喂狗可靠,FPGA中的“多任務喂狗監視系統”監視這些任務的喂狗信號,實時統計每個喂狗信號的狀態,只有當所有喂狗信號均有效時,該系統才對硬看門狗發出實際的喂狗信號。若某個任務或者中斷出現故障,該系統會自動停止對硬看門狗的喂狗;如果硬看門狗在設定時間內沒有被喂狗,則發出RESET信號重啟嵌入式系統。此外,本技術包含一個計數器系統,負責統計復位信號的次數,當連續多次出現復位信號,則說明嵌入式軟件發生嚴重故障,該系統發出告警信號通知維修和更換,確保保護裝置的可靠性。

圖1 多任務硬看門狗容錯技術原理框圖

在實際應用中,主CPU和FPGA之間可以通過總線相連,各任務和中斷的喂狗信號可以以命令的形式對“多任務喂狗監視系統”進行喂狗。在整個系統的硬件設計中,計數器告警電路是個難點,本文給出了具體的硬件原理圖,如圖2所示。

圖2 計數器告警電路原理圖

硬看門狗MAX823S是Maxim公司推出的小體積、低功耗的看門狗芯片。該芯片若在1.6s內沒有被觸發WDI,則引 腳 發 出 200ms的 低 電 平 信 號[4]。SN74HC393DT為計數器,SN74HC32D為或門。MAX823S的WDI引腳接收“多任務喂狗監視系統”的喂狗信號引腳產生的復位信號不僅重啟系統,同時接入SN74HC32D的輸入端。SN74HC32D的輸出接計數器SN74HC393DT的CLK引腳,SN74HC393DT的Q2引腳可以發出告警信號,同時接入SN74HC32D的輸入端作為閉鎖信號。SN74HC393DT的MR引腳可以接入CPU的PIO引腳,由CPU對其定時初始化。

當嵌入式系統正常工作的時候,CPU可以不停地發送計數器清零信號、復位告警信號;當嵌入式系統發生故障時,硬看門狗在設定時間內沒有收到“多任務喂狗監視系統”的喂狗信號 WDI,發出的復位信號產生脈沖,計數器對這個脈沖進行計數;當嵌入式系統連續發生故障無法恢復時,一方面無法發出清零信號對計數器清零,另一方面硬看門狗持續發出復位信號,當復位信號的次數超過4次時計數器SN74HC393DT的Q2引腳有效,發出告警信號,同時該信號將閉鎖CLK的輸入信號,防止計數器溢出。

2 多任務喂狗監視系統的設計

多任務喂狗監視系統是整個容錯技術的核心,考慮到保護裝置的需求,要求該系統運算速度快、延時小、支持多任務并行處理。由于FPGA兼容了PLD和通用門陣列的優點,除了具有體系結構和邏輯單元靈活、集成度高,以及電壓適用范圍寬等特點外,還具有設計開發周期短、設計制造成本低、移植方便等優點。為了保證監視系統的實時性和可移植性,本設計選用FPGA實現該系統[5]。

在對FPGA芯片進行開發編程時,由于Verilog HDL語言且具有設計技術齊全、方法靈活、支持廣泛、硬件描述能力強、易于共享和復用等優點,因此多任務喂狗監視系統使用Verilog HDL語言進行開發[6]。

根據容錯技術的設計思路,考慮到實用性、可靠性和拓展性,監視系統的設計重點解決以下問題:

① 該系統可以靈活設置需要監視的喂狗命令接點(一個命令接點受一個任務或者中斷控制),并確保禁止的喂狗命令接點不會影響WDI信號的輸出;

② 該系統要具有自喂狗功能,即在配置不需要監視任何喂狗命令接點時,還能夠自行喂狗,防止系統崩潰;

③ 該系統應能夠方便可靠地增減可配置的喂狗命令接點的數量。

針對上述問題,本設計采用模塊化設計的思路,將系統設計分成兩個部分:命令接點監視模塊和WDI產生模塊。

2.1 命令接點監視模塊

命令接點監視模塊可以使能和監視指定的喂狗命令接點。它是一個公共模塊,輸入量為初始化信號rst、清零信號clr、喂狗命令接點地址等等,輸出量是使能狀態enable和喂狗狀態status。

當嵌入式軟件需要使能或者禁止某個喂狗命令接點時,該模塊可以通過命令解析改變使能狀態enable;當嵌入式軟件通過命令對某個喂狗命令接點喂狗時,該模塊改變喂狗狀態status;此外該模塊還可以接收clr信號對喂狗狀態進行復位。其核心代碼如下所示:

由最后一條代碼可見,由于喂狗狀態受使能狀態的控制,因此當禁止某個喂狗命令接點時,該命令接點的喂狗狀態可以保持有效,從而確保禁止的喂狗命令接點不會影響到WDI信號的輸出。

2.2 WDI產生模塊

WDI產生模塊負責調用命令接點監視模塊,監視每一個喂狗命令接點,統計所有喂狗命令接點的喂狗狀態,并決定是否發出WDI信號,軟件流程如圖3所示。

圖3 WDI產生模塊的軟件流程

其中,如何識別喂狗狀態并發出WDI信號是個技術關鍵點,本系統定義一個喂狗信號總狀態TotalStatus,它是由各個喂狗命令接點的喂狗狀態“與”門組合而成。當判斷該狀態有效時,則發出一段時間的WDI信號,并清除所有喂狗命令接點的喂狗狀態,啟動下一輪的監視;當禁止監視所有的喂狗命令接點時,該狀態恒定有效,一直發出WDI信號。

為了實現上述功能,本系統事先產生一個固定周期的脈沖波形WDIPulse,并設計一個由TotalStatus觸發的單穩信號 WDIGate,由 WDIGate閉鎖和使能 WDIPulse的輸出達到控制WDI信號的目的。具體的核心代碼如下所示:

可見,TotalStatus的上升沿可以觸發至少8個clock的單穩信號。在這段時間內系統可以輸出WDI信號對硬看門狗喂狗,在TotalStatus有效后的第7個clock時,模塊清除各個喂狗命令接點的喂狗狀態,確??梢员O視下一輪喂狗信號。當禁止了所有的喂狗命令接點時,由于TotalStatus不受clr信號控制,使得 WDIGate一直有效,系統自行喂狗,防止系統崩潰。當要增加或者刪減喂狗命令接點數量(目前為20個)的時候,只需要修改程序,增加或者刪減相應的寄存器和調用代碼即可,方便且安全可靠。由于FPGA的并行處理能力,增加監視的接點數量,系統延時不變。

2.3 算法仿真及分析

為了驗證算法中監視和喂狗的效果,我們使用仿真工具對多任務喂狗監視系統進行了驗證仿真,其仿真結果如圖4所示。

圖4 多任務喂狗監視系統的仿真結果

圖4中,監視了4個喂狗命令接點。其中,WDI0為定時中斷的喂狗信號,WDI1~WDI3為普通任務的喂狗信號。在這輪監視中,WDI0的喂狗狀態在t1時有效,WDI1的喂狗狀態在t2時有效,則喂狗信號總狀態TotalStatus在t2時有效,并觸發單穩信號WDIGate。在單穩信號有效期間,WDI輸出;同時,TotalStatus信號在t3時清除了各個喂狗命令接點的喂狗狀態,啟動下一輪監視。

仿真結果表明,多任務喂狗監視系統可以有效監視各任務發出的喂狗信號,并根據喂狗信號的狀態發出正確的WDI信號,能夠滿足嵌入式系統對可靠性的要求。

結 語

本文介紹了一種應用于電力系統繼電保護裝置內的基于FPGA的多任務硬看門狗容錯技術,實現了對嵌入式系統多任務的硬看門狗監視。文章在闡述了該技術的設計原理基礎上,給出了具體的軟硬件實現方案。該技術與傳統的硬看門狗和多任務軟看門狗技術相比,有以下優點:

① 可直接監視定時中斷和所有任務,監視范圍廣;

② 無需消耗嵌入式軟件額外的信號量資源和任務運行時間,且每個任務的最大喂狗間隔時間相同;

③ 配置靈活,可方便增加監視的任務數量,理論上無上限,且系統延時不變;

④ 對嚴重故障的嵌入式軟件,系統可以發出告警信號,便于維修和更換;

⑤ 可以自監視,可靠性高。

多任務硬看門狗容錯技術已被應用于最新的繼電保護裝置中,測試結果表明,該技術可以大大提高保護裝置嵌入式系統的可靠性,具有較高的應用參考價值。

[1] 何立民.單片機高級教程[M].北京:北京航空航天大學出版社,2000.

[2] 易麗華.“看門狗”技術的實現[J].儀表技術,2011(7):55-57.

[3] 戴積發,胡玉霞,李緒勇,等.基于uC/OS-II操作系統的多任務看門狗設計[J].衡水學院學報,2009,11(4):31-33.

[4] 王璐,王楠.軟硬件結合實現的“看門狗”技術[J].現代電子技術,2002(3):43-45.

[5] 田耕,徐文波.Xilinx FPGA開發實用教程[M].北京:清華大學出版社,2008.

[6] 夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2008.

猜你喜歡
看門狗監視系統多任務
一種嵌入式計算機系統的看門狗設計
北極監視系統
把他叫醒
視頻監視系統新型終端設備接入方案
基于中心化自動加權多任務學習的早期輕度認知障礙診斷
基于判別性局部聯合稀疏模型的多任務跟蹤
基于多任務異步處理的電力系統序網絡拓撲分析
一類完全由內積構造的多任務核的幾個性質
創新的攝像監視系統取代車外和車內后視鏡
把它叫醒
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合