<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

硬件和軟件看門狗的異同

硬件設計解析 ? 來源:愛搞研究的阿燦 ? 作者:愛搞研究的阿燦 ? 2023-04-03 18:13 ? 次閱讀

說到提高系統的可靠性,剛入門的工程師都知道,增加一個看門狗是重要的手段??撮T狗又分軟件看門狗和硬件看門狗,但是很多人可能沒有深入了解其中的區別,工作中可能都遇到這樣的PK:

87b0b934-d1ff-11ed-a826-dac502259ad0.png


??軟件和硬件看門狗有什么區別?學完這篇文章就可以迎刃而解了。

1、硬件看門狗的原理

硬件看門狗是利用一個定時器電路,其定時輸出連接到電路的復位端,程序在一定時間范圍內對定時器清零(俗稱“喂狗”),因此程序正常工作時,定時器總不能溢出,也就不能產生復位信號。如果程序出現故障,不在定時周期內復位看門狗,就使得看門狗定時器溢出產生復位信號并重啟系統。
我們以ADI公司ADM6316看門狗芯片為例。

87d81a6a-d1ff-11ed-a826-dac502259ad0.png


??該看門狗芯片的主要功能有:
??1.可以監控主電源VCC,26種復位閾值選項:2.5 V至5 V,以100 mV遞增;
??2.4種復位延遲選項:1 ms、20 ms、140 ms、1120 ms(最小值);
??3.4種看門狗喂狗超時選項:6.3 ms、102 ms、1600 ms、25.6 s(典型值);
??4.支持手動復位輸入;
??5.復位輸出級:推挽低電平有效,開漏低電平有效,推挽高電平有效。
??復位功能說明:
??該芯片內置復位功能。設備上電時,芯片的VCC電壓一旦到達開啟閾值電壓VTH,延遲定時器啟動,經過延遲時間tRP,復位信號RESET或者/RESET即可輸出,實現設備的延遲上電復位;芯片同時會監測VCC的電壓,一旦VCC跌落到VTH以下,經過延遲時間tRD后,復位信號輸出電平翻轉,實現設備的復位。

87f6f67e-d1ff-11ed-a826-dac502259ad0.png


??看門狗功能說明:
??該芯片內置看門狗功能,設備上電時,芯片的VCC電壓一旦到達開啟閾值電壓VTH,延遲定時器啟動,經過延遲時間tRP,復位信號RESET或者/RESET即可輸出,實現設備的延遲上電復位;當喂狗信號WDI收到第一個脈沖電平時,就觸發芯片內部的定時器,軟件必須在tWD時間內輸出喂狗信號WDI,否則復位信號RESET或者/RESET將會在定時時間tWD到達時,進行復位,設備重新復位。

88ca1522-d1ff-11ed-a826-dac502259ad0.png

2、軟件看門狗的原理

軟件看門狗原理上一樣,只是將硬件電路上的定時器用處理器的內部定時器代替,這樣可以簡化硬件電路設計,一般是將一個芯片中的定時器來作為看門狗,通過程序的初始化,寫入初值,并啟動定時器。程序按時對定時器賦初值(或復位),以免它餓了。
??這種看門狗是可以被禁用的(只要停止這個定時器即可),好比對那只要咬你的狗來個“葵花點穴手”,大部分CPU都內置看門狗,硬件原理可參考各芯片數據手冊。
??優點:可以通過程序改變初始時間,也可以隨時禁用。
??缺點:需要初始化,如果程序在初始化、啟動完成前跑飛或在禁用后跑飛,看門狗就無法復位系統,這樣看門狗的作用就沒有了,系統恢復能力降低。

88ea2af6-d1ff-11ed-a826-dac502259ad0.png

3、軟硬件看門狗的主要異同

學習了上述的軟硬件看門狗,我們總結一下兩者的異同。
??兩者相同點如下:
??1) 都是通過定時器實現;定時時間到沒有喂狗就進行復位。
??2) 都是需要在規定的時間內喂狗。
??3) 兩者都是靠軟件進行喂狗。
??兩者主要差異如下:
??1) 附加功能:硬件看門狗芯片一般還附帶了延遲復位和電源檢 測的功能,軟件則沒有。
??2) 屏蔽方法:軟件看門狗很容易屏蔽關閉,只需修改其中的寄存器,而硬件看門狗一旦啟動不斷電就停不下來。
??3) 啟動方式:軟件看門狗很容易啟動,只需修改其中的寄存器。硬件一般是收到第一個喂狗信號后就啟動。
??4) 初始化:硬件看門狗上電后收到第一個喂狗脈沖就完成了初始化,軟件看門狗則需要配置相關的寄存器(或者調用相關的看門狗子程序)。

4、一個軟件看門狗搞不定的案例

項目組研發一款戶外遠程采集器,應用場景包括偏僻的郊外,對可靠性要求很高,出現故障后或者遠程升級后能夠自動復位重啟。為了節省成本,該產品采用主芯片內置的看門狗功能。主芯片其他資源初始化完成后,再初始化看門狗功能。產品批量后,遠程升級過程中,大概有5%的概率設備升級后變磚,需要人工斷電后再上電才能恢復正常。
??經過研發人員分析,軟件的看門狗的流程如下圖,一小部分設備,在升級程序過程,出現了死機的問題,程序還沒有運行到初始化看門狗的階段,看門狗無法生效,導致設備處于一直死機的狀態,人工斷電重啟后恢復正常。

891351ce-d1ff-11ed-a826-dac502259ad0.png


??經過改良升級,研發人員使用了硬件看門狗,上電瞬間就依賴上拉電阻形成的高脈沖開啟看門狗,看門狗的延遲最遲喂狗時間為1.8S,評估升級+初始化時間最遲為1.2S,所以該看門狗芯片滿足要求,一旦1.8S內應用程序還無法喂狗,則復位重啟,問題得以解決。

893caea2-d1ff-11ed-a826-dac502259ad0.png

5、總結

軟件和硬件的看門狗的最主要差異在于開啟看門狗的時機,軟件看門狗必須初始化(配置)看門狗才能使用,如果軟件看門狗是廠商提供的SDK中的一個API接口,開發者又沒有能力修改底層的uboot、內核,無法在uboot、內核階段開啟和喂狗,開啟看門狗的時機就很晚了,程序就有可能還沒有跑到看門狗初始化就掛了,中間的各種幺蛾子都不受控,就像上述的案例。
??而硬件看門狗開啟則不受軟件的約束,設備上電就可以依賴上拉電阻提供的高脈沖開啟看門狗,只要軟件不及時喂狗,就復位,這個是無條件的。所謂一分錢一分貨,在電子產品也是適用的。
??當然,如果你能說服驅動工程師,能夠在主芯片上電第一時間,就初始化和開啟軟件看門狗,理論上,軟件看門狗也可以做的和硬件看門狗一樣可靠。

審核編輯黃宇

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

    關注

    10

    文章

    543

    瀏覽量

    70305
收藏 人收藏

    評論

    相關推薦

    IWDG獨立看門狗和WWDG窗口看門狗的一些區別

    走了,這個也就失去作用了。主要用于監視軟件錯誤。 二者區別如下: 獨立看門狗沒有中斷,窗口看門狗有中斷 獨立看門狗
    發表于 07-02 06:09

    看門狗定時器硬件外設參考設計

    。 如果軟件鎖定,或出現影響軟件運行的硬件故障,看門狗定時器將超時,并強制微控制器復位。 在此過程中,看門狗定時器將清除錯誤,并允許微控制器
    發表于 07-23 09:32

    ARM開發中的軟、硬件看門狗

    本文從原理、異同、舉例來說明硬件軟件看門狗怎么選擇:一、 硬件看門狗的原理
    發表于 09-02 09:03

    什么是stm32看門狗?stm32看門狗分為哪幾類?

    什么是stm32看門狗?stm32看門狗分為哪幾類?獨立看門狗與窗口看門狗有哪些異同點?
    發表于 07-23 06:36

    窗口看門狗硬件設計及編程步驟

    00. 目錄文章目錄00. 目錄01. 窗口看門狗簡介02. 硬件設計03. 編程步驟04. 程序示例05. 測試結果06. 附錄07. 聲明01. 窗口看門狗簡介窗口看門狗(WWDG
    發表于 07-30 07:05

    硬件看門狗實現代碼

    (一)概述stm32有兩個看門狗硬件看門狗(LSI 40KHz,時間精度不高)和窗口看門狗(APB1)。(二)硬件
    發表于 07-30 07:13

    看門狗介紹

    1)獨立看門狗沒有中斷,窗口看門狗有中斷 2)獨立看門狗硬件軟件之分,窗口看門狗只能
    發表于 07-30 07:38

    獨立看門狗和窗口看門狗的區別在哪

    1)獨立看門狗沒有中斷,窗口看門狗有中斷 2)獨立看門狗硬件軟件之分,窗口看門狗只能
    發表于 07-30 06:31

    STM32獨立看門狗(IWDG)和窗口看門狗(WWDG)的區別【轉】精選資料分享

    正常對其進行復位,系統的可靠性將大打折扣。看門狗分為軟件看門狗硬件看門狗兩類,其原理都是使用一個獨立定時器來計時,超出時間就會產生復位信號
    發表于 08-02 09:27

    stm32獨立看門狗和窗口看門狗有哪些不同之處

    獨立看門狗與窗口看門狗的中斷有何不同?獨立看門狗與窗口看門狗硬件軟件之分嗎?
    發表于 08-11 06:05

    怎樣去設計窗口看門狗硬件電路

    窗口看門狗是什么? 窗口看門狗有哪些特性? 怎樣去設計窗口看門狗硬件電路? 怎樣去設計窗口看門狗軟件
    發表于 08-12 06:24

    淺析軟件看門狗硬件看門狗的區別

    看門狗是什么?WDT的基本工作原理是什么?
    發表于 11-08 06:58

    嵌入式系統的硬件軟件看門狗怎么選擇

    本文從原理、異同、舉例來說明硬件軟件看門狗怎么選擇:一、硬件看門狗的原理
    發表于 12-21 08:04

    硬件看門狗在操作系統下是怎么用的?

    關于軟件看門狗:在裸機程序下軟件看門狗,大家都會在必要的地方喂狗保證看門狗有效;但在微操作系統下,程序的流向都是在操作系統下調度的,這種情況
    發表于 09-07 16:49

    軟件看門狗硬件看門狗的區別

    軟件看門狗硬件看門狗都是用于監控系統崩潰的工具,它們的作用是在系統出現故障或異常情況時自動恢復系統。 ?軟件
    的頭像 發表于 04-16 15:10 ?191次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>