RM新时代网站-首页

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

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

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

硬件和軟件看門狗的異同

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

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

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


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

1、硬件看門狗的原理

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

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


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

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


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

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

2、軟件看門狗的原理

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

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

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

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

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

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

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


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

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

5、總結(jié)

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

審核編輯黃宇

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

    關(guān)注

    10

    文章

    560

    瀏覽量

    70789
收藏 人收藏

    評論

    相關(guān)推薦

    STM32中的獨(dú)立看門狗和窗口看門狗是什么

    在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨(dú)立看門狗
    的頭像 發(fā)表于 02-20 17:47 ?2716次閱讀
    STM32中的獨(dú)立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>是什么

    嵌入式系統(tǒng)的硬件軟件看門狗怎么選擇

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

    什么是看門狗電路

    看門狗電路 看門狗電路一般有軟件看門狗硬件看門狗兩種。
    發(fā)表于 10-21 01:40 ?8174次閱讀

    stm32看門狗時間計(jì)算 獨(dú)立看門狗和窗口看門狗的特性是什么

    本文為您講解STM看門狗時間計(jì)算(時限)與頻率計(jì)算,獨(dú)立看門狗和窗口看門狗的特性、區(qū)別與聯(lián)系。
    發(fā)表于 10-10 10:41 ?8760次閱讀

    什么是stm32看門狗?獨(dú)立看門狗和窗口看門狗工作原理解析

    stm32有兩個看門狗,獨(dú)立看門狗和窗口看門狗,其實(shí)兩者的功能是類似的,只是喂狗的限制時間不同。 獨(dú)立看門狗
    的頭像 發(fā)表于 11-06 11:48 ?2.7w次閱讀
    什么是stm32<b class='flag-5'>看門狗</b>?獨(dú)立<b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>工作原理解析

    STM32看門狗配置(獨(dú)立看門狗IWDG和窗口看門狗WWDG)

    stm32自帶兩個看門狗模塊,獨(dú)立看門狗IWDG和窗口看門狗WWDG。看門狗主要作用是可用來檢測和解決由軟件錯誤引起的故障;當(dāng)計(jì)數(shù)器達(dá)到給定
    發(fā)表于 11-09 17:17 ?8438次閱讀
    STM32<b class='flag-5'>看門狗</b>配置(獨(dú)立<b class='flag-5'>看門狗</b>IWDG和窗口<b class='flag-5'>看門狗</b>WWDG)

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

    ,主程序又來監(jiān)視T0,從而保證系統(tǒng)的穩(wěn)定運(yùn)行。軟件硬件看門狗的主要異同兩者相同點(diǎn)如下:1) 都是通過定時器實(shí)現(xiàn);定時時間到?jīng)]有喂狗就進(jìn)行復(fù)位。2) 都是需要在規(guī)定的時間內(nèi)喂狗。3)
    的頭像 發(fā)表于 10-15 17:29 ?3.9w次閱讀

    基于STM32、FreeRTOS 實(shí)現(xiàn)硬件看門狗+軟件看門狗監(jiān)測多任務(wù)的方法

    基于STM32、FreeRTOS實(shí)現(xiàn)硬件看門狗+軟件看門狗監(jiān)測多任務(wù)的方法
    的頭像 發(fā)表于 03-12 10:11 ?9375次閱讀

    嵌入式開發(fā)中的軟、硬件看門狗

    本文從原理、異同、舉例來說明硬件軟件 看門狗 怎么選擇: 一、 硬件看門狗的原理
    的頭像 發(fā)表于 10-12 11:13 ?2824次閱讀

    如何實(shí)現(xiàn)模擬看門狗?

    作者:逸珺 轉(zhuǎn)自:STM32 對于看門狗大家或許不陌生,但對于模擬看門狗有的朋友可能就不甚了解了。本文來聊聊模擬看門狗,旨在梳理相應(yīng)的概念,理解模擬看門狗原理、與常規(guī)
    的頭像 發(fā)表于 10-23 14:51 ?5307次閱讀
    如何實(shí)現(xiàn)模擬<b class='flag-5'>看門狗</b>?

    單片機(jī)硬件看門狗使用經(jīng)驗(yàn)分享

    1.既然選擇使用硬件看門狗,就是想盡可能在只要得電情況下,看門狗就起作用,因此不應(yīng)該通過軟件的方式去使能和禁止開門,默認(rèn)只要得電
    發(fā)表于 12-01 15:51 ?13次下載
    單片機(jī)<b class='flag-5'>硬件</b><b class='flag-5'>看門狗</b>使用經(jīng)驗(yàn)分享

    STM32中的獨(dú)立看門狗和窗口看門狗

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機(jī),跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門狗發(fā)展到今天基本上分為兩大類:獨(dú)立
    的頭像 發(fā)表于 12-22 16:58 ?2136次閱讀

    什么是看門狗,工業(yè)路由器看門狗技術(shù)的功能優(yōu)勢

    一個輸入和一個輸出,其中輸入叫做喂狗,輸出一般連接到另外一個部分的復(fù)位端。看門狗技術(shù)的核心硬件看門狗模塊,分為硬件看門狗
    的頭像 發(fā)表于 03-27 10:16 ?1818次閱讀
    什么是<b class='flag-5'>看門狗</b>,工業(yè)路由器<b class='flag-5'>看門狗</b>技術(shù)的功能優(yōu)勢

    MCU硬件看門狗+軟件看門狗監(jiān)測多任務(wù)的思路

    MCU硬件看門狗+軟件看門狗監(jiān)測多任務(wù)的思路
    的頭像 發(fā)表于 10-24 15:25 ?1816次閱讀
    MCU<b class='flag-5'>硬件</b><b class='flag-5'>看門狗</b>+<b class='flag-5'>軟件</b><b class='flag-5'>看門狗</b>監(jiān)測多任務(wù)的思路

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

    軟件看門狗硬件看門狗都是用于監(jiān)控系統(tǒng)崩潰的工具,它們的作用是在系統(tǒng)出現(xiàn)故障或異常情況時自動恢復(fù)系統(tǒng)。 ?軟件
    的頭像 發(fā)表于 04-16 15:10 ?1069次閱讀
    RM新时代网站-首页