CAN和光纤实现电动汽车动力电池组采集系统
准。每个LTC6802 能测量12 只单独电池,实现了0.12%(在室温条件下)和0.22%(在-40 ℃至+85 ℃的温度范围内)的准确度,能够承受60 V 的共模电压,完全适合在电池组高共模电压的要求。LTC6802 采用串行外部设备接口(SPI) 进行命令和数据通信, 本论文使用P87C591 的IO 模拟SPI 工作方式与LTC6802 进行数据通信,此方法可以更充分地使用硬件资源(见图2 所示)。
图2 基于CAN总线的电池组ECU采集系统的结构
每个测量单元的控制器均采用内部集成了CAN控制器SJA1000和A/D模数转换模块的单片机P87C591芯片,其主要功能是提供电池组的电压和温度信息,并将采集的信号通过CAN总线发送给电池管理ECU,其中CAN通讯接口电路如图3所示。
图3CAN通讯接口电路
电池组的ECU 与电池管理ECU 组成一个CAN 总线网络,网络拓扑结构为总线形,传输介质为双绞线,传输协议为CAN2.0B。电池管理ECU 为双CAN 控制器结构,一个CAN控制器与电池组ECU 组成电池管理系统内部的CAN 网络,另一个CAN 控制器与汽车中其他控制系统组成整车光纤CAN 总线网络,能实现多机通信,并达到上位机控制和电池组状态信息的采集。
2 系统软件设计
本系统采用8051 系列的C 语言进行软件编程,按照模块化设计思想进行编写,包括主程序、CAN 初始化程序、CAN发送数据程序、CAN 接收数据程序、A /D 转换及定时中断程序等。CAN初始化程序用来实现CAN 工作时的参数设置,主要包括工作方式的设置、时钟输出寄存器的设置、接受屏蔽寄存器和接收代码寄存器的设置、总线定时器的设置、输出控制寄存器的设置、中断允许寄存器的设置和总线波特率的设置。系统主程序流程设计如图4 所示,主要包括初始化和主循环部分。
图4 系统主程序流程图
3 基于USB-CAN的数据采集
LabVIEW主要用于仪器控制、数据采集、数据分析等领域,是一个功能强大、方便灵活的虚拟仪器开发环境,它提供了大量的连接机制,通过DLLs、共享库、ActiveX等途径实现与外部程序代码或软件系统的连接。
本系统的上位机设计采用USB-CAN模块与电池管理系统BMU进行数据通信,通过USB-CAN模块对CAN总线上的数据进行实时采集。Virtual CAN Interface(VCI)函数库是专门为ZLGCAN设备在PC上使用而提供的应用程序接口。库里的函数从ControlCAN.dll中导出,在LabVIEW中可以通过调用动态链接库的方法直接使用这些库函数实现对电池组数据的实时显示、存储与分析,更好的记录电池组动态的各个参数。上位机主要功能是对电压、电流、温度数据实时曲线显示,数据记录与历史数据显示,并且对电池组参数进行统计分析,包括动态运行过程中单节电池最高电压、最低电压、最大输出电流、最大反向制动电流、瞬时功率、累计消耗能量等参数。VCI 函数的使用流程如图5 所示。实践证明此方法高效可靠,能够很好地满足数据采集的要求。
图5 VCI 函数的使用流程图
图6 与图7 是电池组实时采集的单节电池电压与总电流实时曲线,可以看出电池在工作过程中电压会有一定差别,这也是由于电池特性不一致所引起的。从图7 中可以看出,电池组在运行过程中最大放电电流可达到300 A,电流负值表示电动车在反向制动时的充电电流,最大可达-200 A。由于电池总是工作在充电放电过程中,所以对于电池动态数据的采集与分析是必不可少的一个环节。通过数据的采集、存储与分析,可以准确地判断电池的实际状态,为建立电池数据库提供数据资源。
图6 单节电池电压实时曲线
图7 总电流实时曲线
此外,本系统还有一个自动生成运行报告的功能,通过实际路况的数据采集对数据进行统计分析。运行报告内容包括:电池组动态一致性、最高电压、最低电压、平均电压、输出最大电流、最大制动电流、输出能量、反向制动能量、最高温度、最低温度等。
4 结论
本文还对系统进行上位机的软件设计与开发,能够采集并存储大量的测试数据,为建立完善的电池组数据库提供了可靠的数据资源,对电池技术的发展与完善作出可靠的实验数据。本系统还可以通过打开保存的数据文件,经分析计算电池组一致性、电池组容量、电池组内阻等重要参数,统计分析电池状态,打印电池运行报告。
- CAN总线镍氢电池管理解决方案(04-23)
- 基于CAN的电源控制系统设计(12-19)
- CAN总线在机车监控系统中的应用(04-04)
- MC微控器在汽车CAN/LIN网关中的应用(04-16)
- CAN通信网在汽车中的应用研究(11-19)
- 基于can总线技术的电子控制系统单元在汽车网络系统中的应用(07-16)