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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 看門(mén)狗技術(shù)在某型相機(jī)導(dǎo)航數(shù)據(jù)接口板中的應(yīng)用

          看門(mén)狗技術(shù)在某型相機(jī)導(dǎo)航數(shù)據(jù)接口板中的應(yīng)用

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

          摘要:介紹一種將軟件和硬件相結(jié)合實(shí)現(xiàn)的“狗”在某型板中的。結(jié)合實(shí)際給出硬件電路和軟件流程。實(shí)踐證明,采用該可使429板具有較高的抗干擾性及高可靠性。

          關(guān)鍵詞:航空; 抗干擾性; 可靠性; “狗”

          在某型航空中,通過(guò)429總線(xiàn)板與任務(wù)機(jī)通訊接收相關(guān)和控制指令,同時(shí)與相機(jī)主板通過(guò)并口通訊交換數(shù)據(jù),這樣一來(lái),如果接口板程序陷入“死機(jī)”或“死循環(huán)”狀態(tài),那么整個(gè)相機(jī)系統(tǒng)將無(wú)法正常運(yùn)行,因此,必須盡早發(fā)現(xiàn)故障并采取補(bǔ)救措施。本設(shè)計(jì)系統(tǒng)中采用了軟件與硬件相結(jié)合的“狗”技術(shù)。

          1 系統(tǒng)中的硬件“看門(mén)狗"

          專(zhuān)用硬件看門(mén)狗是指一些集成化的或集成在單片機(jī)內(nèi)的專(zhuān)用看門(mén)狗電路,實(shí)際上它是一個(gè)特殊的定時(shí)器,當(dāng)定時(shí)時(shí)間到時(shí)發(fā)出溢出脈沖。從實(shí)現(xiàn)角度上看,該方式是一種軟件與外部專(zhuān)用電路相結(jié)合的技術(shù),硬件電路連接好以后,在程序中適當(dāng)?shù)夭迦胍恍┛撮T(mén)狗復(fù)位指令(即“喂狗”指令),保證程序正常運(yùn)行時(shí)看門(mén)狗不溢出;而當(dāng)程序運(yùn)行異常時(shí),看門(mén)

          狗超時(shí)發(fā)出溢出脈沖,并通過(guò)單片機(jī)的RESET引腳使單片機(jī)復(fù)位。在這種方式中,看門(mén)狗能否可靠有效地工作,與硬件組成及軟件的控制策略都有密切的關(guān)系。

          該系統(tǒng)采用Maxim公司推出的內(nèi)有“看門(mén)狗”(Watchdog)定時(shí)器的MAX813L型雙列直插式微處理器,其引腳排列如圖1所示。

          圖2示出MAX813L“看門(mén)狗”定時(shí)器的時(shí)序。WDI為“看門(mén)狗”的輸入端.用來(lái)啟動(dòng)Watchdog使定時(shí)器開(kāi)始計(jì)數(shù)。當(dāng)RESET有效或WDI輸入為高阻態(tài)時(shí),Watchdog定時(shí)器被清零且不計(jì)數(shù)。當(dāng)復(fù)位信號(hào)變?yōu)榈碗娖角襑DI電平發(fā)生變化(上升沿變化或下降沿變化)時(shí),定時(shí)器開(kāi)始計(jì)數(shù)。Watchdog一旦被驅(qū)動(dòng)。若在1.6s內(nèi)不再重新觸發(fā)WDI.或WDI不是高阻態(tài)也無(wú)復(fù)位信號(hào)時(shí),定時(shí)器將發(fā)生計(jì)數(shù)溢出,使WDO變?yōu)榈碗娖健Mǔ?,Watchdog可使CPU擺脫“死循環(huán)”的困境,因?yàn)橄萑胨姥h(huán)后就不可能發(fā)出WDI脈沖,最多經(jīng)過(guò)1.6s后,發(fā)出WDO信號(hào)。

          圖3為實(shí)際接口板時(shí)的“看門(mén)狗”硬件連接,其中MAX813L的1腳與8腳相連,7腳接CPU的復(fù)位腳,6腳與CPU的P1.7相連。在軟件設(shè)計(jì)中,P1.7不斷輸出脈沖信號(hào)(“喂狗”指令),如因某種原因CPU進(jìn)人死循環(huán),則P1.7無(wú)脈沖輸出,經(jīng)1.6s后,MAX813L的8腳輸出低電平,將該低電平加到1腳,MAX813L則產(chǎn)生復(fù)位輸出,使CPU有效復(fù)位,CPU從而擺脫死循環(huán)的困境。另外,當(dāng)電源電壓低于門(mén)限值(4.65V)時(shí),MAX813L也產(chǎn)生復(fù)位輸出,使CPU處于復(fù)位狀態(tài),不執(zhí)行任何指令,直至電源電壓恢復(fù)正常,可有效防止電源電壓較低時(shí)CPU產(chǎn)生錯(cuò)誤的動(dòng)作。以下是系統(tǒng)的“喂狗”函數(shù)。

          Sbit WDI=P1.7:

          void WatchDog()

          {

          WDI=1;

          delayl ms();

          WDI=0;

          )

          2 系統(tǒng)中的軟件“看門(mén)狗"

          硬件“看門(mén)狗”技術(shù)能有效監(jiān)視程序,避免CPU陷入“死循環(huán)”或“死機(jī)”故障,但對(duì)中斷關(guān)閉故障無(wú)能為力;而軟件“看門(mén)狗”技術(shù)對(duì)高級(jí)中斷服務(wù)程序陷入“死循環(huán)”無(wú)能為力,但能監(jiān)視全部中斷關(guān)閉的故障。該系統(tǒng)將硬件“看門(mén)狗”與軟件“看門(mén)狗”相結(jié)合,互相取長(zhǎng)補(bǔ)短。獲得出色的抗干擾效果。

          圖3所示的“看門(mén)狗”硬件電路足以應(yīng)對(duì)中斷服務(wù)程序出現(xiàn)的“死循環(huán)”故障,因此,設(shè)計(jì)軟件時(shí)只需考慮監(jiān)視所有的中斷關(guān)閉故障即可。這樣從而大大簡(jiǎn)化軟件流程。系統(tǒng)要求每隔一段時(shí)間接口板要與任務(wù)機(jī)進(jìn)行一次通訊,而通訊過(guò)程是在T0中斷處理程序中完成的,同時(shí)接口板還要與相機(jī)主板完成并口通訊,而這一通訊過(guò)程是在INT0中斷處理程序中完成的。這樣,一旦由于某種原因T0中斷或INT0被關(guān)閉,那么接口板將無(wú)法完成與任務(wù)機(jī)的 429通訊及與相機(jī)主板的并口數(shù)據(jù)通訊。系統(tǒng)軟件 設(shè)計(jì)流程如圖4所示,其中的A0、A1分別為T(mén)0、INT0中斷運(yùn)行的狀態(tài)觀(guān)測(cè)器.每當(dāng)T0、I:NT0中斷1次,A0、A1就相應(yīng)加1。在主程序功能模塊的入口處給A0、A1賦初值,并在中斷處理程序中重新對(duì)A0、Al賦新值,由于整個(gè)429數(shù)據(jù)解碼程序一般足夠長(zhǎng).在解碼的過(guò)程中接口板至少會(huì)分別完成與429任務(wù)機(jī)及相機(jī)主板的一次通訊,因此在每個(gè)周期429數(shù)據(jù)解算完畢的出口處分別將.A0、A1與其初值進(jìn)行比較,以判斷A0、A1是否發(fā)生變化,從而觀(guān)測(cè)二個(gè)中斷是否正常執(zhí)行。若中斷因干擾而關(guān)閉,A0、A1的值不發(fā)生變化,程序可轉(zhuǎn)向相應(yīng)函數(shù)進(jìn)行出錯(cuò)處理,進(jìn)而將程序納入正軌。

          3 結(jié)論

          用硬件電路使程序擺脫“死循環(huán)”或“死機(jī)”,用軟件“看門(mén)狗”技術(shù)解除中斷關(guān)閉故障,使程序重新納入正軌。這種軟硬件相結(jié)合實(shí)現(xiàn)“看門(mén)狗”技術(shù)的方案合理利用了硬件“看門(mén)狗”和軟件“看門(mén)狗”技術(shù)的優(yōu)點(diǎn),使429接口板獲得良好的抗干擾效果及較高的可靠性。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();