單片機獨立看門(mén)狗和窗口看門(mén)狗的區別
早期的MCU沒(méi)有看門(mén)狗,就容易引起有些產(chǎn)品死機了不能重啟工作。為了避免這個(gè)問(wèn)題,后期的MCU在內部集成了看門(mén)狗的功能。
本文引用地址:http://dyxdggzs.com/article/202407/461253.htm為了滿(mǎn)足更多使用場(chǎng)景,現在很多MCU都集成了兩個(gè)看門(mén)狗:獨立看門(mén)狗與窗口看門(mén)狗。
拿現在大家熟悉的STM32來(lái)說(shuō),都集成了獨立看門(mén)狗和窗口看門(mén)狗,下面就展開(kāi)來(lái)講講這個(gè)兩個(gè)看門(mén)狗以及它們的區別。
獨立看門(mén)狗
獨立看門(mén)狗,顧名思義,就是獨立的一個(gè)看門(mén)狗,由其專(zhuān)用低速時(shí)鐘 (LSI) 驅動(dòng),因此,即便在主時(shí)鐘發(fā)生故障時(shí)仍然保持工作狀態(tài)。
IWDG 最適合應用于那些需要看門(mén)狗作為一個(gè)在主程序之外,能夠完全獨立工作,并且對時(shí)間精度要求較低的場(chǎng)合。
獨立看門(mén)狗特性:
自由運行遞減計數器
時(shí)鐘由獨立 RC 振蕩器提供(可在待機和停止模式下運行)
當遞減計數器值達到 0x000 時(shí)產(chǎn)生復位(如果看門(mén)狗已激活)
窗口看門(mén)狗
窗口看門(mén)狗,之所以稱(chēng)為窗口,是因為其喂狗時(shí)間是一個(gè)有上下限的范圍內,你可以通過(guò)設定相關(guān)寄存器,設定其上限時(shí)間和下限時(shí)間:喂狗的時(shí)間不能過(guò)早也不能過(guò)晚。

窗口型看門(mén)狗
窗口看門(mén)狗的上窗口就是配置寄存器WWDG->CFR里設定的W[6:0];下窗口是固定的0x40;當窗口看門(mén)狗的計數器在上窗口值之外,或是低于下窗口值都會(huì )產(chǎn)生復位。

窗口型看門(mén)狗工作原理
上窗口的值可以只有設定,7位二進(jìn)制數最大只可以設定為127(0x7F),最小又必須大于下窗口的0x40,所以其取值范圍為64~127(即:0x40~0x7F);配置寄存器WWDG->CFR中為計數器設定時(shí)鐘分頻系數,確定這個(gè)計數器可以定時(shí)的時(shí)間范圍,從而確定窗口的時(shí)間范圍。
窗口看門(mén)狗的時(shí)鐘來(lái)自于PCLK1,在時(shí)鐘配置中,其頻率為外部時(shí)鐘經(jīng)倍頻器后的二分頻時(shí)鐘,即為36MHz,根據手冊可以知道其定時(shí)時(shí)間計算方法:

兩者對比
1.使用條件對比
2.特點(diǎn)對比
兩者的區別
獨立看門(mén)狗與窗口看門(mén)狗的區別如下:
獨立看門(mén)狗沒(méi)有中斷,窗口看門(mén)狗有中斷。
獨立看門(mén)狗有硬件軟件之分,窗口看門(mén)狗只能軟件控制。
獨立看門(mén)狗只有下限,窗口看門(mén)狗有下限和上限。
獨立看門(mén)狗是12位遞減的,窗口看門(mén)狗是7位遞減的。
獨立看門(mén)狗是用的內部大約40KHz的RC振蕩器,窗口看門(mén)狗是用的系統時(shí)鐘APB1ENR
獨立看門(mén)狗沒(méi)有中斷功能,只要在計數器減到0(下限)之前,重新裝載計數器的值,就不會(huì )產(chǎn)生復位。
要注意看門(mén)狗和外接復位IC同時(shí)存在的情況,外部電路可能會(huì )阻止看門(mén)狗復位。
窗口看門(mén)狗有中斷,這個(gè)中斷的作用是在計數器達到下限0x40的時(shí)候,產(chǎn)生中斷,讓你喂狗;如果你不喂狗,計數器的值變?yōu)?x3f的時(shí)候,將會(huì )產(chǎn)生系統復位;即使是喂狗,也應該在中斷里快速喂狗,要不時(shí)間長(cháng)了計數器減1也會(huì )變成0x3f產(chǎn)生復位。
窗口看門(mén)狗還有一個(gè)上限值,這個(gè)值如果大于計數器的初始值,那么就沒(méi)有任何作用了;這個(gè)值小于計數器初始值的時(shí)候,當計數器的值大于上限值時(shí)你對計數器進(jìn)行裝載,將會(huì )產(chǎn)生復位,只有在計數器減到小于上限值時(shí),你才能重新裝載計數器。意思就是說(shuō)只有計數器的值在上限值和下限值之間你才能裝載計數器,否則就會(huì )產(chǎn)生系統復位,當上限值小于下限值,也沒(méi)有意義。
評論