【摘要】單片機(jī)在一些機(jī)械裝置上的應(yīng)用主要起到控制的作用,然而單片機(jī)不可避免收到設(shè)備頻繁的啟動(dòng)及電壓方面的干擾,會(huì)對(duì)單片機(jī)正常運(yùn)行起到重要影響。因此,我們要采取抗干擾措施,確保單片機(jī)正常運(yùn)行。本文首先對(duì)干擾對(duì)單片機(jī)的危害進(jìn)行分析,對(duì)單片機(jī)在軟件方面的抗干擾技術(shù)進(jìn)行研究和探討。
【關(guān)鍵詞】單片機(jī);軟件;抗干擾;措施
引言
單片機(jī)應(yīng)用于機(jī)械設(shè)備上過(guò)程中不可避免會(huì)出現(xiàn)諸多干擾,會(huì)對(duì)機(jī)器設(shè)備的輸入、輸出等方面產(chǎn)生影響,并且會(huì)對(duì)設(shè)備內(nèi)部程序造成損壞,甚至是直接破壞系統(tǒng)硬件,導(dǎo)致系統(tǒng)硬質(zhì)無(wú)法正常運(yùn)行,控制失靈。和一些硬件抗干擾技術(shù)相比較而言,軟件抗干擾技術(shù)克服其預(yù)見(jiàn)性差、成本較高,軟件抗干擾技術(shù)的成本更低,設(shè)計(jì)靈活性更高,還可以作為干擾后補(bǔ)方法,具有很強(qiáng)的通用性。所以,單片機(jī)抗干擾編程研究得到越來(lái)越多的重視,本文針對(duì)干擾對(duì)單片機(jī)的危害進(jìn)行分析,對(duì)有關(guān)單片機(jī)軟件抗干擾技術(shù)進(jìn)行研究和探討,不足之處,敬請(qǐng)指正。
1.干擾對(duì)單片機(jī)的危害分析
(1)干擾導(dǎo)致單片機(jī)采集的數(shù)據(jù)具有較大的誤差,在干擾信號(hào)對(duì)單片機(jī)產(chǎn)生影響時(shí),其已經(jīng)進(jìn)入系統(tǒng)的前向通道,和普通信號(hào)進(jìn)行疊加,導(dǎo)致信號(hào)采集的誤差增大,A/D進(jìn)行轉(zhuǎn)換的精度也隨之下降。
(2)干擾導(dǎo)致單片機(jī)導(dǎo)致控制失靈,單片機(jī)控制系統(tǒng)中控制狀態(tài)輸出往往和一些條件下輸入及條件狀態(tài)邏輯單元有關(guān),干擾侵入到系統(tǒng)中,輸入/輸出接口的狀態(tài)受到一定程度的干擾,導(dǎo)致條件狀態(tài)受到偏差,甚至是失誤,造成控制失靈,尤其是有可能導(dǎo)致系統(tǒng)資源被莫名其妙的任務(wù)模塊而占用,形成系統(tǒng)的死鎖狀況。
(3)干擾導(dǎo)致單片機(jī)導(dǎo)致數(shù)據(jù)發(fā)生變化,實(shí)際上RAM是可以被讀寫的,所以在干擾的前提下,系統(tǒng)RAM中數(shù)據(jù)被干擾源所篡改,系統(tǒng)運(yùn)行狀況受到影響。
(4)干擾導(dǎo)致單片機(jī)系統(tǒng)運(yùn)行失常,單片機(jī)受到干擾時(shí),導(dǎo)致程序計(jì)數(shù)器PC內(nèi)容出現(xiàn)失誤,程序出現(xiàn)“跑飛”的情況,程序胡亂執(zhí)行一些指令,使其出現(xiàn)死循環(huán),系統(tǒng)的輸出逐漸混亂,造成系統(tǒng)控制失靈。
2.單片機(jī)軟件抗干擾技術(shù)研究
為了確保單片機(jī)系統(tǒng)可以不受影響因素的干擾,國(guó)內(nèi)外科學(xué)家致力于研究單片機(jī)硬件和軟件方面的抗干擾技術(shù)。經(jīng)過(guò)實(shí)踐證明,現(xiàn)階段我們常見(jiàn)的單片機(jī)軟件抗干擾技術(shù)主要有以下幾種,包括數(shù)據(jù)采集誤差的軟件技術(shù)、控制狀態(tài)失靈的軟件技術(shù)、自救技術(shù)以及計(jì)數(shù)器容錯(cuò)技術(shù)等。
2.1 信號(hào)數(shù)據(jù)采集誤差的軟件抗干擾技術(shù)
單片機(jī)信號(hào)進(jìn)行采集過(guò)程中,采用算術(shù)平均值法、中值法、比較取舍法等對(duì)數(shù)據(jù)進(jìn)行采集,具體運(yùn)用過(guò)程中,我們應(yīng)當(dāng)按照具體數(shù)據(jù)變化情況對(duì)不同方法進(jìn)行選擇,盡可能減少數(shù)據(jù)誤差。
(1)算術(shù)平均值方法,實(shí)際上和數(shù)學(xué)計(jì)算方法有一定的類似,具體應(yīng)用到單片機(jī)系統(tǒng)中是指對(duì)某一個(gè)參數(shù)點(diǎn)進(jìn)行一定數(shù)量的數(shù)據(jù)收集,對(duì)采集的數(shù)據(jù)進(jìn)行平均值的計(jì)算,算術(shù)平均值法可防止系統(tǒng)受到隨機(jī)干擾的影響。
(2)比較取舍法是指單片機(jī)測(cè)量數(shù)據(jù)中存在個(gè)別誤差時(shí)對(duì)每一個(gè)參數(shù)點(diǎn)數(shù)據(jù)進(jìn)行多次測(cè)量,按照數(shù)據(jù)的細(xì)微變化,去掉誤差比較大的數(shù)據(jù)。
(3)中值法,干擾源能夠造出測(cè)量信號(hào)或大或小,因此在測(cè)量過(guò)程中應(yīng)當(dāng)對(duì)某一個(gè)參數(shù)點(diǎn)進(jìn)行多次測(cè)量,對(duì)數(shù)據(jù)進(jìn)行比較分析,取合理數(shù)據(jù)的中間值。
2.2 控制狀態(tài)失靈的軟件抗干擾技術(shù)
單片機(jī)控制系統(tǒng)中注重怎樣對(duì)系統(tǒng)正常狀況進(jìn)行維持,假如控制系統(tǒng)被侵入,會(huì)對(duì)系統(tǒng)控制條件產(chǎn)生影響,包括系統(tǒng)信號(hào)的輸出、系統(tǒng)失誤率增大等,為了確保系統(tǒng)可以正常運(yùn)行,可以采取以下軟件抗干擾技術(shù):
(1)軟件冗余
軟件冗余是指單片機(jī)的條件控制系統(tǒng),應(yīng)當(dāng)進(jìn)行采樣處理,也可以結(jié)合循環(huán)采樣進(jìn)行,這種方法適用于慣性比較大的系統(tǒng)。
(2)對(duì)輸出狀況寄存單元進(jìn)行設(shè)置
這種設(shè)置方法會(huì)對(duì)單片機(jī)整個(gè)控制系統(tǒng)受到干擾前提下,能夠迅速準(zhǔn)確召回寄存單元的輸出數(shù)據(jù),方便及時(shí)對(duì)系統(tǒng)輸出數(shù)據(jù)進(jìn)行改正。
(3)自檢程序進(jìn)行設(shè)置
單片機(jī)的自檢程序可以在一定程度上幫助一些部位及一些內(nèi)存的單設(shè)狀態(tài)標(biāo)志,單片機(jī)開(kāi)機(jī)后自動(dòng)開(kāi)展自檢,從而極大的促進(jìn)單片機(jī)控制系統(tǒng)信息溫度可靠性的提高,自檢程序提高其系統(tǒng)穩(wěn)定可靠性,對(duì)于單片機(jī)系統(tǒng)而言,自檢程序是必不可少的。
(4)時(shí)間片的方法
單片機(jī)控制系統(tǒng)接口狀況受到外界環(huán)境影響和干擾,單片機(jī)控制系統(tǒng)的資源會(huì)被其他任務(wù)所占用,導(dǎo)致單片機(jī)控制系統(tǒng)發(fā)生死鎖情況,時(shí)間片方法對(duì)此有很好的效果。
2.3 利用數(shù)據(jù)冗余技術(shù)實(shí)現(xiàn)存儲(chǔ)器
單片機(jī)要實(shí)現(xiàn)實(shí)時(shí)控制,不可避免會(huì)涉及到內(nèi)容的自救,存儲(chǔ)器中數(shù)據(jù)中大部分是可以毀壞,一部分是不允許丟失,所以數(shù)據(jù)的毀壞不一定是系統(tǒng)損壞造成的,僅僅是系統(tǒng)出現(xiàn)微小浮動(dòng),用不了多久時(shí)間恢復(fù)正常。因此,實(shí)際控制時(shí)我們僅僅需要對(duì)不允許丟失的數(shù)據(jù)進(jìn)行保護(hù),保護(hù)過(guò)程中會(huì)校驗(yàn)法和設(shè)標(biāo)法進(jìn)行重要數(shù)據(jù)的保護(hù)。其中,校驗(yàn)法的可信度較高,可以難以操作。具體在編程過(guò)程中,會(huì)對(duì)兩種方法進(jìn)行綜合,先在存儲(chǔ)器目標(biāo)數(shù)據(jù)工作區(qū)的始末端進(jìn)行標(biāo)志性代碼的設(shè)置,對(duì)固定數(shù)據(jù)表格進(jìn)行校驗(yàn)字的設(shè)置。除此之外,程序運(yùn)行時(shí)對(duì)程序工作狀況進(jìn)行檢查,避免出現(xiàn)錯(cuò)誤。
2.4 程序插入空操作指令
單片機(jī)內(nèi)部程序計(jì)數(shù)器的容錯(cuò)值是比較容易受到外界干擾的地方,較強(qiáng)干擾時(shí)會(huì)出現(xiàn)較大變化,而且變化的值不固定,造成程序工作狀態(tài)沒(méi)有順序。針對(duì)這種情況,可以在單片機(jī)程序中插入空操作指令,失控系統(tǒng)收到空指令,一方面使得系統(tǒng)內(nèi)部存儲(chǔ)器內(nèi)容進(jìn)行調(diào)整,另一方面對(duì)程序進(jìn)行糾正。然而,空操作指令中一大部分屬于單字節(jié)指令,因此每一個(gè)程序中指令的使用次數(shù)有限。而且,增添存儲(chǔ)單元數(shù)量不能太多,可以對(duì)系統(tǒng)穩(wěn)定可靠性起到促進(jìn)作用。除此之外,單片機(jī)插入空操作指令還要注意以下幾個(gè)方面的內(nèi)容:
(1)空操作指令插入到跳轉(zhuǎn)字節(jié),確保單片機(jī)系統(tǒng)程序正常運(yùn)行。
(2)單片機(jī)系統(tǒng)插入空操作指令,注意指令插入到較為重要的操作指令前。
(3)單片機(jī)系統(tǒng)插入空操作指令,對(duì)相鄰倆插入指令間距進(jìn)行調(diào)整,每間隔2-3條指令插入一次。
(4)單片機(jī)系統(tǒng)插入空操作指令,結(jié)合其實(shí)際情況,或許我們只插入一條、兩條操作指令即可滿足其正常運(yùn)行。
3.結(jié)語(yǔ)
總而言之,干擾對(duì)于單片機(jī)的危害是比較大的,因此本文針對(duì)干擾對(duì)于單片機(jī)的影響和危害,采取軟件抗干擾措施以應(yīng)對(duì)。實(shí)際上,硬件抗干擾和軟件抗干擾之間存在很大的差別,前者是主動(dòng)措施,后者是被動(dòng)措施,各有所長(zhǎng),因此在具體的應(yīng)用環(huán)境中軟件抗干擾和硬件抗干擾進(jìn)行結(jié)合,可以有效確保工業(yè)現(xiàn)場(chǎng)單片機(jī)能夠長(zhǎng)期、穩(wěn)定可靠的運(yùn)行。
參考文獻(xiàn)
[1]閻新芳.ADuC831單片機(jī)在FSK信號(hào)解碼中的應(yīng)用[J].河南科技.2006(10).
[2]陳信.利用可編程接口技術(shù)和8031單片機(jī)實(shí)現(xiàn)LCM顯示的研究[J].大眾科技.2005(08).
[3]衣英剛,姚兆.單片機(jī)在坦克火控系統(tǒng)模擬器中的應(yīng)用研究[J].科技資訊.2008(13).
[4]程瓊,黃圣超,王淑青,張友獎(jiǎng).基于ISP技術(shù)的單片機(jī)與CPLD實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)科學(xué)與技術(shù).2009(01)
[5]楊志敏,龔蓬.單片機(jī)軟件的開(kāi)發(fā)研究[J].安徽大學(xué)學(xué)報(bào)(自然科學(xué)版).2008(01).
[6]羅賢鋒,童雪娟,傅鳳岐.單片機(jī)修復(fù)機(jī)電類教學(xué)設(shè)備方法[J].實(shí)驗(yàn)科學(xué)與技術(shù).2008(01).
[7]張劍鋒,陳銳,陳慕君,曾凡嬌.單片機(jī)軟件精確延時(shí)計(jì)算和延時(shí)程序設(shè)計(jì)方法[J].黑龍江科技信息.2009(26)
[8]吳允平.單片機(jī)多任務(wù)架構(gòu)軟件的限時(shí)服務(wù)設(shè)計(jì)[J].小型微型計(jì)算機(jī)系統(tǒng).2005(07).
[9]汪林.基于Small_RTOS51的單片機(jī)軟件快速開(kāi)發(fā)架構(gòu)[J].中國(guó)民航飛行學(xué)院學(xué)報(bào).2007(01).