為網(wǎng)絡(luò)應(yīng)用選定看門狗
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一個(gè)看門狗的工作是使嵌入式處理器或微控制器能在對(duì)無效的軟件狀態(tài)進(jìn)行響應(yīng)后可以復(fù)位。在網(wǎng)絡(luò)應(yīng)用中,系統(tǒng)工作是不能中斷的,看門狗就在確保系統(tǒng)不凍結(jié)或跳出死循環(huán)的工作中扮演了一個(gè)重要角色。
圖1 Maxim的MAX6746等看門狗扮演了重要角色
高級(jí)別網(wǎng)絡(luò)功能帶來的問題就是系統(tǒng)需要很多時(shí)鐘。一個(gè)簡(jiǎn)單的看門狗也許是不夠的。當(dāng)不切實(shí)際地使用大量基于硬件的定時(shí)器時(shí),一批網(wǎng)絡(luò)定時(shí)器就等同于使用了時(shí)鐘中斷信號(hào),而所有的時(shí)鐘都保持在軟件中。不過,在很多應(yīng)用中,硬件時(shí)鐘仍然能提供可信任的解決方案。
通常,嵌入式軟件有一個(gè)能調(diào)用不同子程序的主循環(huán),看門狗一旦處在主循環(huán)的頂端就會(huì)被復(fù)位。如果主循環(huán)不能正確執(zhí)行,看門狗就會(huì)啟動(dòng),進(jìn)而使器件復(fù)位。許多網(wǎng)絡(luò)應(yīng)用因?yàn)榭撮T狗的加入而變得可靠。但是一個(gè)看門狗不能直接探測(cè)到錯(cuò)誤,準(zhǔn)確地說,看門狗必須在它復(fù)位處理器之前達(dá)到預(yù)置時(shí)間間隔的頂點(diǎn)。
看門狗可以放置在微控制器中間,比如像MAXQ2000,外置在標(biāo)準(zhǔn)的單個(gè)IC中或嵌入系統(tǒng)作為支持ASIC的一部分。內(nèi)置看門狗能省錢,但易被失控的代碼所影響。外部的看門狗有一個(gè)單獨(dú)的時(shí)鐘脈沖源,這使其可靠性大為增加。如果配置正確,它們就不會(huì)被失控代碼繞過或無效化。
一個(gè)通常有效的看門狗功能是“窗戶”或“最小/最大值”,當(dāng)看門狗被操控得太慢或太快,這個(gè)功能就能通過發(fā)復(fù)位信號(hào)而增強(qiáng)對(duì)正確操作的認(rèn)證。如果當(dāng)清空計(jì)數(shù)寄存器的指令到達(dá)而計(jì)數(shù)寄存器的數(shù)量未達(dá)閾值時(shí),器件就會(huì)觸發(fā)系統(tǒng)復(fù)位。這樣不僅防止了軟件錯(cuò)誤,還能在晶振以錯(cuò)誤頻率工作的時(shí)候復(fù)位MPU。另一個(gè)功能就是通過外部的邏輯輸入或內(nèi)部的寄存器位來禁止看門狗。
內(nèi)置于MCU的看門狗
舉例來說,我們來看MAXQ2000內(nèi)部的看門狗。如果不被操控,這個(gè)看門狗會(huì)觸發(fā)一個(gè)中斷,在計(jì)數(shù)完512個(gè)額外的系統(tǒng)時(shí)鐘周期后重新復(fù)位。
這個(gè)中斷為存儲(chǔ)調(diào)試信息提供了最后的機(jī)會(huì),它是電路開發(fā)和故障診斷中一個(gè)非常有用的功能。取代了存儲(chǔ)調(diào)試信息,這個(gè)中斷能被用來從故障中回復(fù)錯(cuò)誤和清空看門狗。
像其他內(nèi)置的看門狗一樣,MAXQ2000也能通過軟件來終止。不過此功能是把雙刃劍,因?yàn)槭Э卮a會(huì)禁止看門狗,并繼續(xù)亂鬧。
一些微控制器將它們的看門狗連接到獨(dú)立于系統(tǒng)時(shí)鐘的晶振上。盡管MAXQ2000的看門狗來自于系統(tǒng)時(shí)鐘,但電路仍會(huì)切換到備用的RF振蕩器上以防止主晶振的失控。
外置于MCU的看門狗
很多廠商能提供具備多種功能的專門看門狗IC。比如MAX6752,具有窗口功能,可讓用戶調(diào)整看門狗的超時(shí)區(qū)域,并用外置電容來調(diào)整復(fù)位脈沖。
看門狗MAX6369上的邏輯輸入管腳能禁止時(shí)鐘,阻止復(fù)位。盡管用邏輯管腳來連接微控制器是很吸引人的,但會(huì)給系統(tǒng)帶來風(fēng)險(xiǎn),因?yàn)槭Э卮a能隨機(jī)地禁止看門狗。通常,當(dāng)微控制器啟動(dòng)的時(shí)候,看門狗要在啟動(dòng)階段被禁止。MAX6369能在復(fù)位完畢的時(shí)候提供一個(gè)額外的長(zhǎng)看門狗周期。當(dāng)看門狗被第一次啟動(dòng)的時(shí)候,正常的持續(xù)超時(shí)就會(huì)回歸。一些定時(shí)器還能提供一個(gè)去抖動(dòng)和ESD保護(hù)復(fù)位開關(guān)輸入。