当前位置 - 股票行情交易網 - 企業服務 - 單片機中的看門狗是什麽東西,有什麽作用

單片機中的看門狗是什麽東西,有什麽作用

看門狗(WDT)是壹個定時器。看門狗是用來防止萬壹單片機程序出錯造成重大損失的。防錯的原理很簡單,它在硬件上就是壹個定時器,當它溢出的時候就會讓單片機強制復位使程序重新開始執行。

正常的情況下是不能讓它溢出的,所以在程序上每隔壹段時間要給他置壹次值(俗稱餵狗),只要程序中正常給它餵他就不會溢出。

壹旦程序跑飛了,有幹擾或者進入死循環之類的情況時,不能正常執行程序了,那麽就永遠執行不到餵狗的指令了,但此時定時器是硬件控制的,仍然會走,所以溢出了,單片機就復位了。

壹般安全性要求比較高的,系統跑飛了會造成重大事故的都會加壹個“狗”保安全。

通常,看門狗的溢出時間越短越靈敏,跑飛之後復位的時間越短,也就越安全,但是,餵狗的操作也要更頻繁。

擴展資料:

看門狗工作原理:

使用時,WDT將遞增直到溢出或“超時”。 除非處於休眠或空閑模式,否則WDT超時將強制器件復位。 為避免WDT超時復位,用戶必須使用PWRSAV或CLRWDT指令定期清除看門狗定時器。 如果WDT在休眠或空閑模式下超時。

器件將喚醒並從執行PWRSAV指令的位置繼續執行代碼。 在以上兩種情況下,WDTO位(RCON <4>)將被置1,表明器件復位或喚醒事件是由WDT超時引起的。?

如果WDT將CPU從睡眠或空閑模式喚醒,則還將置位“睡眠”狀態位(RCON <3>)或“空閑”狀態位(RCON <2>),表明該設備先前已上電。 保存模式。

在正常操作期間,WDT超時將產生設備復位。 當設備處於睡眠狀態時,WDT超時將喚醒設備以繼續正常操作(稱為WDT喚醒)。 清零WDTE設置位可以永久關閉WDT。 後分頻器分配完全由軟件控制,也就是說,可以在程序執行期間隨時更改它。

為避免不可預測的器件復位,當從Timer0預分頻器分配更改為WDT後分頻器分配時,必須執行以下指令序列。 即使禁止了WDT,也必須執行該指令序列。

百度百科-看門狗定時器