锂离子电池组监控系统研究与实现 — 下位机软件设计
扫描二维码
随时随地手机看文章
4.1开发平台
由于本系统采用的是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所示:
一旦启动了定时器,当定时器中断发生时,进行充电保护的判断,流程图如图4.3所示:
4.4.2放电管理模块系统的放电管理模块与充电管理模块类似,只是充电保护及恢复通过对电压的最小值的判断来实现。在放电过程中如果单体电压的最小值小于2.7V,启动定时器2,定时一段时间后进入中断,在中断内再次对该过放信号进行检测,如果仍然超过设定值,断开放电回路。但由于某种原因(比如充电)而使最小大值上升到2.9V且持续一定时间要接通放电回路,以方便下次放电。为实现此功能定义了几个标志位:discharge_guard,dischage_f_guard,discharge_guarded,分别代表单体电池电压最小值小于2.7V标志,单体电池电压最小值大于2.9V标志和进入放电保护标志。具体实现方式为先根据电池最小值决定是否启动定时器中断,流程图如图4.4所示:
如果启动了定时器,当定时器中断发生时进行放电保护判断,流程图如图4.5所示:
4.4.3电压均衡处理模块
在电池充电过程中,由于锂电池的个体差异,可能会造成某节电池产生过充,为了避免过充造成电池损坏,需要在过充时对电池旁路。从而使每节电池电压达到均衡。均衡方法为在满充电态时,也就是当检测到某节电池达到4.2V时,开始启动均衡,首先计算16节锂电池的平均电压,然后将各节电池的单体电压与平均电压相减,如果其中某节电池的电压与平均电压的差值大于0.2V,便将该电池旁路,启动均衡。
4.5短路保护
系统的短路需要很高的实时性,因此该保护通过硬件中断的方式实现,当硬件检测到短路发生后产生硬件中断,主控CPU立即断开负载回路,而当短路解除时,CPU会接收到硬件电路发送的解除保护信号,系统恢复正常。
4.6软件抗干扰
整个系统稳定工作的前提是电压采样值能够精确,但是由于硬件电路本身结构所限,每次采集的数据会有一定误差,为了降低采集误差给系统造成性能的降低,加入了软件抗干扰措施。具体方式是对每一路信号都连续进行10次采样,然后去掉其中的最大值和最小值,对剩下的8个数据求平均值,最终得到有效的采样值。试验证明该方法可使采样误差从10毫伏降低到5毫伏以内,从而提高了系统的稳定性。
4.7小结
本章介绍了锂离子电池组监控系统的下位机软件系统设计,主要包括了信号采集、短路保护、均衡保护、充放电保护等模块以及系统的软件抗干扰措施,整个软件系统已和硬件系统联调成功,各项功能均已达到预期效果。