郑志超,南金瑞,南江峰
(1.北京理工大学 机械与车辆学院,北京 100081;2.北京电动车辆协同创新中心,北京 100081)
CAN(Controller Area Network)总线作为一种可靠的汽车计算机网络总线,已经在汽车上应用多年[1]。CAN总线具有传输速度快、高可靠性特点,符合ISO11898、SAE1939 及 ISO11783 等 国 际 标 准[2]。 CAN 总 线 是 一 种有效支持分布式控制或实时控制的串行通信网络,采用完善的错误处理机制和非破坏性仲裁机制[3],保证数据传输的可靠性。CAN 总线经BOSCH 公司发布并在行业推广后,逐步成为车载领域的主流总线,并得到汽车主机厂和供应商的大力支持。
目前,汽车行业针对基于CAN 通信控制器的开发,已有成熟的开发体系和配套工具,如德国Vector 公司开发的CAN 总线应用系统开发软件CANoe。但是,CAN总线的通信协议发布已有多年,面对目前汽车发展出现的新应用场景,其局限性表现得越来越明显。新能源汽车和自动驾驶汽车的出现和发展,一方面,导致汽车对总线吞吐量的要求越来越高,例如电动汽车的BMS 控制器传输数据量巨大,造成总线负载持续增长(达到60%);另外一方面,对总线通信的实时性要求越来越苛刻,例如,作为一项主动安全技术,在多国新车规程中已将其纳入主动安全测试内容[4]的紧急电子制动(AEB)系统,对通信的实时性要求非常高。这直接促进了行业对新型总线的研究,除CAN FD 总线外,车用领域正在研究的还有 FlexRay、Most、Ethernet、LVDS 等。汽车行业覆盖的产业链较长,企业数量庞大,任一标准和规范的变动,都具有“牵一发而动全身”的巨大影响。CAN FD总线由BOSCH 公司在CAN 总线基础上提出,它保留了CAN 通信的各种优点,同时弥补了CAN 通信存在的不足。相比较而言,CAN FD 有巨大的潜力成为下一代汽车总线。本文在介绍CAN FD 网络特点的基础上,着力分析CAN FD 未来的应用前景和在工程化应用方面的技术。
CAN FD 总线在CAN 总线基础上发展而来。CAN总线是一种基于消息广播模式的串行通信总线。起初用于汽车ECU(电子控制单元)之间通信,后来因简单、可靠等特点,被广泛用于工业自动化领域,如数控机床等。CAN 总线采用差分串行通信(CANH 和 CANL),抗干扰能力较强。当CANH 与CANL 均为2.5 V 时,总线为隐性电平;CANH(3.5 V)和CANL(1.5 V)压差为2 V时为显性电平。
CAN FD 最早由BOSCH 公司提出,随后发展迅速,国外许多企业已经进行了CAN FD 相关工具和器件的开发。CAN FD 的发展也得到多家厂商支持,目前已经有大众、戴姆勒、通用汽车、英飞凌、NI 等多家厂商为CAN FD 标准化推广提出意见,并且2020—2022 年量产的很多车型都会采用CAN FD 技术。
CAN FD 总线相较于CAN 总线,有一些新特点,这些特点对改善数据传输速率和可靠性十分重要。
如图1所示,以CAN和CAN FD的数据扩展帧为例进行比较,在帧结构中其他位场几乎没有改变(增加FDF、BRS、ESI 位和 CRC 场有一些改变)的情况下,数据场由原先的最多8 个字节扩展到最多64 个字节。每一帧CAN FD 报文的最大有效数据传输效率相较CAN 报文,接近后者的8 倍,有了很大提升。
图1 CAN 总线与CAN FD 总线数据扩展帧的比较
传统CAN 总线常用的通信速率是250 Kb/s 或500 Kb/s,通信速率最高可达1 Mb/s(此时通信距离最长为40 m)[5]。CAN FD 的数据波特率根据BRS 的显隐性灵活可变,在数据段中可以实现高达15 Mb/s 的通信波特率。从控制场中的BRS 位到ACK 场之前(含CRC 分界符)为可变速率,其余部分为原CAN 总线所用速率[6]。速率测试实验采用型号为ATA6561 的收发器,受限于收发器的最大速率,CAN FD 成功调通通信速率可达到5 Mb/s,这已远远超过传统CAN 总线的速率。
CAN FD 相比 CAN 在控制场增加了 FDF、BRS、ESI位。FDF 位用于标识是否为CAN FD 报文,隐性表示CAN FD 报文,显性表示CAN 报文;BRS 位用于控制是否切换数据段部分的波特率,隐性则切换,否则跟仲裁段保持一致;ESI 位用于标识节点当前错误状态,显性为主动错误状态,隐性为被动错误状态。
无论是传统CAN 总线还是CAN FD 总线,都以CRC场来校验数据传输的正确性。传统的CAN 总线,由于位填充对CRC 的干扰,造成错帧漏检率较高,降低了通信品质。CAN FD 对此作了改进,对CRC-17(数据场长度不超过16 B)、CRC-21(数据场长度超过16 B)的校验采用固定位填充方式,具体如表1 所示。
表1 CAN FD 报文CRC 校验场填充方式
在进行网络通信设计时,一般要求合理设计报文的周期、数量及优先级。推荐平均负载率Ut≤0.3,一般能够保证该CAN 通道内报文传输数据的实时性要求[7]。当前,新能源电动汽车发展迅速,市场份额逐年提升。动力电池是其核心部件,由于电池模块单体众多,需要采集较多的电压、电流和温度等信息。BMS 主控与从控之间的通信网络适合用于作为验证总线网络性能优劣的应用场景。
如图2 所示的网络架构,BMS 管理系统共有1 个主控,10 个从控,从控以10 ms 的间隔周期性向总线发送报文,主控负责接收。通过在CANoe 软件中进行仿真,分别设计CAN 网络和CAN FD 网络发送相同的数据信息,比较总线的负载率。
图2 通信网络架构
仿真结果表明,在传统的CAN 网络中,负载率已接近50%,而CAN FD 网络的负载率刚超过5%,负载率显著降低。为了进一步比较,制作实物节点并搭建测试台架,实物节点采用的单片机型号是Atmel 公司的ATSAMC21J18A,收发器型号为TJA1145T/FD。测试结果表明,在CAN 网络中,负载率接近46%,CAN FD 网络则刚超过8%。
汽车电控系统在使用过程中,功能常需要更新迭代,因此需要对控制器进行程序烧写及更新。利用CAN 通信方式对控制器在线编程升级是常用的方法,通过开发BootLoader 的程序引导与终端PC 相结合,即可实现控制器程序在线更新[8]。因此,CAN FD 总线的刷写速率对于其应用前景也十分重要。
刷写同样的程序,时间主要取决于数据传输时间,这里以10 ms 间隔发送报文。
在图3 中可以看到,当CAN FD 的数据场使用64 个字节长度时,时间显著降低,这对于汽车软件的在线升级意义重大。
图3 CAN 与CAN FD 总线刷写速率测试
由于汽车各电控单元对总线通信吞吐量和传输速率需求不同,同时各种汽车总线的通信特性和应用成本也有所不同。综合满足使用需求和降低应用成本考虑,往往将多种总线结合使用。例如,灯光、门锁和电动座椅的控制器采用LIN 总线通信,车身、底盘、动力、仪表仍采用Body-CAN、Chassis-CAN、PT-CAN、Info-CAN 多路CAN 总线通信。对于高级辅助驾驶(ADAS)和电池管理系统(BMS)及诊断口(Tester)可采用CAN FD 总线通信,对于媒体娱乐设备使用以太网(Ethernet)通信。各种总线通过网关(Gateway)进行信息交互,图4 是CAN FD 在某款量产车型的典型应用。
图4 CAN FD 的典型应用
在进行CAN FD 总线通信速率测试时,意外发现,当单片机主频低于CAN FD 数据场的传输速率时,收到的报文出现错误,但是CRC 校验并没有发现错误。虽然这种情况在实际应用中少见,但是仍会降低数据通信的安全性和可靠性。为解决上述问题,提高总线网络通信安全,CAN FD 可在数据场增加安全设计,保证传输数据的正确性。
通过对数据场的前62 个字节进行CRC-16 校验,得到的16 位校验码高8 位和低8 位分别存放在数据场的第63 B和64 B。CRC-16校验多项式为x16+x15+x2+1,校验码的初始值为0,校验采用查表方法。例如接收到的一帧报文前62 个字节均为0xAA,最后2 个字节0xFE和0xD5 即为校验码。经过增加CRC-16 校验,上述情况不再出现。
鉴于不同网络节点对通信的实时性要求不尽相同,并且市场上有规模数量庞大的基于CAN 通信的微控制器,CAN 总线到CAN FD 的全面升级短时间内难以实现。在同一网络CAN 节点和CAN FD 节点的兼容,对车载网络性能的提升和CAN FD 总线的推广和工程化应用具有十分重大的意义。
如图5 所示,在同一网络中,CAN FD 节点能够收发CAN 或CAN FD 报文,但是当总线上有CAN FD 报文时,CAN 节点因不能识别,将向总线发送错误报文,影响正常通信。目前,为实现CAN 和CAN FD 控制器在车上同时存在,主要有三种实现方式:第一种是CAN 节点和CAN FD 节点分网运行,通过网关进行信息交互;第二种方式是对CAN 节点采用具有滤波模式的收发器,通过CAN FD Shield 技术能够拒收同一网络上的CAN FD 报文;第三种方式与第二种类似,CAN 节点设计时采用具有休眠唤醒功能的收发器,通过向总线发送特定的报文使收发器进入休眠和唤醒状态。
图5 CAN 与CAN FD 总线的两种状态
经过测试,向总线上发送一帧CAN 唤醒报文,至CAN 节点成功发出第一条报文,时间间隔不超过20 ms。两种状态切换非常高效,能够实现兼容应用。
另外,广州致远电子有限公司通过采用MCP2517FD(一款SPI 转CAN FD 控制器模块),将微控制器扩展成CAN FD 控制器,从而实现CAN FD 通信[9]。但是需要原控制器支持并新提供一路SPI 接口,不仅硬件更改,软件层面也需大量的更改。综合比较而言,采用具有休眠功能的收发器实现CAN 和CAN FD 在同一网络的兼容性价比最高。
为充分验证CAN FD 网络的工程化应用,根据国内某整车厂提供的汽车级CAN 总线网络拓扑结构如图6所示,搭建实验台架进行网络通信性能测试。其中涉及的一个重要问题就是CAN FD 网络的终端电阻匹配问题。不同于传统CAN 网络终端电阻120 Ω 的经验匹配方法,实验发现在不同的位置布置120 Ω,60 Ω,30 Ω 等不同电阻或者组合布置,很难保证所有节点都能正常参与通信。
由于CAN 协议规定,显性与隐性差分电平的识别要在一定阈值范围内[10],因此研究终端电阻的匹配对总线物理信号的影响,并通过优化算法匹配电阻,改善信号质量,提升网络通信性能非常重要。比较可行的方法是在Saber 软件中搭建电路模型,在Matlab 中导入仿真数据并处理数据,通过优化算法得到新的电阻值,代入Saber 模型中进行进一步仿真。这里提出的电阻优化算法是基于粒子群的参数优化算法,联合Matlab 和Saber软件进行仿真如图7 所示。在之前的研究中,已成功将联合仿真应用于改善CAN 网络的通信质量,并经过实验得到验证。由于软件的限制,在Saber 中暂时不能加载CAN FD 收发器模型,希望能够在以后得到进一步验证。
图6 汽车级CAN 总线网络拓扑结构
图7 联合仿真匹配终端电阻流程图
CAN FD 总线具有传输速率快、数据场较长和改善的CRC 检验方式等特点,能够弥补目前CAN 通信应对当前新应用场景存在的不足,有潜力成为新一代总线;CAN FD 能够降低总线负载率,提高程序在线升级刷写速度,在车载网络领域具有很大的应用前景。实现CAN FD 和CAN 在同一网络的兼容,增加CRC 校验设计提高安全性,通过联合仿真方法优化匹配终端电阻保证通信信号质量,推动CAN FD 总线实现工程化应用。