Other Parts Discussed in Post: BQ40Z50-R2, BQSTUDIO

作者: 朱明武(Mingmo)

电量计有三层安全模式:SEALED(加锁), UNSEALED(解锁), FULL ACCESS(全访问)。在不同安全模式下切换需要不同的安全密码。下面以BQ40Z50-R2为例(BQ40Z50-R1/R2/R3均适用)介绍三层安全模式的区别、模式切换方法、如何读取密码及如何修改密码。

1、三层安全模式的区别

不同安全模式下电量计的信息访问权限不同。

SEALED(加锁)模式下,标准SBS命令(Command)可以访问、部分扩展命令(Extended Command)不能使用、不能读写Data Memory参数(不能导出导入GG文件)、不可以烧录CHEM ID、不能烧录或导出固件(FW)。具体SBS命令访问权限请参考电量计技术参考手册(Technical Reference Manual),里面ManufacturerAccess() Command List表格的Available in SEALED Mode标记了能否访问。

UNSEALED(解锁)模式下,标准SBS命令(Command)可以访问、部分扩展命令(Extended Command)不能使用、可以读写Data Memory参数(可以导出导入GG文件)、可以烧录CHEM ID、不能烧录或导出固件 (FW)

FULL ACCESS(全访问)模式下,所有SBS命令(Command)可以访问、可以读写Data Memory参数(可以导出导入GG文件)、可以烧录CHEM ID、不能烧录或导出固件 (FW)BQ40Z50-R2TI出货时默认是FULL ACCESS(全访问)模式。

2、三层安全模式之间切换方法

2.1 从FUll ACCESS or UNSEALED 进入 SEALED

ManufacturerAccess()发送命令 0x0030 即可让BQ40Z50-R2进入SEALED(加锁)模式。通过检查旗标OperationStatus()[SEC1, SEC0] = 1,1.可以判断电量计处于SEALED(加锁)模式。

注意,如果该电量计的SREC固件曾经加锁过,那么在FULL ACCESS or UNSEALED模式下发送复位命令或导出SREC固件后都会使得电量计加锁,进入SEALED模式

        2.2 从SEALED 进入UNSEALED

SEALED 进入UNSEALED需要往ManufacturerAccess()发送两个字的UNSEAL KEY密码。默认UNSEAL KEY第一个字是0x0414,第二个字是0x3672。先发送第一个字,接着在4秒内发第二个字,中间不能有其它命令读写电量计。通过检查旗标OperationStatus()[SEC1, SEC0] = 1,0.可以判断电量计处于UNSEALED(解锁)模式。

         2.3从UNSEALED 进入FULL ACCESS

UNSEALED进入FULL ACCESS需要往ManufacturerAccess()发送两个字的FULL ACCESS KEY密码。默认FULL ACCESS KEY第一个字是0xFFFF,第二个字是0xFFFF。先发送第一个字,接着在4秒内发第二个字,中间不能有其它命令读写电量计。通过检查旗标OperationStatus()[SEC1, SEC0] = 0,1.可以判断电量计处于FULL ACCESS(全访问)模式。

3、如何读取安全密码

在解锁模式下用ManufacturerAccess() 0x0035命令读取安全密码(Security Keys)

首先,打开bqStudioAdvanced Comm SMB界面,配置Target Addr = 16 (Hex);在Write Block 位置输入 44(Hex),在 Block中输入 35 00 ,然后点击Write Block 按钮。

然后,在 Read Block 位置输入 44(Hex),点击 Read Block按钮,即可读取电量计的安全密码。返回的数据以小端序显示,即低字节在前、高字节在后。比如下图1,返回14 04 72 36 FF FF FF FF,其中0414UNSEAL KEY的第一个字节,3672UNSEAL KEY的第二个字节,FFFFFULL ACCESS KEY的第一个字节,最后一组FFFFFULL ACCESS KEY的第二个字节。

 1 读取密码

4、如何修改安全密码

在解锁模式下用ManufacturerAccess() 0x0035命令修改安全密码(Security Keys)。下面举例把BQ40Z50-R2默认UNSEAL KEY密码0x0414, 0x3672修改为0x1234, 0x5678,保留FULL ACCESS KEY(默认0xFFFF, 0xFFFF)不变。

打开bqStudioAdvanced Comm SMB界面,配置Target Addr = 16 (Hex);在Write Block 位置输入 44(Hex),在 Block中输入 35 00 34 12 78 56 FF FF FF FF,然后点击Write Block 按钮,如图2所示。 Transaction Log显示绿色表示字节已经成功发送电量计。


 2 修改密码

按照第3节介绍的安全密码读取方法,读回密码检验密码是否修改正确。如下图3,在 Read Block 返回35 00 34 12 78 56 FF FF FF FF表示密码修改成功。

 3 确认密码

制定密码时要注意UNSEAL KEY的第一个字节与FULL ACCESS KEY的第一个字节不能相同。比如UNSEAL KEY 0x1234, 0x5678FULL ACCESS KEY 0x1234, 0xFFFF的第一个字节相同为0x1234,因此这不是有效的密码。

 

参考文献

1.BQ40Z50-R2 Technical Reference Manual: http://www.ti.com/lit/pdf/sluubk0

Anonymous