随着汽车和工业应用中数据通信量的增加,传统的CAN协议已无法满足更高的数据速率需求。传统CAN协议在数据速率和总线负载能力方面存在限制,难以满足高带宽和高实时性的应用场景。为此,CAN XL(Controller Area Network eXtended Large)应运而生。
作为 CAN 协议家族的第三代协议,CAN XL 在物理层实现了高达 20 Mbit/s 的数据传输速率,单帧数据长度扩展到了2048字节数据字段,显著提升了通信效率。将以太网帧映射到 CAN XL 帧,集成到以太网环境中,适应更高的数据传输速率和更复杂的应用场景。
01CAN XL 协议
自 1986 年问世以来,CAN 协议已在汽车工业中广泛应用,并逐步演化出三代协议:CAN 2.0、CAN FD 和 CAN XL。根据ISO OSI层模型,CAN应用通常涵盖物理层、数据链路层和应用层。图1显示了CAN协议底层的典型架构。其中PMA层将逻辑信号转换为物理电平CAN_H和CAN_L信号并通过MDI接口传递给PMD子层,由PMD子层完成在物理介质上的实际驱动与接收。
图1 CAN 协议底层实现
区别于CAN/CAN FD,CAN XL协议在PCS和PMA子层中增加了PWM编/解码,将PMA子层的总线驱动方式从显性/隐性和level_0/level_1之间切换,实现数据段速率提升,并且兼容传统CAN的NRZ编码,是在物理上实现高速数据传输和模式动态切换的核心技术。
CAN XL工作模式
CAN帧由三个主要阶段构成,包括仲裁阶段(Arbitration Phase),数据阶段(Data Phase)和仲裁阶段(Arbitration Phase)。每个阶段包含不同的字段,用于实现总线仲裁、数据传输和错误校验等功能。
CAN 控制器(controller)在协议层用来将报文转换成符合CAN规范的CAN帧,并以二进制码流方式发送,实现CAN 总线协议底层和数据链路层,定义通信规则与速率上限。CAN收发器(transceiver)用来将逻辑电平转化为差分电平,应用于CAN总线的物理层,搭配不同的收发器,决定了物理信号的实际传输能力。
图2 CAN/CAN FD/CAN XL三种信号速率和传输模式对比
具体来说,在控制器模式下允许仲裁阶段的CAN信号数据速度达到500kbit/s,而在CAN FD协议信号中数据段速率会高达8Mbit/s,在CAN XL协议信号中搭配CAN SIC-XL快速模式的收发器实现了20Mbit/s的数据速率。
CAN和CAN FD信号的收发器工作模式为normal,驱动电平为显性电平和隐性电平。CAN XL信号的标准工作模式为SIC模式,同样驱动电平为显性电平和隐性电平,用于仲裁阶段和数据阶段。SIC XL控制器可以在数据阶段将收发器切换到Fast模式,此时采用Level_0/Level_1作为驱动电平,输出的将是交替差分信号,有效减少反射和信号畸变。
CAN XL帧结构
下面介绍CAN XL帧的主要组成部分。在仲裁阶段包括Priority ID,XL,ADS。Priority ID共11位,总线仲裁优先级标识符,用于处理优先级;XL包含多个bit,隐形电平标识CAN XL帧,区分CAN/CAN FD;ADS从仲裁阶段转到数据阶段,包含4个固定位,ADH位以后进入快速阶段。
数据阶段包含控制字段,数据字段和循环冗余校验字段。SDT共8位协议类型标识符,表示数据段封装类型;SEC共1位,表示对否为加密数据;DLC共11位,定义数据段长度;SBC共3位,是动态填充位计数;PCRC共13位,用于校验仲裁段和控制段数据完整性;VCID共8位,虚拟 CAN 通道标识符,类似以太网中的VLAN;AF共32位,用于寻址的字段;Data bytes有1~2048个字节,传输速率在10M或更高;FCRC共32位,用于数据校验。
在仲裁阶段包含应答字段和结束字段。DAS从数据段向仲裁段转化,包含4个固定位;ACK共6位,显性电平表示确认收到数据帧;EOF共7位表示帧结束。