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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 555定時器芯片實現(xiàn)單片機看門狗電路

          555定時器芯片實現(xiàn)單片機看門狗電路

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          1、程序跑飛現(xiàn)象

          隨著單片機在能源領(lǐng)域中的廣泛應(yīng)用,單片機的抗干擾問題越來越突出,煤礦井下環(huán)境一般比較惡劣,這便會為單片機控制系統(tǒng)帶來各種干擾,以致系統(tǒng)不能正常工作。單片機應(yīng)用系統(tǒng)的抗干擾性能主要取決于硬件的抗干擾設(shè)計,但軟件
          抗干擾設(shè)計作為硬件抗干擾的完善和補充,作用也非常重要,因為大量的干擾通常并不能影響系統(tǒng)內(nèi)硬件的運作,卻常會使系統(tǒng)的軟件無法正常運行,單片機應(yīng)用的一個突出問題,便是單片機運行過程中經(jīng)常出現(xiàn)的程序跑飛現(xiàn)象。
          在單片機系統(tǒng)中,因為干擾的原因,在非預(yù)期的情況下,使得程序計數(shù)器PC 的值發(fā)生隨機的變化,從而使得程序的流向指向不確定區(qū)域,這便是程序的跑飛。程序跑飛后或者會使指令的地址碼和操作碼發(fā)生改變,PC 把操作數(shù)當作指令來執(zhí)行;或者PC值指向一條不合邏輯關(guān)系的指令甚或是非程序區(qū),運行結(jié)果常常會使單片機進入死循環(huán)———便是大家常說的“死機”。為確保在無人當值的情況下,單片機“死機”后能自動恢復(fù)過來,通常采用軟件陷阱,外部WDT 電路,以及軟件控制的WATCHDOG 等方法,使系統(tǒng)恢復(fù)正常(后兩種俗稱“看門狗”),限于篇幅不做專門說明,這里主要向大家介紹用555 定時器軟硬結(jié)合做看門狗的一種方法。
          2、555定時器
          一般情況下,看門狗主要是通過不斷監(jiān)視程序運行一個事件的時間是否超過預(yù)定的時間來判斷程序是否進入了死循環(huán),因此利用555 定時器可復(fù)位的觸發(fā)功能外加延時電路可實現(xiàn)看門狗的功能。555定時器是一種多用途的單片集成電路,內(nèi)部電路如圖1 所示。

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

          CO端是控制電壓輸入端,加控制電壓可改變A1“-”端及A2“ +”端的參考電壓,若不用,可通過一個小電容接地,以防旁路高頻交流干擾;R 為定時器直接復(fù)位端,加低電平可將定時器直接置“0”,此時,OUT輸出“0”,Q 為1”,V 導(dǎo)通,D 端對地通路;TH 為復(fù)位閥值輸入端,當TH 電壓超過2/3UDD(即A1 負端分壓)時,A1 輸出為“1”,OUT 輸出“0”,同樣,D 端對地通路;TR 為置位輸入端,當TR電壓低于1/3 UDD(即A2 正端分壓)時,A2 輸出“1”,定時器被置位,此時,OUT 輸出“1”,Q 為“0”,V截止,D端對地斷路。
          3、看門狗電路及運行指令以INTEL公司的16 位單片機8096 為例,555定時器作為看門狗與單片機的接口電路可設(shè)計如圖2 所示。

          首先在單片機初始化時用指令“ORBPORT1,#01H”置P1.0 為“1”,則三極管T 導(dǎo)通,555 芯片的R 為“1”,TH、TR 端經(jīng)R、C 充電,電位逐漸上升,當電位還低于1/3 UDD 時,OUT 輸出“1”,D端對地斷路,電容C 正常充電,(http://www.diangon.com/版權(quán)所有)一旦程序跑飛或進入死循環(huán),在電位上升到高于2/3 UDD時仍沒有“喂狗”,則OUT輸出變?yōu)?ldquo;0”,經(jīng)三極管T拉低單片機的RESET 腳,并使復(fù)位電容放電,這時
          D 端對地短路,電容C 也通過Rf 放電,當TH、TR端電位放電到低于1/3 UDD(注意)時,OUT輸出重新變?yōu)?ldquo;1”,單片機進入復(fù)位狀態(tài)。
          “喂狗”是指復(fù)位看門狗,在本電路中只須運行以下指令即可。
          ANDB PORT1,#0FEH ;使P1.0 為“0”
          SKIP ;空操作,用于延時
          SKIP ;以使TR電壓降到1/3 UDD為宜
          ORB PORT1,#01H ;使P1.0 為“1”
          當P1.0 被置為“0”時,555 定時器的R 端為“0”,三極管T 截止。R 端為“0”則555 芯片被復(fù)位,OUT 輸出為“0”,同時D 端對地短路,電容C放電為重新延時做準備,但因為三極管的截止,此時OUT 輸出雖然也為“0”卻并不影響單片機的RESET腳,單片機正常工作,從而區(qū)分開了“喂狗”與系統(tǒng)故障時看門狗發(fā)生作用的不同之處。
          4、需要注意的問題
          這里仍然有一個問題需要注意,那就是555定時器的正常工作與否完全依賴于單片機P1.0的狀態(tài),但在某些干擾比較嚴重的情況下,單片機的誤操作是有可能改變P1.0 的預(yù)置狀態(tài)的,若單片機在進入死循環(huán)之前,P1.0 被誤置為了“0”,看
          門狗始終處于“被喂”的狀態(tài),那這個電路便就無法再發(fā)揮作用了,對這種情況我們可用軟件冗余的方法來應(yīng)對,就是在程序的關(guān)鍵地方多次插寫看門狗的激活指令:
          NOP
          ORB PORT1,#01H
          值得提醒一下的是這里“NOP”指令的作用不容忽視,可使跑飛的程序納入正軌,不致沖散后面的關(guān)鍵指令。不過盡管如此軟件冗余的應(yīng)用也還是有一個前提的,那就是跑飛的程序必須落在程序區(qū),冗余的指令得到執(zhí)行方可生效,若跑飛的程序落在了非程序區(qū),僅憑指令冗余技術(shù)便不可靠了,這時我們便還須借助其他抗干擾技術(shù)的支持,如軟件陷阱、標志技術(shù),本質(zhì)可靠性程序的設(shè)計等,在此不再贅述,但這些都必須包含在一個可靠的程序內(nèi)———畢竟,單片機系統(tǒng)來自干擾的影響是立體的,那么,我們的應(yīng)對策略便也須是全方位的。



          評論


          技術(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); })();