精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CAN/CANFD通信協議簡介

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

汽車常用總線

圖片

1.jpg

CAN發展時間線

1983年,Bosch開始研究汽車網絡技術

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

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

1991年,Bosch頒布CAN 2.0技術規范,同年,CAN總線最先在Benz S系列轎車上實現

1993年,ISO頒布CAN國際標準ISO-11898

1994年,CiA(CAN in AUTOMATION)組織舉辦第一屆國際CAN大會(iCC),同年,CiA在中國開了第一場CAN研討會

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

2015年,CAN FD被ISO標準化

2018年,CiA應大眾汽車要求開始開發第三代CAN通信技術CAN XL

2020年,CAN XL登場第十七屆iCC大會

CAN的分層結構

CAN遵循ISO制定的OSI(Open System Interconnection)七層模型,其結構體現了兩層:數據鏈路層、物理層。

圖片

CAN控制器:生成CAN幀并以二進制碼流的方式發送,在此過程中進行位填充、CRC校驗、應答檢測等;將接收到的二進制碼流進行解析并接收,在此過程中進行收發比對、去位填充、CRC校驗等。此外還需要進行沖突判斷、錯誤處理等。

CAN收發器:將二進制碼流轉換為差分信號發送,將差分信號轉換為二進制碼流接收。

CAN差分信號

CAN收發器邏輯信號和物理信號之間的轉換采用差分電平方式。

圖片

1.jpg

問:為什么CAN線是雙絞線?

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

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

CAN終端電阻

圖片

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

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

2、確保總線快速進入隱性狀態,讓寄生電容的能量更快走掉;

3、提高信號質量,放置在總線的兩端,讓反射能量降低。

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

圖片

圖片

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

CAN波特率與位時間

位:bit,數據存儲的最小單位,每個0或1就是一個位。

字節:byte,計量存儲容量的一種計量單位,1字節=8位。

波特率是位速率,即發送節點在非同步的情況下發送的每秒鐘的位數。常見的有250kb/s、500kb/s等。

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

圖片

CAN數據幀格式

數據幀是五種報文幀(數據幀、遠程幀、錯誤幀、過載幀、幀間隔)里最復雜,也是最常用的。數據幀格式如下圖,平時使用我們看到的只有仲裁段的ID和數據段。

圖片

CAN 2.0A標準定義了標準幀,CAN 2.0B標準定義了擴展幀,支持CAN 2.0B的芯片可以兼容兩者幀格式。

標準幀和擴展幀的區別只在于ID,標準幀ID是11位,擴展幀ID是29位。

CAN負載率

CAN總線負載率是指在CAN總線上單位時間內實際傳送的位數和可以傳送的位數之比,即1s實際發送報文位數除以波特率。

CAN總線負載率宜控制在30%以內。實際整車負載率會控制在65%左右,對各模塊的要求是達到85%左右而不會出現錯誤幀。

為了降低總線負載,一些不重要或實時性不強的報文周期比較長,會低于采集或計算周期。

CAN的數據排列格式

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

圖片

數據的傳輸規則:字節的高位(msb)先發送,字節的低位(lsb)最后發送。對于字節的發送而言,可以選擇高字節(MSB)先發(Byte 7先發),也可以低字節(LSB)先發(Byte 0先發),通常來說是用低字節先發。

數據排列有Intel和Motorola兩種格式,兩者只有在跨字節時才有區別。

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

比如一個數據,byte 0是12,byte 1是34,Intel格式解析是0x12 34,Motorola格式解析是0x34 12。

CAN的CRC

CRC是循環冗余校驗(Cyclic Redundancy ),用來檢測或校驗數據傳輸或者保存后可能出現的錯誤。CRC的計算方法由ISO 11898-1規定。

圖片

如果接收方判斷該數據幀無效,則該幀報文棄之不用,發送節點會重新發送該報文,接收方收到后回復確認后結束。

CAN的Checksum

Checksum是校驗和,和CRC作用類似,也用來檢驗數據的準確性。

實際應用中,CRC并不能檢測到所有的差錯,為了盡可能保證數據傳輸的準確性,一般CAN通信里還增加了Checksum。

Checksum的計算方式沒有統一規定,各廠家可以根據自身需要制定。

Checksum的值一般會在數據段里發出來。

CAN的計數器

CRC和Checksum可以保證信號的有效性,而計數器可以保證信號的時效性。計數器一般叫Live Counter或Rolling Counter。發送節點每次在發送一幀報文后就對該Live Counter位加1。通常live Counter是4bit,那么live Counter就會在015(也有014)之間循環增加。

如果發送節點發送報文出了問題,從Live Counter波形上就會體現出現。

圖片

接收節點接收到報文后對計數器的值進行評估,當計數器值出現不連續的情況時,該幀報文的內容將被丟棄不再使用,直到計數器值重新連續為止。

CANFD的特點

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

CANFD與CAN最明顯的區別:可變速率、新的數據段長度。

圖片

1.可變速率

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

2.新的數據段長度

CAN-FD對數據段的長度作了很大的擴充,最大可達64字節。

CANFD同樣有標準幀和擴展幀之分,與CAN一致。

上圖兩個幀結構圖都是擴展幀,區別在CRC段。用CRC多項式區分:CRC_15用于CAN,CRC_17用于數據段不超過16字節的CANFD,CRC_21用于數據段超過16字節的CANFD。

CANFD的波特率

ISO沒有規定CANFD的波特率,考慮實際應用時通信穩定性,一些標準推薦了幾種波特率選擇。

圖片

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

SAE J2284-5:推薦汽車CANFD點對點通信應用(單個ECU刷寫)采用500kb/s+5Mb/s的波特率

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

CANFD的優勢

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

CANFD在單個數據幀內傳送率可達64字節,避免了經常發生的數據分拆傳輸的狀況;

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

CANFD在電動車(更多的ECU)以及今后的動力CAN(更高的速率)上應用更有優勢;

CANFD上層應用層架構不需要改變,在原來基礎上擴展即可。

CANFD與CAN的兼容性問題

未來的CAN網絡,較長時間內都會存在著傳統CAN與CAN FD并存的情況。部分需解決速率問題的節點會率先采用CAN FD,其他對實時要求不高的節點仍然會使用傳統CAN。

CANFD和CAN節點之間的通信數據可以通過CANFD路由器轉發,類似于現在車上處于不同網絡的ECU之間的通信。

圖片

ECU和ABS之間通信由CANFD路由器將ECU與ABS的數據1:1轉發;ECU或者ABS與ECAS之間通信由CANFD路由器換為傳統CAN再轉發。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 收發器
    +關注

    關注

    10

    文章

    3401

    瀏覽量

    105874
  • 控制器
    +關注

    關注

    112

    文章

    16214

    瀏覽量

    177479
  • CAN通信
    +關注

    關注

    5

    文章

    93

    瀏覽量

    17814
  • 二進制
    +關注

    關注

    2

    文章

    794

    瀏覽量

    41602
  • CRC校驗
    +關注

    關注

    0

    文章

    84

    瀏覽量

    15190
收藏 人收藏

    評論

    相關推薦

    CAN總線通信協議的基礎知識

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

    CAN通信協議

    CAN通信協議,需要的看看。
    發表于 04-19 17:11

    STM32 CAN通信協議

    CAN 簡介CAN 是控制器區域網絡(Controller Area Network) 的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議
    發表于 08-19 09:31

    CAN串行通信協議

    一.CAN簡介CAN是ControllerArea Network的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議。在當前的汽車產
    發表于 08-19 08:44

    CAN通信協議簡析

    CAN 簡介CAN 是 Controller Area Network 的縮寫(以下稱為 CAN),是 ISO 國際標準化的串行通信協議。在
    發表于 08-19 06:29

    CAN協議特點簡介

    (1)電平特性(2)5種-幀類型STM32xxx CAN控制器(1)STM32F4 的 bxCAN 的主要特點有:(2)過濾器作用 詳細分析CAN協議 簡介
    發表于 08-19 06:02

    CAN總線通信協議的分析和實現 CAN總線通信協議以及其實現方法

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

    CAN總線通信協議

    CAN總線通信協議詳細如下。
    發表于 04-19 16:54 ?78次下載

    CAN入門書之中文版CAN通信協議

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

    CANCANFD協議簡介(上)

    Flexible Data-rate)是一種常用于汽車和工業領域的通信協議CAN協議最初是由德國的博世公司(Bosch)在20世紀80年代開發的,旨在解決汽車電子設備之間的通信
    的頭像 發表于 07-31 12:10 ?3198次閱讀
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>協議</b><b class='flag-5'>簡介</b>(上)

    CANCANFD協議簡介(下)

    前篇內容請點擊查看: RA MCU CANCANFD IP介紹 CANCANFD協議簡介(上
    的頭像 發表于 08-02 12:15 ?2986次閱讀
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>協議</b><b class='flag-5'>簡介</b>(下)

    CANCANFD的區別 CANCANFD如何轉換

    CANCANFD的區別 CANCANFD如何轉換? CAN(Controller Area Network)是一種廣泛應用于汽車和工業控
    的頭像 發表于 11-22 16:37 ?5689次閱讀

    can通信協議主要由什么完成

    CAN(Controller Area Network)是一種基于消息的通信協議,主要用于汽車和工業領域。它是一種局域網技術,允許多個設備在同一網絡上進行通信CAN
    的頭像 發表于 06-16 10:29 ?551次閱讀

    CANCANFD協議簡介(上)

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

    CANCANFD協議簡介(下)

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