DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1514|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-28 00:03:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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小结
          本章介绍了锂离子电池组监控系统的下位机软件系统设计,主要包括了信号采集、短路保护、均衡保护、充放电保护等模块以及系统的软件抗干扰措施,整个软件系统已和硬件系统联调成功,各项功能均已达到预期效果。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-24 09:55 , 耗时 0.145071 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

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