單片機(jī)看門狗電路的作用,看門狗系統(tǒng)設(shè)計(jì)技巧及其抗干擾措施
一個(gè)外部看門狗須具備的最簡(jiǎn)單功能是監(jiān)測(cè)由主應(yīng)用處理器產(chǎn)生的一個(gè)定期“心跳(Heartbeat)”信號(hào),以及在心跳異常時(shí)發(fā)出一個(gè)錯(cuò)誤信號(hào)。心跳監(jiān)測(cè)可做為兩種不同的用途:首先,在經(jīng)過(guò)已在軟件執(zhí)行的功能檢查之后,微控制器(MCU)應(yīng)該只是生成心跳,以確保軟件的正常工作。第二,如果系統(tǒng)的實(shí)時(shí)響應(yīng)已受到損害,心跳應(yīng)該要能顯示出來(lái)。
本文引用地址:http://m.butianyuan.cn/article/201807/384555.htm為軟件功能和實(shí)時(shí)響應(yīng)監(jiān)測(cè)心跳,可透過(guò)一個(gè)使用簡(jiǎn)單,“啞巴(Dumb)”的外部看門狗。外部看門狗應(yīng)該有沿著一個(gè)心跳必須出現(xiàn)的窗口的能力調(diào)派一個(gè)心跳周期,心跳窗口的作用是當(dāng)系統(tǒng)的實(shí)時(shí)響應(yīng)受到損害時(shí),允許看門狗進(jìn)行檢測(cè)。而在該功能或?qū)崟r(shí)檢查失敗的情況下,看門狗會(huì)試圖透過(guò)應(yīng)用處理器的重置來(lái)恢復(fù)系統(tǒng)。
技巧2—采用一個(gè)低效能MCU
簡(jiǎn)易基于定時(shí)器的外部看門狗可在相對(duì)低成本的狀況下監(jiān)控心跳,但這會(huì)嚴(yán)重限制看門狗系統(tǒng)的能力和恢復(fù)的可能性。其實(shí),低效能微控制器就可以做為外部看門狗的定時(shí)器,所以何不為看門狗增添一些智能且采用微控制器呢?微控制器的固件(Firmware)可被開發(fā)用來(lái)滿足增加許多功能的心跳監(jiān)測(cè)窗口所需。
一個(gè)“聰明”的看門狗有時(shí)被稱為監(jiān)督者或安全看門狗,且已在不同的產(chǎn)業(yè),如汽車領(lǐng)域?qū)嶋H使用了許多年;另外,通常基于微控制器的看門狗以被主要用于安全關(guān)鍵應(yīng)用。目前開發(fā)工具已相當(dāng)可用且硬件成本也低,這樣的設(shè)計(jì)具成本效益,且在其他的應(yīng)用中亦是如此。
技巧3—監(jiān)督關(guān)鍵的系統(tǒng)功能
使用一個(gè)小微控制器作為看門狗的決定,可開啟看門狗該如何使用的無(wú)限可能。其中可賦予智能看門狗的第一個(gè)角色通常是監(jiān)督的重要系統(tǒng)功能,如系統(tǒng)電流或傳感器狀態(tài)??撮T狗如何能監(jiān)督電流的一個(gè)例子是,采取一個(gè)電流的獨(dú)立測(cè)量,并提供監(jiān)測(cè)值給應(yīng)用處理器,之后,應(yīng)用處理器可比較看門狗與自身讀取到的數(shù)值。若是兩者之間有分歧,則系統(tǒng)將執(zhí)行故障樹(FaultTree)此一被應(yīng)用程序視為適當(dāng)?shù)姆绞健?/p>
技巧4—觀察一個(gè)信道
有時(shí)嵌入式系統(tǒng)可像個(gè)看門狗且應(yīng)用處理器也可以如期工作,但外部的檢查員是處于非響應(yīng)的狀態(tài)。在這樣的狀態(tài)下,綁定智能看門狗到一個(gè)信道如通用異步收發(fā)器(UART)是可行的。當(dāng)看門狗被連接到信道時(shí),不僅可以監(jiān)控通道流量,還可以接收對(duì)看門狗而言的特定指令。
在這方面一個(gè)很好的例子是專為小型衛(wèi)星設(shè)計(jì)的看門狗,其可監(jiān)視飛行器計(jì)算機(jī)和地面基地臺(tái)間的無(wú)線電通信。如果飛行器計(jì)算機(jī)變得不響應(yīng)無(wú)線電,看門狗將接收到一個(gè)命令,然后執(zhí)行并重置飛行器計(jì)算機(jī)。
技巧5—考慮外部定時(shí)重置功能
采用一個(gè)微控制器執(zhí)行看門狗,會(huì)有額外功能增加其復(fù)雜性,以及一個(gè)新軟件單元到系統(tǒng)的設(shè)計(jì),因此,系統(tǒng)中看門狗的問(wèn)題無(wú)疑是由工程師的頭腦來(lái)監(jiān)看。在看門狗自行“放大假”的情況下,其將如何恢復(fù)?
選擇之一是使用前面討論的啞巴外部看門狗定時(shí)器。智能看門狗會(huì)由啞巴看門狗的定時(shí)器,使其從被重置的狀況下生成心跳;另一個(gè)選擇是讓應(yīng)用處理器的行為就像個(gè)看門狗。這里須小心思考,給予最佳的方式以確保兩個(gè)處理器如預(yù)期地保持正常狀態(tài)。
簡(jiǎn)單設(shè)計(jì)確??撮T狗可行性
智能看門狗的目的是監(jiān)測(cè)系統(tǒng)和主微控制器,以確保它們依預(yù)期運(yùn)作。在系統(tǒng)設(shè)計(jì)中,看門狗可允許其所支持的非常多功能,開發(fā)者需要牢記,增加智能看門狗復(fù)雜度的可能性,且看門狗本身須包含潛在的故障模式和錯(cuò)誤。更重要的是,看門狗的設(shè)計(jì)應(yīng)保持簡(jiǎn)單與采用最小的必要功能集,將可確保其可被徹底測(cè)試和驗(yàn)證。
看門狗技術(shù)及其抗干擾措施
隨著工業(yè)自動(dòng)化水平的不斷提高,以MCS-51單片機(jī)為核心所構(gòu)成的單片機(jī)應(yīng)用系統(tǒng)得到了廣泛應(yīng)用,如水泥生料配料系統(tǒng)、電子皮帶秤給料控制、各種現(xiàn)場(chǎng)智能測(cè)量?jī)x表等。但其工作現(xiàn)場(chǎng)條件惡劣,干擾多而且幅度大,嚴(yán)重影響著應(yīng)用系統(tǒng)的正常運(yùn)行與可靠性,甚至使應(yīng)用系統(tǒng)計(jì)算機(jī)進(jìn)入死循環(huán)而癱瘓,通常稱為程序“跑飛”。由此引出的計(jì)算機(jī)可靠性問(wèn)題,一直是人們研究的重要課題。
采用屏蔽、濾波、退耦、隔離、接地等措施能有效地提高系統(tǒng)的抗干擾能力,但很難在強(qiáng)干擾發(fā)生時(shí)消除因程序“跑飛”而死機(jī)情況的發(fā)生。“看門狗”技術(shù)能在程序“跑飛”時(shí)實(shí)現(xiàn)自我診斷并使系統(tǒng)恢復(fù)運(yùn)行,是單片機(jī)應(yīng)用系統(tǒng)抗干擾的有力武器。當(dāng)然,它是以系統(tǒng)的硬、軟件設(shè)計(jì)開發(fā)的合理和成熟為條件的,否則將掩蓋系統(tǒng)設(shè)計(jì)開發(fā)過(guò)程中的人為缺陷與不足。
“看門狗”技術(shù)及其對(duì)干擾的抑制
1、程序“跑飛”對(duì)系統(tǒng)的攻擊
(1)程序計(jì)數(shù)器PC的值被攻擊,成為一隨機(jī)拼合的數(shù)據(jù)。
(2)系統(tǒng)設(shè)置的控制字與標(biāo)志參數(shù)因“跑飛”后可能被訪問(wèn)而被攻擊。
(3)數(shù)據(jù)存儲(chǔ)器RAM內(nèi)容被攻擊等。
2、 “看門狗”技術(shù)
“看門狗”源于“Watch dog、Watch dog timer”,或稱定時(shí)監(jiān)視技術(shù),其本質(zhì)是一可復(fù)位的定時(shí)器,其原理如圖1、2所示。
在程序正常運(yùn)行時(shí),計(jì)算機(jī)通過(guò)程序以周期T1向定時(shí)器發(fā)送脈沖觸發(fā)定時(shí)器(或通過(guò)軟件以T1為周期初始化定時(shí)器),而由定時(shí)脈沖控制的定時(shí)器動(dòng)作時(shí)間為T2(T3),在T1
,CPU響應(yīng)中斷轉(zhuǎn)向中斷處理程序,進(jìn)而恢復(fù)系統(tǒng)。第二級(jí)“看門狗”電路只有在第一級(jí)未起作用時(shí)經(jīng)過(guò)T3才起動(dòng)Reset信號(hào)。
3、 “看門狗”技術(shù)的實(shí)施方法
(1)在系統(tǒng)構(gòu)成時(shí)選用芯片內(nèi)帶有“看門狗”電路的單片機(jī),如ATMEL公司的89C52等。
(2)選配專門的“看門狗”電路,如美國(guó)Xicor公司的X25043/45、MAXIM公司的MAX813L等,它們均可構(gòu)成獨(dú)立的“看門狗”電路。
評(píng)論