×
嵌入式 > 技术百科 > 详情

BQ27350是阻抗跟踪燃料计量技术的单电池锂离子电池管理器

发布时间:2021-12-20 发布时间:
|

简介

特征

•适用于单电池和1系列锂离子应用的综合电池燃料计

•使用SHA-1/HMAC加密进行安全电池认证

•计算和报告

–剩余电池容量

–电池电压和温度

–充放电电流

–四次清空预测

•基于专利电池轨道阻抗™ 技术

–为电池放电曲线建模,以准确预测清空时间

–针对电池老化、电池自放电和温度/速率低效率自动调整

–低值检测电阻器(10mΩ或更小)

•96字节非易失性便笺簿数据存储器

•主机的I2C通信接口

•20针TSSOP封装

应用

•动销售点终端机

•工业数据采集

•智能手机

•PDA系统

•数码相机

•手持终端

说明

德州仪器公司的bq27350是一种电池燃料计量器,它支持单电池锂离子电池组的安全认证。为电池组集成而设计,该设备只需要很少的主机微控制器固件支持实施系统主处理器通过I2C接口与bq27350通信,以获得剩余电池容量、系统运行时预测和其他关键电池信息。

bq27350采用专利阻抗跟踪™ 燃料计量算法。仪表提供的信息包括充电状态(%)、空载运行时间(min.)、充满充电时间(min.)、电池电压(V)和电池组温度(°C)。

bq27350还提供了集成和外部支持,使用SHA-1/HMAC认证算法进行安全电池组认证。

典型实施

一般说明

bq27350准确地预测了单个锂基可充电电池的电池容量和其他工作特性。主机处理器可以询问它以提供单元信息,例如充电状态(SOC)、清空时间(TTE)和充满时间(TTF)。

信息是通过一系列被称为标准命令的命令来访问的。附加的扩展命令集提供了更多的功能。这两组命令由通用格式命令()表示,用于读取和写入bq27350的控制寄存器和状态寄存器以及其数据闪存位置中的信息。使用bq27350的I2C引擎,命令从主机发送到仪表,可以在应用程序开发、包装制造或终端设备操作期间执行。

单元信息存储在bq27350内部的非易失性闪存中。在应用程序开发和组件制造期间,可以访问这些数据闪存的许多位置。在终端设备运行期间,通常不能直接访问它们。通过使用bq27350的配套评估软件,通过单独的命令,或通过一系列数据闪存访问命令来实现对这些位置的访问。要访问所需的数据闪存位置,必须知道正确的数据闪存子类和偏移量。

bq27350提供96字节的用户可编程数据闪存,分为3个32字节块:制造商信息A、制造商信息B和制造商信息C。该数据空间通过数据闪存接口访问。有关访问数据闪存的详细信息,请参阅“数据闪存接口”一节。

bq27350高精度气体计量预测的关键是德州仪器公司专有的阻抗轨迹™ 算法。该算法结合了电池测量、特性和特性来创建电荷状态预测,在各种操作条件下都能达到1%以上的精度。

bq27350通过监测电池负极端子和低压侧保护FET之间的小值串联感测电阻(5 mΩ至20 mΩ)之间的电压来测量充电/放电活动。当一个应用的负载被施加时,通过比较其开路电压(OCV)和负载条件下的测量电压来测量电池阻抗。

bq27350可以使用外部NTC热敏电阻(默认为塞米泰克103AT)进行温度测量,也可以配置为使用其内部温度传感器。bq27350使用温度监控电池组环境,用于燃料计量和电池保护功能。

为了减少功耗,bq27350有几种电源模式:正常、休眠、休眠和关机。bq27350根据特定事件的发生自动在这些模式之间传递,尽管主机处理器可以直接启动其中一些模式。更多详细信息可在“电源模式”一节中找到。

在bq27350上还实现了电池组认证功能。草稿行区域用于从主机接收质询信息和导出SHA-1/HMAC加密响应。bq27350可以直接执行加密,也可以作为bq26100独立认证IC的传递。具体细节可以在“身份验证”一节中找到。

注释格式惯例:

命令:斜体,带括号,不带空格,例如RemainingCapacity()。

数据闪烁:斜体、粗体和分隔空格,例如设计容量,

寄存器位和标志:仅括号,例如[TDA]模式和状态:所有大写字母,例如未密封模式。

数据闪存接口

访问数据闪存

bq27350数据闪存是一个非易失性存储器,包含bq27350初始化、默认值、单元状态、校准、配置和用户信息。数据闪存可以通过几种不同的方式访问,具体取决于bq27350的工作模式和访问的数据。

通常访问的数据闪存位置,经常被主机读取,可以通过特定的指令方便地访问,这些指令已经在数据命令部分进行了描述。当bq27350处于未密封或密封模式时,这些命令可用。

然而,大多数数据闪存位置只能通过使用bq27350评估软件或通过执行数据闪存块传输在非密封模式下访问。在开发和制造过程中,应优化和/或固定这些位置。它们成为黄金包文件的一部分,然后可以写入多个电池组。一旦确定,这些值在终端设备运行期间通常保持不变。

要单独访问数据闪存位置,必须将包含所需数据闪存位置的块传输到命令寄存器位置,在那里它们可以被读取到主机或直接更改。这是通过用数据0x00发送设置命令BlockDataControl()(代码0x61)来实现的。可以直接从BlockData()命令位置0x40…0x5f读取多达32个字节的数据,外部更改,然后重新写入BlockData()命令空间。或者,如果特定位置的对应偏移量用于索引BlockData()命令空间,则可以读取、更改和重新写入特定位置。最后,一旦整个块的正确校验和被写入BlockDataChecksum()(命令号0x60),驻留在命令空间中的数据被传输到data flash。

有时,数据闪存类会大于32字节的块大小。在这种情况下,DataFlashBlock()命令用于指定所需位置所在的32字节块。然后,0x40+偏移模32给出正确的命令地址。例如,为了访问气体计量类中的终端电压,发出DataFlashClass()80(0x50)来设置该类。因为偏移量是48,它必须位于第二个32字节块中。因此,发出DataFlashBlock()0x01以设置块偏移量,用于索引到BlockData()内存区域的偏移量为0x40+48模32=0x40+16=0x40+0x10=0x50。

读写子类数据是32字节长的块操作。但是,数据可以用更短的块大小写入。块的长度可以小于32个字节。将这些块写回数据闪存不会覆盖超出实际块长度的数据。

写入内存的所有数据都不受bq27350的限制-气体压力表不会拒绝这些值。由于固件程序解释无效数据,写入错误值可能导致硬件故障。写入的数据是永久性的,因此通电复位不能解决故障。

制造商信息块

bq27350包含96字节的用户可编程数据闪存:制造商信息块A、制造商信息块B、制造商信息块C。访问这些存储器位置的方法略有不同,这取决于设备是处于非密封模式还是密封模式。

当处于非密封模式且“0x00”被写入BlockDataControl()时,访问制造商信息块与访问一般数据闪存位置相同。首先,DataFlashClass()命令用于设置子类,然后DataFlashBlock()命令设置子类中第一个数据闪存地址的偏移量。BlockData()命令代码包含引用的数据闪存数据。写入数据闪存时,BlockDataChecksum()将收到一个校验和。只有当接收到校验和并进行验证时,数据才真正写入数据闪存。

作为示例,制造商信息块B的数据闪存位置被定义为具有子类=58和偏移量=32到63(32字节块)。Class=“System Data”的规范不需要用于处理制造商信息块B,而是用于在bq27350评估软件中查看数据闪存信息时进行分组。

在密封模式下或“0x01”已写入BlockDataControl()时,数据闪存不再以非密封模式下使用的方式可用。使用DataFlashBlock()命令选择指定的制造商信息块,而不是发布子类信息。使用此命令发出0x01、0x02或0x03会导致相应的信息块(分别为a、B或C)传输到命令空间0x40…0x5f,供主机编辑或读取。在成功地将校验和信息写入BlockDataChecksum()后,修改后的块将返回到data flash。注:制造商信息块A在密封模式下为“只读”。

功能描述

燃料计量

bq27350测量电池电压、温度和电流,以确定电池SOC。bq27350通过感测SRP和SRN引脚之间以及与电池串联的小电阻(5mΩ至20mMΩ)之间的电压,监测充电和放电活动。通过整合通过电池的电荷,电池的SOC在电池充电或放电过程中进行调整。

通过比较施加负载前后的充电状态和通过的电量,得出电池的总容量。当施加一个应用负载时,通过比较当前SOC的预定义函数获得的OCV与负载下测量的电压,来测量电池的阻抗。OCV和电荷积分的测量确定了化学电荷状态和化学容量(Qmax)。初始Qmax值取自电池制造商的数据表乘以并联电池的数量。它也用于计算设计容量的值。bq27350在正常电池使用期间获取并更新电池阻抗曲线。它使用此配置文件以及SOC和Qmax值来确定当前负载和温度下的完全充电容量()和充电状态()。满充容量()是指在当前负载和温度下,完全充电的电池在电压()达到终止电压之前的可用容量。NominalAvailableCapacity()和FullAvailableCapacity()分别是RemainingCapacity()和FullChargeCapacity()的无补偿(无负载或轻负载)版本。

bq27350有两个标志,由flags()函数访问,当电池的SOC下降到临界水平时发出警告。当剩余容量()低于RCA集合中指定的第一个容量阈值时,将设置[RCA](“剩余容量警报”)标志。一旦剩余容量()高于RCA设置,该标志即被清除。所有单位均为毫安时。

当充电状态()低于第二个容量阈值TDA Set%时,设置[TDA](“终止放电警报”)标志,作为最终放电警告。如果TDA设置%=-1,则在放电过程中标志不起作用。

类似地,当StateOfCharge()上升到TDA Clear%以上并且已经设置了[TDA]标志时,[TDA]标志将被清除,前提是TDA set%≠-1。所有单位均以百分比表示。

阻抗轨迹变量

bq27350有几个数据闪存变量,允许用户自定义阻抗跟踪算法以优化性能。这些变量取决于应用程序的功率特性以及单元本身。

负载模式

负载模式用于选择阻抗跟踪的恒流或恒功率模型™ 加载选择中使用的算法(请参见加载选择)。负载模式为0时,使用恒流模型(默认)。当为1时,采用恒功率模型。

加载选择

加载选择定义用于计算阻抗轨迹中负载补偿容量的功率或电流模型的类型™ 算法。如果负载模式=0(“恒流”),则表5-1中的选项可用。

储备上限mAh

储备上限mAh确定在达到0剩余容量()之后,在达到终止电压之前,实际剩余容量有多少。该储备采用空载补偿率。

储量上限mWh

储量上限mWh确定在达到0 AvailableEnergy()之后,在达到终止电压之前的实际剩余容量。该备用容量采用空载补偿率。

Dsg电流阈值

bq27350中的许多功能将该寄存器用作阈值,以确定实际放电电流是流入还是流出电池。这个寄存器的默认值是100mA,这对于大多数应用来说应该足够了。该阈值应设置得足够低,以低于任何正常应用负载电流,但应足够高,以防止噪声或漂移影响测量。

变化电流阈值

该寄存器被bq27350中的许多函数用作阈值,以确定实际电荷电流是流入还是流出电池。这个寄存器的默认值是50mA,这对于大多数应用来说应该足够了。该阈值应设置得足够低,以低于任何正常充电电流,但应足够高,以防止噪声或漂移影响测量。

退出电流、Dsg松弛时间、Chg松弛时间和退出松弛时间

退出电流用作阻抗轨迹的一部分™ 确定bq27350何时从充电方向或放电方向的电流流动模式进入松弛模式的算法。退出电流值设置为默认值10mA,应高于主机系统的待机电流,但不能超过C/20速率。。

必须满足以下任一条件才能进入松弛模式:

1. |平均电流()|<|退出电流|为Dsg放松时间。

2. |AverageCurrent()|<|退出电流|用于更改松弛时间。

在松弛模式下约30分钟后,当电压变化率满足标准dV/dt<4uV/sec时,bq27350尝试获取准确的OCV读数。当读取新读数时,如果充电状态(SOC)与之前的OCV读数相比变化超过37%,则更新电池总容量Qmax。这些更新用于阻抗跟踪™ 算法。在OCV读数期间,蓄电池电压应放松,并且在尝试进入松弛模式时,电流不得高于C/20。

放弃放松时间指定AverageCurrent()在退出松弛模式之前保持在QuitCurrent阈值以上所需的最短时间。

最大尿流率

最大尿流率包含电池的最大化学容量,通过比较施加负载前后的电荷状态和通过的电荷量来确定。它也对应于极低流量下的容量,如C/20速率。为了获得高精度,bq27350在运行期间定期更新该值。Qmax的初始值应设置为其数据表中指定的电池单元容量。

更新状态

该寄存器中有2位是重要的

–位1(0x02)表示bq27350已经学习了新的Qmax参数并且是准确的。

–位2(0x04)表示阻抗跟踪是否™ 算法已启用。

其余的位被保留。位1和位2是用户可配置的;但是,位1也是可以由bq27350设置的状态标志。除非创建一个金色图像文件,否则不应修改这些位,如应用说明“为特定电池类型准备优化的默认闪存常量”(请参阅SLUA334.pdf)。位1根据需要由bq27350更新,位2由Control()命令0x0021设置。

上次运行的平均值

bq27350记录从每个放电循环开始到结束的平均电流。它将上一次放电循环的平均电流存储在该寄存器中。不应修改此寄存器。仅在需要时由bq27350更新。

上次运行的平均P

bq27350记录从每个放电循环开始到结束的平均功率。它将上一次放电循环的平均功率存储在该寄存器中。将瞬时功率乘以平均功率27Bq()得到连续的平均功率。然后记录这些数据,得出平均功率。不应修改此寄存器。仅在需要时由bq27350更新。

Ra表格

此数据在设备运行期间自动更新。除了从另一个用于创建“黄金图像文件”的预习包中读取值外,不应进行任何用户更改。配置文件的格式为Cell0 R_a M,其中M是表示值对应的电荷状态的数字。

温度测量

bq27350可以通过片上温度传感器或TS输入测量温度,具体取决于[TEMPS]位包配置()的设置。

温度测量是通过调用Temperature()函数来实现的(有关具体信息,请参见标准命令)。

当使用外部热敏电阻输入时,TOUT(引脚7)为热敏电阻供电,TS(引脚3)用于测量热敏电阻电压。bq27350然后将电压与温度相关联,假设热敏电阻是塞米泰克103AT或类似设备。

超温指示

bq27350可根据充电和放电状态下的测量温度设置安全标志指示。

过温:充电

如果在充电过程中,温度()超过OT Chg阈值一段时间,并且平均电流()>变化电流阈值,则设置标志()的[OTC]位。注:如果OT Chg Time=0,则功能完全禁用。

当温度()低于OT Chg恢复时,标志()的[OTC]被重置。

超温:放电

如果在放电过程中,温度()超过OT Dsg的阈值一段时间,并且平均电流()≤,则设置标志()的[OTD]位。注:如果OT Dsg时间=0,则该功能将完全禁用。-Dsg电流阈值当温度()低于OT Dsg恢复时,标志()的[OTD]位被重置。

充电和充电终止指示

为了正确操作bq27350,电池充电电压必须由用户指定。此变量的默认值为充电电压=4200mV。

当(1)在连续2个周期的电流锥形窗口期间,平均电流()小于锥形电流,(2)在同一时间段内,电容的累积变化>0.25mAh/锥形电流窗口,(3)电压()>充电电压-充电锥电压时,bq27350检测到充电终止。发生这种情况时,标志()的[FC]位被设置并且[CHG]位被清除。另外,如果设置了包配置的[RMFCC]位,则RemainingCapacity()设置为满载容量()

电源模式

bq27350有四种电源模式:正常、休眠、休眠和关机(按功耗降序排列)。在正常模式下,bq27350是完全通电的,可以执行任何允许的任务。在休眠模式下,煤气表处于低功率状态,定期进行测量和计算。在休眠模式下,煤气表处于最低功率状态,只会被通信活动或电池电流的增加唤醒。最后,在关机模式下,关闭所有bq27350电路,并切断设备电源;通过向设备重新施加足够的电压,可以重新启动IC。

这些模式之间的关系如图5-1所示。

模式6.1

当不处于任何其他电源模式时,燃气表处于正常模式。在此模式下,

平均电流(),进行电压()和温度()测量,并更新接口数据集。改变状态的决定也会做出。通过激活不同的电源模式退出此模式。

睡眠模式

当(1)平均电流()低于可编程电平休眠电流时,以及(2)如果设置了块配置()的[总线低]位,并且数据总线(SCL和SDA低引脚)持续5s处于低电平,则进入休眠模式。当bq27350进入休眠模式时,设置控制状态()的[休眠]位。一旦进入休眠状态被确认,但在进入休眠模式之前,bq27350将执行ADC自动校准以最小化偏移量。通过设置Pack Configuration()的[SLEEP]位,可以禁用进入睡眠模式,其中“0”=禁用,“1”=启用。在休眠模式下,bq27350会周期性地唤醒以进行数据测量并更新数据集,之后它将直接返回睡眠状态。如果任何进入条件被破坏,保护状态发生变化,或者检测到电流超过IWAKE through RSENSE,bq27350将退出休眠。

休眠模式

要进入休眠模式,需要在设备进入休眠模式时设置PackConfiguration()的[休眠]位。如果(1)检测到通信,(2)设备复位,或(3)通过RSENSE的电流高于IWAKE,则退出休眠模式。如果Pack Configuration[HIBERNATE]位被清除,bq27350将不会进入休眠模式。退出休眠模式后,设备将返回正常模式。

关机模式

关闭模式需要使用具有启用功能(低激活)的外部LDO。要进入关机状态,需要在bq27350进入休眠状态时设置PackConfiguration()[SHUTDOWN]位。充电器不得出现,保护器的DSG FET必须关闭。如果[关机]设置了PackConfiguration()位,bq27350在进入HIBERNATE时将其SE pin调高。此动作与DSG FET(低侧保护器实现)的失活一起,关闭LDO,从而关闭bq27350。当充电超过2秒时,LDO恢复。

功率控制

复位功能

当bq27350检测到硬件或软件复位(分别启动MRST引脚驱动低或控制()的[复位]位),它确定复位类型并增加相应的计数器。通过使用RESET_DATA子命令发出command Control()函数可以访问此信息。

如图5-2所示,如果检测到部分重置,则生成RAM校验和并与先前存储的校验和进行比较。如果校验和值不匹配,RAM将被重新初始化(“完全复位”)。每次RAM改变时,存储的校验和都会更新。

唤醒比较器

当bq27350处于休眠或休眠模式时,唤醒比较器用于指示单元电流的变化。PackConfiguration()使用位[RSNS1-RSNS0]来设置检测电阻器的选择。PackConfiguration()使用[IWAKE]位为给定的检测电阻器选择选择两个可能的电压阈值范围之一。当在充电或放电方向突破阈值时,会产生内部中断。RSNS1..0的0x00设置将禁用此功能。

闪存更新

闪光电压更新时,≥闪光电压只能更新。闪存编程电流会导致LDO压降增加。闪存更新正常电压值的选择应确保在闪存写入操作期间,bq27350 Vcc电压不会低于其最小值2.4V。对于参考示意图中显示的TPS71525 LDO,默认值2800mV是合适的。

自动校准

bq27350提供了一个自动校准功能,当工作条件发生变化时,它将测量SRP和SRN之间的电压偏移误差。它从正常感测电阻电压Vsr中减去产生的偏移误差,以获得最大的测量精度。

当(1)接口线在最短的总线低时间内保持在较低水平,并且(2)Vsr>死区时,燃气表执行单偏移校准。

当(1)平均电流()≤和(2){上次偏移校准后的电压变化≥}或{上次偏移校准后的温度变化大于≥}的{温度变化时,燃气表也执行单次偏移。

自动最小电流

当无法进行这些测量时,应在偏移校准期间以最后测量的速率继续进行容量和电流测量。如果在偏移校准期间电池电压下降超过校准中止,则负载电流可能会显著增加;因此,偏移校准将中止。

通信

bq27350使用与bq27200相同的I2C通信,并直接与TI-OMAP和其他标准I2C主设备接口。

bq27350还使用SDQ接口与安全产品(如bq26100)通信。

bq27350只充当I2C和SDQ之间的格式转换器。

I2C接口

燃气表支持标准I2C读取、增量读取、单字节写入快速读取和功能。7位设备地址(ADDR)是十六进制地址中最有效的7位,固定为1010101。因此,对于写入或读取,8位设备地址分别为0xAA或0xAB。

“快速读取”返回地址指针指示的地址处的数据。每当bq27350或I2C主机确认数据时,地址指针(I2C通信引擎内部的寄存器)就会递增。“快速写入”功能与此相同,是向连续命令位置发送多个字节(例如需要两个字节数据的两个字节命令)的便捷方式。

尝试写入只读地址(主机发送数据后的NACK):

尝试读取0x7F以上的地址(NACK命令):

尝试增量写入(NACK发送的所有额外数据字节):

以最大允许读取地址递增读取:

如果I2C总线保持在t(总线错误)的低位,I2C引擎将同时释放SDA和SCL。如果煤气表控制着管线,松开它们可以让主人自由驾驶管线。如果外部条件保持其中一条线路处于低电平,I2C引擎将进入低功耗休眠模式。

认证

bq27350可以充当SHA-1/HMAC身份验证从机,可以使用其内部引擎,也可以使用外部bq26100(包含安全内存)。在这两种实现中,向bq27350发送160位SHA-1质询消息将导致IC基于质询消息和隐藏的纯文本认证密钥返回160位摘要。当此摘要与主机或专用验证主机生成的相同摘要匹配时,验证过程将成功,该主机或专用验证主机对同一质询消息进行操作并使用相同的纯文本密钥。

bq27350包含一个默认的纯文本身份验证密钥0x0123456789ABCDEFFEDCBA987654321。如果使用bq27350的内部身份验证引擎,默认密钥可以用于开发目的,但在将包投入运行之前,应将其更改为密钥并立即密封该部分。如果使用bq26100进行外部身份验证,则密钥必须更改为16字节的“0x00”。

按键编程

当使用bq27350的SHA-1/HMAC内部引擎时,身份验证密钥以明文形式存储在内存中。纯文本认证密钥只能在IC处于非密封模式时写入bq27350。一旦IC解封,就会向BlockDataControl()写入0x00,以启用验证数据命令。接下来,通过分别向DataFlashClass()和DataFlashBlock()写入0x70和0x00来指定子类ID和偏移量。bq27350现在准备接收16字节的纯文本密钥,该密钥必须从命令位置0x4C开始。一旦成功地将校验和写入BlockDataChecksum(),对于整个32字节的块(0x40到0x5f),而不仅仅是16字节的键,就会接受该密钥。

当使用外部bq26100认证IC时,认证密钥存储在bq26100的安全存储器中。bq26100使用两个64位密钥的分割密钥系统,而不是一个128位密钥。

执行验证查询

要在非密封模式下执行身份验证查询,主机必须首先将0x01写入BlockDataControl()命令,以启用身份验证数据命令。如果处于密封模式,则必须将0x00写入DataFlashBlock()。接下来,主机向AuthenticateData()地址位置(0x40到0x53)写入一个20字节的身份验证质询。在将质询的有效校验和写入AuthenticateChecksum()后,bq27350使用质询来执行它自己的SHA-1/HMAC计算,以及它的编程密钥。生成的摘要将写入AuthenticateData(),覆盖预先存在的质询。然后主机可以读取此响应,并将其与自己的并行计算生成的结果进行比较。

参考示意图

参考电路显示了bq27350的I2C通信实现。D1和相关电阻器提供额外的保护,以防在通信线路上出现ESD。电容器C4/C8和C15/C16也用于ESD保护,如果一个电容器在短路状态下发生故障,则将它们配对在一起以提高电压处理能力和冗余保护。

还显示了使用bq26100(U1)和外部温度测量(R12、R14和C10)进行外部认证的可选电路。

共模和差分滤波器(R7-19和C12-14)消除库仑计数器输入端的噪声。U4、Q4和相关的钝化物形成锂离子电池保护器,而U3、C5和C9组成锂电池保护器LDO集成电路及其输入输出电容器。R5和C7向MRST输入端提供延迟的“功率良好”信号。

Q3、R13和D2充当LDO禁用电路(当PACK和SE引脚均为“高”时,LDO关闭)。最后,Q1,Q2,R1,R2和R4形成一个精密的分压器,将电池电压降低到适合bq27350的水平。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
实时控制.安全.如何加速实现未来工厂落地?