0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CAN/CANFD通信協(xié)議簡(jiǎn)介

冬至子 ? 來(lái)源:知鋰 ? 作者:SW十五 ? 2023-10-31 12:48 ? 次閱讀

汽車常用總線

圖片

1.jpg

CAN發(fā)展時(shí)間線

1983年,Bosch開(kāi)始研究汽車網(wǎng)絡(luò)技術(shù)

1986年,Bosch在SAE(美國(guó)汽車工程師協(xié)會(huì))大會(huì)正式公布CAN協(xié)議

1987年,Intel和Philips先后推出CAN控制器芯片

1991年,Bosch頒布CAN 2.0技術(shù)規(guī)范,同年,CAN總線最先在Benz S系列轎車上實(shí)現(xiàn)

1993年,ISO頒布CAN國(guó)際標(biāo)準(zhǔn)ISO-11898

1994年,CiA(CAN in AUTOMATION)組織舉辦第一屆國(guó)際CAN大會(huì)(iCC),同年,CiA在中國(guó)開(kāi)了第一場(chǎng)CAN研討會(huì)

2011年,Bosch發(fā)布第二代CAN通信技術(shù):CANFD 1.1版(Non-ISO)

2015年,CAN FD被ISO標(biāo)準(zhǔn)化

2018年,CiA應(yīng)大眾汽車要求開(kāi)始開(kāi)發(fā)第三代CAN通信技術(shù)CAN XL

2020年,CAN XL登場(chǎng)第十七屆iCC大會(huì)

CAN的分層結(jié)構(gòu)

CAN遵循ISO制定的OSI(Open System Interconnection)七層模型,其結(jié)構(gòu)體現(xiàn)了兩層:數(shù)據(jù)鏈路層、物理層。

圖片

CAN控制器:生成CAN幀并以二進(jìn)制碼流的方式發(fā)送,在此過(guò)程中進(jìn)行位填充、CRC校驗(yàn)、應(yīng)答檢測(cè)等;將接收到的二進(jìn)制碼流進(jìn)行解析并接收,在此過(guò)程中進(jìn)行收發(fā)比對(duì)、去位填充、CRC校驗(yàn)等。此外還需要進(jìn)行沖突判斷、錯(cuò)誤處理等。

CAN收發(fā)器:將二進(jìn)制碼流轉(zhuǎn)換為差分信號(hào)發(fā)送,將差分信號(hào)轉(zhuǎn)換為二進(jìn)制碼流接收。

CAN差分信號(hào)

CAN收發(fā)器邏輯信號(hào)和物理信號(hào)之間的轉(zhuǎn)換采用差分電平方式。

圖片

1.jpg

問(wèn):為什么CAN線是雙絞線?

答:雙絞線傳輸差分信號(hào)時(shí)受到共模信號(hào)干擾后,電位差不變,信號(hào)解碼正常。

雙絞線一般要求:芯截面積:0.35mm^2~0.5mm^2;絞距:33twist/m~50twist/m。

CAN終端電阻

圖片

為了保證CAN通信穩(wěn)定,CAN總線兩端各添加一個(gè)終端電阻。終端電阻的作用有3個(gè):

1、提高抗干擾能力,讓高頻低能量的信號(hào)迅速走掉;

2、確??偩€快速進(jìn)入隱性狀態(tài),讓寄生電容的能量更快走掉;

3、提高信號(hào)質(zhì)量,放置在總線的兩端,讓反射能量降低。

ISO 11898-2中規(guī)定終端電阻標(biāo)稱值為120Ω(最小100Ω,最大130Ω),最低功耗是220mW。

圖片

圖片

對(duì)于有SPLIT引腳的CAN收發(fā)器,如常用的NXP TJA1040,終端電阻采用分離式(分裂式)連接,使用兩個(gè)6062Ω的電阻,中間一個(gè)小電容(45nF),這樣可以有效地降低電磁輻射,提高總線的抗干擾能力。

CAN波特率與位時(shí)間

位:bit,數(shù)據(jù)存儲(chǔ)的最小單位,每個(gè)0或1就是一個(gè)位。

字節(jié):byte,計(jì)量存儲(chǔ)容量的一種計(jì)量單位,1字節(jié)=8位。

波特率是位速率,即發(fā)送節(jié)點(diǎn)在非同步的情況下發(fā)送的每秒鐘的位數(shù)。常見(jiàn)的有250kb/s、500kb/s等。

位時(shí)間顧名思義是發(fā)送一個(gè)位所需要的的時(shí)間,位時(shí)間=1/位速率,比如波特率250kb/s的位時(shí)間就是4us。

圖片

CAN數(shù)據(jù)幀格式

數(shù)據(jù)幀是五種報(bào)文幀(數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過(guò)載幀、幀間隔)里最復(fù)雜,也是最常用的。數(shù)據(jù)幀格式如下圖,平時(shí)使用我們看到的只有仲裁段的ID和數(shù)據(jù)段。

圖片

CAN 2.0A標(biāo)準(zhǔn)定義了標(biāo)準(zhǔn)幀,CAN 2.0B標(biāo)準(zhǔn)定義了擴(kuò)展幀,支持CAN 2.0B的芯片可以兼容兩者幀格式。

標(biāo)準(zhǔn)幀和擴(kuò)展幀的區(qū)別只在于ID,標(biāo)準(zhǔn)幀ID是11位,擴(kuò)展幀ID是29位。

CAN負(fù)載率

CAN總線負(fù)載率是指在CAN總線上單位時(shí)間內(nèi)實(shí)際傳送的位數(shù)和可以傳送的位數(shù)之比,即1s實(shí)際發(fā)送報(bào)文位數(shù)除以波特率。

CAN總線負(fù)載率宜控制在30%以內(nèi)。實(shí)際整車負(fù)載率會(huì)控制在65%左右,對(duì)各模塊的要求是達(dá)到85%左右而不會(huì)出現(xiàn)錯(cuò)誤幀。

為了降低總線負(fù)載,一些不重要或?qū)崟r(shí)性不強(qiáng)的報(bào)文周期比較長(zhǎng),會(huì)低于采集或計(jì)算周期。

CAN的數(shù)據(jù)排列格式

從CANalyzer的DBC編輯器可以看出,每行表示一個(gè)字節(jié)的8個(gè)位,從右到左依次是bit0, bit1...bit7。一共有8行,從上到下依次是byte0, byte1...byte7。這也能看出數(shù)據(jù)段包含最多8個(gè)byte的數(shù)據(jù),共64個(gè)bit(bit位序從byte0到byte7依次遞增排序)。

圖片

數(shù)據(jù)的傳輸規(guī)則:字節(jié)的高位(msb)先發(fā)送,字節(jié)的低位(lsb)最后發(fā)送。對(duì)于字節(jié)的發(fā)送而言,可以選擇高字節(jié)(MSB)先發(fā)(Byte 7先發(fā)),也可以低字節(jié)(LSB)先發(fā)(Byte 0先發(fā)),通常來(lái)說(shuō)是用低字節(jié)先發(fā)。

數(shù)據(jù)排列有Intel和Motorola兩種格式,兩者只有在跨字節(jié)時(shí)才有區(qū)別。

按照byte0, byte1...的先后順序,Intel格式小字節(jié)在前,大字節(jié)在后,所以叫小端;Motorola格式大字節(jié)在前,小字節(jié)在后所以叫大端。

比如一個(gè)數(shù)據(jù),byte 0是12,byte 1是34,Intel格式解析是0x12 34,Motorola格式解析是0x34 12。

CAN的CRC

CRC是循環(huán)冗余校驗(yàn)(Cyclic Redundancy ),用來(lái)檢測(cè)或校驗(yàn)數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯(cuò)誤。CRC的計(jì)算方法由ISO 11898-1規(guī)定。

圖片

如果接收方判斷該數(shù)據(jù)幀無(wú)效,則該幀報(bào)文棄之不用,發(fā)送節(jié)點(diǎn)會(huì)重新發(fā)送該報(bào)文,接收方收到后回復(fù)確認(rèn)后結(jié)束。

CAN的Checksum

Checksum是校驗(yàn)和,和CRC作用類似,也用來(lái)檢驗(yàn)數(shù)據(jù)的準(zhǔn)確性。

實(shí)際應(yīng)用中,CRC并不能檢測(cè)到所有的差錯(cuò),為了盡可能保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,一般CAN通信里還增加了Checksum。

Checksum的計(jì)算方式?jīng)]有統(tǒng)一規(guī)定,各廠家可以根據(jù)自身需要制定。

Checksum的值一般會(huì)在數(shù)據(jù)段里發(fā)出來(lái)。

CAN的計(jì)數(shù)器

CRC和Checksum可以保證信號(hào)的有效性,而計(jì)數(shù)器可以保證信號(hào)的時(shí)效性。計(jì)數(shù)器一般叫Live Counter或Rolling Counter。發(fā)送節(jié)點(diǎn)每次在發(fā)送一幀報(bào)文后就對(duì)該Live Counter位加1。通常live Counter是4bit,那么live Counter就會(huì)在015(也有014)之間循環(huán)增加。

如果發(fā)送節(jié)點(diǎn)發(fā)送報(bào)文出了問(wèn)題,從Live Counter波形上就會(huì)體現(xiàn)出現(xiàn)。

圖片

接收節(jié)點(diǎn)接收到報(bào)文后對(duì)計(jì)數(shù)器的值進(jìn)行評(píng)估,當(dāng)計(jì)數(shù)器值出現(xiàn)不連續(xù)的情況時(shí),該幀報(bào)文的內(nèi)容將被丟棄不再使用,直到計(jì)數(shù)器值重新連續(xù)為止。

CANFD的特點(diǎn)

CANFD(CAN with Flexible Data Rate)可以理解成CAN協(xié)議的升級(jí)版,只升級(jí)了協(xié)議,物理層未變。

CANFD與CAN最明顯的區(qū)別:可變速率、新的數(shù)據(jù)段長(zhǎng)度。

圖片

1.可變速率

從控制段中的BRS位到ACK段之前(含CRC分界符)為可變速率(理論最大可達(dá)12Mb/s),其余部分為原CAN總線用的速率,比如某CANFD總線波特率為500kb/s+2Mb/s。

2.新的數(shù)據(jù)段長(zhǎng)度

CAN-FD對(duì)數(shù)據(jù)段的長(zhǎng)度作了很大的擴(kuò)充,最大可達(dá)64字節(jié)。

CANFD同樣有標(biāo)準(zhǔn)幀和擴(kuò)展幀之分,與CAN一致。

上圖兩個(gè)幀結(jié)構(gòu)圖都是擴(kuò)展幀,區(qū)別在CRC段。用CRC多項(xiàng)式區(qū)分:CRC_15用于CAN,CRC_17用于數(shù)據(jù)段不超過(guò)16字節(jié)的CANFD,CRC_21用于數(shù)據(jù)段超過(guò)16字節(jié)的CANFD。

CANFD的波特率

ISO沒(méi)有規(guī)定CANFD的波特率,考慮實(shí)際應(yīng)用時(shí)通信穩(wěn)定性,一些標(biāo)準(zhǔn)推薦了幾種波特率選擇。

圖片

SAE J2284-4:推薦汽車CANFD網(wǎng)絡(luò)應(yīng)用(不同ECU通信)采用500kb/s+2Mb/s的波特率

SAE J2284-5:推薦汽車CANFD點(diǎn)對(duì)點(diǎn)通信應(yīng)用(單個(gè)ECU刷寫)采用500kb/s+5Mb/s的波特率

CiA:推薦1Mb/s+5Mb/s,500kb/s+2Mb/s,250kb/s+2Mb/s

CANFD的優(yōu)勢(shì)

CANFD支持更高的速率,可以更快地刷寫ECU;

CANFD在單個(gè)數(shù)據(jù)幀內(nèi)傳送率可達(dá)64字節(jié),避免了經(jīng)常發(fā)生的數(shù)據(jù)分拆傳輸?shù)臓顩r;

CANFD可重新再利用CAN線束和其它物理層面元件;

CANFD在電動(dòng)車(更多的ECU)以及今后的動(dòng)力CAN(更高的速率)上應(yīng)用更有優(yōu)勢(shì);

CANFD上層應(yīng)用層架構(gòu)不需要改變,在原來(lái)基礎(chǔ)上擴(kuò)展即可。

CANFD與CAN的兼容性問(wèn)題

未來(lái)的CAN網(wǎng)絡(luò),較長(zhǎng)時(shí)間內(nèi)都會(huì)存在著傳統(tǒng)CAN與CAN FD并存的情況。部分需解決速率問(wèn)題的節(jié)點(diǎn)會(huì)率先采用CAN FD,其他對(duì)實(shí)時(shí)要求不高的節(jié)點(diǎn)仍然會(huì)使用傳統(tǒng)CAN。

CANFD和CAN節(jié)點(diǎn)之間的通信數(shù)據(jù)可以通過(guò)CANFD路由器轉(zhuǎn)發(fā),類似于現(xiàn)在車上處于不同網(wǎng)絡(luò)的ECU之間的通信。

圖片

ECU和ABS之間通信由CANFD路由器將ECU與ABS的數(shù)據(jù)1:1轉(zhuǎn)發(fā);ECU或者ABS與ECAS之間通信由CANFD路由器換為傳統(tǒng)CAN再轉(zhuǎn)發(fā)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 收發(fā)器
    +關(guān)注

    關(guān)注

    10

    文章

    3370

    瀏覽量

    105789
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16103

    瀏覽量

    177074
  • CAN通信
    +關(guān)注

    關(guān)注

    5

    文章

    93

    瀏覽量

    17800
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    786

    瀏覽量

    41564
  • CRC校驗(yàn)
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    15174
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CAN總線通信協(xié)議的基礎(chǔ)知識(shí)

    本文將介紹CAN總線通信協(xié)議的基礎(chǔ)知識(shí),目前的內(nèi)容僅為通用的協(xié)議部分,暫不涉及具體的外設(shè)模塊的用法。研究通信協(xié)議的具體內(nèi)容,主要是看建立通信
    的頭像 發(fā)表于 06-16 10:58 ?6263次閱讀
    <b class='flag-5'>CAN</b>總線<b class='flag-5'>通信協(xié)議</b>的基礎(chǔ)知識(shí)

    CAN通信協(xié)議

    CAN通信協(xié)議,需要的看看。
    發(fā)表于 04-19 17:11

    STM32 CAN通信協(xié)議

    CAN 簡(jiǎn)介CAN 是控制器區(qū)域網(wǎng)絡(luò)(Controller Area Network) 的縮寫(以下稱為CAN),是ISO國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議
    發(fā)表于 08-19 09:31

    CAN串行通信協(xié)議

    一.CAN簡(jiǎn)介CAN是ControllerArea Network的縮寫(以下稱為CAN),是ISO國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議。在當(dāng)前的汽車產(chǎn)
    發(fā)表于 08-19 08:44

    CAN通信協(xié)議簡(jiǎn)析

    CAN 簡(jiǎn)介CAN 是 Controller Area Network 的縮寫(以下稱為 CAN),是 ISO 國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議。在
    發(fā)表于 08-19 06:29

    CAN協(xié)議特點(diǎn)簡(jiǎn)介

    (1)電平特性(2)5種-幀類型STM32xxx CAN控制器(1)STM32F4 的 bxCAN 的主要特點(diǎn)有:(2)過(guò)濾器作用 詳細(xì)分析CAN協(xié)議 簡(jiǎn)介
    發(fā)表于 08-19 06:02

    CAN總線通信協(xié)議的分析和實(shí)現(xiàn) CAN總線通信協(xié)議以及其實(shí)現(xiàn)方法

    CAN總線通信協(xié)議的分析和實(shí)現(xiàn) CAN總線通信協(xié)議以及其實(shí)現(xiàn)方法
    發(fā)表于 09-04 08:45 ?40次下載
    <b class='flag-5'>CAN</b>總線<b class='flag-5'>通信協(xié)議</b>的分析和實(shí)現(xiàn) <b class='flag-5'>CAN</b>總線<b class='flag-5'>通信協(xié)議</b>以及其實(shí)現(xiàn)方法

    CAN總線通信協(xié)議

    CAN總線通信協(xié)議詳細(xì)如下。
    發(fā)表于 04-19 16:54 ?77次下載

    CAN入門書之中文版CAN通信協(xié)議

    CAN入門書之中文版CAN通信協(xié)議
    發(fā)表于 11-18 16:36 ?0次下載

    CANCANFD協(xié)議簡(jiǎn)介(上)

    Flexible Data-rate)是一種常用于汽車和工業(yè)領(lǐng)域的通信協(xié)議CAN協(xié)議最初是由德國(guó)的博世公司(Bosch)在20世紀(jì)80年代開(kāi)發(fā)的,旨在解決汽車電子設(shè)備之間的通信
    的頭像 發(fā)表于 07-31 12:10 ?3153次閱讀
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>簡(jiǎn)介</b>(上)

    CANCANFD協(xié)議簡(jiǎn)介(下)

    前篇內(nèi)容請(qǐng)點(diǎn)擊查看: RA MCU CANCANFD IP介紹 CANCANFD協(xié)議簡(jiǎn)介(上
    的頭像 發(fā)表于 08-02 12:15 ?2927次閱讀
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>簡(jiǎn)介</b>(下)

    CANCANFD的區(qū)別 CANCANFD如何轉(zhuǎn)換

    CANCANFD的區(qū)別 CANCANFD如何轉(zhuǎn)換? CAN(Controller Area Network)是一種廣泛應(yīng)用于汽車和工業(yè)控
    的頭像 發(fā)表于 11-22 16:37 ?5437次閱讀

    can通信協(xié)議主要由什么完成

    CAN(Controller Area Network)是一種基于消息的通信協(xié)議,主要用于汽車和工業(yè)領(lǐng)域。它是一種局域網(wǎng)技術(shù),允許多個(gè)設(shè)備在同一網(wǎng)絡(luò)上進(jìn)行通信。CAN
    的頭像 發(fā)表于 06-16 10:29 ?513次閱讀

    CANCANFD協(xié)議簡(jiǎn)介(上)

    CANCANFD協(xié)議簡(jiǎn)介(上)
    的頭像 發(fā)表于 01-26 08:06 ?984次閱讀
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>簡(jiǎn)介</b>(上)

    CANCANFD協(xié)議簡(jiǎn)介(下)

    CANCANFD協(xié)議簡(jiǎn)介(下)
    的頭像 發(fā)表于 02-19 12:08 ?730次閱讀
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>簡(jiǎn)介</b>(下)