微控製器中的看門狗定時器
發布時間:2023-05-23 責任編輯:lina
【導讀】看(kan)門(men)狗(gou)定(ding)時(shi)器(qi)是(shi)一(yi)種(zhong)專(zhuan)用(yong)定(ding)時(shi)器(qi)模(mo)塊(kuai),可(ke)幫(bang)助(zhu)微(wei)處(chu)理(li)器(qi)從(cong)故(gu)障(zhang)中(zhong)恢(hui)複(fu)。如(ru)果(guo)看(kan)門(men)狗(gou)定(ding)時(shi)器(qi)到(dao)達(da)其(qi)計(ji)數(shu)周(zhou)期(qi)的(de)末(mo)尾(wei),它(ta)將(jiang)重(zhong)置(zhi)整(zheng)個(ge)處(chu)理(li)器(qi)係(xi)統(tong)。為(wei)了(le)防(fang)止(zhi)這(zhe)種(zhong)情(qing)況(kuang),處(chu)理(li)器(qi)必(bi)須(xu)執(zhi)行(xing)某(mou)種(zhong)類(lei)型(xing)的(de)特(te)定(ding)操(cao)作(zuo)來(lai)重(zhong)置(zhi)看(kan)門(men)狗(gou)。因(yin)此(ci),可(ke)以(yi)配(pei)置(zhi)看(kan)門(men)狗(gou)定(ding)時(shi)器(qi),使(shi)其(qi)僅(jin)在(zai)發(fa)生(sheng)處(chu)理(li)器(qi)故(gu)障(zhang)時(shi)才(cai)到(dao)達(da)其(qi)計(ji)數(shu)周(zhou)期(qi)的(de)末(mo)尾(wei),並(bing)且(qie)通(tong)過(guo)強(qiang)製(zhi)係(xi)統(tong)複(fu)位(wei),看(kan)門(men)狗(gou)定(ding)時(shi)器(qi)幫(bang)助(zhu)處(chu)理(li)器(qi)脫(tuo)離(li)故(gu)障(zhang)模(mo)式(shi)並(bing)繼(ji)續(xu)正(zheng)常(chang)運(yun)行(xing)。
什麼是看門狗定時器?(一個非常規的類比)
看(kan)門(men)狗(gou)定(ding)時(shi)器(qi)是(shi)一(yi)種(zhong)專(zhuan)用(yong)定(ding)時(shi)器(qi)模(mo)塊(kuai),可(ke)幫(bang)助(zhu)微(wei)處(chu)理(li)器(qi)從(cong)故(gu)障(zhang)中(zhong)恢(hui)複(fu)。如(ru)果(guo)看(kan)門(men)狗(gou)定(ding)時(shi)器(qi)到(dao)達(da)其(qi)計(ji)數(shu)周(zhou)期(qi)的(de)末(mo)尾(wei),它(ta)將(jiang)重(zhong)置(zhi)整(zheng)個(ge)處(chu)理(li)器(qi)係(xi)統(tong)。為(wei)了(le)防(fang)止(zhi)這(zhe)種(zhong)情(qing)況(kuang),處(chu)理(li)器(qi)必(bi)須(xu)執(zhi)行(xing)某(mou)種(zhong)類(lei)型(xing)的(de)特(te)定(ding)操(cao)作(zuo)來(lai)重(zhong)置(zhi)看(kan)門(men)狗(gou)。因(yin)此(ci),可(ke)以(yi)配(pei)置(zhi)看(kan)門(men)狗(gou)定(ding)時(shi)器(qi),使(shi)其(qi)僅(jin)在(zai)發(fa)生(sheng)處(chu)理(li)器(qi)故(gu)障(zhang)時(shi)才(cai)到(dao)達(da)其(qi)計(ji)數(shu)周(zhou)期(qi)的(de)末(mo)尾(wei),並(bing)且(qie)通(tong)過(guo)強(qiang)製(zhi)係(xi)統(tong)複(fu)位(wei),看(kan)門(men)狗(gou)定(ding)時(shi)器(qi)幫(bang)助(zhu)處(chu)理(li)器(qi)脫(tuo)離(li)故(gu)障(zhang)模(mo)式(shi)並(bing)繼(ji)續(xu)正(zheng)常(chang)運(yun)行(xing)。
為了形象化 WDT 的功能,我有一個非常規的類比供您考慮。
迷mi失shi是shi一yi部bu廣guang受shou歡huan迎ying的de電dian視shi劇ju,講jiang述shu了le一yi群qun幸xing存cun者zhe在zai飛fei機ji失shi事shi後hou被bei困kun在zai一yi個ge神shen秘mi的de島dao嶼yu上shang的de故gu事shi。其qi中zhong一yi個ge次ci要yao情qing節jie涉she及ji的de角jiao色se認ren為wei他ta們men必bi須xu在zai屏ping幕mu上shang的de計ji數shu器qi變bian為wei 0 或世界末日之前輸入一串簡短的數字。
輸shu入ru係xi列lie後hou,計ji數shu器qi將jiang重zhong置zhi並bing再zai次ci開kai始shi倒dao計ji時shi。目mu前qian尚shang不bu清qing楚chu輸shu入ru這zhe一yi係xi列lie數shu字zi隻zhi是shi心xin理li實shi驗yan的de一yi部bu分fen,還hai是shi世shi界jie的de命ming運yun岌ji岌ji可ke危wei。找zhao出chu答da案an的de方fang法fa是shi不bu輸shu入ru數shu字zi。角jiao色se可ke以yi自zi由you出chu門men、尋找食物、遊泳——但(dan)他(ta)們(men)必(bi)須(xu)及(ji)時(shi)返(fan)回(hui)以(yi)重(zhong)置(zhi)計(ji)數(shu)器(qi)。從(cong)計(ji)算(suan)機(ji)的(de)角(jiao)度(du)來(lai)看(kan),接(jie)收(shou)到(dao)正(zheng)確(que)的(de)輸(shu)入(ru)意(yi)味(wei)著(zhe)有(you)人(ren)在(zai)正(zheng)常(chang)操(cao)作(zuo)並(bing)為(wei)櫃(gui)台(tai)提(ti)供(gong)服(fu)務(wu)。沒(mei)有(you)收(shou)到(dao)正(zheng)確(que)的(de)輸(shu)入(ru)表(biao)明(ming)出(chu)現(xian)了(le)問(wen)題(ti)。
看門狗定時器的運行方式類似於《迷失》中的計算機係統。微控製器的其餘部分是壓力過大的角色,他們可以自由地做任何事情,但必須定期維護計數器或微控製器重置(又名世界末日)。正確運行的軟件和硬件將在固定的時間內為看門狗提供服務,而有故障的軟件或硬件可能不會。
內部看門狗定時器的類型
有兩種類型的看門狗,非窗口和窗口。如果服務計數器延遲,這兩種類型都會導致重置。
如(ru)果(guo)服(fu)務(wu)發(fa)生(sheng)得(de)太(tai)早(zao),窗(chuang)口(kou)式(shi)看(kan)門(men)狗(gou)也(ye)會(hui)導(dao)致(zhi)複(fu)位(wei)。此(ci)圖(tu)顯(xian)示(shi)了(le)使(shi)用(yong)遞(di)增(zeng)計(ji)數(shu)器(qi)的(de)看(kan)門(men)狗(gou)的(de)時(shi)序(xu)。有(you)些(xie)看(kan)門(men)狗(gou)使(shi)用(yong)遞(di)減(jian)計(ji)數(shu)器(qi),但(dan)原(yuan)理(li)是(shi)一(yi)樣(yang)的(de)。
看門狗定時器的時序
對dui於yu非fei窗chuang口kou或huo窗chuang口kou看kan門men狗gou,計ji數shu器qi達da到dao上shang限xian值zhi之zhi前qian的de任ren何he服fu務wu都dou會hui重zhong置zhi計ji數shu器qi,一yi切qie正zheng常chang。窗chuang口kou看kan門men狗gou添tian加jia一yi個ge下xia限xian並bing創chuang建jian一yi個ge計ji數shu窗chuang口kou。下xia限xian和he上shang限xian之zhi間jian的de任ren何he服fu務wu都dou可ke以yi。這zhe是shi圖tu表biao的de詳xiang細xi說shuo明ming。
A - 啟動後不久,程序用計數器的上限初始化看門狗並啟用計數。對於窗口看門狗,還設置了下限。
B和C - 軟件在計數器達到上限之前成功為計數器提供服務,對於窗口看門狗,在達到下限之後。維修後,計數器重置為 0 並重新開始計數。一切都好。
D - 程序不為計數器服務,計數達到上限。看門狗重置微控製器。
D 到 E - 微控製器啟動並初始化並啟用看門狗。
E - 看門狗開始計數。
F - 程序在達到上限之前為計數器提供服務,對於窗口看門狗,在達到下限之後提供服務。計數器重置為 0 並重新開始計數。一切都好。
G - 程序在計數達到窗口看門狗的下限之前為計數器提供服務。對於沒有下限的非窗口看門狗,沒有複位,計數器變為 0 並再次開始向上計數。對於窗口看門狗,微控製器被重置。
kanmengoudexijiechayihenda。tamenkeyixiangshanghuoxiangxiajishu。tamenshiyongbutongdeshizhong。tamenduishangxianhexiaxianyoubutongdexuanze。yixiabufenjieshaolexuduotexing,danzhishigaishu。
看門狗初始化
初始化看門狗可能很棘手。例如,一些看門狗在微控製器啟動時自動啟用。
如(ru)果(guo)不(bu)使(shi)用(yong)看(kan)門(men)狗(gou),則(ze)必(bi)須(xu)在(zai)啟(qi)動(dong)時(shi)包(bao)含(han)代(dai)碼(ma)以(yi)禁(jin)用(yong)它(ta)。我(wo)目(mu)前(qian)使(shi)用(yong)的(de)看(kan)門(men)狗(gou)就(jiu)是(shi)這(zhe)種(zhong)情(qing)況(kuang)。如(ru)果(guo)我(wo)的(de)程(cheng)序(xu)需(xu)要(yao)運(yun)行(xing)超(chao)過(guo)一(yi)秒(miao),我(wo)必(bi)須(xu)禁(jin)用(yong)看(kan)門(men)狗(gou)或(huo)更(geng)改(gai)窗(chuang)口(kou)設(she)置(zhi)!
一(yi)些(xie)看(kan)門(men)狗(gou)隻(zhi)允(yun)許(xu)對(dui)控(kong)製(zhi)寄(ji)存(cun)器(qi)進(jin)行(xing)寫(xie)入(ru)作(zuo)為(wei)一(yi)項(xiang)安(an)全(quan)功(gong)能(neng)。此(ci)功(gong)能(neng)可(ke)防(fang)止(zhi)失(shi)控(kong)的(de)軟(ruan)件(jian)在(zai)初(chu)始(shi)化(hua)後(hou)更(geng)改(gai)設(she)置(zhi)。如(ru)果(guo)您(nin)在(zai)具(ju)有(you)此(ci)功(gong)能(neng)的(de)看(kan)門(men)狗(gou)中(zhong)使(shi)用(yong)默(mo)認(ren)設(she)置(zhi),請(qing)確(que)保(bao)覆(fu)蓋(gai)默(mo)認(ren)設(she)置(zhi),即(ji)使(shi)位(wei)值(zhi)相(xiang)同(tong)。這(zhe)“鎖定”了值並維護了安全性。
如果您使用 C 語言編程,請注意啟動代碼中可能會初始化看門狗,它在您的 main() 函數之前運行。此代碼有時會作為運行標準 C chengxudeyibufenyoukaifahuanjingzidongbaohan。cidaimashezhineicunhezhongduanxiangliangbiao。zhakannindeqidongdaimayilejieduikanmengoudecaozuo,binggenjunindexitongyaoqiujinxingxiugai。
窗口設置
看(kan)門(men)狗(gou)可(ke)以(yi)是(shi)非(fei)窗(chuang)口(kou)和(he)窗(chuang)口(kou)的(de)。通(tong)過(guo)將(jiang)窗(chuang)口(kou)的(de)下(xia)限(xian)作(zuo)為(wei)選(xuan)項(xiang)來(lai)提(ti)供(gong)兩(liang)種(zhong)類(lei)型(xing)的(de)單(dan)個(ge)定(ding)時(shi)器(qi)是(shi)很(hen)常(chang)見(jian)的(de)。窗(chuang)口(kou)的(de)大(da)小(xiao)隨(sui)看(kan)門(men)狗(gou)的(de)不(bu)同(tong)而(er)不(bu)同(tong)。
我目前使用的看門狗下限固定為上限的75%。另一個看門狗可以選擇上限的 75%、50%、37.5% 或 25%。另一個看門狗獨立設置上限和下限。關於如何選擇上限也有很多差異。
維修 AKA 看門狗定時器重置
定期重置看門狗計數器稱為“維修”定時器。不同的看門狗定時器會有不同的服務要求。所有服務要求都使用在失控軟件執行期間不太可能發生的操作。
我目前使用的看門狗需要兩次寫入“服務寄存器”,值為 0x55,後跟 0xAA。如果將 0x55 或 0xAA 以外的任何值寫入服務寄存器,在任何時候,微控製器都會立即複位。
另一個看門狗需要單次寫入值為 0xAAAA 的服務寄存器。數字 0xA 和 0x5 以及它們的交替位模式 1010 和 0101 似乎令人著迷。一個定時器通過使用具有幻數 0x5743 的單次寫入來違背這一趨勢。
睡眠模式
睡眠和其他低功耗模式使事情變得複雜。如果處理器進入休眠並停止執行,看門狗應該做什麼?看門狗時間應該保持不變嗎?
當(dang)處(chu)理(li)器(qi)進(jin)入(ru)和(he)退(tui)出(chu)深(shen)度(du)睡(shui)眠(mian)時(shi),我(wo)當(dang)前(qian)使(shi)用(yong)的(de)看(kan)門(men)狗(gou)會(hui)在(zai)初(chu)始(shi)計(ji)數(shu)時(shi)停(ting)止(zhi)並(bing)重(zhong)新(xin)啟(qi)動(dong)。這(zhe)個(ge)話(hua)題(ti)很(hen)複(fu)雜(za),當(dang)微(wei)控(kong)製(zhi)器(qi)使(shi)用(yong)低(di)功(gong)耗(hao)模(mo)式(shi)時(shi),您(nin)需(xu)要(yao)研(yan)究(jiu)看(kan)門(men)狗(gou)的(de)操(cao)作(zuo)。
漸進反應
完全重置微控製器可能過於苛刻。一些看門狗具有允許漸進式響應的功能。
liru,kanmengoukeyizaifuweizhiqiandemougeshijianxuanzezhongduanqingqiu。cigongnengyunxuzhongduanfuwulichengzaikanmengoujixujishushixiufuhuojiluwenti。ruguozhongduanlichengwufashishiqinghuidaozhenggui,zehuifashengzhongzhi。
WDT策略
我使用術語“策略”來lai確que定ding在zai何he處chu設she置zhi看kan門men狗gou的de時shi間jian限xian製zhi。簡jian單dan的de策ce略lve是shi使shi用yong一yi個ge非fei窗chuang口kou看kan門men狗gou,其qi超chao時shi時shi間jian比bi服fu務wu看kan門men狗gou之zhi間jian程cheng序xu的de任ren何he可ke能neng執zhi行xing時shi間jian都dou長chang得de多duo。我wo將jiang其qi稱cheng為wei“重置按鈕”策略,因為它代替了按下重置按鈕的人。醫療設備或製造機器人等關鍵係統的策略需要更快的響應。
看門狗策略可以考慮很多因素:
• 係統是否使用可預測的主循環或基於實時操作係統的複雜多任務結構?
• 看門狗重置是否應該啟動一係列自動係統檢查?
• 看門狗是一係列診斷和修複問題嚐試的階段嗎?
• 是否要在係統啟動時測試看門狗以及其他檢查?
看門狗策略是一個複雜的話題並且非常依賴於應用程序。
在(zai)複(fu)位(wei)微(wei)控(kong)製(zhi)器(qi)之(zhi)前(qian),看(kan)門(men)狗(gou)在(zai)複(fu)位(wei)後(hou)仍(reng)然(ran)存(cun)在(zai)的(de)狀(zhuang)態(tai)寄(ji)存(cun)器(qi)中(zhong)設(she)置(zhi)一(yi)個(ge)位(wei)。通(tong)常(chang)該(gai)位(wei)與(yu)其(qi)他(ta)複(fu)位(wei)狀(zhuang)態(tai)一(yi)起(qi)存(cun)儲(chu),例(li)如(ru)掉(diao)電(dian)複(fu)位(wei)位(wei)。測(ce)試(shi)看(kan)門(men)狗(gou)複(fu)位(wei)位(wei)應(ying)該(gai)是(shi)策(ce)略(lve)的(de)一(yi)部(bu)分(fen)。
至zhi少shao,在zai啟qi動dong期qi間jian測ce試shi這zhe個ge位wei並bing做zuo一yi些xie事shi情qing來lai指zhi示shi問wen題ti。否fou則ze,失shi敗bai可ke能neng會hui被bei忽hu視shi,尤you其qi是shi不bu常chang見jian的de失shi敗bai。例li如ru,在zai顯xian示shi器qi上shang輸shu出chu消xiao息xi或huo點dian亮liang LED。
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
如何利用1200 V EliteSiC MOSFET 模塊,打造充電更快的車載充電器?
采用增強互連封裝技術的1200 V SiC MOSFET單管設計高能效焊機
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 1200餘家企業齊聚深圳,CITE2026打造電子信息產業創新盛宴
- 掌握 Gemini 3.1 Pro 參數調優的藝術
- 築牢安全防線:電池擠壓試驗機如何為新能源產業護航?
- Grok 4.1 API 實戰:構建 X 平台實時輿情監控 Agent
- 電源芯片國產化新選擇:MUN3CAD03-SF助力物聯網終端“芯”升級
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall





