1 SD卡硬件电路设计
SD是新一代半导体存储设备卡,其外形及引脚定义如图1、表1所示。SD卡工作电压为2.0~3.6 V,最大读写速度达10MB/s(4位数据线并用),并且提供了SD和SPI两种通信模式。在使用时,主机只能通过其中一种方式与SD卡进行通信,该模式通过上电后检测Reset命令来决定。本系统采用SPI方式操作SD卡,因为该方式具有接口电路简单(DSP芯片TMS320LF2407A提供SPI接口),并且通信协议也十分简洁的优点。因为DSP芯片TMS320LF2407A的SPI模块高电平刚好是3.3 V,所以SD卡座可直接与TMS320LF2407A的SPI引脚连接,其连线方式如图2所示。
图1 SD卡外形
表1 SD卡引脚定义
图2 SD卡连接电路
2 软件程序设计
软件设计主要难点是SD卡驱动与FAT32文件系统的结合方式设计。FAT32文件系统的实现有一定的复杂性,如果设计地不好不但会浪费大量CPU资源,而且可能造成数据丢失、覆盖等严重后果。采用传统数据流式程序设计思想实现起来比较困难,Debug也很不方便。本设计引用现代Windows操作系统惯用的层次模型划分的方法开发了一套基于SD卡的FAT32文件系统协议包,具有层次分明、结构紧凑、可移植性强及逻辑清晰的特点。
2.1 FAT32文件系统
FAT32是由Microsoft设计并运用得非常成功的文件系统。至今FAT32依然占据着Microsoft Windows文件系统中重要的地位。FAT32改进了FAT16和FAT12不支持大分区、单位簇的容量过大以致空间急剧浪费等缺点。由引导扇区、FAT表、根目录和数据区4大部分组成。图3标出了FAT32分区的基本构成,FAT2是FAT1的备份,用于在FAT1损坏时修复。
图3 FAT32文件存储系统构成
FAT表(File AllocatiON Table文件分配表)记录文件在介质上的放置位置,即簇号序列。每个表项记录的簇号都是32位的,故这个方法称为FAT32。表2所示是一段简化的FAT表,第2簇记录根目录存放位置,第3簇记录某文件存储的下一簇号(该文件从本簇即第3簇开始存放)是6号,第6号又记录接下来的簇号……,至到标记FF表示文件结束。同样道理从第12簇开始存放另一个文件,该文件在第93簇存放结束。从表中可以看出文件是可以非连续存放的,这样可以充分利用SD存储介质的空间,并且可以保证存放BMS采集数据不会发生重叠,冲掉以前数据。表3列出了FAT表各记录项的取值含义。
表2 FAT表与文件存位置的对应关系
表3 FAT32记录项的取值含义
系统在存储一个文件时先计算出需要几个簇的空间来存放,再从FAT表中找出这相应个数的空闲簇,并其修改记录项的取值使之首尾连成一串。然后在目录表中创建一个新的文件项,并记录它在介质上存放的首簇号。这样在读文件时,只要直接从目录表中找到该文件的记录项,获取它的首簇号就能把文件读出来了。FAT32文件系统目录的记录项的结构定义如表4所示。
表4 FAT32目录记录项的结构定义
[page]
2.2 SD卡SPI通信协议
发送给SD卡的命令采用6字节的格式如表5所示。命令的第1个字节可通过将6位命令码与16进制码0x40进行或运算得到。如果命令需要,则在接下来的4个字节中提供一个32位的参数,最后1个字节包含了从第1个字节到第5个字节的CRC-7校验和。表6列出了部分SD存储卡SPI命令的解释。
表5 SD卡SPI模式6字节命令格式
2.3 下位机软件设计
下位机SD存储卡驱动程序采用层次化的方法设计,从下到上的关系如图4所示。下一层提供面向上一层的接口支持。其中SPI硬件层是与BMS中所采用的芯片TMS320LF2407A相关的,SD卡命令集则实现DSP与SD存储卡通信需要的SPI命令集的子集,SD卡API层包装好SD卡命令集,使其便于FAT32文件系统层使用。FAT32文件系统层即实现了按照FAT32文件系统要求的文件存储方案。最上层是BMS应用层,负责将BMS系统采集的电池包状态信息打包并以FAT32形式存储到SD卡上。因为本系统只需要文件保存功能,故FAT32文件系统层和SD卡硬层都做了精简处理,这样明显减少了驱动设计时的复杂程度。
图4 层次式SD卡驱动程序
3 数据处理
电动汽车在运行时,BMS会连续产生大量的监测数据,这些数据分可为监测量和诊断量。监测量为实时测量动力母线上的电压、电流、动力电池箱内的模块电压和温度等;诊断量为BMS对实时量的处理结果,包括SOC、SOH和故障码等。如表7所示为记录安装在某辆混合动力轿车上的144 V镍氢RMS的数据。
表7 数据记录格式
记录的历史数据对于电池工艺优化、整车控制器(VMS)研发以及BMS研发都有重要意义。如对所记录的总电压、总电流以及SOC单独绘图如图5所示。对总电流的大小和正负分布分析可以得到ISG电机的工作状况;对SOC分析可以得到整车控制器(VMS)控制策略的效率;对总电压分析可以得到电池的性能信息。
图5 数据分析详例
4 结论
本文设计的基于PSD卡技术实现的动力汽车电池管理系统海量历史数据存储系统,解决了以往电池管理系统在线工作数据难以获得的问题。为电池管理系统参数优化提供了大量的工作状态历史数据,有助于提高系统参数优化准确性,并为电动汽车用电池包特性的建模提供了基础数据。实验证明,采用经过精简的SD存储卡驱动模型有以下特点:存储数据速度快,不影响正常电池管理工作;容错性好,可能会出现
较多小体积文件,但无数据丢失的情况。经过实验验证,在数据记录周期为10 ms的情况下,采用2 G容量的SD卡,可以不间断地记录xx年的历史数据。
- LT3510 的典型应用 - 单片双路跟踪 2A 降压型开关稳压器
- 使用 Analog Devices 的 LTC2269 的参考设计
- UMFT231XA-02,用于 FT231XQ 全速 USB 2.0 接口的 USB 转 4 位 SPI/FT1248 开发模块
- 用于 48V、500W 电动自行车/踏板车的 LTC2992HMS 功率监视器的典型应用
- 2021大学生电子设计竞赛H题优秀作品集(用电器分析识别装置)
- LT1308AIS8 锂离子至 5V 升压转换器的典型应用电路提供 1A
- 单片机LED点阵显示protues原理图
- STEVAL-ILL071V1,基于STP04CM05、ST1S40和STM32F030的LED背光演示板
- OP484FSZ-REEL7输出过载恢复运放测试电路典型应用
- AM1/4S-4815SZ 15V 0.25 瓦 DC/DC 转换器的典型应用