找回密码
 注册
关于网站域名变更的通知
查看: 289|回复: 1
打印 上一主题 下一主题

锂离子电池组监控系统研究与实现 — 下位机软件设计

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-18 07:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
锂离子电池组监控系统研究与实现 — 下位机软件设计

& s1 X5 l4 |" g  b) n- H% K& K' s5 b2 X5 ^% ^9 O( }! E
4.1开发平台
由于本系统采用的是TI公司的MSP430系列的单片机,因此开发平台选用IAR Embedded Workbench for Msp430 3.42A这个版本。该软件是一种增强型一体化嵌入式集成开发环境,其中完全集成了开发嵌入式所需的文件编辑、项目管理、编译、链接和调试工具。该软件除了可以进行纯软件仿真,也可以结合仿真器实现在线仿真调试。
2 H7 w) b! D! e: _7 y
) d& H5 k4 o2 m3 Y4.2软件模块划分
下位机软件系统主要由定时中断数据采集处理模块、外部中断短路保护模块、充放电保护模块和均衡保护模块等构成。软件主程序流程图如图4.1所示。. i* {, V& v- I7 j

$ \0 ~  z( P9 Z. O, {! ~4.3数据采集模块
数据采集处理模块是整个检测系统的核心,通过在主程序中设置定时器1的定时时间,使其产生中断,在中断程序里完成对电压、电流和温度等参数的采集和处理。该模块包括电压,电流及温度的采集以及处理。这些数据的精确度对系统的性能有着决定性的作用。" U" h- j8 D4 c

$ g+ d" i, U- `: X; Y% R4.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}
" a6 L! h4 D$ c" m  Q; G6 O9 n( `
; w! w. M/ A. n5 x* p# A- Q4 w- R3 S. u% V! I' c3 }. U8 G
0 q( m  H! s- N5 @
其中ADD_STATA用于对单片的CD4052的四路通路进行选择,CS_STATA对CD4052进行片选,在程序中对应这两种枚举数据类型的变量分别为ADD_A_B和CS_SEL,电压的采样利用定时器1中断。定时器每计数200下采样一次,每路信号采样10次。
$ O- A- S8 B, }+ }9 y0 r* k( h: B) Y% n* i/ U7 b
系统晶振频率为32K,因此,每次采样的采样周期为:t=200/32k=0.006s
4.3.2电流及温度采集模块
系统电流的采集通过检测高端电流检测芯片MAX4081上RS-和RS+两端的电压获得。温度的采集通过检测热敏电阻两端的电压获得。电流和温度信号的采集共占用5路A/D通道。
0 U( f0 g7 l# V& E& P
, ]' r1 Z' @) A9 R4.4充放电管理模块
4.4.1充电管理模块
锂电池模组在正常情况下充电回路要保持一旦接通就充电,但在充电过程中如果单体电压的最大值大于4.2V时,启动定时器2,定时一段时间后进入中断,在中断内再次对该过充信号进行检测,如果仍然超过设定值,就需要启动充电保护,断开充电回路。但由于某种原因(比如放电)而使最大值下降到4.0V且持续一定时间要接通充电回路,以方便下次充电。为实现此功能定义了几个标志位:charge_guard, chage_f_guard, charge_guarded,分别代表单体电池电压最大值大于4.2V标志,单体电池电压最大值小于4.0V标志和进入充电保护标志。具体实现方式为先根据电池最大值决定是否启动定时器中断,流程图如4.2所示:
: N: o) p3 o; w) ?* C2 W& e9 e8 G# K3 C! Q
# u2 k. D, u5 q6 G8 [  S

5 _- k) A0 }: Q9 P, J一旦启动了定时器,当定时器中断发生时,进行充电保护的判断,流程图如图4.3所示:( h. c$ C& X$ n. j. |" F$ f
8 r0 B0 b" f: v, o. t
4.4.2放电管理模块系统的放电管理模块与充电管理模块类似,只是充电保护及恢复通过对电压的最小值的判断来实现。在放电过程中如果单体电压的最小值小于2.7V,启动定时器2,定时一段时间后进入中断,在中断内再次对该过放信号进行检测,如果仍然超过设定值,断开放电回路。但由于某种原因(比如充电)而使最小大值上升到2.9V且持续一定时间要接通放电回路,以方便下次放电。为实现此功能定义了几个标志位:discharge_guard,dischage_f_guard,discharge_guarded,分别代表单体电池电压最小值小于2.7V标志,单体电池电压最小值大于2.9V标志和进入放电保护标志。具体实现方式为先根据电池最小值决定是否启动定时器中断,流程图如图4.4所示:! t1 G4 s) |" r, Z

- T1 f9 ~4 v. ^6 r
6 p9 N; y6 i7 D
2 {) l( S5 U+ ]! P$ e6 ^. U如果启动了定时器,当定时器中断发生时进行放电保护判断,流程图如图4.5所示:
& g  s; T+ k$ d' f( D! M! X) S# r
4.4.3电压均衡处理模块
在电池充电过程中,由于锂电池的个体差异,可能会造成某节电池产生过充,为了避免过充造成电池损坏,需要在过充时对电池旁路。从而使每节电池电压达到均衡。均衡方法为在满充电态时,也就是当检测到某节电池达到4.2V时,开始启动均衡,首先计算16节锂电池的平均电压,然后将各节电池的单体电压与平均电压相减,如果其中某节电池的电压与平均电压的差值大于0.2V,便将该电池旁路,启动均衡。& l/ Y' n6 L7 Z8 N- \

" ], r  T- e' Y+ D# {' V& K4.5短路保护
系统的短路需要很高的实时性,因此该保护通过硬件中断的方式实现,当硬件检测到短路发生后产生硬件中断,主控CPU立即断开负载回路,而当短路解除时,CPU会接收到硬件电路发送的解除保护信号,系统恢复正常。+ i/ ]6 }5 N: ~1 ~
9 N( I# }5 S& O3 v. [! ]5 F! x. {
4.6软件抗干扰
整个系统稳定工作的前提是电压采样值能够精确,但是由于硬件电路本身结构所限,每次采集的数据会有一定误差,为了降低采集误差给系统造成性能的降低,加入了软件抗干扰措施。具体方式是对每一路信号都连续进行10次采样,然后去掉其中的最大值和最小值,对剩下的8个数据求平均值,最终得到有效的采样值。试验证明该方法可使采样误差从10毫伏降低到5毫伏以内,从而提高了系统的稳定性。
; o: C- D- t4 G0 i. b5 {/ X* @- @. r0 E5 T
4.7小结
本章介绍了锂离子电池组监控系统的下位机软件系统设计,主要包括了信号采集、短路保护、均衡保护、充放电保护等模块以及系统的软件抗干扰措施,整个软件系统已和硬件系统联调成功,各项功能均已达到预期效果。

" a- N) v8 J: H- U( u3 {$ O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-24 09:02 , Processed in 0.109375 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表