單片機(jī)開發(fā)
- 首頁 >> 電子技術(shù) >> 單片機(jī)開發(fā)
單片機(jī)看門狗技術(shù)
單片機(jī)系統(tǒng)中的看門狗技術(shù)實現(xiàn)方法
一、單片機(jī)與看門狗技術(shù)概述
單片機(jī)系統(tǒng)在軍事、工業(yè)、民用產(chǎn)品中的應(yīng)用越來越廣。它將許多以往硬件實現(xiàn)的功能由軟件來完成,體積小巧、功能豐富、智能化程度高、但由于單片機(jī)系統(tǒng)的工作現(xiàn)場比較復(fù)雜,存在來自系統(tǒng)內(nèi)部與外部的各種電氣干擾,除此以外還受到系統(tǒng)結(jié)構(gòu)、制造工藝、元器件的選擇與安裝的影響,這些都是單片機(jī)系統(tǒng)的干擾因素,對系統(tǒng)的可靠性方面帶來許多問題。這些干擾會導(dǎo)致單片機(jī)程序飛到一個臨時構(gòu)成的死循環(huán)或PC指針落到程序存儲器芯片地址之外。這種情況下冗余指令和軟件陷阱都無法解決,系統(tǒng)將完全癱瘓。在這種情況下,只有復(fù)位。因此看門狗技術(shù)就是一個能發(fā)出復(fù)位信號的定時器電路。設(shè)置看門狗是防止單片機(jī)死機(jī)、提高單片機(jī)系統(tǒng)抗干擾性能的一種重要途徑,看門狗技術(shù)可以分為單時限看門狗、雙時限看門狗,定時復(fù)位看門狗。本文主要介紹看門狗技術(shù)的實現(xiàn)方法及原理。
目前最廣泛的看門狗電路實際上是一個特殊的定時器電路??撮T狗按固定速率計時,計滿預(yù)定時間就發(fā)出溢出脈沖使單片機(jī)復(fù)位。如果每次在定時器溢出前強(qiáng)行讓定時器清零,就不會發(fā)出溢出脈沖。清零脈沖由CPU發(fā)出,在單片機(jī)中看門狗不會溢出。一旦程序進(jìn)入一個不含喂狗語句的死循環(huán)。本文稱這種看門狗為典型看門狗,典型看門狗已被集成化,如MAX706,MAX791,X5045等,還有許多單片機(jī)本身集成了這種看門狗,如NXP公司的P89C669,P89V51RD2等單片機(jī),具體電路可參閱這些芯片的技術(shù)資料。下面將以X5045為例來介紹單時限及雙時限看門狗實現(xiàn)方式。
二、單時限看門狗
只使用單個看門狗定時器來控制單片機(jī)復(fù)位端的方式稱為單時限看門狗,在電路實現(xiàn)上較為簡單,一般情況下可以有效的控制單片機(jī)系統(tǒng)正常工作。圖1給出了以X5045看門狗芯片實現(xiàn)的單時限看門狗硬件電路圖。圖中單片機(jī)的P1.0為X5045提供片選信號,P1.1接收X5045的串行數(shù)據(jù),P1.2提供串行時鐘,P1.3向X5045發(fā)送串行數(shù)據(jù),X5045的RST引腳與單片機(jī)的RST引腳相連,用于復(fù)位單片機(jī)。單片機(jī)控制程序中,每隔一定的時間間隔放置一條“喂狗”指令,該時間間隔小于X5045預(yù)制的定時時間,以保證程序正常運(yùn)行時X5045不會溢出;而程序一旦出現(xiàn)異常,X5045將超時溢出,并通過RST引腳送出一個復(fù)位信號是單片機(jī)復(fù)位,重新開始運(yùn)行程序。
三、雙時限看門狗
有一個錯誤觀點:加了一個看門狗,單片機(jī)就不會死機(jī)。實際上,看門狗有時會完全失效。當(dāng)程序進(jìn)入某個死循環(huán),而這個死循環(huán)中又包含喂狗語句,這時看門狗始終不會溢出,單片機(jī)始終得不到復(fù)位信號,程序也就始終跳不出這個死循環(huán)。針對這一弊端,就需設(shè)計一個雙時限看門狗系統(tǒng)。圖2給出了雙時限看門狗硬件電路。在單時限看門狗的基礎(chǔ)上增加了一路X5045看門狗芯片,兩路看門狗以或門形式接入到單片機(jī)的RST引腳。只要有一路X5045超時溢出,則使單片機(jī)復(fù)位。
雙時限看門狗有兩個定時器:一個為短定時器,一個為長定時器。短定時器定時為T1,長定時器定時為T2,0<T1≤T2;長、短定時器的喂狗是各自獨立的。短定時器像典型看門狗那樣工作,它保證一般情況下看門狗有快的反映速度;長定時器的定時T2大于CPU執(zhí)行一個主循環(huán)程序的時間,并且每一個主循環(huán)才喂狗一次,用來防止看門狗失效。
這樣,當(dāng)程序進(jìn)入某個死循環(huán),如果這個死循環(huán)包含短定時器喂狗語句而不包含長定時器喂狗語句。那么長定時器終將溢出,使單片機(jī)復(fù)位。巧妙安排長定時器喂狗語句的位置,可保證出現(xiàn)死機(jī)的概率極低。
目前幾乎所有的看門狗都是依賴于CPU(依賴于CPU喂狗)。這可以比作:一個保險設(shè)備能否起到保險作用還依賴于被它保護(hù)的對象的行為。顯然,依賴于CPU的看門狗是不能保證單片機(jī)百分之百不死機(jī)的。
四、定時復(fù)位看門狗
定時復(fù)位看門狗的主體也是一個定時器,到預(yù)定時間就發(fā)出溢出脈沖,此溢出脈沖使單片機(jī)強(qiáng)行復(fù)位。定時復(fù)位看門狗不需要CPU喂狗。
簡言之,定時復(fù)位看門狗就是定時地讓單片機(jī)強(qiáng)行復(fù)位。這樣,即使裝置死機(jī),其最大死機(jī)時間也不會大于定時器的定時時間。顯然,只有硬件完好,這種看門狗百分之百地保證了單片機(jī)不會長時間死機(jī)。
比較常用的是以555定時器作為看門狗與單片機(jī)的RST相連接,如圖3所示,上電時通過電阻R1和R2對C4充電后3腳輸出低電平,單片機(jī)上電復(fù)位,開始正常工作。通過調(diào)節(jié)電阻R2的阻值可以調(diào)整555定時器輸出電平的時間T,使之滿足單片機(jī)復(fù)位的時間要求,555輸出的時間應(yīng)能夠滿足單片機(jī)一次主循環(huán)的工作時間,使單片機(jī)能夠能夠完整的工作。
結(jié)語
本文簡單介紹了比較典型的幾種看門狗工作方式及原理,在具體設(shè)計過程中,應(yīng)考慮實際需求,采用最適合自己的看門狗設(shè)計方案,獲得更好的抗干擾效果。相反設(shè)計不合理的看門狗系統(tǒng),不但不能提供系統(tǒng)的可靠性,反而會導(dǎo)致系統(tǒng)不能正常工作,所以在進(jìn)行單片機(jī)系統(tǒng)設(shè)計時,看門狗設(shè)計作為重要的考慮對象。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的單片機(jī)系統(tǒng)中的看門狗技術(shù)實現(xiàn)方法詳情。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
注:部分圖片內(nèi)容來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除。
- 返回頂部