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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

看門狗芯片的應用場景

姚小熊27 ? 來源:英銳恩 ? 作者:英銳恩 ? 2020-06-26 14:27 ? 次閱讀

對于那些人類無法持續(xù)監(jiān)視的嵌入式系統看門狗芯片可能是個很好的解決方案。英銳恩單片機開發(fā)工程師表示,大多數嵌入式系統需要自主處理異常,如果運算跑偏了,通常不可能等人們重新引導他們。這種情況下需要一個復位芯片,以引導嵌入式系統的重啟。

看門狗芯片是一種硬件,可以用來自動檢測軟件異常,并在發(fā)生任何異常時重置處理器。一般來說,看門狗芯片基于一個從某個初始值遞減到零的計數器。嵌入式軟件選擇計數器的初始值并定期重新啟動它。如果計數器在軟件重新啟動之前達到零,則認為軟件發(fā)生故障,并且處理器的復位信號有效。處理器(及其運行的嵌入式軟件)將重新啟動,就像人工操作員已關閉電源再打開一樣。

如下圖所示,看門狗芯片是處理器外部的芯片。但是,它也可以與CPU包含在同一芯片中。這是在許多單片機中完成的。無論哪種情況,看門狗芯片的輸出都直接與處理器的復位信號相關。

看門狗芯片的應用場景

一、什么是踢狗(也叫:喂狗)

重新啟動看門狗芯片計數器的過程有時稱為“踢狗(喂狗)”。踢狗的作用作用主要是起到復位重啟的作用,確保機器能夠一直運行。

如下面的案例1中,做了一個簡單的示例。這里,我們有一個無限循環(huán)來控制系統的整個行為。這種軟件體系結構在許多具有低端處理器和基于單個工作頻率的行為的嵌入式系統中很常見。該看門狗的硬件實現允許通過內存映射寄存器設置計數器值。

uint16 volatile * pWatchdog =

(uint16 volatile *) 0xFF0000;

main(void)

{

hwinit();

for (;;)

{

*pWatchdog = 10000;

read_sensors();

control_motor();

display_status();

}

}

案例1:踢狗

假設循環(huán)必須每五毫秒至少執(zhí)行一次。(假設必須至少經常向電動機提供新的控制參數。)如果看門狗芯片的計數器初始化為與經過的時間(即10000毫秒)對應的五毫秒的值,并且軟件沒有錯誤,看門狗芯片將永遠不會到期,軟件將始終在達到零之前重新啟動計數器。

二、軟件異常

看門狗芯片可以使系統擺脫許多危險情況。但是,如果要有效,必須在整個軟件設計中考慮復位看門狗芯片。設計人員必須知道其軟件可能出什么問題,并確??撮T狗芯片能夠檢測到它們(如果有的話)。

系統掛起有多種原因。導致執(zhí)行無限循環(huán)的邏輯謬誤是最簡單的。假設這種情況發(fā)生在案例1的read_sensors()調用中。其他任何軟件(ISR除外,如果仍然啟用中斷)都不會再次運行。

另一種可能性是,在循環(huán)的一次通過期間,異常數量的中斷到達。在ISR中花費的任何額外時間就是沒有花費在執(zhí)行主循環(huán)上的時間??赡軙o電機新的控制指令帶來危險的延遲。

使用多任務內核時,可能會發(fā)生死鎖。例如,一組任務可能會卡在彼此之間等待,并且其中一個需要一些外部信號,從而使整個任務組無限期地掛起。

如果此類故障是瞬態(tài)的,則每次看門狗引起的復位后,系統可能會在一段時間內正常運行。但是,發(fā)生故障的硬件可能會導致系統不斷重置。因此,計算看門狗引起的復位次數并在固定次數的故障后放棄嘗試可能是明智的。

三、Karate框架接口測試

實際的看門狗實現通常會具有一個與案例1中的軟件相比更為復雜的軟件接口。當重置看門狗所需的指令集非常簡單時,有漏洞的軟件可能會偶然執(zhí)行此操作??紤]一個錯誤,該錯誤導致將值10000一次又一次地寫入內存中的每個位置。此代碼將定期重新啟動看門狗計數器,并且看門狗可能永遠不會咬人。為防止這種情況,許多看門狗實現要求使用兩個或多個連續(xù)寫入的復雜序列來重新啟動看門狗芯片。

如果看門狗內置在你的單片機中,則在設備復位時可能不會自動啟用它。你必須確保在硬件初始化期間啟用它。為了提供保護以防止意外禁用看門狗的錯誤,硬件設計通常使得一旦啟用看門狗芯片就無法禁用它。

如果你的軟件可以比看門狗周期更快地完成一個完整的循環(huán),那么案例1中的結構可能對你來說很好。如果你的軟件的某些部分需要很長時間才能完成,那么挑戰(zhàn)就更大了。假設你有一個循環(huán),等待元素加熱到一定溫度再返回。許多看門狗芯片的最長持續(xù)時間約為兩秒鐘。如果你要延遲的時間超過該時間長度,則可能必須在等待循環(huán)中踢狗。如果你的軟件中有很多這樣的地方,看門狗的控制可能會出現問題。

系統初始化是代碼的一部分,通常需要比看門狗芯片的最大時間更長的時間。也許進行內存測試或從ROMRAM的數據傳輸會減慢此速度。因此,某些看門狗可以比其后繼踢等待更長的時間來等待他們的第一個踢。

隨著將控制線程添加到軟件中(以ISR和軟件任務的形式),在代碼中僅放置一處看門狗變得無效。所以,選擇合適的踢腳間隔也是一個重要問題,這只能以系統特定的方式解決。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 計數器
    +關注

    關注

    32

    文章

    2248

    瀏覽量

    94181
  • 看門狗芯片
    +關注

    關注

    0

    文章

    19

    瀏覽量

    6088
收藏 人收藏

    評論

    相關推薦

    看門狗定時器的工作原理

    看門狗定時器是一種獨立的計時器硬件模塊,其核心功能是倒計時。如果系統軟件在計時器超時前沒有對其進行復位操作(即“喂狗”),看門狗將觸發(fā)一個預定義的動作,通常是系統復位或中斷。
    的頭像 發(fā)表于 10-21 14:18 ?97次閱讀
    <b class='flag-5'>看門狗</b>定時器的工作原理

    單片機開發(fā):使用內部看門狗定時器(WDT)還是外掛看門狗芯片

    在電子產品中,有時候需要看門狗定時器(WDT),看門狗芯片有外部和內置兩種。在設計之初,要不要使用看門狗芯片?這是個值得考慮的問題。在本文中
    發(fā)表于 09-25 13:46

    Sitara AM6442 RTI看門狗調試

    電子發(fā)燒友網站提供《Sitara AM6442 RTI看門狗調試.pdf》資料免費下載
    發(fā)表于 08-27 11:26 ?0次下載
    Sitara AM6442 RTI<b class='flag-5'>看門狗</b>調試

    【GD32F470紫藤派開發(fā)板使用手冊】第七講 FWDG-看門狗實驗

    通過本實驗主要學習以下內容: 獨立看門狗的原理 獨立看門狗功能介紹 實現獨立看門狗功能
    的頭像 發(fā)表于 05-11 10:13 ?767次閱讀
    【GD32F470紫藤派開發(fā)板使用手冊】第七講 FWDG-<b class='flag-5'>看門狗</b>實驗

    【GD32H757Z海棠派開發(fā)板使用手冊】第七講 FWDG-看門狗實驗

    通過本實驗主要學習以下內容: 獨立看門狗的原理 獨立看門狗功能介紹 實現獨立看門狗功能
    的頭像 發(fā)表于 05-10 09:37 ?542次閱讀
    【GD32H757Z海棠派開發(fā)板使用手冊】第七講 FWDG-<b class='flag-5'>看門狗</b>實驗

    軟件看門狗和硬件看門狗的區(qū)別

    系統出現了故障或死鎖,軟件看門狗會自動重啟系統或執(zhí)行其他預定義的操作。軟件看門狗通常用于嵌入式系統中,可以方便地進行編程和控制。硬件看門狗則是一種獨立的硬件設備,它與計算機主板上的芯片
    的頭像 發(fā)表于 04-16 15:10 ?842次閱讀

    TLF35584中集成的看門狗工作應用案例

    看門狗輸入引腳 WDI 具有集成的下拉電流 IWDI 。看門狗輸入 WDI 可以在“Closed Window”內或隨后的“Open Window”期間轉換為高電平。
    發(fā)表于 03-18 11:27 ?3286次閱讀
    TLF35584中集成的<b class='flag-5'>看門狗</b>工作應用案例

    調試模式下如何調試看門狗

    大家在調試GD32 MCU系統的時候,若開了看門狗外設,是否會碰到進入調試模式看門狗就會咬造成無法調試的問題?
    的頭像 發(fā)表于 02-23 09:30 ?1144次閱讀
    調試模式下如何調試<b class='flag-5'>看門狗</b>?

    芯知識 | 語音芯片中的聲音播放提示IC內置看門狗的作用介紹

    隨著科技的不斷發(fā)展,語音芯片在各個領域的應用越來越廣泛。其中,聲音播放提示IC作為語音芯片的重要組成部分,其功能和性能的提升對于產品的用戶體驗和穩(wěn)定性至關重要。而在聲音播放提示IC中,內置看門狗
    的頭像 發(fā)表于 12-20 08:40 ?435次閱讀
    芯知識 | 語音<b class='flag-5'>芯片</b>中的聲音播放提示IC內置<b class='flag-5'>看門狗</b>的作用介紹

    MCU看門狗應用注意事項

    我們使用的MCU是普冉的PY32F030,這顆芯片在低功耗應用場景下,使用看門狗會有很多的問題和缺陷,需要非常注意,稍有不慎,就會出問題。
    發(fā)表于 12-02 09:47 ?999次閱讀
    MCU<b class='flag-5'>看門狗</b>應用注意事項

    STM32的看門狗原理和示例代碼

    看門狗基礎:STM32微控制器上的看門狗主要有兩種類型:獨立看門狗(IWDG)和窗口看門狗(WWDG),這兩者都是用于監(jiān)控系統運行狀態(tài)的機制,但它們在實現和應用上有一些區(qū)別:獨立
    的頭像 發(fā)表于 12-01 08:00 ?1731次閱讀
    STM32的<b class='flag-5'>看門狗</b>原理和示例代碼

    RT-Thread Nano入門:獨立看門狗(IWDT)

    本文主要介紹怎么用RT-Thread Nano實現獨立看門狗IWDT驅動,創(chuàng)建一個喂狗線程,實現定時喂狗功能。
    的頭像 發(fā)表于 11-22 11:04 ?1985次閱讀
    RT-Thread Nano入門:獨立<b class='flag-5'>看門狗</b>(IWDT)

    什么是模擬看門狗?模擬看門狗有什么用處?

    看門狗大家應該再熟悉不過了,一旦忘記喂狗就會導致單片機復位,而在大部分stm32中都存在兩種類型的看門狗,Independent watchdog (IWDG)獨立看門狗和Window watchdog (WWDG)窗口
    的頭像 發(fā)表于 11-22 09:40 ?1559次閱讀
    什么是模擬<b class='flag-5'>看門狗</b>?模擬<b class='flag-5'>看門狗</b>有什么用處?

    看門狗要如何使用?

    雖然知道看門狗的作用,不過還是不太明白看門狗要如何使用。 看門狗的作用是在程序跑飛的情況下讓系統能夠及時復位重新開始執(zhí)行程序,道理很簡單,但是程序如何跑飛呢? 如果是一段程序需要延時等待,這個不算跑飛吧,應該是正常執(zhí)行。所以這種
    發(fā)表于 11-06 07:02

    簡單介紹電壓監(jiān)控型/看門狗型復位電路

    電壓監(jiān)控型/看門狗型復位電路
    的頭像 發(fā)表于 10-25 16:04 ?1180次閱讀
    簡單介紹電壓監(jiān)控型/<b class='flag-5'>看門狗</b>型復位電路