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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 微控制器的抗干擾軟件編程方法

          微控制器的抗干擾軟件編程方法

          作者: 時(shí)間:2012-03-12 來源:網(wǎng)絡(luò) 收藏

          二、看門狗電路

          一個(gè)看門狗電路通常被描述成一塊在有規(guī)律的時(shí)間間隔中進(jìn)行更新的硬件,該更新必須由微或是使微重新啟動的電路來完成。一個(gè)外部的看門狗電路是最好的,因?yàn)樗灰蕾囄?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/控制器">控制器,如果微控制器發(fā)生故障需要看門狗更新,則該電路將給出reset信號使微控制器重新啟動。一個(gè)看門狗通常由一個(gè)硬件定時(shí)器構(gòu)成,如果沒有來看微控制器的更新或是報(bào)告信息,該定時(shí)器將會溢出。一個(gè)簡單的看門狗電路如圖4。

          13.gif

          在加電的POR時(shí)延內(nèi),微控制器將保持在復(fù)位狀態(tài)。時(shí)鐘可以來自一個(gè)外部源或是來自用于微控制器的晶振的一個(gè)脈沖。當(dāng)該微控制器處于復(fù)位狀態(tài)時(shí),輸入/輸出引腳就成為輸入,而此時(shí)計(jì)數(shù)器也開始運(yùn)作。如果Q是0,那么C1就會被充電,而微控制器將會跳離復(fù)位狀態(tài)。

          微控制器的首要任務(wù)是給出一個(gè)小脈沖來重啟計(jì)數(shù)器到一個(gè)已知的時(shí)間溢出值,微控制器上的I/O端口形成交流耦合,目的在于保證只有邊沿觸發(fā)才能重新發(fā)計(jì)數(shù)器。這樣就保證了一個(gè)恒定的直流電平將不會有效作用于微控制器或看門狗。該微控制器必須在Q跳為1之前發(fā)送一個(gè)小的脈沖,以保證微控制器不被復(fù)位(正常情況下該操作至少需要兩個(gè)微控制器的軟件指令)。還有一個(gè)可供選擇的就是微控制器在晶片上具有內(nèi)嵌看門狗電路。例如Motorola 的MC68HC705C8就有它自身的看門狗,由一個(gè)可編程計(jì)數(shù)器組成,該計(jì)數(shù)器大約在每32768時(shí)鐘周期就要被刷新一次,或是它將在內(nèi)部產(chǎn)生一個(gè)清零指令。

          CM1,0位通常用來選擇一個(gè)暫停周期(也就是CPU的時(shí)鐘被2 15,2 17,2 19,2 21 所劃分)。COPE位是只寫一次的而且一旦看門狗有效,就不會停止,只有重啟才能停止看門狗的動作。COPF位是通知用戶的標(biāo)志,它通知用戶前一次的重啟的由于看門狗的時(shí)溢或是其它原因所引起。刷新看門狗的時(shí)序是在COP重啟寄存器(COPRR)上的兩個(gè)寫操作。即該序列是一個(gè)對COPRR進(jìn)行$55寫操作后緊跟$AA的寫操作。

          不是所有的微控制器都有看門狗電路的,但是在一些設(shè)計(jì)中,設(shè)計(jì)者能夠用未使用的中斷來執(zhí)行它自己的看門狗功能。舉例來說,一個(gè)MC68HC05P1沒有看門狗,但是有一個(gè)16bit可自由運(yùn)行的計(jì)時(shí)器。有3種可能的方式,使該計(jì)時(shí)器能夠產(chǎn)生一個(gè)中斷。這3種方式是:

          1)一個(gè)從FFFF向0000溢出的定時(shí)器。

          2)一個(gè)輸出比較,16bit寄存器和定時(shí)器的值的比較。

          3)對TCAP端口的上升或下降邊沿的一個(gè)輸入捕捉。

          如果此輸出比較(Output Compare)中斷不能被執(zhí)行,則其將被當(dāng)做假的看門狗。在這種情況下,定時(shí)器將與輸出比較(output compare)寄存器作個(gè)比較,以檢驗(yàn)系統(tǒng)是否都正常。如果系統(tǒng)運(yùn)行正確,那么將執(zhí)行一個(gè)中斷返回。如果有不正常情況,那么堆棧指針的復(fù)位和一個(gè)往初始化程序的跳轉(zhuǎn)將會執(zhí)行。該系統(tǒng)檢驗(yàn)可以是前述的標(biāo)志通過程序。

          在一個(gè)程序里,看門狗更新(watchdog updates)最優(yōu)選位置的選擇不是一個(gè)簡單的事情,一般說來,是結(jié)束程序時(shí)的最后進(jìn)程。通常用戶需要測試軟件流程和所有的中斷程序和子程序的時(shí)序,關(guān)鍵的和非關(guān)鍵的應(yīng)用。在所有的程序中進(jìn)行看門狗惻新是最好的,但是由于微控制器有很長的程序和很多的芯片功能,因此這樣是很難做到的。如果可能的話,看門狗刷新程序不應(yīng)該被放在中斷或是子程序中。原則上應(yīng)該直接放入主程序中。要注意的是刷新速率不要太大,否則將使失控狀態(tài)恢復(fù)的幾率下降。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 方法 軟件編程 抗干擾 控制器

          評論


          相關(guā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); })();