| | 网站首页 | 我要研发 | C语言学习专题 | 电子电路 | 51设计开发论坛 | | |
![]() |
|
| 您现在的位置: 51RD >> 我要研发 >> 电源技术 >> 资料正文 |
|
|||||
| 基于SMBus的智能电池系统 |
|||||
| 作者:大连理工… 资料来源:21IC中国电子网 点击数: 更新时间:2007-3-31 | |||||
|
www.51rd.net报道: 摘要: 本文概要地介绍了智能电池系统,并介绍了一种典型芯片——Max1660的电量计数及电池保护等功能,给出了一个应用实例。
关键词:智能电池 电量计数 SMBus Max1660 现代社会对产品寿命需求和对产品的性能和功能的要求迅速提高。最新的掌上电脑要求把最多的功能压到最少的空间中去,这就驱使电池的设计者不得不考虑在产品设计方面做显著的变化。这包括;使用低压器件,关掉未在使用的子系统,对应用程序进行管理,发展智能电池和电池管理系统等。 新的智能电池的设计需要各种不同甚至相反的领域的知识,在某些应用中甚至是全新领域的知识。这些领域包括关于电池运行的电池化学知识;关于系统各零件相互作用的系统工程知识和使用者怎样操作一个特殊设备的设计知识。因此,一个规范或者说一个标准将必不可少,它可以简化设计,提高系统的可移植性。 智能电池规范 电池的智能化是最近才发展起来的,这就使得智能电池的实现方案多种多样。因而,一些标准开始出现。这些标准一般是由便携电脑制造商推动的。但在一些单电池系统中,例如在蜂窝式移动电话系统中,成本问题限制了电池系统一些操作,使智能电池标准的发展复杂化了。 一线接口 电池包与系统的通讯是一个很重要的需要考虑的因素。这个接口要有尽可能少的信号线以减少电池包的连线数。因而,许多单电池系统采用一线接口(1-wire),例如,蜂窝移动电话。在1-wire接口中,0或1取决于信号线上0的有效周期。这种类型的接口提供了一个异步连接。当前有三种不同的一线接口(1-Wire),它们之间只有轻微的差别。由于其内在特点,一线接口的传输速率很慢。在低成本系统中,这样的速率是可接受的,因为只有极少的信息需要传递给主机。但在多电池系统中,就有更多的信息需要传递给主机,这是就要求有更快的接口速度了。 基于MAX1660的智能电池应用实例: MAX1660 是美信公司生产的一种能够精确测量流入充电和流出放电系统电池组的电量计数芯片,它能将电池电量存入内部两个独立的32 位充电和放电计数器。它通过强大的数字比较功能,判断当充电或放电计数器达到主机设定值时,中断主CPU,来完成主机设定得功能。该器件也可以在电流方向发生变化时通知主机,并具备保护电池组短路及过流的功能。MAX1660 提供一个兼容于SMBUSTM系统管理总线的二线串行接口来访问充电放电量计数器和内部寄存器,同时也能够给主机提供一条可用作中断信号的系统管理总线报警线SMBALERT。 1. MAX1660 的引脚及功能 MAX1660 的引脚排列如图1 主要引脚功能如下:
u INT,中断信号漏极开路输出,低电平有效,INT接上拉电阻100k至VL引脚。 2.MAX1660的控制、状态与读写时序 MAX1660有一个16位的状态字和一个16位的控制字,主机可通过读状态字来判断电池状态,写控制字来控制电池系统。其状态字的定义如表1,控制字定义为如表2 表1
表2
其读写时序见参考文献1,传输时以字节为单位。每次传输时首字节为SLVEADDRESS——即从器件地址。对于不同种类的SMBus器件,该地址是固定的,在出厂时就已经固化到器件中。但也有一些器件可以通过地址端的不同接法选择该地址。MAX1660的SLAVEADDRESS是1000111,最后一位空出,用来选择读或写。其中0为读出,1为写入。第二个字节为命令字,从第三个字节开始是要读出或写入的数据。 命令字可分为两种:一为读命令,包括读计数寄存器和读状态字;一为写命令,包括写比较寄存器和写控制字。计数寄存器需要分两次读出,命令字为:0x82(低16位)、0x83(高16位);比较寄存器也要分两次写入,其命令字分别为:0x00(低16位),0x01(高16位);读状态字和写控制字的命令字分别为:0x84和0x04。需要注意的是:在读计数器时,当前供电状态决定了计数器中的数值是充电还是放电计数值。而且,更为重要的一点:在读计数器时两个命令必须连续执行且必须先读低位后读高位,如果中间夹有其他命令或顺序颠倒,在执行这个命令时Max1660就会当作读高16位的命令已执行而将计数器清零。 3. MAX1660的最大充电和放电电流 MAX1660本身不能控制电池充电电流,只能控制最大充电电流值和最放电电流值。它可以通过以下方法设定设定:
设定最大充电电流值:如图所示,
1) 设定最大放电电流值:如图所示,
4.应用MAX1660设计电量指示监控充电电路 本电路是作为一个便携式嵌入系统的附属电源模块设计的,由于系统成本限制,采用用了镍氢电池。Mam1660即可监控锂电池又可监控镍基电池,而其他类电池监控芯片大所为锂电池监控芯片,因此本系统采用Max1660来搭建系统。系统软件采用查询机制,其程序框图如图5。 系统力求精简,用51单片机控制。单片机通过SDA、SCA、INT三根线与MAX1660通讯线用于对发出中断信号,SCA、SDA分别为的时钟线和数据线。利用max1660的数字比较功能,程序设定一个电量值,每当电量计数器达到设定值时即对单片机发出中断,从而把单片机解放出来。计数值与电量的关系与敏感元件微电阻有关,微电阻越小则可测电流越小,但电流分辨率也越小,反之则可测电流值受限,而电流分辨率增大。 系统主要包括两部分:首先是通讯部分,主要是SMBus总线的驱动程序。这里参考了文献2中的I2C总线驱动程序,按照系统需求作了局部改动。程序包括启动、停止、发送应答、发送非应答、应答位检查、发送和接收等共9个函数。最后组成两个函数:SMBusReadWord和SMBusWriteWord。通过这两个函数即可实现SMBus总线的全部读写操作,实现对任何SMBus总线器件的控制。这两个函数的参数依次为:器件地址,命令字,读/写内容。 其次为主程序部分。如图5所示,当中断条件满足时,由max1660向单片机发出中断请求,单片机则读取max1660的状态字判断为何种中断,各状态字的定义如表1,部分中断功能可通过控制字关闭。然后对各种中断作相应处理。其中当前的供电方式可通过CHARGESTATUS读出。该位为1时为充电状态,为0时为放电状态。 文献1提供了一个简单的系统硬件原理图,只需在这个原理图上作简单的拓展即可使用。限于篇幅,无法将本系统的原理图详细列出,这里只作简单介绍:Max1660本身带有3.3V电源输出,但由于这里使用了51单片机必须采用5V电源,因此这一电源没有使用,而是在pack+和pack-之间接入7805来得到5伏的电源,而在用于整个系统时,其电源也应从这两端输出。
电量的显示最好通过LCD,调试阶段用LED较好,比较直观,同时易于排除问题。本系统在调试阶段用P1口输出电量状态指示,LED亮时表示充电已到该位,各灯逐次点亮,充满时全亮,放电时正相反。 结束语 本文介绍的基于SMBus的智能电池检测系统既可用于锂电池,也可用于镍基电池,对电池的要求较低,系统作为便携式仪器的电源解决方案在实际应用中已得到验证。系统运行可靠,功能强大显示直观,能够与其他功能协调工作。随着各种便携式电子产品的广泛应用,电池的智能化已成为一种必不可少的功能。因此本文所介绍的智能电池系统具有较强的实用性。 作者Email: ramrod@sina.com.cn 摘要: 本文概要地介绍了智能电池系统,并介绍了一种典型芯片——Max1660的电量计数及电池保护等功能,给出了一个应用实例。 关键词:智能电池 电量计数 SMBus Max1660 现代社会对产品寿命需求和对产品的性能和功能的要求迅速提高。最新的掌上电脑要求把最多的功能压到最少的空间中去,这就驱使电池的设计者不得不考虑在产品设计方面做显著的变化。这包括;使用低压器件,关掉未在使用的子系统,对应用程序进行管理,发展智能电池和电池管理系统等。 新的智能电池的设计需要各种不同甚至相反的领域的知识,在某些应用中甚至是全新领域的知识。这些领域包括关于电池运行的电池化学知识;关于系统各零件相互作用的系统工程知识和使用者怎样操作一个特殊设备的设计知识。因此,一个规范或者说一个标准将必不可少,它可以简化设计,提高系统的可移植性。 智能电池规范 电池的智能化是最近才发展起来的,这就使得智能电池的实现方案多种多样。因而,一些标准开始出现。这些标准一般是由便携电脑制造商推动的。但在一些单电池系统中,例如在蜂窝式移动电话系统中,成本问题限制了电池系统一些操作,使智能电池标准的发展复杂化了。 一线接口 电池包与系统的通讯是一个很重要的需要考虑的因素。这个接口要有尽可能少的信号线以减少电池包的连线数。因而,许多单电池系统采用一线接口(1-wire),例如,蜂窝移动电话。在1-wire接口中,0或1取决于信号线上0的有效周期。这种类型的接口提供了一个异步连接。当前有三种不同的一线接口(1-Wire),它们之间只有轻微的差别。由于其内在特点,一线接口的传输速率很慢。在低成本系统中,这样的速率是可接受的,因为只有极少的信息需要传递给主机。但在多电池系统中,就有更多的信息需要传递给主机,这是就要求有更快的接口速度了。 基于MAX1660的智能电池应用实例: MAX1660 是美信公司生产的一种能够精确测量流入充电和流出放电系统电池组的电量计数芯片,它能将电池电量存入内部两个独立的32 位充电和放电计数器。它通过强大的数字比较功能,判断当充电或放电计数器达到主机设定值时,中断主CPU,来完成主机设定得功能。该器件也可以在电流方向发生变化时通知主机,并具备保护电池组短路及过流的功能。MAX1660 提供一个兼容于SMBUSTM系统管理总线的二线串行接口来访问充电放电量计数器和内部寄存器,同时也能够给主机提供一条可用作中断信号的系统管理总线报警线SMBALERT。 1. MAX1660 的引脚及功能 MAX1660 的引脚排列如图1 主要引脚功能如下:
u INT,中断信号漏极开路输出,低电平有效,INT接上拉电阻100k至VL引脚。 2.MAX1660的控制、状态与读写时序 MAX1660有一个16位的状态字和一个16位的控制字,主机可通过读状态字来判断电池状态,写控制字来控制电池系统。其状态字的定义如表1,控制字定义为如表2 表1
表2
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||