2 电池管理 系统的软件设计
电池管理系统软件[6]系统包括6 个任务和5 个中断。6 个任务包括:AD 转换处理任务(包括读取 OZ890 中的数据)、CAN 接收任务、CAN 发送任务、SOC 计算任务、系统监视故障诊断任务和串口发送任务。5 个中断包括:AD 采集中断服务子程序、Timer1 下溢中断服务子程序、周期中断子程序、CAN 总线接收中断服务子程序和串口接收中断服务子程序,如下面的中断向量表所示:
根据整车控制策略,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 之间的通信。