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

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

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

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

嵌入式星球 ? 2020-10-12 11:13 ? 次閱讀

本文從原理、異同、舉例來(lái)說(shuō)明硬件軟件看門狗怎么選擇:

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

圖1 :看門狗芯片功能框圖

該看門狗芯片的主要功能有:
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種看門狗喂狗超時(shí)選項(xiàng):6.3 ms、102 ms、1600 ms、25.6 s(典型值);
4. 支持手動(dòng)復(fù)位輸入;
5. 復(fù)位輸出級(jí):推挽低電平有效,開(kāi)漏低電平有效,推挽高電平有效;
復(fù)位功能說(shuō)明:
該芯片內(nèi)置復(fù)位功能。設(shè)備上電時(shí),芯片的VCC電壓一旦到達(dá)開(kāi)啟閾值電壓Vth,延遲定時(shí)器啟動(dòng),經(jīng)過(guò)延遲時(shí)間Trp,復(fù)位信號(hào)RESET或者/RESET即可輸出,實(shí)現(xiàn)設(shè)備的延遲上電復(fù)位;芯片同時(shí)會(huì)監(jiān)測(cè)VCC的電壓,一旦VCC跌落到Vth以下,經(jīng)過(guò)延遲時(shí)間Rrd后,復(fù)位信號(hào)輸出電平翻轉(zhuǎn),實(shí)現(xiàn)設(shè)備的復(fù)位。

圖2 :復(fù)位功能時(shí)序圖

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

圖3:看門狗功能時(shí)序圖

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

圖4:軟件看門狗功能示意圖

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

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

圖5:軟件看門狗流程圖

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

圖6:硬件看門狗流程圖

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

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

    評(píng)論

    相關(guān)推薦

    看門狗定時(shí)器的工作原理

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

    單片機(jī)開(kāi)發(fā):使用內(nèi)部看門狗定時(shí)器(WDT)還是外掛看門狗芯片?

    不需要看門狗功能。 看門狗定時(shí)器(WDT)是一種用于檢測(cè)在嵌入式系統(tǒng)的異常并復(fù)位單片機(jī)。它通常包含一個(gè)預(yù)裝計(jì)時(shí)器,該計(jì)時(shí)器遞減為零。當(dāng)預(yù)裝的
    發(fā)表于 09-25 13:46

    【「ARM MCU嵌入式開(kāi)發(fā) | 基于國(guó)產(chǎn)GD32F10x芯片」閱讀體驗(yàn)】+書籍整體概況

    一、導(dǎo)言 上周收到《ARM MCU嵌入式開(kāi)發(fā) | 基于國(guó)產(chǎn)GD32F10x芯片》書籍,該紙質(zhì)書籍內(nèi)容可謂是面面俱到,由“清華大學(xué)出版社”出版,印刷第1版時(shí)間為2024年6月份,總共464千字
    發(fā)表于 08-25 22:48

    嵌入式C編程常用的異常錯(cuò)誤處理

    嵌入式C編程,異常錯(cuò)誤處理是確保系統(tǒng)穩(wěn)定性和可靠性的重要部分。以下是一些常見(jiàn)的異常錯(cuò)誤處理方法及其詳細(xì)說(shuō)明和示例: 1. 斷言 (Assertions) 斷言用于在開(kāi)發(fā)階段捕獲程序
    發(fā)表于 08-06 14:32

    嵌入式開(kāi)發(fā)前景怎么樣?

    嵌入式開(kāi)發(fā)前景非常廣闊,這主要得益于物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)等技術(shù)的快速發(fā)展,以及嵌入式系統(tǒng)在各個(gè)領(lǐng)域的廣泛應(yīng)用。以下是對(duì)嵌入式開(kāi)發(fā)前景的詳細(xì)分析
    的頭像 發(fā)表于 07-10 09:00 ?2353次閱讀
    <b class='flag-5'>嵌入式開(kāi)發(fā)</b>前景怎么樣?

    嵌入式開(kāi)發(fā)就業(yè)前景怎么樣?

    。在智能家居領(lǐng)域,嵌入式開(kāi)發(fā)的主要工作是開(kāi)發(fā)各種智能化設(shè)備和系統(tǒng),如智能照明、智能安防、智能家電等。嵌入式開(kāi)發(fā)人員需要掌握相關(guān)的硬件和軟件技術(shù),如處理器、傳感器、通信技術(shù)、操作系統(tǒng)等,
    發(fā)表于 06-07 14:51

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

    系統(tǒng)出現(xiàn)了故障或死鎖,軟件看門狗會(huì)自動(dòng)重啟系統(tǒng)或執(zhí)行其他預(yù)定義的操作。軟件看門狗通常用于嵌入式系統(tǒng),可以方便地進(jìn)行編程和控制。硬件
    的頭像 發(fā)表于 04-16 15:10 ?899次閱讀

    TLF35584集成的看門狗工作應(yīng)用案例

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

    調(diào)試模式下如何調(diào)試看門狗

    大家在調(diào)試GD32 MCU系統(tǒng)的時(shí)候,若開(kāi)了看門狗外設(shè),是否會(huì)碰到進(jìn)入調(diào)試模式看門狗就會(huì)咬造成無(wú)法調(diào)試的問(wèn)題?
    的頭像 發(fā)表于 02-23 09:30 ?1188次閱讀
    調(diào)試模式下如何調(diào)試<b class='flag-5'>看門狗</b>?

    嵌入式看門狗如何提高系統(tǒng)穩(wěn)定性?

    嵌入式系統(tǒng)設(shè)計(jì),系統(tǒng)的穩(wěn)定性至關(guān)重要,它決定了系統(tǒng)的價(jià)值及競(jìng)爭(zhēng)力,而看門狗作為一種重要的穩(wěn)定性增強(qiáng)技術(shù),在保護(hù)系統(tǒng)免受異常行為或故障影響方面起著至關(guān)重要的作用
    的頭像 發(fā)表于 02-20 16:14 ?628次閱讀

    芯知識(shí) | 語(yǔ)音芯片中的聲音播放提示IC內(nèi)置看門狗的作用介紹

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

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

    ):IWDG是一個(gè)定時(shí)器,其計(jì)數(shù)器在啟用后開(kāi)始遞增。在程序,你需要定期喂狗(通過(guò)向IWDG的寄存器寫入特定的值),以防止看門狗超時(shí)。否則,如果超過(guò)了預(yù)定的時(shí)間,系統(tǒng)
    的頭像 發(fā)表于 12-01 08:00 ?1838次閱讀
    STM32的<b class='flag-5'>看門狗</b>原理和示例代碼

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

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

    c語(yǔ)言嵌入式開(kāi)發(fā)

    電子發(fā)燒友網(wǎng)站提供《c語(yǔ)言嵌入式開(kāi)發(fā).zip》資料免費(fèi)下載
    發(fā)表于 11-17 14:11 ?2次下載
    c語(yǔ)言<b class='flag-5'>嵌入式開(kāi)發(fā)</b>

    嵌入式開(kāi)發(fā)學(xué)習(xí)路線

    電子發(fā)燒友網(wǎng)站提供《嵌入式開(kāi)發(fā)學(xué)習(xí)路線.doc》資料免費(fèi)下載
    發(fā)表于 11-17 10:13 ?13次下載
    <b class='flag-5'>嵌入式開(kāi)發(fā)</b>學(xué)習(xí)路線