0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

虹科干货 | 带你全面了解“CAN总线错误”(四)——在实践中生成和记录CAN错误

虹科智能自动化 2022-06-09 10:21 次阅读

A simple intro to CAN errors

CAN总线错误

在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括CAN总线错误的基础概念、CAN总线错误的类型、CAN错误帧和CAN节点错误状态,并通过实际的应用测试生成并记录CAN错误。

在之前发布的文章中,我们介绍了CAN错误和错误处理的理论基础,而在本篇文章中,我们将在实践中生成和记录错误。测试过程中将使用到虹科的CANedge数据记录仪和PCAN-USB设备。

测试1

没有CAN总线错误

为了便于对照,我们设置了没有CAN总线错误的测试:一个 CANedge2 的“发送器”将数据发送到另一个 CANedge2 的“接收器”,并且两者都能够记录CAN总线错误。


55185928-e6f0-11ec-aa96-dac502259ad0.png

测试2

移除CAN总线终端电阻

在这个测试中,我们在日志会话过程中移除了 CAN 终端电阻。这可以有效地将位电平设置为显性。同时,CANedge2发送器立即开始记录位错误(当它尝试发送隐性位但读取显性位时会发生这种情况)。CANedge2 接收器在检测到 6 个连续显性位时记录位填充错误。记录这些错误,直到再次添加终止。

在记录来自车辆、机器等的数据时,缺少终端电阻似乎并没有影响,但是,在使用“测试台”设置时,这个问题非常常见,并可能导致混淆,因为它难以与非活动CAN总线区分开来。因此,在CANedge数据记录仪上启用错误帧记录帧对于故障排除而言是十分有效的。


5552c0ae-e6f0-11ec-aa96-dac502259ad0.png

发送器位填充错误


559d10f0-e6f0-11ec-aa96-dac502259ad0.png

接收器位填充错误

测试3

设置错误的波特率

在这个测试中,我们将CANedge接收器节点配置为具有492.872K波特率,而发送器的波特率为500K,这是一个相当大的差异,并导致发送器的ACK错误和接收器的位填充错误。在更现实的场景中,各个节点的波特率配置的较小差异可能会导致间歇性错误帧,从而导致消息丢失。

这个例子比较极端,然而,在实践中,我们有时会看到使用标准比特率(250K、500K、……)的CAN总线,但其特定的位时序设置与通常推荐的设置不同。这不会导致通信完全关闭,但会导致几个百分比的周期性帧丢失。为了解决这个问题,可以在CANedge配置中构建一个“预定义比特率”,本质上是设置位时序以更好地匹配正在记录的CAN总线。


55c0fa6a-e6f0-11ec-aa96-dac502259ad0.png

发送器ACK错误


55f6d842-e6f0-11ec-aa96-dac502259ad0.png

接收器位填充错误

测试4

移除应答CAN节点

在本次测试中,我们使用了三个配置如下的 CANedge 单元:

CANedge1:配置为应答数据

CANedge2 A:配置为“静默模式”(无确认)

CANedge2 B:配置为每 500ms 传输一个 CAN 帧


在默认设置中,数据由 CANedge2 B 传输到 CAN 总线上并无错误记录。但是,如果我们从总线上移除 CANedge1,则不再有任何 CAN 节点来确认发送器发送的帧。结果,发送器检测到ACK 错误。作为响应,它增加其发送错误计数器并在 CAN 总线上产生活动错误标志。这些又由 CANedge2 A(它静默监控总线)记录为格式错误。


56792324-e6f0-11ec-aa96-dac502259ad0.png

CANedge之所以会记录格式错误,是因为发送器在识别出ACK时隙中缺少显性位时将其提高,一旦接收器在随后的EOF字段中观察到显性位(本该是隐性的),就会检测到格式错误。

很明显,当TEC从0增加到16x8=128时,发送器会广播16个主动错误标志。发送器现在已超过TEC的阈值127并进入被动错误模式。因此,发送器仍然会遇到ACK错误,但现在只会引发被动错误标志(接收器不可见)。在这一点上,发送器不断尝试发送相同的帧,并且接收器不断记录这个重传序列。

这种类型的错误是我们在技术支持中经常遇到的错误。具体来说,用户会尝试使用我们的CAN记录器来记录来自单个CAN节点的数据(例如从CANmod传感器到CAN模块),如果他们决定在这样的安装中启用CANedge上的“静默模式”,则没有CAN节点将确认单个CAN节点广播数据,这样得到的结果大概率将是空日志文件,或充满相同CAN帧重传的日志文件。


56a4f09e-e6f0-11ec-aa96-dac502259ad0.png

发送器ACK错误

56d09a14-e6f0-11ec-aa96-dac502259ad0.png

接收器格式错误

测试5

CAN帧冲突(无重传)

设置CAN总线时,避免CAN ID重复是关键,否则可能会导致帧冲突,因为两个CAN节点可能都认为他们已经赢得了仲裁,并同时开始传输它们的帧。

为了模拟这一点,我们使用与测试4相同的设置。此外,我们连接了一个PCAN-USB设备作为辅助发送器。CANedge2发送器现在配置为每10ms输出一个CAN ID为1且有效负载为8个0xFF字节的CAN帧。此外,我们将CANedge2配置为禁用因错误中断的帧的重新传输。PCAN-USB每2ms输出一个相同的CAN帧,有效载荷的第一个字节更改为0xFE。PCAN设备已启用重传。


56f715ae-e6f0-11ec-aa96-dac502259ad0.png

这种设置会迅速产生帧冲突,从而导致CANedge和PCAN发送器检测到位错误。作为对此的响应,两者都会引发一个活动错误标志,CANedge接收器将其检测为位填充错误。PCAN设备立即尝试重新传输并成功,而CANedge等待进一步传输,直到要发送下一个消息。

这种类型的错误当然不应该发生在例如汽车中,因为设计和测试过程将确保所有 CAN 节点通过全球唯一的 CAN 标识符进行通信。但是,如果您安装第 3 方设备(例如传感器到 CAN 模块)以将数据注入现有 CAN 总线,则很容易出现此问题。如果您不确保外部 CAN 节点的 CAN ID 的全局唯一性,您可能会导致帧冲突,从而导致 CAN 总线上的错误。如果您的外部 CAN 节点广播具有高优先级 CAN ID 的数据,这一点尤其重要,因为您可能会影响安全关键 CAN 节点。


57166eb8-e6f0-11ec-aa96-dac502259ad0.png

PCAN发送器错误


57400016-e6f0-11ec-aa96-dac502259ad0.png

CANedge发送器位错误


576a50b4-e6f0-11ec-aa96-dac502259ad0.png

CANedge接收器位填充错误

测试6

CAN帧冲突(包括重传)

在这个测试中,我们使用与之前相同的设置,但在CANedge2发送器上启用重传。在这种情况下,帧冲突会导致一系列后续帧冲突,因为CANedge2和PCAN-USB设备都试图重新传输其中断的消息。

由于产生的位错误,两者都会引发总共16个活动错误标志,它们被静默CANedge2接收器检测为位填充错误。然后两个发送器进入错误被动模式并停止产生主动错误标志,这意味着它们都不能破坏总线上的CAN帧。结果,其中一个发送器将成功传输完整的消息,从而结束重传,并使两个设备都能恢复传输。但是,这仅持续几秒钟,然后发生另一次碰撞。

冲突处理是一个很好的例子,说明CAN错误处理在“关闭”潜在有问题的序列和使CAN节点能够恢复通信方面很有效。如果发生帧冲突,很可能两个CAN节点都将设置为尝试重传,如果不是错误处理和限制,则将导致阻塞。

CAN/LIN数据与错误记录器

虹科CANedge1让您可以轻松地将数据从2xCAN/LIN总线记录到8-32GB的SD卡中,并支持记录CAN/LIN错误。只需将其连接到汽车或卡车即可开始记录-并通过免费软件/API解码数据。此外,升级版CANedge2添加了WiFi功能,让您可以将数据自动传输到您自己的服务器,并通过无线方式更新设备。


CAN错误帧记录示例

1. OEM原型车中的CAN总线诊断

汽车OEM可能需要在后期原型测试期间在现场记录CAN错误帧。通过部署CANedge,OEM工程团队将能够根据实际CAN信号(速度、RPM、温度)以及与原型系统中较低层CAN通信相关的问题进行故障排除。如果感兴趣的问题是间歇性的,例如每月只发生一次或两次,这一点尤其重要。在这种情况下,CAN总线接口不太适合,因为拥有成本效益高的设备以实现可扩展部署以更快地进行故障排除变得越来越重要。

57924fce-e6f0-11ec-aa96-dac502259ad0.png

虹科车辆网络团队在车用CAN总线方面有着十分丰富的技术积累,欢迎通过hongchesys@hkaco.com联系虹科车辆网络团队。

2. 远程排除机器中的CAN错误

OEM或售后市场用户可能需要在他们的机器中捕获罕见的CAN错误事件。为此,他们部署了一个CANedge2来记录CAN数据和相关的错误帧,并通过WiFi自动将数据上传到他们自己的云服务器。在这里,错误会被自动识别,并向工程团队发送警报,以便立即诊断和解决问题。

57b52648-e6f0-11ec-aa96-dac502259ad0.png

虹科工业控制团队在CAN总线等工业通讯协议方面有着十分丰富的技术积累,欢迎通过hongconsys@hkaco.com联系虹科工业控制团队。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2715

    浏览量

    463355
收藏 人收藏

    评论

    相关推荐

    CAN总线与LIN总线的区别

    随着汽车电子系统的复杂性增加,车辆内部通信的需求也在不断增长。CAN总线和LIN总线作为两种主要的车载通信协议,各自扮演着重要的角色。 1. 设计原理 CAN
    的头像 发表于 11-12 10:13 289次阅读

    CAN总线的主要优势与不足

    随着汽车电子系统的日益复杂化,对通信网络的需求也在不断增长。CAN总线作为一种成熟的通信协议,已经在汽车行业中得到了广泛的应用。 一、CAN总线的主要优势 高可靠性:
    的头像 发表于 11-12 10:10 250次阅读

    CAN总线常见错误码及其解决方法

    CAN总线(Controller Area Network)是一种常用于车辆和工业自动化系统中的串行通信协议。它允许多个设备共享同一通信介质,以实现数据的实时交换。在使用CAN总线时,
    的头像 发表于 11-12 10:05 434次阅读

    CAN总线知识】全面了解CAN总线协议

    提及总线,总是让人联想到那些交错在一起的计算机电线。那么这些电线如何发挥功效呢?这还得配合总线协议的管理来使用。那么今天我们介绍的就是CAN总线协议。看看这个协议的含义和应用吧。
    的头像 发表于 10-15 08:05 1218次阅读
    【<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>知识】<b class='flag-5'>全面</b><b class='flag-5'>了解</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b>协议

    CAN总线错误状态的种类

    CAN总线错误状态的种类主要包括以下几种,每种状态都反映了CAN总线网络中节点或总线的不同
    的头像 发表于 09-03 14:17 897次阅读

    一文读懂CAN通讯错误

    CAN总线通信技术广泛应用于多个行业,是每个总线设计工程师必学的一个通讯网络。然而,对于CAN通信中的错误帧,许多人仅停留在表面
    的头像 发表于 06-12 08:24 2539次阅读
    一文读懂<b class='flag-5'>CAN</b>通讯<b class='flag-5'>错误</b>帧

    CAN总线数据记录仪选型指南

    CAN总线数据记录仪拥有多种型号和强大的功能,满足了不同行业、不同场景下的数据记录需求。今天,我们将针对Influx以及Kvaser两个品牌的记录
    的头像 发表于 05-24 17:08 502次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>数据<b class='flag-5'>记录</b>仪选型指南

    培训 | CiA协会CAN总线实训开班,新一代CAN网络CAN XL

    暌违5年之久,国际CiA协会培训再次落地国内!你是否渴望与国际CAN领域的权威专家面对面交流,深入探讨CAN技术的最新发展与应用?你是否想站在行业前沿,领略CAN技术的最新动态?机会就在眼前!
    的头像 发表于 05-16 08:04 358次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>培训 | CiA协会<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>实训开班,新一代<b class='flag-5'>CAN</b>网络<b class='flag-5'>CAN</b> XL

    常见的CAN中继器应用错误及原因有哪些?

    CAN中继器在应用中可能会遇到一些常见的错误,这些错误可能源于多个方面。
    的头像 发表于 05-08 10:16 552次阅读

    一文读懂CAN控制器错误处理的原理

    CAN通讯的错误帧到底是如何被界定的?本文带你轻松了解错误标定检测到错误条件的站通过发送
    的头像 发表于 04-26 08:25 1532次阅读
    一文读懂<b class='flag-5'>CAN</b>控制器<b class='flag-5'>错误</b>处理的原理

    CAN 会收到错误的数据吗?

    CAN-bus总线协议以高稳定性,高容错率而著称于世,然而仍有很多用户在使用的时候担心CAN会接受到错误的信息,在数据里增加了CRC校验的部分,这种做法是否有必要?
    的头像 发表于 04-04 08:24 377次阅读
    <b class='flag-5'>CAN</b> 会收到<b class='flag-5'>错误</b>的数据吗?

    科技术 | PCAN View功能细讲:从实时监测到错误帧分析

    相信使用过PCAN工具的朋友都知道PCAN-View这款免费软件,它具有直观的用户界面,可以实时监测和分析CAN总线上的数据帧,并提供过滤、发送和报文
    的头像 发表于 03-18 13:48 1106次阅读
    <b class='flag-5'>虹</b>科技术 | PCAN View功能细讲:从实时监测到<b class='flag-5'>错误</b>帧分析

    CAN总线错误帧及其排查方法简单介绍#汽车CAN总线 

    CAN总线汽车电子
    北汇信息POLELINK
    发布于 :2024年03月15日 14:14:40

    高速CAN总线和低速CAN总线的特性

    高速CAN总线和低速CAN总线的特性 高速CAN总线和低速C
    的头像 发表于 01-31 14:09 2550次阅读

    如何用示波器排查CAN的各种错误帧呢?

    如何用示波器排查CAN的各种错误帧呢? 导言: 控制器局域网络(Controller Area Network,CAN)是一种常用的现场总线通信协议,广泛应用于汽车电子系统、工业自动化
    的头像 发表于 12-07 11:09 1107次阅读