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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種基于CAN總線的監(jiān)控系統(tǒng)設(shè)計及位定時分析

          一種基于CAN總線的監(jiān)控系統(tǒng)設(shè)計及位定時分析

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

          引言

            can(controller area network)即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。與一般的總線通信相比,can的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性。本課題設(shè)計了一種基于can總線的,并對位定時這一關(guān)鍵問題進行了詳細的闡述。借助該系統(tǒng),使用者可以實現(xiàn)對can網(wǎng)絡(luò)的實時監(jiān)控,并可對系統(tǒng)參數(shù)進行優(yōu)化。

          整體結(jié)構(gòu)

            整個(如圖1)是一個分布式控制系統(tǒng),由三部分組成:上位機、轉(zhuǎn)換模塊、can節(jié)點。上位機負責(zé)監(jiān)控整個系統(tǒng)的運行狀況;轉(zhuǎn)換模塊作為各個節(jié)點與上位機的通信中介,實現(xiàn)上位機與節(jié)點間的雙向通信;各個can節(jié)點均可以在任意時刻,遵循通信協(xié)議完成上傳信息和執(zhí)行控制命令等任務(wù)。

            can節(jié)點接口電路設(shè)計

            can總線上各節(jié)點均采用atmel公司生產(chǎn)的8位單片機為主控器,除完成節(jié)點自身的控制功能外,還與can控制器sja1000配合以實現(xiàn)can網(wǎng)絡(luò)通信功能。

            設(shè)計中選擇sja1000控制器并采用其性能優(yōu)越的pelican擴展模式。can收發(fā)器tja1050是philips公司生產(chǎn)的高速can總線驅(qū)動器。tja1050具有速率高、低功耗、電磁性能優(yōu)越等特點。can接口電路如圖2所示。

            節(jié)點模塊中采用高速光耦來實現(xiàn)收發(fā)器與控制器之間的電氣隔離,抗干擾。光耦選擇高速器件tlp113以滿足在最高速率500kbps下的電氣響應(yīng)。采用dc/dc模塊提供5v電源并實現(xiàn)系統(tǒng)電源與網(wǎng)絡(luò)電源之間電氣隔離措施。為了確保該系統(tǒng)的安全,在dc/dc模塊及系統(tǒng)的輸入和輸出端增加tvs保護。

          系統(tǒng)通信的實現(xiàn)

            can控制器協(xié)議

            can控制器實現(xiàn)的串口通信網(wǎng)絡(luò)遵循osi模型,劃分為兩層:數(shù)據(jù)鏈路層和物理層。物理層按照ieee802.3lan標準構(gòu)造,實現(xiàn)將數(shù)據(jù)發(fā)送到傳輸介質(zhì)上和接收數(shù)據(jù)流的功能。在數(shù)據(jù)鏈路層實現(xiàn)比特流的拼裝。can通信協(xié)議約定了4種不同的幀格式,本系統(tǒng)中使用標準幀格式,其格式如表1。can首先接收到仲裁場,根據(jù)仲裁場的內(nèi)容判斷所接收到的信號是哪種幀格式,用戶將相應(yīng)的數(shù)據(jù)寫入數(shù)據(jù)場中進行發(fā)送,或從數(shù)據(jù)場中讀取接收到的數(shù)據(jù)。


          上一頁 1 2 3 4 下一頁

          評論


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