CAN總線協議簡介

1. 簡介

  • 兩根信號線,差分信號
  • 最高速率可達到1Mbps
  • CAN控制器內建了強大的檢錯和處理機制,容錯能力強
  • 一幀CAN消息最多傳輸8字節用戶數據
  • 具有總線仲裁機制,可以組建多主系統

2 CAN標準

  • ISO-11898:2003

3. CAN通信協議

特征

  • 載波偵聽(CSMA):總線上的每一個節點在企圖發送報文前,必須要監聽總線,當總線處于空閑時,才可發送
  • 仲裁(CD+AMP):通過預定編程好的報文優先級逐位仲裁來解決碰撞,報文優先級位于每個報文的標識域。更高級別優先級標識的報文總是能獲得總線訪問權,即:標識符中最后保持邏輯高電平的會繼續傳輸,因為它具有更高優先級。

標準CAN

只有11位標識符,每幀的數據長度為51+(064)=(51117)位。注:不計位填充

Paste_Image.png
  • 標識符:標準CAN具有11位標識符,用來確定報文的優先級。此域的數值越小,優先級越高

擴展CAN

具有29位標識符,每幀數據長度為71+(064)=(71135)位。注:不計位填充

Paste_Image.png

4. 網絡拓撲

  • 使用差分信號
  • 推薦使用雙絞線
Paste_Image.png

5. 報文尋址和標識

  • CAN報文中沒有任何顯式的地址
  • CAN報文被稱為“內容尋址”的報文
  • 每個CAN控制器都會檢查總線上的所有通信,并使用硬件過濾器和軟件的組合來確定是否對該報文感興趣

需要注意的:

  1. 常規的報文地址類似于“這是發給節點X的報文”
  2. 內容尋址的報文類似于“這是包含標簽為X的數據的報文”

6. CAN總線與485總線比較

  • 總線利用率:RS485是單主從結構,就是一個總線上只能有一臺主機,通訊都由它發起的,它沒有下命令,下面的節點不能發送,而且要發完即答, 受到答復后,主機才向下一個節點詢問,這樣是為了防止多個節點向總線發送數據,而造成數據錯亂。而CAN-bus是多主從結構,每個節點都有CAN控制 器,多個節點發送時,以發送的ID號自動進行仲裁,這樣就可以實現總線數據不錯亂,而且一個節點發完,另一個節點可以探測到總線空閑,而馬上發送,這樣省 去了主機的詢問,提高了總線利用率,增強了快速性。所以在汽車等實性要求高的系統,都是用CAN總線,或者其他類似的總線。
  • 錯誤檢測機制,RS485只規定了物理層,而沒有數據鏈路層,所以它對錯誤是無法識別的,除非一些短路等物理錯誤。這樣容易造成一個節點破壞 了,拼命向總線發數據(一直發1),這樣造成整個總線癱瘓。所以RS485一旦壞一個節點,這個總線網絡都掛。而CAN總線有CAN控制器,可以對總線任 何錯誤進行檢測,如果自身錯誤超過128個,就自動閉鎖。保護總線。如果檢測到其他節點錯誤或者自身錯誤,都會向總線發送錯誤幀,來提示其他節點,這個數 據是錯誤的。大家小心。這樣CAN總線一旦有一個節點CPU程序跑飛了,它的控制器自動閉鎖。保護總線。所以在安全性要求高的網路,CAN是很強的。
  • 價格與培訓成本:CAN器件的價格大約是485的2倍這樣,485的通訊從軟件上是很方便的,只要懂串行通訊,就可以編程,而CAN需要底層工程師了解CAN復雜的層,編寫上位機軟件也要了解CAN的協議。可謂培訓成本較高。
  • CAN總線通過CAN控制器接口芯片82C250的兩個輸出端CANH和CANL與物理總線相連,而CANH端的狀態只能是高電平或懸浮狀態,CANL端只能是低電平或懸浮狀態。這就保證不會出現象在RS-485網絡中,當系統有錯誤,出現多節點同時向總線發送數據時,導致總線呈現短路,從而損壞某些節點的現象。而且CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節點的操作不受影響,從而保證不會出現象在網絡中,因個別節點出現問題,使得總線處于“死鎖”狀態。
  • CAN具有完善的通信協議,可由CAN控制器芯片及其接口芯片來實現,從而大大降低了系統的開發難度,縮短了開發周期,這些是只僅僅有電氣協議的RS-485所無法比擬的。

參考

CAN設計與應用指南
CAN協議教程
CAN總線與RS485的比較

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉:https://www.kvaser.cn/about-can/can-protocol-tutorial/?...
    right_33cb閱讀 2,420評論 0 3
  • CAN總線特點:1、國際標準的工業級現場總線,傳輸可靠,實時性高;2、傳輸距離遠(最遠10Km),傳輸速率快(最高...
    edutony閱讀 4,975評論 0 4
  • 介紹 在汽車產業中,各種各樣的ECU被開發出來,來提高汽車的安全性、舒適性、方便性,同時滿足對低公害、低成本的要求...
    有機會一起種地OT閱讀 4,728評論 1 4
  • 【轉】CAN總線與RS485的比較 一個項目總體方案設計為分布式系統,于是在通訊上糾結于CAN總線還是RS485。...
    七點水Plus閱讀 214評論 0 1
  • 1、什么是CAN總線 通俗的講:CAN總線就是一種總線形式,通信用的,比如咱們用的網線,就是一種總線形式,網線就是...
    __Mmm閱讀 22,739評論 1 3