CAN協(xié)議學(xué)習(xí)總結(jié)
CAN總線是一種用于在不同的ECU(電子控制單元)之間傳輸數(shù)據(jù)的線,CAN總線協(xié)議是一種ISO 國際標(biāo)準(zhǔn)化的串行通信協(xié)議,有 ISO-11898 和 ISO-11519兩個(gè)系列。其定義有:
ISO-11898 定義了通信速率為 125 kbps ~1Mbps 的高速 CAN 通信標(biāo)準(zhǔn),屬于閉環(huán)總線,傳輸速率可達(dá)1Mbps,總線長度 ≤ 40米,如圖1。
ISO11519 定義了通信速率為 10~125 kbps 的低速 CAN 通信標(biāo)準(zhǔn),屬于開環(huán)總線,傳輸速率為40kbps時(shí),總線長度可達(dá)1000米,如圖1。

高速CAN和低速CAN,如下圖2。

CAN通訊速率(位速率)與CAN總線長度的關(guān)系大致如下圖3。

CAN總線上,信號表現(xiàn)為電壓形式,通過CAN_H和CAN_L線上的電位差來表示CAN信號,分為顯性電平(dominant)和隱性電平(recessive)兩種類型。其中顯性電平規(guī)定為邏輯0,隱性電平則為邏輯1。電位如圖4。



FF:1為擴(kuò)展幀,0為標(biāo)準(zhǔn)幀
RTR:1為遠(yuǎn)程幀,0為數(shù)據(jù)幀
保留:保留位需填零,不可置1
B3~B0:標(biāo)識數(shù)據(jù)幀長度
遠(yuǎn)程幀無數(shù)據(jù)字段(幀)
數(shù)據(jù),長度 8 字節(jié),有效長度通過幀信息的 B3~B0 位來表示,不足補(bǔ) 00h
擴(kuò)展幀 ID:0x00000123
標(biāo)準(zhǔn)幀 ID:0x0123
例:
85 12 34 56 78 12 34 56 78 00 00
0x85 表示幀格式為擴(kuò)展幀,幀類型為數(shù)據(jù)幀,數(shù)據(jù)長度為 5?
后四位表示 CAN ID 為 12345678
最后 8 位為數(shù)據(jù)區(qū),有效長度為 5,其余位補(bǔ)齊 0
05 00 00 06 78 12 34 56 78 00 00 00 00
0x05 表示幀格式為標(biāo)準(zhǔn)幀,幀類型為數(shù)據(jù)幀,數(shù)據(jù)長度為 5
00 00 06 78 表示 ID 為 0678
12 34 56 78 00 00 00 00 為數(shù)據(jù)區(qū),有效長度為5