杜衛平 新疆輕工職業技術學院
單片機軟件控制系統抗干擾設計分析
杜衛平 新疆輕工職業技術學院
不同的單片機系統都是完整而獨立的,有自己的特點和要求。對于硬件和軟件抗干擾設計上,都體現出自己的特色。本論文針對無線電射頻干擾展開探討,同時也對交流電路工頻干擾等主要的干擾源和干擾方式進行研究,以硬件抗干擾措施為基礎,軟件抗干擾技術起到補充作用。關于軟件抗干擾所采取的措施,先要對測量對象有較全面的了解,并對干擾因素進行探討,在此基礎上還要考慮到系統的特殊性,制計出有效的抗干擾方案。
單片機 控制系統 干擾設計
1.1 測量數據誤差加大
如果干擾因素侵入到單片機系統之中,并且進入到測量單元模擬信號輸入通道,與測量信息發生疊加,導致數據采集的難度加大,出現各種誤差,尤其是在對微弱信號進行檢測時,如果干擾信號過強,而測量信號過弱,則會導致測量被淹沒的情況發生。
1.2 控制系統失靈
單片機輸出的控制信號存在這種現象,通常情況下會對處于某些條件的情況下,對于輸入信號以及對信號的邏輯入理結果過于依賴。如果輸入狀態信號被干擾,有虛假狀態的信息介入其中,則會出現輸出控制誤差加大的情況,嚴重時會導致控制失靈。
1.3 影響單片機RAM存儲器和E2PROM的問題
從單片機的具體運作情況展開研究,在程序存儲器EPROM或FLASH中,程序和表格、數據等都存于其中,采取這種模式可以使數據的獨立性得以保障,不受其它因素的干擾。主要問題集中片內RAM、外擴RAM、E2PROM中所需數據,容易受到外界干擾而發生變化。
1.4 程序運行失常
如果外界的干擾過強,會導致機器頻繁復位,對程序正常運行產生不利影響。如果外界干擾較為嚴重,導致單片機程序計數器PC值被改變,而且PC數值改變具有隨機性,程序會對一些無意義的指令做出反應,因此進入到死循環狀態,程序進入混亂狀態。
2.1 指令冗余
從CPU取指令的過程來看,需要先取操作碼,然后再提取操作數,同時還要把單字節指令插入到程序關鍵之處,對于有效單字節指令重寫,稱之為指令冗余。在一般情況下,對于雙字節指令和三字節指令要進行插入操作,在指令后插入兩字節或更多的NOP指令。NOP指令屬于窄操作,由于NOP的存在,可以避免后面指令被錯誤執行的情況發生,為程序步入正規奠定基礎。另外,一些指令對系統流向產生影響,在具體操作時在此類指令之后可以插入NOP指令,數量以二條為宜,可以使跑飛程序被納入正軌之中,使此類指令得到更好的執行。指令冗余的主要功能在于使CPO正確對待操作數,避免出現把操作數當做操作碼,導致執行錯誤的情況發生,但是卻無法改變錯誤,為了使程序錯誤執行方向的問題得到糾正,需要采用下面的技術。
2.2 設計軟件“陷阱”
在通常情況下,程序存儲器存在未使用的EPROM空間,沒有填入窄操作指令NOP,最后再填入一條跳轉指令,可以跳入到跑飛的處理程序之中,或者選擇把LJMP 0000H指令直接填入,如果跑飛的程序出現在此區域,則會得到調整,雖然會執行一段空操作,但這種錯誤不會持續很久,最后會轉入正軌。如果EPROM具有較大的空間,大部分沒有使用,在操作時可以采取均勻填入的形式,把幾條空操作指令置于其中,并納入跳轉指令。即形成“軟件陷阱”。
經過研究可以確定軟件陷阱結構如下:
NOP
NOP
LJMP FLY
其中FLY作為跑冰處理的子程序承擔著重要職責,如果程序處于正常運行狀態,則軟件陷阱無需執行,但是如果程序發生跑飛,同時還要落入陷阱之內,軟件陷阱則會進入工作狀態,使跑飛的程序發生跳轉,重新進入正常軌道。如果程序跑飛后并未落入陷阱之中,程序會執行一段錯誤操作,然后遇到軟件陷阱,并被轉入到正軌中來。在程序存儲器的空白區域設置軟件陷阱,還要把陷阱設置在程序結尾處。如果數據表較大,為了保障正常運行,在數據中間位置也要設置軟件陷阱,即使程序跑飛到數據區,也會被重新納入正軌。如果程序有較大的存儲空間,在兩個子程序之間設置軟件陷阱可以取得較好效果。遇到使用中斷后,受干擾的影響而開放的情況,如果所對應的中斷服務程序中有軟件陷阱的存在,可以及時處理錯誤的中斷。關于軟件陷阱的數量問題,要根據干擾的情況而定,還要充分考慮到存儲器的容量,如果軟件陷阱太少,則難以實現有效的跑飛攔截,但如果陷阱設置太多,導致大量的程序存儲空間被占用,同樣不利于系統的正常運轉。
2.3 軟件“看門狗”技術
程序發生跑飛的情況比較普遍,在進行錯誤操作之后,會進入到“死循環”狀態,發生死機。而解決此問題的可以采用“軟件看門狗”的技術,可以使程序恢復正常。軟件看門狗技術的原理并不復雜,即對程序的運行時間進行檢測,如果發現程序循環時間過長,不受最大循環運行時間的控制,即可做出判斷,即程序進入到“死循環”狀態,需要采取有效的處理措施。從實際操作來看,采用定時中斷服務程序和定時檢查主程序的運行情況的方式。在工業實踐中,如果干擾過于嚴重,會使控制字被中斷,中斷被關閉,看門狗也隨之失去功效。在這種情況下采用環形中斷監視系統效果較為理想。
“看門狗”的抗干擾性能較強,結構是環形的,使系統的可靠性得以提升。軟件“看門狗”正常運行需要有定時器裝置,在實際操作中,可以看到在很多控制程序中都需要定時器,由此可知定時器屬于緊俏資源,由于這個原因導致使軟件“看門狗”的使用受限。為了解決此問題,軟件可以與其它程序共同使用一個定時器,定時功能與“看門狗”功能實現兼顧。
2.4 檢查RAM區標志數據,發現并處理嚴重干擾
這是一種有效的方式,在RAM區中選擇幾個固定單元,并設置其為固定的數據,即程序處于正常運轉狀態,單元的內容則保持不變。如果程序發生跑飛,或者受到各種因素的干擾,則會導致RAM中的數據出現變化,說明單片機已處于干擾之下,無法正常運行。在程序運行時,我們要對RAM單元的內容進行檢查,如果發現數據出現變化,要立即采取措施,執行LJMP 0000 H語句,完成單片機的復位操作。
2.5 刷新輸出端口
如果單片機系統處于嚴重的干擾狀態之下,甚至對輸出端口的狀態產生影響,在程序操作時,以相關程序模塊運算結果對輸出端口進行刷新操作,可以解決干擾的影響,使輸出端口恢復正常。
2.6 進行多次輸入采樣
如果干擾過于強烈,會對單片機的輸入信號造成不利影響,導致輸入信號瞬間采樣出現誤差,或者出現誤讀的情況,為了把干擾的不利影響降到最低,可以進行重新采樣,利用加權平均的方法解決該問題。
電子技術和微型計算機發展迅速,對微型計算機控制技術的發展起到積極的推動作用,在更多的領域得到廣泛應用。尤其是中小規模的單片機控制系統具有較高的實用價值,智能機電一體化產品在工業生產和日常生活中充分發揮作用,應用更加廣泛。要注意的是在進行單片機控制系統的設計和開發時,要提升設備自動化程度,使之更具智能性,但同時也要把控制系統的穩定性放在重要位置,使控制系統的優越性得以發揮。
[1]陳小波,秦付軍.單片機控制系統抗干擾設計研究[J].軍民兩用技術與產品,2016(10)
[2]王雅雪.單片機控制系統抗干擾設計研究[J].數字化用戶,2013(15)