91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

中科芯CKS32F107XX系列MCU的獨立看門狗介紹

中科芯MCU ? 來源:中科芯MCU ? 2025-11-28 14:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MCU微課堂

CKS32F107XX系列獨立看門狗介紹

第六十七期 2025.11.24

看門狗簡介

中科芯CKS32F107xx系列產(chǎn)品內(nèi)部提供兩個看門狗定時器單元,獨立型看門狗IWDG(Independent Watchdog)和窗口型看門狗WWDG(Window Watchdog),它們在安全性、時間精確性和使用靈活性方面變現(xiàn)得非常優(yōu)秀。兩個看門狗定時器單元都可用來檢測由軟件錯誤引起的故障,具體表現(xiàn)為當計數(shù)器達到給定的超時值或未能在指定時間窗口內(nèi)刷新計數(shù)器的值,會觸發(fā)系統(tǒng)復位。

IWDG由MCU內(nèi)部獨立RC振蕩器產(chǎn)生的低速時鐘LSI(Low-speed Internal)驅(qū)動,因此即使主時鐘發(fā)生故障它也仍然有效。而WWDG是由從APB1分頻后得到的時鐘驅(qū)動,通過可配置的時間窗口來檢測應(yīng)用程序非正常的過遲或過早的操作。IWDG最適合應(yīng)用于那些需要看門狗作為一個在主程序之外,能夠完全獨立工作,并且對時間精度要求較低的場合,比如檢測由程序跑飛或死機引起的故障。WWDG最適合那些需要看門狗在精確計時窗口時間內(nèi)起作用的應(yīng)用程序,比如檢測由外部干擾或不可預(yù)見的邏輯條件造成的應(yīng)用程序背離正常運行序列而產(chǎn)生的軟件故障。

IWDG詳細介紹

IWDG通俗的解釋它是一個12位的遞減計數(shù)器,當計數(shù)器的值從某個值一直減到0的時候,就會產(chǎn)生一個系統(tǒng)復位信號,即IWDG_RESET。如果在計數(shù)器沒減到0之前,“刷新”計數(shù)器的值,就不會產(chǎn)生復位信號,“刷新”這個動作就是我們經(jīng)常說的喂狗。IWDG直接由VDD電壓域供電,即使在MCU停止模式和待機模式下仍然能照常工作。

1、IWDG功能框圖解析

下圖是獨立看門狗的功能框圖,分6個部分進行說明。

aadc731e-c8d1-11f0-8c8f-92fbcf53809c.png

① LSI時鐘:IWDG的時鐘由低速時鐘LSI驅(qū)動,即使主時鐘發(fā)生故障它也仍然有效,非常獨立。這里需要注意的是,由于RC振蕩器的原理和特性(根據(jù)溫度和環(huán)境會有一定的漂移),所以IWDG的定時時間并不一定非常精確,只適用于對時間精度要求比較低的場合。

② 計數(shù)器時鐘和IWDG_PR寄存器:遞減計數(shù)器的時鐘由LSI經(jīng)過一個8位的預(yù)分頻器得到,預(yù)分頻器寄存器IWDG_PR的值決定分頻因子,分頻因子可以是:4、8、16、32、64、128、256。分頻因子(假設(shè)為W)和IWDG_PR值的關(guān)系是W = 4 * 2^IWDG_PR。

③ 狀態(tài)寄存器IWDG_SR:顧名思義,IWDG_SR表示獨立看門狗模塊的當前狀態(tài),該寄存器只有位0:PVU(Prescaler Value Update)和位1:RVU(Reload Value Update)有效,且只能讀不能寫。PVU置1指示預(yù)分頻值的更新正在進行中,更新完成后由硬件置0。RVU置1表示重裝載值的更新正在進行中,更新完畢之后由硬件置0。只有當RVU或PVU等于0的時候才可以進行下一次更新操作。

④ 重載寄存器IWDG_RLR:重載寄存器是一個12位的寄存器,里面裝著要刷新到計數(shù)器的值,這個值的大小決定著獨立看門狗的溢出時間。溢出時間Tout(s) = (4 * 2^IWDG_PR) / fIWDG * IWDG_RLR。

⑤ 遞減計數(shù)器:IWDG的遞減計數(shù)器是一個12位寄存器,設(shè)置范圍是0~4095,一個計數(shù)器時鐘計數(shù)器就減1,當計數(shù)器減到0時,IWDG會產(chǎn)生一個系統(tǒng)復位信號IWDG_RESET,讓程序重新啟動運行,如果在計數(shù)器減到0之前刷新計數(shù)器的值(重新寫入新值),就不會產(chǎn)生復位信號,重新刷新計數(shù)器值的這個動作俗稱喂狗。

⑥ 密鑰寄存器IWDG_KR:密鑰寄存器IWDG_KR是獨立看門狗IWDG的一個核心控制寄存器,主要有三種寄存器值對應(yīng)三種控制效果。

ab42ac1a-c8d1-11f0-8c8f-92fbcf53809c.png

2、IWDG庫函數(shù)配置步驟

我們接下來介紹如何驅(qū)動CKS32F107xx系列產(chǎn)品的IWDG工作。具體配置步驟如下:

(1)解除寄存器寫保護(向IWDG_KR寫入0x5555)

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //使能寫權(quán)限

(2)設(shè)置IWDG預(yù)分頻因子和重裝載值

void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); //設(shè)置IWDG預(yù)分頻值

void IWDG_SetReload(uint16_t Reload); //設(shè)置IWDG重裝載值

此時可以計算出看門狗溢出時間,比如我們最終設(shè)定IWDG_PR值為 4,IWDG_RLR值625,那么就可以得到 Tout = (4 * 2^IWDG_PR) / 40KHz * IWDG_RLR = 64 / 40 * 625 = 1s,看門狗的溢出時間是1s,只要在1s之內(nèi),寫入0xAAAA到IWDG_KR,就不會觸發(fā)看門狗復位。這里需要提醒大家的是,由于看門狗的時鐘不是準確的40KHz,所以喂狗時間應(yīng)適當提前。

(3)重載計數(shù)值喂狗(向IWDG_KR寫入0xAAAA)

IWDG_ReloadCounter(); //把重裝載寄存器IWDG_RLR的值放到計數(shù)器中

(4)開啟看門狗(向IWDG_KR寫入0xCCCC)

IWDG_Enable(); //使能 IWDG

通過上面4個步驟,就可以啟動IWDG獨立看門狗了,之后在程序里面就必須周期性的進行喂狗(一般會使用定時器定時的調(diào)用IWDG_ReloadCounter函數(shù)),否則將導致系統(tǒng)復位。注意IWDG在一旦開啟,系統(tǒng)運行時就不能再被關(guān)閉,想要關(guān)閉,只能重啟,并且重啟之后要迅速關(guān)閉IWDG。

實驗例程

為本期微課堂配套了一個例子,整體功能如下:

(1)系統(tǒng)上電后,LED會點亮,進入主程序while循環(huán),不執(zhí)行任何操作,無法執(zhí)行喂狗程序,IWDG觸發(fā)系統(tǒng)復位,可以看到LED在不停的閃爍。

(2)按下USER按鍵,執(zhí)行喂狗操作,LED常亮。

ac25dac6-c8d1-11f0-8c8f-92fbcf53809c.png

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

    關(guān)注

    147

    文章

    18917

    瀏覽量

    397855
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5608

    瀏覽量

    129943
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3368

    瀏覽量

    123532
  • 獨立看門狗
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    4484

原文標題:MCU微課堂|CKS32F107XX系列獨立看門狗介紹

文章出處:【微信號:中科芯MCU,微信公眾號:中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    中科CKS32F107XX系列MCU的窗口看門狗介紹

    中科CKS32F107xx系列產(chǎn)品內(nèi)部提供兩個看門狗定時器單元,獨立
    的頭像 發(fā)表于 11-28 14:48 ?4107次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的窗口<b class='flag-5'>看門狗</b><b class='flag-5'>介紹</b>

    中科CKS32F107XX系列MCU的bxCAN介紹

    CKS32F107xx系列產(chǎn)品的bxCAN支持CAN協(xié)議2.0A和2.0B標準。 該CAN 控制器支持最高的通訊速率為1Mb/s;可以自動地接收和發(fā)送CAN報文,支持使用標準ID和擴展ID的報文
    的頭像 發(fā)表于 01-22 09:06 ?3022次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的bxCAN<b class='flag-5'>介紹</b>

    獨立看門狗(IWDG)的基礎(chǔ)知識

      STM32F10xxx系列內(nèi)置兩個看門狗(獨立看門狗和窗口看門狗),提供了更高的安全性、時間
    發(fā)表于 10-19 17:10 ?5161次閱讀
    <b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>(IWDG)的基礎(chǔ)知識

    STM32中的獨立看門狗和窗口看門狗是什么

    在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門
    的頭像 發(fā)表于 02-20 17:47 ?4352次閱讀
    STM32中的<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>是什么

    MCU獨立看門狗和窗口看門狗的區(qū)別

    早期的MCU沒有看門狗,就容易引起有些產(chǎn)品死機了不能重啟工作。為了避免這個問題,后期的MCU在內(nèi)部集成了看門狗的功能。
    發(fā)表于 03-03 09:18 ?1478次閱讀

    什么是stm32看門狗?獨立看門狗和窗口看門狗工作原理解析

    stm32有兩個看門狗,獨立看門狗和窗口看門狗,其實兩者的功能是類似的,只是喂狗的限制時間不同。 獨立
    的頭像 發(fā)表于 11-06 11:48 ?2.8w次閱讀
    什么是stm32<b class='flag-5'>看門狗</b>?<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>工作原理解析

    STM32F0xx_看門狗獨立+窗口)配置詳細過程

    STM32F0xx_看門狗獨立+窗口)配置詳細過程
    的頭像 發(fā)表于 04-07 14:33 ?4399次閱讀
    STM32<b class='flag-5'>F0xx</b>_<b class='flag-5'>看門狗</b> (<b class='flag-5'>獨立</b>+窗口)配置詳細過程

    MCU獨立看門狗與窗口看門狗的區(qū)別

    早期的MCU沒有看門狗,就容易引起有些產(chǎn)品死機了不能重啟工作。為了避免這個問題,后期的MCU在內(nèi)部集成了看門狗的功能。為了滿足更多使用場景,現(xiàn)在很多
    發(fā)表于 10-28 20:06 ?8次下載
    <b class='flag-5'>MCU</b><b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>與窗口<b class='flag-5'>看門狗</b>的區(qū)別

    STM32:獨立看門狗、窗口看門狗的配置

    STM32單片機的看門狗獨立看門狗和窗口看門狗之分,這兩者的工作原理卻完全不同。
    發(fā)表于 02-08 16:15 ?18次下載
    STM32:<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>、窗口<b class='flag-5'>看門狗</b>的配置

    STM32中的獨立看門狗和窗口看門狗

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前
    的頭像 發(fā)表于 12-22 16:58 ?3177次閱讀

    STM32中的獨立看門狗和窗口看門狗

    在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前看門
    的頭像 發(fā)表于 01-30 14:38 ?2556次閱讀
    STM32中的<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>

    MCU如何集成看門狗的功能

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產(chǎn)品就很容易出現(xiàn)死機,跑飛的情況。為了避免這種情況的出現(xiàn),后期的MCU都集成了看門狗的功能。但是目前
    的頭像 發(fā)表于 06-22 09:09 ?3020次閱讀
    <b class='flag-5'>MCU</b>如何集成<b class='flag-5'>看門狗</b>的功能

    CKS32F107xx系列時鐘系統(tǒng)具體配置方法講解

    上一章節(jié)對CKS32F107xx系列時鐘做了整體介紹,本章節(jié)以使用HSI內(nèi)部高速時鐘為例對時鐘具體配置方法進行講解。
    的頭像 發(fā)表于 05-28 10:05 ?1599次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>時鐘系統(tǒng)具體配置方法講解

    CKS32F107xx系列MCU中ADC介紹

    CKS32F107xx系列產(chǎn)品提供2個12位的模擬/數(shù)字轉(zhuǎn)換器(ADC),每個ADC共用多達16個外部通道,各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或間斷模式執(zhí)行。ADC的結(jié)果可以左對齊或右對齊方式存儲在16位數(shù)據(jù)寄存器中。
    的頭像 發(fā)表于 06-22 11:04 ?1858次閱讀

    CKS32F107xx系列USART的LIN模式

    CKS32F107xx系列在支持正常USART功能的同時,亦支持LIN(局域互聯(lián)網(wǎng))模式。
    的頭像 發(fā)表于 02-18 17:18 ?1150次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>USART的LIN模式