对S32K144做的BMS安装快速开发Simulink库及BMS例程介绍
前言
本章介绍BMS硬件功能及SimuLink库为主,捎带介绍一些例程内容
注意:例程所用的协议均是自定义的
自做的SimuLink库也会不定期更新
BMS例程的内容不定期维护添加
当前的BMS没有主动均衡功能,这个有考虑后期加上,当前还处于考虑阶段
软件程序的应用层和底层是分离的,方便更换程序及移植模块
BMS的例程中仅使用了P2板卡,P3没有使用
一、硬件介绍
1、当前的硬件产品3D仿真图如下(电路板透视图的内部有不少变动,仅作参考)
2、电池管理系统控制器技术参数
技术参数 | |
微控制器 | FS32K144,32位,100引脚,汽车级芯片 |
Flash 512 KB,SRAM 64KB | |
最高主频:112MHz,硬件浮点单元 | |
控制版功能 | 电池组两级对搭铁的绝缘电阻检测 |
检测两路硬件唤醒信号的电压 | |
检测电源供电的电压 | |
两路可控led指示灯 | |
电源 | 供电电源8~32V,可防反接,2路硬件唤醒,支持1路CAN FD,支持硬件唤醒掉电后程序控制休眠 |
1路5V输出,平均500mA,峰值1A | |
控制区功能 | 电池组两级对搭铁的绝缘电阻检测 |
检测硬件唤醒信号的电压 | |
检测电源供电的电压 | |
两路可控led指示灯 | |
2路0-5V电压采集,转换精度12bit | |
2路高压互锁信号采集,可采集频率信号 | |
3路CC信号 | |
1路CP信号 | |
2路高压互锁信号输出,可配置输出PWM | |
5路底边驱动,每路可过1.5A电流 | |
5路高边驱动,每路可过1.5A电流 | |
可用“FreeMASTER”在线标定 | |
3路CAN通讯,其中 2 路 CAN2.0B, ISO11898, 1路 CAN FD 兼容 CAN 2.0B | |
1路485通讯 | |
4路IO检测通道 | |
可隔离检测1路高压电压信号 | |
采集卡区域 | 采用车规级芯片MC33771采集模组电压,菊花链通讯,可拼接 |
每组最大可采集14路锂电池电压信号 | |
每组最大可采集5路温度信号 | |
第一组可采集镇流器的电流信号(这个作废) | |
可做被动均衡 | |
外壳 | ABS塑料外壳,3D打印 |
工作温度范围 | -40~85℃ |
工作湿度范围 | 0~95% |
外形尺寸(mm) | 208*124*31 |
连接器 | 40PIN和28PIN 汽车连接器 |
3、电池管理系统控制器的管脚说明
控制部分接线定义
40P引脚 | 引脚定义 | 40P引脚 | 引脚定义 |
1 | 电源输入 | 21 | 汽车地 |
2 | 唤醒信号1 | 22 | 唤醒信号2 |
3 | 第1路IO检测 | 23 | 第2路IO检测 |
4 | 第3路IO检测 | 24 | 第4路IO检测 |
5 | 485通讯A | 25 | 485通讯B |
6 | 第1路CAN通讯H | 26 | 第1路CAN通讯L |
7 | 第2路CAN通讯H | 27 | 第2路CAN通讯L |
8 | 第3路CAN通讯H | 28 | 第3路CAN通讯L |
9 | 5V电源输出 | 29 | 5V电源参考地 |
10 | 第1路5V信号采集 | 30 | 第2路5V信号采集 |
11 | 第1路NTC电阻采集 | 31 | 第2路NTC电阻采集 |
12 | 第1路高边输出 | 32 | 第1路低边输出 |
13 | 第2路高边输出 | 33 | 第2路低边输出 |
14 | 第3路高边输出 | 34 | 第3路低边输出 |
15 | 第4路高边输出 | 35 | 第4路低边输出 |
16 | 第5路高边输出 | 36 | 第5路低边输出 |
17 | 第1路互锁信号输出 | 37 | 第1路互锁信号输入 |
18 | 第2路互锁信号输出 | 38 | 第2路互锁信号输入 |
19 | 慢充CP信号 | 39 | 慢充CC信号 |
20 | 快充CC2信号 | 40 | 快充CC1信号 |
前14块电池管教定义
28P引脚 | 引脚定义 | 28P引脚 | 引脚定义 |
1 | 第1节电池负极 | 15 | 第1节电池负极 |
2 | 第2节电池正极 | 16 | 第1节电池正极 |
3 | 第4节电池正极 | 17 | 第3节电池正极 |
4 | 第6节电池正极 | 18 | 第5节电池正极 |
5 | 第8节电池正极 | 19 | 第7节电池正极 |
6 | 第10节电池正极 | 20 | 第9节电池正极 |
7 | 第12节电池正极 | 21 | 第11节电池正极 |
8 | 第14节电池正极 | 22 | 第13节电池正极 |
9 |
| 23 |
|
10 | NTC温度传感器1 | 24 | NTC温度传感器2 |
11 | NTC温度传感器1 | 25 | NTC温度传感器2 |
12 | NTC温度传感器3 | 26 | NTC温度传感器4 |
13 | NTC温度传感器3 | 27 | NTC温度传感器4 |
14 | NTC温度传感器5 | 28 | NTC温度传感器5 |
后14块电池管教定义
28P引脚 | 引脚定义 | 28P引脚 | 引脚定义 |
1 | 第15节电池负极 | 15 | 第15节电池负极 |
2 | 第16节电池正极 | 16 | 第15节电池正极 |
3 | 第18节电池正极 | 17 | 第17节电池正极 |
4 | 第20节电池正极 | 18 | 第19节电池正极 |
5 | 第22节电池正极 | 19 | 第21节电池正极 |
6 | 第24节电池正极 | 20 | 第23节电池正极 |
7 | 第26节电池正极 | 21 | 第25节电池正极 |
8 | 第28节电池正极 | 22 | 第27节电池正极 |
9 |
| 23 |
|
10 | NTC温度传感器6 | 24 | NTC温度传感器7 |
11 | NTC温度传感器6 | 25 | NTC温度传感器7 |
12 | NTC温度传感器8 | 26 | NTC温度传感器9 |
13 | NTC温度传感器8 | 27 | NTC温度传感器4 |
14 | NTC温度传感器10 | 28 | NTC温度传感器10 |
提示:若电池数量不足,请保持每个采集芯片至少有3节电池,每个芯片的第一节电池位置和最后一节电池位置保证有电池存在,中间部分可以短接。
4、开发工具
类型 | 名称 | 说明 |
开发语言 | SimuLink/C | |
开发环境 | Matlab/IAR/MDK/S32DS等 | Matlab2022b(我用这个版本) |
标定软件 | FreeMASTER | 有条件的可以CCP和XCP |
烧录器 | Jlink/CAN更新 |
建议使用配合BMS对接的简易HIL测试箱,确保自己后期开发的模型没有问题再用与实际使用场景,尽可能的避免出现经济损失性的BUG,特别是电池部分,用真电池很难把所有的故障信息表达出来,很容易有考虑不周的地方
对接简易HIL测试箱的下次说明,实时性能:1ms
二、软件部分
1、首先先安装官方基础库,方法如下
S32K1xx的MBD工具箱加载及激活_matlab mbd安装-CSDN博客
2、获取自主编辑的SimuLink库“BMSS32K144_SimuLinkLib”,如下,放置的位置不要有中文路径
3、打开matlab,并在matlab目录行中添加“BMSS32K144_SimuLinkLib”的目录
4、设置路径-包含“BMSS32K144_SimuLinkLib”的目录
5、双击打开“slblocks.m”文件,点击运行
5、关闭“slblocks.m”文件,并关闭matlab
三、打开BMS例程,开机第一次打开SimuLink模型比较慢,耐心等待
例程BMS模型如下
1、SimuLink模型库介绍,全汉语的名称,没必要啰嗦解释了
2、BMS单体电池信息采集
3、电池均衡管理
4、模拟量采集
5、数字量采集
6、CP信号采集
7、底层信息和应用层信息交换(如果更换应用层,注意这里需要修改)
8、接收CAN控制指令
9、应用层--逻辑处理
10、更新标定量
11、底层信号输出表达
12、CAN信息返回
三、协议及底层文件、CAN更新程序
同VCU的协议用是同一个、CAN更新程序和VCU用CAN更新程序方法相同
对S32K144做的VCU安装快速开发Simulink库及VCU例程介绍-CSDN博客