單片機應用系統的抗干擾解決方案
3.2 軟件陷阱技術
軟件冗余技術適用于干擾后PC指向不正確的程序區,當跑飛程序進入非程序區(如EPROM未使用的空間)或表格區時,使用冗余指令的措施已不再適用,可采用軟件陷阱的辦法攔截跑飛程序,將其迅速引向一個指定的位置,執行一段對程序運行出錯的處理程序。軟件陷阱可采用以下形式:
NOP
NOP
LJMP ERROR ;ERROR為指定地址,安排有出錯處理程序
軟件陷阱可安排在下面幾個區域。
①未使用的中斷向量區。
當干擾使未使用的中斷開放,并激活這些中斷時,就會引起系統程序的混亂,如果在這些地方設置陷阱,就能及時捕捉到錯誤中斷。
②未使用的EPROM區。
假設使用了一片2764,但程序并沒有用完這個2764區域,這些非程序區可以用0000020000數據填滿,020000是指令LJMP 0000H的機器碼,當跑飛程序進入此區后,便會迅速自動進入正確軌道。
③數據表格區。
由于表格中內容和檢索值有一一對應關系,在表格中安排陷阱將會破壞其連續性和對應關系,應在表格區的尾部設置軟件陷阱。
④程序區。
前面已介紹,跑飛的程序在用戶程序內部跳轉時可用指令冗余技術加以解決,也可以設置軟件陷阱,更有效地抑制程序跑飛。程序設計常采用模塊化設計,模塊化的程序是由一序列執行指令構成的,一般不能在這些指令串中間任意安排陷阱,否則正常執行的程序也可能被抓走,可以將陷阱指令分散放置在各模塊之間的空余單元中。正常程序中不執行這些陷阱指令,但當程序跑飛一旦進入陷阱區,馬上將程序拉回正確軌道。陷阱的多少視用戶程序的大小而定,一般每1K字節有幾個陷阱就夠了。
⑤非EPROM芯片空間
MCS-51有64K程序系統空間,一般除了EPROM芯片占用的地址外,還剩余大片未編程的EPROM空間。當PC跑飛進入這些空間時,讀入數據為0FFH,對51系列而言,相當于指令MOV R7,A,將修改R7的內容。
當CPU讀程序存儲器時,會產生一個PSEN的低電平信號,可利用該信號和EPROM的地址譯碼信號產生選通信號,引起一個空閑的中斷,在中斷服務程序中設置軟件陷阱,將跑飛程序拉入正規。圖2是一個實例。

3.3 看門狗技術
PC受到干擾引起程序失控,有可能使程序進入死循環,指令冗余和陷阱技術都不能解決這個問題,通常采用看門狗技術(Watchdog)。該技術就是不斷監視程序循環運行的時間,若發現時間超過已知的循環設定時間,即認為進入死循環,然后強迫程序返回到0000H入口地址,在0000H安排出錯處理程序,使系統納入正規。看門狗技術既可由硬件實現,也可以由軟件來實現,二者還可以結合使用。













評論