文献标识码: A
DOI:10.16157/j.issn.0258-7998.2017.05.016
中文引用格式: 陈如尹,赖松林. 基于事件触发的充电机与BMS通信设计[J].电子技术应用,2017,43(5):67-69,73.
英文引用格式: Chen Ruyin,Lai Songlin. Design of communication between charger and BMS based on event trigger[J].Application of Electronic Technique,2017,43(5):67-69,73.
0 引言
随着石油资源的日渐枯竭、环境污染的不断恶化、温室效应的不断加剧,电动汽车(Electric Vehicle,EV)已经成为了国际社会高度关注的热点问题。伴随着电动汽车技术的日渐成熟,与之配套的充电设施也随之发展和普及。近年来,已经投产了一定量的充电站和充电桩,主要包含快充、慢充、更换电池等功能。
电动汽车的充电过程主要是充电机与电池实现物理对接后,通过电池管理系统BMS(Battery Management System)与充电机进行通信,传递相关数据信息。充电机对BMS传输的数据进行解析和辨识后,调整充电的策略,完成电池的充电过程。因此,充电机与BMS之间的正常通信是保证整个充电系统正常工作的关键。
本文提出一种基于事件触发逻辑的充电机与电池管理系统BMS通信模块设计,该设计基于国家标准充电协议GB/T 27930-2011《电动汽车非车载传导式充电机与电池管理系统之间的通信协议》(以下简称新国标)所规定的充电机与BMS的通信流程。将该流程以其实现的功能为依据划分为多个事件,运用CAN总线建立一套可实现与BMS进行数据的请求、接收、解析和应答的通信系统,起到搭建BMS与充电机之间通信桥梁的作用。
1 基于CAN总线的充电机与BMS通信流程解析
新国标规定,BMS与充电机通信的过程可分为为握手阶段、参数配置阶段、充电阶段和充电结束阶段。
1.1 握手阶段主要通信流程
握手阶段是充电机与BMS上电后,主动发送握手请求报文CRM,可视为握手触发事件。BMS发送电池身份编码信息BRM给充电机,用于其辨识电池组。
电池身份编码信息报文BRM包含BMS通信协议版本号和电池类型等信息,最长可达41 B。BMS可启用数据传输协议TC.PM来进行数据的传输。
TC.PM协议可视为一连串固定事件的集成,BMS首先发送连接管理请求(TP.CM_RTS),该帧是用于向充电机进行数据发送的请求。充电机收到连接管理请求后,回复TP.CM_CTS报文给BMS,表示已经做好接收数据的准备。
BMS以多帧形式发送电池身份编码信息BRM,其中每一帧的首字节均为帧编号,后6字节为具体的数据信息。
在接收完电池身份编码信息BRM后,充电机发送TP.CM_EM报文给BMS,表示数据包已被成功接收。传输协议TC.PM的数据交换流程如图1所示。
1.2 参数配置阶段主要通信流程
当BMS收到充电机发送的辨识成功报文后,进入到参数配置阶段。
蓄电池充电参数BCP包括最高允许充电电压、最高允许充电电流和电池额定容量等信息数据。可通过TP.CM数据传输协议进行BCP数据的传输。
充电机接收到BCP报文后,开始发送时间同步信息报文CTS和充电机最大输出能力报文CML。BMS根据其内容完成时间的同步和确认充电机的输出能力,并判断自身状态反馈是否能够开始充电。充电机收到BMS的反馈后,同样反馈充电机准备状态。
1.3 充电阶段主要通信流程
充电阶段BMS和充电机各以不同周期实时发送充电相关数据。
BMS执行发送电池充电需求、充电状态和电池状态等信息的事件,主要可用于充电机了解电池的充电状况,根据需求来调整充电策略。
CCS报文事件为充电机发送的自身实时充电状态。该报文用于让BMS监视充电机当前输出的充电电流、电压等信息。
当BMS或充电机判断不能再继续充电时,会触发终止充电事件,发送结束充电报文BST或CST,并结束充电阶段。
1.4 充电结束阶段主要通信流程
当BMS触发终止充电事件后,主动发送统计数据报文BSD给充电机。同理,当充电机检测到终止充电命令后,也会发送统计数据报文CSD给BMS。由此充电阶段全部完成,充电机和BMS通信结束,等待充电机和BMS下一次握手启动。
2 基于事件触发的充电机与BMS通信系统的设计
2.1 硬件设计
本设计运用增强型STM32F103ZET6作为充电机端的通信模块的开发平台,运用CAN总线实现数据的请求、接收、辨识和应答等功能。
STM32内部已经集成了CAN总线模块,支持CAN2.0A和CAN2.0B。因此,需将CAN的通信端口转换并外接出来,便可以实现运用CAN发送和接收数据。基于STM32的通信系统硬件原理图如图2所示。
主芯片STM32主要实现CAN总线数据的发送、接收和处理。PA11和PA12为CAN通信的IO口,通过与TJA1040高速CAN转换器芯片连接引出CAN_H和CAN_L到外接端口P1上, P1端口用于实现与BMS的CAN端口对接,进行数据的通信。为保证通信的稳定性,并联120 Ω的R1电阻。
2.2 软件设计
本设计以实现的功能为依据将通信流程划分为多个通信事件,并将这些事件按触发或响应的顺序封装成功能函数。这种方式可以主动规范充电机的动作,避开冗余数据的接收,方便充电机上层软件的选择调用。CAN总线的初始化过程中,应将标识符屏蔽寄存器的值置高,表示要ID完全匹配才能进行数据位的传输。
数据的辨识主要通过对通信协议中的PGN来判定,PGN是美国汽车工程学会SAE J1939协议中用来识别CAN报文中数据场的参数组,共24 bit。而在新国标中,传输的每一组参数都有其固有的PGN值,从000100H~001D00H,通过对PGN值的检测,可以用于辨识参数组。
2.2.1 充电机请求握手函数
充电机请求握手函数主要实现握手阶段中针对BMS相关动作事件的触发响应,当充电机尚未识别BMS时,主动发送握手请求CRM。随后通过设立标志位进入循环等待,等待BMS发送的连接管理请求TP.CM_RTS的到来。当接收到连接管理请求后,充电机触发重置标志位动作,跳出等待循环,并答复CTS已经做好接收数据准备。
BMS发送多字节的电池身份编码信息BRM,充电机则同样触发循环等待数据的到来,并通过对帧编号的判定来确定每个数据所代表的意义。本文中为了方便上层控制端对电池身份编码信息的识别和调用,将该报文的数据通过一个结构体进行储存,结构体中每个变量的定义与协议中定义一致。在完全接收BRM后,再度重置循环标志位,跳出循环,并将辨识结果反馈给BMS。
CRM的发送周期为250 ms,发送周期的逻辑主要是通过数据接收过程中的循环计数来配合实现的,在进入循环之前设定一个带有初值的变量i,每次执行循环判断时将i的值减小,当i递减到0时,触发CRM发送函数,同时重置i。因此,只要确定i的初值,使其递减到0的时间为250 ms,即可实现CRM每250 ms发送一次。同时一旦充电机跳出循环等待进入新的通信阶段,CRM的循环发送也会终止。等待接收和循环定时发送数据功能的流程图如图3所示。
充电机握手请求函数可以根据上层软件的调用改变其发送的充电机辨识报文CRM,同时输出一个保存有电池身份编码信息的结构体。
2.2.2 充电机参数配置函数1
充电机参数配置函数1主要是在BMS和充电机进入参数配置过程中时,充电机针对BMS发出的数据请求进行回应,并接收13字节的蓄电池充电参数BCP。
该函数无输入变量,输出为一个保存有BCP的结构体。其接收BCP数据和将其保存到结构体中的方式与接收BRM基本一致。
2.2.3 充电机参数配置函数2
充电机在配置函数1中接收BMS发送的蓄电池充电参数BCP,通过参数配置函数2来主动发送时间同步报文CTS和充电机最大输出能力报文CML给BMS,之后进入循环等待,等待BMS发送的电池充电准备就绪,报文BRO来触发充电动作,循环等待方式与握手函数中一致。
2.2.4 充电机充电函数
充电阶段是整个充电通信过程中的持续时间最长、通信数据量最大的一个阶段。
相比之前模块中按流程顺序触发数据接收,充电函数采用的接收逻辑是统一接收,再通过对不同PGN的判断,进行数据的辨识。简而言之,充电机接收BMS发来的所有数据(不再是按照顺序只接收固定类型的数据),然后通过内部分析判断,对接收到的数据进行分类处理。
由于数据的类型和发送周期具有不确定性,所以在该阶段对数据的接收不采用之前的循环等待按顺序接收固定类型数据的逻辑。在接收之前,首先重新配置CAN总线的标识符设置,将屏蔽寄存器置0,表示可以接收一切ID发来的数据。然后以平等的条件判断来初步确定每次接收到的数据类型,并针对不同的种类的数据进行深入辨识,将正确的数据储存到预先定义好的各类结构体中,以供充电机其他模块的调用。
充电机在接收数据的同时,还以50 ms为周期发送充电机实时充电状态报文CCS,CCS报文的发送周期的设计逻辑与CRM报文的设计逻辑类似。充电机充电函数程序流程图如图4所示。
2.2.5 充电机结束充电函数
本设计中结束充电报文CST的发送采用外部中断(EXTI)发送,在充电阶段的任意时刻,一旦充电机认为满足终止充电的条件时,便触发外部中断事件,发送结束充电报文CST给BMS,报告终止充电的原因,随后发送统计数据报文CSD。充电机结束充电函数并不是一个单纯的外部函数,而是一个集成了外部中断的功能模块。
3 结束语
本文以充电机与BMS的新国标通信协议为基础,提出一种基于事件触发逻辑的充电机与电池管理系统BMS数据交换和处理的通信系统。
该系统通过新国标协议的事件触发时序,将数据传输流程和识别逻辑划分为事件单元并封装成外部功能函数,运用单片机STM32作为开发平台,可以在一定程度上简化上层软件的操作,并容易实现可视化相关数据参数,方便充电机其他模块的调用。
在实际充电应用中,本系统经过测试,能够按要求实现对BMS发来的数据进行接收和辨识处理,并做出正确的答复。后续进一步深入开发,可以扩展成充电机与BMS的通信中继站或通信节点,进一步优化充电机与BMS的通信流程。
参考文献
[1] [墨]Rodrigo Garcia-Valle,[葡]Joao A.Pecas Lopes.电动汽车融入现代电网[M].北京:机械工业出版社,2014.
[2] 何承坤,宋娟,周唯,等.非车载充电机与BMS通信协议标准解析与对比[J].电子科学技术,2015,2(5):598-603.
[3] 李霁雰,陈阳生,章玮.基于CAN总线的电动汽车中继站研究[J].机电工程,2015,32(3):380-383.
[4] 刘建敏,高云飞.CAN总线在电动汽车BMS系统与充电桩之间通信的应用[J].微计算机信息,2012,28(9):205-207.
[5] 张萱,马彦华,李志明.非车载充电机与电动汽车通信兼容性测试研究[J].电测与仪表,2015,52(16):101-106.
[6] 王旭,齐向东.电动汽车智能充电桩的设计与研究[J].机电工程,2014,31(3):394-396.
[7] 卫星,张建军,张利,等.电动汽车CAN网络应用层协议研究[J].电子测量与仪器学报,2011,25(9):799-804.
[8] 李然,武俊峰,王海英,等.电动公交客车CAN总线网络通信结构的设计[J].哈尔滨理工大学学报,2012,17(1):69-73.
作者信息:
陈如尹,赖松林
(福州大学 物理与信息工程学院,福建 福州350108)