tft每日頭條

 > 汽車

 > can總線工作原理入門

can總線工作原理入門

汽車 更新时间:2024-12-04 05:06:59

CAN(“Controller Area Network”,控制器局域網)

作用:将整車中各種不同的控制器連接起來,實現信息的可靠共享,并減少整車線束數量。可以設想一種極端情況,如下圖所示:

can總線工作原理入門(幹貨分享CAN總線詳解)1

如:果整車上所有的用電設備都是一個獨立的Can總線節點,并且每一個節點都向外發送自己當前的狀态,并接受來自外部的信息, 那麼整車的控制隻需要一條CAN總線控制線和電源線就可以了!

can總線工作原理入門(幹貨分享CAN總線詳解)2

CAN總線的基本工作原理

CAN總線的通信通過一種類似于“會議” 的機制實現的,隻不過會議的過程并不是由一方(節點)主導,而 是,每一個會議參加人員都可以自由的提出會議議題(多主通信模式),二者對應關系如下:

can總線工作原理入門(幹貨分享CAN總線詳解)3

CAN總線工作流程

can總線工作原理入門(幹貨分享CAN總線詳解)4

CAN總線的優勢
  • 數據傳輸速度高1Mbit/s,距離遠
  • 抗幹擾能力強(差分數據線)
  • 具有自我診斷能力(錯誤偵測)
CAN總線網絡結構

01 CAN總線網絡節點結構

can總線工作原理入門(幹貨分享CAN總線詳解)5

02 為何CAN收發器

照BOSCH CAN總線标準将0或1邏輯信号轉換為标準中規定的電平,同時有反饋功能

can總線工作原理入門(幹貨分享CAN總線詳解)6

can總線工作原理入門(幹貨分享CAN總線詳解)7

CAN總線上的電平

CAN2.0A/B标準規定:總線空閑時,CAN_H和CAN_L上的電壓為2.5V

在數據傳輸時,顯性電平(邏輯 0):CAN_H 3.5V CAN_L 1.5V

隐性電平(邏輯 1):CAN_H 2.5V CAN_L 2.5V

can總線工作原理入門(幹貨分享CAN總線詳解)8

03總線長度的思考

影響總線長度的主要因素:

(1)CAN總線通信的應答機制,即成功接收到一幀報文的節點必須在 應答場的”應答間隙“期間發送一位“顯性位”表示成功接收到一幀數據

如:通信速率為250Kbit/s,傳送一個bit所需時間為:1/250×1000 = 4μ 那麼,該信号在總線上的延時時間必須小于(2μ?)才能保證發送節點成功的在應答間隙期間接收到該“顯性電平”。

任何一根導線都可以簡化為左圖所示的電路模型,可以看到,其中既有電感又有電容,因此,電流在其中傳輸并不是光速,而是需要一定的時間。

can總線工作原理入門(幹貨分享CAN總線詳解)9

can總線工作原理入門(幹貨分享CAN總線詳解)10

對于雙絞線而言,信号在其中的傳播延時時間約為,5ns/m(典型值)。當通信速率達到1Mbit/s時,40m的總線長度, 延時時間就達到200ns,而允許延時時間為600ns左右,還是不能不考慮的!

由上面的分析可知:

總線通信速率越高,通信距離越短,對物理傳輸線的要求就越高,在雙絞線、屏蔽線還是其他的傳輸線選擇上,通信速率是一個很關鍵的參數。

影響總線長度的其他因素

  • 信号在節點ECU内部的延時時間
  • 振蕩器的容差(各個節點ECU内部晶振頻率的差别) 這些因素加起來就形成了CAN總線通信中總的信号延時。

can總線工作原理入門(幹貨分享CAN總線詳解)11

CAN總線的硬件抗幹擾

can總線工作原理入門(幹貨分享CAN總線詳解)12

can總線工作原理入門(幹貨分享CAN總線詳解)13

共模電感作用:共模電壓有較大的感 抗,差模電壓感抗為零,相當于電感濾波。對共模電流有較大的阻礙作用。

can總線工作原理入門(幹貨分享CAN總線詳解)14

終 端 電阻 120 歐姆并非固定不變,這跟使用的導線有關!

總線長度的限制——位定時、同步

CAN總線控制器按照時間片的概念将每一個bit的時間劃分成了n個時間片。這樣做的目的就是為了實現CAN總線的同步、保證不同節點間時間的一緻性。

如:晶振和CAN CLOCK,頻率均為4MHz,那麼每一個時間片最小時間就為0.25μs,通信波特率為250Kbit/s,那麼每一個bit的時間就為4μs, 因此,每一個bit的總的時間片數目就為16。當然可以進一步提高晶振頻率,使得每一個bit被劃分的更加細緻。

can總線工作原理入門(幹貨分享CAN總線詳解)15

CAN2.0A/B将每一個bit的時間劃分成了4段,同步段、傳輸段、相位段1和相位段2,每一段占用一定的時間片

Can總線報文幀結構

CAN總線共有四種報文:

1 數據幀

2 遠程幀

3 錯誤幀

4 過載幀

can總線工作原理入門(幹貨分享CAN總線詳解)16

數據幀定義

can總線工作原理入門(幹貨分享CAN總線詳解)17

幀起始:1bit。從圖中看出,在幀間隙後由邏輯1(至少兩個bit)向邏輯 0 的跳變就被認為是幀起始,它的作用就是為了硬同步。

仲裁場:由29bit的ID标示符和IDE、SRR、RTR位構成。IDE位用于标示該幀是擴展幀(29bit ID)還是标準幀(11bit ID);SRR在擴展幀 中 為 一 隐 性 位 ; R T R 位 為 遠 程 幀 标 志 位 。

由上圖可以看出,11bit的基本ID首先被發送(ID28~ID18),然後在發送18bit的擴展ID(ID17~ID0)

CAN總線的仲裁機制

要點

(1)首先發送ID的29位,優先級問題

(2)總線電平由誰決定

can總線工作原理入門(幹貨分享CAN總線詳解)18

can總線工作原理入門(幹貨分享CAN總線詳解)19

CAN總線總裁機制的實現也就實現了CAN總線的多主機模式,總線節點不存在誰主誰從的概念

注意:我們可以人為的給29位的ID賦予一定的意義從而區分不同的報文類型!

報文濾波

報文濾波可以通過軟件編程的方式實現,也可以通過硬件(芯片内部的報文濾波寄存器)實現,但二者實現的原理是相同的,如下圖所示:

can總線工作原理入門(幹貨分享CAN總線詳解)20

數據幀中的其他場作用

can總線工作原理入門(幹貨分享CAN總線詳解)21

控制場:包括兩位保留位(必須為0),和數據長度位(DLC0~DLC3) 數據場:包括最多8個字節的數據

CRC場:是一種算法,對數據進行CRC校驗,共15bit,其後跟了一位CRC界定符——為1(隐性電平)

應答場:為兩個1(總線電平為低電平),其中一位為應答間隙,另一位為應答界定符。成功接收到數據的節點必須發送一位顯性位(總線電平為高電平)

來應答該發送節點,必須注意:該顯性位必須在應答間隙期間, 即1bit的時間内将總線電平拉高。幀結尾:7個連續的1組成(隐性電平)

CAN總線的偵聽機制—支持仲裁及錯誤檢查

幀聽就是發出去的數據再采樣回來,比較采樣回來的數據是否和發出的數據一緻!

can總線工作原理入門(幹貨分享CAN總線詳解)22

CAN總線錯誤檢測

CAN總線通過如下幾個方面進行錯誤檢測

  1. 當節點赢得總線發送權後,會對總線電平進行檢測,當發送的電平和檢測到的總線電平不一緻時,認為錯誤
  2. 出現6個連續相同的電平時,認為是填充錯誤
  3. CRC錯誤,接收數據的節點按照與發送數據的節點相同的方法計算數據的CRC校驗值,如果接收節點的計算結果與數據包中CRC場的數據不一緻, 認為是CRC錯誤
  4. 應答錯誤,在應答場如果沒有監控到一個顯性電平,那麼就認定一個應答錯誤
  5. 固定位錯誤,例如:CRC界定符等,其電平是固定的,當監控到該電平不相符時,認定一個錯誤

另:總線同步機制也是CAN總線容錯的一種方式

注意:通過上面5種錯誤檢測機制,發送節點和接收節點均可以檢測到總線上的錯誤,并通過錯誤的累加來實現總線節點的關閉等操作

CAN總線負載率計算

計算例子:

假設CAN總線波特率為250Kbit/s,總線報文發送時間間隔為10ms, 報文為數據幀(8個字節數據),那麼10ms内總線能夠支持的最大報文數量為多少?

第一步:根據通信波特率計算10ms總共可以發送多少bit (250000/1000)*10 = 2500bit

第二步:計算最長的一幀報文有多少個bit

1sof 29id 1ide 1rtr 1srr 2r 4dlc 8*8data

16crc 2ack 7eof = 128bit

第三步:計算10ms内可以支持的報文數目

2500/128 ≈ 19

由上面的計算可知,當10ms間隔的報文數量超過19條時,就會出現丢幀,總線飽和。

計算報文數量也是設計CAN網絡所要考慮的,可以查閱相關文獻看負載率在多少時合适

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关汽車资讯推荐

热门汽車资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved