CAN2.0:

最高1Mbps(距离小于40m),最远可达10km(速率低于5Kbps)

CAN总线是可同时连接多个节点。节点数量理论上是没有限制的。但实际上节点数量受总 线时间延迟及电气负载的限制。降低通信速度,可连接的节点数增加;提高通信速度,则可 连接的节点数减少。

CAN-FD 协议(具有灵活数据率的 CAN):

数据比特率理论上是没有限制的,但实际上会受到所使用的收发器的电气特性和 总线结构的影响。

CAN-FD的比特率是可以切换的,如果开启了CAN-FD比特率切换功能,那么帧的 数据负载将以更高速度传输,而帧头将以较低速度传输。

CAN网络拓扑结构:

CAN总线由两条差分线CANH和CANL组成,各个节点通过较短的支线接入CAN总线.

各节点从通信协议而言是没有主从和地址区分的,每个节点均可以平等的收发数据.

在 CAN总线的两端各有一个120Ω的终端电阻,来做阻抗匹配,以减少回波反射。

CAN总线物理层特性:

在总线上,显性电平具有优先权,只要有一个节点输出显性电平,总线上即为 显性电平。

而隐形电平则具有包容的意味,只有所有的节点都输出隐性电平,总线上才为隐性电平。

帧类型:

其中数据帧和远程帧由用户控制收发.

错误帧、过载帧和间 隔帧是CAN总线上各节点硬件根据对应状态发送,用户不能也无需控制。

标准帧:

帧起始:为1bit显性位。由于CAN总线空闲时是隐性电平,帧起始的显性位用于提示总线上的节点 “一帧信息传输开始了”。

仲裁段:表示该帧优先级的段,包含标识符和帧类型(数据/远程帧)。

控制段:表示数据的字节数、标识符类型(标准/扩展标识符)及保留位的段。

数据段:数据,一帧可发送0~8个字节的数据(数据长度根据控制段的DLC决定)。

CRC段:发送节点将CRC计算区域(不包含填充位)进行CRC计算后放入CRC段发送。接收节 点也对CRC计算区域进行CRC计算,并与收到的CRC域进行对比,若CRC对比结果有误则向总 线发送错误帧,若对比结果正确则随后发送应答。

ACK段:含应答位(ACK SLOT)和应答间隔符(ACK DELIMITER)。发送节点在ACK段均发送隐性电 平;接收节点如果在接收过程中没有检测到错误,则在应答位输出1bit显性电平,以通知发送节点 “这帧数据被正确的接收了”。

帧结束:表示数据帧结束的段,为7bit隐性电平。

位填充:

由于CAN总线只有CANH/CANL两条差分线,没有CLK线来做同步,所以CAN是直接通过数据流 中间的跳变沿来做同步的。

而为了避免数据流中出现大段没有跳变沿的情况, CAN加入了“位填充”机制。

即发送器只要检测到位流里有5 个连续相同值的位,便自动在位流里插入一相反电平的填充位。

例 如,原始数据流为“0000000111110001…”,经过位填充后实际输出到CAN总线的数据流为 “000001001111100001…”

位填充的范围为帧起始(SOF)~CRC域(不含CRC间隔符)

位格式:

同步段(SYNC_SEG):同步段用于同步总线上不同的节 点。理想情况下,跳变沿出现在此 段。

传播段(PROP SEG):传播段用于补偿网络内的物理延时 时间。它是总线上输入比较器延时 和输出驱动器延时  总和的两倍。

相位缓冲段1,2(PHASE SEG1,2):相位缓冲段用于补偿边沿阶段的错误。这两个段可以通过重同步跳跃 加长或缩  短。

同步机制:

硬同步(HARD SYHCHRONIZATION):硬同步后,内部的位时间从同步段重新开始。因此,硬同步强迫由硬同步引起的沿处于重新开始的位 时间同步段之内。如图

重新同步跳转宽度(RESYHCHRONIZATION JUMP WIDTH):

由于CAN 是异步通信,没有统一时钟,靠每一位的边沿自己同步。当节点发现:边沿来得比预期早 / 比预期晚,

说明:对方时钟比你快,或对方时钟比你慢

这时 CAN 控制器会:
边沿来晚了 → 拉长 BS1
边沿来早了 → 缩短 BS2

重新同步的结果,使位段1 增长,或使位段2 缩短。位段增长或缩短的数量有一个上限,此上限由 重新同步跳转宽度给定。重新同步跳转宽度应小于或等于BSEG2段的长度。

仲裁机制:

只要总线空闲,任何单元都可以开始发送报文。如果2 个或2 个以上的单元同时开始传送报文,那 么就会有总线访问冲突。

通过对ID进行逐位仲裁可以解决这个冲突。仲裁的机制确保了报文和时间 均不损失。

当具有相同ID的数据帧和远程帧同时初始化时,数据帧优先于远程帧(叫远程的节点给自己发数据的帧)。

仲裁期间,每一 个发送节点都对发送位的电平与被监控的总线电平进行比较

如果电平相同,则这个节点可以继续发 送。

如果发送的是一“隐性”电平而监测到是一“显性”电平(见总线电平),那么该节点就失去了 仲裁,必须立即退出发送状态并转入接收状态。

错误处理机制:

错误类型:

位错误(Bit Error):单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合,则在此 位时间里检测到一个位错误。

位填充错误(Stuff Error):如果在使用一帧报文的位填充区域检测到6 个连续相同的位电平 时,将检测到一个位填充错误。CAN节点在接收状态会出现此类错误。

CRC 错误(CRC Error):CRC 序列包括发送器的CRC 计算结果。接收器计算CRC 的方法与发送器相同。如果计算结 果与接收到CRC 序列的结果不相符,则检测到一个CRC 错误。CAN节点在接收状态会出现 此类错误。

格式错误(Form Error):当一个固定形式的位场含有1 个或多个非法位,则检测到一个格式错误。例如在CRC间隔符/ACK 间隔符的位场检测到显性位,则会检测到格式错误。

应答错误(Acknowledgment Error):只要在应答位(ACK SLOT)期间所监测的位不为“显性”,则发送器会检测到一个应答错误。 CAN节点在发送状态会出现此类错误。

错误状态:

CAN节点检测到错误之后,根据不同状态和错误类型会对发送错误计数器(TEC[7:0])/接收错误计 数器(REC[7:0])进行加1或加8,每正确的发送/接收一 帧数据后,发送/接收错误计数器减1。因此发送/接收错误计数器值表明了CAN节点和网络的稳定程 度。

根据发送/接收错误计数器值,一个节点的状态会处于以下三种之一:

错误主动:“错误主动”的节点可以正常地参与总线通讯并在错误被检测到时发出主动错误标志(6个显性 位)。TEC<128且REC<128即为错误主动状态。

错误被动:“错误被动”的节点可参与总线接收和发送数据/远程帧。但检测到错误时只能发送错误被动标 志(6个隐形位)。255≥TEC>128且255≥REC>128即为错误被动状态。

离线:“离线”的节点相当于直接从CAN总线断开,不能收/发任何信息。TEC>255即为 离线状态。

CAN-FD协议介绍:

与 CAN 协议兼容:CAN-FD 节点能够发送/接收 CAN 2.0消息(依据 ISO 11898-1)

错误校验改进,基于最多21 位CRC 校验和域

消息优先次序

延迟时间保证

比特率配置灵活性

时间同步多播接收

系统范围内的数据一致性,每条信息最多 64 个字节

多主机

错误检测和信号传递

区分节点的暂时性错误和永久性故障并自动关闭问题节点

CAN-FD标准数据帧:

CAN-FD消息可划分三个阶段:

1,第一仲裁阶段

帧起始(SOF)

ID号和其他位,指示消息用途(提供或请求数据)、速度和格式配置(CAN2.0 或 CAN-FD)

2,数据阶段:

错误状态指示位(ESI)

数据长度代码(DLC),指示消息包含的数据字节数

用户想要发送的数据

校验循环冗余序列(CRC)

3,第二仲裁阶段

由总线上的其他节点发送的接受方的应答(ACK)(如果至少有一个成功接收到消息)

帧结束(EOF)

位格式:

Classic CAN2.0B 定义了高达1Mbit/s比特率,对于CAN-FD帧则没有固定限制,对于实际通信系 统,数据速率取决于所使用的收发器、所需的CAN总线拓扑结构和CAN控制器可实现时钟频率的限 制。

CAN-FD 可以被配置位任意比特率,仅受位时序和分频寄存器适当配置范围的限制。

Classic CAN2.0B 在整帧中以一个选定的比特率通信,与之相对的是,CAN-FD在帧的开头以“慢 速”(标称比特率)通信,在帧的中间切换至“快速”(数据比特率),之后再帧的结尾或者检测到错 误之后切换至“慢速”(标称比特率)。

在CAN-FD帧的比特率切换有效(BRS=1)的情况下,对于CAN网络中的所有节点,需要具有相同 确切位置的采样点。

如果数据比特率远远大于标称比特率,那么较早或较晚的采样点可能会导致快速数据比特率下的 错误采样。所以在标称比特率和CAN-FD数据比特率中, 建议在CAN通信网络中,所有的CAN-FD帧节点采用相同的时序参数。

相较于CAN2.0的改进和优势

开发CAN-FD是为了响应对更高带宽的通信网络的需求。为了满足此需求,使用每帧最多有 64 个 字节的CAN-FD,并在数据阶段能将提高比特率传输,然后在第二仲裁阶段又恢复标称比特率。

通过以下方式确保数据传输完整性:

使用 CRC 基于 17 阶多项式校验最多 16 字节的有效负载

使用 21 阶多项式校验 16 至 64 字节的有效负载

CAN-FD与CAN 2.0的帧架构比较:

CAN-FD与CAN 2.0之间的主要差异:

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐