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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > CAN總線的工作原理

          CAN總線的工作原理

          作者: 時間:2016-12-14 來源:網絡 收藏
          控制器局域網總線(CAN,Controller Area Network)是一種用于實時應用的串行通訊協(xié)議總線,它可以使用雙絞線來傳輸信號,是世界上應用最廣泛的現場總線之一。CAN協(xié)議由德國的Robert Bosch公司開發(fā),用于汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。該協(xié)議的健壯性使其用途延伸到其他自動化和工業(yè)應用。CAN協(xié)議的特性包括完整性的串行數據通訊、提供實時支持、傳輸速率高達1Mb/s、同時具有11位的尋址以及檢錯能力。
          CAN總線是一種多主方式的串行通訊總線,基本設計規(guī)范要求有高的位速率,高抗電子干擾性,并且能夠檢測出產生的任何錯誤。CAN總線可以應用于汽車電控制系統(tǒng)、電梯控制系統(tǒng)、安全監(jiān)測系統(tǒng)、醫(yī)療儀器、紡織機械、船舶運輸等領域。
          CAN總線的特點
          1、具有實時性強、傳輸距離較遠、抗電磁干擾能力強、成本低等優(yōu)點;
          2、采用雙線串行通信方式,檢錯能力強,可在高噪聲干擾環(huán)境中工作;
          3、具有優(yōu)先權和仲裁功能,多個控制模塊通過CAN 控制器掛到CAN-bus 上,形成多主機局部網絡;
          4、可根據報文的ID決定接收或屏蔽該報文;
          5、可靠的錯誤處理和檢錯機制;
          6、發(fā)送的信息遭到破壞后,可自動重發(fā);
          7、節(jié)點在錯誤嚴重的情況下具有自動退出總線的功能;
          8、報文不包含源地址或目標地址,僅用標志符來指示功能信息、優(yōu)先級信息。
          CAN總線的工作原理
          CAN總線使用串行數據傳輸方式,可以1Mb/s的速率在40m的雙絞線上運行,也可以使用光纜連接,而且在這種總線上總線協(xié)議支持多主控制器。CAN與I2C總線的許多細節(jié)很類似,但也有一些明顯的區(qū)別。
          當CAN總線上的一個節(jié)點(站)發(fā)送數據時,它以報文形式廣播給網絡中所有節(jié)點。對每個節(jié)點來說,無論數據是否是發(fā)給自己的,都對其進行接收。每組報文開頭的11位字符為標識符,定義了報文的優(yōu)先級,這種報文格式稱為面向內容的編址方案。在同一系統(tǒng)中標識符是唯一的,不可能有兩個站發(fā)送具有相同標識符的報文。當幾個站同時競爭總線讀取時,這種配置十分重要。
          當一個站要向其它站發(fā)送數據時,該站的CPU將要發(fā)送的數據和自己的標識符傳送給本站的CAN芯片,并處于準備狀態(tài);當它收到總線分配時,轉為發(fā)送報文狀態(tài)。CAN芯片將數據根據協(xié)議組織成一定的報文格式發(fā)出,這時網上的其它站處于接收狀態(tài)。每個處于接收狀態(tài)的站對接收到的報文進行檢測,判斷這些報文是否是發(fā)給自己的,以確定是否接收它。
          由于CAN總線是一種面向內容的編址方案,因此很容易建立高水準的控制系統(tǒng)并靈活地進行配置。我們可以很容易地在CAN總線中加進一些新站而無需在硬件或軟件上進行修改。當所提供的新站是純數據接收設備時,數據傳輸協(xié)議不要求獨立的部分有物理目的地址。它允許分布過程同步化,即總線上控制器需要測量數據時,可由網上獲得,而無須每個控制器都有自己獨立的傳感器


          關鍵詞: CAN總線工作原

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();