锂离子电池组监控系统研究与实现 ― 下位机软件设计
4.1开发平台
本文引用地址:https://www.eepw.com.cn/article/201808/387859.htm由于本系统采用的是TI公司的MSP430系列的单片机,因此开发平台选用IAR Embedded Workbench for Msp430 3.42A这个版本。该软件是一种增强型一体化嵌入式集成开发环境,其中完全集成了开发嵌入式所需的文件编辑、项目管理、编译、链接和调试工具。该软件除了可以进行纯软件仿真,也可以结合仿真器实现在线仿真调试。
4.2软件模块划分
下位机软件系统主要由定时中断数据采集处理模块、外部中断短路保护模块、充放电保护模块和均衡保护模块等构成。软件主程序流程图如图4.1所示。
4.3数据采集模块
数据采集处理模块是整个检测系统的核心,通过在主程序中设置定时器1的定时时间,使其产生中断,在中断程序里完成对电压、电流和温度等参数的采集和处理。该模块包括电压,电流及温度的采集以及处理。这些数据的精确度对系统的性能有着决定性的作用。
4.3.1电压采集模块系统需要对16节锂电池模组的单节电池电压进行采集,由于MSP430F233只有8路A/D,同时还要对4路温度及1路电流采样,因此,系统采用分时复用的方式用一路A/D实现对16节锂电池进行电压采集,复用方式采用4片CD4052实现。程序中建立两个枚举类型的数据来对CD4052进行选通,每次选通时,利用CD4052的差分功能可得到单节的电池电压。这两个枚举类型为:
enum ADD_STATA{S0,S1,S2,S3}
enum CS_STATA{CS1,CS2,CS3,CS4}


其中ADD_STATA用于对单片的CD4052的四路通路进行选择,CS_STATA对CD4052进行片选,在程序中对应这两种枚举数据类型的变量分别为ADD_A_B和CS_SEL,电压的采样利用定时器1中断。定时器每计数200下采样一次,每路信号采样10次。
系统晶振频率为32K,因此,每次采样的采样周期为:t=200/32k=0.006s
4.3.2电流及温度采集模块
系统电流的采集通过检测高端电流检测芯片MAX4081上RS-和RS+两端的电压获得。温度的采集通过检测热敏电阻两端的电压获得。电流和温度信号的采集共占用5路A/D通道。
4.4充放电管理模块
4.4.1充电管理模块
锂电池模组在正常情况下充电回路要保持一旦接通就充电,但在充电过程中如果单体电压的最大值大于4.2V时,启动定时器2,定时一段时间后进入中断,在中断内再次对该过充信号进行检测,如果仍然超过设定值,就需要启动充电保护,断开充电回路。但由于某种原因(比如放电)而使最大值下降到4.0V且持续一定时间要接通充电回路,以方便下次充电。为实现此功能定义了几个标志位:charge_guard, chage_f_guard, charge_guarded,分别代表单体电池电压最大值大于4.2V标志,单体电池电压最大值小于4.0V标志和进入充电保护标志。具体实现方式为先根据电池最大值决定是否启动定时器中断,流程图如4.2所示:

评论