摘要:應用單片機的過程中難免受到一些干擾,對于單片機設計方面最重要的任務之一就是解決單片機在應用過程中免干擾設置的研究設計。如今,在設計單片機應用系統(tǒng)方面,干擾問題就可以通過提升硬件與軟件的相關設計技術來解決。但是,依經(jīng)驗所知,從軟件方面來解決干擾問題的成本較小,效果也比較顯著。本文從單片機易受干擾出發(fā),著重從軟件設計方面提出解決方案。
關鍵詞:單片機系統(tǒng);抗干擾;問題;應對措施
前言
由單片機研發(fā)出來的一些系統(tǒng)經(jīng)常會出現(xiàn)各種問題,令使用者對其使用產(chǎn)生抵觸心理。往往單片機研發(fā)的系統(tǒng)在實驗室中基本能夠很流暢的運行,但是一旦一批批被送入工作場所進行生產(chǎn)作業(yè)和安裝的時候就會常常出現(xiàn)很多非正常不規(guī)律的現(xiàn)象,而引起這些不正常不規(guī)律的原因主要是受到了干擾或者是設計系統(tǒng)時不夠全面。解決單片機的干擾問題可以使應用系統(tǒng)的準確性得以提高,使其工作更加穩(wěn)定,有利于單片機的操作。
1 導致單片機系統(tǒng)出錯的原因
系統(tǒng)出錯的現(xiàn)象主要是:單片機卡機死機、數(shù)據(jù)的顯示無序混亂帶有閃爍、定時不太準、對象不能很好地控制住、被控制的對象出現(xiàn)錯誤操作等等
導致系統(tǒng)出錯的原因基本上是由外部環(huán)境引起的,可能存在電源和磁場上的干擾等,而這些干擾會直接導致內(nèi)部系統(tǒng)出錯。分別導致二-1現(xiàn)象發(fā)生的原因是:(1)卡機死機:這個現(xiàn)象主要是因為其內(nèi)部程序的原因,內(nèi)部的指針錯亂,不按部就班導致程序循環(huán)壞死;或者是因為RAM中的數(shù)據(jù)出現(xiàn)混亂,也可能造成循環(huán)壞死。(2)數(shù)據(jù)的顯示無序混亂帶有閃爍:主要是單片機的內(nèi)部程序中指針出現(xiàn)錯誤,或者RAM數(shù)據(jù)錯誤等,如同導致卡機死機的原因,還有就可能由于與顯示器相關的信號方面的鎖存電路受到了嚴重干擾,導致了顯示器出現(xiàn)閃爍現(xiàn)象。(3)定時不太準:單片機程序的指針發(fā)生錯亂致使程序的中斷,從而導致了運行時間超出了規(guī)定的時間;RAM中的數(shù)據(jù)出現(xiàn)混亂,計算出的程序的結果數(shù)值不準,誤差很大。(4)對象不能很好地控制住:即對象控制不穩(wěn)定。主要原因是被控制對象與鎖存的電路之間線路受到了強烈干擾。(5)被控制的對象出現(xiàn)錯誤操作:一是內(nèi)部程序中的指針出現(xiàn)錯誤,程序的運行也就跟著出錯;RAM中的部分數(shù)據(jù)出現(xiàn)錯誤,致使程序計算的結果出現(xiàn)錯誤;外部的鎖存電路嚴重遭到干擾,鎖存產(chǎn)生錯誤,導致被控制的對象操作也有誤。
由設計制造方面出發(fā),受干擾原因是:(1)程序的配件質(zhì)量過低(2)設計者在屏蔽保護方面沒有給予重視(3)較遠的距離傳輸相關電流以及電壓比較低(4)各零件之間的驅(qū)動功率不夠,處于較為臨界的狀態(tài)(5)程序抗干擾的措施采取不充分(6)系統(tǒng)程序中電源的抗干擾的能力比較差,功率尤為不足。
2 程序系統(tǒng)受到干擾的影響
首先,干擾造成了數(shù)據(jù)的采集工作錯誤率偏高。當傳感器信號輸入時情況尤為嚴重。然后,單片機應用的程序系統(tǒng)時常需要有條件輸入才能決定控制狀態(tài)的輸出工作。受到強烈干擾之后就會直接影響到信號輸出這一環(huán)節(jié),導致輸出控制錯誤,或者直接導致控制的輸出出錯。再者,最容易受到干擾影響的便是RAM數(shù)據(jù),它會導致RAM的數(shù)據(jù)變化,造成數(shù)值上的偏差,以至于定時的工作也不能正常完成。最后,程序在受到干擾之后出現(xiàn)失常,導致經(jīng)常性的“循環(huán)壞死”。
3 應對措施
針對干擾產(chǎn)生的不同的影響,在軟件設計上可以采用不同的措施,具體問題具體分析。
3.1 降低采集數(shù)據(jù)上的誤差的相關對策。為了提高單片機的數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)檢測的準確性以及精度,在軟件設計上通常會采用數(shù)字過濾波的技術。數(shù)字過濾波技術實際上就是說通過有程序的計算對數(shù)據(jù)的采樣進行相應的處理,排除強大的干擾,使加工程序更平穩(wěn),降低干擾噪音等,實現(xiàn)多元化的數(shù)字式過濾功能。
3.2 針對控制狀態(tài)出現(xiàn)異常的情況制定的軟件解決方案
3.2.1 多次采樣;針對成功控制的功能,最常用的控制條件系統(tǒng)的做法對相關的控制的部分條件進行一次性采樣,再依照控制的條件狀態(tài)進行輸出。可能在輸出的途中會出現(xiàn)一些干擾情況使得系統(tǒng)的控制輸出發(fā)生錯誤,這樣的情況發(fā)生的時候,需要反復對控制條件進行采樣工作,再對控制輸出工作進行調(diào)整。這樣的方法就是針對慣性比較大的部分控制系統(tǒng)都巨頭比較優(yōu)勢的抗干擾作用。
3.2.2 寄存當前的輸出狀態(tài)情況;系統(tǒng)在運行的時候能夠不停的翻查儲存單元的一些輸出狀態(tài)方面的信息,只要輸出狀態(tài)由于干擾出現(xiàn)異常情況,便可及時的恢復正確輸入形式。
3.2.3 安裝自我檢測的程序;這就要求在機器設置的時候,在計算機程序的特定位置或某個儲存的單元設置安裝狀態(tài)的顯示標志,并對這些標志進行監(jiān)測,便可以隨時掌握運行時控制狀態(tài)的情況,方便在出現(xiàn)異常情況后能夠及時的恢復正常工作,提高工作效率。
3.3 針對程序的異常運行所設計的軟件對策
由于干擾造成的某些程序的異常運行最主要的原因就是PC數(shù)值被破壞導致的。如果說PC數(shù)值改變了之后超過應用程序的范圍,那么計算機就會將超出程序的數(shù)據(jù)作為指令碼進行運作。倘若PC數(shù)值改變之后又正好指向了操作數(shù)值范圍或者常用數(shù)值內(nèi),就要將這些數(shù)值作為指令執(zhí)行任務。然而這種程序不顧一切的運行的最終結果就是導致數(shù)據(jù)庫以及工作儲存器中記載的數(shù)據(jù)遭到破壞,或者很不幸的進入了一個死循環(huán)之中。
遇到這樣的情況解決方法一般如下:
3.3.1 在系統(tǒng)程序編制時設置好程序上的陷阱,強迫需要的程序保持運行。意思就是,由于干擾因素的侵入造成PC數(shù)值改變的,一旦這些干擾進入了提前設置好的陷阱之中,隨后強迫程序進行復位,重新運行,再返回到主界面。
3.3.2 安裝定時跟蹤器,此方法利用安裝好的定時器阻止干擾,并對程序的運行進行監(jiān)測。
4 總結
單片機系統(tǒng)遭到干擾對系統(tǒng)程序運行影響是比較嚴重的,針對此情況,抗干擾措施的出現(xiàn)對于單片機的應用是相當重要的。本文提出以上幾種抗干擾的基本軟件類的應對措施。提倡軟件類的措施是因為其操作簡單,容易實現(xiàn)的特點。在單片機的日常運用中,以上幾種應對做法是最常見的也是效果比較明顯的。
參考文獻
[1] 敖振浪,李源鴻,譚鑒榮;十六位模數(shù)轉換器AD7705及其應用[J];成都信息工程學院學報;2003年03期
[2] 龍慶華;智能溫室計算機自動監(jiān)控系統(tǒng)[J];華南師范大學學報(自然科學版);2002年01期