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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 雙端口RAM在單片機系統(tǒng)中的應用

          雙端口RAM在單片機系統(tǒng)中的應用

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


          3.2 MAX813L的使用

          此電路為MAX公司生產(chǎn)的程序監(jiān)控專用電路,用以防止程序跑死、跑飛,如圖2所
          示。將MR與看門狗輸出端WDO相連,看門狗輸入端WDI接到單片機的P1.5腳,REST
          端接單片機復位端RESET。平時,在定時中斷子程序中對P1.5輸出一次,每次取反,則P1.5腳將輸出標準的方波,不斷觸發(fā)看門狗。當系統(tǒng)受到干擾,出現(xiàn)“死機”現(xiàn)象時,單片機將無法從P1.5給出脈沖,1.6 s后813L的REST端便給出復位信號,使單片機復位。另外在掉電和上電期間,MAX813L均能產(chǎn)生可靠的復位信號。

          3.3故障探測及

          這個系統(tǒng)有兩個任務:一是探測2個CPU系統(tǒng)的工作狀況;二是發(fā)現(xiàn)故障時及時進行整個系統(tǒng)的切換。既然要檢測CPU的工作是否正常,它本身就應該高可靠,結構要精少,嚴格篩選。2個CPU同時給故障檢測及不間斷脈沖,檢測系統(tǒng)則檢測所給的脈沖間隔,由此來確定2個CPU系統(tǒng)是否正常工作。這個間隔應大于看門狗產(chǎn)生復位所需的時間,以確定確實硬件出故障后再做切換。當某CPU系統(tǒng)所給出的脈沖間隔大于設定值時,說明此CPU系統(tǒng)發(fā)生了故障。這時切換控制系統(tǒng)就可通過邏輯組合屏蔽掉此CPU的CE,同時放開另一CPU端的CE,將交由副CPU使用。

          4 軟件

          在此電路的其它部分有現(xiàn)成的8 Hz信號,可將此信號作為外部中斷源,由P1.5輸出脈沖信號給故障檢測電路及看門狗電路。每發(fā)生一次中斷,將P1.5輸出取一次
          反,形成了250 ms的方波信號。外部中斷子程序如圖3所示。其中03H為設定的標志
          位,它代表了上一次P1.5輸出的電平。

          在主程序的初始化中,應避免對各內(nèi)外存儲器置數(shù),以便出現(xiàn)故障產(chǎn)生復位后,單片機能夠不間斷按原故障處繼續(xù)運行。

          5 結 論

           

           


          在以往的系統(tǒng)中,為了共享存儲器而不得不增加大量類似245、244的器件,反而影響了可靠性的提高,而的使用可大大簡化電路,從而真正保證雙機系統(tǒng)可靠性的提高。

          對以上方案進行了許多模擬故障試驗,均能可靠地進行切換和不間斷工作。應用在建筑塔鐘控制系統(tǒng)上以后,經(jīng)過長期運行,證明設計是成功的,運行是可靠的。

          參考文獻

          1 趙峰.高性能雙口RAM及應用.現(xiàn)代電子技術,1997
          2 李高強等.雙口RAMIDT7130在全數(shù)字化交流調(diào)速系統(tǒng)中的應用.電子技術應用,1996


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();