DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1592|回复: 0
打印 上一主题 下一主题

[待整理] CAN和光纤实现电动汽车动力电池组采集系统

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 20:12:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
电池是电动汽车的能量来源,电动车发展的主要技术瓶颈就是电池技术的发展。对电池性能的研究就离不开大量的实验数据,动态采集电动车电池组的参数是研究电池性能的重要途径。

根据锂离子电池车载系统的特殊环境及对电池参数的测试要求, 本系统采用CAN和光纤通信技术,使用电池管理专用IC,使系统的实时性、可靠性和抗干扰能力大大增强, 而且系统易于扩展,灵活性好,能够准确采集电池的各个参数,准确地采集数据并预测电池的运行状态,从而提高了电池组的使用寿命。

  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 系统主程序流程图

  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 结论

本文还对系统进行上位机的软件设计与开发,能够采集并存储大量的测试数据,为建立完善的电池组数据库提供了可靠的数据资源,对电池技术的发展与完善作出可靠的实验数据。本系统还可以通过打开保存的数据文件,经分析计算电池组一致性、电池组容量、电池组内阻等重要参数,统计分析电池状态,打印电池运行报告。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-27 14:51 , 耗时 0.084314 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表