0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文詳解微控制器中的看門狗定時(shí)器

科技觀察員 ? 來源:allaboutcircuits ? 作者: 斯蒂芬·科利 ? 2022-04-25 17:26 ? 次閱讀

本文介紹看門狗定時(shí)器,通??s寫為 WDT,也稱為計(jì)算機(jī)正常運(yùn)行定時(shí)器或 COP。有外部看門狗設(shè)備和內(nèi)部看門狗功能。本文僅介紹內(nèi)部看門狗。

什么是看門狗定時(shí)器?(一個非常規(guī)的類比)

看門狗定時(shí)器是一種專門的定時(shí)器模塊,可幫助微處理器從故障中恢復(fù)。如果看門狗定時(shí)器到達(dá)其計(jì)數(shù)周期的末尾,它將重置整個處理器系統(tǒng)。為了防止這種情況,處理器必須執(zhí)行某種類型的特定操作來重置看門狗。因此,可以配置看門狗定時(shí)器,使其僅在發(fā)生處理器故障時(shí)到達(dá)其計(jì)數(shù)周期的末尾,并且通過強(qiáng)制系統(tǒng)復(fù)位,看門狗定時(shí)器幫助處理器從故障模式中逃脫并繼續(xù)正常運(yùn)行。

為了可視化 WDT 的功能,我有一個非常規(guī)的類比供您考慮。

《迷失》是一部廣受歡迎的電視劇,講述了飛機(jī)失事后一群幸存者被困在一個神秘的島嶼上。其中一個子情節(jié)涉及的角色認(rèn)為他們必須在屏幕上的計(jì)數(shù)器變?yōu)?0 之前輸入一串簡短的數(shù)字,否則世界將結(jié)束。

當(dāng)輸入系列時(shí),計(jì)數(shù)器重置并再次開始倒計(jì)時(shí)。輸入這一系列數(shù)字只是心理實(shí)驗(yàn)的一部分,還是世界的命運(yùn)岌岌可危,這永遠(yuǎn)不清楚。找出答案的唯一方法是不輸入數(shù)字。角色們可以自由外出、尋找食物、游泳——但他們必須及時(shí)返回以重置計(jì)數(shù)器。從計(jì)算機(jī)的角度來看,接收到正確的輸入意味著外面有一個人在正常操作并為柜臺服務(wù)。沒有收到正確的輸入表明有問題。

看門狗定時(shí)器的運(yùn)行方式與Lost中的計(jì)算機(jī)系統(tǒng)類似。微控制器的其余部分是壓力過大的角色,他們可以自由地做任何事情,但必須定期為計(jì)數(shù)器提供服務(wù),否則微控制器會復(fù)位(又名世界末日)。正確操作的軟件和硬件將在固定的時(shí)間內(nèi)為看門狗提供服務(wù),而有故障的軟件或硬件可能不會。

內(nèi)部看門狗定時(shí)器的類型

有兩種類型的看門狗,非窗口和窗口。如果服務(wù)計(jì)數(shù)器延遲,這兩種類型都會導(dǎo)致復(fù)位。

如果服務(wù)發(fā)生得太快,窗口看門狗也會導(dǎo)致復(fù)位。此圖顯示了使用遞增計(jì)數(shù)器的看門狗的時(shí)序。一些看門狗使用遞減計(jì)數(shù)器,但原理是一樣的。

poYBAGJmaViAEjP7AABfbaoTPlk166.jpg

看門狗定時(shí)器的時(shí)序

對于非窗口或窗口看門狗,在計(jì)數(shù)器達(dá)到上限值之前的任何服務(wù)都會重置計(jì)數(shù)器并且一切正常。窗口式看門狗會添加一個下限并創(chuàng)建一個計(jì)數(shù)窗口。下限和上限之間的任何服務(wù)都可以。這里是圖表的詳細(xì)描述。

A - 啟動后不久,程序使用計(jì)數(shù)器的上限初始化看門狗并啟用計(jì)數(shù)。對于窗口式看門狗,還設(shè)置了下限。

B和C - 軟件在計(jì)數(shù)器達(dá)到上限之前成功地為計(jì)數(shù)器提供服務(wù),對于窗口式看門狗,在下限之后。服務(wù)后,計(jì)數(shù)器復(fù)位為 0 并再次開始向上計(jì)數(shù)。一切都好。

D - 程序不服務(wù)計(jì)數(shù)器并且計(jì)數(shù)達(dá)到上限。看門狗復(fù)位微控制器。

D 到 E - 微控制器啟動并初始化并啟用看門狗。

E - 看門狗開始計(jì)數(shù)。

F - 程序在計(jì)數(shù)器達(dá)到上限之前為計(jì)數(shù)器提供服務(wù),對于窗口看門狗,在下限之后提供服務(wù)。計(jì)數(shù)器重置為 0 并重新開始計(jì)數(shù)。一切都好。

G - 程序在計(jì)數(shù)達(dá)到窗口看門狗的下限之前為計(jì)數(shù)器提供服務(wù)。對于沒有下限的非窗口看門狗,沒有復(fù)位,計(jì)數(shù)器變?yōu)?0 并重新開始計(jì)數(shù)。對于窗口看門狗,微控制器被復(fù)位。

看門狗的細(xì)節(jié)差異很大。他們可以向上或向下計(jì)數(shù)。他們使用不同的時(shí)鐘。他們有不同的上限和下限選擇。以下部分介紹了許多特性,但只是一個概述。

看門狗初始化

初始化看門狗可能很棘手。例如,一些看門狗會在微控制器啟動時(shí)自動啟用。

如果您不使用看門狗,則必須在啟動時(shí)包含代碼以禁用它。我目前使用的看門狗就是這種情況。如果我的程序需要運(yùn)行超過一秒,我必須禁用看門狗或更改窗口設(shè)置!

一些看門狗只允許對控制寄存器進(jìn)行一次寫入作為安全功能。此功能可防止失控軟件在初始化后更改設(shè)置。如果您在具有此功能的看門狗中使用默認(rèn)設(shè)置,請確保覆蓋默認(rèn)設(shè)置,即使位值相同。這“鎖定”了價(jià)值觀并保持了安全性。

如果您使用 C 編程,請注意在啟動代碼中可能會初始化看門狗,它在您的 main() 函數(shù)之前運(yùn)行。開發(fā)環(huán)境有時(shí)會自動包含此代碼,作為運(yùn)行標(biāo)準(zhǔn) C 程序的一部分。此代碼設(shè)置內(nèi)存和中斷向量表。在您的啟動代碼中查看看門狗的操作并根據(jù)您的系統(tǒng)要求進(jìn)行修改。

窗口設(shè)置

看門狗可以是非窗口的和窗口的。單個計(jì)時(shí)器通過將窗口的下限作為選項(xiàng)來提供兩種類型是很常見的。窗口的大小隨看門狗的不同而不同。

我目前使用的看門狗的下限固定在上限的75%。另一個看門狗可以選擇上限的 75%、50%、37.5% 或 25%。還有一個看門狗獨(dú)立設(shè)置上限和下限。關(guān)于如何選擇上限也存在很大差異。

服務(wù) AKA 看門狗定時(shí)器復(fù)位

定期重置看門狗計(jì)數(shù)器稱為“服務(wù)”定時(shí)器。不同的看門狗定時(shí)器將有不同的服務(wù)要求。所有服務(wù)要求都使用在失控軟件執(zhí)行期間不太可能發(fā)生的操作。

我目前使用的看門狗需要兩次寫入“服務(wù)寄存器”,其值為 0x55,后跟 0xAA。如果將 0x55 或 0xAA 以外的任何值寫入服務(wù)寄存器,則任何時(shí)候微控制器都會立即復(fù)位。

另一個看門狗需要對值為 0xAAAA 的服務(wù)寄存器進(jìn)行單次寫入。似乎對數(shù)字 0xA 和 0x5 以及它們交替的 1010 和 0101 位模式很著迷。一個計(jì)時(shí)器通過使用具有幻數(shù) 0x5743 的單次寫入來對抗這種趨勢。

睡眠模式

睡眠和其他低功耗模式使事情復(fù)雜化。如果處理器進(jìn)入睡眠狀態(tài)并停止執(zhí)行,看門狗應(yīng)該怎么做?看門狗時(shí)間應(yīng)該靜止嗎?

當(dāng)處理器進(jìn)入和退出深度睡眠時(shí),我當(dāng)前使用的看門狗會在初始計(jì)數(shù)處停止并重新啟動。這個話題很復(fù)雜,當(dāng)微控制器使用低功耗模式時(shí),您需要研究看門狗的操作。

漸進(jìn)式反應(yīng)

微控制器的完全復(fù)位可能過于苛刻。一些看門狗具有允許漸進(jìn)式響應(yīng)的功能。

例如,看門狗可能在復(fù)位之前的某個時(shí)間有一個中斷請求選項(xiàng)。此功能允許中斷服務(wù)程序在看門狗繼續(xù)計(jì)數(shù)時(shí)修復(fù)或記錄問題。如果中斷程序不能讓事情回到正軌,就會發(fā)生復(fù)位。

看門狗戰(zhàn)略

我使用術(shù)語“策略”來確定在哪里設(shè)置看門狗的時(shí)間限制。最簡單的策略是使用非窗口看門狗,其超時(shí)時(shí)間遠(yuǎn)長于服務(wù)看門狗之間程序的任何可能執(zhí)行時(shí)間。我將其稱為“重置按鈕”策略,因?yàn)樗〈税聪轮刂冒粹o的人。醫(yī)療設(shè)備或制造機(jī)器人等關(guān)鍵系統(tǒng)的策略需要更快的響應(yīng)。

看門狗策略可以考慮許多因素:

系統(tǒng)是否使用可預(yù)測的主循環(huán)或基于實(shí)時(shí)操作系統(tǒng)的復(fù)雜多任務(wù)結(jié)構(gòu)?

看門狗重置是否應(yīng)該啟動一系列自動系統(tǒng)檢查?

看門狗是診斷和解決問題的一系列嘗試的最后階段嗎?

您想在系統(tǒng)啟動時(shí)測試看門狗以及其他檢查嗎?

看門狗策略是一個復(fù)雜的話題,并且非常依賴于應(yīng)用程序。

在復(fù)位微控制器之前,看門狗在復(fù)位后的狀態(tài)寄存器中設(shè)置一個位。通常該位與其他復(fù)位狀態(tài)(例如掉電復(fù)位位)一起存儲。測試看門狗復(fù)位位應(yīng)該是策略的一部分。

至少,在啟動期間測試該位并做一些事情來指示問題。否則,故障可能會被忽視,尤其是不常見的故障。例如,在顯示屏上輸出消息或點(diǎn)亮 LED。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 看門狗
    +關(guān)注

    關(guān)注

    10

    文章

    577

    瀏覽量

    71494
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3275

    瀏覽量

    116901
  • WDT
    WDT
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    17854
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    詳解看門狗定時(shí)器

    看門狗定時(shí)器由獨(dú)立的1 Mhz 片內(nèi)振蕩驅(qū)動。這是VCC = 5V 時(shí)的典型值。請參見特性數(shù)據(jù)以了解其他VCC 電平下的典型值。通過設(shè)置看門狗定時(shí)
    發(fā)表于 09-02 16:40 ?4408次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>詳解</b><b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>

    詳解看門狗定時(shí)器

    詳解看門狗定時(shí)器
    發(fā)表于 01-24 17:27

    詳解看門狗定時(shí)器

    詳解看門狗定時(shí)器
    發(fā)表于 02-06 10:06

    看門狗定時(shí)器硬件外設(shè)參考設(shè)計(jì)

    內(nèi)部看門狗定時(shí)器屬于硬件外設(shè),幾乎是所有單片微控制器個組成部分,可與板載外設(shè)和系統(tǒng)時(shí)鐘進(jìn)行交互(圖 1)。 默認(rèn)情況下,內(nèi)部看門狗
    發(fā)表于 07-23 09:32

    看門狗定時(shí)器WDT是什么

    看門狗定時(shí)器WDT,是微控制器運(yùn)行狀態(tài)的監(jiān)控系統(tǒng),在微控制器內(nèi)部程序跑飛后,微控制器控制功能將
    發(fā)表于 02-15 07:07

    內(nèi)部與外部看門狗定時(shí)器的比較

    摘要:本文對內(nèi)部(集成在處理內(nèi)部)看門狗定時(shí)器(WTD)與外部(基于硬件) WDT的優(yōu)勢和劣勢進(jìn)行了對比。內(nèi)部看門狗便于設(shè)計(jì),但容易失效。MAXQ2000
    發(fā)表于 05-02 10:34 ?4778次閱讀

    看門狗定時(shí)器的設(shè)計(jì)、工作原理及看門狗定時(shí)器的操作

    看門狗定時(shí)器(WDT,Watch Dog Timer)是單片機(jī)的個組成部分,它實(shí)際上是個計(jì)數(shù),
    發(fā)表于 05-23 09:14 ?8080次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>的設(shè)計(jì)、工作原理及<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>的操作

    TB3123 - PIC?單片機(jī)的窗口看門狗定時(shí)器

    窗口看門狗定時(shí)器(Windowed Watchdog Timer,WWDT)是PIC單片機(jī)的增強(qiáng)型看門狗定時(shí)器。該定時(shí)器是PIC單片機(jī)現(xiàn)有
    發(fā)表于 03-26 14:35 ?0次下載
    TB3123 - PIC?單片機(jī)的窗口<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>

    什么是看門狗定時(shí)器?為何看門狗定時(shí)器如此重要?

    ---使用具有整合看門狗功能的處理。許多微控制器如MSP430F5529系列具有整合看門狗的功能。它的價(jià)值在于非常容易實(shí)作,且不需要使用其他IC。然而,有
    的頭像 發(fā)表于 08-29 08:13 ?2.4w次閱讀
    什么是<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>?為何<b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>如此重要?

    PCB設(shè)計(jì)技巧:您是否應(yīng)在電路板設(shè)計(jì)包含外部看門狗定時(shí)器

    看門狗定時(shí)器(WDT)是種電子功能,用于檢測嵌入式系統(tǒng)的異常并重置微控制器。它通常由預(yù)先加載的計(jì)時(shí)
    的頭像 發(fā)表于 07-25 11:41 ?3416次閱讀

    看門狗定時(shí)器的相關(guān)問題和實(shí)驗(yàn)說明

    進(jìn)入中斷。在定時(shí)器中斷執(zhí)行些復(fù)位操作,使系統(tǒng)恢復(fù)正常的工作狀態(tài),即在程序沒有正常運(yùn)行期間,如期復(fù)位看門狗以保證所選擇
    的頭像 發(fā)表于 10-06 12:59 ?4807次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>的相關(guān)問題和實(shí)驗(yàn)說明

    看門狗定時(shí)器電路的功能和操作及局限性解決方案

    看門狗定時(shí)器提高了基于微控制器的系統(tǒng)的可靠性。但是,它們并非萬無失。在本設(shè)計(jì)解決方案,我們回顧了看門
    的頭像 發(fā)表于 12-19 15:03 ?4818次閱讀
    <b class='flag-5'>看門狗</b><b class='flag-5'>定時(shí)器</b>電路的功能和操作及局限性解決方案

    使用高速微型看門狗定時(shí)器

    在惡劣環(huán)境中使用的高速微控制器應(yīng)用的設(shè)計(jì)人員將使用看門狗定時(shí)器來防止軟件失控。DS80C320高速微控制器集成了看門狗
    的頭像 發(fā)表于 02-09 11:54 ?1163次閱讀

    使用安全微控制器看門狗定時(shí)器

    微控制器通常用于電源瞬變、電磁干擾 (EMI) 和靜電放電 (ESD) 豐富的惡劣環(huán)境。總線損壞和電磁放電引起的程序損壞可能導(dǎo)致微處理執(zhí)行錯誤的指令。在這些環(huán)境
    的頭像 發(fā)表于 03-01 14:14 ?1158次閱讀

    內(nèi)部和外部看門狗定時(shí)器的比較

    本文比較了內(nèi)部(與微處理集成)和外部(基于硬件)看門狗定時(shí)器(WDT)的優(yōu)缺點(diǎn)。它解釋了內(nèi)部看門狗定時(shí)器易于實(shí)現(xiàn),但容易發(fā)生故障。MAXQ
    的頭像 發(fā)表于 04-03 11:15 ?3387次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品