1. 概述
CAN(Controller Area Network)和CANFD(Controller Area Network Flexible Data-rate)是一種常用于汽車和工業(yè)領(lǐng)域的通信協(xié)議。
CAN協(xié)議最初是由德國(guó)的博世公司(Bosch)在20世紀(jì)80年代開發(fā)的,旨在解決汽車電子設(shè)備之間的通信需求。它是一種高效可靠的串行通信協(xié)議,可支持在短距離上的高速數(shù)據(jù)傳輸。CAN協(xié)議以事件觸發(fā)的方式進(jìn)行通信,允許多個(gè)設(shè)備同時(shí)參與通信,并通過優(yōu)先級(jí)機(jī)制確保數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和可靠性。Classic CAN,傳統(tǒng)CAN,有時(shí)也稱為經(jīng)典CAN或普通CAN。
CAN協(xié)議的特點(diǎn)包括
雙線制:CAN總線由CAN_H和CAN_L兩根傳輸線組成,用差分信號(hào)傳輸數(shù)據(jù),以提高抗干擾性能。
沖突檢測(cè)與沖突解決:多個(gè)設(shè)備同時(shí)發(fā)送數(shù)據(jù)時(shí),CAN協(xié)議能夠檢測(cè)到?jīng)_突并通過優(yōu)先級(jí)機(jī)制解決。
幀格式簡(jiǎn)單:CAN消息由ID、數(shù)據(jù)、控制位和CRC校驗(yàn)組成,具有較小的開銷和較高的數(shù)據(jù)傳輸效率。
容錯(cuò)能力強(qiáng):CAN協(xié)議使用位級(jí)錯(cuò)誤檢測(cè)和錯(cuò)誤恢復(fù)機(jī)制,能夠?qū)崿F(xiàn)高可靠性的數(shù)據(jù)傳輸。
隨著汽車電子系統(tǒng)的發(fā)展和數(shù)據(jù)通信需求的增加,CANFD協(xié)議應(yīng)運(yùn)而生。CANFD在保持CAN協(xié)議基本特性的同時(shí),增加了一些新的特性,主要是在數(shù)據(jù)傳輸速率和數(shù)據(jù)長(zhǎng)度上的增強(qiáng)。相對(duì)于傳統(tǒng)的CAN協(xié)議,CANFD支持更高的數(shù)據(jù)傳輸速率(最高可達(dá)到8Mbps)和更大的數(shù)據(jù)長(zhǎng)度(最多可傳輸64字節(jié)的數(shù)據(jù))。這使得CANFD能夠滿足對(duì)數(shù)據(jù)帶寬要求更高的應(yīng)用場(chǎng)景,如高級(jí)駕駛輔助系統(tǒng)(ADAS)和自動(dòng)駕駛領(lǐng)域。
CAN FD協(xié)議是由Bosch以及行業(yè)專家預(yù)研開發(fā)的,并于2012年發(fā)布。通過標(biāo)準(zhǔn)化對(duì)其進(jìn)行了改進(jìn),現(xiàn)已納入ISO 11898-1:2015。原始的Bosch CAN FD版本(非ISO CAN FD)與ISO CAN FD是不兼容。CAN FD具有四個(gè)主要優(yōu)點(diǎn):
增加了數(shù)據(jù)的長(zhǎng)度:CAN FD每個(gè)數(shù)據(jù)幀最多支持64個(gè)數(shù)據(jù)字節(jié),而傳統(tǒng)CAN最多支持8個(gè)數(shù)據(jù)字節(jié)。這減少了協(xié)議開銷,并提高了協(xié)議效率。
增加傳輸?shù)乃俣龋?/strong>CAN FD支持雙比特率;與傳統(tǒng)CAN一樣,標(biāo)稱(仲裁)比特率限制為1 Mbit/s,而數(shù)據(jù)比特率則取決于網(wǎng)絡(luò)拓?fù)?收發(fā)器。實(shí)際上,可以實(shí)現(xiàn)高達(dá)5 Mbit/s的數(shù)據(jù)比特率(實(shí)際應(yīng)用中可以達(dá)到8 Mbit/s,但沒有標(biāo)準(zhǔn))。
更好的可靠性:CAN FD使用改進(jìn)的循環(huán)冗余校驗(yàn)(CRC)和“受保護(hù)的填充位計(jì)數(shù)器”,從而降低了未被檢測(cè)到的錯(cuò)誤的風(fēng)險(xiǎn)。這在汽車和工業(yè)自動(dòng)化等安全攸關(guān)的應(yīng)用中至關(guān)重要。
平滑過渡:在一些特定的情況下CAN FD能用在僅使用傳統(tǒng)CAN的ECU上,這樣就可以逐步引入CAN FD節(jié)點(diǎn),從而為OEM簡(jiǎn)化程序和降低成本。
與傳統(tǒng)CAN相比,CAN FD可以將網(wǎng)絡(luò)帶寬提高3到8倍,效率可從50%提升到90%,從而為數(shù)據(jù)的增長(zhǎng)提供了一種簡(jiǎn)單的解決方案。
2. CAN協(xié)議
2.1 物理層
與I2C、SPI等具有時(shí)鐘信號(hào)的同步通訊方式不同,CAN通訊并不是以時(shí)鐘信號(hào)來進(jìn)行同步的,它是一種異步通訊,只具有CAN_High和CAN_Low兩條信號(hào)線, 共同構(gòu)成一組差分信號(hào)線,以差分信號(hào)的形式進(jìn)行通訊。
CAN物理層的形式主要有兩種:閉環(huán)總線網(wǎng)絡(luò)和開環(huán)總線網(wǎng)絡(luò)。
2.1.1 閉環(huán)總線網(wǎng)絡(luò)
如下所示的圖中的CAN通訊網(wǎng)絡(luò)是一種遵循ISO11898標(biāo)準(zhǔn)的高速、 短距離“閉環(huán)網(wǎng)絡(luò)”,它的總線最大長(zhǎng)度為40m,通信速度最高為1Mbps,總線的兩端各要求有一個(gè)“120歐”的電阻。
2.1.2 開環(huán)總線網(wǎng)絡(luò)
如下所示的圖中的是遵循ISO11519-2標(biāo)準(zhǔn)的低速、遠(yuǎn)距離“開環(huán)網(wǎng)絡(luò)”,它的最大傳輸距離為1km, 最高通訊速率為125kbps,兩根總線是獨(dú)立的、不形成閉環(huán),要求每根總線上各串聯(lián)有一個(gè)“2.2千歐”的電阻。
2.1.3 ISO11898(閉環(huán)總線網(wǎng)絡(luò))和11519-2 (開環(huán)總線網(wǎng)絡(luò))協(xié)議的不同點(diǎn)
ISO11898 和 ISO11519-2 標(biāo)準(zhǔn)對(duì)于數(shù)據(jù)鏈路層的定義相同,但物理層不同。
ISO11898是通信速度為125kbps-1Mbps的CAN高速通信標(biāo)準(zhǔn)。
ISO11519是通信速度為125kbps以下的CAN低速通信標(biāo)準(zhǔn)。
下圖描述了ISO11898和11519-2物理層的主要不同點(diǎn)。
用戶需根據(jù)系統(tǒng)需要設(shè)定通信速度及總線長(zhǎng)度。
2.1.4 CAN協(xié)議中的差分信號(hào)
差分信號(hào)又稱差模信號(hào),與傳統(tǒng)使用單根信號(hào)線電壓表示邏輯的方式有區(qū)別,使用差分信號(hào)傳輸時(shí),需要兩根信號(hào)線,這兩個(gè)信號(hào)線的振幅相等, 相位相反,通過兩根信號(hào)線的電壓差值來表示邏輯0和邏輯1。
CAN協(xié)議中對(duì)它使用的CAN_High及CAN_Low表示的差分信號(hào)做了規(guī)定, CAN協(xié)議標(biāo)準(zhǔn)表示的信號(hào)邏輯參見下表。
以高速CAN協(xié)議為例,當(dāng)表示邏輯1時(shí)(隱性電平),CAN_High和CAN_Low線上的電壓均為2.5v, 即它們的電壓差VH-VL=0V;而表示邏輯0時(shí)(顯性電平), CAN_High的電平為3.5V,CAN_Low線的電平為1.5V, 即它們的電壓差為VH-VL=2V。例如,當(dāng)CAN收發(fā)器從CAN_Tx線接收到來自CAN控制器的低電平信號(hào)時(shí)(邏輯0), 它會(huì)使CAN_High輸出3.5V,同時(shí)CAN_Low輸出1.5V,從而輸出顯性電平表示邏輯0。
在CAN總線中,必須使它處于隱性電平(邏輯1)或顯性電平(邏輯0)中的其中一個(gè)狀態(tài)。假如有兩個(gè)CAN通訊節(jié)點(diǎn),在同一時(shí)間,一個(gè)輸出隱性電平, 另一個(gè)輸出顯性電平,類似I2C總線的“線與”特性將使它處于顯性電平狀態(tài),顯性電平的名字就是這樣來的,即可以認(rèn)為顯性具有優(yōu)先的意味。
由于CAN總線協(xié)議的物理層只有1對(duì)差分線,在一個(gè)時(shí)刻只能表示一個(gè)信號(hào),所以對(duì)通訊節(jié)點(diǎn)來說,CAN通訊是半雙工的,收發(fā)數(shù)據(jù)需要分時(shí)進(jìn)行。在CAN的通訊網(wǎng)絡(luò)中,因?yàn)楣灿每偩€,在整個(gè)網(wǎng)絡(luò)中同一時(shí)刻只能有一個(gè)通訊節(jié)點(diǎn)發(fā)送信號(hào),其余的節(jié)點(diǎn)在該時(shí)刻都只能接收。
-
mcu
+關(guān)注
關(guān)注
146文章
16675瀏覽量
347851 -
CAN
+關(guān)注
關(guān)注
57文章
2665瀏覽量
462473 -
CANFD
+關(guān)注
關(guān)注
0文章
51瀏覽量
4889
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論