基于CAN总线的电动汽车动力电池组采集系统设计
1 基于CAN 总线的系统硬件设计
CAN 总线是目前世界上最流行的汽车控制与测试间的一种串行数据通信协议,具有实时性强、抗干扰能力强、结构简单、应用方便、价格低廉等特点[4],通信速率可达1 Mbps,使得CAN 总线在电动汽车应用上成为发展趋势。
图1 为一般电动车CAN 总线网络框图。CAN 总线接口电路的核心是使用8 位高性能的片内含CAN 控制器的P87C591 作为CAN 通信控制器,以完成CAN 的通信协议,而CAN 总线收发器的主要功能是增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI)等。
图1 一般电动车CAN 总线网络框图
本系统中共有16 组,每组有10 节电池串联,每1 个电池组配置1 个测量单元。每个单元采用一种设计非常简化的电池测量方法,由一个IC 集成了大部分电池参数的采集任务,结构简单,精度高,可靠性高。本设计采用电池管理芯片LTC6802,它通过一个1 MHz 串行接口进行通信,并包括温度传感器输入、12 位ADC 和一个精准的电压基准。每个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 系统主程序流程图[next]
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 是电池组实时采集的单节电池电压与总电流实时曲线,
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)