a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 微控制器的抗干擾軟件編程方法

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

作者: 時間:2012-03-12 來源:網絡 收藏

二、看門狗電路

一個看門狗電路通常被描述成一塊在有規律的時間間隔中進行更新的硬件,該更新必須由微或是使微重新啟動的電路來完成。一個外部的看門狗電路是最好的,因為它不依賴微,如果微控制器發生故障需要看門狗更新,則該電路將給出reset信號使微控制器重新啟動。一個看門狗通常由一個硬件定時器構成,如果沒有來看微控制器的更新或是報告信息,該定時器將會溢出。一個簡單的看門狗電路如圖4。

13.gif

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

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

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

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

1)一個從FFFF向0000溢出的定時器。

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

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

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

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


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉