干貨分享:CAN總線詳解 整車的控制只需要一條線

      網(wǎng)友投稿 1519 2025-03-31

      點擊上方“小麥大叔”,選擇“置頂/星標公眾號”


      福利干貨,第一時間送達

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

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

      如:果整車上所有的用電設備都是一個獨立的CAN總線節(jié)點,并且每一個節(jié)點都向外發(fā)送自己當前的狀態(tài),并接受來自外部的信息, 那么整車的控制只需要一條CAN總線控制線和電源線就可以了!

      CAN總線的基本工作原理

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

      CAN總線工作流程

      CAN總線的優(yōu)勢

      數(shù)據(jù)傳輸速度高1Mbit/s,距離遠

      抗干擾能力強(差分數(shù)據(jù)線)

      具有自我診斷能力(錯誤偵測)

      CAN總線網(wǎng)絡結(jié)構(gòu)

      01 CAN總線網(wǎng)絡節(jié)點結(jié)構(gòu)

      02 為何CAN收發(fā)器

      照BOSCH CAN總線標準將0或1邏輯信號轉(zhuǎn)換為標準中規(guī)定的電平,同時有反饋功能

      CAN總線上的電平

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

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

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

      03總線長度的思考

      干貨分享:CAN總線詳解 整車的控制只需要一條線

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

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

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

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

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

      由上面的分析可知:

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

      影響總線長度的其他因素:

      信號在節(jié)點ECU內(nèi)部的延時時間

      振蕩器的容差(各個節(jié)點ECU內(nèi)部晶振頻率的差別) 這些因素加起來就形成了CAN總線通信中總的信號延時。

      CAN總線的硬件抗干擾

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

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

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

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

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

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

      Can總線報文幀結(jié)構(gòu)

      CAN總線共有四種報文:

      1 數(shù)據(jù)幀

      2 遠程幀

      3 錯誤幀

      4 過載幀

      數(shù)據(jù)幀定義

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

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

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

      CAN總線的仲裁機制

      要點

      (1)首先發(fā)送ID的29位,優(yōu)先級問題

      (2)總線電平由誰決定

      CAN總線總裁機制的實現(xiàn)也就實現(xiàn)了CAN總線的多主機模式,總線節(jié)點不存在誰主誰從的概念

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

      報文濾波

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

      數(shù)據(jù)幀中的其他場作用

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

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

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

      來應答該發(fā)送節(jié)點,必須注意:該顯性位必須在應答間隙期間, 即1bit的時間內(nèi)將總線電平拉高。幀結(jié)尾:7個連續(xù)的1組成(隱性電平)

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

      幀聽就是發(fā)出去的數(shù)據(jù)再采樣回來,比較采樣回來的數(shù)據(jù)是否和發(fā)出的數(shù)據(jù)一致!

      CAN總線錯誤檢測

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

      當節(jié)點贏得總線發(fā)送權(quán)后,會對總線電平進行檢測,當發(fā)送的電平和檢測到的總線電平不一致時,認為錯誤;

      出現(xiàn)6個連續(xù)相同的電平時,認為是填充錯誤;

      CRC錯誤,接收數(shù)據(jù)的節(jié)點按照與發(fā)送數(shù)據(jù)的節(jié)點相同的方法計算數(shù)據(jù)的CRC校驗值,如果接收節(jié)點的計算結(jié)果與數(shù)據(jù)包中CRC場的數(shù)據(jù)不一致, 認為是CRC錯誤;

      應答錯誤,在應答場如果沒有監(jiān)控到一個顯性電平,那么就認定一個應答錯誤;

      固定位錯誤,例如:CRC界定符等,其電平是固定的,當監(jiān)控到該電平不相符時,認定一個錯誤;

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

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

      CAN總線負載率計算

      計算例子:

      假設CAN總線波特率為250Kbit/s,總線報文發(fā)送時間間隔為10ms, 報文為數(shù)據(jù)幀(8個字節(jié)數(shù)據(jù)),那么10ms內(nèi)總線能夠支持的最大報文數(shù)量為多少?

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

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

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

      + 16crc + 2ack + 7eof = 128bit

      第三步:計算10ms內(nèi)可以支持的報文數(shù)目

      2500/128 ≈ 19

      由上面的計算可知,當10ms間隔的報文數(shù)量超過19條時,就會出現(xiàn)丟幀,總線飽和。

      計算報文數(shù)量也是設計CAN網(wǎng)絡所要考慮的,可以查閱相關(guān)文獻看負載率在多少時合適

      來源:頭條?億佰特物聯(lián)網(wǎng)實驗室

      —— The End?——

      推薦好文??點擊藍色字體即可跳轉(zhuǎn)

      ??非常重要!單片機模塊化設計讓我事半功倍

      ??推薦一個直接用于項目開發(fā)的PID庫!很好用,很穩(wěn)定

      ??80家MCU國產(chǎn)和國外廠家匯總!

      ??推薦一款我私藏已久的串口示波神器

      歡迎轉(zhuǎn)發(fā)、留言、、分享給你的朋友,感謝您的支持!

      點擊名片關(guān)注我

      分享??????????????在看???

      以“三連”行動支持優(yōu)質(zhì)內(nèi)容!

      單片機

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel表格加框線的方法步驟圖解(excel如何加表格框線)
      下一篇:你曾經(jīng)是那手握烙鐵的少年
      相關(guān)文章
      亚洲一区二区三区高清在线观看| 亚洲一区二区三区在线网站 | 亚洲欧美日韩中文二区| 亚洲日韩国产精品无码av| 久久亚洲AV午夜福利精品一区 | 丁香五月亚洲综合深深爱| 中文字幕在亚洲第一在线| 久久久无码精品亚洲日韩软件| 国产精品亚洲mnbav网站 | 亚洲高清乱码午夜电影网| 亚洲а∨精品天堂在线| 亚洲av乱码中文一区二区三区| 色偷偷尼玛图亚洲综合| 国产精品亚洲精品日韩动图| 亚洲?v女人的天堂在线观看| 亚洲精品无码久久久久AV麻豆| 国产日韩成人亚洲丁香婷婷| 亚洲中文字幕无码永久在线| 亚洲精品自在在线观看| 亚洲国产精品一区二区久久| 亚洲精品视频专区| 久久精品亚洲AV久久久无码| 亚洲国产熟亚洲女视频| 亚洲youwu永久无码精品| 亚洲GV天堂无码男同在线观看 | 亚洲网站在线观看| 亚洲国产福利精品一区二区| 亚洲AV成人影视在线观看| 亚洲日本一线产区和二线 | 国产精品亚洲天堂| AV在线亚洲男人的天堂| 亚洲欧洲成人精品香蕉网| 亚洲成人午夜在线| 中文字幕亚洲色图| 亚洲av日韩av综合| 亚洲AV成人一区二区三区观看 | 亚洲精品美女久久777777| 亚洲午夜久久影院| 国产精品亚洲专区在线观看 | 中文字幕在线观看亚洲| 国产精品亚洲片在线va|