CAN 總線組網(wǎng)連線圖
根據(jù)CAN總線的硬件特性,當(dāng)一條CAN總線上掛接多個驅(qū)動器的時候,應(yīng)當(dāng)按照如下示意圖進(jìn)行連接布線。 需要在線的起點(diǎn)和終點(diǎn)上各連上一個 120Ω的電阻。并且 CAN 總線只能有一條主干線,分支的線不宜過長。
最近在弄ST和GD的課程,需要GD樣片的可以加群申請:615061293 。
由上圖可知,CAN通信是通過兩根線完成的: 一條是黃色的CAN_High 一條是綠色的CANLow CAN能夠使用多種物理介質(zhì)作為通信媒介,最常用的是雙絞線,還可以使用光纖等材料。CAN總線信號通過兩條差分電壓信號線CAN H和CAN* L傳輸,當(dāng)CAN* H和CANL信號線上的電壓值處于2. 5V左右時表明此時總線處于我們所謂的邏輯電平“1”的狀態(tài),也可以稱做隱性狀態(tài);當(dāng)CAN* H比CAN* L上電壓值高時表示邏輯“0”,通常該狀態(tài)下兩條信號線上的電壓值為CAN* H=3. 5V和CAN* L=1. 5V,此時是顯性狀態(tài)。下圖是雙絞線CAN總線電平標(biāo)稱值,圖中顯示了邏輯高電平和邏輯低電平所對應(yīng)的大致總線電壓值。
下圖是發(fā)送長度為3的數(shù)據(jù)0x111111,標(biāo)準(zhǔn)幀ID為0001。
可以看到在空閑狀態(tài)下,電平在2.5V左右,黃線為CANL,紫線為CAN* H,當(dāng)為顯性時,CAN* H電平拉到3V左右,CAN* L電平拉到1V左右,CAN* H-CAN* L=2V,橙色線為CAN* H-CAN_ L。
CAN的報文格式
報文格式
首先,CAN總線協(xié)議中的報文指的是總線單元間傳遞的消息,消息的格式各有不同,總線上的單元想要發(fā)送新信息就要檢測到總線空閑狀態(tài)的位信息才可以發(fā)送。總線上的報文信息表示為幾種固定的幀類型,下圖列出了根據(jù)CAN總線通信中5種不同用途所設(shè)置的幀類型。
下表是標(biāo)識符種類說明。
終止CAN2. 0B協(xié)議時只是不能發(fā)送擴(kuò)展格式報文,總線仍可以正常工作。下面就CAN總線的各種功能幀結(jié)構(gòu)對報文格式進(jìn)行詳細(xì)說明,數(shù)據(jù)幀由7個段構(gòu)成。數(shù)據(jù)幀的構(gòu)成如圖所示。
標(biāo)準(zhǔn)CAN只有11位標(biāo)識符,每幀的數(shù)據(jù)長度為44+8N位。
● SOF - 幀起始,顯性(邏輯0)表示報文的開始,并用于同步總線上的節(jié)點(diǎn)。
● 標(biāo)識符 - 標(biāo)準(zhǔn)CAN具有11位標(biāo)識符,用來確定報文的優(yōu)先級。此域的數(shù)值越小,優(yōu)先級越高。
● RTR - 遠(yuǎn)程發(fā)送請求位,當(dāng)需要從另一個節(jié)點(diǎn)請求信息時,此位為顯性(邏輯0)。所有節(jié)點(diǎn)都能接收這個請求,但是幀標(biāo)識符確定被指定的節(jié)點(diǎn)。響應(yīng)數(shù)據(jù)幀同樣被所有節(jié)點(diǎn)接收,可以被有興趣的節(jié)點(diǎn)使用。
● IDE - 標(biāo)識符擴(kuò)展位為顯性時表示這是一個標(biāo)準(zhǔn)CAN格式,為隱形表示這是擴(kuò)展CAN格式。 ● r0 - 保留位(可能將來標(biāo)準(zhǔn)修訂會使用)
● DLC - 4位數(shù)據(jù)長度代碼表示傳輸數(shù)據(jù)的字節(jié)數(shù)目,一幀CAN最多傳輸8字節(jié)用戶數(shù)據(jù)
● 數(shù)據(jù)0~8 – 最多可以傳輸8字節(jié)用戶數(shù)據(jù)
● CRC - 16位(包括1位定界符)CRC校驗碼用來校驗用戶數(shù)據(jù)區(qū)之前的(包含數(shù)據(jù)區(qū))傳輸數(shù)據(jù)段。
● ACK - 2位,包含應(yīng)答位和應(yīng)答界定符。發(fā)送節(jié)點(diǎn)的報文幀中,ACK兩位是隱性位,當(dāng)接收器正確地接收到有效的報文,接收器會在應(yīng)答位期間向發(fā)送節(jié)點(diǎn)發(fā)送一個顯性位,表示應(yīng)答。如果接收器發(fā)現(xiàn)這幀數(shù)據(jù)有錯誤,則不向發(fā)送節(jié)點(diǎn)發(fā)送ACK應(yīng)答,發(fā)送節(jié)點(diǎn)會稍后重傳這幀數(shù)據(jù)。
● EOF – 7位幀結(jié)束標(biāo)志位,全部為隱性位。如果這7位出現(xiàn)顯性位,則會引起填充錯誤。
● IFS – 7位幀間隔標(biāo)志位,CAN控制器將接收到的幀正確的放入消息緩沖區(qū)是需要一定時間的,幀間隔可以提供這個時間。
擴(kuò)展CAN
● 擴(kuò)展CAN具有29位標(biāo)識符,每幀數(shù)據(jù)長度為64+8N位。
● SRR – 代替遠(yuǎn)程請求位,為隱性。所以當(dāng)標(biāo)準(zhǔn)幀與擴(kuò)展幀發(fā)送相互沖突并且擴(kuò)展幀的基本標(biāo)識符與標(biāo)準(zhǔn)幀的標(biāo)識符相同時,標(biāo)準(zhǔn)幀優(yōu)先級高于擴(kuò)展幀。
● IDE – 為隱性位表示標(biāo)志位擴(kuò)展幀,18位擴(kuò)展標(biāo)識符緊跟著IDE位。
● r1 – 保留
錯誤檢測
波形解析
發(fā)送長度為3的數(shù)據(jù)0x111111,標(biāo)準(zhǔn)幀ID為0001。
ID
當(dāng)ID為0001時候,對于二進(jìn)制為000 0000 0001,由于位填充機(jī)制,發(fā)送器只要檢測到有5個連續(xù)相同值的位,就會自動在下一位里添加一個相反值,接收器接受數(shù)據(jù)時會自動剔除這個添加位。
數(shù)據(jù)長度
RTR、IDE、R0默認(rèn)情況下為0,數(shù)據(jù)長度為0011(3)。
數(shù)據(jù)字段
傳輸數(shù)據(jù)為3字節(jié)的數(shù)據(jù),為0x111111。
CRC
校驗位(CRC) = 15位之后有一個隱性CRC分隔符位 應(yīng)答區(qū)(ACK) 2位,包括ACK槽加一個隱性ACK分隔符,ACK兩位是隱性位,當(dāng)接收器正確地接收到有效的報文,接收器會在應(yīng)答位期間向發(fā)送節(jié)點(diǎn)發(fā)送一個顯性位,表示應(yīng)答。 CRC為0x1984(001 1001 1000 0100),CRC分隔符為1 ACK為01
審核編輯 黃宇
-
CAN
+關(guān)注
關(guān)注
57文章
2754瀏覽量
463697 -
協(xié)議
+關(guān)注
關(guān)注
2文章
602瀏覽量
39223 -
組網(wǎng)
+關(guān)注
關(guān)注
1文章
353瀏覽量
22346
發(fā)布評論請先 登錄
相關(guān)推薦
評論