• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      單片機(jī)系統(tǒng)軟件抗干擾設(shè)計(jì)

      2013-08-15 00:54:11方向陽
      科技視界 2013年5期
      關(guān)鍵詞:服務(wù)程序看門狗主程序

      方向陽

      (鄭州市第六十三中學(xué),河南鄭州450009)

      0 引言

      隨著單片機(jī)測控系統(tǒng)越來越復(fù)雜, 工作環(huán)境的干擾也越來越嚴(yán)重。 面對環(huán)境惡劣的工業(yè)現(xiàn)場,大量的干擾源雖然不會造成單片機(jī)系統(tǒng)硬件的破壞,卻常常會侵入系統(tǒng)破壞數(shù)字信號的時(shí)序,更改單片機(jī)寄存器內(nèi)容,導(dǎo)致程序在地址空間內(nèi)“亂飛”,或者陷入死循環(huán)。 因此,要保證新型微控制器的可靠性、安全性,就必須在提高硬件可靠性的基礎(chǔ)上,在程序設(shè)計(jì)中采取措施,通過軟件技術(shù)增強(qiáng)系統(tǒng)的穩(wěn)定運(yùn)行。

      由于程序設(shè)計(jì)靈活,節(jié)省硬件資源,所以軟件抗干擾設(shè)計(jì)越來越引起人們的重視。下面,就以MCS-51 系列單片機(jī)為例,討論在基于單片機(jī)的測控系統(tǒng)中,主要應(yīng)用的軟件抗干擾設(shè)計(jì)。

      1 指令冗余設(shè)計(jì)

      “指令冗余”就是在程序關(guān)鍵的地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫。它是使程序從“亂飛”狀態(tài)恢復(fù)正常的一種有效措施,其前提條件要求PC 指針必須指向程序運(yùn)行區(qū),且必須執(zhí)行到冗余指令。 正常情況下CPU 取指令過程是先取操作碼,再取操作數(shù),當(dāng)指令計(jì)數(shù)器PC 受到干擾出現(xiàn)錯(cuò)誤時(shí),程序便脫離正常軌道“亂飛”,導(dǎo)致CPU 把一些操作數(shù)當(dāng)作操作碼來執(zhí)行, 從而引起整個(gè)程序的混亂。

      NOP 指令的插入是指令冗余設(shè)計(jì)的一種主要方式,由于MCS-51的所有指令不超過3 個(gè)字節(jié),且多為單字節(jié)指令,所以通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP 指令。 這樣即使程序“亂飛”落到操作數(shù)上,由于空操作指令NOP 的存在,就避免了后面的指令被當(dāng)作操作數(shù)執(zhí)行,使程序自動納入正軌。

      此外,在對于程序流向控制起決定作用(如RET、ACALL、LJMP 等)或?qū)ο到y(tǒng)工作狀態(tài)起重要作用(如SETB 等)的指令后面,插入兩條NOP 指令或重復(fù)寫入該指令,也可迅速將亂飛程序納入正軌,確保這些重要指令的正確執(zhí)行。

      2 軟件陷阱的設(shè)計(jì)

      當(dāng)亂飛的程序進(jìn)入非程序區(qū),冗余指令便失去作用。 此時(shí)可通過軟件陷阱的設(shè)定,攔截亂飛程序,將其迅速引向一個(gè)指定位置,再進(jìn)行錯(cuò)誤處理,使程序重新納入正軌。

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

      MCS-51 單片機(jī)的中斷向量區(qū)為:0003H~002FH, 如果部分因干擾而開放的話,可以在此區(qū)設(shè)計(jì)軟件陷阱,捕捉錯(cuò)誤中斷。

      設(shè)計(jì)陷阱時(shí),首先要開放相應(yīng)的中斷,在中斷服務(wù)程序中安排軟件陷阱,將程序引至復(fù)位入口地址或處理錯(cuò)誤的程序入口地址。 當(dāng)設(shè)定復(fù)位入口地址時(shí),常采用的軟件陷阱形式為:

      NOP

      NOP

      LJMP 0000H

      也可利用某中斷源,如定時(shí)溢出中斷T0,可在中斷服務(wù)程序中設(shè)定陷阱程序如下:

      ORG 000BH ;T0 溢出中斷入口地址

      NOP

      NOP

      POP ACC

      POP ACC;丟棄PC 壓入堆棧的錯(cuò)誤斷點(diǎn)

      PUSH 00H

      PUSH 00H;將斷點(diǎn)地址0000H 送入棧頂

      RETI

      2.2 未使用的EPROM 區(qū)

      作為軟件陷阱的常用指令形式:LJMP 0000H, 其機(jī)器碼為0000020000。 對于沒有使用完的EPROM 芯片空間, 可用020000 填充,如果程序飛入該區(qū)間,即可快速導(dǎo)入正軌。

      3 程序監(jiān)視定時(shí)器的設(shè)計(jì)

      程序監(jiān)視定時(shí)器(Watchdog,WDT),俗稱“看門狗”。 WDT 通過監(jiān)視程序運(yùn)行狀態(tài), 判斷程序是否進(jìn)入死循環(huán)或出現(xiàn)程序跑飛現(xiàn)象,進(jìn)而強(qiáng)迫程序回到復(fù)位狀態(tài)。一可通過硬件電路實(shí)現(xiàn),二可設(shè)置軟件“監(jiān)視跟蹤定時(shí)器”實(shí)現(xiàn),也就是我們要講的軟件“看門狗”技術(shù)。

      在工業(yè)應(yīng)用中,嚴(yán)重的干擾有時(shí)會破壞中斷方式控制字,關(guān)閉中斷,使對應(yīng)的中斷服務(wù)程序得不到執(zhí)行,此時(shí)硬件看門狗電路將失效,必須采用軟件“看門狗”予以配合,才能有效地解決此類問題。

      設(shè)計(jì)軟件“看門狗”時(shí),采用環(huán)形中斷監(jiān)視系統(tǒng),具體過程如下:

      (1)用定時(shí)器T1 監(jiān)視主程序的運(yùn)行時(shí)間。估算系統(tǒng)主程序執(zhí)行一次循環(huán)所需的時(shí)間t,給T1 設(shè)定一稍大于t 的定時(shí)時(shí)間(給主程序留有一定的裕度),在主程序中對T1 進(jìn)行初始化編程。 如果主程序運(yùn)行出現(xiàn)故障,T1 不能被及時(shí)初始化, 經(jīng)過時(shí)間t 后,T1 必將產(chǎn)生溢出中斷,轉(zhuǎn)入中斷服務(wù)程序,使PC 重新獲得主程序入口地址。 對于經(jīng)常使用定時(shí)器T1 進(jìn)行串行通訊的測控系統(tǒng),T1 則不能進(jìn)行中斷, 可在主程序中設(shè)一運(yùn)行觀測標(biāo)志變量,改由串行口中斷進(jìn)行監(jiān)控。

      (2)用定時(shí)器T0 監(jiān)視定時(shí)器T1 的運(yùn)行。在T1 中斷服務(wù)程中設(shè)一運(yùn)行觀測標(biāo)志變量WatchT1,T1 中斷服務(wù)程序每執(zhí)行一次,WatchT1加1,在T0 中斷服務(wù)程序中通過檢測WatchT1 的變化情況判定T1 運(yùn)行是否正常。 若檢測到標(biāo)志變量變化不正常,比如應(yīng)當(dāng)加1 而未加1,則可斷定主程序運(yùn)行出現(xiàn)故障,須在中斷服務(wù)程序中修改地址使程序重新復(fù)位。

      (3)主程序監(jiān)視定時(shí)器T0 的運(yùn)行。 在T0 中斷服務(wù)程序中設(shè)一運(yùn)行觀測標(biāo)志變量WatchT0,T0 中斷服務(wù)程序每執(zhí)行一次,WatchT0 加1。主程序在運(yùn)行的開始儲存變量WatchT0 的初值,在主程序的尾部對變量進(jìn)行判斷比較, 如果變量值發(fā)生了預(yù)期的變化, 說明T0 中斷正常,如果沒有變化則使程序重新復(fù)位運(yùn)行。

      采用以上這種環(huán)形結(jié)構(gòu)的軟件“看門狗”具有良好的抗干擾性能,大大提高了系統(tǒng)可靠性,從而保證系統(tǒng)的穩(wěn)定運(yùn)行。

      4 結(jié)束語

      從根本上來說,軟件抗干擾仍是被動措施,而硬件抗干擾是主動措施。所以對基于單片機(jī)的測控系統(tǒng)來說,由于干擾信號眾多,我們必須通過分析系統(tǒng)所處環(huán)境的各種干擾來源,采用硬件與軟件抗干擾相結(jié)合的方法,完善系統(tǒng)監(jiān)控程序,更好地保證單片機(jī)系統(tǒng)長期穩(wěn)定可靠的運(yùn)行。

      [1]王幸之.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M].北京:北京航空航天大學(xué)出版社,2001.

      [2]劉光斌,劉冬,姚志成.單片機(jī)系統(tǒng)實(shí)用抗干擾技術(shù)[M].北京:人民郵電出版社,2003.

      [3]何立民.MCS-51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2001.

      猜你喜歡
      服務(wù)程序看門狗主程序
      基于移動終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
      基于C#的進(jìn)程守護(hù)程序的設(shè)計(jì)
      視聽(2020年3期)2020-06-11 14:28:18
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      把他叫醒
      電控冰箱軟件模塊化設(shè)計(jì)
      日用電器(2019年12期)2019-02-26 01:53:06
      時(shí)光倒流 換回PotPlayer老圖標(biāo)
      一種采用FPGA實(shí)現(xiàn)的通用看門狗電路
      大眾科技(2015年11期)2015-11-24 01:57:16
      水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
      把它叫醒
      把它叫醒
      桃源县| 股票| 余江县| 伊宁县| 蒲城县| 靖安县| 如皋市| 大庆市| 永昌县| 富阳市| 乐平市| 延吉市| 清水河县| 南靖县| 赤峰市| 讷河市| 合江县| 琼结县| 南川市| 张家港市| 视频| 綦江县| 南陵县| 正定县| 祁阳县| 大方县| 桦南县| 钟山县| 韩城市| 江永县| 农安县| 丹棱县| 孝义市| 永新县| 焉耆| 泰宁县| 平遥县| 武汉市| 汨罗市| 仙居县| 新兴县|