新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)應(yīng)用系統(tǒng)的抗干擾解決方案

單片機(jī)應(yīng)用系統(tǒng)的抗干擾解決方案

作者: 時(shí)間:2012-03-26 來(lái)源:網(wǎng)絡(luò) 收藏

3.2 軟件陷阱技術(shù)

軟件冗余技術(shù)適用于干擾后PC指向不正確的程序區(qū),當(dāng)跑飛程序進(jìn)入非程序區(qū)(如EPROM未使用的空間)或表格區(qū)時(shí),使用冗余指令的措施已不再適用,可采用軟件陷阱的辦法攔截跑飛程序,將其迅速引向一個(gè)指定的位置,執(zhí)行一段對(duì)程序運(yùn)行出錯(cuò)的處理程序。軟件陷阱可采用以下形式:
NOP
NOP
LJMP ERROR ;ERROR為指定地址,安排有出錯(cuò)處理程序

軟件陷阱可安排在下面幾個(gè)區(qū)域。

①未使用的中斷向量區(qū)。

當(dāng)干擾使未使用的中斷開(kāi)放,并激活這些中斷時(shí),就會(huì)引起系統(tǒng)程序的混亂,如果在這些地方設(shè)置陷阱,就能及時(shí)捕捉到錯(cuò)誤中斷。

②未使用的EPROM區(qū)。

假設(shè)使用了一片2764,但程序并沒(méi)有用完這個(gè)2764區(qū)域,這些非程序區(qū)可以用0000020000數(shù)據(jù)填滿(mǎn),020000是指令LJMP 0000H的機(jī)器碼,當(dāng)跑飛程序進(jìn)入此區(qū)后,便會(huì)迅速自動(dòng)進(jìn)入正確軌道。

③數(shù)據(jù)表格區(qū)。

由于表格中內(nèi)容和檢索值有一一對(duì)應(yīng)關(guān)系,在表格中安排陷阱將會(huì)破壞其連續(xù)性和對(duì)應(yīng)關(guān)系,應(yīng)在表格區(qū)的尾部設(shè)置軟件陷阱。

④程序區(qū)。

前面已介紹,跑飛的程序在用戶(hù)程序內(nèi)部跳轉(zhuǎn)時(shí)可用指令冗余技術(shù)加以解決,也可以設(shè)置軟件陷阱,更有效地抑制程序跑飛。程序設(shè)計(jì)常采用模塊化設(shè)計(jì),模塊化的程序是由一序列執(zhí)行指令構(gòu)成的,一般不能在這些指令串中間任意安排陷阱,否則正常執(zhí)行的程序也可能被抓走,可以將陷阱指令分散放置在各模塊之間的空余單元中。正常程序中不執(zhí)行這些陷阱指令,但當(dāng)程序跑飛一旦進(jìn)入陷阱區(qū),馬上將程序拉回正確軌道。陷阱的多少視用戶(hù)程序的大小而定,一般每1K字節(jié)有幾個(gè)陷阱就夠了。

⑤非EPROM芯片空間

MCS-51有64K程序系統(tǒng)空間,一般除了EPROM芯片占用的地址外,還剩余大片未編程的EPROM空間。當(dāng)PC跑飛進(jìn)入這些空間時(shí),讀入數(shù)據(jù)為0FFH,對(duì)51系列而言,相當(dāng)于指令MOV R7,A,將修改R7的內(nèi)容。

當(dāng)CPU讀程序存儲(chǔ)器時(shí),會(huì)產(chǎn)生一個(gè)PSEN的低電平信號(hào),可利用該信號(hào)和EPROM的地址譯碼信號(hào)產(chǎn)生選通信號(hào),引起一個(gè)空閑的中斷,在中斷服務(wù)程序中設(shè)置軟件陷阱,將跑飛程序拉入正規(guī)。圖2是一個(gè)實(shí)例。

28.gif

3.3 看門(mén)狗技術(shù)

PC受到干擾引起程序失控,有可能使程序進(jìn)入死循環(huán),指令冗余和陷阱技術(shù)都不能解決這個(gè)問(wèn)題,通常采用看門(mén)狗技術(shù)(Watchdog)。該技術(shù)就是不斷監(jiān)視程序循環(huán)運(yùn)行的時(shí)間,若發(fā)現(xiàn)時(shí)間超過(guò)已知的循環(huán)設(shè)定時(shí)間,即認(rèn)為進(jìn)入死循環(huán),然后強(qiáng)迫程序返回到0000H入口地址,在0000H安排出錯(cuò)處理程序,使系統(tǒng)納入正規(guī)??撮T(mén)狗技術(shù)既可由硬件實(shí)現(xiàn),也可以由軟件來(lái)實(shí)現(xiàn),二者還可以結(jié)合使用。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉