<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32 獨(dú)立看門狗IWDG 與窗口看門狗WWDG

          STM32 獨(dú)立看門狗IWDG 與窗口看門狗WWDG

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          獨(dú)立看門狗Iwdg——有獨(dú)立時鐘(內(nèi)部低速時鐘LSI---40KHz),所以不受系統(tǒng)硬件影響的系統(tǒng)故障探測器。主要用于監(jiān)視硬件錯誤。

          窗口看門狗wwdg——時鐘與系統(tǒng)相同。如果系統(tǒng)時鐘不走了,這個狗也就失去作用了,主要用于監(jiān)視軟件錯誤。
          一,獨(dú)立看門狗

          本文引用地址:http://www.ex-cimer.com/article/201612/325011.htm

          看門狗定時時限= IWDG_SetReload()的值 / 看門狗時鐘頻率
          看門狗時鐘頻率=LSI(內(nèi)部低速時鐘)的頻率(40KHz)/ 分頻數(shù)

          1.STM32

          獨(dú)立看門狗IWDG的時限定為280微秒。這個時限可能會隨著LSI(內(nèi)部低速時鐘)的頻率漂移而產(chǎn)生微小的變化。
          /* IWDG timeout equal to 280 ms (the timeout may varies due to LSI frequency dispersion) -------------------------------------------------------------
          */
          /* Enable write access to IWDG_PR and IWDG_RLR registers */
          IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
          /* IWDG counter clock: 40KHz(LSI) / 32 = 1.25 KHz */
          IWDG_SetPrescaler(IWDG_Prescaler_32);
          /* Set counter reload value to 349 */
          IWDG_SetReload(349);
          /*該參數(shù)允許取值范圍為0 – 0x0FFF *
          /* Reload IWDG counter */
          IWDG_ReloadCounter();
          /* Enable IWDG (the LSI oscillator will be enabled by hardware) */
          IWDG_Enable();
          2.獨(dú)立看門狗(IWDG)由專用的40kHz 的低速時鐘為驅(qū)動;因此,即使主時鐘發(fā)生故障它也仍然有效。窗口看門狗由從APB1 時鐘分頻后得到的時鐘驅(qū)動,通過可配置的時間窗口來檢測應(yīng)用程序非正常的過遲或過早的行為??赏ㄟ^
          IWDG_SetPrescaler(IWDG_Prescaler_32); 對其時鐘進(jìn)行分頻,4-256,
          通過以下方式喂狗 :
          /* Reload IWDG counter */
          IWDG_ReloadCounter();
          3. 1.25KHz 即每周期 為0.8ms
          共計(jì)時 350 個周期,即350*0.8ms=280ms
          看門狗定時時限= IWDG_SetReload()的值 / 看門狗時鐘頻率
          看門狗時鐘頻率=LSI(內(nèi)部低速時鐘)的頻率(40KHz)/ 分頻數(shù)

          二,窗口看門狗

          STM32F的窗口看門狗中有一個7位的遞減計(jì)數(shù)器,它會在出現(xiàn)下述2種情況之一時產(chǎn)生看門狗復(fù)位:
            
            1)當(dāng)計(jì)數(shù)器的數(shù)值從0x40減到0x3F時
            
            2)當(dāng)刷新看門狗時計(jì)數(shù)器的數(shù)值大于某一設(shè)定數(shù)值時,此設(shè)定數(shù)值在WWDG_CFR寄存器定義
            
            對于一般的看門狗,程序可以在它產(chǎn)生復(fù)位前的任意時刻刷新看門狗,但這有一個隱患,有可能程序跑亂了又跑回到正常的地方,或跑亂的程序正好執(zhí)行了刷新看門狗操作,這樣的情況下一般的看門狗就檢測不出來了;如果使用窗口看門狗,程序員可以根據(jù)程序正常執(zhí)行的時間設(shè)置刷新看門狗的一個時間窗口,保證不會提前刷新看門狗也不會滯后刷新看門狗,這樣可以檢測出程序沒有按照正常的路徑運(yùn)行非正常地跳過了某些程序段的情況。



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();