控制器局域网CAN经典版

控制器局域网经典版(CAN CC)数据链路层在ISO 11898-1中得到了国际标准化。它是乘用车嵌入式控制系统中占主导地位的串行网络,但不限于此应用领域。它的特点是:

多点能力,允许设计分布式和冗余通信系统。 广播通信,减少了带宽需求,并有利于设计灵活性。 复杂的错误检测功能和自动重传错误帧,这导致高可靠的通信。 独特的故障限制,保证网络范围内的数据一致性。 CAN CC数据链路层的一致性测试计划在ISO 16845-1中指定。它允许测试CAN CC数据链路层实现的兼容性。对于CAN CC,有不同物理介质访问(PMA)子层标准化,以满足不同的应用需求。最常用和通用的是所谓的CAN高速PMA,它在ISO 11898-2中标准化。自2016年以来,此标准还包括低功耗和选择性唤醒选项。

数据交换原理

CAN CC基于“广播通信机制”。每个CAN CC数据帧都提供一个标识符,该标识符应在整个网络中是唯一的。它指示内容并定义网络访问优先级。当几个网络参与者竞争网络访问(网络仲裁)时,这很重要。这种方法实现了基于内容的寻址以及基于节点的寻址,具体取决于所选的网络层。因此,实现了高度的系统和配置灵活性。

只要新的CAN CC节点仅作为接收器,就可以轻松地将CAN CC节点添加到现有网络中,而无需对现有的CAN CC节点进行任何硬件或软件修改。这允许模块化概念,允许接收多种数据,并同步分布式过程。此外,数据传输不基于特定类型的网络参与者的可用性。因此,维护和升级网络相对简单。

实时数据传输

在实时处理中,要在网络上交换的数据的紧急程度可能大不相同:例如,快速变化的维度,如发动机负荷,传输更频繁,因此比其他维度,如发动机温度,延迟更少。

通过分配的CAN标识符确定数据帧与其他较不紧急的数据帧相比的优先级。优先级在系统设计期间分配。CAN标识符由11位或29位二进制值组成。值越低,优先级越高;标识符的值越高,优先级越低。

如果几个数据帧或远程帧同时竞争网络访问,通过比较竞争数据帧或远程帧的CAN标识符的逐位比较来协商网络访问。这种机制称为逐位仲裁。参与的网络参与者(节点)在配置的采样点逐位观察信号电平。这是根据有线和机制进行的,其中主导状态覆盖了隐性状态。所有具有隐性传输和主导观察的节点都失去了网络访问的竞争。所有这些“失败者”自动成为当前传输的CAN数据帧的接收器,优先级最高。它们在当前传输完成并且网络再次可用后尝试传输其CAN数据帧。

因此,传输请求的处理顺序是它们对整个系统的重要性。这在过载情况下特别有利。由于网络访问是基于CAN数据帧标识符的优先级,因此可以保证实时系统中的低个体延迟时间。

CAN CC数据帧格式

CAN CC协议支持两种CAN数据帧格式。基本上,它们只在CAN标识符的长度上有所不同。“CAN CC基本帧格式(CBFF)”支持CAN标识符长度为11位,“CAN CC扩展帧格式(CEFF)”支持CAN标识符长度为29位。

CAN CC基本帧格式 一个CAN数据帧以“帧开始”(SOF)位开始。通过这个位,所有连接到网络的节点在CAN数据帧传输期间同步。它后面是“仲裁场”,提供CAN标识符和“远程传输请求(RTR)”位。RTR位用于区分CAN数据帧和CAN远程帧。接下来的“控制场”包含“标识符扩展(IDE)”位和“数据长度代码(DLC)”。IDE位允许区分CAN基本帧格式和CAN扩展帧格式。它也是仲裁过程的主题。这意味着使用相同的前11位CAN-ID值的CBFF中的数据帧将赢得与CEFF中的数据帧的仲裁。

DLC指示随后的“数据场”的大小,以一字节的倍数表示。在远程帧中,DLC包含请求的数据字节数。“数据场”提供应用程序数据,可以在零到最多八个数据字节之间变化。数据和远程帧的完整性由“循环冗余校验(CRC)”和保证。如果数据帧到目前为止已经正确传输,所有接收节点在“确认(ACK)场”中通过在ACK位传输主导位来确认正确的接收。数据和远程帧的结束由“帧结束(EOF)”字段指示。3位间歇场是连续数据或远程帧之间最小的位数。除非另一个连接的节点开始传输,否则在此之后网络保持空闲状态。间歇场是帧间空间(IFS)的一部分,其中还可能包含总线空闲时间和错误被动节点情况下的8位暂停传输。

CAN CC扩展帧格式 扩展帧格式和基本帧格式之间的区别是使用的CAN标识符的长度。29位标识符由11位标识符(“基本标识符”)和18位扩展(“标识符扩展”)组成。通过使用IDE位来区分基本帧格式和扩展帧格式。在扩展帧格式(29位CAN ID)中,IDE位以隐性方式传输;在基本帧格式(11位CAN ID)中以主导方式。与CBFF中的数据帧相比,CAN CC扩展帧格式有一些权衡。网络延迟时间更长(至少20位时间),扩展格式的数据帧需要更多的带宽(约20%),错误检测性能较低(因为为15位CRC选择的多项式针对最多112位的帧长度进行了优化)。

自2003年以来,所有CAN CC实现都必须能够处理两种CAN CC数据帧格式。旧的实现可能只接受CA CC基本帧格式,或者可能只是容忍CAN CC扩展帧格式。

检测和信号错误 CAN数据链路层实现了五种错误检测机制,以实现最高可靠性:

循环冗余校验(CRC):CRC通过在CRC字段中添加帧校验序列(FCS)来保护CAN帧。在接收器中,这个FCS被重新计算并与接收到的FCS进行比较。如果它们不匹配,就会发生CRC错误。 帧检查:这种机制通过检查比特字段与固定格式和帧大小来验证传输帧的结构。通过帧检查检测到的错误被称为“格式错误”。 ACK错误:CAN帧的接收器确认接收到的帧。如果发射器没有收到确认,则指示ACK错误。 位监控:发射机检测错误的能力基于网络信号的监控。每个传输的节点也观察信号电平,从而检测发送的位和接收到的位之间的差异。这允许可靠地检测全局错误和发射器局部错误。 位填充:在位级别测试单个位的编码。CAN CC使用的位表示是“非归零(NRZ)”编码。同步边缘是通过位填充产生的。这意味着在五个连续相同逻辑值的位之后,发射机在比特流中插入一个填充位。这个填充位具有补充值,由接收节点移除。 如果至少有一个上述错误被至少一个节点检测到,目前正在进行的传输将通过发送“错误帧”来中止。这使本地检测到的错误全球化,迫使所有其他节点自己检测错误,从而确保整个网络的数据一致性。在传输错误帧之后,接收器期望重新传输中止的数据帧。为了避免错误的节点永久干扰CAN通信,一个复杂的故障限制会导致那些有故障的节点关闭它们的CAN接口(CAN错误状态;总线关闭状态)。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小明师兄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值