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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 利用LPC2194的4路CAN網(wǎng)橋設(shè)計

          利用LPC2194的4路CAN網(wǎng)橋設(shè)計

          作者: 時間:2010-03-05 來源:網(wǎng)絡(luò) 收藏

            在配置模式下配置好各信息后,系統(tǒng)重新上電可以進(jìn)入正常工作模式。根據(jù)配置模式配置的狀態(tài),4路對網(wǎng)絡(luò)中的信息進(jìn)行存儲轉(zhuǎn)發(fā)。在中,4路控制器是同時工作的,因此能夠提高系統(tǒng)的速度和實時性。每一路的結(jié)構(gòu)和程序是相同的,因此本僅給出1路控制器正常工作的程序

            為了提高系統(tǒng)的轉(zhuǎn)換速度和穩(wěn)定性,本采用了中斷接收和查詢發(fā)送的方式。系統(tǒng)中斷接收總線上的數(shù)據(jù),并根據(jù)路由選擇和標(biāo)識符的分配選擇發(fā)送到其他3路,從而完成的工作。系統(tǒng)主程序和中斷程序流程分別如圖4和圖5所示。

          系統(tǒng)主程序和中斷程序流程

            4 實驗結(jié)果

            為了驗證系統(tǒng)的可靠性,設(shè)計了一個通信收包率的實驗。通過PC機(jī)間隔一定的時間,向CAN一條支路發(fā)送8字節(jié)的數(shù)據(jù),網(wǎng)橋的另一條支路向PC機(jī)回復(fù)接收到的8字節(jié)數(shù)據(jù)。通過對比發(fā)送和接收的字節(jié)數(shù)來驗證收包率。分別以100 ms、10 ms、5 ms、1 ms的間隔來發(fā)送8字節(jié)的數(shù)據(jù),發(fā)送和接收到的字節(jié)數(shù)為:

           ?、匍g隔100 ms時,發(fā)送1 336個字節(jié),接收1 336個字節(jié),收包率為100%;

            ②間隔10 ms時,發(fā)送3 376個字節(jié),接收3 376個字節(jié),收包率為100%;

           ?、坶g隔5 ms時,發(fā)送4 056個字節(jié),接收4 056個字節(jié),收包率為100%;

            ④間隔1 ms時,發(fā)送5 336個字節(jié),接收5 336個字節(jié),收包率為100%。

            其中,間隔1 ms時的發(fā)送和接收圖如圖6所示。

          間隔1 ms時的發(fā)送和接收圖

            實驗結(jié)果表明,在以不同間隔發(fā)送數(shù)據(jù)時,網(wǎng)橋都能很好地完成工作,可滿足實際應(yīng)用的需要。

            結(jié) 語

            本文設(shè)計的4路CAN網(wǎng)橋采用功能強(qiáng)大的ARM芯片作為主控芯片,因此能夠及時地處理4路CAN總線的數(shù)據(jù)傳輸。通過具體實驗證明,該網(wǎng)橋工作穩(wěn)定、可靠、使用方便,完全滿足現(xiàn)場的需求。


          上一頁 1 2 下一頁

          評論


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