單片機系統(tǒng)軟件抗干擾策略在通信電源中的應用
軟件抗干擾技術是當系統(tǒng)受干擾后時系統(tǒng)恢復正常運行或輸入信號受干擾后去偽求真的一種輔助方法,因此軟件抗干擾是被動措施,而硬件抗干擾是主動措施。軟件抗干擾技術所研究的主要內容,其一是采取軟件的方法抑制疊加在模擬輸入信號上噪聲的影響,如數字濾波技術;其二是在因干擾而使運行程序發(fā)生混亂,導致程序亂飛和陷入死循環(huán)時,采取使程序納入正軌的措施,這些措施可以由軟件單獨實現(xiàn),也可以采用軟硬件相結合的方法來實現(xiàn)。
對于已進入單片機的噪聲,必須采取對應措施,盡量維持系統(tǒng)功能,避免導致嚴重后果。如果CPU已產生誤動作或和存儲器內容已被誤修改,則應通過在應用程序中加入必要的代碼進行自恢復。通常的軟件抗干擾措施有:數字濾波方法、輸入口信號重復檢測方法、輸出端口數據刷新方法、軟件攔截技術(指令冗余、軟件陷阱)、“看門狗”技術、發(fā)生故障時的自恢復等。以下是幾種常用的方法:
?。?)主動初始化
首先要保證上電或復位后軟件能夠正確地對單片機及其外圍器件的各種功能、端口或方式、狀態(tài)等實現(xiàn)初始化設置,其次在程序每次使用某功能單元前,都要盡可能地對相應的控制寄存器進行必要的設置。事實證明,這一措施能夠大大提高系統(tǒng)對入侵干擾的自恢復性能。
(2)指令冗余化
程序指令在執(zhí)行當中或鎖存后,都有被噪聲修改的可能,這會導致控制失效甚至引發(fā)事故,因此對重要指令應多次反復執(zhí)行,這樣就能糾正干擾造成的錯誤。對于頻率不高的采集數據,應在一定時間內多次采集后進行濾波處理;對于向外輸出的控制指令,應多次重復執(zhí)行以確保輸出控制信號的可靠性。通常,可以把重要指令設計成定時執(zhí)行的模塊,這樣在整個程序的循環(huán)運行過程中可以反復得到執(zhí)行,即便干擾信號改變了指令內容,也能及時自動恢復正常,盡量減少因故障造成的損失。
?。?)數據冗余化
在干擾較大的環(huán)境中,將數據冗余備份,可以大大增加系統(tǒng)的糾錯能力。對于重要數據應采用多備份,并增加專用于數據檢查和恢復的代碼。從可靠性角度出發(fā),應盡量采用片內SRAM保存重要數據,當片內SRAM容量不夠時,也可以考慮擴展外部非易失性SRAM作為數據存儲器,這種芯片抗干擾性能很好,但價格較高。
?。?)軟件“看門狗”技術
又稱程序監(jiān)視技術,就是不斷監(jiān)視程序循環(huán)運行時間,若發(fā)現(xiàn)超過已知的循環(huán)設定時間,就強迫程序返回到入口處,使系統(tǒng)運行重新納入正軌。其基本思路是:在主程序中對T0中斷服務程序進行監(jiān)視;在T1中斷服務程序中對主程序進行監(jiān)視;T0中斷監(jiān)視T1中斷。從概率觀點,這種相互依存、相互制約的抗干擾措施將使系統(tǒng)運行的可靠性大大提高。
評論