电动汽车动力系统CAN网络设计及测试分析
2018-01-18杜常清朱体刚
杜常清,朱体刚
(1.武汉理工大学 现代汽车零部件技术湖北省重点实验室,武汉 430070;2.汽车零部件技术湖北省协同创新中心,武汉 430070)
与传统的内燃机汽车相比,电动汽车动力系统中增加了电机驱动模块和动力电池模块;一般传统的内燃机汽车没有整车控制器,因此电动汽车动力系统在结构、控制等方面更为复杂。整车控制器(VCU)、电机控制器(MCU)和电池管理系统(BMS)这三者之间的通信直接影响到电动汽车的运行状态,开发一套实时性高、可靠性好的动力系统CAN网络对于电动汽车来讲十分重要。通信协议的制定是CAN网络设计过程中的关键环节。由于电动汽车动力系统与传统的内燃机汽车在结构原理、控制方式上的差异,已经成功应用于传统内燃机汽车上的通信协议并不能完全适用于电动汽车。此外,目前的电动汽车动力系统CAN网络的应用层协议的制定并不统一。因此,制定一套适用于电动汽车动力系统的CAN通信协议具有较大的实用意义。
CANoe(CAN open environment)是德国 Vector公司开发的一款总线开发环境,是CAN通信网络开发、测试和分析的专业工具,支持从需求分析到系统实现的整个系统的开发过程,具备提高工作效率、节省开发成本、工作可靠等优势。以某微型客车改装而成的电动汽车为载体,参照SAE J1939协议制定了动力系统应用层协议;利用CANoe搭建仿真模型并对设计的CAN网络进行性能分析;在CANoe提供的环境中接入真实的通信节点硬件,进行硬件在环测试CAN网络性能;验证了设计的CAN网络的可靠性和实时性,以及所制定的应用层协议的有效性和可行性。
1 动力系统CAN网络的设计
电动汽车动力系统的核心由3大部分组成:整车控制器(VCU)、电机与电机控制器(MCU)以及电池与电池管理系统(BMS)。VCU主要通过获取驾驶员的操控指令和行车状态,如制动踏板信号、加速踏板信号、档位信号等,经过判断处理后再将相应的控制指令发给其他控制单元如MCU,以实现对整车状态的控制。MCU一方面实现将电池提供的直流电转换为电机运行所需的高压交流电;另一方面,通过接收VCU发送的车辆运行状态控制指令,来控制电机的运行状态,如输出转矩、输出转速等,并将电机当前状态反馈给VCU。BMS则实现对电池状态的监测作用,进行电池的SOC估算,防止电池过充电或者过放电,提高电池利用率和使用寿命,并及时与VCU进行通信,将电池状态反馈给VCU。
动力系统的通信主要存在于VCU、MCU、BMS三者之间,实现对整车运行状态的控制,因此动力系统CAN网络中主要包括3个节点,此外还有1个仪表显示(HEC)节点。HEC节点在CAN网络上处于只接听不发送的状态,接收网络中的整车行驶信息、电机运行信息以及电池状态信息等并实时显示。
CAN网络有多种不同的拓扑结构,其中的总线型结构实时性好;错误检测校正能力强,系统可靠性高;能判断错误节点,具有故障节点自动脱离的功能。因而,采用总线型CAN网络结构从理论上讲能够满足可靠性和实时性的要求。图1为设计的电动汽车动力系统CAN网络结构及信号流动图。
图1 电动汽车动力系统CAN网络结构及信号流动Fig.1 CAN network structure and signal flow diagram of electric vehicle power system
2 动力系统CAN网络通信协议的制定
CAN网络通信协议的制定通常包括3个方面:数据链路层、物理层和应用层。数据链路层的主要功能是保证总线上节点之间数据的可靠传输,ISO 11898-1协议对数据链路层做了完整的定义,且不可随意更改。物理层的设计主要涉及物理层接口的机械、电气、功能和过程特性以及传输介质等,这些主要通过硬件来实现,目前已有相应的国际标准可供参考。而对于应用层来讲,主要定义通信过程中所用到的各种参数,包括源地址(SA)、优先级(P)、参数群编号(PGN)等,完成标识符(ID)的设定、报文携带数据的分配、报文发送与接收节点的定义等[1]。
由于应用层协议与实际应用联系紧密,目前没有针对电动汽车应用层制定特定的标准;另一方面,应用层协议也是动力系统可靠实时控制的重要保证。因此,制定动力系统CAN网络通信协议主要是制定应用层协议。本设计中主要参考SAE J1939的规范来制定适用于电动汽车动力系统的应用层协议。
2.1 应用层协议制定原则
2.1.1 节点源地址(SA)分配原则
源地址场长8位,网络中一个特定的源地址只能分配给一个设备,因此源地址确保CAN标识符符合CAN协议中的唯一性要求。根据SAE J1939-81来定义该电动汽车动力系统节点源地址。0~127都不受产业类群和汽车系统的约束,可以分配给最常用的 ECU;128~247 留给行业特定分配;248~253 留给特殊的ECU。整车控制器(VCU)属于新定义的节点,可以使用208~231这段属于公路用车的预留地址;电机控制器(MCU)和电池管理系统(BMS)可在231~247中进行安排。
2.1.2 优先级(P)制定原则
优先级可以从最高0(0002)设置到最低7(1112),所有控制消息的默认优先级是3(1102),请求和应答报文的默认优先级为6(1102)。总线上通信量发生变化时优先级可以发生改变。
2.1.3 参数群定义原则
对各ECU节点的参数进行定义时应尽量将相同功能的参数、相近刷新率的参数以及同属一个子系统的参数放在相同的参数组中,以此来减少报文数量,达到降低总线负载的目的。参数群编号(PGN)应按照参数组的重要程度来定义,主要用协议数据单元格式(PF)和群扩展场(PS)共同决定[2-4]。
2.2 CAN网络节点参数群定义
根据功能需求,VCU、BMS和MCU 3个节点总共发出7条报文,这3个节点之间存在信息交流,HEC节点接收VCU发送的部分信息,实时显示车辆运行状态。根据应用层协议的制定原则,可以确定动力系统各个参数群的参数。报文的标识符(ID)中包含了报文的源地址、目标地址、报文优先级等信息,是CAN网络中进行仲裁和接收滤波的重要依据。动力系统中传输的信号多为状态信号,这里采用29位标识符(ID28~ID0)的帧格式来定义通信报文。图2为SAE J1939协议中29位ID的对应关系,由此可确定各条报文的ID。表1中列出了参数群的参数定义。
图2 SAE J1939协议中29位ID的对应关系Fig.2 Corresponding relation of 29 bit ID in SAE J1939 protocol
表1 参数群定义Tab.1 Parameter group definition
2.3 CAN网络节点输出参数定义
信息类型可以根据触发方式分为固定周期型信息、事件触发周期型信息和非周期型信息,一般可将非周期型信息合并到固定周期型信息中[5]。本设计中的信息类型为固定周期型。在数据场中进行字节和位的分配时,应考虑总线带宽的利用率,尽量将相同节点发送的信号装载到同一帧报文中进行传输。
根据电动汽车动力系统需要实现的功能来顶一个个节点的输出参数,主要包括信号的发送周期、字节和位的分配、目标地址以及分辨率、偏移量等。表2中定义了报文的发送周期,介绍了每条报文中包含的具体内容。表3以VCU1这条报文为例,给出了相应的输出信号参数,在制定通信协议时,其他报文的参数也应符合相应的规定。
表2 各节点报文信息Tab.2 Information of each node
表3 VCU1信号输出参数Tab.3 Signal parameter of VCU1
3 CAN网络性能仿真测试与硬件在环测试
3.1 测试环境构建
CAN网络的测试过程在CANoe提供的环境中进行,可以分别实现虚拟仿真和硬件在环测试。
在进行CAN网络仿真时,由于在使用CANoe软件建模之前已经制定了应用层协议,把已有的协议通过CANoe创建网络配置文件,通过对网络配置文件中的每个报文的信号进行定义,相当于把整个应用层协议输入到了CANoe,当运行该网络模型时即可模拟整个网络的运行状况。如图3所示为搭建的动力系统CAN总线网络。
图3 动力系统CAN总线网络Fig.3 Power system CAN bus network
利用CANoe进行硬件在环测试时,需要将模型中的虚拟节点从总线上断开,再将真实的节点通过CANoe提供的硬件接口连接,完成各个真实节点的信号通道与CANoe中的信号通道匹配,实现真实节点在CANoe环境下的通信。
3.2 CAN网络性能仿真测试
CAN网络性能的好坏主要体现在实时性和可靠性方面,而CAN网络的负载率直接影响到网络的可靠性和实时性,负载率越高,CAN网络上报文延迟时间越大,丢帧的可能性越大,进而导致CAN网络的实时性和可靠性变差。波特率和报文发送周期是影响CAN网络负载率的主要因素,可以通过CANoe的虚拟仿真环境进行测试。
3.2.1 波特率对CAN网络负载率影响的仿真
波特率是对信号传输速率的一种度量,网络设定不同的波特率时,其负载率也必然不同。CAN总线上的通信速率最高可达1 Mb/s,仿真测试了报文发送周期为50 ms时,波特率从100 kb/s~1 Mb/s变化的CAN总线上的负载率,将不同波特率下对应的总线负载率绘制成曲线,如图4所示。当总线波特率越大时,负载率越小,100 kb/s波特率下对应的负载率为52.36%,而当波特率为1 Mb/s时负载率骤降到8.06%;随着波特率的增大,负载率降低的程度也越来越小,即波特率对负载率的影响在逐渐变小。
图4 总线负载率与波特率关系曲线Fig.4 Curve of bus load rate and baud rate
由于在实际应用中,波特率的设定需要考虑硬件性能,波特率高时相应的硬件配置要求也越高;此外,虽然波特率高时有利于降低总线负载,但是过高的波特率会造成总线利用率降低。在一般的设计中,CAN总线系统要求负载率不超过30%,最佳负载率不超过25%[6]。综合上述的条件因素,可将总线波特率设定为500 kb/s,此时仿真测试的总线负载率为19.07%。
3.2.2 报文发送周期对CAN网络负载率影响的仿真
通常情况下,报文的发送周期越长,总线的负载率越低。这里仿真测试了波特率为500 kb/s时,不同报文发送周期对应的总线负载率,绘制成总线负载率与报文发送周期关系曲线,如图5所示,当报文发送周期增大时网络负载率有明显下降。但是报文发送周期过长又可能导致实时性变差,选择适中的报文发送周期是保证实时性的一种途径。
图5 总线负载率与报文发送周期关系曲线Fig.5 Curve of bus load rate and message transmission cycle
图6是CANoe中的总线统计窗口,仿真设定的波特率为500 kb/s、报文发送周期为50 ms。从窗口中可以看到仿真测试的总线负载率为19.07%,峰值负载率为19.11%,没有出现错误帧,网络运行状态良好。
图6 仿真测试时的总线统计窗口Fig.6 Bus statistics of simulation
3.3 CAN网络硬件在环测试
硬件在环测试是将真实的MCU、VCU和BMS 3个真实的节点通过CANoe硬件接口连接,在CANoe环境下实现相互通信,并监测该通信网络的工作状况[7]。根据仿真测试的结果,将硬件在环测试的网络波特率设定为500 kb/s,报文发送周期为50 ms。从如图7所示的总线统计窗口中可以看到,总线负载率为21.16%,峰值负载率为22.96%,没有出现错误帧。
图7 硬件在环测试时的总线统计窗口Fig.7 Bus statistics of hardware in the loop test
CANoe中的write控件统计了各条报文的发送时间间隔,统计结果如表4所示。设定报文发送周期为50 ms,在虚拟节点的仿真测试中,各条报文发送周期认为50 ms,没有出现延迟;硬件在环测试中的各条报文均有延迟。报文延迟时间可以分为4个部分[8]:
(1)生成延迟:从发送节点处理器接收到本节点的请求,到它将准备好的数据写入缓存队列里的时刻。
(2)队列延迟:从消息帧进入发送缓存到消息帧获得总线控制权的时刻。
(3)传输延迟;从消息帧占据总线到消息帧脱离总线的时刻。
(4)接收延迟:从消息帧脱离总线到将其中的有效数据提供给接收节点微处理器中目标任务的时刻。
表4 报文延迟时间统计对比Tab.4 Statistical comparison of packet delay time
虚拟节点仿真时整个通信过程处于理想状态,故而没有出现报文延迟。而硬件在环测试时是真实节点之间的通信,按照现在的微处理器水平,生成延迟和接收延迟可以忽略不计,但是存在队列延迟和传输延迟,因此各条报文均出现延迟。此外,从VCU节点发出的报文延迟时间相对最小,而从BMS节点发出的报文延迟时间最大,这主要是因为VCU节点发出的报文优先级最高,产生的队列延迟最小,相对延迟时间最短;而BMS节点发出的报文优先级最低,产生的队列延迟最大,相对延迟时间最长。
实时性与总线负载率又是相互影响的,报文延迟在一定程度上会造成相应的总线拥堵,使得总线负载变大。因此在相同的通信参数配置下,由于硬件在环测试存在报文延迟,总线负载率要比仿真时的略高。
从硬件在环测试结果来看,报文延迟时间均不超过0.5 ms,延迟率均控制在1%;总线负载率也在最佳负载率25%以内。整个CAN网络工作正常,具有良好的可靠性和实时性。
4 结语
以某微型客车改装而成的电动汽车为载体,基于SAE J1939协议,系统介绍了电动汽车动力系统应用层通信协议的开发流程。利用CANoe提供的软件和硬件分别做了CAN网络的仿真测试和硬件在环测试。仿真和测试的结果表明,设计的CAN总线型网络运行状况良好,总线峰值负载率为21.16%,控制在最佳负载率25%以内;报文最大延迟时间不超过0.5 ms,延迟率在1%以内;证明了制定的应用层协议是可行的,设计的CAN总线型网络具有良好的实时性和可靠性。
[1]李芳,张俊智,王丽芳,等.电动汽车动力总成系统控制器局域网(CAN)总线通信协议[J].机械工程学报,2008,44(5):102-107.
[2]罗峰,孙泽昌.汽车CAN总线系统原理、设计与应用[M].北京:电子工业出版社,2010.
[3]袁传义,吴志新,刘成晔,等.应用于电动汽车的CAN网络应用层协议研究[J].工矿自动化,2012(7):29-32.
[4]万晓凤,张燕飞,余运俊,等.基于嵌入式的纯电动汽车CAN总线通信及实现[J].计算机测量与控制,2013,21(10):38-42.
[5]刘龙龙,杨正林,盖福祥.深度混合动力汽车CAN网络设计及研究[J].机械设计与制造,2015(1):35-38.
[6]马付屹,郭朋彦,张瑞珠,等.基于CANoe的AMT汽车动力总成控制系统 CAN 通信设计[J].汽车电器,2015(2):34-36.
[7]Peter Waeltermann,Thomas Michalsky,Johannes Held.Hardwarein-the-loop testing in racing applications.SAE Paper 2004-01-3502.
[8]李佳,朱元,田光宇.CAN与TTCAN通信延迟时间的分析[J].清华大学学报:自然科学版,2006(2):261-265.