国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

51單片機應(yīng)用系統(tǒng)軟件抗干擾初探

2016-05-14 12:58王芳
青春歲月 2016年8期
關(guān)鍵詞:抗干擾單片機軟件

【摘要】在提高單片機硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾以其設(shè)計靈活、節(jié)省硬件資源、可靠性好等特點,越來越受到設(shè)計者的重視,本文主要從實際應(yīng)用的角度闡述單片機系統(tǒng)軟件抗干擾的具體實現(xiàn)方法。

【關(guān)鍵詞】單片機;軟件;看門狗;抗干擾;指令集

隨著單片機在各個領(lǐng)域應(yīng)用愈來愈廣泛,單片機應(yīng)用系統(tǒng)的可靠性越來越成為人們關(guān)注的一個重要課題。由于51系列單片機的指令系統(tǒng)是復(fù)雜指令集結(jié)構(gòu),致使其抗干擾性能不高,尤其用在工業(yè)控制的場合,不增加額外的抗干擾措施,甚至無法正常工作。要提高單片機系統(tǒng)的抗干擾性能無非是從硬件和軟件兩個方面加以考慮。硬件系統(tǒng)是單片機系統(tǒng)穩(wěn)定工作的根本,經(jīng)常采用的方法有:改善系統(tǒng)的布局、布線;提高強電與弱電的隔離度;增加濾波器;增加“硬件看門狗”等等,成本高;而軟件抗干擾在不增加系統(tǒng)復(fù)雜性,不提高成本,也可以提高系統(tǒng)的穩(wěn)定性。51系列單片機的指令包括單字節(jié)、雙字節(jié)和三字節(jié)指令,雙字節(jié)和三字節(jié)指令包含操作碼和操作數(shù)兩部分。當(dāng)單片機受到嚴(yán)重干擾時,程序計數(shù)器PC因干擾而改變,程序便脫離正常軌道“亂飛”,如果“飛”到單字節(jié)指令或雙字節(jié)、三字節(jié)指令的操作碼上,稱這種“跑飛”為“第一類跑飛”。當(dāng)“飛”到某雙字節(jié)或三字節(jié)指令的操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼執(zhí)行,出現(xiàn)嚴(yán)重錯誤,稱這種“跑飛”為“第二類跑飛”。無論是前一種情況還是后一種情況,“跑飛”的程序執(zhí)行結(jié)果將是無法預(yù)料的。

一、單片機軟件抗干擾設(shè)計的主要方法

軟件抗干擾設(shè)計的主要目的就是及時發(fā)現(xiàn)程序的“跑飛”,并及時地將程序拉入正常軌道,主要方法有:指令冗余、軟件“看門狗”、軟件“陷阱”、程序“跑飛”攔截等等。

1、指令冗余

CPU取指令過程是先取操作碼,再取操作數(shù)。在程序的關(guān)鍵地方人為的插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫稱為指令冗余,通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個字節(jié)以上的NOP指令。此外,對系統(tǒng)流向起重要作用的指令,如RET、RETI、LCALL、LJMP、JC等,可以在這些指令之前插入兩條NOP指令,可將跑飛程序納入正軌,以確保這些重要指令的執(zhí)行。指令冗余只能使CPU不再將操作數(shù)當(dāng)作操作碼錯誤地執(zhí)行,卻不能主動地將程序的錯誤執(zhí)行方向扭轉(zhuǎn)過來,要想糾正程序的錯誤執(zhí)行方向,就需要下面的技術(shù)。

2、軟件“看門狗”技術(shù)

跑飛的程序在執(zhí)行一些錯誤操作之后,經(jīng)常會進(jìn)入“死循環(huán)”,也就是常說的“死機”。通常采用“看門狗”技術(shù)使程序脫離“死循環(huán)”,“看門狗”技術(shù)可由硬件實現(xiàn),也可由軟件實現(xiàn)。在工業(yè)應(yīng)用中,嚴(yán)重的干擾有時會破壞中斷方式控制字,關(guān)閉中斷,造成看門狗失效,這時可以采用環(huán)形中斷監(jiān)視系統(tǒng)。用定時器T0監(jiān)視定時器T1,用定時器T1監(jiān)視主程序,主程序監(jiān)視定時器T0。采用這種環(huán)形結(jié)構(gòu)的軟件“看門狗”具有良好的抗干擾性能,大大提高了系統(tǒng)可靠性。

軟件“看門狗”技術(shù)需要使用定時器,而在大多數(shù)的控制程序中,定時器都是緊俏的資源,這就使軟件“看門狗”技術(shù)的實際應(yīng)用受到了限制,可以采取一些技巧性的處理,將軟件“看門狗”程序與其它定時程序復(fù)用同一個定時器,這樣既完成定時功能又完成軟件“看門狗”的功能。

3、軟件“陷阱”

通常在程序存儲器中未使用的EPROM空間填入空操作指令NOP(00H),最后再填入一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到跑飛處理程序,或者直接填入指令LJMP 0000H (020000),當(dāng)跑飛程序落到此區(qū),即可在執(zhí)行一段空操作后轉(zhuǎn)入正軌。

軟件陷阱的一般結(jié)構(gòu)為:

NOP

NOP

LJMP FLY;FLY為跑飛處理程序。

如果程序正常執(zhí)行,軟件陷阱部分是永遠(yuǎn)也執(zhí)行不到的,只有在程序跑飛到陷阱里,軟件陷阱會立刻將程序跳轉(zhuǎn)到正常軌道。

除了程序存儲器的空白區(qū),程序的數(shù)據(jù)表結(jié)尾也應(yīng)該設(shè)置軟件陷阱,如果數(shù)據(jù)表比較大,應(yīng)該在數(shù)據(jù)表的中間也設(shè)置軟件陷阱,以保證程序跑飛到數(shù)據(jù)區(qū)能及時轉(zhuǎn)入正軌。當(dāng)使用的中斷因干擾而開放時,在對應(yīng)的中斷服務(wù)程序中設(shè)置軟件陷阱,能及時捕獲錯誤的中斷。如某應(yīng)用系統(tǒng)雖未用到外部中斷1,外部中斷1的中斷服務(wù)程序可為如下形式:

NOP

NOP

RETI

返回指令可用“RETI”,也可用“LJMP FLY”,用“LJMP FLY”作返回指令可直接進(jìn)入故障診斷程序,盡早地處理故障并恢復(fù)程序的運行。軟件陷阱的數(shù)量要根據(jù)實際受到干擾的情況和程序存貯器的容量來確定。

4、設(shè)置程序運行標(biāo)志,攔截“跑飛”程序

單片機程序的結(jié)構(gòu)一般都是由一個上電復(fù)位初始化程序、一個主程序、幾個中斷服務(wù)程序和若干子程序組成的,51系列單片機的RAM區(qū)中有一個位尋址區(qū),可以在位尋址區(qū)中設(shè)立一些標(biāo)志位,這些標(biāo)志位分別代表不同的程序模塊,一個字節(jié)可以對應(yīng)8個程序模塊。舉一個簡單的例子來說明攔截“跑飛”程序的應(yīng)用,在調(diào)用每一個子程序的開始將自己的標(biāo)志位置1,在子程序的結(jié)尾進(jìn)行檢查,如果自己的標(biāo)志位是1,說明程序執(zhí)行正常,否則程序就出現(xiàn)了“跑飛”,在退出該子程序之前,將其對應(yīng)標(biāo)志位清零。

如果程序模塊比較多,位尋址區(qū)不夠使用,可以給不同的模塊分配不同的代碼,在RAM區(qū)選擇一個特殊字節(jié)作為運行標(biāo)志,當(dāng)某個程序模塊正在執(zhí)行時,將該特殊字節(jié)賦值為該模塊的代碼,這樣一個RAM字節(jié)就可以對應(yīng)256個程序模塊。

二、經(jīng)常用到的其它提高單片機系統(tǒng)抗干擾性能的方法

1、檢查RAM區(qū)標(biāo)志數(shù)據(jù),及時發(fā)現(xiàn)嚴(yán)重干擾

這種方法是在RAM區(qū)中選擇幾個固定單元,在初始化程序中將其設(shè)置成固定的數(shù)據(jù),如“55H”或“0AAH”等,只要程序正常運行,這些單元的內(nèi)容是不會改變的。如果因為程序“跑飛”或其它干擾導(dǎo)致這些RAM單元中的任何單元的數(shù)據(jù)發(fā)生了變化,說明單片機系統(tǒng)已經(jīng)受到了嚴(yán)重的干擾,不能可靠地運行下去了。適時地檢查RAM單元的內(nèi)容,發(fā)現(xiàn)有數(shù)據(jù)改變,立刻執(zhí)行LJMP0000H語句,強制單片機復(fù)位。

2、刷新輸出端口,排除嚴(yán)重干擾

當(dāng)單片機系統(tǒng)受到嚴(yán)重干擾時,輸出端口的狀態(tài)也可能因干擾而改變,在程序的執(zhí)行過程中適時地根據(jù)相關(guān)程序模塊的運算結(jié)果刷新輸出端口,可以排除干擾對輸出端口狀態(tài)的影響,使錯誤的輸出狀態(tài)及時得到糾正。

3、輸入多次采樣,避免嚴(yán)重干擾

強烈的干擾會影響單片機的輸入信號,造成輸入信號瞬間采樣的誤差或誤讀,要避免干擾的影響,通常采取重復(fù)采樣、加權(quán)平均的方法。

4、結(jié)束語

軟件運行過程中受到的干擾是不確定的,軟件抗干擾屬于微機系統(tǒng)的自身防御行為,以上所提到的軟件抗干擾的方法,都不是單獨使用的,只有根據(jù)實際情況將這些方法有效地結(jié)合起來,并與硬件抗干擾措施一起使用,才能達(dá)到最佳抗干擾效果,使單片機系統(tǒng)穩(wěn)定可靠地工作。

【參考文獻(xiàn)】

[1] 胡漢才. 單片機原理及其接口技術(shù). 北京:清華大學(xué)出版社, 2005.

[2] 戴梅萼. 微型計算機及其應(yīng)用. 北京:清華大學(xué)出版社, 2000.

【作者簡介】

王芳(1981—),女,漢族,內(nèi)蒙包頭人,碩士學(xué)位,包頭輕工職業(yè)技術(shù)學(xué)院講師,主要研究方向:計算機科技。

猜你喜歡
抗干擾單片機軟件
有趣的識花軟件
艦載雷達(dá)面臨的電子對抗威脅及防范措施分析
變頻器控制回路抗干擾措施及調(diào)試故障處理
即時通訊軟件WhatsApp
異步電動機節(jié)能控制方法及抗干擾技術(shù)
C8051F020與80C51單片機的異同點
豐富多彩的Android軟件
如何在智能手機中安裝軟件
單片機I/O口模擬串行通訊的C51實現(xiàn)方法
單片機調(diào)試方法的探討