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。
|