新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機看門狗電路的作用,看門狗系統設計技巧及其抗干擾措施

        單片機看門狗電路的作用,看門狗系統設計技巧及其抗干擾措施

        作者: 時間:2018-07-31 來源:網絡 收藏

        在由構成的微型計算機系統中,由于的工作常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環,程序的正常運行被打斷,由控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的后果,所以出于對單片機運行狀態進行實時監測的考慮,便產生了一種專門用于監測單片機程序運行狀態的芯片,俗稱“”(watchdog)

        本文引用地址:http://www.104case.com/article/201807/384555.htm

        其作用是使單片機可以在無人狀態下實現連續工作,其工作原理是:芯片和單片機的一個I/O引腳相連,該I/O引腳通過程序控制它定時地往的這個引腳上送入高電平(或低電平),這一程序語句是分散地放在單片機其他控制語句中間的,一旦單片機由于干擾造成程序跑飛后而陷入某一程序段 進入死循環狀態時,寫看門狗引腳的程序便不能被執行,這個時候,看門狗電路就會由于得不到單片機送來的信號,便在它和單片機復位引腳相連的引腳上送出一個復位信號,使單片機發生復位,即程序從程序存儲器的起始位置開始執行,這樣便實現了單片機的自動復位。

        單片機看門狗電路的作用

        看門狗的作用: 看門狗定時器是一個計數器,基本功能是在發生軟件問題和程序跑飛后使系統重新啟動。看門狗計數器正常工作時自動計數,程序流程定期將其復位清零,如果系統在某處卡死或跑飛,該定時器將溢出,并將進入中斷。在定時器中斷中執行一些復位操作,使系統恢復正常的工作狀態,即在程序沒有正常運行期間,如期復位看門狗以保證所選擇

        的定時溢出歸零,使處理器重新啟動。軟件的可靠性一直是一個關鍵問題。任何使用軟件的人都可能會經歷計算機死機或程序跑飛的問題,這種情況在嵌入式系統中也同樣存在。由于單片機的抗干擾能力有限,在工業現場的儀器儀表中,常會由于電壓不穩、電弧干擾等造成死機。在水表、電表等無人看守的情況下,也會因系統遭受干擾而無法重啟。為了保證系統在干擾后能自動恢復正常,看門狗定時器(Watchdog TImer)的利用是很有價值的。

        現今市面上流行的一些單片機,多嵌有內部WDT,如TI的MSP430系列,Philips的P87XXX和P89XXX系列,Microchip的PIC列,Atmel的AT89SXX系列和Holtek公司的Htxxx系列。但是這些內部看門狗在工作時,多存在一定的誤差。一些工程師在設計的過程中,由于忽略了這一點,導致系統出現異常。MSP430系列單片機是美國德州儀器公司(TI)近幾年開發的新一代單片機,該系列是一款16位、具有精簡指令集、超低功耗的全新概念混合型單片機。在眾多單片機系列中,由于它具有極低的功耗、豐富的片內外設和方便靈活的開發手段,已成為一顆耀眼的新星。其內部自帶看門狗及復位電路,理論上如果程序跑飛,可用看門狗將其復位。但在實際使用過程中,發現看門狗的作用并非萬無一失,以下實驗證明了這一點。實驗電路如圖1所示。


        試驗程序清單:

        #include《msp430x12.h》

        void main(void){

        p1dir l=0x0f; //設置p1.2-.p1.0為輸出

        for(;;){

        volaTIle unsigned int i;

        wdtctl=wdtpw+wdtcncl;

        //復位wdt

        piout==0x0t;

        i=5000;

        do(i--)

        while(i!=0);

        }}

        上述實驗啟動后,如果程序正常運行,LED會閃爍。缺省時,MSP430的看門狗是允許狀態,所運行的程序會不斷地訪問看門狗。理論上,這個系統是不會發生啟動失敗的,因為即使啟動失敗,看門狗也應該在數百毫秒內啟動,復位整個系統。基于這種思想,對單片機的復位進行測試。K2斷開,用K1連續產生。Reset信號,測試看門狗使系統重啟的成功率。K2閉合,則reset端高電平,理論上K1不能有效產生復位脈沖,觀察看門狗是否起作用。

        實驗結果與分析

        實驗結果如下:K2斷開,連續開關K1,上電重啟系統,平均155次失敗1次(LED不閃),即看門狗失效概率0.6%;K2閉合,連續開關K1,平均18次失敗1次(LED不閃),且一旦失敗,將連續失敗下去,看門狗無效率占到了約5.5%。另外,當采用同樣具有內置看門狗的其他系列單片機替代實驗中的MSP430,啟動程序段作相應修改時,實驗結果仍大致相同,這說明具有內置看門狗的單片機面臨的問題是相同的。經分析可能有如下原因:

        ①由于看門狗的時鐘不獨立,計數時鐘與系統為同一分頻鏈路,因此看門狗不能在系統出現問題時有效運作。

        ②由于時鐘可用軟件設置,啟動失敗時,開機時鐘可能處于空檔,沒有時鐘看門狗不能生效。

        ③有些看門狗需要用軟件設置或啟動,因此啟動失敗后,初始化程序沒有激活,CPU可能跳轉到隨機代碼,使看門狗被禁止。這樣的看門狗是需要有可靠的上電復位作保證的,因此,從理論上講,原設計存在著不合理性。基于上述分析,采用片外看門狗專用芯片TPS3823由獨立的分頻振蕩電路提供計數脈沖。實驗電路如圖2所示。


        上述電路中,TPS3823輸出定時溢出信號給Reset端。程序段中,CPU要不斷地通過I/O口輸出喂狗信號,使看門狗計數器清零。在此電路中重復上述試驗中K1、K2的相同動作,系統重啟成功率達到100%。

        未來的內置看門狗必須有獨立可靠的時鐘。系統上電后,看門狗即為允許狀態,無需軟件設置,它只能被外部硬件跳線或內部熔絲(fuse)所禁止。目前,如果要求設計可靠性較高的嵌入式系統,外置看門狗是必須考慮的。內置看門狗的另一問題是系統復位后,程序應判斷是由Reset端正常上電復位,還是程序跑飛看門狗所致,由此確定現場數據是否應該保留。這也是在看門狗應用中所應考慮的。

        看門狗系統設計技巧

        外部看門狗是嵌入式系統工程師工具箱里重要且關鍵的工具,然而為了捕捉到故障,且預防故障的發生,看們狗必須設計得當。因此設計一個看門狗系統時應考慮以下5個秘訣。

        技巧1—監測心跳


        上一頁 1 2 3 下一頁

        關鍵詞: 看門狗 單片機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 巫溪县| 银川市| 罗田县| 唐山市| 大厂| 姜堰市| 曲松县| 韩城市| 胶南市| 巨野县| 嘉鱼县| 清丰县| 偃师市| 金门县| 饶平县| 秭归县| 界首市| 东丰县| 广灵县| 固镇县| 阳城县| 英超| 湄潭县| 宜都市| 黑山县| 江津市| 连江县| 太白县| 青阳县| 三穗县| 淮安市| 衡东县| 正定县| 汝州市| 凤翔县| 丁青县| 镇宁| 廊坊市| 利辛县| 上高县| 奉新县|