<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 業(yè)界動(dòng)態(tài) > 一條CAN報文到底有多少位?

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

作者:ZLG致遠電子 時(shí)間:2017-06-08 來(lái)源:電子產(chǎn)品世界 收藏

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

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

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

  ? 數據幀

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

  幀起始段:該段由單個(gè)顯性位構成,在總線(xiàn)空閑時(shí)才允許發(fā)送,所有節點(diǎn)必須同步于開(kāi)始發(fā)送的數據幀的起始位;

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

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

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

  擴展幀控制段:擴展幀的控制段由兩個(gè)保留位r1和r0和4位的DLC數據段組成,r1和r0都為顯性填充,接收時(shí)無(wú)論保留位是顯性還是隱性都沒(méi)有影響;

  數據段:一個(gè)數據段為8個(gè)字節;

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

  ACK段:ACK段由ACK碼和一個(gè)隱性位ACK界定符組成,發(fā)送節點(diǎn)在A(yíng)CK段發(fā)送兩個(gè)隱性位,接收節點(diǎn)在收到的報文ACK前面的幀格式?jīng)]有錯誤時(shí),他將發(fā)出ACK碼為顯性位的報文。

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

  ? 遠程幀

  遠程幀幀格式跟數據幀類(lèi)似,也分為標準幀跟擴展幀,但是遠程幀屬于被請求發(fā)送節點(diǎn)發(fā)送的報文,而數據幀是發(fā)送節點(diǎn)的報文。如圖 2,遠程幀沒(méi)有數據幀。

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

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

  節點(diǎn)性質(zhì):數據幀是發(fā)送節點(diǎn)發(fā)出的報文格式,遠程幀是被請求發(fā)送的節點(diǎn)發(fā)送的報文格式;

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

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

  ? 位填充

  CAN-bus屬于異步串行通信,這種通信方式?jīng)]有時(shí)鐘線(xiàn),所以各個(gè)收發(fā)器的時(shí)鐘不可能完全一致,時(shí)鐘不一致就會(huì )造成偏差。所以為了解決這個(gè)問(wèn)題,CAN總線(xiàn)采用同步的方式來(lái)校準時(shí)鐘。CAN-bus規定信號的跳變沿為同步信號,只要信號發(fā)生變化,節點(diǎn)時(shí)鐘就被同步一次。CAN-bus還規定同步的最大周期為5個(gè)位。

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

  ? 0x00和0x55

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

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


  下表給出了標準數據幀、擴展數據幀、標準遠程幀、擴展遠程幀四種幀類(lèi)型在發(fā)送不同ID和數據時(shí)位時(shí)間的差別。

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




關(guān)鍵詞: CAN CAN-Scope

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>