汽车CAN总线入门,通俗易懂

附件:文档原件github

CAN总线简介

CAN(Controller Area Network,控制器局域网络) 属于工业现场总线的范畴。最初CAN总线是由德国的Bosch(博世)
公司为汽车监测,系统控制而设计的。由于其高性能,高可靠性及独特的设计,CAN总线越来越受到人们的重视。它在汽车领域得到广泛的应用,世界上几乎所有的汽车制造厂商都在使用。
在这里插入图片描述

CAN总线简史

CAN总线的发展历史在很大程度上代表着车载网络从产生到普及的过程,以下为总线发展的5个关键阶段。
1983年,德国的Bosch公司开发设计了CAN总线协议。
1987年,第一块CAN控制器芯片由Intel公司设计成功。
1990年,第一辆应用CAN总线的量产车Mercedes S-Class出现。
1991年,CAN2.0发布。
1993年,CAN成为国际标准ISO 11898(高速应用) 和 ISO11519(低速应用)。

CAN总线的特点

CAN的规范从CAN1.2规范 (标准规范) 发展为兼容CAN1.2规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为扩展格式),目前应用的CAN器件大多符合CAN2.0规范。

CAN总线是一种串行通信协议总线,其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充,数据块编码,循环冗余检验,优先级判别等工作。

CAN总线的特点主要如下:
1)可以多主方式工作,网络上任意一个节点可以在任意时刻主动地向网络上地其他节点发送报文消息,不分主从,通信方式灵活。
2)采用无破坏性的基于优先级的逐位仲裁,标识符越小,优先级越高。若两个节点同时向网络上传送数据,优先级高的报文获得总线访问权,优先级低的报文会在下一个总线周期自动重发。
3)可以采用点对点,点对多及全局广播等传送方式收发数据。
4)直接通信距离可达到10Km(速率 5kb/s以下)。
5)通信速率最高可达1Mb/s (此时距离最长40米)。
6)节点数实际可达110个。
7)每帧信息都有CRC校验及其他检错措施,数据出错率极低。
8)通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可。
9)节点在错误严重的情况下,具有自动关闭总线的功能,以切断它与总线的联系,使总线上的其他操作不受影响。

CAN的两种标准介绍

CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。
ISO11898 和 ISO11519-2 标准对于数据链路层的定义相同,但物理层不同。

(1) 关于 ISO11898
ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。
目前, ISO11898 追加新规约后,成为 ISO11898-1 新标准。

(2) 关于 ISO11519
ISO11519 是通信速度为 125kbps 以下的 CAN 低速通信标准。
ISO11519-2 是 ISO11519-1 追加新规约后的版本。
下图表示 CAN 协议和 ISO11898 及 ISO11519-2 标准的范围。
在这里插入图片描述

(3)物理层的不同点
如上图所示, ISO11898 和 ISO11519-2 在 CAN 协议中物理层的标准有所不同。 CAN 协议的物理层如下图所示,定义了三个子层, ISO11898 和 ISO11519-2 在物理层中的 PMA 层和 MDI 层有所不同。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CAN总线网络结构

CAN总线网络为半双工总线(同一时刻只能接收和发送数据)。

1,闭环总线网络
在这里插入图片描述
1)概述
can闭环通讯网络是一种遵循ISO11898标准的高速,短距离网络,它的总线最大长度40米,通信速度最高1Mbps,总线的两端各要求有一个120Ω的电阻
2)工作流程
->节点1的can控制器发送数据,通过CAN_Tx线传输至CAN收发器1
-> 差分成CAN高和CAN低两种信号至can总线上
-> 通过数据帧的参数传输至指定的节点N的收发器
-> 通过节点N的CAN_Rx传输至节点N的控制器解析

2,开环总线网络
在这里插入图片描述
1)概述
can开环总线网络是遵循ISO11519-2标准的低速,远距离网络,最大传输距离1KM,最高传输速率125kbps,两根线是独立的,不形成环路,要求每根总线上各串联个2.2千欧的电阻

2)工作流程
->节点1的can控制器发送数据,通过CAN_Tx线传输至CAN收发器1
-> 差分成CAN高和CAN低两种信号至can总线上
-> 通过数据帧的参数传输至指定的节点N的收发器
-> 通过节点N的CAN_Rx传输至节点N的控制器解析

那么!数据是以怎样的形式传输的呢?传输过程中数据是否会收到干扰?下面接着解答

数据是以差分信号传输的,差分信号又称为差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,需要两根信号线,这两个信号线的振幅相等,相位相反,通过两根信号线的电压差值来表示逻辑0和逻辑1
在这里插入图片描述
优点:
1)抗干扰能力强,当外界存在噪声干扰时,几乎会同时耦合到两条信号线上, 而接收端只关心两个信号的差值,所以外界的共模噪声可以被完全抵消。

2)能有效抑制它对外界的电磁干扰,同理,由于两根信号的极性相反,它们对外辐射的电磁场可以相互抵消,耦合的越紧密,泄放到外界的电磁能量越少。

3)时序定位精确,由于差分信号的开关变化是位于两个信号的交点,而不像普通单端信号依靠高低两个阈值电压判断,因而受工艺,温度的影响小,能降低时序上的误差,同时也更适合于低幅度信号的电路。

4)由于差分信号线具有这些优点,所以在USB协议,485协议,以太网协议及CAN协议的物理层中,都使用了差分信号传输。

CAN协议对它使用的CAN_High和CAN_Low表示的差分信号做了规定:
以高速CAN为例,当表示逻辑1时(隐性电平),CAN_High和CAN_Low线上的电压均为2.5V,即他们的电压差是0V;而表示逻辑0时(显性电平),CAN_High的电平是3.5V,CAN_Low的电平是1.5V,即电压差是为2V…
在这里插入图片描述

CAN协议层

-规定了数据通讯逻辑
1,CAN的报文种类及结构(主要讲数据帧)
数据帧以一个显性位(帧起始SOF,逻辑0)开始,以7个连续的隐性位(帧结束EOF,逻辑1)结束。
在它们之间,分别有仲裁段,控制段,数据段,CRC段和ACK段。

在这里插入图片描述
下面一起来拆分数据帧

1)数据帧-帧起始(SOF段)
在这里插入图片描述
SOF信号只有一个数据位,是一个显性电平,它用于通知各个节点将有数据传输,其他节点通过帧起始信号的电平跳变沿来进行硬同步。

2)数据帧-仲裁段
(当IDE为0时,表示标准标准格式帧。为1时,表示扩展帧)
在这里插入图片描述
当同时有两个报文被发送时,总线会根据仲裁段的内容决定哪个数据包能被传输。
在这里插入图片描述
仲裁段ID的优先级也影响着接收设备对报文的反应。因为在CAN总线上数据是以广播的形式发送的,
所有连接在CAN总线的节点都会收到所有其他节点发出的有效数据,因而CAN控制器大多具有根据ID过滤报文的功能,
它可以控制自己只接收某些ID的报文。

3)数据帧-RTR,IDE,SRR
在这里插入图片描述
当RTR=逻辑0时,表示数据帧;=逻辑1时,表示遥控帧。
当IDE=0时,表示标准帧,1表示扩展帧。

4)数据帧-控制段
在这里插入图片描述
在控制段中的r1和r0为保留位,默认设置为显性位。它最重要的是DLC段(Data Length Code),数据长度码,它由四个数据位组成,用于表示本报文中的数据段含多少个字节,DLC段表示的数字是0~8 (因为数据段的大小是0到8字节大小)。

5)数据帧-数据段
在这里插入图片描述
数据段为数据帧的核心内容,它是节点要发送的原始信息,由0到8字节组成。

6)数据帧-CRC段
在这里插入图片描述

为了保证报文的正确传输,CAN的报文包含了一段15位的CRC校验码,一旦接收节点算出的CRC码和接收到的CRC码不同,则它会向发送节点反馈错误信息,利用错误帧请求它重新发送报文。CRC部分的计算一般由CAN控制器硬件完成,出错时的处理则由软件控制最大重发数。 在CRC校验码之后,有一个CRC界定符,它是隐性位,主要是把CRC校验码与后面的ACK段间隔开。

7)数据帧-ACK段
在这里插入图片描述
ACK段包括一个ACK槽位和ACK界定符位。类似I2C总线,在ACK槽位中,发送节点发送的是隐性位,而接收节点则在这一位中发送显性位以应答。在ACK槽和帧结束之间由ACK界定符间隔开。

8)数据帧-EOF段
在这里插入图片描述

CAN波特率和位同步

由于CAN属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点之间使用约定好的波特率进行通讯,特别地,CAN还会使用位同步的方式来抗干扰,吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常。

位时序分解
为了实现位同步,CAN协议把每一个数据位的时序分解成SS段,PTS段,PBS1段,PBS2段,这四段的长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是Tq,而一个完整的数据位有8~25个Tq组成。

在这里插入图片描述

  • 20
    点赞
  • 125
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
### 回答1: CAN总线是一种控制器区域网络,是一种高效、可靠的数据通信技术。它主要由CAN总线控制器、CAN总线收发器和CAN总线电缆组成。 首先,CAN总线控制器是控制CAN总线操作的主要设备,它有存储器、时钟和处理器。它的主要功能是协调和控制CAN总线上的数据传输,包括制定传输协议、管理总线通信速率等。 其次,CAN总线收发器是把CAN控制器发出的数字信号转换成模拟信号,并将模拟信号传输到CAN总线上。同时,它也能够接收CAN总线上的模拟信号,并将其转换成数字信号,传输给CAN控制器处理。 最后,CAN总线电缆则用于连接CAN控制器和其他CAN设备,传输数据信号。它主要由2线电缆组成,其中一个线路为CANL,另外一个为CANH。CANL和CANH之间的差分信号传输技术使得CAN总线具有高抗干扰能力。 总之,CAN总线是一种可靠、高效的数据通讯技术,能够在工业、汽车、航空等领域得到广泛应用。在硬件方面,它由CAN总线控制器、CAN总线收发器和CAN总线电缆组成,具有高抗干扰能力和可靠性。 ### 回答2: CAN总线是一种串行通信协议,可以用于不同设备之间的数据传输,如汽车、工业控制和机器人等。在CAN总线系统中,每个设备都连接到一个总线上,并可以通过该总线相互通信。本文将介绍CAN总线入门知识,重点是硬件部分。 硬件部分介绍: 1. CAN总线结构:CAN总线有两条线路:CAN高和CAN低,共享一个共同的地线。CAN高和CAN低之间的高低电平差值表示数字信号,可以传输2个比特的信息。一个CAN总线系统需要至少两个设备,并且每个设备都要连接到CAN总线。 2. CAN总线终端:为了确保在CAN总线上的数据传输正常,必须在每个总线的两端增加终端电阻。CAN总线终端是一个电阻,用于控制CAN总线信号的反射和抑制。终端电阻的值必须与总线特性相匹配才能正常工作。 3. CAN节点:每个CAN节点可以是实际硬件设备,例如传感器,控制器,驱动器,或者是在计算机上运行的软件驱动程序。每个节点都有一个唯一的标识符,用于标识节点之间的通信。 4. CAN控制器:CAN控制器是CAN节点的核心部分。它负责管理CAN总线和实际通信。控制器监测总线上的数据,接受和发送信息。CAN控制器还负责筛选通过CAN总线传输的数据,根据唯一的标识符将数据发送到正确的节点。 5. CAN总线传输速率:CAN总线的传输速率是由bitrate定义的。CAN总线常用的bitrate有125 Kbps, 250 Kbps, 500 Kbps, 1Mbps等等。bitrate的选择需要根据应用场景和总线上节点数量决定。通常来说,总线节点数量越多,bitrate就要越低。 6. CAN总线容错:CAN总线硬件部分具有出色的错误检测和纠正功能,采用一种叫做CRC循环冗余校验的错误检查算法。CRC可以检测到这些错误,如位翻转,位漏停,位插入和消失。因此,CAN总线系统具有很高的容错性,即使在信号受到干扰或噪声的情况下,总线仍然可以正常运行。 以上就是CAN总线入门(硬件部分)的一些基本概念和知识。CAN总线系统具有很多优点,如快速和可靠的数据传输,巨大的网络容量和良好的容错性,因此广泛应用于不同的领域。对于初学者来说,掌握CAN总线的硬件部分至关重要。通过了解CAN总线的基础知识,您可以更好地理解CAN总线的更高级功能和应用。 ### 回答3: CAN总线是一种串行通信协议,可用于控制高速网络中的设备通信。它是一种实时网络协议,最初被设计用于汽车工业中的控制单元之间进行通信。 CAN总线的硬件部分主要包括两个重要组件:CAN控制器和CAN传输媒介。 CAN控制器是管理CAN总线通信的核心组件,它是一个集成电路芯片,主要负责CAN总线中的数据传输、消息处理、错误检测和自动重发等功能。CAN控制器通常包括三部分:收发器、协议处理器和数据收发缓冲区。 CAN传输媒介是CAN总线中用于传输数据的电缆,通常使用的是双绞线或者双屏蔽电缆。CAN总线分为两种类型:低速CAN总线和高速CAN总线。低速CAN总线的最高传输速率是125kbps,高速CAN总线的最高传输速率是1Mbps。 此外,还有与CAN总线相关的其他重要硬件组件,如CAN总线分配器、终端电阻、电源过滤器和电源隔离器。CAN总线分配器可以用于将多个CAN控制器连接到同一个CAN总线上,终端电阻用于确定CAN总线的物理结构,电源过滤器可防止CAN总线受到干扰,电源隔离器则可以隔离CAN总线和其他电源设备。 总之,在CAN总线的硬件部分中,CAN控制器和CAN传输媒介是最核心的部件,其它硬件组件则是配合这两部件共同工作的。理解了这些硬件组件的作用,就能更好的进行CAN总线的开发和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&春风有信

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值