• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 業界動態 > 一條CAN報文到底有多少位?

    一條CAN報文到底有多少位?

    作者:ZLG致遠電子 時間:2017-06-08 來源:電子產品世界 收藏

      -bus總線是應用最廣泛的現場總線之一,而很多非常熟練的工程師,面對一條報文到底有多少位的問題時,卻不能非常準確地回答。今天我們就從最基本的幀格式來解惑一條CAN報文的到底有多少位。

    本文引用地址:http://www.czjhyjcfj.com/article/201706/360261.htm

      CAN報文幀分為幾種呢?CAN-bus通信幀共分為數據幀、遠程幀、錯誤幀、過載幀和幀間隔。而數據幀和遠程幀又有標準幀和擴展幀兩種。其幀類型以及用途如表 1所示:

      ? 數據幀

      數據幀從結構上看分為7段,分別為起始段、仲裁段、控制段、數據段、CRC校驗段、ACK應答段、幀結束段。如圖1: 

      幀起始段:該段由單個顯性位構成,在總線空閑時才允許發送,所有節點必須同步于開始發送的數據幀的起始位;

      標準幀仲裁段:標準幀的仲裁段由11位ID碼和一個顯性位RTR碼組成,RTR碼為遠程幀標識位;

      擴展幀仲裁段:擴展幀的仲裁段由29位ID碼、一位顯性的SRR碼、一位隱性的IDE碼和一位顯性的RTR碼組成;

      標準幀控制段:標準幀的控制段由單位顯性的IDE、保留位r0和4位數據長度代碼DLC組成,DLC數據段采用BCD編碼;

      擴展幀控制段:擴展幀的控制段由兩個保留位r1和r0和4位的DLC數據段組成,r1和r0都為顯性填充,接收時無論保留位是顯性還是隱性都沒有影響;

      數據段:一個數據段為8個字節;

      CRC校驗段:CRC校驗段由15位的校驗碼和1個隱性位填充的CRC界定符組成,CRC校驗范圍為幀起始、仲裁段、控制段和數據段;

      ACK段:ACK段由ACK碼和一個隱性位ACK界定符組成,發送節點在ACK段發送兩個隱性位,接收節點在收到的報文ACK前面的幀格式沒有錯誤時,他將發出ACK碼為顯性位的報文。

      幀結束段:由7個連續的隱性位組成。

      ? 遠程幀

      遠程幀幀格式跟數據幀類似,也分為標準幀跟擴展幀,但是遠程幀屬于被請求發送節點發送的報文,而數據幀是發送節點的報文。如圖 2,遠程幀沒有數據幀。

      參照數據幀可了解遠程幀的結構,但是兩者之間也有不同:

      SRR段和RTR段:數據幀是顯性電平,遠程幀是隱性電平;

      節點性質:數據幀是發送節點發出的報文格式,遠程幀是被請求發送的節點發送的報文格式;

      CRC校驗范圍:數據幀是幀起始、仲裁段、控制段和數據段,而遠程幀則是幀起始、仲裁段和控制段。

      了解了數據幀跟遠程幀的標準報文格式后,有些人可能會問了,我有時看到的報文為什么跟你的標準格式的位數不一樣呢?

      ? 位填充

      CAN-bus屬于異步串行通信,這種通信方式沒有時鐘線,所以各個收發器的時鐘不可能完全一致,時鐘不一致就會造成偏差。所以為了解決這個問題,CAN總線采用同步的方式來校準時鐘。CAN-bus規定信號的跳變沿為同步信號,只要信號發生變化,節點時鐘就被同步一次。CAN-bus還規定同步的最大周期為5個位。

      但是問題來了,要是出現連續性的5個位甚至更長時間沒有邊沿跳變(例如數據段全為0x56),那該如何解決呢?CAN-bus對這種情況又進行了規范,如果傳輸的位信號連續5個位是相同的,就要插入一個電平相反的位,這個就是CAN-bus的“位填充”規則。如圖 4。

      ? 0x00和0x55

      由于位填充規則的存在,所以就存在即使兩個幀都是標準數據幀,但發送不同ID或者數據段的時候報文時間會不同,圖5為1M波特率下ID跟數據都為0x00的標準數據幀報文。原本108個位的標準數據幀的真實的報文時間為123us。

      而0x55的標準數據幀報文格式則如圖 6:ID為555H,數據段為55H,報文沒有出現連續的相同位,所以填充位最少,8位的數據段位時間為標準的8us,全報文時間為108us。


      下表給出了標準數據幀、擴展數據幀、標準遠程幀、擴展遠程幀四種幀類型在發送不同ID和數據時位時間的差別。

      通過總線分析儀的報文接收和示波器,可以將每一幀報文跟波形做一一對應,快速分析總線上的報文時間和波形情況,實現CAN總線的快速故障定位和干擾排除。




    關鍵詞: CAN CAN-Scope

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 日土县| 石楼县| 七台河市| 屯留县| 敦煌市| 平凉市| 白沙| 揭东县| 绥宁县| 军事| 高州市| 夏津县| 如东县| 平潭县| 东乡族自治县| 淮北市| 开原市| 兴化市| 东兰县| 佛教| 沿河| 黄冈市| 毕节市| 井研县| 广灵县| 湖口县| 唐海县| 晋江市| 丰原市| 阿坝| 红河县| 武威市| 开封县| 商洛市| 垦利县| 璧山县| 德令哈市| 黑龙江省| 辉南县| 阿巴嘎旗| 巴彦淖尔市|