牟永康 浙江天煌科技實業有限公司
在工程實踐中通常都是幾種抗干擾方法并用,互相補充、完善,才能取得較好的抗干擾效果。從根本上來說,硬件抗干擾是主動的,而軟件抗干擾是被動的。細致周到地分析干擾源,硬件與軟件抗干擾相結合,完善系統監控程序,設計一種穩定可靠的單片機系統是完全可行的。“看門狗技術”原理是運用定時器對中斷方式工作進行系統程序監控,一旦系統受到外界主程序的干擾陷入死循環機后,就會觸碰到定時器然后啟用中斷程序,將系統復位到死循環之前進入正常工作狀態,這種技術主要是分為“養狗”和“喂狗”兩部分。
看門狗技術實際上就在是系統中“養條看門狗”,正常運行時就定時進行喂養,一旦程序出現問題后難以正常喂狗,則就會自動將狗喚醒后實現復位引導,將系統恢復到正常工作狀態,將脫離主程序之外的系統復位到正常運行軌道,解除死循環。因此喂狗主要是利用系統的正常程序的特點,通過中斷方式以及定時器等進行系統環境測試,定時監控系統的工作狀態,并以復位引導功能實現系統正常運行。
“看門狗技術”雖能有效地幫助單片機軟件抵御外界的干擾,但是它也存在著一定的技術局限性。由于定時器的計數初值要定期重置,所以會增加編程的難度及工作量,且由于中斷程序執行時間不能夠超過正常初始設定時間,必須要將單機片軟件狀態進行定時監控,確保外界干擾產生時能夠觸發“狗”,進行中斷關閉。因此“看門狗技術”也不能抵御外界所有害信號破壞,使程序恢復至正常狀態。
系統跑飛主要是由于外界干擾導致系統脫離正常運行軌道,這樣一來就會產生兩種狀態:一是系統跳躍到主程序區域后,系統重要數據并沒有破壞,則一段時間后系統就會自動進入正常運行軌道,這樣的跑飛主要是由于系統出現斷層以及調整不能正常,對系統本身的刪號不大,所以在跳轉后可以自主恢復;二是大多數在外界干擾下,系統遭到破壞需要通過軟件抗干擾技術的抵御,修復系統的修復。主要有以下幾種軟件抗干擾方法。
指令冗余法,當外界有害信號對計算機軟件系統進行破壞時,為了不讓系統的重要數據遭到破壞,單片機軟件可在程序中適當安排一些冗余指令,在計算機正常運行的指令下插入兩條NOP 指令,保證程序運行到此的時候不會被打亂,程序則有可能恢復到正常的工作狀態。
軟件陷阱技術,是根據軟件的運行系統在程序儲存以及運行狀態的每個區域內安排個陷阱,當陷阱啟動后,軟件就會自動進行環境測試啟用重新復位引導系統功能,可以將干擾的計算機程序重新納入正確的運行軌道上。一般而言,軟件陷阱的個數是根據計算機系統程序的儲存空間及疏密性決定的,通常1K 字節的程序放置幾個軟件陷阱就可以了,在其他的程序存儲位置上填充滿軟件陷阱即可。因此,當跑飛的程序進入此程序區域時,就可以迅速復位到正常的運行狀態。
多進程相互看護技術。ucOS 是可以支持多任務的,易于實現多進程和多線程獨立運行,即使不用操作系統的,也可以用MCU 的中斷機制實現多個線程的相互校驗與監視,不同任務放在定時器中斷,然后將任務分步驟執行,讓時間片輪轉,各自標志狀態字和PC 寄存器,從而得以發現異常,及時做出處理,通過校驗數據,判斷是總線還是輸入數據、R AM 數據等干擾類型,利用備份的數據恢復現場。
程序跑飛的原因及結果的可預測性較低,一旦出現跑飛必然是要進行系統修復,所以在系統運行中為確保軟件的正常工作,需要采用抗干擾技術,擯除外界干擾,但抑制干擾技術也并非百分百可靠,還需研究出更加完備的預防措施。雖然當系統遭受到外界的干擾時,運用上述兩種防干擾技術可以有效的使計算機程序重新恢復到正常的運行狀態,只是相對地加強了單片機軟件的抵抗能力,消除一定的信號干擾。在進行系統軟件開發時根據系統的內外環境靈活運用以上兩種抗干擾技術,提高單片機軟件的抗干擾能力。
在消息基器件中,數據的傳輸速率較低是由于命令和消息都是以字符的形式發送導致必須由本地的CPU 進行翻譯。VXI 消息基接口的執行靈活性高,比作計算機高級語言,以時間為代價提高其標準功能。寄存器基儀器則可比作匯編語言,雖然其執行速度快,但是要直接和硬件底層打交道,相對要困難的多。消息基儀器的編程方便并且易于掌握,開發者和使用者并不需要了解其模塊硬件組成及編程原理,極大的減少軟件開發的時間和有效降低系統集成的難度。軟件開發研究人員大膽猜想,如果將消息基傳輸方式和寄存器基傳輸方式兩者結合起來,就有可能實現在不影響數據的傳輸速度情況下,仍使用消息基接口實現器件的智能化。
然而在單片機軟件實際操作過程中,消息基的命令都是以消息的形式傳輸出去的,因此一次只能傳輸一個數據,造成傳輸速率的下降,所以在傳送大量數據的時候,消息基的這種數據傳送方式顯然是不合適的。所以研究人員為了提高消息基儀器的數據傳輸速度,在消息基器件中擴展部分寄存器基接口的成分。數據傳輸率要求低的部分和命令(如器件初始化)以消息基方式進行控制,這樣可以充分發揮消息基接口和寄存器基接口各自的長處。
抗干擾技術是單片機應用系統設計過程中的重要部分,它的設計使得在系統遭受到外界的干擾時能使系統恢復正常工作,避免外界的干擾給單片機系統帶來嚴重的破壞,同樣也在很大程度上提高了系統的穩定性。