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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于瑞薩QzROM單片機(jī)的EFT抗干擾措施

          基于瑞薩QzROM單片機(jī)的EFT抗干擾措施

          作者: 時(shí)間:2011-02-27 來(lái)源:電子產(chǎn)品世界 收藏

          本文引用地址:http://www.ex-cimer.com/article/117275.htm


            3. 優(yōu)化程序結(jié)構(gòu)設(shè)計(jì)

            •指令冗余:

            (1)關(guān)鍵位置的多字節(jié)指令之后插入2個(gè)以上的單字節(jié)指令(NOP),避免后面的指令被當(dāng)作操作數(shù);

            (2)跳轉(zhuǎn)指令(JMP,JSR,BRA)和返回指令(RTI,RTS)前插入兩條NOP,避免程序亂飛。

            •軟件陷阱:

            (1)未用中斷向量

            指向一個(gè)錯(cuò)誤處理程序,防止干擾激活未用中斷使程序跑飛;

            (2)在未使用的程序空間,ROM中存儲(chǔ)表格后面,程序區(qū)重要的子程序之間加入跑飛處理程序:

            Subroutine: ;子程序

            RTS

            NOP

            NOP

            B RunAway

            RunAway: ;跑飛處理子程序

            RTS

            •結(jié)合軟件使用看門(mén)狗,見(jiàn)圖6:

            (1)MCU正常工作時(shí),定時(shí)給看門(mén)狗定時(shí)器初始化;(2)當(dāng)MCU跑飛時(shí),由于沒(méi)有在看門(mén)狗定時(shí)周期內(nèi)初始化,看門(mén)狗定時(shí)器計(jì)數(shù)溢出產(chǎn)生復(fù)位信號(hào),使MCU復(fù)位;(3)看門(mén)狗初始化設(shè)置:①無(wú)中斷使用時(shí),主程序循環(huán)中初始化看門(mén)狗;②使用中斷,在中斷程序中刷新某一變量,主程序中判斷此變量變化情況,進(jìn)而執(zhí)行初始化看門(mén)狗操作,并初始化此變量;③多個(gè)中斷的情況,根據(jù)相互的關(guān)系任選一中斷刷新變量,主程序作判斷。

            措施總結(jié)

            • 優(yōu)化PCB布線:提升抗干擾性能最有效的措施——設(shè)計(jì)開(kāi)發(fā)優(yōu)先考慮,優(yōu)先級(jí)最高。

            • I/O處理:MCU使用的推薦配置——使用推薦配置獲得最佳性能。

            • 軟件措施:可以部分解決干擾問(wèn)題——補(bǔ)救方法,例如量產(chǎn)后降低成本發(fā)現(xiàn)的問(wèn)題,推薦重新考慮前兩種方法。


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

          關(guān)鍵詞: 單片機(jī) EFT 201102

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