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

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

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

什么是CAN總線協(xié)議?CAN總線協(xié)議具體分析!

Q4MP_gh_c472c21 ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-10-16 08:48 ? 次閱讀

很難找到一篇能夠適合初學(xué)者CAN總線原理的文章,因此小編本著通俗易懂的原則編寫此文!

本文說(shuō)的CAN即是一種總線,也是一種協(xié)議。因此,我們常聽(tīng)見(jiàn)CAN總線,也常聽(tīng)見(jiàn)CAN協(xié)議。

CAN協(xié)議和CANOpen協(xié)議是兩套不同的協(xié)議。從軟硬件層次來(lái)劃分,CAN協(xié)議屬于硬件協(xié)議,而CANOpen屬于軟件協(xié)議。

什么是CAN總線?

CAN總線應(yīng)用于汽車,實(shí)現(xiàn)電子控制器傳感器之間的通信

l高可靠性、低成本的通信協(xié)議。

l最初由Robert Bosch于1986年開(kāi)發(fā)。

l主要應(yīng)用于汽車、卡車、拖拉機(jī)、工業(yè)機(jī)器人。

想象一下,一輛汽車就像一個(gè)人:

?CAN總線是神經(jīng)系統(tǒng),使身體各部分之間的通信得以實(shí)現(xiàn)。

?ECU通過(guò)CAN總線連接,該總線相當(dāng)于一個(gè)中央網(wǎng)絡(luò)系統(tǒng)。

什么是ECU?

l在汽車CAN總線系統(tǒng)中,ECUs可以是發(fā)動(dòng)機(jī)控制單元、安全氣囊或音頻系統(tǒng)。

l一輛現(xiàn)代汽車最多可以有70輛ECUs。

CAN總線5大特性

l低成本:ECUs通過(guò)單個(gè)CAN接口進(jìn)行通信,布線成本低。

l高集成:CAN總線系統(tǒng)允許在所有ECUs上進(jìn)行集中錯(cuò)誤診斷和配置。

l可靠性:該系統(tǒng)對(duì)子系統(tǒng)的故障和電磁干擾具有很強(qiáng)的魯棒性,是汽車控制系統(tǒng)的理想選擇。

l高效率:可以通過(guò)id對(duì)消息進(jìn)行優(yōu)先級(jí)排序,以便最高優(yōu)先級(jí)的id不被中斷。

l靈活性:每個(gè)ECU包含一個(gè)用于CAN總線收發(fā)芯片,隨意添加CAN總線節(jié)點(diǎn)。

CAN總線發(fā)展史

l未出現(xiàn)前:汽車ECUs依靠越來(lái)越復(fù)雜的點(diǎn)對(duì)點(diǎn)布線。

l1986年:Bosch公司開(kāi)發(fā)了CAN總線協(xié)議作為汽車電子解決方案,并在SAE大會(huì)上發(fā)布。

l1991年:Bosch公司發(fā)布了CAN2.0,包涵CAN 2.0A (11 位) 和CAN 2.0B (29 位)。

l1993年:CAN總線列入標(biāo)準(zhǔn)(ISO 11898)。

l2012年:Bosch公司發(fā)布了CAN FD 1.0

l今天:幾乎每一輛汽車都有CAN總線系統(tǒng),它廣泛應(yīng)用于卡車、公共汽車、工業(yè)車輛、船舶、飛機(jī)和工業(yè)自動(dòng)化。

CAN總線網(wǎng)絡(luò)

CAN總線網(wǎng)絡(luò)主要掛在CAN_H和CAN_L,各個(gè)節(jié)點(diǎn)通過(guò)這兩條線實(shí)現(xiàn)信號(hào)的串行差分傳輸,為了避免信號(hào)的反射和干擾,還需要在CAN_H和CAN_L之間接上120歐姆的終端電阻,但是為什么是120歐姆呢?那是因?yàn)殡娎|的特性阻抗為120歐。

CAN收發(fā)器

CAN收發(fā)器的作用是負(fù)責(zé)邏輯電平和信號(hào)電平之間的轉(zhuǎn)換。

即從CAN控制芯片輸出邏輯電平到CAN收發(fā)器,然后經(jīng)過(guò)CAN收發(fā)器內(nèi)部轉(zhuǎn)換將邏輯電平轉(zhuǎn)換為差分信號(hào)輸出到CAN總線上,CAN總線上的節(jié)點(diǎn)都可以決定自己是否需要總線上的數(shù)據(jù)。具體的管教定義如下:

CAN信號(hào)表示

CAN總線采用不歸零碼位填充技術(shù),也就是說(shuō)CAN總線上的信號(hào)有兩種不同的信號(hào)狀態(tài),分別是顯性的(Dominant)邏輯0和隱形的(recessive)邏輯1,信號(hào)每一次傳輸完后不需要返回到邏輯0(顯性)的電平。

CAN收發(fā)器有TXD,RXD是與CAN控制器連接的。發(fā)送器接到網(wǎng)絡(luò)的是CL和CH。CL與CH是差分電路。CAN網(wǎng)絡(luò)上是用CL于CH的電壓差來(lái)表示邏輯“0”和邏輯“1”。所以CAN網(wǎng)絡(luò)中只能單向傳輸。

CAN總線通信協(xié)議

協(xié)議格式

如何解析

下面是使用CANLoggerX000的汽車的一個(gè)示例日志文件:

# Logger type: CANLogger2000

# HW rev: 6.xx

# FW rev: 5.51

# Logger ID: ID0001

# Session No.: 9

# Split No.: 3

# Time: 20170508T064128

# Value separator: ";"

# Time format: 4

# Time separator: ""

# Time separator ms: ""

# Date separator: ""

# Time and date separator: "T"

# Bit-rate: 500000

# Silent mode: false

# Cyclic mode: false

Timestamp;Type;ID;Data

08T064254150;0;34d;1003fafa000d00ff

如果我們查看上面的原始CAN總線數(shù)據(jù)樣本,可能會(huì)注意到:

原始的CAN總線數(shù)據(jù)沒(méi)有意義!

這是因?yàn)槲覀冃枰獙?shù)據(jù)轉(zhuǎn)換成按比例計(jì)算的工程值——也就是人類可讀的形式。

要做到這一點(diǎn),我們需要知道一些事情:

例如,在34d中的64位數(shù)據(jù)中,可能會(huì)有3個(gè)不同參數(shù)的數(shù)據(jù),每個(gè)參數(shù)都有一個(gè)特定的起始點(diǎn)和位長(zhǎng)。

針對(duì)這3個(gè)不同參數(shù)的數(shù)據(jù),我們需要要知道如何解碼:

每個(gè)參數(shù)都需要偏移量和刻度值

[數(shù)據(jù)值]=[偏移]+[刻度]x[原始數(shù)據(jù)值]

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

    關(guān)注

    57

    文章

    2754

    瀏覽量

    463717
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2881

    瀏覽量

    88090

原文標(biāo)題:一文全面了解嵌入式工程師常用的CAN總線協(xié)議

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CAN總線協(xié)議簡(jiǎn)介

    CAN 總線協(xié)議已經(jīng)成為汽車計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線,并且擁有以CAN 為底層協(xié)議
    發(fā)表于 08-02 12:29 ?2019次閱讀

    CAN總線協(xié)議知識(shí)科普

    本文說(shuō)的CAN即是一種總線,也是一種協(xié)議。因此,我們常聽(tīng)見(jiàn)CAN總線,也常聽(tīng)見(jiàn)CAN
    發(fā)表于 09-15 12:47 ?3307次閱讀

    淺談CAN FD總線協(xié)議幀格式

    假期更新了一文搞懂CAN總線協(xié)議幀格式,CAN FD總線協(xié)議怎能錯(cuò)過(guò)?本篇博文將講解
    發(fā)表于 10-14 12:49 ?3452次閱讀
    淺談<b class='flag-5'>CAN</b> FD<b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>幀格式

    CAN總線知識(shí)】全面了解CAN總線協(xié)議

    提及總線,總是讓人聯(lián)想到那些交錯(cuò)在一起的計(jì)算機(jī)電線。那么這些電線如何發(fā)揮功效呢?這還得配合總線協(xié)議的管理來(lái)使用。那么今天我們介紹的就是CAN總線
    的頭像 發(fā)表于 10-15 08:05 ?1471次閱讀
    【<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>知識(shí)】全面了解<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>

    CAN總線協(xié)議分析

    `CAN總線接口協(xié)議分析通過(guò)OSC482L進(jìn)行CAN總線接口的
    發(fā)表于 08-19 09:27

    CAN總線的淺析CANopen協(xié)議

    本文分析CAN 總線的一些特點(diǎn)以及在國(guó)內(nèi)的的應(yīng)用狀況,提出了引入國(guó)際上通用的CAN 總線高層應(yīng)用協(xié)議
    發(fā)表于 03-27 15:37 ?104次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的淺析CANopen<b class='flag-5'>協(xié)議</b>

    CAN總線通信協(xié)議分析和實(shí)現(xiàn) CAN總線通信協(xié)議以及其實(shí)現(xiàn)方法

    CAN總線通信協(xié)議分析和實(shí)現(xiàn) CAN總線通信協(xié)議
    發(fā)表于 09-04 08:45 ?40次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信<b class='flag-5'>協(xié)議</b>的<b class='flag-5'>分析</b>和實(shí)現(xiàn) <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信<b class='flag-5'>協(xié)議</b>以及其實(shí)現(xiàn)方法

    CAN總線定義與CAN協(xié)議的基本概念

    CAN總線是什么?CAN總線定義是什么? CAN(Controller Area Network)是ISO國(guó)際標(biāo)準(zhǔn)化的串行通信
    發(fā)表于 12-27 13:40 ?3.2w次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>定義與<b class='flag-5'>CAN</b><b class='flag-5'>協(xié)議</b>的基本概念

    CAN總線通信協(xié)議分析實(shí)現(xiàn)

    CAN總線通信協(xié)議,才能完成數(shù)據(jù)準(zhǔn)確可靠的傳輸。目前,也存在一些CAN總線產(chǎn)品開(kāi)發(fā)公司定制的協(xié)議
    發(fā)表于 01-08 15:01 ?9次下載
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>通信<b class='flag-5'>協(xié)議</b><b class='flag-5'>分析</b>實(shí)現(xiàn)

    CAN總線協(xié)議是什么?CAN總線協(xié)議有哪些?CAN總線協(xié)議知識(shí)分析

    本文說(shuō)的CAN即是一種總線,也是一種協(xié)議。因此,我們常聽(tīng)見(jiàn)CAN總線,也常聽(tīng)見(jiàn)CAN
    的頭像 發(fā)表于 10-03 19:53 ?7.5w次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>是什么?<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>有哪些?<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>知識(shí)<b class='flag-5'>分析</b>

    CAN總線協(xié)議教程|CAN報(bào)文分析

    CAN協(xié)議教程 介紹:CAN總線 CAN總線是廣播類型的總線
    發(fā)表于 04-03 15:32 ?1.4w次閱讀

    CAN總線通信協(xié)議

    CAN總線通信協(xié)議詳細(xì)如下。
    發(fā)表于 04-19 16:54 ?78次下載

    CAN總線協(xié)議CAN在工業(yè)控制中的應(yīng)用

    CAN總線協(xié)議CAN在工業(yè)控制中的應(yīng)用說(shuō)明。
    發(fā)表于 04-20 11:14 ?27次下載

    認(rèn)識(shí)CAN總線錯(cuò)誤 CAN總線錯(cuò)誤分析與解決

    認(rèn)識(shí)CAN 總線錯(cuò)誤的第一步就是了解認(rèn)識(shí)CAN 總線協(xié)議和它的具體功能,這樣才能更容易地理解
    發(fā)表于 08-14 15:18 ?6284次閱讀
    認(rèn)識(shí)<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>錯(cuò)誤 <b class='flag-5'>CAN</b><b class='flag-5'>總線</b>錯(cuò)誤<b class='flag-5'>分析</b>與解決

    什么是CAN總線協(xié)議?它有哪些特性和應(yīng)用?

    CAN總線協(xié)議(Controller Area Network,簡(jiǎn)稱CAN),是一種在汽車和工業(yè)自動(dòng)化領(lǐng)域廣泛應(yīng)用的串行通信協(xié)議。自1986
    的頭像 發(fā)表于 05-27 16:32 ?1330次閱讀