<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 合宙低功耗4G模組:Air780E內部硬件看門(mén)狗(wdt)示例

合宙低功耗4G模組:Air780E內部硬件看門(mén)狗(wdt)示例

發(fā)布人:13673998452 時(shí)間:2025-01-25 來(lái)源:工程師 發(fā)布文章

一、看門(mén)狗電路介紹

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


1.1 看門(mén)狗的工作原理

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


1.2 看門(mén)狗的應用架構

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


1.3 看門(mén)狗芯片的功能和硬件

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


1.4 看門(mén)狗的定時(shí)時(shí)間

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


1.5 看門(mén)狗的類(lèi)型

看門(mén)狗可以分為獨立看門(mén)狗和窗口看門(mén)狗。獨立看門(mén)狗的時(shí)間精度要求較低,而窗口看門(mén)狗則用于時(shí)間精度要求較高的場(chǎng)合。


1.6 軟硬件看門(mén)狗的區別

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

總結而言,看門(mén)狗是一種重要的系統保護機制,通過(guò)定期“喂狗”來(lái)確保系統的正常運行。當系統出現異常時(shí),看門(mén)狗能夠及時(shí)復位系統,防止死循環(huán)和程序跑飛等情況的發(fā)生,從而提高系統的可靠性和穩定性。在實(shí)際應用中,開(kāi)發(fā)者需要根據具體需求選擇合適的看門(mén)狗解決方案,并設置適當的時(shí)間參數,以實(shí)現最佳的保護效果。


二、演示功能概述

本文演示主要通過(guò) Air780E 核心板和 LuatOS 系統,介紹如何使用看門(mén)狗定時(shí)器(WDT)庫來(lái)防止嵌入式設備死機??撮T(mén)狗電路是一種監控電路,主要應用于嵌入式系統,目的是為了提高系統的可靠性和穩定性。在看門(mén)狗電路的幫助下,當系統出現異常時(shí),如程序跑飛或死循環(huán),能夠自動(dòng)復位并重新啟動(dòng)系統。

演示分為兩個(gè)部分:正常運行情況和故障場(chǎng)景模擬。

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

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

通過(guò)這個(gè)演示,我們可以看到看門(mén)狗定時(shí)器在嵌入式系統中的重要作用,它能夠有效防止系統死機,提高系統的穩定性和可靠性。


三、演示硬件環(huán)境


3.1 開(kāi)發(fā)板


本文以Air780E核心板為例,

此核心板的詳細使用說(shuō)明參考:
https://docs.openluat.com/air780e/product/

3.2 SIM 卡

在中國大陸環(huán)境下,使用移動(dòng),電信,聯(lián)通的物聯(lián)網(wǎng)卡或者手機卡都可以。


3.3 PC 電腦

WIN7以及以上版本的WINDOWS系統。


3.4 數據通信線(xiàn)

1. USB 轉 Type-C 數據線(xiàn)

它的一端是 USB 接口,另一端是 Type-C 接口。

image.png


四、演示軟件環(huán)境


4.1 Luatools 下載調試工具

Luatools 工具由合宙推出,支持最新固件獲取、固件打包、trace 打印及單機燒錄等功能。

工具使用說(shuō)明參考:
Luatools 下載和詳細使用:
https://docs.openluat.com/Luatools/


4.2 源碼及固件

1)底層 core 下載地址:LuatOS 固件版本下載地址:https://docs.openluat.com/air780e/luatos/firmware/

本 demo 使用的固件是 core_V1112 壓縮包 內的 LuatOS-SoC_V1112_EC618_FULL.soc

image.png

2) demo 位置

本 demo 主要用于演示如何在 LuatOS 系統中使用看門(mén)狗定時(shí)器(wdt)庫來(lái)防止設備死機。

demo位置:https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/wdt

3)源碼及固件已打包壓縮,如下所示

壓縮包中 core 文件夾存放的是固件,code 文件夾存放的是腳本代碼。


五、軟硬件資料


5.1 watchdog 操作庫介紹


5.1.1 watchdog 庫介紹

該庫提供了一系列用于管理和操作看門(mén)狗定時(shí)器的 API 函數,使得開(kāi)發(fā)者可以方便地在 LuatOS 系統中管理看門(mén)狗定時(shí)器,從而提高設備的穩定性。


5.1.2 API 接口介紹

本教程所使用API接口參考:
https://wiki.luatos.com/api/wdt.html?highlight=watchdog

image.png


5.2 Air780E 核心板燒錄說(shuō)明


5.2.1 選擇固件和腳本


1)打開(kāi) Luatools 工具

注意,大家只需要跟著(zhù)做到第四步即可,第五步跟著(zhù)后面的操作再做。

image.png


5.2.2 燒錄


1)將 Air780E 核心板通過(guò) USB 數據線(xiàn)連接至電腦,如下圖所示:

image.png


2)根據下方操作進(jìn)行燒錄

此時(shí)就需要大家先點(diǎn)擊 Luatools 工具上的 下載底層與腳本/下載腳本,再執行下方操作了。

開(kāi)發(fā)板處于未開(kāi)機狀態(tài):此時(shí)先按住下載模式按鍵(BOOT 鍵)不放,再長(cháng)按開(kāi)機鍵(POW 鍵)開(kāi)機,若不出意外開(kāi)發(fā)板將會(huì )進(jìn)入下載模式,Luatools 工具下載進(jìn)度條會(huì )開(kāi)始跑,這時(shí)便可以松開(kāi) BOOT 鍵和 POW 鍵,等到工具提示下載完成即可。

開(kāi)發(fā)板已經(jīng)處于開(kāi)機狀態(tài):此時(shí)可以先按住 BOOT 鍵不放,再短按復位鍵(RST 鍵)后開(kāi)發(fā)板會(huì )重啟并進(jìn)入下載模式。


5.2.3 不同模式下的端口顯示


1) 正常開(kāi)機模式

image.png


2)下載模式

image.png



六、功能驗證


6.1 程序正常運行


6.1.1 示例代碼介紹


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

2)引入系統庫:
通過(guò) require("sys") 引入了 sys 庫,這是 LuatOS 中常用的系統庫。

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

4)wdt 配置:

  • 初始化 wdt 庫,設置超時(shí)時(shí)間為 9 秒。

  • 設置一個(gè)定時(shí)器每 3 秒喂一次看門(mén)狗,確保設備在正常運行的情況下不會(huì )重啟。

  • 說(shuō)明了若發(fā)生軟件崩潰或硬件故障,最多 18 秒后將自動(dòng)重啟設備。

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


6.1.2 完整代碼展示

image.pngimage.png


6.1.3 運行結果展示

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

image.png

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

6.2.1 示例代碼介紹

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

image.png


6.2.2 完整代碼展示
image.pngimage.png

6.2.3 運行結果展示
image.png

七、總結

本次演示通過(guò) Air780E 核心板和 LuatOS 系統,詳細介紹了如何使用看門(mén)狗定時(shí)器(WDT)庫來(lái)防止嵌入式設備死機??撮T(mén)狗電路作為一種重要的系統保護機制,能夠在系統異常時(shí)自動(dòng)復位并重新啟動(dòng)系統,從而提高系統的可靠性和穩定性。

在演示中,我們首先介紹了看門(mén)狗的工作原理、應用架構、定時(shí)時(shí)間設置以及軟硬件看門(mén)狗的區別。接著(zhù),我們通過(guò)實(shí)際操作,展示了如何在一個(gè)簡(jiǎn)單的 LuatOS 項目中集成看門(mén)狗定時(shí)器,并設置了適當的參數來(lái)確保系統在正常運行和故障場(chǎng)景下都能自動(dòng)恢復。

通過(guò)本次演示,我們深入理解了看門(mén)狗定時(shí)器在嵌入式系統中的工作原理和應用價(jià)值,以及在實(shí)際項目中如何有效地利用看門(mén)狗庫來(lái)提高系統的穩定性和可靠性。這對于嵌入式系統開(kāi)發(fā)者來(lái)說(shuō),是一個(gè)具有重要意義的技能。


八、擴展

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

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

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

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

3)醫療設備:醫療設備對穩定性和可靠性有很高的要求,看門(mén)狗定時(shí)器可以確保設備在長(cháng)時(shí)間運行過(guò)程中不會(huì )因為故障而停止工作,從而保障患者的安全和設備的連續性。

4)通信設備:在通信系統中,看門(mén)狗定時(shí)器可以用于監控和保護網(wǎng)絡(luò )設備,確保數據傳輸的穩定性和可靠性。


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

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

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

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

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

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

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

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



九、常見(jiàn)問(wèn)題

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

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


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

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

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


1)初始化看門(mén)狗:
使用 wdt.init(timeout) 函數來(lái)初始化看門(mén)狗定時(shí)器,timeout 參數是超時(shí)時(shí)長(cháng),單位為毫秒。例如,如果你希望看門(mén)狗的超時(shí)時(shí)間為9000毫秒,可以這樣調用:

image.png


2)設置看門(mén)狗超時(shí)時(shí)間(可選):
如果設備支持,可以調用 wdt.setTimeout(timeout) 來(lái)重新設置看門(mén)狗的超時(shí)時(shí)長(cháng),單位同樣為毫秒。例如:
image.png


3)定期喂狗:
使用 wdt.feed() 函數來(lái)喂狗,以重置超時(shí)計時(shí)。建議使用定時(shí)器定期調用這個(gè)函數。例如,使用系統定時(shí)器每3000毫秒喂一次狗,可以這樣設置:

image.png

通過(guò)以上步驟,你可以成功配置看門(mén)狗定時(shí)器的超時(shí)時(shí)間和喂狗周期,確保設備不會(huì )因為未喂狗而重啟。


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。




相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>