表1.VCELL1-VCELL2的分压和输入范围举例
表2.SRC输入范围
? 温度
如图1所示,当进行电芯温度测量的时候,bq2060A的TS输入要和一个负温度系数(NTC)的热敏电阻相连。bq2060A在Temperature()里报告温度。当bq2060A采样TS输入时,THON将被用来导通到热敏电阻的基本供电电压输入。在测量温度时,THON将保持60ms的高阻,其它情况下将被置低。
? 通信
bq2060A包括两种通信接口:系统管理总线(SMBus)和HDQ16。SMBus接口是双线双向协议,使SMBC(时钟)和SMBD(数据)引脚。HDQ16接口为一线双向协议,使用HDQ16引脚。所有的三条通信线是独立于Vcc的,可以被上拉高于Vcc。同样,如果Vcc到这部分为0,那么bq2060A将不会把这些线拉低。HDQ16如果不用,必须用100K?的电阻下拉。
这些通信口允许一个主机、一个与SMBus兼容的设备或其它的处理器来访问bq2060A的内存寄存器。用这种方法,一个系统可以有效地监控和管理电芯。 ? SMBus
SMBus接口是基于指令的协议。一个处理器扮演总线管理员,通过产生一个START信号来开始向bq2060A的通信。一个START信号由一个SMBD线由高到低的变化组成,此时SMBC为高。然后,处理器发送bq2060A设备地址0001011(位7-1)加一位读/写位(位0),后面跟着一个SMBus指令码。读/写位和指令码指示bq2060A要么把发送来的数据存入SMBus指令码指定的寄存器中,要么从指定寄存器输出数据。处理器由STOP信号完成访问。STOP信号由一个SMBD线由低到高的变化,此时SMBC为高。在SMBus中,数据字节中最重要的位将被第一个传送。
在一些实例中,bq2060A作为总线管理员。这个发生在当bq2060A广播充电需要和报警条件的设备地址0x12(智能电池充电器)和0x10(智能电池主控制器)。
? SMBus协议
bq2060A支持以下SMBus协议: ? 读取字符协议 ? 写入字符协议 ? 读取区块协议
作为总线主机的处理器利用这三条协议来和bq2060A来通信。而作为总线主机的bq2060A用写入字符协议。
SMBD和SMBC引脚是开漏的,需要外部上拉电阻。 ? SMBus协议包出错校验
bq2060A支持协议包出错校验机制来确认它本身和另一个SMBus设备的准确通信。协议包出错校验需要发送者和接收者为每次通信消息计算一个协议包出错码(PEC)。设备提供的最后一个通信消息的字节里跟随一个这个消息的PEC。接收者比较发送的和它自己的PEC来检测是否出现通信出错。 ? PEC协议
bq2060A可以接收或发送带有或者不带有PEC的数据。图4所示为读取字符、写入字符和读取区块消息的通信协议无PEC。图5为有PEC。
图4. 无PEC的SMBus通信协议
图5.有PEC的SMBus通信协议
在写入字符协议中,从主机发送来的最后位数据之后,bq2060A就会等待接收PEC。如果主机不支持PEC,最后的字符数据会跟随着一个STOP信号。在收到PEC之后,bq2060A会比较这个值跟自己计算的值。如果PEC是正确的,bq2060A会响应一个ACKNOWLEDGE。如果不正确,bq2060A会响应一个NOT ACKNOWLEDGE,并且设定一个错误码。 在读取字符协议和读取区块协议中,在bq2060A发送的数据的最后位,主机会产生一个ACKNOWLEDGE。bq2060A就发送PEC,而作为接收的主机会产生一个NOT ACKNOWLEDGE和一个STOP信号。 ? PEC计算
PEC计算的基本原理是一个基于多项式C(X)?X8?X2?X1?1的8位循环冗余核对器。PEC计算包括传输中的所有字节,地址、指令和数据。PEC计算不包括ACKNOWLEDGE、NOT ACKNOWLEDGE、START、STOP和RepeatedSTART位。
例如,主机向bq2060A请求RemainingCapacity()。这个包括在读取字符协议下的主机。bq2060A根据以下5个字节的数据来计算PEC,假设电芯的剩余容量为1001mAh。
? 电芯读/写地址=0:0x16
? RemainingCapacity()的指令码:0x0f ? 电芯读/写地址=0:0x17 ? RemainingCapacity():0x03e9
对于0x160f17e903,bq2060A传输一个0xe8的PEC给主机。 ? 在控制模式中的PEC允许
PEC可以广播给充电器、主机或者两者都可以通过控制模式中的HPE和CPE位来设置允许和不允许。 ? SMBus开启和关闭状态
bq2060A通过监控SMBC和SMBD线来侦测SMBus是否进入关闭状态。当两个信号持续为低至少2.5s,bq2060A侦测其为关闭状态。当SMBC和SMBD线变高,bq2060A侦测其为开启状态,可以在1ms之内开始通信。为了可靠的侦测关闭状态,推荐1M?的电阻下拉SMBC和SMBD线。 ? HDQ16
HDQ16接口协议是基于指令的协议。(见图6)一个处理器发送指令码给bq2060A。这个8位的指令码由两部分组成,7位HDQ16指令码(位0-6)和1位读/写指令。读/写指令指示bq2060A存储接下来的16位数据到一个指定的寄存器,或者从指定的寄存器输出16位数据。在HDQ16里,数据字节(指令)或者字(数据)的最不重要的位会先传输。
一个块的传输包括三个不同的部分。第一部分经由主机或者bq2060A把HDQ16引脚置逻辑低状态一个tSTRH:B时间后开始发送。接下来是部分是真正的
数据传输,数据位在tDSU:B时间间隔里是有效的,负边界用来开始通信。数据位被保持一个tDH:DV时间间隔,以便允许主机或bq2060A采样数据位。
在负边界用来开始通信后,最后一部分通过返回给HDQ16引脚一个逻辑高
状态,至少保持tSSU:B时间间隔来停止传输。最后一个逻辑高状态必须保持一个
tCYCH:B时间间隔,以便有时间让块传输完全地停止。
如果发生通信错误(e.g.,主机就发送给bq2060A一个BREAKtCYCB?250?s),信号,让其控制串行接口。当HDQ16引脚在一个时间间隔tB或者更长时间里为逻辑低状态,bq2060A就会侦测BREAK。然后HDQ16引脚回到其正常预设高逻辑状态一个tBR时间间隔。然后bq2060A就准备从主机那里接收指令。 HDQ16引脚是开漏的,需要一个外部的上拉电阻。 ? 指令码
SMBus的指令码在()里,HDQ16的[]l里。Temperature(),Voltage(),Current()和AverageCurrent(),执行说明可调整Vcc,工作温度在0-70°C。 ? ManufacturerAccess() (0x00); [0x00–0x01] ? 描述
在电芯组正常工作和制造过程中,此指令提供控制bq2060A的可写指令码。如果在设备重启后,在1s内发送的这些指令可以被忽略。以下副指令可使用: ? 0x0618 允许低电压存储模式:激活低电压存储模式。5-8s延迟后,bq2060A
进入存储模式。在进入低电压存储模式的时间间隔里,bq2060A接受ManufacturerAccess()的指令。因为显示模式仍然没有被改变,所以在进入低电压存储模式时,LED必须被关闭。
当其响应允许低电压存储指令后,bq2060A会在900ms内清除ManufacturerAccess()指令。在SMBus响应允许低电压存储指令后,VFC校准指令会在900-5000ms内送出。因为这样,bq2060A延迟进入存储模式直到校准过程完成,然后bq2060A把新的校准值存储在EEPROM里。 ? 0x062b封缄:指示bq2060A对表3所列出的那些功能的限制访问。bq2060A
完成封缄功能,响应指令后在900ms内清除ManufacturerAccess()。 ? 0x064d 充电同步:指示bq2060A更新RM所占FCC的百分比,正如快速充
电终端里定义的一样。Bq2060A更新RM,在响应指令后清除ManufacturerAccess()。
? 0x0653 允许VFC校准:指示未封缄的bq2060A开始VFC校准。在这个指
令下,bq2060A取消选择SR1和SR2的输入,只校正IC的误差。这样在校准过程中避免了充放电电流经过感应电阻。
? 0x067e 轮换VFC校准:指示未封缄的bq2060A开始VFC校准。在这个指
令下,bq2060A不取消选择SR1和SR2的输入,同时对IC和PCB进行误差校准。在这个过程中,没有充放电电流。
在VFC校准中,bq2060A不允许LED显示,只接受VFC校准停止指令和对ManufacturerAccess()的封缄指令。bq2060A忽视所有其它指令。在VFC校准中,SMBus通信应该保持最小值以减少噪声水平,并且允许更加精确的校准。
一旦开始,VFC校准程序就自动完成。完成之后,bq2060A把校准值保存在EEPROM里。校准一般持续8-10分钟。校准时间与bq2060A的VFC(和
PCB)误差成反比。当校准到0误差,bq2060A就在一个小时里完成校准。因为在去除测试设置后校准能自动完成,所以VFC校准可以在电芯组测试程序的最后一步来完成。
在响应指令后,bq2060A在900ms内清除ManufacturerAccess(),并且在3.2s内开始校准。
? 0x0660 停止VFC校准:指示bq2060A中VFC校准程序。如果被中止,
bq2060A禁止误差修正。在响应指令后,bq2060A在20ms内停止校准。 ? 0x0606 编程EEPROM:指示未封缄的bq2060A连接SMBus和EEPROM
的I2C总线。在响应指令后,bq2060A在900ms内给EEPROM提供供应电压。在发出编程EEPROM指令后,bq2060A的监控功能将被禁止,直到I2C总线断开。当bq2060A侦测到Battery Address 0x16发送到SMBus之后,就断开I2C总线。用来断开I2C总线的Battery Address 0x16应该在对EEPROM?
的最后一个写操作之后10ms发送。
举例:以下例子说明了如何使用ManufacturerAccess()指令的顺序。说明了如何对电芯组进行除VFC校准外的所有有效测试和校准。并且为在封缄状态和低电压存储模式下出仓做准备:
1. 用存储在EEPROM里的期望的最终值来完成测试和校准。这个过程包
括设置Pack Configuration里的SEAL位。在测试的时候向bq2060A发送一个重启指令,以确保RAM里的值与EEPROM里的最终值相符合。 2. 如果RemainingCapacity()的初始值必须为非0 ,那么可以在电芯组未封
缄状态下将期望值写入Command 0x26。发送一个重启在这步重新设置RM为0后。
3. 发送允许低电压存储模式指令。
4. 在发送允许低电压存储模式指令后的900-1600ms内,发送允许VFC校
准指令。这个将延迟低电压存储模式直到VFC校准完成。
5. 在VFC校准指令后发送SEAL指令。Bq2060A必须在VFC校准完成之
前接收SEAL指令。在校准开始的时候,bq2060A重新设置Pack Status的OCE位,在其成功完成校准之后再设置这一位。
在VFC校准自动完成之后,bq2060A将VFC误差消除值存储在EEPROM里,并且在大约20s内进入低电压存储模式。另外,bq2060A被封缄,只允许访问表3所示的部分。 用途:
ManufacturerAccess()指令提供系统主机访问bq2060A那些没有被SBD定义的功能。
SMBus协议:读取和写入字符协议。 输入/输出:字符。
?
? ?
符合通讯协议(SBS)智能型电芯计量集成电路



