前言
前面已經(jīng)介紹了幾種總線協(xié)議,那現(xiàn)在如果在汽車上實際應用一種總線協(xié)議來通訊的話,你會選擇哪一種呢?
答案是 都不行
因為在汽車中許多系統(tǒng)都需要實時控制,而且數(shù)據(jù)必須可靠,即使面對面對惡劣環(huán)境也要正常運行
如何解決這個問題呢?就要看CAN總線了
ECU如何傳輸數(shù)據(jù)?
現(xiàn)在將車上的每個設備用一條總線連接起來

要想CAN通訊,就必須要專門的CAN收發(fā)器,經(jīng)過CAN收發(fā)器,普通信號就會轉化成差分信號(差分信號由兩根線表示)

如果輸入0,CAN收發(fā)器的兩根線分別輸出3.5V和1.5V(壓差為2V)
如果輸入1,CAN收發(fā)器的兩根線都輸出2.5V(壓差為0V)

為什么要這樣表示數(shù)據(jù)?
想象一下,如果這條線是0V,受到了干擾,電壓就會波動


如果是兩條線纏繞在一起,用差分信號來表示數(shù)據(jù)的話,即使受到了干擾,也是兩條線一起受到干擾,依舊存在壓差
CAN數(shù)據(jù)格式
這是一幀完整的數(shù)據(jù)
最開始是起始位(始終為0)
然后是11位的識別碼

每一個設備都有唯一的11位識別碼

緊接著是RTR位用來區(qū)分數(shù)據(jù)幀(0)或遠程請求幀(1)

接下來是6位控制碼

其中第一位的IDE位是用來區(qū)分是標準幀還是拓展幀(標準幀有11位的識別碼,IDE位為0;而拓展碼有29位的識別碼,IDE位為1)

下面是預留位,它是邏輯0

剩下的4位為DLC位,表示數(shù)據(jù)長度

每一個數(shù)值對應每一個字節(jié)(比如如圖數(shù)值為8,對應數(shù)據(jù)長度為8個字節(jié))

接下來是16位的CRC循環(huán)冗余校驗位,它是為了確保收到的數(shù)據(jù)的準確性
首先是15位CRC校驗位,如果和接收到的CRC校驗位不一致,就會重新再重發(fā)一次

最后是CRC界定位,目的是為了與后面的數(shù)據(jù)區(qū)分開來

然后是2位ACK碼
第一位是ACK確認槽(發(fā)送端是1,接收端就是0)用來表示應答
第2位是ACK界定位(始終為1),目的也是為了和后面的數(shù)據(jù)區(qū)分開來,

最后是7位結束位(時鐘為1)
如果用用差分信號表示,電平是這樣的,如圖所示

如果此時總線上同時有2個設備發(fā)出控制信號,究竟優(yōu)先執(zhí)行哪一個設備的信號呢?

這就得看11位的識別碼了,它不僅指定了哪個設備,還表示了優(yōu)先級

當總線同時為1或0,總線會被置為0(即優(yōu)先執(zhí)行電平0)
總結
了解完了CAN總線,或許會有一個疑惑點?
CAN總線和RS485是不是有點相似,對吧?
雖然的確有些相似之處,但CAN總線是專門用于汽車領域的,就比如數(shù)據(jù)可靠性,CAN總線檢測到數(shù)據(jù)不一致,就會重新發(fā)送,而485就發(fā)一次,不管是不是正確的數(shù)據(jù)
相對485不止一個優(yōu)點,礙于文字,就不過多敘述了
-
收發(fā)器
+關注
關注
10文章
3768瀏覽量
110131 -
CAN
+關注
關注
58文章
2982瀏覽量
471049 -
總線
+關注
關注
10文章
3006瀏覽量
91111
發(fā)布評論請先 登錄
CANoe:網(wǎng)絡和ECU開發(fā)、測試和分析的專業(yè)工具
ECU的靜態(tài)電流
ECU的原理是什么?
車載ECU的Bootloader實現(xiàn)方法概述
汽車中的ECU, VCU, MCU, HCU分別是什么
汽車ECU分類
CSEc MASTER ECU KEY更新錯誤的原因?
汽車ECU是什么?ECU是如何工作的
ECU刷寫流程之壓縮刷寫技術解析
ECU故障診斷工具 如何選擇合適的ECU
ECU和OBD的區(qū)別
理解ECU數(shù)據(jù)流的分析方法
解析CAN總線

ECU如何傳輸數(shù)據(jù)?
評論