本文介绍了评估“控制器局域网”(CAN)收发器的正确系统级测试方法。通过展示在多CAN节点系统中执行不同CAN节点之间的数据传输时如何避免实际数据传输问题,解释了此种测试方法的优越之处。
CAN是一种稳健的通信标准,用于支持不同的传感器、机器或控制器进行相互通信。相比于一般接口,CAN接口更稳定可靠,能够有效处理总线争用,因此被广泛应用于工业自动化、家庭自动化和汽车应用中。
旧版CAN2.0提供8字节有效载荷,最多支持2 Mbps的数据速率。有些情况下,2 Mbps的数据速率不足以应对危急通信事件,因此CAN.org提出了新的通信协议CAN-FD,支持数据速率高达10 Mbps的通信。
使用CAN-FD时,传感器可以改变数据速率,并增加或减少有效载荷。与如今工厂中的旧版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)开始数据帧,SOF是第一个显性位。11位标识符是每个节点的唯一地址。IDE表示帧格式。该位域中的逻辑0表示标准的CAN格式,而逻辑1表示扩展的CAN格式。r0是一个保留位。DLC字段表示要传输的数据字节数。在标准CAN2.0帧中,最多可以传输8个字节。接收节点通过在总线上发送显性位来确认该数据帧。最后,帧结束符(EOF)是一个隐性位,标志着一个数据帧的结束。
大多数情况下,在选择CAN收发器时,客户通过函数生成器在CAN收发器的TXD引脚上发送比特流,以此来评估CAN收发器。尽管这种方法非常适合用于评估单节点CAN,但在开发多节点、远距离CAN系统时似乎存在缺陷。因此,要为系统选择合适的CAN收发器,必须采用新的CAN控制器和收发器测试方法。使用这种方法背后的原因是什么?
图4. 双节点系统中的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)进行通信。在这种情况下,收发器的上升时间/下降时间对称性和传输延迟可能会对允许的数据通信上限造成限制。
图5. MAX33012E CAN数据传输
图6所示为同样在13.3 Mbps速度下进行测试的竞品的范围。对于该部分,传输位宽为75 ns(对应于13.3 Mbps),并且接收位宽小于传输位宽(48 ns)的80%。因此,仲裁阶段位传输失败,导致通信错误,最终系统停止工作。
图6. 竞品的CAN数据传输
这些类型的数据传输错误只能通过执行完整的系统级测试来发现,其中包括多个CAN控制器、CAN收发器和一根长线缆。