CAN總線之通俗易懂----報文1

CAN報文

CAN總線是廣播類型的總線。這意味着所有節點都可以偵聽到所有傳輸的報文。無法將報文單獨發送給指定節點;所有節點都將始終捕獲所有報文。但是CAN硬件能夠提供本地過濾功能,讓每個節點對報文有選擇性地做出響應。

CAN報文

CAN使用短報文 – 最大實用負載是94位。報文中沒有任何明確的地址;相反,可以認爲報文是通過內容尋址,也就是說,報文的內容隱式地確定其地址。

報文類型

CAN總線上有四種不同的報文類型(或“幀”):

  1. 數據幀
  2. 遠程幀
  3. 錯誤幀
  4. 過載幀

1. 數據幀

數據幀是最常見的報文類型。由下列主要部分組成(出於簡潔性目的,忽略了一些細節):

  • 仲裁字段。當兩個或多個節點競爭總線時,確定報文的優先級。仲裁字段包含:
    • 對於CAN 2.0A,一個11位的標識符和一個支配數據幀的RTR位。
    • 對於CAN 2.0B,一個29位的標識符(其中還包含兩個隱性位:SRR和IDE)和RTR位。
  • 數據字段。包含0到8字節數據。
  • CRC字段。包含一個基於報文大部分數據計算得到的15位校驗和。校驗和用於錯誤檢測。
  • 應答時隙。任何能夠正確接收報文的CAN控制器都會在每條報文的末尾發送一個應答位。傳送節點檢查應答位是否存在,如果沒有檢測到應答位,會重新發送報文。

注1:請注意,總線上存在應答位不表示任何目標地址已經收到報文。唯一表示的是,總線上的一個或多個節點已經正確收到報文。

注2:仲裁字段中的標識符不一定標識報文的內容,儘管其名字會讓人如此認爲。

1 CAN msg 1-3
CAN 2.0A(“標準CAN”)數據幀
2 CANmsg 1-3

CAN 2.0B(“擴展CAN”)數據幀

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