天天看點

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

CAN協定解析

  • CAN 總線組網連線圖
  • CAN的封包格式
    • 封包格式
    • 擴充CAN
    • 錯誤檢測
  • 波形解析
    • ID
    • 資料長度
    • 資料字段
    • CRC

CAN 總線組網連線圖

根據CAN總線的硬體特性,當一條CAN總線上挂接多個驅動器的時候,應當按照如下示意圖進行連接配接布線。 需要線上的起點和終點上各連上一個 120Ω的電阻。并且 CAN 總線隻能有一條主幹線,分支的線不宜過長。

最近在弄ST和GD的課程,需要GD樣片的可以加群申請:6_15061293 。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

由上圖可知,CAN通信是通過兩根線完成的:

一條是黃色的CAN_High

一條是綠色的CAN_Low

CAN能夠使用多種實體媒體作為通信媒介,最常用的是雙絞線,還可以使用光纖等材料。CAN總線信号通過兩條差分電壓信号線CAN_ H和CAN_ L傳輸,當CAN_ H和CANL信号線上的電壓值處于2. 5V左右時表明此時總線處于我們所謂的邏輯電平“1”的狀态,也可以稱做隐性狀态;當CAN_ H比CAN_ L上電壓值高時表示邏輯“0”,通常該狀态下兩條信号線上的電壓值為CAN_ H=3. 5V和CAN_ L=1. 5V,此時是顯性狀态。下圖是雙絞線CAN總線電平标稱值,圖中顯示了邏輯高電平和邏輯低電平所對應的大緻總線電壓值。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

下圖是發送長度為3的資料0x111111,标準幀ID為0001。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

可以看到在空閑狀态下,電平在2.5V左右,黃線為CANL,紫線為CAN_ H,當為顯性時,CAN_ H電平拉到3V左右,CAN_ L電平拉到1V左右,CAN_ H-CAN_ L=2V,橙色線為CAN_ H-CAN_ L。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

CAN的封包格式

封包格式

首先,CAN總線協定中的封包指的是總線單元間傳遞的消息,消息的格式各有不同,總線上的單元想要發送新資訊就要檢測到總線空閑狀态的位資訊才可以發送。總線上的封包資訊表示為幾種固定的幀類型,下圖列出了根據CAN總線通信中5種不同用途所設定的幀類型。
           
CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

下表是辨別符種類說明。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

終止CAN2. 0B協定時隻是不能發送擴充格式封包,總線仍可以正常工作。下面就CAN總線的各種功能幀結構對封包格式進行詳細說明,資料幀由7個段構成。資料幀的構成如圖所示。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析
CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析
CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

标準CAN隻有11位辨別符,每幀的資料長度為44+8N位。

● SOF - 幀起始,顯性(邏輯0)表示封包的開始,并用于同步總線上的節點。

● 辨別符 - 标準CAN具有11位辨別符,用來确定封包的優先級。此域的數值越小,優先級越高。

● RTR - 遠端發送請求位,當需要從另一個節點請求資訊時,此位為顯性(邏輯0)。所有節點都能接收這個請求,但是幀辨別符确定被指定的節點。響應資料幀同樣被所有節點接收,可以被有興趣的節點使用。

● IDE - 辨別符擴充位為顯性時表示這是一個标準CAN格式,為隐形表示這是擴充CAN格式。

● r0 - 保留位(可能将來标準修訂會使用)

● DLC - 4位資料長度代碼表示傳輸資料的位元組數目,一幀CAN最多傳輸8位元組使用者資料

● 資料0~8 – 最多可以傳輸8位元組使用者資料

● CRC - 16位(包括1位定界符)CRC校驗碼用來校驗使用者資料區之前的(包含資料區)傳輸資料段。

● ACK - 2位,包含應答位和應答界定符。發送節點的封包幀中,ACK兩位是隐性位,當接收器正确地接收到有效的封包,接收器會在應答位期間向發送節點發送一個顯性位,表示應答。如果接收器發現這幀資料有錯誤,則不向發送節點發送ACK應答,發送節點會稍後重傳這幀資料。

● EOF – 7位幀結束标志位,全部為隐性位。如果這7位出現顯性位,則會引起填充錯誤。

● IFS – 7位幀間隔标志位,CAN控制器将接收到的幀正确的放入消息緩沖區是需要一定時間的,幀間隔可以提供這個時間。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

擴充CAN

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

● 擴充CAN具有29位辨別符,每幀資料長度為64+8N位。

● SRR – 代替遠端請求位,為隐性。是以當标準幀與擴充幀發送互相沖突并且擴充幀的基本辨別符與标準幀的辨別符相同時,标準幀優先級高于擴充幀。

● IDE – 為隐性位表示标志位擴充幀,18位擴充辨別符緊跟着IDE位。

● r1 – 保留

錯誤檢測

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

波形解析

發送長度為3的資料0x111111,标準幀ID為0001。

ID

當ID為0001時候,對于二進制為000 0000 0001,由于位填充機制,發送器隻要檢測到有5個連續相同值的位,就會自動在下一位裡添加一個相反值,接收器接受資料時會自動剔除這個添加位。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

資料長度

RTR、IDE、R0預設情況下為0,資料長度為0011(3)。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

資料字段

傳輸資料為3位元組的資料,為0x111111。

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

CRC

校驗位(CRC) = 15位之後有一個隐性CRC分隔符位

應答區(ACK) 2位,包括ACK槽加一個隐性ACK分隔符,ACK兩位是隐性位,當接收器正确地接收到有效的封包,接收器會在應答位期間向發送節點發送一個顯性位,表示應答。

CRC為0x1984(001 1001 1000 0100),CRC分隔符為1

ACK為01

CAN協定解析CAN 總線組網連線圖CAN的封包格式波形解析

繼續閱讀