CAN總線原理簡介

一.CAN總線簡介:

  • 是一種串行通信協議,能有效的支持具有很高安全等級的分佈實時控制
  • 應用範圍十分廣泛,從高速網絡到低價位的多路接線都可以使用CAN
  • 主要運用於汽車電子航天等行業,使用CAN連接發動機的控制單元等汽車部件
  • 具有可靠,實時以及靈活的特性.

二.CAN工作原理:

  1. 以廣播的形式發送報文.當CAN總線上的某個節點需要給其他節點發送消息時,會以廣播的形式發送給總線上所有的節點,因爲總線上的節點不適用地址來進行配置CAN系統,而是根據報文的開頭的11位標識符決定是否要接受其他節點發來的報文.(面向內容的編制方案)
  2. 每個節點都有自己的處理器和CAN總線接口控制器;
  3. 當一個節點需要發送數據到另一個節點時,自身節點的處理器需要將要發送的數據和自己的標識符傳給自身的總線控制接口,處於準備狀態;當獲取到總線的使用權後,將數據和標識符組裝成報文,將報文以一定格式發出,此時其他的節點處於接收狀態.至於其他節點是否接收,由其他節點決定,是都會對某些報文進行過濾.
  4. 當新增的節點僅僅是純粹的數據接收設備時,只需要該設備直接從總線上接收數據即可.

三.總線工作的特點:

  • 特權階級.不論計算機還是真是社會中,都有特權階級的存在,CAN總線上的節點會被劃分爲不同優先級,爲滿足的是不同的實時要求,採用的是非破壞性位仲裁總線結構機制,當兩個節點同時向網絡上傳送信息時,優先級低的節點會主動的停止數據發送,優先級高的就可以不受影響繼續傳輸數據.仲裁(Arbitration) 只要總線空閒,任何節點都可以向總線發送報文。如果有兩個或兩個以上的節點同時發送報文,就會引起總線訪問碰撞。通過使用標識符的逐位仲裁可以解決這個碰撞。仲裁的機制確保了報文和時間均不損失。當具有相同標識符的數據幀和遠程幀同時發送時,數據幀優先於遠程幀。在仲裁期間,每一個發送器都對發送位的電平與被監控的總線電平進行比較。如果電平相同,則這個單元可以繼續發送,如果發送的是“隱性”電平而監視到的是“顯性”電平,那麼這個單元就失去了仲裁,必須退出發送狀態
  • 報文(Message)總線上的數據以不同報文格式發送,但長度受到限制。當總線空閒時,任何一個網絡上的節點都可以發送報文
  • 信息路由(Information Routing)在CAN中,節點不使用任何關於系統配置的報文,比如站地址,由接收節點根據報文本身特徵判斷是否接收這幀信息。因此係統擴展時,不用對應用層以及任何節點的軟件和硬件作改變,可以直接在CAN中增加節點
  • 標識符(Identifier) 要傳送的報文有特徵標識符(是數據幀和遠程幀的一個域),它給出的不是目標節點地址,而是這個報文本身的特徵。信息以廣播方式在網絡上發送,所有節點都可以接收到。節點通過標識符判定是否接收這幀信息
  • 數據一致性應確保報文在CAN裏同時被所有節點接收或同時不接收,這是配合錯誤處理和再同步功能實現的
  • 位傳輸速率不同的CAN系統速度不同,但在一個給定的系統裏,位傳輸速率是唯一的,並且是固定的
  • 優先權 由發送數據的報文中的標識符決定報文佔用總線的優先權。標識符越小,優先權越高
  • 遠程數據請求(Remote Data Request) 通過發送遠程幀,需要數據的節點請求另一節點發送相應的數據。迴應節點傳送的數據幀與請求數據的遠程幀由相同的標識符命名
  • 總線狀態 總線有“顯性”和“隱性”兩個狀態,“顯性”對應邏輯“0”,“隱性”對應邏輯“1”。“顯性”狀態和“隱性”狀態與爲“顯性”狀態,所以兩個節點同時分別發送“0”和“1”時,總線上呈現“0”。CAN總線採用二進制不歸零(NRZ)編碼方式,所以總線上不是“0”,就是“1”。但是CAN協議並沒有具體定義這兩種狀態的具體實現方式
  • 故障界定(Confinement) CAN節點能區分瞬時擾動引起的故障和永久性故障。故障節點會被關閉
  • 應答接收節點對正確接收的報文給出應答,對不一致報文進行標記
  • CAN通訊距離最大是10公里(設速率爲5Kbps),或最大通信速率爲1Mbps(設通信距離爲40米)
  • CAN總線上的節點數可達110個。通信介質可在雙絞線,同軸電纜,光纖中選擇
  • 報文是短幀結構,短的傳送時間使其受干擾概率低,CAN有很好的校驗機制,這些都保證了

CAN通信的可靠性:

(1)具有實時性強、傳輸距離較遠、抗電磁干擾能力強、成本低等優點;
(2)採用雙線串行通信方式,檢錯能力強,可在高噪聲干擾環境中工作;
(3)具有優先權和仲裁功能,多個控制模塊通過CAN 控制器掛到CAN-bus 上,形成多主機局部網絡;
(4)可根據報文的ID決定接收或屏蔽該報文;
(5)可靠的錯誤處理和檢錯機制;
(6)發送的信息遭到破壞後,可自動重發;
(7)節點在錯誤嚴重的情況下具有自動退出總線的功能;
(8)報文不包含源地址或目標地址,僅用標誌符來指示功能信息、優先級信息。

四.總線協議層次結構: 分爲3層,物理層,傳輸層以及對象層

  1. 物理層
    在物理層中定義實際信號的傳輸方法,包括位的編碼和解碼、位的定時和同步等內容,作用是定義不同節點之間根據電氣屬性如何進行位的實際傳輸;
    在物理連接上, CAN 總線結構提供兩個引腳 --CANH 和 CANL ,總線通過 CANH 和 CANL 之間的差分電壓完成信號的位傳輸;
    在不同系統中, CAN 總線的位速率不同;在系統中, CAN 總線的位速率是唯一的,並且是固定的,這需要對總線中的每個節點配置統一的參數。

  2. 傳輸層
    傳輸層是 CAN 總線協議的核心。傳輸層負責把接收到的報文提供給對象層,以及接收來自對象層的報文。傳輸層負責位的定時及同步、報文分幀、仲裁、應答、錯誤檢測和標定、故障界定。

  3. 對象層
    在對象層中可以爲遠程數據請求以及數據傳輸提供服務,確定由實際要使用的傳輸層接收哪一個報文,並且爲恢復管理和過載通知提供手段.

五.CAN總線報文結構:

  1. 數據幀:大多數情況下使用的報文結構
    從標識符長度上,又可以把數據幀分爲標準幀 (11 位標識符 ) 和擴展幀 (29 位標識符 ) 。
    數據幀由 7 個不同的位場組成:幀起始、仲裁場、控制場、數據場、 CRC 場、應答場、幀結束。其中,數據場的長度爲 0~8 個字節。標識符位於仲裁場中,報文接收節點通過標識符進行報文濾波
    在這裏插入圖片描述
    2.遠程幀:用來向某一個節點請求數據
    由總線上的節點發出,用於請求其他節點發送具有同一標識符的數據幀。當某個節點需要數據時,
    可以發送遠程幀請求另一節點發送相應數據幀。與數據幀相比,遠程幀沒有數據場,結構如圖所示。
    在這裏插入圖片描述

3.錯誤幀:任何單元,一旦檢測到總線錯誤就發出錯誤幀
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4.過載幀:用於先行和後續的數據幀或者遠程幀之間提供附加延時,保證接收端能夠來得及處理前面收到的數據,包括過載標誌和過載界定符.
在這裏插入圖片描述
在這裏插入圖片描述

參考鏈接:https://blog.csdn.net/huan447882949/article/details/80042417

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章