CAN 总线超过 1Mbps 带宽的限制因素是什么?

电器工程 能够
2022-01-26 19:07:30

为什么CAN波特率不能超过1Mbps

3个回答

控制器局域网物理层要求

CAN 终端

CAN 是一种开放式收集器技术——否则该协议将无法工作。这意味着 CAN 收发器的隐性状态不是主动驱动的。当总线上主动驱动的显性位转换为非驱动的隐性位时,终端电阻与收发器输入电容和电缆电容一起产生 RC 时间常数放电。对于高于 CAN 的 1Mbps 的信号传输速率,需要一种在两种状态下主动驱动总线的技术,例如 RS-485,以促进高速信号传输速率所需的总线转换。

最终,这个问题的答案是 CAN 协议是如何在物理层面实现的。更改该协议并可以使用更高的数据速率。

了解 Microchip 的 CAN 模块位时序

... CAN 协议实现了一种非破坏性的按位仲裁方案,允许多个节点对总线的控制进行仲裁。因此,所有节点都需要在相同的比特时间内检测/采样比特。传播延迟和振荡器容差之间的关系会影响 CAN 数据速率和总线长度。

在此处输入图像描述

CAN 总线两端的两个主控器必须能够通信并仲裁哪一个拥有总线,而每个主控器同时在总线上。

如果总线长度为 30 m,则信号在总线上传播所需的时间为:

tBUS=30 m@5.5 ns/m=165 ns

假设所有器件的输入比较器延迟为 = 40 ns,输出驱动器延迟为 = 60 ns。tCMPtDRV

物理总线上的往返时间将是:

tPROP=2(tBUS+tCMP+tDRV)=2(165 ns+40 ns+60 ns)=530 ns
TQ=530 ns/6=88.33 ns
tBIT=10×TQ=883.3 ns
f=1/tBIT=1/883.3 ns=1.13 MHz

最大速率由总线长度、线路电容、连接节点和协议选择的驱动器决定。原则上,在 30 m 处,如果一切都完美,CAN (ISO 11898) 可以达到 1.13 Mbps。

总线越长,数据速率越慢。但是更短的巴士意味着更高的费率。CAN 比特率与总线长度:

CAN 比特率 VS。 巴士长度

两个参考文件都对此进行了更详细的介绍。


CAN (ISO 11898) 可以使用基于 80 年代的协议以 1 Mbps 的速度传输多达 8 个字节。对于当今的车辆,需要传输更多数据(64 字节数据包),但在 1 Mbps 时,64 字节会占用很大的时隙,可能会延迟重要数据。

CAN FD(灵活数据速率)是对原始 CAN 总线协议 (ISO 11898-1) 的扩展。它旨在在现有的 CAN 总线上运行并最终取代 CAN。

协议从 CAN 1 Mbps(500 kbps 等)开始,可能存在多个 CAN 和 CAN FD 主设备之间的仲裁过程,但当 CAN FD 主设备获得总线时,数据传输速率加速到 5 Mbps 到 CAN FD奴隶。在这个速率下,64 字节可以在比 8 字节 CAN 1 Mbps 数据包更短的时间内传输。这意味着与现有 CAN 传输不存在时序冲突。一旦 CAN FD 主机放弃总线,任何 CAN 或 CAN FD 主机都可以获取总线。

来自CAN FD 解释 - 简单介绍(2019 年)

CAN FD 协议

真正的答案取决于 40m CAN 总线的 1 Mbps 仲裁过程,但是一旦获得总线,带宽可以根据总线长度、线路电容、连接节点的数量和驱动器来加速。CAN FD 带宽是经典 CAN 带宽的 3-8 倍。

它可以。满足CAN-FD

为什么需要新协议?CAN 是一种具有仲裁和错误报告功能的多主总线。这些功能根据电缆长度限制数据速率,因为信号在两个最远节点之间进行往返需要一定的时间。这与向后兼容性要求一起导致了 CAN-FD。

1 Mbps 的经典 CAN 总线长度限制为 40 米。(实际上,由于杂散电容,我认为它会更低。)在 100 Mbps 时,您甚至可以拥有半米的可用总线长度,这对于汽车和工业应用来说是不够的。

这是因为 CAN 2.0B 标准为了降低硬件成本并没有规定更高的标准,仍然满足标准的各种要求(如距离和抗噪性)。这不是技术障碍。

该标准是这样编写的,可能是因为他们认为预期应用程序不需要额外的速度,并且当功能未被充分利用时,不必要地指定更高的速度会增加支持该标准的所有硬件的成本。

如果标准是这样写的,那么很少有 IC 制造商会费心试图超越它,因为没有意义。这并不是真正的技术障碍。