<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          3.2 軟件陷阱技術(shù)

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

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

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

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

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

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

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

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

          ④程序區(qū)。

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

          ⑤非EPROM芯片空間

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

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

          28.gif

          3.3 看門狗技術(shù)

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();