
前篇內(nèi)容請點擊查看:
1. 概述
CAN(Controller Area Network)和CANFD(Controller Area Network Flexible Data-rate)是一種常用于汽車和工業(yè)領域的通信協(xié)議。
CAN協(xié)議最初是由德國的博世公司(Bosch)在20世紀80年代開發(fā)的,旨在解決汽車電子設備之間的通信需求。它是一種高效可靠的串行通信協(xié)議,可支持在短距離上的高速數(shù)據(jù)傳輸。CAN協(xié)議以事件觸發(fā)的方式進行通信,允許多個設備同時參與通信,并通過優(yōu)先級機制確保數(shù)據(jù)傳輸?shù)膶崟r性和可靠性。Classic CAN,傳統(tǒng)CAN,有時也稱為經(jīng)典CAN或普通CAN。
CAN協(xié)議的特點包括
雙線制:CAN總線由CAN_H和CAN_L兩根傳輸線組成,用差分信號傳輸數(shù)據(jù),以提高抗干擾性能。
沖突檢測與沖突解決:多個設備同時發(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é)議應運而生。CANFD在保持CAN協(xié)議基本特性的同時,增加了一些新的特性,主要是在數(shù)據(jù)傳輸速率和數(shù)據(jù)長度上的增強。相對于傳統(tǒng)的CAN協(xié)議,CANFD支持更高的數(shù)據(jù)傳輸速率(最高可達到8Mbps)和更大的數(shù)據(jù)長度(最多可傳輸64字節(jié)的數(shù)據(jù))。這使得CANFD能夠滿足對數(shù)據(jù)帶寬要求更高的應用場景,如高級駕駛輔助系統(tǒng)(ADAS)和自動駕駛領域。
CAN FD協(xié)議是由Bosch以及行業(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)絡拓撲/收發(fā)器。實際上,可以實現(xiàn)高達5 Mbit/s的數(shù)據(jù)比特率(實際應用中可以達到8 Mbit/s,但沒有標準)。
更好的可靠性:CAN FD使用改進的循環(huán)冗余校驗(CRC)和“受保護的填充位計數(shù)器”,從而降低了未被檢測到的錯誤的風險。這在汽車和工業(yè)自動化等安全攸關(guān)的應用中至關(guān)重要。
平滑過渡:在一些特定的情況下CAN FD能用在僅使用傳統(tǒng)CAN的ECU上,這樣就可以逐步引入CAN FD節(jié)點,從而為OEM簡化程序和降低成本。

與傳統(tǒng)CAN相比,CAN FD可以將網(wǎng)絡帶寬提高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)絡和開環(huán)總線網(wǎng)絡。
2.1.1 閉環(huán)總線網(wǎng)絡
如下所示的圖中的CAN通訊網(wǎng)絡是一種遵循ISO11898標準的高速、 短距離“閉環(huán)網(wǎng)絡”,它的總線最大長度為40m,通信速度最高為1Mbps,總線的兩端各要求有一個“120歐”的電阻。

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

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

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

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)絡中,因為共用總線,在整個網(wǎng)絡中同一時刻只能有一個通訊節(jié)點發(fā)送信號,其余的節(jié)點在該時刻都只能接收。
-
mcu
+關(guān)注
關(guān)注
146文章
17691瀏覽量
357792 -
瑞薩
+關(guān)注
關(guān)注
36文章
22353瀏覽量
87552
原文標題:CAN和CANFD協(xié)議簡介(上)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
CANFD協(xié)議轉(zhuǎn)換器:搭建通訊橋梁

車載通信方案為何選擇CAN/CANFD?
如何使用ZPS-CANFD觀察CAN數(shù)據(jù)鏈路層的工作過程

淺談CAN協(xié)議轉(zhuǎn)換模塊
CAN/CANFD?總線干擾儀TESTBASE-BDI

rk3588 canfd發(fā)送部分數(shù)據(jù)失敗的問題
一款實現(xiàn)PLC擴展CANFD的好工具 — PXB-6020D協(xié)議轉(zhuǎn)換器

CAN/CANFD卡接口函數(shù)使用說明
【龍芯2K0300蜂鳥板試用】CAN接口驅(qū)動板設計、CANFD測試、CAN C++程序驅(qū)動測試
canfd標準幀的id段及相關(guān)特性
CANFD_TopFIFO無法正常工作的原因?
什么是CAN總線協(xié)議?它有哪些特性和應用?
詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗方法

評論