加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 一、CAN的概述及發(fā)展歷史
    • 二、CAN的物理層
    • 三、數(shù)據(jù)鏈路層
    • 四、CAN應用層
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

【晟矽課堂】FlexCAN發(fā)送接收

2023/04/19
3486
閱讀需 13 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

一、CAN的概述及發(fā)展歷史

CAN總線的概述及發(fā)展歷史

CAN發(fā)展的時間線:

1983年,Bosch開始研究汽車網(wǎng)絡技術

1986年,Bosch在SAE大會正式公布CAN的協(xié)議

1987年,Intel和philips公司先后推出CAN控制器芯片

1991年,Bosch頒布CAN2.0技術規(guī)范

1991年,CAN總線最新在Benz S系列轎車上實現(xiàn)

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

1994年,由CiA組織舉辦第一屆國際CAN大會(iCC)

2015年,CAN FD的ISO標準化

2021年,CAN XL第三代使用的規(guī)范CIA-610

CAN概述

CAN(Controller Area Network,控制器局域網(wǎng))是一種串行通信技術,專門用于在汽車電子控制單元ECU)之間實現(xiàn)可靠的數(shù)據(jù)交換。

CAN通信特點

1)節(jié)點間采樣多主通訊的方式

2)采用短幀結構,報文幀的有效字節(jié)數(shù)為8個,可達汽車到實時響應的要求

3)報文ID越小,優(yōu)先級別越高。報文ID可分成不同的優(yōu)先級,進一步滿足汽車網(wǎng)絡報文的實時性要求

4)非破壞性總線仲裁處理機制

5)可靠的CRC校驗方式,傳輸數(shù)據(jù)出錯率極低,滿足汽車數(shù)據(jù)傳輸的可靠性要求

6)報文幀仲裁失敗或傳輸期間被破壞有自動重發(fā)機制

7)節(jié)點在錯誤嚴重的情況下,具有自動脫離總線的功能,切斷它與總線的聯(lián)系,不影響總線的正常工作。

8)通訊距離最遠達10KM

9)通訊速率最高1MB/S(此時距離最長40m)

10)節(jié)點數(shù)實際可達110個

11)CAN節(jié)點設計成本較低,通訊介質采用雙絞線

通信網(wǎng)絡參考模型OSI

應用層:人家交互

表示層:壓縮解壓、加密解密、編碼解碼

會話層:會話建立、維護中止會話隔離

傳輸層:可靠的連接,傳輸端口號---區(qū)分不同的應用程序

網(wǎng)絡層:為了數(shù)據(jù)提供地址信息 ----IP地址(軟件地址)

數(shù)據(jù)鏈路層:為數(shù)據(jù)轉發(fā)提供地址MAC地址硬件地址)

物理層:提供電氣規(guī)格,數(shù)據(jù)bit的傳輸100101011

二、CAN的物理層

CAN使用總線傳輸方式

早期汽車使用點對點的通訊方式,現(xiàn)在使用總線式的線束連接,減少了通訊線的數(shù)量、通過多個網(wǎng)絡進行大量數(shù)據(jù)的高速傳輸、診斷和做線纜簡單。

CAN物理電平說明

容錯CAN優(yōu)缺點:通訊速率低,承載的節(jié)點少,但具有更高的抗干擾能力。

CAN的編碼規(guī)則

CAN編碼采用的NRZ非歸零編碼(5個相同電平加入一個填充位),相同帶寬的情況下,NRZ編碼方式的信息量更大。

NRZI編碼:當電平狀態(tài)發(fā)生變化時,表示數(shù)據(jù)0,信號電平不變表示1(7個1變換一次0USB2.0通訊使用的編碼方式就是NRZI編碼。

RZ編碼

NRZ編碼

NRZI編碼

CAN的傳輸介質

傳輸介質:非屏蔽雙絞線

終端電阻:120Ω

雙絞線的作用:外部干擾在兩根導線上產生的噪聲(在專業(yè)領域里,把無用的信號叫做噪聲)相同,以便后續(xù)的差分電路提取出有用信號,差分電路是一個減法電路,兩個輸入端同相的信號(共模信號)相互抵消(m-n),反相的信號相當于x-(-y),得到增強。

CAN的終端電阻

CAN總線終端電阻的作用有3個:

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

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

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

寄生電容進行充電和放電

 

高速信號傳輸,阻抗變化,引起的反射,“振鈴”現(xiàn)象

CAN終端電阻選擇

如圖所示是CAN總線的經典拓撲圖。終端電阻一般選擇放在最遠的兩個節(jié)點上。如果其中一個放在中間位置,終端電阻外面的CAN收發(fā)器處于支路上,這將大大增加該節(jié)點的信號反射,進而影響總線通訊。

在CAN總線中使用的典型線纜,將它們扭制成雙絞線,就可根據(jù)上述方法得到特征阻抗大約為120Ω,這也是CAN標準推薦的終端電阻阻值,所以這個120Ω是測出來的,不是算出來的,都是根據(jù)實際的線束特性進行計算得到的。

根據(jù)標準需要考慮短路到18V的情況,假設CANH短路到18V,電流會通過終端電阻流到CANL上,而CANL內部由于限流的原因,最大注入電流為50mA(TJA1145的規(guī)格書上標注),這時候120Ω電阻的功率就是50mA*50mA*120Ω=0.3W。

CAN總線的電平邏輯

CAN的數(shù)據(jù)采樣點

采樣點:是總線數(shù)據(jù)被讀取并被解釋為相應位值的時間點。

三、數(shù)據(jù)鏈路層

幀類型類型

數(shù)據(jù)幀

分類:標準幀和擴展幀

SOF:1bit,起始位,顯性

Identifier:11bit/29bit, ID位

RTR:遠程幀和數(shù)據(jù)幀位,遠程幀“1”,數(shù)據(jù)幀“0”

SRR:替代遠程幀位,“1”

IDE:擴展幀和標準幀,擴展幀“1”,標準幀“0”

r:預留

DLC:4bit,數(shù)據(jù)長度位

Data Field:0-8 Byte,數(shù)據(jù)位

CRC:15bit,數(shù)據(jù)CRC校驗SOF----CRC前

DEL:校驗和應答界定符

ACK:1bit,確認數(shù)據(jù)是否正常接收,所謂正常接收是指不含填充錯誤、格式錯誤、 CRC 錯誤。發(fā)送節(jié)點將此位為1,接收節(jié)點正常接收數(shù)據(jù)后將此位置為”0”;(1 bit)

DEL:校驗和應答界定符,隱形“1”

EOF:7bit,結束標志位,連續(xù)7bit隱形位表示幀結束

CRC和ACK位

EOF結束位

遠程幀

錯誤幀

錯誤幀:錯誤幀可用于指示通信期間檢測到的錯誤。錯誤幀將強行中止正在進行的錯誤數(shù)據(jù)傳輸。

錯誤幀的結構與數(shù)據(jù)幀或遠程幀明顯不同,僅由兩部分構成:錯誤標志(error flag)和錯誤界定符。

錯誤幀分類:

位錯誤:發(fā)送節(jié)點檢查,發(fā)送數(shù)據(jù)后回讀數(shù)據(jù),檢查發(fā)送是否錯誤

填充錯誤:接收節(jié)點檢測。CRC之前,連續(xù)6個顯性或隱形位

ACK錯誤:發(fā)送節(jié)點檢測。發(fā)送數(shù)據(jù)后ACK位沒有置低

格式錯誤:CRC之后11bit固定的格式位,

CRC錯誤:接收節(jié)點檢測

位填充

位填充從以SOF的傳輸為開始,以CRC序列的最后一位的傳輸為結束。因此在傳輸包含8個數(shù)據(jù)字節(jié)的標準格式的數(shù)據(jù)幀時,在極限情況下,應有24個填充位。所以,理論上標準格式數(shù)據(jù)幀最多包含132位。

 

錯誤檢測

 

錯誤跟蹤

 

錯誤處理流程

 

過載幀和幀間隙

過載幀:接收節(jié)點向總線上其它節(jié)點報告自身接收能力達到極限的幀。

幀間隔:是用來隔離數(shù)據(jù)幀(或者遠程幀)的,也就是說,數(shù)據(jù)幀(或者遠程幀)經過插入幀間隔能夠將本幀與先行幀

(數(shù)據(jù)幀、遠程幀、錯誤幀、過載幀)分隔開來。

主動錯誤狀態(tài)下的間隙幀

 

被動錯誤狀態(tài)下的間隙幀

 

發(fā)送仲裁機制

特點:

1.仲裁發(fā)送在仲裁段

2.采用“線與”機制

3.ID值越小,優(yōu)先級越高

4.仲裁失敗進入“只聽”模式,等待空閑發(fā)送

上圖在多個節(jié)點同時發(fā)送報文時,首次出現(xiàn)不同,且發(fā)送顯性位的節(jié)點占用總線。由于CAN報文首先發(fā)送的為ID段且顯性位為邏輯“0”,因此ID越小該幀的優(yōu)先級越高。

 

發(fā)送仲裁機制

上圖:數(shù)據(jù)幀A的優(yōu)先級高于數(shù)據(jù)幀B的優(yōu)先級,總線空閑時,數(shù)據(jù)A先發(fā)。

 

仲裁場

仲裁流程

 

幾種狀態(tài)仲裁錯誤

仲裁場相同,數(shù)據(jù)場不一致

相同幀無應答,產生應答錯誤

相同幀有應答,隱藏了錯誤

位同步機制

同步的目的其實就是保證采樣點采集時,采集的位數(shù)不會錯亂,并且都是接收端同步。發(fā)送端發(fā)送一個幀,如果接收端有延時,并不做同步,那么就可能會出現(xiàn),發(fā)送端發(fā)送第2位時,接收端還是按照第1位的時序來采樣,導致接收端認為采集的到是第1位。顯然就出錯了。

1)同步段(Synchronization Segment):長度固定,1個時間量子Tq;一個位的傳輸從同步段開始;同步段用于同步總線上的各個節(jié)點,一個位的跳邊沿在此時間段內。

2)傳播段(Propagation Segment):傳播段用于補償報文在總線和節(jié)點上傳輸時所產生的時間延遲;傳播段時長 ≥ 2 × 報文在總線和節(jié)點上傳輸時產生的時間延遲 ;傳播段時長可編程(1~8個時間量子Tq)。

3)相位緩沖段1(Phase Buffer Segment1):用于補償節(jié)點間的晶振誤差;允許通過重同步對該段加長;在這個時間段的末端進行總線狀態(tài)的采樣;長度可編程(1~8個時間量子Tq)。

4)相位緩沖段2(Phase Buffer Segment2):用于補償節(jié)點間的晶振誤差;允許通過重同步對該段縮短;長度可編程(1~8個時間量子Tq)。

 

同步段時鐘機制

系統(tǒng)時鐘→CAN時鐘→CAN位時間

波特率? =? 1 / CAN位時間

 

位同步特點

一個位時間內只允許一種同步方式,要么硬同步要么重同步;

任何一個從“隱性”到“顯性”的下降沿 都可以用于同步;

硬同步發(fā)生在報文的SOF位,所有接收節(jié)點調整各自當前位的同步段,使其位于發(fā)送的SOF位內;

重同步發(fā)生在一個報文SOF位之外的其它段,當下降沿落在了同步段之外時發(fā)生重同步;

在SOF到仲裁場發(fā)送的時間段內,如果有多個節(jié)點同時發(fā)送報文,那么這些發(fā)送節(jié)點對跳變沿不進行重同步。

硬同步

 

重同步

重同步,PBS1延長

重同步,PBS2縮短

同步跳轉寬度

在重同步時,有個同步跳轉寬度(SJW,Synchro Jump Width)的概念,表示的是PBS1和PBS2重同步時允許跳轉的最大寬度。

同步跳轉寬度必須滿足以下幾個條件:

SJW必須小于PBS1和PBS2的最小值

SJW最大值不能超過4

同步段規(guī)則

CAN報文在CAN總線上的傳輸時,物理延遲包含兩個部分:

在CAN-BUS上傳輸造成的延遲

在節(jié)點內部傳輸造成延遲

 

按照CAN通信協(xié)議的規(guī)定,補償給傳播延遲的時間長度要至少等于實際實際傳播延遲時長的2被,

即:tPTS≥2×tdel=2×(tdel+tBus)

四、CAN應用層

定義ID的規(guī)則

 

定義控制命令和節(jié)點

 

定義索引對象

 

分段報文寫---起始幀

 

分段報文寫---傳輸幀和結束幀

 

分段報文讀-----起始幀

 

分段報文讀----傳輸過程

 

相關推薦

電子產業(yè)圖譜