CAN收发器的正确系统级测试方法

接口/总线/驱动

1117人已加入

描述

  作者:Madhura Tapse

       本文介绍评估控制器局域网(CAN)收发器的正确系统级测试方法。它通过展示在多CAN节点系统中从一个CAN节点到另一个CAN节点执行数据传输时如何避免实际的数据传输问题,解释了为什么这种方法更优越。阅读本文后,读者将对CAN系统有更好的了解,并能够为特定的多节点CAN系统选择正确的CAN收发器。

  CAN是一种强大的通信标准,用于允许不同的传感器、机器或控制器相互通信。CAN接口广泛用于工业自动化、家庭自动化和汽车,因为它更强大,可以有效地处理总线争用。

  传统 CAN2.0 提供 8 字节有效负载,支持高达 2 Mbps 的数据速率。有时,2 Mbps的数据速率不足以满足关键通信事件,因此 CAN.org 提出了一种新的通信协议CAN-FD,允许高达10 Mbps的高数据速率通信。

  CAN-FD 灵活数据速率

  传统CAN和CAN-FD之间的主要区别在于灵活数据(FD)。在CAN-FD中,数据速率(即每秒传输的位数)比经典CAN快5×(仅数据有效载荷为10 Mbps;为了兼容性,仲裁比特率仍限制为1 Mbps)。CAN-FD 中的消息有效负载大小从 64 字节的传统 CAN 大小增加到 8 字节。

  使用CAN-FD,传感器可以改变具有更大或更小有效载荷的数据速率。与现代工厂中的传统CAN相比,更快的数据速度和更大的有效载荷容量带来了许多系统级操作优势。

  CAN通信—基础知识

  CAN通信由两个主要组件组成:(a)CAN控制器和(b)CAN收发器,如图1所示。

传感器

  图 1。单个CAN节点。

  CAN控制器处理CAN通信的数据链路层,而CAN收发器处理物理层。稍后让我们简要介绍一下CAN收发器物理。

  在CAN协议中,逻辑0称为显性位,逻辑1称为隐性位。由于CAN是一种差分协议,因此CANH和CANL之间的电压差决定了发送和接收信号的逻辑电平。如果CANH-CANL电压大于1.5 V,CAN接收器将该位识别为逻辑0。然而,如果CANH-CANL电压小于200 mV,CAN接收器将该位识别为逻辑1。图2显示了CAN收发器TXD引脚上数字逻辑1和逻辑0位的连续传输,以及CANH和CANL引脚上的等效CAN总线电平。根据CANH和CANL电压之间的差异,接收器在RXD引脚上环回信号。

传感器

  图 2.CAN协议物理层。

  现在让我们看一下CAN数据链路层,它为该比特流的受控传输制定了数据帧。它还有助于错误检测和总线争用解决。图3显示了标准CAN帧格式。

传感器

  图 3。CAN协议数据链路层。

  每个节点都以帧开始 (SOF) 开始数据帧,这是第一个显性位。11 位标识符是每个节点的唯一地址。IDE 指示帧格式。此位字段中的逻辑 0 表示标准 CAN 格式,而此位字段中的逻辑 1 表示扩展 CAN 格式。r0 是保留位。DLC 字段指示要传输的数据字节数。在标准 CAN2.0 帧中,最多可以传输 8 个字节。接收节点通过在总线上发送主位来确认该数据帧。最后,帧结束(EOF)是一个隐性位,它标志着一个数据帧的结束。

  大多数情况下,在选择CAN收发器时,客户通过函数发生器在CAN收发器的TXD引脚上发送位流来评估CAN收发器。虽然这种方法非常适合评估单节点CAN,但在开发多节点、远间距CAN系统时似乎存在缺陷。因此,新的CAN控制器和收发器测试对于为您的系统选择合适的CAN收发器是必要的。这种方法背后的原因是什么?

  仲裁方法

  这种系统级测试方法的主要原因是CAN协议的仲裁功能。如果两个节点尝试同时占用总线,则通过非破坏性的逐位仲裁实现访问。将第一个标识符位作为零(主导)发送的节点,而其他节点发送一个标识符位(隐性),保留对CAN总线的控制,CAN总线继续完成其消息。图 4 显示了两个节点之间的仲裁方案。

传感器

  图 4。2节点系统中的CAN仲裁。

  在此图中,节点 1 和节点 2 通过 CAN 总线相互连接。因此,CANH和CANL信号对于两个节点都是通用的。TXD1 和 RXD1 是节点 1 的信号,而 TXD2 和 RXD2 是节点 2 的信号。如您所见,节点 1 和节点 2 的前三位是相同的:分别为 1、0 和 1。节点 2 的第四位是 1,而节点 1 是 0。由于节点 1 具有主导位,因此它将赢得仲裁并继续发送完整的消息。消息由节点 2 确认。节点 1 完成传输后,节点 2 开始发送消息。节点 1 确认此消息。

  每个节点都有一个唯一的标识符 ID。因此,此 11 位标识符 ID 用于仲裁过程。这些位将由控制器读回,以识别消息传输的优先级。在CAN-FD中,仲裁比特率可以保持与数据比特率相同或不同。在CAN2.0中,仲裁和数据比特率是相同的。

  在传统的CAN2.0系统中,有时比特率会从标准的CAN2.0建议的1 Mbps提高,以实现更快的数据传输。在CAN-FD系统中,仲裁比特率限制为1 Mbps数据速率,数据比特率最高可达10 Mbps。在仲裁阶段(包括 11 位标识符和 SOF 位),每个传输的位都会被读回以进行同步。

  CAN节点在CAN总线上观察到的边沿上同步,但总线上的信号传播时间会在节点之间引入相移。CAN的介质访问控制无损仲裁机制要求任意两个节点之间的相移小于一位时间的一半。标称位时间的下限定义了标称比特率和总线长度的上限。因此,RXD的上升时间和下降时间,CAN收发器的环路延迟以及电缆都进入了画面。在较高的比特率(例如 10 Mbps)下,传播延迟和上升时间/下降时间需要小于 50 ns。

  因此,CAN-FD中的仲裁比特率限制为1 Mbps,从而允许为许多可能的节点的同步提供更高的裕量。然而,CAN-FD是新的,尚未在所有CAN系统中实施。在某些情况下,CAN-FD控制器不可用,或者被认为是系统中昂贵的附加功能,因此客户继续使用标准CAN控制器。在这些系统中,CAN节点需要以更高的比特率(》2 Mbps)进行通信,因为关键的传感器信息以及节点之间的电缆长度可能更短。在这种情况下,上升时间/下降时间对称性和收发器的传播延迟可能会限制允许的数据通信的上限。

  CAN收发器需要进行系统级测试

  让我们以CAN收发器MAX33012E为例,该收发器已通过13米电缆测试,速度高达3.20 Mbps。如您所见,在图 5 中,TXD2 位宽为 75 ns(对应于 13.3 Mbps),RXD2 位宽为 72 ns。由于控制器以TXD位宽的80%采样,因此所需的最小RXD位宽(包括上升时间/下降时间和RXD的环路延迟)为60 ns。在图5中,您可以看到接收的位宽为72 ns。因此,MAX33012E满足条件,并且足够鲁棒,可以在更高的比特率下工作。在这种情况下,CAN控制器不会检测到任何错误,并继续执行数据通信。

传感器

  图 5。MAX33012E CAN数据传输。

  图6显示了竞争器件的示波器照片,该器件也以13.3 Mbps的速度进行了测试。对于该器件,传输的位宽为75 ns(对应于13.3 Mbps),接收的位宽小于传输位宽(80 ns)的48%。因此,仲裁阶段的位传输失败,导致通信错误,最后系统停止工作。

传感器

  图 6。竞争对手的CAN数据传输。

  这些类型的数据传输错误只能通过执行完整的系统级测试来发现,其中包括多个CAN控制器,CAN收发器和一根长电缆。

  结论

  CAN收发器的系统级测试有助于揭示系统中未来可能存在的数据传输问题。通过评估具有CAN控制器和电缆的CAN收发器,可以避免这些问题,以满足所需的时序和电压规格。CAN系统的鲁棒性是CAN系统中每个组件的累积性能。仅评估一个组件或CAN收发器并不能准确测量系统功能。对系统进行事先验证比更换有故障的系统更具成本效益。因此,我们强烈建议在选择CAN控制器之前进行系统级测试。

编辑:黄飞

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分