PXA270的电池充电及电量计量模块设计
USB电源供电,因此将LM3658芯片的CHG-IN引脚直接5 V输入。BATT端接上电池的正极进行充电。在电池的正极同时接上N沟道的MOSFET管,可以实现对电池的安全保护,防止充电过量,出现电流过大、温度过高等情况。电池的充电状态通过Statl和Stat2引脚将信息输出到PXA270的GPIO进行读取操作。DS2786的VDD引脚用5 V外接电压直接供电。而VIN引脚既可以用电池电压输入,也可以用外接5 V电压输入。当电池电压输入VIN的时候,DS2786可以根据OCV查找表计算电池的剩余电量。当电池高速率放电时,通过电流感测电阻R进行库仑计测量。最终通过SDA和SCL将电量信息输出给PXA270的I2C接口。
2 软件设计
本系统中PXA270上面运行的嵌入式操作系统采用微软公司的Windows CE。Windows CE是实时操作系统,支持在多种CPU硬件平台上运行,并且提供了强大的开发工具。为了使DS2786在系统中能够正常地工作,必须对其编写基于Windows CE 5.O的驱动程序。
本模块的驱动程序设计采用的是流接口的形式。Windows CE的流接口驱动程序以DLL(动态链接库)的形式存在,由设备管理器(通常是de-vice.exe或者gwes.exe)统一加载、管理和卸载。与具有单独目的的本机设备驱动程序相比,所有流接口驱动程序都是用同一接口,并调用同一个函数集。每个流式接口驱动程序必须实现1组标准的函数,用来完成标准的文件I/O函数和电源管理函数,这些函数提供给Windows CE操作系统的内核使用。这些函数通常叫做流式接口驱动程序的DLL接口。同时,本驱动程序设计采用分层驱动的形式。分层驱动程序把驱动程序的代码分为2层:上面一层叫模型设备驱动(MDD),下面一层叫平台相关驱动(PDD)。Windows CE操作系统自带驱动的MDD代码,MDD的代码是无需更改的,只需修改PDD层的代码。本系统的主要涉及函数如下:
驱动程序调用PDD层的初始化函数BatteryPDDlnitialize,初始化CPU的GPIO、相关寄存器和电池状态全局变量。同时定义了1个SYSTEM_ POWER_STATUS_EX2结构体变量sps。通过BatteryPDDGetStatus函数从DS2786芯片中得到电池当前的状态信息来更新sps结构体中的各个电池信息。用户界面上也可以根据sps结构体中的内容更新当前的显示状态。这样就完成了电量计量的实时更新和显示。
结语
本文研究并设计了一种电池充电及电量计量的硬件电路,并且给出了在Windows CE操作系统下的驱动设计,实现了完整的软硬件模块。该模块设计简单,性能出色,可以满足大多数情况下手持消费电子的需求,具有很好的应用前景。
- 电池管理系统故障分析方法及案例(07-05)
- 紧凑型太阳能电池板利用创新性能量收集技术(03-24)
- 基于LTC6802 的电池组监控平台的电路设计(12-09)
- 从原因到措施 教你有效防止电池接反(12-09)
- 无线充电设计必知:通透了解锂电池技术 (12-09)
- 修复电动车蓄电池的电路设计(12-09)