当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]本文从设计要求和功能出发,设计了一种用于混合动力汽车的电池管理系统。其中硬件系统包括:电源模块、基于OZ890 的单体电压采集电路和I2C 通信电路、基于DSP 的RS232 串口通信和CAN 通信等硬件系统的设计;软件系统包括:利用周期中断和下溢中断实现数据采集处理、SOC 估算和各种通信程序。

摘要:本文从设计要求和功能出发,设计了一种用于混合动力汽车的电池管理系统。其中硬件系统包括:电源模块、基于OZ890 的单体电压采集电路和I2C 通信电路、基于DSP 的RS232
串口通信和CAN 通信等硬件系统的设计;软件系统包括:利用周期中断和下溢中断实现数据采集处理、SOC 估算和各种通信程序。

关键词:电池管理系统;OZ890;I2C 双向隔离;下溢中断

电池管理系统(BMS, Battery Management System)是电动汽车的关键零部件之一。高性能、高可靠性的电池管理系统能使电池在各种工作条件下获得最佳的性能。电池管理系统可以实时监测电池状态,如电池电压、充放电电流、使用温度等;预测电池荷电状态(SOC,State of Charge),防止电池过充过放,从而达到提升电池使用性能和寿命,提高混合动力汽车的可靠性和安全性的目的。本设计主要实现数据采集、电池状态计算、均衡控制、热管理、各种通信以及故障诊断等功能。

1 电池管理系统硬件组成

电池管理系统电路由电源模块、DSP 芯片TMS320LF2407A[1](简称为“LF2407”)、基于多个OZ890[2]的数据采集模块、I2C[3]通信模块、SCI 通信模块、CAN 通信模块组成。系统硬件框图如图1 所示。

1.1 电源模块

整车提供的电源为+12V,管理系统需要的电压包括:+3.3V(DSP,隔离电路用)、+5V(总线驱动等芯片用)、±15V(电流传感器),可以通过DC-DC 转换得到,这样不但可以满足各个芯片的供电要求而且可以起到隔离抗干扰的作用。

1.2 数据采集模块

由DSP 完成总电压、电流及温度的采集。电池单体电压的采集和均衡由OZ890 芯片完成,并利用I2C 总线发给DSP,本模块电路主要包括前端采集处理和均衡电路。

1.3 I2C 通信模块

OZ890 采样模块将采集处理后的数据通过I2C 总线发送到LF2407,由于LF2407 自身不带I2C 接口,本设计利用PCA9564[4]扩展其I2C 接口。为了防止电磁干扰影响I2C 总线上数据的传输,必须对总线信号进行隔离,考虑到I2C 总线是双向传输的,使用ADuM1250[5]双向隔离芯片进行隔离。PCA9564 及双向隔离电路如图2 所示。

图2 PCA9564 及双向隔离电路

PCA9564 是I2C 总线扩展器,与LF2407 的GPIO 口相连,它支持主从模式的数据收发,在BMS 中设定LF2407 为主器件,OZ890 位从器件。LF2407 通过读写PCA9564 内部四个寄存器的内容来与OZ890 通信。
ADuM1250 是热插拔数字隔离器,包含与I2C 接口兼容的非闩锁、双向通信通道。这样就不需要将I2C 信号分成发送信号与接收信号供单独的光电耦合器使用。

1.4 串口通信模块

电池管理系统将采集处理后的数据通过串口发送到PC 机界面上,实现人机交互。通过串口界面,可以观察到电池的总电压、单体电压、电流、SOC、故障状态、充放电功率等参数,还可以通过串口发送实现管理系统的在线标定。其硬件电路主要基于MAX232 芯片,如图3a)所示。

图3 串口通信接口电路

MAX232 是+5V 电源的收发器,与计算机串口连接,实现RS-232 接口信号和TTL 信号的电平转换,使BMS 和PC 机能够进行异步串行通讯。为了防止电磁干扰影响串口上数据的传输,必须对总线信号进行隔离。串口是单向传输,所以利用6N137 光电耦合较为方便,图3b)所示为232TXD 信号光耦隔离电路。

1.5 CAN 通信模块

CAN 通信是架接电池管理系统(BMS)与整车HCU 之间的信息桥梁,BMS 将电池的状态参数通过CAN 总线发给HCU,HCU 通过判断当前的电池状态来做出决策,分配电机和发动机之间的功率,控制电池的充放电。同时BMS 还可以接收HCU 发来的相关命令,做出相应的处理。其硬件方面主要是通过PCA82C250 通用CAN 收发器来提供对总线数据的差动发送能力和对通信总线数据的差动接收能力。通过类似于图3b)的光耦隔离电路来加强CAN 总线上的抗干扰能力。其硬件电路由图4 所示。

图4 CAN 通信接口电路

在电路中可根据整车要求,是否接入120Ω 的终端电阻,当JP201 跳线接1 脚和2 脚时,不接入电阻,当接2 脚和3 脚时,电阻接入。

2 电池管理系统的软件设计

电池管理系统软件[6]系统包括6 个任务和5 个中断。6 个任务包括:AD 转换处理任务(包括读取OZ890 中的数据)、CAN 接收任务、CAN 发送任务、SOC 计算任务、系统监视故障诊断任务和串口发送任务。5 个中断包括:AD 采集中断服务子程序、Timer1 下溢中断服务子程序、周期中断子程序、CAN 总线接收中断服务子程序和串口接收中断服务子程序,如下面的中断向量表所示:

.ref _c_int0
.ref _ADC, _INT2, _INT5
.sect ".vectors"
rset: B _c_int0;00h reset
int1: B ADC ;02h ADC
int2: B _INT2 ;04h 周期、下溢中断
int3: B int3 ;06h INT3
int4: B int4 ;08h INT4
int5: B _INT5 ;0Ah CAN, SCI
int6: B int6 ;0Ch INT6

根据整车控制策略,CAN 上电池状态数据每帧的刷新周期为10ms,故设置周期中断的时钟节拍为10ms;相应地设置以上几个任务的执行周期均为10ms。

图5 周期时钟节拍图

从图5 中可以看出,系统初始化完成以后,Time1 开始计时,当达到5ms 时,在A 点发生周期中断,然后进入周期中断子程序,启动AD 转换,通过I2C 总线读取OZ890 中的数据。AD 转换完毕后,软件触发ADC 中断保存数据并进行相应的处理,清除周期中断标志。当达到10ms 时,发生下溢中断,进入下溢中断服务子程序,执行CAN 发送任务、SOC计算任务、系统监视故障诊断任务、串口发送任务。另外,CAN 接收和串口接收执行采用中断触发方式。利用周期中断和下溢中断来划分任务执行时间区域不仅能够满足整车10ms每帧数据的CAN 发送要求,而且每一个任务时间也都能通过计数器和标志位的状态来计算任务的执行时间,以便更好的分配任务的执行时间段。

3 结论

电池管理系统采用了DSP+OZ890 的结构,加之相应的抗干扰措施,具有高性能、低成本等特点。由于采用了专门的电池采样芯片OZ890,提高了采样精度、解决了电池单体电压不均衡造成的过充问题。同时使硬件的开发周期大大缩短,增强了系统的可靠性和可维护性,在实际应用中取得了良好的效果。

本文作者创新点:使用OZ890 电池采样芯片测量电池数据,同时使用PCA9564 扩展LF2407 的I2C 接口,实现了LF2407 与OZ890 之间的通信。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

【2024年4月16日,德国慕尼黑讯】英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)在2023年持续扩大其在汽车半导体市场的领先地位。TechInsights的最新研究显示,2023年全球汽车半...

关键字: MCU 半导体 电池管理系统

本文介绍ADI公司为开放计算项目(OCP)开放机架第3版(ORV3)备用电池单元(BBU)的电池管理系统(BMS)开发的算法。BMS是任何数据中心BBU必不可少的设备,其主要作用是通过监视和调节电池包的充电状态(SOC)...

关键字: 电池管理系统 开放计算 数据中心

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM
关闭
关闭