1. 概述
CAN(Controller Area Network)和CANFD(Controller Area Network Flexible Data-rate)是一種常用于汽車和工業(yè)領(lǐng)域的通信協(xié)議。
CAN協(xié)議最初是由德國的博世公司(Bosch)在20世紀80年代開發(fā)的,旨在解決汽車電子設(shè)備之間的通信需求。它是一種高效可靠的串行通信協(xié)議,可支持在短距離上的高速數(shù)據(jù)傳輸。CAN協(xié)議以事件觸發(fā)的方式進行通信,允許多個設(shè)備同時參與通信,并通過優(yōu)先級機制確保數(shù)據(jù)傳輸?shù)膶崟r性和可靠性。Classic CAN,傳統(tǒng)CAN,有時也稱為經(jīng)典CAN或普通CAN。
CAN協(xié)議的特點包括
雙線制:CAN總線由CAN_H和CAN_L兩根傳輸線組成,用差分信號傳輸數(shù)據(jù),以提高抗干擾性能。
沖突檢測與沖突解決:多個設(shè)備同時發(fā)送數(shù)據(jù)時,CAN協(xié)議能夠檢測到?jīng)_突并通過優(yōu)先級機制解決。
幀格式簡單:CAN消息由ID、數(shù)據(jù)、控制位和CRC校驗組成,具有較小的開銷和較高的數(shù)據(jù)傳輸效率。
容錯能力強:CAN協(xié)議使用位級錯誤檢測和錯誤恢復機制,能夠?qū)崿F(xiàn)高可靠性的數(shù)據(jù)傳輸。
隨著汽車電子系統(tǒng)的發(fā)展和數(shù)據(jù)通信需求的增加,CANFD協(xié)議應(yīng)運而生。CANFD在保持CAN協(xié)議基本特性的同時,增加了一些新的特性,主要是在數(shù)據(jù)傳輸速率和數(shù)據(jù)長度上的增強。相對于傳統(tǒng)的CAN協(xié)議,CANFD支持更高的數(shù)據(jù)傳輸速率(最高可達到8Mbps)和更大的數(shù)據(jù)長度(最多可傳輸64字節(jié)的數(shù)據(jù))。這使得CANFD能夠滿足對數(shù)據(jù)帶寬要求更高的應(yīng)用場景,如高級駕駛輔助系統(tǒng)(ADAS)和自動駕駛領(lǐng)域。
CAN FD協(xié)議是由Bosch以及行業(yè)專家預(yù)研開發(fā)的,并于2012年發(fā)布。通過標準化對其進行了改進,現(xiàn)已納入ISO 11898-1:2015。原始的Bosch CAN FD版本(非ISO CAN FD)與ISO CAN FD是不兼容。CAN FD具有四個主要優(yōu)點:
增加了數(shù)據(jù)的長度:CAN FD每個數(shù)據(jù)幀最多支持64個數(shù)據(jù)字節(jié),而傳統(tǒng)CAN最多支持8個數(shù)據(jù)字節(jié)。這減少了協(xié)議開銷,并提高了協(xié)議效率。
增加傳輸?shù)乃俣龋?/strong>CAN FD支持雙比特率;與傳統(tǒng)CAN一樣,標稱(仲裁)比特率限制為1 Mbit/s,而數(shù)據(jù)比特率則取決于網(wǎng)絡(luò)拓撲/收發(fā)器。實際上,可以實現(xiàn)高達5 Mbit/s的數(shù)據(jù)比特率(實際應(yīng)用中可以達到8 Mbit/s,但沒有標準)。
更好的可靠性:CAN FD使用改進的循環(huán)冗余校驗(CRC)和“受保護的填充位計數(shù)器”,從而降低了未被檢測到的錯誤的風險。這在汽車和工業(yè)自動化等安全攸關(guān)的應(yīng)用中至關(guān)重要。
平滑過渡:在一些特定的情況下CAN FD能用在僅使用傳統(tǒng)CAN的ECU上,這樣就可以逐步引入CAN FD節(jié)點,從而為OEM簡化程序和降低成本。

與傳統(tǒng)CAN相比,CAN FD可以將網(wǎng)絡(luò)帶寬提高3到8倍,效率可從50%提升到90%,從而為數(shù)據(jù)的增長提供了一種簡單的解決方案。
2. CAN協(xié)議
2.1 物理層
與I2C、SPI等具有時鐘信號的同步通訊方式不同,CAN通訊并不是以時鐘信號來進行同步的,它是一種異步通訊,只具有CAN_High和CAN_Low兩條信號線, 共同構(gòu)成一組差分信號線,以差分信號的形式進行通訊。
CAN物理層的形式主要有兩種:閉環(huán)總線網(wǎng)絡(luò)和開環(huán)總線網(wǎng)絡(luò)。
2.1.1 閉環(huán)總線網(wǎng)絡(luò)
如下所示的圖中的CAN通訊網(wǎng)絡(luò)是一種遵循ISO11898標準的高速、 短距離“閉環(huán)網(wǎng)絡(luò)”,它的總線最大長度為40m,通信速度最高為1Mbps,總線的兩端各要求有一個“120歐”的電阻。

2.1.2 開環(huán)總線網(wǎng)絡(luò)
如下所示的圖中的是遵循ISO11519-2標準的低速、遠距離“開環(huán)網(wǎng)絡(luò)”,它的最大傳輸距離為1km, 最高通訊速率為125kbps,兩根總線是獨立的、不形成閉環(huán),要求每根總線上各串聯(lián)有一個“2.2千歐”的電阻。

2.1.3 ISO11898(閉環(huán)總線網(wǎng)絡(luò))和11519-2 (開環(huán)總線網(wǎng)絡(luò))協(xié)議的不同點
ISO11898 和 ISO11519-2 標準對于數(shù)據(jù)鏈路層的定義相同,但物理層不同。
ISO11898是通信速度為125kbps-1Mbps的CAN高速通信標準。
ISO11519是通信速度為125kbps以下的CAN低速通信標準。
下圖描述了ISO11898和11519-2物理層的主要不同點。

用戶需根據(jù)系統(tǒng)需要設(shè)定通信速度及總線長度。

2.1.4 CAN協(xié)議中的差分信號
差分信號又稱差模信號,與傳統(tǒng)使用單根信號線電壓表示邏輯的方式有區(qū)別,使用差分信號傳輸時,需要兩根信號線,這兩個信號線的振幅相等, 相位相反,通過兩根信號線的電壓差值來表示邏輯0和邏輯1。
CAN協(xié)議中對它使用的CAN_High及CAN_Low表示的差分信號做了規(guī)定, CAN協(xié)議標準表示的信號邏輯參見下表。

以高速CAN協(xié)議為例,當表示邏輯1時(隱性電平),CAN_High和CAN_Low線上的電壓均為2.5v, 即它們的電壓差VH-VL=0V;而表示邏輯0時(顯性電平), CAN_High的電平為3.5V,CAN_Low線的電平為1.5V, 即它們的電壓差為VH-VL=2V。例如,當CAN收發(fā)器從CAN_Tx線接收到來自CAN控制器的低電平信號時(邏輯0), 它會使CAN_High輸出3.5V,同時CAN_Low輸出1.5V,從而輸出顯性電平表示邏輯0。

在CAN總線中,必須使它處于隱性電平(邏輯1)或顯性電平(邏輯0)中的其中一個狀態(tài)。假如有兩個CAN通訊節(jié)點,在同一時間,一個輸出隱性電平, 另一個輸出顯性電平,類似I2C總線的“線與”特性將使它處于顯性電平狀態(tài),顯性電平的名字就是這樣來的,即可以認為顯性具有優(yōu)先的意味。
由于CAN總線協(xié)議的物理層只有1對差分線,在一個時刻只能表示一個信號,所以對通訊節(jié)點來說,CAN通訊是半雙工的,收發(fā)數(shù)據(jù)需要分時進行。在CAN的通訊網(wǎng)絡(luò)中,因為共用總線,在整個網(wǎng)絡(luò)中同一時刻只能有一個通訊節(jié)點發(fā)送信號,其余的節(jié)點在該時刻都只能接收。
-
mcu
+關(guān)注
關(guān)注
146文章
17718瀏覽量
358229 -
CAN
+關(guān)注
關(guān)注
57文章
2836瀏覽量
466230 -
CANFD
+關(guān)注
關(guān)注
0文章
74瀏覽量
5176
發(fā)布評論請先 登錄
相關(guān)推薦
細說下與傳統(tǒng)CAN相比CANFD CRC段帶來的變化
RA MCU CANFD的應(yīng)用實例(上)

請問OK1061-S上使用的CAN收發(fā)器TJA1040是否支持CANFD?
CAN總線協(xié)議簡介
CANFD協(xié)議中的概念
【EsDA協(xié)議轉(zhuǎn)換】Modbus轉(zhuǎn)CAN/CANFD協(xié)議
【EsDA協(xié)議轉(zhuǎn)換】Modbus轉(zhuǎn)CAN/CANFD協(xié)議

技術(shù)分享丨CAN/CANFD一致性測試

CAN和CANFD協(xié)議簡介(上)

CAN與CANFD的區(qū)別 CAN與CANFD如何轉(zhuǎn)換
can和canfd的區(qū)別
CANFD協(xié)議轉(zhuǎn)換器:搭建通訊橋梁

評論