基于dSPACE的电动汽车通信协议的研究与仿真
2021-06-03彭飞帆李晓倩
彭飞帆,李晓倩,曹 铭,2
(1.南昌大学,江西南昌 330031;2.江西省汽车电子工程技术研究中心,江西南昌 330031)
随着电动汽车快速发展,充电设施也在迅速普及。电动汽车电池组设计不同,充电协议设计往往存在差异,可能会造成充电设施无法兼容。以非车载充电机为例,由于充电通信协议不统一,充电机只能配套用于指定厂家电动汽车。
为了推动电动汽车充电方式标准化,实现不同品牌规格电动汽车与充电机互联互通,国家出台相关标准,建立了比较完善的标准体系。但标准中存在少数非车载充电机与BMS 通信协议不兼容现象[1-2]。BMS 与充电机之间的正常通信是保证充电设施与电动汽车正常安全高效工作的关键,BMS 与充电机的通信测试也是充电时必不可少步骤,同时也能验证协议实现与协议标准的一致性,降低协议实现在实际运用时的错误率[3]。
本文设计了基于dSPACE 的BMS 充电协议开发测试平台,建立了基于Simulink 的BMS 端充电模型及策略,在dSPACE 上实现BMS 与充电机通信模拟,验证了BMS 充电模型兼容性。
1 dSPACE 实时仿真平台
dSPACE 实时仿真平台是由德国dSPACE公司开发的一套基于MATLAB/Simulink 的控制系统在实时环境下的开发及测试工作平台,实现了和MATLAB/Simulink/RTW 等上位机软件的无缝连接[4]。本章将对dSPACE 的软硬件组成以及基于dSPACE的充电通信仿真平台的总体结构进行简单介绍。
1.1 dSPACE 的软件与硬件
dSPACE 实时仿真平台由两大部分组成,一是硬件系统,二是软件环境。本实验环境所使用的dSPACE 的硬件主要由快速原型单板系统、CAN 通讯板卡和电源等组成。其中快速原型单板系统核心组成为DS1103 主控制器板,其采用了主频为250 MHz 的MPC8240 PPC 处理器;内置4×16 位、4×12 位AD 转换器和8×16 位DA 转换器;配置有20 路并行I/O;包含RS232/RS422/RS485 串行接口等。
dSPACE 的软件环境主要包括两部分,一部分是实时代码的生成和下载软件RTI(Real-Time Interface),它是离线工具与实时工具的接口,能够完美地集成于MATLAB/Simulink,实现从Simulink 模型到dSPACE 实时硬件代码的自动下载;另一部分是实时测试软件Controldesk、实时处理器通信软件CUB 以及自动试验和参数调整软件MLIB/MTRACE等[5]。
1.2 充电通信仿真的总体结构
由图1 可以比较直观地看出整个仿真的基本流程:首先在MATLAB/Simulink 软件中搭建充电模型,通过RTI 实时接口与dSPACE 仿真机相关联,然后使用Controldesk 实现对仿真的控制和监控,并通过CANTesk 来观察模拟通讯过程。
图1 仿真基本流程
根据仿真实验所需条件,在实验室搭建了基于dSPACE的通信仿真平台,平台实物图如图2 所示。实验平台包括dSPACE 快速原型单板系统DS1103 板卡、板卡接口、USBCAN-2E-U 以及计算机控制平台。
图2 实验平台实物图
2 充电机与BMS 的通信协议实现
2.1 通信协议总体流程
为了保证一致性,GB/T 27930-2015 规定了非车载充电机与BMS 之间通信的基本步骤。如图3 所示,整个充电过程包括物理连接完成、低压辅助上电、充电握手、充电参数配置、充电以及充电结束等六个步骤。根据通信协议流程,在物理连接之后的各个步骤,充电机和BMS 如果在规定时间内没有收到对方报文或正确报文,即判定为超时,出现超时后,充电机或BMS即发送协议规定的错误报文,进入错误处理状态[6]。
图3 充电总体流程图
2.2 J1939 协议在dSPACE 平台上的实现
J1939 协议是由美国汽车工程师协会(SAE)定义的一组标准。此协议对CAN 物理层、数据链路层、应用层、网络层、故障诊断和网络管理都作了相关规定。目前dSPACE 自带的RTI 实时接口能够实现CAN 报文的收发和CAN 模块的简单配置,并且支持DBC 数据库的配置,但dSPACE 尚未搭载基于J1939 协议的配置模块,因此将通过dSPACE/Simulink 搭建相关模型来遵循协议的规定。
2.2.1 通信协议DBC 数据库的建立
根据协议的定义,每个CAN 数据帧包含一个单一的协议数据单元(PDU),即报文格式。遵循协议规定的报文格式,即可建立BMS 与充电机通信的DBC 数据库文件。如图4 所示,DBC 文件能完整地定义CAN 通信的信息,包括CAN 网络节点、报文以及信号等。CAN 网络的通讯就是根据DBC 文件提供的信息进行的,建立完整准确的DBC 文件可以说是实现CAN 通讯的基础。
图4 DBC 文件的建立
2.2.2 J1939 的多帧传输机制
根据CAN 通信协议的规定,长度超过8 个字节的消息无法通过单个数据帧进行传输,如通信协议中的BRM、BCP 和BCS 报文,这些消息需要被拆分为多个数据帧进行传输,本次通信测试对于这些报文的发送遵循J1939 协议多帧传输的相关规定。J1939 的多帧传输机制就是将长度超过8 字节的数据分成多个数据帧进行传输,格式上占用数据域的第一个字节当作每一帧的编号,即每一帧只能传输7 个字节的数据,则多帧传输的最大数据长度为1 785 字节[7]。
针对多帧传输,J1939 协议规定了一种特定参数组:连接管理,其包括请求发送(TP.CM/RTS)、准备发送(TP.CM/CTS)以及消息结束应答(TP.CM/EndofMsgAck)等报文。在本文所介绍的充电模型中,需要发送内容较长报文时,将由BMS 端发送请求发送报文,充电机端接收到该报文后发送准备发送报文,BMS 收到准备发送报文后,随即开始将已拆分好的数据包依次发送。数据包发送完毕后,充电机端发送消息结束应答报文,结束此报文的发送。
3 基于dSPACE/Simulink 的充电通信模型搭建
通信协议GB/T 27930-2015 中详细解析了整个充电通信的过程,本章将介绍BMS 端的充电通信模型、报文接收发送的实现以及基于Stateflow 的充电时序流程的建立。
图5 为基于Simulink 搭建的BMS 端的充电通信模型,模型外部主要包括报文接收、充电时序流程图和报文发送三个模块。
图5 充电通信模型总览
3.1 接收报文的实现
本模型使用dSPACE 实时接口扩展的RTI CAN 模块组将dSPACE 系统与CAN 通信网络结合,通过Simulink 来配置CAN 通信。根据通信协议,本文所搭建的模型需要实现充电机报文接收和BMS 报文发送,而充电机报文均为单包发送,BMS 报文包括单包和多包发送。这里以CHM 接收模块为例,展示基于RTI CAN 的报文接收模块的设计。
图6 所示为充电机握手报文(CHM)的单包接收模块。为了提高CAN 总线的利用率,达到尽可能快的接收速度,报文接收方式采用中断触发(Interrupt)[8]。模型使用dSPACE 程序模块接收中断器(CAN RX Interrupt)来发送触发信号,此信号能触发功能调用子系统(Function-Call Subsystem)中的接收模块(RTI CAN Receive Message)进行报文接收。
图6 CHM接收模块
3.2 发送报文的实现
单包报文发送与单包报文接收类似,不同的是发送报文触发方式采用使能触发,使能信号控制使能子系统中报文发送模块(RTI CAN Transmit Message)发送相关报文。由于本模型是基于BMS 端的通信模型,主要承担发送BMS 端报文和接收充电机端报文作用,本节将重点介绍BMS 多包发送设计和实现。图7 为多包发送实现流程。
图7 多包发送实现流程
通信协议中需要进行多包发送的内容较长报文有BRM、BCP 和BCS,根据J1939 多帧传输协议,多包发送开始条件是BMS 接收到充电机发送准备发送报文(CTS),但由于同个发送节点连接管理报文帧ID 相同,需要BMS 能够识别所接收的是哪个报文的连接管理报文。模型通过选择(Switch)函数,根据接收到的CTS 报文内容的PGN 来判断即将进行的是哪个报文的多包发送,然后触发相应报文使能子系统开始此报文发送。以BRM 报文为例,当BMS 收到BRM 的CTS 报文,即开始发送第一帧数据;由于多帧传输机制规定各数据帧的第一个字节为帧的编号,模型设定除第一帧外,其他各数据帧的发送由上一帧的帧编号控制,当第一帧发送结束,模块识别数据帧第一个字节数值为1,则触发第二帧报文发送,以此类推。当所有数据帧发送完毕,则停止发送,并等待充电机发送结束应答报文(ACK),BMS 接收到ACK 报文,即结束此多包发送。
3.3 充电流程的建立
本模型根据通信协议规定的BMS 端充电时序流程图,基于Stateflow 建立了完整逻辑状态图,能够实现对报文发送使能控制、接收报文成功标志位读取以及超时判断。
以如图8 所示的充电握手阶段的逻辑状态图为例,物理连接完成后充电机与BMS 通过低压电源辅助上电,进入充电握手阶段。由充电机向BMS 发送充电机握手报文,标志位R/CHM 置1,表示BMS 收到CHM,此时车辆握手报文(BHM)发送使能为高电平,BMS 随即开始向充电机发送BHM 报文,等待接收充电机辨识报文(CRM),若在30 s 内为正确接收CRM报文,则进入超时状态,开始发送BMS 错误报文(BEM)。BMS 正确收到CRM 报文后,BHM 报文随即停止发送,然后开始发送BMS 和车辆辨识报文(BRM),BRM 发送完毕后充电机向BMS 发送0xAA 的CRM 报文,BMS 收到报文后即停止BRM 报文的发送,准备开始向充电机发送动力电池参数报文(BCP)。接下来的几个阶段的进行也同充电握手阶段类似。
图8 充电握手阶段逻辑状态图
4 基于dSPACE/Controldesk 的通信测试
为了验证通信模型的正确性和可靠性,更贴近实际地模拟仿真对象实时通信情况,获得更可靠和准确的仿真结果,本文以dSPACE 仿真平台模拟BMS 节点,计算机模拟充电机节点,通过dSPACE 控制BMS 通信模型,实现BMS 与充电机的模拟通信。本章将对Controldesk 仿真用户界面和通信测试结果进行介绍。
4.1 Controldesk 仿真用户界面
通信协议的仿真测试通过dSPACE 实时仿真平台来实现。Controldesk 是dSPACE 的上位机软件,可以通过此软件控制由MATLAB/Simulink 等软件搭建的模型,在dSPACE 平台进行仿真测试。Controldesk 可以根据模型需要设计模块化用户界面,对模型的仿真进程进行控制,并能为仿真的某些状态和重要结果提供实时显示。
图9 为本次通信测试所设计的用户界面截图,根据通信模型,该用户界面能够实现对充电过程开始和中止的控制以及通信过程相关报文收发状态的显示。除此之外,该界面还能通过采集相关报文的数据,显示充电过程的相关信息,包括当前荷电状态(SOC)、累计充电时间、预计剩余充电时间、充电电压、充电电流等。
图9 Controldesk仿真用户界面
4.2 通信测试结果
通信测试结果主要由通信报文的收发情况来体现。报文是充电机与BMS 之间数据传输的重要载体,其装载了如充电电压、充电电流以及当前荷电状态等充电过程中的状态参数,因此实现通信报文的正确收发是充电机与BMS 完成通信的基础。
本章已介绍过以dSPACE 模拟BMS 节点,计算机模拟充电机节点,通过CAN 接口卡USBCAN-2E-U 与dSPACE 主控板DS1103 的CAN 接口和计算机相连接,实现对CAN 信号的读取,并通过上位机软件CANTest 实现报文的发送和接收。图10 为CANTest 报文监控界面截图,图中省略了循环接收的报文,只显示协议所规定的必要报文的收发情况,并对这些报文进行了相关注释。
图10 CANTest报文监控界面
在测试过程中,首先将搭建好的通信模型导入Controldesk 与dSPACE 建 立 连接,由Controldesk 控 制和 监 测通信测试的进程,通过CANTest 提前设定好作为充电机端需要向BMS 端发送的报文,仿真开始后,CANTest 即向dSPACE发送第一帧报文,dSPACE 根据通信模型接收并处理后,向模拟充电机端发送回应报文,由CANTest 接收并根据设定自动向dSPACE 发送下一帧报文,由此实现充电机与BMS 的模拟通信。
5 结论
本文以国标充电协议为基础,基于MATLAB/Simulink 搭建了BMS 端的通信模型,介绍了通信协议的实现以及报文接收与发送的模块设计,通过dSPACE 实时仿真平台模拟BMS节点实现与CANTest 模拟充电机节点的通信测试。CANTest通讯结果表明所搭建的模型能正确模拟BMS 端实现与充电机的通信,验证了BMS 充电模型的设计。BMS 充电模型可作为BMS 硬件在环测试的基础,下一步将继续完善此模型,力争在实车和充电机上进行通信应用测试。