引言
本文提出了一种海洋仪器电池管理嵌入式系统设计方案。该系统具有多种通信方式,可实现电池组安装完成后的实时在线检测、诊断及提前预示电池性能趋势,并可在线自动监测每节电池电压、电池组分组电压、充放电电流和温度,数据采集快速准确。
1 系统总体设计
海洋仪器电池管理嵌入式系统以ARM9处理器作为硬件电路核心控制单元,并移植嵌入Linux操作系统,可实时在线快速巡检监控电池组性能,并将电池组数据及故障情况及时上传给现场或远程监控PC。现场监控PC可通过RS232、RS485、以太网LAN及WiFi无线通信方式采集电池各项数据,而远程监控PC则以GPRS/CDMA无线通信网络及北斗卫星通信定位网络为基础,主要分为远程信息服务中心及BMS终端两部分。信息服务中心可通过分析上传数据,实时监控电池工作状态,测绘电流、电压、剩余电量及温度曲线。若某台海洋仪器的电池温度、电压和电流处于非正常状态, 则马上发出报警信息,并根据故障类型实现充放电控制、电池组自修复与调整、散热等控制管理功能。信息服务中心建立数据库,对所有BMS终端上传数据进行备份与管理[3]。整个系统的网络结构图略——编者注。
2 系统硬件设计
2.1 硬件设计方案
海洋仪器BMS终端采用三星公司基于ARM920T内核的S3C2440A作为系统中央处理器,配备256 MB的SDRAM、256 MB的NAND FLASH和32 MB的NOR FLASH,以应对嵌入Linux操作系统及保存数据所消耗的内存。S3C2440A集成了MMC/SD卡读写控制器、LCD与触摸屏接口、3路UART串口、1路主控与1路从动USB接口、1个IDE接口可挂接大容量硬盘、实时时钟、多至130个通用I/O口等丰富硬件资源[4]。
BMS终端硬件系统主要包括AC/DC与DC/DC电源模块、ARM9处理器、WiFi通信模块及天线、可扩展GPRS及北斗卫星通信模块、LAN、RS485、USB、LCD液晶触摸屏、FLASH存储器、实时时钟电路及现场声光报警控制等功能模块,硬件设计的整体框图如图1所示。
图1 BMS终端硬件整体框图
S3C2440A通过RS485接口实时采集多路电池巡检单元单体电池及电池组的电压、充放电电流及温度,并将数据打包,通过WiFi无线模块、LAN、RS485、GPRS或北斗卫星等多种通信方式上传给现场或远程监控PC;S3C2440A对采集到的数据进行计算与分析,可有效预测出各节电池及电池组的供电性能,及时发现性能严重劣化故障电池,立即进行现场声光报警,掌握电池组的运行状态,为电池组“精细”维护提供测量依据。同时S3C2440A可驱动继电器控制单元,“剔除”故障或损坏的电池,保证系统测试的正常运行。S3C2440A还可将接收的数据与报警信息存储到FLASH中,BMS终端设有USB接口,可外接WiFi通信模块,亦可接U盘将数据与信息读出,进行数据备份。
此外,BMS终端除了必要的AC/DC与DC/DC电源隔离模块、还拥有LCD触摸液晶屏人机对话接口,可进行必要的系统参数设置、报警信息和电池数据参数显示。BMS终端还拥有RTC实时时钟,方便试验人员记录试验时间,生成数据报表。
BMS终端电路系统涵盖众多功能模块,下面仅详细论述电池监测电路、WiFi通信模块电路的硬件设计方案。
2.2 电池监测电路设计
电池监测芯片采用美信公司生产的DS2438,该芯片内部集成了温度传感器、A/D转换器、电流积分器等电路,具有测量电池的温度、电压、电流和累计电量等多项功能。DS2438通过2字节的温度寄存器实现数字式测温。测温分辨率可配置为9、10、11或l2位,默认为l2位分辨率,其对应的温度分辨率为0.062 5 ℃[5]。
DS2438为了跟踪监测电池的剩余电量(State Of Charge, SOC)而使用了一个集成电流累加器ICA(Integrated Current Accumulator)。ICA是一个累积电池使用后的全部流入与流出电池电流的寄存器。电池电流是通过每27.46 ms测量1次外接电阻Rs上的电压获得的,根据此电压值的正、负而将其累积加入或减入ICA寄存器中。通过S3C2440A读流入和流出ICA寄存器里的数值就可以求出电池剩余电量[6]。
由于DS2438测量的电流量较小,BMS终端采用LEM公司生产的LA130P闭环霍尔电流传感器,其输出电流有效值是130 mA,原边额定有效值电流为130 A[7]。海洋仪器BMS终端电池监测电路原理图如图2所示。
图2 电池监测电路原理图
图2中,LA130P由±12 V DC供电,电池组的供电线路穿过LA130P通孔,C4、C5构成电容滤波电路,DS2438通过测量Rs的正负电压累积计入ICA,用以测量电池电流与剩余电量。测量电池组输出电压通过R5、R6电阻分压,再经过TLV2211IDBVT运放跟随器,最后通过2个保护二极管进入DS2438的A/D通道Vad引脚。DS2438本身还集成温度传感器,可测量BMS终端温度。DS2438的DQ引脚与S3C2440A的GPE2引脚相连,构成1wire通信方式,可将测得电池的温度、电压、电流和累计电量等数据发送给S3C2440A,并接收S3C2440A的控制指令与设置参数。
2.3 WiFi通信模块电路设计
WiFi无线通信模块选用英蓓特科技有限公司的WF8000U,该模块使用USB HOST2.0接口,基于IEEE802.11标准的无线网络通信协议开发,高度集成 MAC / BBP和2.4 GHz射频单芯片。WiFi无线通信模块实物图略——编者注。
WiFi无线通信模块USB接口电路原理图如图3所示。图3中,22 Ω电阻R30、R31在串行数据通信时起到缓冲抗干扰作用。而电容C3、R32与C38、R33构成RC滤波电路,确保USB高速串行数据通信的可靠性。C35、C36为USB接口金属外壳对电源地的滤波电容。
图3 WF8000U USB接口电路原理图
3 系统软件设计
海洋仪器BMS终端移植有Linux内核、文件系统YAFFS2及底层驱动程序,加载特定的系统引导程序Bootloader与BMS终端应用程序后,可实现功能完善的电池管理应用要求[9]。
3.1 Linux在电池管理系统上的移植
Linux具有可裁减性,是真正的多任务、虚拟内存、共享库、内存管理内核[10],可高效运行海洋仪器BMS终端电池管理主程序,并与其他子任务同步并发运行,实现海洋仪器电池管理嵌入式系统的优化设计。为实现电池管理的软件功能,Linux系统共创建5个任务,包括电池管理监控主任务、无线与有线通信任务、MiniGUI图形界面及键盘设计、数据库设计、电池故障应急处理、均衡管理及动态维护任务,如图4所示。
图4 BMS终端移植Linux系统功能模块框图
3.2 BMS终端Linux系统程序主框架设计
在Linux操作系统上设计的嵌入式电池管理系统各任务与Linux内核及相互之间配合运行的关系如图5所示[11]。根据电池管理系统的功能要求,在Linux系统中建立的任务包括电池管理监控、数据采集与故障诊断任务及数据通信等任务。
图5 BMS终端移植Linux系统程序主框架设计图
4 实验结果
4.1 BMS终端电池剩余电量测量的标定
目前常用的电池电量测试方法包括密度法、开路电压法、内阻法、电量累计(安时法)、神经网络法、卡尔曼滤波法等[12]。由于BMS终端设计有DS2438,其本身集成电流累加器ICA,因此本文在安时法基础上,使用LA130-P精确测量电池输出电流,并启动S3C2440A内置定时器中断准确计时,通过测量电阻Rs的电压估算电池初始容量如图3所示,滤除DS2438前端检测初始漏电流、系统电源尖峰毛刺等背景噪声,使安时法在较大范围内有较高的精度。SOC即为电池剩余电量与其总容量之比,设电池充放电起始电量为Qini,电池的额定容量为Q0,电池运行过程中的电流为I,则电流积分计算SOC的公式为[13]:
4.2 试验结果分析
SOC标定用锂电池型号为PEG05N(3.6 V,5 Ah),则Q0为18 000(A·s)。将电池由满充状态下完全放电,通过S3C2440A读取DS2438的ICA值,记录其放电量为187.859 (A·s);然后再将电池持续充电,至满充状态,记录其充电量为187.867 (A·s);经10次充放电过程(忽略温度影响),取电池充放电量均值187.862 (A·s),作为起始电量Qini。表1为BMS终端外接电池满充状态下一个完全放电过程的SOC测量数据。
将表1中DS2438测定的电池放电量值、时间值与通过式(1)计算出的SOC值,经Origin LAB软件进行二阶数据拟合,得到标定曲线如图6所示。由该图可以看出,ICA与时间值曲线、ICA与SOC数据曲线基本成线性关系,证明BMS终端测定SOC的方法可靠易行。
表1 BMS终端外接电池SOC测量数据
图6 ICA与SOC数据标定曲线
结语
本文研究实现的海洋仪器电池管理嵌入式系统,硬件上以ARM9处理器与DS2438为核心,软件上移植Linux操作系统,能有效实现BMS系统多种任务的调度,实时显示电池各项参数的测量结果与数据曲线。通过电池ICA与SOC标定实验证明,SOC数据准确度较高并呈良好的线形曲线,较好地反映了电池的实际运行状况。