0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 通过系统级测试避免CAN收发器数据传输问题

通过系统级测试避免CAN收发器数据传输问题

来源: digikey
2023-10-25
类别:工业控制
eye 25
文章创建人 拍明芯城

  作者:Steven Keeping

  控制器局域网 (CAN) 是一种经过验证且强大的通信标准,用于工业自动化和汽车领域等。该技术存在两个版本:CAN2.0 和更新版本 CAN-Flexible Data (FD)。传统 CAN2.0 系统可以通过添加 CAN-FD 节点进行增强,这些节点提供更高的有效负载吞吐量来支持关键通信事件。

  这些技术总体上是兼容的,但随着系统的复杂性和总线长度的增加,混合系统中CAN-FD的较高速度可能会导致同步问题,导致传输失败。

  对于简单系统来说,涉及连接两个控制器/收发器对的单个短总线的 CAN 系统测试可能是令人满意的。然而,此测试通常无法检测到结合 CAN2.0 和 CAN-FD 组件的更复杂的多节点系统中可能出现的问题。使用生产系统的双胞胎对所有潜在用例进行专门测试可以检测现场可能发生的所有问题。

  本文简要介绍了CAN2.0和CAN-FD并解释了传输挑战。然后描述了确保使用这些网络的系统表现出最小现场故障的测试技术。它介绍了Analog Devices的示例组件,其中包含故障检测和报告,并展示了使用此类组件如何加速已部署系统的测试阶段和故障排除。还突出显示了相关的评估板。

  什么是CAN2.0和CAN-FD?

  CAN 是具有内置故障处理功能的分布式通信标准。物理层 (PHY) 和数据链路层 (DLL) 在 ISO-118981 标准中指定。

  CAN 的特点包括:

  总线上允许多个主机

  消息固有的优先级

  按消息优先级进行总线仲裁

  多个级别的错误检测和恢复

  使用单独的时钟源跨节点同步数据时序

  CAN 使用差分电压数据传输方案,具有两种总线电压状态:“隐性”(驱动器输出为高阻抗)和“显性”,阈值如表 1 所示。

  逻辑RS-485 电平CAN状态CAN 电平

  1A-B≥+200mV隐性CANH – CANL ≤ 0.5V

  0A - B ≤ -200 毫伏主导的CANH – CANL ≥ 0.9V

  表 1:与 RS-485 相比的 CAN 隐性和显性电压电平。请注意,主导(较高)电压对应于逻辑“0”。 (图片来源:Analog Devices)

  节点传输逻辑“0”的显性状态(在此状态下,一条总线(CANH)为高电平,另一条总线(CANL)为低电平)和逻辑“1”的隐性状态。通过在标准帧或错误帧结束后检测多个隐性位来区分空闲 CAN 总线与隐性位传输模式的 CAN 总线(图 1)。

  

image.png


  图1:CAN传输方案。空闲模式由多个隐性位标识。 (图片来源:Analog Devices)

  CAN 收发器提供 DLL、CAN 控制器(通常嵌入到另一个设备(例如微控制器)内)和 CAN 总线的物理接线之间的差分 PHY 接口。图 2 显示了实现 CAN 应用程序所需的各种元素,以及它们与开放系统互连 (OSI) 层的关系以及每个项目实现的功能。

  

1.png


  图 2:CAN 收发器构成 CAN 控制器和 CAN 总线之间的差分 PHY 接口。 (图片来源:Analog Devices)

  CAN2.0 于 1991 年推出,标称吞吐量为 500 kbits/s (Kbits/s)。由于这一数据速率有时不足以满足关键通信事件的需要,因此 CAN-FD 于 2012 年推出。CAN-FD 在正常操作条件下提供高达 2 兆位每秒 (Mbits/s) 的标称吞吐量,在正常操作条件下提供高达 5 Mbits/s 的标称吞吐量用于诊断或编程。请注意,更高速的通信仅适用于消息有效负载;消息的其他元素,例如 11 位标识符、循环冗余校验 (CRC) 和确认 (ACK),以 500 Kbits/s 的 CAN2.0 速率发送。

  CAN2.0 和 CAN-FD 之间的另一个区别在于标准数据帧有效负载,它从 CAN2.0 的 8 字节 (B) 增加到 CAN-FD 的 64 B。有效负载的增加通过提高开销/数据比使 CAN-FD 通信更加高效。此外,以前由于 CAN2.0 的 8 B 有效负载限制而必须拆分的消息现在可以使用 CAN-FD 合并为一条消息。此外,由于数据速率更高且有效负载增加,因此可以通过 CAN-FD 消息加密来增强安全性。

  由于 CAN-FD 控制器同时支持 CAN2.0 和 CAN-FD 协议,因此在同一网络中混合使用 CAN2.0 和 CAN-FD 节点是很常见的。混合节点很受欢迎,因为它允许传统网络在较长时间内迁移到更快的协议。混合系统的一个缺点是额外的成本和复杂性,因为收发器必须能够支持 CAN2.0 节点上的 CAN-FD 过滤方法,以确保在 CAN-FD 通信期间不会创建错误帧。

  CAN的仲裁和错误机制

  任何连接的 CAN 节点都可以将数据传输到总线上。为了避免通信冲突,节点对总线的使用进行仲裁,以便消息根据其优先级依次传输。 CAN采用非破坏性、透明的仲裁;在仲裁期间成功的节点继续传输其较高优先级的消息,而没有任何其他节点干扰或破坏该信息。这种仲裁是可能的,因为显性位的传输会覆盖隐性总线状态。

  标准数据帧包括消息标识符和几个标志位。该信息被称为“仲裁字段”。它规定了仲裁,从而规定了消息优先级。 ID 较低(开头“0”较多)的消息具有较高优先级(图 3)。

  

image.png


  图 3:CAN 标准数据帧包括消息标识符以及 RTR 和 IDE 标志位。该仲裁字段规定仲裁和消息优先级。 (图片来源:Analog Devices)

  即使有仲裁方案,事情也可能会出错。为了解决问题,CAN 协议具有支持错误检查和处理的机制。这些机制包括:

  传输位验证

  CRC校验

  固定格式位字段检查

  强制消息ACK

  使用以下机制处理错误:

  错误帧

  错误计数器

  节点错误状态

  任何 CAN 控制器都可以检测错误并通过触发错误帧和错误节点计数器做出反应。错误帧通过使用六个连续的显性或隐性位来区分。这样的序列与正常的传输规则不一致,使其可以被其他节点检测到。发送错误帧的节点随后发送隐性位,直到检测到总线处于隐性状态。进一步传输七个隐性位后,节点可以尝试传输常规 CAN 帧(图 4)。

  image.png

  图 4:在此错误传输示例中(由于额外位 [1] 导致 CRC 位错误),最右侧显示了六个连续位错误帧。 (图片来源:Analog Devices)

  除了错误帧传输之外,每个 CAN 节点还实现发送和接收错误计数器。错误使计数加一,而成功发送或接收消息则使计数器减一。根据错误计数器,节点可能处于“错误主动”、“错误被动”或“总线关闭”状态。在错误活动状态下,节点可以在总线上进行通信,并在检测到错误时发送活动错误标志。当计数器超过127时,出现错误被动状态;在这种状态下,节点只能发送被动错误标志。一旦计数器低于 127,节点将再次变为错误活动状态。如果计数器超过 256,节点将进入总线关闭状态,并且无法在总线上通信。节点计数器在接收到 128 个 11 个连续隐性位的序列后可以重置为 0。

  综合测试的重要性

  CAN 的仲裁和错误机制有助于在发生故障时保持系统在现场运行。然而,通过设计限制发送和接收故障的系统,可以实现更高效率的操作。在多种操作场景下测试所提议的系统是在部署之前识别和修复弱点的一种方法。

  一种常见的技术是通过使用函数发生器将典型的操作标准数据帧传输到收发器的 TxD 引脚并检查是否发生任何错误来测试所选 CAN 收发器。虽然这是对单节点的合理测试,但它并不能很好地代表具有长总线的多节点系统在现场的执行情况。例如,复杂系统可能出现的问题包括高频操作期间电路存根产生的反射和其他伪影。这些会在位之间引入相移。

  CAN 的仲裁机制仅在位同步时才起作用。如果比特到比特的相移超过单个比特传输时间的二分之一,则同步失败,并且仲裁不可能。

  在以 500 Kbits/s 至 1 Mbit/s 运行的 CAN2.0 传统系统中,单比特传输时间足够长,导致相移很少成为问题。然而,由于 CAN-FD 的吞吐速度更高,比特传输时间缩短,并且相移很快就会变得显着。

  为了缓解此类挑战,需要从简单地测试单个节点转向通过复制完整的终端系统并在各种操作条件下进行测试来验证设计。虽然这比基本测试更耗时、更昂贵,但它比处理现场故障和不满的客户要便宜得多。

  一个实际的例子

  要了解相移测试在实践中的工作原理,请考虑使用入围供应商提供的 CAN 收发器和 CAN 控制器设计的系统。该节点连接到 20 米 (m) 总线,该总线还支持许多其他节点,包括 CAN2.0 和 CAN-FD 组件。出于测试目的,节点的传输速度为 13.3 Mbits/s,相当于 75 纳秒 (ns) 的位宽度。出于同步和仲裁目的,控制器以 TxD 位宽度的 80% 进行采样,因此需要 0.8 x 75 = 60 ns 的最小 RxD 位宽度,包括上升时间、下降时间和环路延迟。测试组件产生 48 ns 的 TxD 位宽,导致系统故障。

  在替代 CAN 收发器(来自 Analog Devices 的MAX33012EASA+)上执行了相同的测试。在此测试中,TxD 位宽度在 75 ns 时测量,RxD 位宽度在 72 ns 时测量。 72 ns 位宽超出了 60 ns 的 80% 采样时间要求,因此系统同步和仲裁运行令人满意。 13.3 Mbits/s 的吞吐量比系统在目标应用中使用的吞吐量要快,这表明它足够强大,可以在所有预期的操作条件下运行(图 5)。

  

image.png


  图 5:在 20 m 总线上以 13.3 Mbits/s(75 ns TxD 位宽)运行 MAX33012EASA+ CAN 收发器的测试结果。 RxD 位宽为 72 ns,足以确保控制器的 80% 采样时间(60 ns)得到满足并实现同步。 (图片来源:Analog Devices)

  内置故障排除

  通过使用包含故障检测和报告的组件,可以使测试周期变得更容易且更便宜。 MAX33012EASA+ CAN 收发器等组件不仅可以快速突出原型和预生产 CAN 电路的问题,而且对于快速故障排除对于实时控制系统部署非常重要的应用也非常有用。

  MAX33012EASA+是一款+5V CAN收发器,可解决过流、过压和传输故障等常见故障。它具有高达 ±65 V 的故障保护,使其适合需要过压保护的应用。 ±25 伏的共模电压范围可在嘈杂的环境(例如重型机械环境)中进行通信。 CANH 和 CANL 输出具有短路电流限制,并通过将驱动器输出置于高阻抗状态的热关断电路来防止功耗过高。

  MAX33012EASA+ 的工作速率高达 5 Mbits/s,并可选择将压摆率降低至 8 伏/微秒 (μs),以最大程度地减少电磁干扰 (EMI),并允许使用非屏蔽双绞线或并行电缆(图 6)。

  

image.png


  图 6:所示为多模系统中的 MAX33012EASA+ 应用电路。在此示例中,微控制器包括嵌入式 CAN 控制器。 (图片来源:Analog Devices)

  CAN 收发器的故障检测在加电时通过 TxD 传递 100 个从低到高的转换(通常是一两个标准数据帧,具体取决于使用的协议)来启用。启用故障检测后,如果检测到故障,则需要 TxD 上另外 16 个低到高转换来传输故障代码。最后,还需要 10 个脉冲才能清除故障。

  当故障检测使能后连续 10 个周期 RxD 上的信号与 TxD 不匹配时,将触发传输故障检测。例如,当两个终端电阻器均缺失,或者 CANH 与地之间或 CANL 与 VDD 之间存在短路时,就会发生这种情况,从而导致差分信号不符合规格。

  Analog Devices 提供评估板 CANbus 接口 Arduino 平台评估板 MAX33012E,可用于演示 MAX33012E 的功能。虽然该设备具有 Arduino 扩展板外形尺寸,但它可以用作独立的评估板。

  结论

  为了确保多模式 CAN2.0 和 CAN-FD 混合系统可靠的现场运行,彻底测试整个设计非常重要。然而,在检测故障时,简单的单节点测试是不够的,这些故障随后可能因同步问题而导致现场故障,从而破坏技术的仲裁机制。通过选择具有内置故障检测和报告功能的 CAN 收发器,可以简化混合多节点 CAN 系统的初始测试和后续现场故障排除。



责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: CAN收发器

相关资讯