?

基于CPLD的系統硬件看門狗設計

2012-09-25 02:59王首浩劉俊琴
單片機與嵌入式系統應用 2012年4期
關鍵詞:看門狗低電平波形

王首浩,劉俊琴

(北京精密機電控制設備研究所 燃氣液壓事業部公司,北京 100076)

引 言

在以單片機、DSP等處理器為核心的數字系統中,看門狗是不可缺少的一部分,特別是在對可靠性要求極高的系統中,如箭上伺服控制器,由于箭體內強弱電交叉使用,或者地面測試環境復雜多變,會產生諸多干擾和輻射。它們的沖擊會使CPU在執行指令時的地址碼或操作碼發生變化,甚至將操作數作為操作碼執行,導致程序跑飛。為使系統在規定時間內重新正常工作,一種有效的措施是采用硬件看門狗技術。

本設計的最初思路來源:實現高可靠性數字伺服控制器軟、硬件看門狗的雙冗余設計要求,目前缺少軍品級國產化硬件看門狗器件,在滿足系統要求的情況下減少元器件的種類。

1 看門狗技術的實現方式

看門狗實現方式可分為以下兩種:

硬件看門狗——采用一個獨立于CPU的定時器電路或芯片,如MAX706或TPS3823等,周期性地產生復位脈沖,而CPU必須及時“喂狗”(在復位脈沖發出前對此定時器進行清零處理),否則看門狗發揮作用,復位脈沖會使CPU重啟。

軟件看門狗——利用CPU內部的定時器中斷替代看門狗定時器電路,在中斷程序中復位CPU,這同樣發揮了看門狗的作用。但由于CPU中斷存在優先級、屏蔽以及中斷自身故障等原因,都可能導致軟件看門狗工作異常。軟件看門狗往往采用一些其他軟件設計措施提高其可靠性。

2 基于CPLD的硬件看門狗設計

2.1 硬件平臺

此設計基于箭上數字伺服控制器,以TI公司的TMS320F2812(下面簡稱為DSP)為控制核心,SM1032則用來實現對A/D、D/A和1553B總線的片選信號和邏輯控制信號譯碼,并在此基礎上增加了硬件看門狗功能。與其相關的電路連接如圖1所示,其中看門狗使能信號EN與DSP_JTAG電路相連,在DSP下載程序或在線仿真時可通過專用的JTAG工裝電纜禁止看門狗功能,防止看門狗的誤操作。

圖1 TMS3320F2812電路連接圖

本設計適用于以微控制器與FPGA或CPLD聯合使用的數字控制系統中。利用FPGA或CPLD的剩余資源設計看門狗模塊,相當于硬件看門狗的一種,其基本功能和特點有:當軟件跑飛且主控芯片內部看門狗工作異常時,可為系統進行復位操作;可關閉主控芯片內部的軟件看門狗,優化軟件代碼;可節省專用的看門狗芯片,且在不同時序要求上靈活修改;可根據系統要求增加與主控芯片的握手信號。

2.2 DSP上電過程及復位時序分析

DSP上電初始化時序如圖2所示。WDT是喂狗信號輸出,在定時器中斷或主循環中使其電平周期性取反;RST是上電復位信號。Trst是上電復位信號的脈寬,約為100ms;Twork是從上電時到首次進入定時器中斷程序的時間,約為130ms。在主程序中首先使WDT輸出低電平,則從上電復位完成到WDT變為低電平的時間A為DSP復位后自身的各項配置所占用的時間。在定時器中每次取反WDT信號,則到WDT第一次變為高電平的時間B為各軟件模塊及中斷初始化所占用的時間。A+B為系統初始化所用的時間,約為30ms。

圖2 DSP上電初始化時序

由此可見,如果系統程序跑飛,則每次復位都要經過A、B兩個過程,約30ms的時間;那么在CPLD軟件的看門狗模塊中,每次在給出復位信號后都要等待DSP的初始化完成(約30ms)后再開始對喂狗信號監測并計時。

選擇看門狗定時器溢出上限以5ms為例,從程序跑飛到重新正常運行大約35ms。設定控制系統給伺服發送控制指令信號的周期是20ms,伺服機構常態速度10°/s,最大速度是20°/s,20ms的時間擺動的角度是0.2°和0.4°,該角度是其控制姿態的最小步長,因此35ms以內的熱復位時間最多丟失兩條指令,伺服機構在可控范圍之內。此外,軟件代碼還有一定的優化余量,初始化時間和看門狗定時器溢出上限還可進一步減少。

2.3 看門狗設計要考慮的幾點問題

①喂狗方式:可分為電平喂狗和邊沿喂狗,本設計采用后者。與電平喂狗相比較,邊沿喂狗在狀態機的設計中可以減少狀態數量,從而節省CPLD資源,且DSP的喂狗也很容易,只要取反WDT電平,就可被認為已喂狗,簡化軟件代碼。

②定時器溢出上限:根據具體需要靈活設定,這里暫定5ms。

③輸出系統復位信號脈寬:這里只要超過DSP所需的512個時鐘周期即可,以30MHz晶振為例,時長約為171μs。

④系統上電初始化時間:系統上電復位后DSP需要一斷時間初始化,而這段時間內不能喂狗,所以CPLD不能檢測是否有喂狗信號,否則會造成連續的錯誤復位,使DSP無法正常工作,因此在CPLD代碼設計時需要越過初始化階段再去檢測喂狗信號。

⑤與主控芯片的握手信號:根據系統任務需求,可增加與主控芯片的握手信號。例如,當主控芯片需要實現總線寫程序功能時,對DSP片內的Flash進行寫操作,此時不能對DSP進行復位,DSP也無法輸出喂狗信號,這就需要在總線寫程序之前通過總線與CPLD實現握手與應答,關閉看門狗功能,程序寫入完成后系統重新加電即可正常工作。為了簡化功能描述,本設計未加入握手設計。

2.4 看門狗狀態機的設計

此設計采用Mealy型狀態機,使用Verilog HDL語言編寫代碼,信號、寄存器說明如下所示:Count,時間計數器;NUM1,定時器溢出上限(5ms);NUM2,輸出復位脈沖寬度(大于171μs);NUM3,上電復位后等待DSP初始化的時間(30ms);WDT_flag,3位寬移位寄存器,接收喂狗信號,比較首末位是否相等來判斷是否有喂狗信號;SYS_RST,看門狗輸出的系統復位信號;WAIT、IDLE、ADDING、ERROR、KEEPING,狀態機的5個狀態;EN,看門狗功能使能信號,高電平禁止,低電平使能。

圖3 狀態轉移圖

圖4 仿真波形1

圖3為狀態轉移圖。在任意狀態時如果EN使能信號被禁止,則狀態機進入IDLE狀態。在圖上不一一標出EN的條件轉移曲線。系統上電復位后進入WAIT狀態,等待NUM3時間使DSP完成初始化;進入IDLE狀態,如使能看門狗功能;進入ADDING狀態累加計時,如果在限定時間NUM1內監測到喂狗信號,表明程序運行正常,返回IDLE狀態等待下一次喂狗信號,如果超過NUM1未收到喂狗信號,認為程序已經跑飛,進入EEROR狀態;EEROR狀態中輸出復位信號并清零計數器;進入KEEPING狀態,使低電平保持一段時間NUM2,這段時間超過DSP所需的復位時間即可;進入WAIT狀態,復位后重新等待DSP完成初始化,循環往復。

3 基于CPLD的硬件看門狗的仿真與驗證

3.1 功能仿真

使用Modelsim軟件進行功能仿真,可以看出EN信號和 WDT(喂狗信號)的變化對SYS_RST輸出的影響。編寫測試文件對EN使能、禁止,WDT信號喂狗間隔小于、大于定時器溢出上限,以及不喂狗等情況進行仿真。

仿真波形1如圖4所示。EN處于使能狀態,WDT在限定時間內有邊沿變化時,對應的移位寄存器也發生變化,使 WDT_flag[2]?。絎DT_flag[0],喂狗成功,不會輸出復位信號;在SYS_RST第二個低電平處,對應的WDT超過了限定時間沒有變化,故輸出復位信號。

仿真波形2如圖5所示。由仿真波形可看出,在EN高電平時,不會輸出喂狗信號,使能信號測試通過,喂狗信號在EN使能時如不能在限定時間內喂狗,則輸出系統復位信號。由仿真波形看出功能得到實現。

3.2 硬件平臺驗證

在伺服控制器上對基于CPLD的硬件看門狗功能進行驗證。DSP上電初始化完成后,先正常輸出喂狗信號一段時間,然后停止輸出喂狗信號,通過示波器捕獲CPLD輸出的系統復位信號,波形如圖6所示,光標1是系統復位信號SYS_RST波形,光標2是DSP輸出的喂狗信號WDT波形。從波形圖前半段可以看出,WDT正常喂狗時,SYS_RST保持高電平,當WDT保持高電平一段時間后SYS_RST輸出低電平,實現系統復位。復位后經過一段時間的初始化過程后,WDT開始正常喂狗。

圖5 仿真波形2

圖6 看門狗實現復位的波形圖

通過以上軟件的功能仿真和硬件平臺上的驗證,可以看出,基于FPGA/CPLD的系統外部硬件看門狗的功能得到實現,與預期目標吻合。

結 語

在數字伺服控制系統中,利用其中已包含的CPLD或FPGA電路設計硬件看門狗模塊,既可以滿足系統對硬件看門狗功能的需求,又可以節省專用的看門狗芯片,節省電路板的空間,提高了系統的可靠性,提高了可編程邏輯器件的資源利用率,并且可以針對不同的系統上電、復位等時序要求靈活配置時間參數。經驗證,設計達到了看門狗電路的功能要求,能夠有效保證軟件的可靠性,亦可應用于其他數字控制系統平臺。

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

[2]劉發志,張東,楊艷,等.基于DM642的看門狗電路設計與應用[J].船艦電子工程,2008(1):120-122.

[3]高志遠,陳永華,龔迎智,等.看門狗及其衍生技術在廠站自動化系統中的應用[J].電力系統自動化,2007(12):246-249.

猜你喜歡
看門狗低電平波形
一種嵌入式計算機系統的看門狗設計
把他叫醒
基于LFM波形的靈巧干擾效能分析
2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
用于SAR與通信一體化系統的濾波器組多載波波形
淺談物理電路與數字電路
15-MeV電子直線加速器的低電平系統
基于ARM的任意波形電源設計
雙絲雙正弦電流脈沖波形控制
把它叫醒
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合