?

一種采用FPGA實現的通用看門狗電路

2015-11-24 01:57韓振國
大眾科技 2015年11期
關鍵詞:看門狗計數器寄存器

高 毅 韓振國

(中航工業西安航空計算技術研究所,陜西 西安 710015)

一種采用FPGA實現的通用看門狗電路

高 毅 韓振國

(中航工業西安航空計算技術研究所,陜西 西安 710015)

為了保障嵌入式系統的實時性,提高系統的可靠性,通常采用看門狗電路對系統運行情況進行監控并在必要時對系統進行復位。文章介紹了一種用FPGA實現的看門狗電路,其配置靈活、使用簡便,可以滿足多種系統要求。

看門狗;FPGA

嵌入式系統廣泛應用于工業自動化、醫療儀表、航空航天等領域,其抗干擾能力是衡量系統性能的重要指標,特別是在對可靠性有嚴格要求的機載航空電子系統中,看門狗是保障系統穩定運行的重要手段,可以及時監控嵌入式系統軟件是否在規定的時間內執行了規定的指令,如果發現進入錯誤狀態可以及時發起中斷或復位。

1 看門狗的原理

看門狗是一種監控系統的運行狀況的手段,通過軟硬件結合的方式實現對系統運行狀況的監控。穩定運行的軟件會在執行完特定指令后進行喂狗,若在一定周期內看門狗沒有收到來自軟件的喂狗信號, 則認為系統故障,會進入中斷處理程序或強制系統復位??撮T狗的工作流程見圖1,系統上電后根據不同的工作模式可以選擇使能看門狗的時機,若看門狗被使能則計數器開始計數,如果在設定的時間內沒有及時喂狗則會發生看門狗超時??撮T狗主要由寄存器、計數器和狗叫模塊構成;通過寄存器對看門狗進行基本設置,計數器計算狗叫時間,狗叫模塊決定看門狗超時后發出的中斷或復位方式。

圖1 看門狗工作流程

2 看門狗的實現

用FPGA實現看門狗接線簡單、通用性好,可以根據系統需求進行靈活配置,可以選擇將看門狗功能模塊掛接在不同的系統總線上;看門狗計時分辨率可配置;超時時間可配置;中斷模式可配置;狗叫輸出形式可配置。如圖2所示,FPGA實現的看門狗分三個功能模塊,總線接口模塊、看門狗核模塊和復位模塊,通過修改頂層文件,可以實現對看門狗功能的配置。

圖2 看門狗功能實現圖

總線接口模塊可以通過修改頂層文件實現將看門狗掛接在不同總線上。既可以選擇將看門狗功能模塊掛接在LBE或HLP等異步總線上,也可以掛接在PCI或PCIE等同步總線上,同時支持8位、16位或32位的數據訪問。同時總線接口模塊還完成地址信號、數據信號、讀寫控制信號等信號和看門狗時鐘的同步工作,保障讀寫信號的低電平有效時間大于兩個看門狗時鐘周期;保障寫信號下降沿之后的一個時鐘周期內片選信號和地址信號已經穩定;保障片選信號讀信號地址信號穩定后兩個時鐘周期輸出數據信號穩定。

看門狗核實現看門狗的核心功能,內置計時分辨率、超時時間、看門狗使能、喂狗等寄存器,只需修改寄存器值就可以實現不同的功能配置。

計時分辨率配置,FPGA邏輯中可以靈活選擇接入不同的看門狗時鐘,通過軟件配置分頻因子,設置需要的計時分辨率。例如:如果看門狗時鐘接入的是66MHz,分頻因子配置為66,那么計時分辨率為1us。

看門狗超時時間配置,配置看門狗超時寄存器可以設定看門狗超時時間,即多長時間內沒有進行軟件喂狗操即觸發看門狗叫。如果計時分辨率是1 us, 那么超時時間可以設置成1us~71.5min 的任意值;如果計時分辨率是50ns,那么超時時間可以設置成50ns~3.5min 的任意值。

使能看門狗,產品上電后可以通過向看門狗使能寄存器中寫“1”來使能看門狗。通過這種方式可以控制何時啟動看門狗工作,可以選擇上電即啟動看門狗也可以在某種模式下選擇過一段時間再使能看門狗。一旦看門狗使能則所有配置寄存器變成只讀模式以保障系統穩定運行。

看門狗叫方式配置,通過配置相應的寄存器可以將看門狗中斷模式配置為電平模式或脈沖模式,脈沖寬度可調以滿足不同的系統需求??撮T狗復位信號也提供幾種配置方式:可以選擇狗叫后立即發出復位信號也可以選擇狗叫幾次再發出復位信號;發出的復位信號可以接入如圖2的復位模塊和軟件復位配合發出快速復位信號,也可以直接輸出到外部復位芯片的輸入端以產生較長的復位信號。

表1 通用看門狗寄存器

3 看門狗功能仿真

3.1電平式狗叫方式

根據某系統需求配置看門狗參數如下:看門狗時鐘使用100MHz;分頻系數配置為10,表示看門狗計數器的分辨率是為10 * 10ns = 100ns;設置超時計數器值配置為5,表示看門狗超時時間為5 * 100ns = 0.5us;使能看門狗,超時計數器(cur_timecnt)從5,4,3,… 開始遞減;脈沖寬度寄存器(cur_pulsetimecnt)填全0,即看門狗中斷為電平保持模式;喂狗一次(feed_dog_reg),看門狗超時計數器重新計數一次;超過0.5us不喂狗,即看門狗超時,看門狗中斷信號wdg_int_L出現持續低電平;喂狗后電平升高,看門狗計數器重新計數。狗叫次數上限(cur_dogbarkcnt)設置為3,即發生連續三次看門狗超時即發出復位信號wdg_ResetOut_L。

圖3 電平式狗叫仿真圖

3.2脈沖式狗叫方式

看門狗時鐘、分頻系數、超時計數器的配置與電平式狗叫方式配置為相同。脈沖寬度寄存器(cur_pulsetimecnt)填4,表示采用中斷脈沖模式,脈沖時間為: 4 * 100ns = 0.4us;喂狗一次(feed_dog_reg),超時計數器重新計數一次;超過0.5us不喂狗,看門狗中斷信號wdg_int_L出現持續0.4us的負脈沖,0.4us后脈沖自動撤銷。

圖4 脈沖式狗叫仿真圖

3.3看門狗驅動及測試

以FPGA實現的看門狗電路驅動程序編寫非常簡便,使能看門狗、禁止看門狗、喂狗、設置超時時間等函數都只用向相應的寄存器地址賦值即可。

由于不同系統需求不同,這里只提供一個簡單通用測試方法:看門狗中斷處理函數只做中斷次數加1并打印中斷次數;看門狗測試函數掛接并使能中斷服務程序后進行喂狗、使能看門狗操作,延遲一段時間后檢查中斷次數是否大于1,若中斷次數大于1則認為看門狗超時后能發出中斷信號,看門狗基本功能正常。

4 小結

用FPGA實現看門狗電路配置靈活成本低廉可以滿足大部分系統的需求,能有效監控系統程序運行狀況在程序跑飛時及時保護中斷現場,在突發狀況下及時復位系統避免系統失控。經過多個系統的應用和完善這種看門狗實現方式性能穩定可靠有良好的抗干擾效果,大大提高了系統可靠性。

[1] 王幸之.單片機應用系統電磁干擾與抗干擾技術[M].北京:北京航空航天大學出版社,2006.

[2] 李廣弟,朱月秀.單片機基礎[M].北京:北京航空航天大學出版社,2001.

[3] 王路,王楠.軟硬件結合實現的“看門狗”技術[J].現代電子技術,2006,(8):88-89.

A general watchdog circuit implemented by FPGA

Generally, watchdog is used to monitor operating status of an embedded system and reset it if necessary, for ensuring real-time and improving reliability. This paper introduces a watchdog implemented in FPGA, which can be configured flexibly and is easy to use, to meet the requirement of various systems.

Watchdog;FPGA

TM925

A

1008-1151(2015)11-0001-02

2015-10-11

高毅(1983-),女,中航工業西安航空計算技術研究所工程師,碩士,研究方向為高性能數據信號處理技術。

猜你喜歡
看門狗計數器寄存器
采用虛擬計數器的電子式膜式燃氣表
STM32和51單片機寄存器映射原理異同分析
一種嵌入式計算機系統的看門狗設計
Lite寄存器模型的設計與實現
把他叫醒
計數器競爭冒險及其處理的仿真分析
把它叫醒
把它叫醒
三值絕熱多米諾可逆計數器設計
基于單片機的仰臥起坐計數器
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合