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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于STM32F1O5的CAN總線中繼器的設(shè)計與實現(xiàn)

          基于STM32F1O5的CAN總線中繼器的設(shè)計與實現(xiàn)

          作者: 時間:2011-04-14 來源:網(wǎng)絡(luò) 收藏

          摘要:提出了一種用MCU自帶的雙接口中繼器的方法,并給出了STM32F105的中繼器的軟硬件方案。采用單CPU的可以很好地解決兩個CAN接口的主從狀態(tài)轉(zhuǎn)換,使系統(tǒng)具有結(jié)構(gòu)簡單、性能穩(wěn)定、實時性高等特點。
          關(guān)鍵詞:CAN;中繼器:STM32F105;CAN控制器;

          0 引言
          CAN總線最初是為了解決汽車內(nèi)部的信號傳輸問題而提出來的,目前廣泛應(yīng)用于工業(yè)現(xiàn)場控制單元、智能樓宇單元、礦業(yè)控制通訊、遠程通訊節(jié)點等控制領(lǐng)域。受到CAN收發(fā)器的閑宣,總線上掛接的節(jié)點不能超過110個,兩個節(jié)點間的最大通訊距離為10km,掛在總線上的節(jié)點要通訊必須具有相同的波特率。
          為了能夠在總線上掛接更多的節(jié)點,增加通信距離以及使具有不同波特率的節(jié)點或網(wǎng)絡(luò)間進行通信,本文提出了一種使用具有雙CAN口的MCU的CAN總線中繼器。該中繼器可大大縮短采用兩個CPU時CAN接口的主從狀態(tài)切換和CPU間通信的時間,提高系統(tǒng)的實時性。

          1 CAN中繼器硬件的
          1.1 系統(tǒng)的硬件結(jié)構(gòu)
          本文設(shè)計的CAN總線中繼器的系統(tǒng)框圖如圖1所示。此中繼器以帶有雙CAN接口的STM32F105為核心,外圍電路主要由光電隔離電路、DC /DC電路、CAN收發(fā)器、狀態(tài)顯示電路、波特率設(shè)置電路、ID設(shè)置電路和電源電路組成。光電隔離電路采用高速光耦將主控電路CPU的I/O口和收發(fā)器進行電氣隔離,可消除總線上的噪聲對主控電路的干擾;為了能使總線和主控電路完全的電氣隔離,用DC/DC隔離電源單獨對CAN收發(fā)器電路部分供電;狀態(tài)顯示電路指示當前各個CAN口的收發(fā)狀態(tài);波特率設(shè)置電路可分別設(shè)置兩個CAN接口的波特率;ID設(shè)置電路可根據(jù)用戶需求設(shè)置當前CAN中繼器的ID;電源電路主要將輸入的9~36V的直流電壓轉(zhuǎn)成5V和3.3V兩種電壓,分別給DC/DC電路和主控電路供電。CAN總線A上的各節(jié)點發(fā)送的信息經(jīng)過CAN收發(fā)器將差分信號轉(zhuǎn)換為TTL電平的報文,經(jīng)過隔離后進入主控CPU,主控CPU將收到的CAN報文進行ID過濾后由另一個CAN接口經(jīng)過光電隔離傳送到另一路的CAN收發(fā)器,CAN收發(fā)器將TTL電平的報文轉(zhuǎn)換為差分信號后發(fā)送到CAN總線B上。
          圖1 CAN總線中繼器系統(tǒng)框圖

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

          a.JPG


          上一頁 1 2 3 下一頁

          評論


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