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

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

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

抄作業(yè)!看門(mén)狗定時(shí)器必備知識(shí)

合宙LuatOS ? 來(lái)源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-12-30 14:44 ? 次閱讀

Air201在模組內(nèi)部集成了硬件看門(mén)狗,今天就一起來(lái)聊聊~

本文將帶你了解看門(mén)狗的工作原理、應(yīng)用架構(gòu)、定時(shí)時(shí)間設(shè)置、軟硬件看門(mén)狗的區(qū)別,以及看門(mén)狗定時(shí)器的典型應(yīng)用場(chǎng)景及關(guān)鍵設(shè)計(jì)因素等內(nèi)容。

同時(shí)通過(guò)具體示例解析,教你如何在一個(gè)簡(jiǎn)單的LuatOS項(xiàng)目中集成看門(mén)狗定時(shí)器,設(shè)置適當(dāng)?shù)?a target="_blank">參數(shù)來(lái)確保系統(tǒng)在正常運(yùn)行和故障場(chǎng)景下都能自動(dòng)恢復(fù)。

Air201最新資料下載

www.air201.cn

wKgZPGdyPx-AJjkkAAaPx4vFsEM206.png

▼ 看門(mén)狗簡(jiǎn)介 ▼

看門(mén)狗(Watch Dog Timer,WDT)——是一種監(jiān)控電路,主要應(yīng)用于嵌入式系統(tǒng),目的是為了提高系統(tǒng)的可靠性和穩(wěn)定性。在看門(mén)狗電路的幫助下,當(dāng)系統(tǒng)出現(xiàn)異常,如程序跑飛或死循環(huán)時(shí),能夠自動(dòng)復(fù)位并重新啟動(dòng)系統(tǒng)。

工作原理:

看門(mén)狗電路通常包括一個(gè)定時(shí)器、一個(gè)喂狗信號(hào)和一個(gè)復(fù)位(Reset)輸出。在正常的系統(tǒng)運(yùn)行過(guò)程中,主控制器(MCU)會(huì)定期向喂狗信號(hào)發(fā)送一個(gè)脈沖,以“喂”看門(mén)狗,防止其計(jì)時(shí)到達(dá)預(yù)設(shè)值。如果MCU由于某種原因未能在規(guī)定時(shí)間內(nèi)喂狗,看門(mén)狗定時(shí)器將會(huì)計(jì)滿并輸出一個(gè)復(fù)位信號(hào),將MCU復(fù)位。

應(yīng)用架構(gòu):

在實(shí)際應(yīng)用中,看門(mén)狗芯片通常連接到MCU的一個(gè)GPIO端口。MCU在其正常運(yùn)行期間會(huì)定期向該端口寫(xiě)入一個(gè)高電平或低電平信號(hào),以此告訴看門(mén)狗它仍然正常工作。如果MCU未能按時(shí)發(fā)出信號(hào),看門(mén)狗將觸發(fā)復(fù)位操作。

芯片引腳功能:

某些看門(mén)狗芯片,如TPV6823具有多個(gè)引腳:包括供電引腳(VCC)、喂狗信號(hào)引腳(WDI)、復(fù)位輸出引腳(RESETn)和手動(dòng)復(fù)位輸入引腳(MRn)。這些引腳提供了多種復(fù)位方式和時(shí)間設(shè)置,以適應(yīng)不同的應(yīng)用需求。

定時(shí)時(shí)間:

看門(mén)狗的定時(shí)時(shí)間通常需要保持在一個(gè)相對(duì)較長(zhǎng)的周期,例如200毫秒左右。這樣的設(shè)置是為了確保在正常運(yùn)行中,即使MCU由于干擾而未能及時(shí)喂狗,看門(mén)狗也不會(huì)立即復(fù)位系統(tǒng),從而給MCU足夠的時(shí)間來(lái)響應(yīng)和處理問(wèn)題。

軟硬件看門(mén)狗的區(qū)別:

硬件看門(mén)狗利用獨(dú)立的定時(shí)器電路來(lái)實(shí)現(xiàn)監(jiān)控功能,具有較高的可靠性。軟件看門(mén)狗則使用處理器內(nèi)部的定時(shí)器或其他機(jī)制來(lái)實(shí)現(xiàn),雖然在一定程度上可以簡(jiǎn)化硬件設(shè)計(jì),但在可靠性方面通常不如硬件看門(mén)狗。

WDT庫(kù)提供了一系列用于管理和操作看門(mén)狗定時(shí)器的API函數(shù),開(kāi)發(fā)者可以通過(guò)Air201方便地在LuatOS系統(tǒng)中管理看門(mén)狗定時(shí)器,從而提高設(shè)備的穩(wěn)定性。

軟硬件相關(guān)準(zhǔn)備工作及最新示例源碼下載詳見(jiàn):

https://docs.openluat.com/air201/luatos/app/service/wdt/

一、看門(mén)狗示例解析

本文示例分為兩個(gè)部分:

正常運(yùn)行情況和故障場(chǎng)景模擬。

在正常運(yùn)行情況下,示例代碼會(huì)初始化看門(mén)狗庫(kù),并設(shè)置超時(shí)時(shí)間和喂狗周期。然后,創(chuàng)建一個(gè)任務(wù),該任務(wù)會(huì)定期喂狗,以防止看門(mén)狗定時(shí)器超時(shí)。如果看門(mén)狗定時(shí)器超時(shí),系統(tǒng)將自動(dòng)重啟。

在故障場(chǎng)景模擬部分,我們添加了一個(gè)新的任務(wù)fault_task,該任務(wù)進(jìn)入一個(gè)死循環(huán),不進(jìn)行喂狗操作。這樣,當(dāng)看門(mén)狗定時(shí)器超時(shí)后,系統(tǒng)將自動(dòng)重啟,模擬了設(shè)備在故障場(chǎng)景下的自動(dòng)恢復(fù)能力。

1.1 程序正常運(yùn)行

1.1.1 示例代碼介紹

項(xiàng)目信息

在開(kāi)頭定義了項(xiàng)目名稱(chēng)(PROJECT)和版本(VERSION),并通過(guò)日志輸出這些信息。

引入系統(tǒng)庫(kù):

通過(guò)require("sys") 引入了sys庫(kù),這是LuatOS中常用的系統(tǒng)庫(kù)。

任務(wù)初始化:

使用sys.taskInit函數(shù)創(chuàng)建一個(gè)新的任務(wù)。在任務(wù)中檢查wdt庫(kù)是否可用,如果不可用,則進(jìn)入一個(gè)無(wú)限循環(huán),每秒鐘輸出一次提示信息。

WDT配置:

初始化wdt庫(kù),設(shè)置超時(shí)時(shí)間為9秒。設(shè)置一個(gè)定時(shí)器每3秒喂一次看門(mén)狗,確保設(shè)備在正常運(yùn)行的情況下不會(huì)重啟;若發(fā)生軟件崩潰或硬件故障,最多18秒后將自動(dòng)重啟設(shè)備。

運(yùn)行系統(tǒng):

最后通過(guò)sys.run() 啟動(dòng)系統(tǒng),后面不應(yīng)添加任何其他語(yǔ)句。

1.1.2 完整代碼展示

wKgZO2dyP1iAOrMJAATrj7x_ANc937.png

1.1.3 運(yùn)行結(jié)果展示

通過(guò)Luatools工具查看日志:

wKgZO2dyP2WAMfbsAAMoa4r1Jcw219.png

1.2 添加死循環(huán)模擬故障場(chǎng)景

1.2.1 示例代碼介紹

我們?cè)谠惺纠a中創(chuàng)建了一個(gè)新的任務(wù),命名為fault_task,它將進(jìn)入一個(gè)死循環(huán)。由于這個(gè)新任務(wù)不會(huì)喂看門(mén)狗,設(shè)備將在超時(shí)后自動(dòng)重啟。這樣,我們就可以有效地模擬看門(mén)狗的超時(shí)情況。

wKgZO2dyP3aAYQBkAAEWpwMIeAM783.png

1.2.2 完整代碼展示

wKgZPGdyP46AXVAQAAOFKd8u_I8599.png

1.2.3 運(yùn)行結(jié)果展示

wKgZO2dyP6OAUkPUAATeOubucu4417.png

二、看門(mén)狗的擴(kuò)展

2.1 看門(mén)狗定時(shí)器的應(yīng)用場(chǎng)景

看門(mén)狗定時(shí)器廣泛應(yīng)用于各種嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備中,特別是在需要高可靠性的應(yīng)用場(chǎng)景中。

一些典型的應(yīng)用場(chǎng)景包括:

工業(yè)控制系統(tǒng):

工業(yè)生產(chǎn)過(guò)程中,控制系統(tǒng)需要高度穩(wěn)定和可靠,看門(mén)狗定時(shí)器可以確保系統(tǒng)在受到干擾或異常情況時(shí)能夠迅速恢復(fù)。

車(chē)載電子系統(tǒng):

車(chē)載電子系統(tǒng)面臨著復(fù)雜的電磁環(huán)境和振動(dòng),看門(mén)狗定時(shí)器可以幫助系統(tǒng)在上電復(fù)位后保持穩(wěn)定運(yùn)行,防止因軟件或硬件故障導(dǎo)致的系統(tǒng)死機(jī)。

醫(yī)療設(shè)備:

醫(yī)療設(shè)備對(duì)穩(wěn)定性和可靠性有很高的要求,看門(mén)狗定時(shí)器可以確保設(shè)備在長(zhǎng)時(shí)間運(yùn)行過(guò)程中不會(huì)因?yàn)楣收隙V构ぷ?,從而保障患者的安全和設(shè)備的連續(xù)性。

通信設(shè)備:

在通信系統(tǒng)中,看門(mén)狗定時(shí)器可以用于監(jiān)控和保護(hù)網(wǎng)絡(luò)設(shè)備,確保數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性。

2.2 看門(mén)狗定時(shí)器的設(shè)計(jì)考慮因素

在設(shè)計(jì)和實(shí)現(xiàn)看門(mén)狗定時(shí)器時(shí),需要考慮以下幾個(gè)關(guān)鍵因素:

超時(shí)時(shí)間:

超時(shí)時(shí)間是指看門(mén)狗定時(shí)器從開(kāi)始計(jì)時(shí)到觸發(fā)復(fù)位信號(hào)的時(shí)間間隔。這個(gè)時(shí)間需要根據(jù)具體應(yīng)用的需求來(lái)設(shè)定,通常需要平衡系統(tǒng)的穩(wěn)定性和響應(yīng)速度。

喂狗周期:

喂狗周期是指主控制器向看門(mén)狗芯片發(fā)送脈沖的時(shí)間間隔。喂狗周期應(yīng)該設(shè)置得足夠短,以防止看門(mén)狗定時(shí)器在正常運(yùn)行中誤觸發(fā)復(fù)位。

看門(mén)狗復(fù)位輸出:

看門(mén)狗定時(shí)器通常具有一個(gè)復(fù)位輸出引腳,用于向主控制器提供復(fù)位信號(hào)。在設(shè)計(jì)時(shí),需要確保復(fù)位輸出引腳的電平和主控制器的復(fù)位輸入引腳兼容。

看門(mén)狗功耗:

在設(shè)計(jì)看門(mén)狗定時(shí)器時(shí),需要考慮其功耗,特別是在低功耗應(yīng)用中。選擇低功耗的看門(mén)狗芯片和合理的電源設(shè)計(jì)對(duì)于系統(tǒng)的整體功耗至關(guān)重要。

兼容性和可擴(kuò)展性:

在設(shè)計(jì)看門(mén)狗定時(shí)器時(shí),需要考慮其與其他系統(tǒng)的兼容性和可擴(kuò)展性。確??撮T(mén)狗定時(shí)器能夠與其他硬件和軟件組件無(wú)縫集成,并在未來(lái)需要時(shí)能夠輕松擴(kuò)展或升級(jí)。

通過(guò)綜合考慮這些因素,開(kāi)發(fā)者可以設(shè)計(jì)和實(shí)現(xiàn)一個(gè)穩(wěn)定、可靠且高效的看門(mén)狗定時(shí)器解決方案,以確保嵌入式系統(tǒng)的正常運(yùn)行和數(shù)據(jù)傳輸?shù)姆€(wěn)定性。

三、看門(mén)狗的常見(jiàn)問(wèn)題

3.1 看門(mén)狗定時(shí)器是如何工作的?

看門(mén)狗定時(shí)器通過(guò)主控制器定期向其發(fā)送脈沖信號(hào)來(lái)保持計(jì)時(shí)。如果主控制器在規(guī)定時(shí)間內(nèi)未能發(fā)送脈沖,看門(mén)狗定時(shí)器將觸發(fā)復(fù)位信號(hào),將主控制器復(fù)位。

3.2 如何配置看門(mén)狗定時(shí)器的超時(shí)時(shí)間和喂狗周期?

在LuatOS等嵌入式操作系統(tǒng)中,看門(mén)狗定時(shí)器的超時(shí)時(shí)間和喂狗周期通常通過(guò)API函數(shù)進(jìn)行配置??梢愿鶕?jù)具體應(yīng)用的需求來(lái)設(shè)置合適的時(shí)間間隔。

若使用本文中所提到的watchdog操作庫(kù),可按照以下步驟進(jìn)行配置:

1)初始化看門(mén)狗:

使用wdt.init(timeout) 函數(shù)來(lái)初始化看門(mén)狗定時(shí)器,timeout參數(shù)是超時(shí)時(shí)長(zhǎng),單位為毫秒。

例如,如果你希望看門(mén)狗的超時(shí)時(shí)間為9000毫秒,可以這樣調(diào)用:

wKgZPGdyP7mAacykAAAHhr8S5i4126.png

2)設(shè)置看門(mén)狗超時(shí)時(shí)間(可選):

如果設(shè)備支持,可以調(diào)用:

wdt.setTimeout(timeout)

重新設(shè)置看門(mén)狗的超時(shí)時(shí)長(zhǎng),單位同樣為毫秒。

例如:

wKgZO2dyP8aABMazAAAOIpsJCGg767.png

3)定期喂狗:

使用wdt.feed() 函數(shù)來(lái)喂狗,以重置超時(shí)計(jì)時(shí)。建議使用定時(shí)器定期調(diào)用這個(gè)函數(shù)。

例如,使用系統(tǒng)定時(shí)器每3000毫秒喂一次狗,可以這樣設(shè)置:

wKgZPGdyP9GAY-YcAAAKV_16bPw036.png

通過(guò)以上步驟,你可以成功配置看門(mén)狗定時(shí)器的超時(shí)時(shí)間和喂狗周期,確保設(shè)備不會(huì)因?yàn)槲次构范貑ⅰ?/p>

今天的內(nèi)容就分享到這里了~

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5085

    文章

    19138

    瀏覽量

    305726
  • 看門(mén)狗
    +關(guān)注

    關(guān)注

    10

    文章

    565

    瀏覽量

    70838
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44704

    瀏覽量

    374021
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    安利給工程師!看門(mén)狗相關(guān)知識(shí)

    看門(mén)狗能夠及時(shí)檢測(cè)并采取相應(yīng)措施,從而避免系統(tǒng)長(zhǎng)時(shí)間處于故障狀態(tài)。本文將詳細(xì)介紹看門(mén)狗的工作原理及其正確使用方法。 同時(shí)通過(guò)具體示例解析,教你如何在一個(gè)簡(jiǎn)單的LuatOS項(xiàng)目中集成看門(mén)狗定時(shí)器
    的頭像 發(fā)表于 12-31 14:29 ?101次閱讀
    安利給工程師!<b class='flag-5'>看門(mén)狗</b>相關(guān)<b class='flag-5'>知識(shí)</b>

    TPS3431EVM帶使能的標(biāo)準(zhǔn)可編程看門(mén)狗定時(shí)器

    電子發(fā)燒友網(wǎng)站提供《TPS3431EVM帶使能的標(biāo)準(zhǔn)可編程看門(mén)狗定時(shí)器.pdf》資料免費(fèi)下載
    發(fā)表于 12-24 15:48 ?0次下載
    TPS3431EVM帶使能的標(biāo)準(zhǔn)可編程<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>

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

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

    禁用Tl系列監(jiān)控看門(mén)狗定時(shí)器

    電子發(fā)燒友網(wǎng)站提供《禁用Tl系列監(jiān)控看門(mén)狗定時(shí)器.pdf》資料免費(fèi)下載
    發(fā)表于 10-12 09:40 ?0次下載
    禁用Tl系列監(jiān)控<b class='flag-5'>器</b>的<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>

    DRV3205-Q1的問(wèn)答看門(mén)狗定時(shí)器配置

    電子發(fā)燒友網(wǎng)站提供《DRV3205-Q1的問(wèn)答看門(mén)狗定時(shí)器配置.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 10:42 ?0次下載
    DRV3205-Q1的問(wèn)答<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>配置

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

    的損害要小。 以上就是英銳恩單片機(jī)開(kāi)發(fā)工程師分享的內(nèi)部看門(mén)狗定時(shí)器(WDT)與外掛看門(mén)狗芯片的知識(shí)。如有錯(cuò)誤及說(shuō)明不到位的地方,請(qǐng)指正,謝謝大家!
    發(fā)表于 09-25 13:46

    如何在PSOC創(chuàng)建者項(xiàng)目中確認(rèn)看門(mén)狗定時(shí)器已啟用?

    您好,我是 PSOC BLE 部件的新手,只有一項(xiàng)任務(wù),即確認(rèn)看門(mén)狗定時(shí)器是否正確啟用并按需要工作。我是 PSOC Creator 的新用戶(hù)。如有任何幫助,將不勝感激。如何在 PSOC 創(chuàng)建者項(xiàng)目中確認(rèn)看門(mén)狗
    發(fā)表于 07-02 07:10

    CX3看門(mén)狗定時(shí)器何時(shí)使用,有什么好處?

    我正在猶豫是否要在印刷電路板上安裝運(yùn)行看門(mén)狗定時(shí)器的元件,因此提出了這個(gè)問(wèn)題。 在我的設(shè)計(jì)中,攝像頭一直用于視頻流,因此 CX3 從未進(jìn)入睡眠模式。 此外,我不明白為什么要為 ARM926EJ-S
    發(fā)表于 05-28 08:13

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

    軟件看門(mén)狗和硬件看門(mén)狗都是用于監(jiān)控系統(tǒng)崩潰的工具,它們的作用是在系統(tǒng)出現(xiàn)故障或異常情況時(shí)自動(dòng)恢復(fù)系統(tǒng)。 ?軟件看門(mén)狗是一種程序,運(yùn)行在操作系統(tǒng)中,通過(guò)定時(shí)檢測(cè)系統(tǒng)是否正常運(yùn)行來(lái)判斷系統(tǒng)
    的頭像 發(fā)表于 04-16 15:10 ?1113次閱讀

    看門(mén)狗定時(shí)器的微處理監(jiān)控UCCx946數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《帶看門(mén)狗定時(shí)器的微處理監(jiān)控UCCx946數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 04-01 15:26 ?0次下載
    帶<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的微處理<b class='flag-5'>器</b>監(jiān)控<b class='flag-5'>器</b>UCCx946數(shù)據(jù)表

    集成有看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3851數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《集成有看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3851數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-29 10:00 ?0次下載
    集成有<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的高精度電壓監(jiān)控<b class='flag-5'>器</b>TPS3851數(shù)據(jù)表

    集成看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3851-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《集成看門(mén)狗定時(shí)器的高精度電壓監(jiān)控TPS3851-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-28 17:25 ?0次下載
    集成<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>的高精度電壓監(jiān)控<b class='flag-5'>器</b>TPS3851-Q1數(shù)據(jù)表

    帶可編程延遲和看門(mén)狗定時(shí)器TPS386000-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《帶可編程延遲和看門(mén)狗定時(shí)器TPS386000-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-14 10:57 ?0次下載
    帶可編程延遲和<b class='flag-5'>看門(mén)狗</b><b class='flag-5'>定時(shí)器</b>TPS386000-Q1數(shù)據(jù)表

    求助,關(guān)于看門(mén)狗定時(shí)器的喂狗時(shí)間和多APP看門(mén)狗的問(wèn)題求解

    參考例程,在看門(mén)狗定時(shí)器時(shí)間的配置上,我看到如下函數(shù): /* Step 3- Write match value */ #if(WDT_DEMO == WDT_INTERRUPT_DEMO
    發(fā)表于 02-21 06:50

    什么是看門(mén)狗?如何實(shí)現(xiàn)對(duì)系統(tǒng)程序的監(jiān)控?

    看門(mén)狗通過(guò)定時(shí)器計(jì)數(shù)和相關(guān)的控制邏輯來(lái)實(shí)現(xiàn)功能。在系統(tǒng)正常運(yùn)行時(shí),定時(shí)器會(huì)以固定的時(shí)間間隔重復(fù)計(jì)數(shù),如果系統(tǒng)一切正常,那么定時(shí)器會(huì)定期被重
    的頭像 發(fā)表于 02-02 15:58 ?2551次閱讀