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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)系統(tǒng)的故障重現(xiàn)設(shè)計(jì)及實(shí)現(xiàn)

          單片機(jī)系統(tǒng)的故障重現(xiàn)設(shè)計(jì)及實(shí)現(xiàn)

          作者: 時(shí)間:2013-02-25 來源:網(wǎng)絡(luò) 收藏

          串口SIO效應(yīng)

          串口SIO效應(yīng)實(shí)驗(yàn)主要是看串口通訊是否出錯(cuò)。要觀察到這種現(xiàn)象,就必須讓運(yùn)行串口通訊程序。由于51型只有一個(gè)串口,而要使其進(jìn)行通訊,最少需要兩個(gè)串口,這就至少需要有兩套,這將使設(shè)備和實(shí)驗(yàn)復(fù)雜化。在認(rèn)真研究串口工作原理后,終于找到了只用一個(gè)單片機(jī)模擬串口通訊的方案:把CPU的TXD和RXD短接,將TXD端發(fā)出的數(shù)據(jù)直接送入RXD進(jìn)行接收,使單片機(jī)工作于自發(fā)自收狀態(tài),通過檢查接收與發(fā)送的數(shù)據(jù)是否相等判斷通訊是否正常。當(dāng)然,仍需采用循環(huán)等待技術(shù),使通訊循環(huán)進(jìn)行,當(dāng)運(yùn)行正常時(shí),在P1.1口產(chǎn)生脈沖信號(hào),使紅色LED亮。如果通汛出現(xiàn)異常,數(shù)碼管將顯示出錯(cuò)信息,并將LED熄滅。

          定時(shí)器CTC效應(yīng)

          為使CTC工作失誤,可在主程序中加入允許CTC中斷的指令,使程序運(yùn)行時(shí),CTC一直在工作,等待電磁脈沖來干擾。 定時(shí)器采用CPU內(nèi)部定時(shí)器0,工作方式為方式1。編寫CTC0的中斷子程序,與軟件計(jì)數(shù)器R0配合,在P1.1口產(chǎn)生一個(gè)方波信號(hào),驅(qū)動(dòng)LED閃亮。主程序等待K按下指令,等待期間進(jìn)行干擾實(shí)驗(yàn)。如果LED閃亮異常,表明CTC工作不正常。以下為定時(shí)器0的中斷子程序:

          實(shí)驗(yàn)結(jié)果

          該單片機(jī)以前,曾用一單片機(jī)最小應(yīng)用做效應(yīng)實(shí)驗(yàn),結(jié)果只能觀察到死機(jī)現(xiàn)象。而將該系統(tǒng)用于效應(yīng)實(shí)驗(yàn)后,觀察到了硬件損壞、A/D轉(zhuǎn)換誤差增大、內(nèi)存數(shù)據(jù)改變、程序跳轉(zhuǎn)、死機(jī)、CTC工作失誤、串口通訊出錯(cuò)和程序存儲(chǔ)器E2PROM內(nèi)容被改寫等多種現(xiàn)象。通過大量、反復(fù)地實(shí)驗(yàn),測(cè)出了各種故障出現(xiàn)的閾值,分析了故障出現(xiàn)的原因。

          圖4是示波器記錄下的串口RXD引腳上的正常信號(hào)和通訊出錯(cuò)時(shí)的干擾波形。圖4表明,RXD上有很強(qiáng)的干擾信號(hào),而且低電平被展寬了3~4倍。根據(jù)實(shí)驗(yàn)數(shù)據(jù)及串口工作原理,得出申行通訊出錯(cuò)的原因有兩個(gè):1.干擾使SIO電路工作失誤,如串口控制寄存器SCON內(nèi)容改變,發(fā)送或接收SBUF內(nèi)容改變等,這些都可能引起接收數(shù)據(jù)和發(fā)送數(shù)據(jù)不符,從而使通訊出錯(cuò);2.RXD線上的干擾信號(hào)使串行數(shù)據(jù)發(fā)生混亂,從而使接收數(shù)據(jù)出錯(cuò)。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(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); })();