0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文讀懂汽車CAN總線技術(shù)原理(上)

上海航芯 ? 來(lái)源:上海航芯 ? 作者:上海航芯 ? 2022-01-20 17:31 ? 次閱讀

CAN總線協(xié)議的優(yōu)點(diǎn)

? 布線減少,成本低
? 接線簡(jiǎn)單,節(jié)省時(shí)間
? 丟失消息的自動(dòng)重傳
? 支持錯(cuò)誤檢測(cè)
? 靈活的數(shù)據(jù)傳輸速率

CAN 定義

CAN代表控制器局域網(wǎng),專為滿足汽車行業(yè)的需求而設(shè)計(jì)。在引入CAN之前,每個(gè)電子設(shè)備都使用多條電線連接到其他設(shè)備以實(shí)現(xiàn)通信。但是當(dāng)汽車系統(tǒng)中的功能增加時(shí),由于布線系統(tǒng)繁瑣,維護(hù)起來(lái)很困難。在CAN總線系統(tǒng)的幫助下,只需將每個(gè)ECU連接到公共串行總線,即可讓ECU相互通信,而無(wú)需太多復(fù)雜性。因此,與汽車系統(tǒng)中使用的其他協(xié)議(即CAN與LIN)相比,CAN由于復(fù)雜性較低而且更加穩(wěn)健。

CAN協(xié)議可以被定義為在一個(gè)通過(guò)串行總線連接的電子設(shè)備網(wǎng)絡(luò)中傳輸和接收信息的一套規(guī)則。CAN網(wǎng)絡(luò)中的每個(gè)電子設(shè)備被稱為一個(gè)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)都必須有硬件和軟件嵌入其中進(jìn)行數(shù)據(jù)交換。一個(gè)CAN總線系統(tǒng)的每個(gè)節(jié)點(diǎn)都有一個(gè)主機(jī)微控制器單元、CAN控制器和CAN收發(fā)器。CAN控制器是一個(gè)可以嵌入在主機(jī)控制器內(nèi)或單獨(dú)添加的芯片,它需要管理數(shù)據(jù)并通過(guò)收發(fā)器在串行總線上發(fā)送數(shù)據(jù),反之亦然。CAN收發(fā)器芯片用于使信號(hào)適應(yīng)CAN總線水平。

CAN是一個(gè)基于消息的協(xié)議,每個(gè)消息都由一個(gè)預(yù)先定義的唯一ID來(lái)識(shí)別。傳輸?shù)臄?shù)據(jù)包被CAN總線網(wǎng)絡(luò)中的所有節(jié)點(diǎn)接收,但根據(jù)ID,CAN節(jié)點(diǎn)決定是否接受它。當(dāng)多個(gè)節(jié)點(diǎn)試圖同時(shí)發(fā)送數(shù)據(jù)時(shí),CAN總線遵循仲裁過(guò)程。

CAN 總線電氣規(guī)格

CAN收發(fā)器處理的CAN信號(hào)有單端信號(hào)和差分信號(hào)(CANH和CANL)。CAN_High和CAN_Low線路在理想狀態(tài)下為2.5V。CAN將邏輯“0”定義為顯性位,將邏輯“1”定義為隱性位。傳輸顯性位時(shí),CAN_High變?yōu)?3.5V,CAN_Low變?yōu)?.5V,即顯性位的差分電壓為2V。當(dāng)發(fā)送隱性位時(shí),CAN_High和 CAN_Low線被驅(qū)動(dòng)到2.5V,表示隱性位的差分電壓為0V。CANH和CANL線的物理端應(yīng)加120歐姆的CAN總線終端電阻,以避免任何信號(hào)反射。

1.png


圖1. CAN總線差分信號(hào)

CAN 的幀類型

幀是一種定義的結(jié)構(gòu)或格式,在網(wǎng)絡(luò)中攜帶有意義的數(shù)據(jù)(字節(jié))。CAN有四種幀類型:數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過(guò)載幀。

數(shù)據(jù)幀

數(shù)據(jù)幀包含用于傳輸?shù)墓?jié)點(diǎn)數(shù)據(jù)的幀。數(shù)據(jù)幀由提供信息的附加字段組成,即仲裁字段、控制字段、數(shù)據(jù)字段、CRC字段、2位確認(rèn)字段和幀結(jié)束。

有兩種類型的數(shù)據(jù)幀:標(biāo)準(zhǔn)幀格式、擴(kuò)展幀格式

兩種格式的唯一區(qū)別是標(biāo)準(zhǔn)幀支持11位標(biāo)識(shí)符,擴(kuò)展幀支持29位標(biāo)識(shí)符,由11位標(biāo)識(shí)符和擴(kuò)展18位標(biāo)識(shí)符組成。IDE位在標(biāo)準(zhǔn)幀中是顯性的,在擴(kuò)展幀中是隱性的。

標(biāo)準(zhǔn)幀格式:

標(biāo)準(zhǔn)幀主要用于發(fā)送數(shù)據(jù)。

2.png

圖2. 標(biāo)準(zhǔn)幀

術(shù)語(yǔ)

? SOF - 幀的開始,表示幀傳輸?shù)拈_始。
? Identifier - 11位唯一的ID,也代表信息的優(yōu)先級(jí)值越低,優(yōu)先級(jí)越高。
? RTR - 遠(yuǎn)程傳輸請(qǐng)求,它對(duì)數(shù)據(jù)幀是顯性的,對(duì)遠(yuǎn)程幀是隱性的。
? IDE - 單一識(shí)別擴(kuò)展,它對(duì)標(biāo)準(zhǔn)幀是顯性的,對(duì)擴(kuò)展幀是隱性的。
? R0 - 保留位。
? DLC - 數(shù)據(jù)長(zhǎng)度代碼,定義了正在發(fā)送的數(shù)據(jù)的長(zhǎng)度,它的大小為4位。
? 數(shù)據(jù)——要傳輸?shù)臄?shù)據(jù)和長(zhǎng)度由DLC決定。
? CRC——循環(huán)冗余校驗(yàn),它包含前面應(yīng)用程序數(shù)據(jù)的校驗(yàn)和,用于錯(cuò)誤檢測(cè)。
? ACK——確認(rèn),它的長(zhǎng)度為2位,如果接收到準(zhǔn)確的消息,則占主導(dǎo)地位。
? EOF——幀的末端,必須是隱性的。
? IFS——幀間空間,它包含控制器將正確接收的幀移動(dòng)到正確位置所需的時(shí)間。

擴(kuò)展幀:

3.png

圖3. 擴(kuò)展幀

它與標(biāo)準(zhǔn)幀相同,但有一些額外的字段。

SRR替代反向請(qǐng)求。SRR位總是作為隱性位傳輸,以確?;緮?shù)據(jù)幀與擴(kuò)展數(shù)據(jù)幀相比具有較高的優(yōu)先權(quán),如果兩個(gè)信息具有相同的11位標(biāo)識(shí)符,它還包含一個(gè)11位標(biāo)識(shí)符以外的18位標(biāo)識(shí)符。

r1- 保留位。

遠(yuǎn)程幀

遠(yuǎn)程幀與數(shù)據(jù)幀相似,但有兩點(diǎn)不同。遠(yuǎn)程幀是由接收方發(fā)送的,用于請(qǐng)求發(fā)送方提供數(shù)據(jù),所以遠(yuǎn)程幀和數(shù)據(jù)幀之間的區(qū)別是遠(yuǎn)程幀不包含任何數(shù)據(jù)字段,因?yàn)樗挥糜跀?shù)據(jù)傳輸。第二個(gè)區(qū)別是遠(yuǎn)程幀的RTR 位為隱性狀態(tài),當(dāng)總線上具有相同標(biāo)識(shí)符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)發(fā)送時(shí),由于數(shù)據(jù)幀RTR位是顯性的,數(shù)據(jù)幀將在仲裁中贏得總線控制權(quán)。

錯(cuò)誤幀

錯(cuò)誤幀是用于接收和發(fā)送消息時(shí)檢測(cè)出錯(cuò)誤時(shí),通知錯(cuò)誤的幀。錯(cuò)誤幀由六個(gè)顯性位組成的錯(cuò)誤標(biāo)志和由八個(gè)隱性位組成的錯(cuò)誤界定符構(gòu)成。

錯(cuò)誤標(biāo)志分為:主動(dòng)錯(cuò)誤標(biāo)志、被動(dòng)錯(cuò)誤標(biāo)志

主動(dòng)錯(cuò)誤標(biāo)志:當(dāng)錯(cuò)誤主動(dòng)節(jié)點(diǎn)檢測(cè)到一個(gè)總線錯(cuò)誤時(shí)輸出的一個(gè)主動(dòng)錯(cuò)誤標(biāo)志,來(lái)中斷當(dāng)前的數(shù)據(jù)發(fā)送。其中主動(dòng)錯(cuò)誤標(biāo)志由6個(gè)連續(xù)的顯性位構(gòu)成。

被動(dòng)錯(cuò)誤標(biāo)志:當(dāng)錯(cuò)誤被動(dòng)節(jié)點(diǎn)檢測(cè)到一個(gè)總線錯(cuò)誤時(shí)輸出的一個(gè)被動(dòng)錯(cuò)誤標(biāo)志,并緊接著發(fā)送錯(cuò)誤定界字段。其中錯(cuò)誤被動(dòng)標(biāo)志由6個(gè)連續(xù)的隱性位構(gòu)成。

錯(cuò)誤計(jì)數(shù)器:如果在總線上檢測(cè)到一個(gè)錯(cuò)誤,那么TEC或REC計(jì)數(shù)就會(huì)增加。

  1. 發(fā)送錯(cuò)誤計(jì)數(shù)器(TEC)
  2. 接收錯(cuò)誤計(jì)數(shù)器(REC)

? 當(dāng) TEC 和 REC 小于 128 時(shí),發(fā)送活動(dòng)錯(cuò)誤幀
? 當(dāng) TEC 或 REC 大于 127 且小于 255 時(shí),傳輸被動(dòng)幀
? 當(dāng)TEC大于255時(shí),節(jié)點(diǎn)進(jìn)入總線關(guān)閉狀態(tài),此時(shí)不能發(fā)送幀

4.png


圖4. 錯(cuò)誤轉(zhuǎn)換狀態(tài)圖

過(guò)載幀

過(guò)載幀是用于接收單元通知發(fā)送單元它尚未完成接收準(zhǔn)備的幀。過(guò)載幀中包含兩個(gè)字段,過(guò)載標(biāo)志和過(guò)載界定符。過(guò)載標(biāo)志由6個(gè)顯性位和緊隨其后的其他節(jié)點(diǎn)產(chǎn)生的過(guò)載標(biāo)志構(gòu)成,過(guò)載界定符由8個(gè)隱性位組成,在以下兩種情況下,節(jié)點(diǎn)會(huì)發(fā)送過(guò)載幀:

  1. 當(dāng)接收單元需要發(fā)送節(jié)點(diǎn)延緩下一幀傳輸
  2. 節(jié)點(diǎn)在幀間間隔檢測(cè)到非法顯性位

仲裁

仲裁是一種解決沖突的機(jī)制,當(dāng)一個(gè)以上的節(jié)點(diǎn)同時(shí)準(zhǔn)備傳輸信息時(shí)。只要總線是空閑的,任何節(jié)點(diǎn)都可以傳輸數(shù)據(jù)。如果多個(gè)節(jié)點(diǎn)同時(shí)準(zhǔn)備傳輸數(shù)據(jù),對(duì)總線的訪問就會(huì)發(fā)生沖突,可以通過(guò)使用標(biāo)識(shí)符的仲裁來(lái)解決。在仲裁過(guò)程中,每個(gè)發(fā)射器都會(huì)將傳輸?shù)谋忍刂蹬c總線上的比特值進(jìn)行比較。如果比特值是相同的,節(jié)點(diǎn)繼續(xù)傳輸比特。如果傳輸?shù)谋忍刂蹬c總線上的比特值不一樣,那么,優(yōu)勢(shì)比特就會(huì)覆蓋劣勢(shì)比特。

CAN報(bào)文的仲裁字段由1位或29位標(biāo)識(shí)符和RTR位組成。具有最低值的標(biāo)識(shí)符具有最高的優(yōu)先權(quán)。如果數(shù)據(jù)幀和遠(yuǎn)程幀都有相同的標(biāo)識(shí)符,并準(zhǔn)備在同一時(shí)間發(fā)送數(shù)據(jù),那么數(shù)據(jù)幀的優(yōu)先級(jí)就高,因?yàn)檫h(yuǎn)程傳輸位(RTR)在數(shù)據(jù)幀中是主導(dǎo)位,在遠(yuǎn)程幀中是隱性位。

消息級(jí)CAN總線錯(cuò)誤控制機(jī)制

與其他協(xié)議相比,即CAN與LIN、CAN與MOD總線相比,CAN協(xié)議是穩(wěn)健的,錯(cuò)誤檢查使CAN協(xié)議達(dá)到穩(wěn)健。通過(guò)這些機(jī)制,如果檢測(cè)到錯(cuò)誤,節(jié)點(diǎn)就會(huì)傳送一個(gè)錯(cuò)誤幀并銷毀傳送的幀。

CRC校驗(yàn)

循環(huán)冗余校驗(yàn)值由發(fā)送節(jié)點(diǎn)計(jì)算并通過(guò)CRC字段發(fā)送,該值被所有節(jié)點(diǎn)接收。然后所有接收節(jié)點(diǎn)計(jì)算CRC值并將該值與發(fā)送值匹配。如果值不同,則生成錯(cuò)誤幀。

ACK時(shí)隙

當(dāng)發(fā)送節(jié)點(diǎn)發(fā)送消息時(shí),在確認(rèn)時(shí)隙中發(fā)送一個(gè)隱性位。如果接收到一條消息,則確認(rèn)槽由顯性位替換,該位將確認(rèn)至少一個(gè)節(jié)點(diǎn)正確接收到該消息。如果該位是隱性的,則沒有節(jié)點(diǎn)正確接收到消息。

形式錯(cuò)誤

當(dāng)一個(gè)固定形式的位場(chǎng)含有1個(gè)或多個(gè)非法位,則檢測(cè)到一個(gè)形式錯(cuò)誤,如幀結(jié)尾固定為隱性位,卻檢測(cè)到了顯性位。

*內(nèi)容來(lái)源自PathPartner Technology,版權(quán)歸原作者所有,如涉及版權(quán)問題請(qǐng)聯(lián)系溝通

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351197
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1951

    瀏覽量

    130760
  • 汽車
    +關(guān)注

    關(guān)注

    13

    文章

    3515

    瀏覽量

    37312
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CAN總線技術(shù)的未來(lái)趨勢(shì)

    CAN總線技術(shù)自1980年代末期推出以來(lái),已經(jīng)成為汽車和工業(yè)控制系統(tǒng)中不可或缺的通信標(biāo)準(zhǔn)。隨著物聯(lián)網(wǎng)(IoT)、自動(dòng)駕駛技術(shù)以及智能制造的興
    的頭像 發(fā)表于 11-21 10:37 ?423次閱讀

    使用CAN總線進(jìn)行汽車電控系統(tǒng)設(shè)計(jì)

    Area Network,控制器局域網(wǎng))總線是德國(guó)Bosch公司在20世紀(jì)80年代初為解決汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的種通信協(xié)議。它已經(jīng)成為國(guó)際標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn),被譽(yù)為“最有前途的現(xiàn)場(chǎng)
    的頭像 發(fā)表于 11-12 09:58 ?292次閱讀

    讀懂單燈控制器工作原理

    讀懂單燈控制器工作原理
    的頭像 發(fā)表于 11-11 13:13 ?236次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>單燈控制器工作原理

    CAN總線基礎(chǔ)知識(shí)匯總#CAN #CANoe #汽車總線

    CAN總線
    北匯信息POLELINK
    發(fā)布于 :2024年11月04日 13:35:54

    讀懂MSA(測(cè)量系統(tǒng)分析)

    讀懂MSA(測(cè)量系統(tǒng)分析)
    的頭像 發(fā)表于 11-01 11:08 ?907次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>MSA(測(cè)量系統(tǒng)分析)

    什么是CAN時(shí)鐘?#CAN #汽車CAN總線? #CANoe

    CAN總線
    北匯信息POLELINK
    發(fā)布于 :2024年10月29日 12:23:36

    汽車CAN總線的特點(diǎn)和應(yīng)用

    汽車CAN總線種連接汽車各種控制單元的通信協(xié)議和數(shù)據(jù)傳輸標(biāo)準(zhǔn),它對(duì)于現(xiàn)代汽車的發(fā)展具有重要意
    的頭像 發(fā)表于 09-30 11:31 ?610次閱讀

    讀懂新能源汽車的功能安全

    電子發(fā)燒友網(wǎng)站提供《讀懂新能源汽車的功能安全.pdf》資料免費(fèi)下載
    發(fā)表于 09-04 09:22 ?3次下載

    CAN/CAN FD/CAN XL三大總線協(xié)議解讀,是逐步替代關(guān)系嗎?

    電子發(fā)燒友網(wǎng)報(bào)道(/吳子鵬)在軟件定義汽車逐漸成為主流的當(dāng)下,數(shù)據(jù)傳輸?shù)乃俣群托食蔀榇蛟熘悄?b class='flag-5'>汽車的瓶頸,在這種大背景下,傳統(tǒng)CAN總線應(yīng)
    的頭像 發(fā)表于 08-12 01:12 ?4411次閱讀

    技術(shù)小課堂 | CAN總線應(yīng)用常見問題(1)

    ··CAN是控制器局域網(wǎng)絡(luò)(ControllerAreaNetwork,CAN)的簡(jiǎn)稱,由德國(guó)的BOSCH公司開發(fā),并最終成為國(guó)際標(biāo)準(zhǔn)(ISO11898),是國(guó)際應(yīng)用最廣泛的現(xiàn)場(chǎng)總線
    的頭像 發(fā)表于 07-25 08:37 ?666次閱讀
    <b class='flag-5'>技術(shù)</b>小課堂 | <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>應(yīng)用常見問題(1)

    CAN總線的特點(diǎn)、原理及應(yīng)用

    CAN總線(Controller Area Network)是種用于汽車和工業(yè)自動(dòng)化領(lǐng)域的局域網(wǎng)技術(shù),具有實(shí)時(shí)性、可靠性、靈活性和成本效益
    的頭像 發(fā)表于 06-16 10:19 ?3647次閱讀

    讀懂CAN通訊錯(cuò)誤幀

    CAN總線通信技術(shù)廣泛應(yīng)用于多個(gè)行業(yè),是每個(gè)總線設(shè)計(jì)工程師必學(xué)的個(gè)通訊網(wǎng)絡(luò)。然而,對(duì)于CAN
    的頭像 發(fā)表于 06-12 08:24 ?2714次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b><b class='flag-5'>CAN</b>通訊錯(cuò)誤幀

    CAN總線錯(cuò)誤幀及其排查方法簡(jiǎn)單介紹#汽車CAN總線?

    CAN總線汽車電子
    北匯信息POLELINK
    發(fā)布于 :2024年03月15日 14:14:40

    CAN總線汽車領(lǐng)域的應(yīng)用及挑戰(zhàn)

    作為種串行通訊協(xié)議,CAN總線初期專為汽車電子設(shè)備間的通信而開發(fā)。借助其高度可靠、實(shí)時(shí)響應(yīng)及靈活應(yīng)用等特質(zhì),該總線
    發(fā)表于 02-15 14:46 ?1379次閱讀