?

C51單片機看門狗程序優化設計

2013-08-15 00:49
中國新技術新產品 2013年14期
關鍵詞:看門狗主程序子程序

(陜西中醫學院,陜西 西安 712046)

經濟的發展,促進了科學技術的不斷延伸,C51系統的單片機也在不斷的發展,這大大滿足了實際工作的需要,也不可避免的帶來了一些弊端。比如單片及芯片的抗干擾現象,這種現象不利于智能型儀表單片機系統的穩定運行。本文就看門狗硬件電路及其設計方案展開分析,通過采取相應的措施,解決問題。

1 關于看門狗的電路系統分析

在實際工作中,看門狗的電路系統的應用范圍是比較廣泛的,它實現了單片機系統的內部相關環節的穩定運行,確保了無人監控下的程序的正常運作??撮T狗電路系統的正常運行,離不開看門狗芯片與單片機的I/O引腳環節的正常運作。這就需要我們針對這一環節進行具體分析,I/O引腳環節的穩定性決定了看門狗系統的正常運行,該環節如果受到內外因素的干擾,是極易導致程序的不正常發展的,容易使系統陷入不良的循環中。為此我們要實現看門狗的引腳程序環節的穩定運行,從而保證單片機的有效復位,這樣保障了程序的順利執行,保證單片機的自動復位。

(1)為了保證看門狗電路系統的穩定運行,我們要進行看門狗電路設計方式的深化,它主要包括兩種環節,硬件看門狗設計環節與軟件看門狗設計環節。前者的正常運行,離不開對定時器的有效應用,從而確保主程序的有效監控,在主程序的運作過程中,我們要確保定時器的及時復位,避免下序環節出現運行故障。

軟件看門狗技術模式與硬件看門狗有類似之處,它通過對軟件的利用,實現程序的穩定運行。比如對51單片機的定時器的應用。它利用內部定位器實現對主程序的實施監控。確保主程序運作過程中的相關變量值的有效判斷,確保該值的準確控制,在運作過程中,沒有發生變化則就會進行程序的復位。

傳統的看門狗電路復位指令是通過主程序的插入來進行的,其指令模式主要是脈沖式,進行兩條取反指令的運行,這是為了促進程序跑飛時其中斷功能的穩定運行,促進CPU的正常運作,保證中斷子程序的穩定運行,確保該看門狗整體系統的正常運作。在此過程中,如果中斷子程序執行喂狗指令,那么必然會看門狗的定時器的穩定運行,導致微機系統的運作混亂,不能實現其正常裝套的運轉,從而不利于實際工作程序的順利開展。

(2)在喂狗指令的運作過程中,主程序系統都能得到良好的響應,促進單片機系統的穩定運行。在此運作過程中,有一種模式影響單片機的穩定運行,比如其主程序正常運行,但是其中斷響應功能的缺乏,是不利于看門狗電路系統的正常運行,不利于單片機系統的正常工作。比如在系統進行中斷子程序環節的運作時,受到外界因素的干擾。程序出現跑飛現象,導致中斷功能的無法響應。

這種情況是由51單片機的中斷系統內部的相關環節導致的,比如其兩個優先級的狀態觸發器,進行兩級中斷響應狀態的分別指標。在此過程中,如果CPU響應出現中斷的現象,就會引發相關環節的優先級狀態觸發器,從而導致同級別的所有中斷申請的屏蔽,等到reti指令運作的時候,此優先級狀態觸發器才會被CPU硬件清除,確保下序環節的中斷請求的正常相應。當然,象上述這種情況是比較少見的。大多數情況下,程序跑飛后都會使pc指針越出有效程序區,造成“死機”。這時“看門狗”就起作用了。在大多數系統中,中斷子程序執行的時間占總運行時間的百分比都非常小,而在執行中斷程序時,pc指針跑飛越過reti指令,而主程序又能正常運行的機會就更少。

(3)在中斷子程序的運作過程中,出現其數據信息的運作比較復雜,并且進行一系列的函數運作時,就很可能發生系統失常的現象,比如在智能流量計過程中的死機現象,這種死機現象并不是很明顯,其鍵盤顯示操作是正常情況,但是在設定參數環節,總流量不發生累計,導致中斷系統的失效,進而不利于主程序的穩定運”指令直接插在中斷子程序中是不合適的,而單獨插在主程序中又顯然是不夠的。筆者通過仔細推敲后,將“喂狗”指令分解開來,取反指令變成置位和清零兩種指令,將置位指令插在主程序中,而將清零指令插在t 0中斷子程序中,這樣將兩者聯系起來,缺一不可,無論主程序運行失效,還是t 0中斷請求失效,都不能完成完整的“喂狗”指令,造成“看門狗”動作,從而確保了系統安全可靠地工作。

2 關于看門狗電路整體設計思路的分析

為了保證該看門狗電路整體設計的穩定運行,我們要進行C51單片機內部定時器系統的有效編程,確??撮T狗的電路功能的穩定運行。進行軟件環節與硬件環節的有效設置,確??撮T狗的定時器設置程序的穩定運行。在此過程中,我們要實現對主程序的有效應用,確保對看門狗的定時器程序的有效設置,確保其定時器系統的計時環節的穩定運行,將其計時規定在50ms,當達到這一標準時,定時器會發生溢出中斷,從而推動溢出中斷服務程序環節的運作,確保下序環節的穩定運作,實現看門狗電路系統的正常運行。當num的值等于100時,說明看門狗定時器已經計時5s,此時,單片機I/O端口P1.0輸出高電平,對程序進行復位。在此過程中,喂狗代碼將被穿插于程序中循環體末尾。當循環體結束時,喂狗代碼執行,關閉定時器1、清空num并重新初始化定時器設置。若循環體進入死循環,喂狗代碼無法執行,num將一直累加至100,此時程序復位。 喂狗代碼放置位置可根據num預計數值進行調整:當num門限值較小,即看門狗計數時間較短時,喂狗代碼可放于程序中各循環體之后或均勻分布于整個主程序中。當num門限值較大,即看門狗計數時間較長時,喂狗代碼可放于程序主循環體末尾。但是需注意看門狗計數時間必須長于正常工作時間,以免非正常復位。

結語

在此過程中,我們要注意對看門狗的定時器復位影響因素的應用,確保該用戶程序的唯一指令的應用,避免出現看門狗定時器的誤復位現象,避免出現系統的死機現象,從而保證看門狗系統內部程序的穩定運行,確保實際工作的正常開展。對沒有中斷的用戶系統,只需將清零指令也插在主程序中就可以了;對于有多種中斷的用戶系統,如果沒有中斷嵌套,則清零指令可以插在任一個中斷子程序中,而在主程序中適當加入一些有關中斷的冗余指令,以免因有關中斷的特殊功能寄存器數據受到干擾時導致中斷功能失效。

[1]李烈彪,李仙.計算機系統的可靠性技術[J].計算機技術與發展,2007,17(11):142-145.

[2]范立南.單片機原理及應用教程[M].北京:北京大學出版社,2006.

[3]盧大偉,劉炳云.用定時器實現軟件看門狗應注意的問題[J].中國儀器儀表,1998(04):36-37.

猜你喜歡
看門狗主程序子程序
把他叫醒
電控冰箱軟件模塊化設計
一種采用FPGA實現的通用看門狗電路
子程序在數控車加工槽中的應用探索
簡化編程與子程序嵌套的應用
未經授權的第三方軟件侵權問題研究
——以“騰訊與360之爭”為視角*
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合