CAN总线通信

最近突然用到了所以大致又复习了一下 写一写总结

CAN 总线的发展

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络

  • 上世纪八十年代 由Bosch公司研发
  • 目的是为了提高可靠性 安全性 和燃油效率
  • 目前的版本为CAN 2.0 发布于1991
  • CAN-FD (flaxable datarate)于2012年发布
  • 目前CAN通信是汽车行业中非常重要的通信协议
    在这里插入图片描述
    在这里插入图片描述
    CAN总线与非CAN总线架构对比☝️☝️☝️☝️☝️☝️☝️☝️☝️

CAN总线的优点

传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。近些年来,CAN控制器价格越来越低。

Ø 低成本:ECUs通过单个CAN接口进行通信,布线成本低。

Ø 高集成:CAN总线系统允许在所有ECUs上进行集中错误诊断和配置。

Ø 可靠性:该系统对子系统的故障和电磁干扰具有很强的鲁棒性,是汽车控制系统的理想选择。

Ø 高效率:可以通过id对消息进行优先级排序,以便最高优先级的id不被中断。

Ø 灵活性:每个ECU包含一个用于CAN总线收发芯片,随意添加CAN总线节点。

CAN总线网络拓扑图及终端电阻的作用

在这里插入图片描述

一般在CAN总线的终端两端都会匹配两个终端电阻 而一般根据各种规范手册里的规定基本都是120Ω或者两个60Ω的电阻
终端电阻的作用主要有:
1、提高抗干扰能力,让高频低能量的信号迅速走掉

2、确保总线快速进入隐性状态,让寄生电容的能量更快走掉;

3、提高信号质量,放置在总线的两端,让反射能量降低。

另外有时候为了考虑EMC等因素 会对总线的拓扑结构做一些改变优化
主要有以下几种:

(1)双终端总线。标准的双终端总线网络拓扑结构,在总线的两端分别接一个120Ω终端电阻,总线总阻值为60Ω。该拓扑结构接线简单,可靠性好,传输距离远,是目前电梯上最常用的总线拓扑结构。

(2)单终端总线。CAN总线匹配的最简单方法就是在总线上并一个60Ω的终端电阻。这种拓扑下,总线电阻为60Ω,阻抗匹配。但在这种拓扑结构中,很多节点实际上都不在总线而在支线上,其传输距离受限,这种拓扑结构的总线长度只有标准双终端总线接法总线长度的50%。

(3)分离总线。分离总线就是在双终端总线的基础上,将单个终端电阻分成两个阻值相同的电阻,在两电阻之间通过一个电容接地,分离总线并不改变总线的DC特性。分离总线有两种接地方式:1)将两个终端均采用分离形式并单独接地。这种拓扑结构可以优化通讯的高频性能。但是,将两个终端电阻都接地以后,可能会通过地电流形成干扰性的回路电流。在这种情况下可以考虑2)只将一个终端电阻接地,这种接法则在中频到低频的范围内有更好的传输特性。这种总线结构接线复杂,一般只在特定情况下使用。

(4)多终端总线。在某些应用场合,如需要额外增加一个分支时,需要采用不同于总线结构的拓扑结构。这时候的拓扑结构就类似于星型拓扑结构,在这种情况下,可以采用多终端接法。多终端结构就是把终端电阻(60Ω)分成两个以上的电阻,总线上的电阻仍保证为60Ω。图4所示是3个分支的星形拓扑结构,在这种情况下,每个分支都可以看出一个终端,每个终端电阻180Ω。
  在这种拓扑结构下,如果去除其中一个终端,总线上的的阻抗将不再完全匹配。但是,在短距离传输情况下仍可以正常使用。因此,这种拓扑情况下,CAN总线通讯距离将远小于双终端拓扑结构。

CAN信号的表示

CAN总线信号示例
CAN总线采用两条双绞线CAN_HIGH和CAN_LOW进行通信 当没有数据进行通信时 两条线上的电压都为2.5 ,当有信号发送时,CAN_High的电平升高1V,即3.5V,CAN_Low的电平降低1V,即1.5V
信号分为显性隐性
显性: 为逻辑 0 上图中Dominant段 这个时候CAN_H -CAN_L > 0.9V
显性: 为逻辑 1 上图中Recessivet段 这个时候CAN_H -CAN_L < 0.5V

CAN数据传输

CAN总线数据分为四种:

  1. 数据帧
  2. 遥控帧
  3. 错误帧
  4. 溢出帧

1)数据帧

数据帧共有7个段 分别是 :起始位 仲裁段 控制段 数据段 CRC段 ACK段 结束位

起始位: 一个Bit 显性位(0)
仲裁段: 解决总线竞争,分标准格式和拓展格式 有一位RTR位用来区别是发送还是接收
- 标准格式仲裁段由11Bit组成ID
- 拓展格式仲裁段由29Bit组成ID
- CAN总线通过比较 ID 进行仲裁 帧ID越小 优先级就越高
控制段: 控制段也分标准帧和拓展帧两种情况
- 标准格式:IDE(识别是否为拓展 0标准/1拓展)+R0(保留)+DLC(数据段长度4bit 大小0~8)
- 拓展格式:R0+R1(R0R1保留位用隐性填充)+DLC
数据段: 0~8 Byte (0.0-7.7)
CRC段: 用于数据检错 CRC值 + CRC界定符
ACK段: 用于接收节点 如果前面接收都没出错 则显性表示正确 如果是发送节点则用隐性填充
结束段: 7个隐性位

2)遥控帧

与数据帧基本一致 少了数据段 主要用于向远端节点发送数据请求 RTR位为1 由ID小的优先权限高的原则可知 当同一时间同一节点收发同时发生时 因为数据帧的RTR位为显性(0)所以ID比 遥控帧小 优先发送 数据帧 发送遥控帧的节点则进入只听模式等待

3)过载帧

当某一节点没有做好接受下一帧数据的时候 则发送过载帧

4)错误帧

当发生错误时 节点会发送错误帧

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CAN(Controller Area Network)总线通信协议是一种用于多个节点之间进行高速数据传输的协议。它最早是由德国博世公司于1986年开发的,用于汽车电子系统中的数据通信CAN总线通信协议的主要特点是高可靠性、实时性和抗干扰能力强。 CAN总线通信协议采用了主从节点的结构,主节点负责发送命令和控制数据的传输,从节点负责接收和执行主节点发送的命令。CAN总线通信协议的物理层采用了双绞线传输数据,可以实现较长的传输距离。 CAN总线通信协议的数据帧包括四个基本部分:帧起始符(SOF)、标识符(ID)、数据(Data)和校验码(CRC)。其中,标识符用于区分不同的帧,数据用于传输实际的命令和控制数据,校验码用于检验数据的正确性。 CAN总线通信协议具有以下优点:首先,CAN总线通信协议可以支持多个节点的同时通信,实现了高效的数据传输;其次,CAN总线通信协议具有较高的可靠性,即使在部分节点故障的情况下,不会影响整个系统的工作;再次,CAN总线通信协议具有较好的抗干扰能力,可以应对复杂的工作环境;最后,CAN总线通信协议具有实时性能,可以满足对数据传输时延较高的应用需求。 总之,CAN总线通信协议是一种可靠、高效的数据通信协议,广泛应用于汽车电子系统以及其他需要多个节点间进行高速数据传输的领域。 ### 回答2: CAN(Controller Area Network)总线通信协议是一种广泛应用于车载网络和工业自动化领域的串行通信协议。CAN总线通信协议采用了一种分布式通信结构,在一个网络中连接多个设备,并且允许这些设备在同一时间进行数据传输。 CAN总线通信协议的主要特点是高可靠性和实时性。它采用了差分信号传输和抗干扰技术,能够在恶劣的环境中保证数据的稳定传输。同时,CAN总线通信协议使用了先进的冲突检测与回避机制,能够实现多个设备同时发送消息而不发生冲突。 CAN总线通信协议还具有灵活的网络拓扑结构和高带宽的传输能力。它允许将多个设备通过总线连接起来,形成一个分布式的网络。同时,CAN总线通信协议支持多种数据传输速率,从几千bps到几百万bps都能满足不同领域的需求。 CAN总线通信协议在工业控制和汽车领域中有广泛的应用。在工业控制领域,CAN总线通信协议可以连接各种传感器和执行器,实现对生产过程的监控和控制。在汽车领域,CAN总线通信协议被广泛应用于车辆的电子控制系统,比如发动机管理、底盘控制和信息娱乐系统等。 总而言之,CAN总线通信协议是一种高可靠性、实时性和灵活性强的串行通信协议,应用于车辆和工业自动化领域,为各种设备之间的数据传输提供了可靠的解决方案。 ### 回答3: CAN总线通信协议是一种用于微控制器和其他设备之间进行实时通信的标准协议。CAN(Controller Area Network)总线是一种串行通信协议,通常用于汽车、工业控制和其他领域中的网络通信CAN总线通信协议通过一对互补的差分信号线来传输数据。它采用了CSMA/CD(载波监听多点冲突检测)的访问机制,允许多个设备共享同一总线,以实现实时通信和数据交换。 对于CAN总线通信协议的控制和管理,使用一种称为CAN帧的数据包来进行。CAN帧由四个主要部分组成:起始位、标识符、数据和校验位。起始位用于同步总线,标识符用于识别消息的发送者和接收者,数据部分包含要传输的实际数据,校验位用于检测传输过程中的错误。 CAN总线通信协议具有许多优点。首先,它具有高度可靠性和实时性,能够在多个设备之间进行快速、准确的数据传输。其次,CAN总线支持多主机结构,允许多个设备同时发送和接收数据。此外,CAN总线协议还具备较低的成本和复杂性,易于集成到各种应用中。 在实际应用中,CAN总线通信协议被广泛应用于汽车电子系统、工业自动化、医疗设备等领域。它可以用于车辆的发动机控制、底盘控制、仪表盘显示等方面,也可以用于工业控制系统中的传感器和执行器之间的通信。 总而言之,CAN总线通信协议是一种高效、可靠的数据通信协议,适用于各种实时要求较高的应用场景。它通过使用CAN帧来传输数据,具有多主机结构、低成本和复杂性的优点,被广泛应用于汽车、工业控制等领域。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值