qwqwqw2088 发表于 2019-6-25 08:36

BQ40Z50-R2安全模式介绍及密码修改方法

本帖最后由 qwqwqw2088 于 2019-6-25 08:36 编辑

<p><span style="font-size:16px">作者:&nbsp;朱明武(Mingmo)</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px">电量计有三层安全模式:SEALED(加锁), UNSEALED(解锁), FULL ACCESS(全访问)。在不同安全模式下切换需要不同的安全密码。下面以<a href="http://www.ti.com/product/BQ40Z50-R2">BQ40Z50-R2</a>为例(<a href="http://www.ti.com/product/BQ40Z50-R1">BQ40Z50-R1</a>/<a href="http://www.ti.com/product/BQ40Z50-R2">R2</a>/<a href="http://www.ti.com/tool/BQ40Z50-R3-DEVICE-FW">R3</a>均适用)介绍三层安全模式的区别、模式切换方法、如何读取密码及如何修改密码。</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px"><strong>1、三层安全模式的区别</strong></span></p>

<p><span style="font-size:16px">不同安全模式下电量计的信息访问权限不同。</span></p>

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

<p><span style="font-size:16px">UNSEALED(解锁)模式下,标准SBS命令(Command)可以访问、部分扩展命令(Extended Command)不能使用、可以读写Data Memory参数(可以导出导入GG文件)、可以烧录CHEM ID、不能烧录或导出固件&nbsp;(FW)。</span></p>

<p><span style="font-size:16px">FULL ACCESS(全访问)模式下,所有SBS命令(Command)可以访问、可以读写Data Memory参数(可以导出导入GG文件)、可以烧录CHEM ID、不能烧录或导出固件&nbsp;(FW)。<a href="http://www.ti.com.cn/product/cn/BQ40Z50-R2" target="_blank">BQ40Z50-R2</a>从TI出货时默认是FULL ACCESS(全访问)模式。</span></p>

<p><span style="font-size:16px"><strong>2、三层安全模式之间切换方法</strong></span></p>

<p><span style="font-size:16px"><strong>2.1 从FUll ACCESS or UNSEALED 进入 SEALED</strong></span></p>

<p><span style="font-size:16px">往ManufacturerAccess()发送命令&nbsp;0x0030&nbsp;即可让<a href="http://www.ti.com.cn/product/cn/BQ40Z50-R2" target="_blank">BQ40Z50-R2</a>进入SEALED(加锁)模式。通过检查旗标OperationStatus() = 1,1.可以判断电量计处于SEALED(加锁)模式。</span></p>

<p><span style="font-size:16px">注意,如果该电量计的SREC固件曾经加锁过,那么在FULL ACCESS or UNSEALED模式下发送复位命令或导出SREC固件后都会使得电量计加锁,进入SEALED模式。</span></p>

<p><span style="font-size:16px"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.2 从SEALED 进入UNSEALED</strong></span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px">从SEALED&nbsp;进入UNSEALED需要往ManufacturerAccess()发送两个字的UNSEAL KEY密码。默认UNSEAL KEY第一个字是0x0414,第二个字是0x3672。先发送第一个字,接着在4秒内发第二个字,中间不能有其它命令读写电量计。通过检查旗标OperationStatus() = 1,0.可以判断电量计处于UNSEALED(解锁)模式。</span></p>

<p><span style="font-size:16px"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.3从UNSEALED 进入FULL ACCESS</strong></span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px">从UNSEALED进入FULL ACCESS需要往ManufacturerAccess()发送两个字的FULL ACCESS&nbsp;KEY密码。默认FULL ACCESS&nbsp;KEY第一个字是0xFFFF,第二个字是0xFFFF。先发送第一个字,接着在4秒内发第二个字,中间不能有其它命令读写电量计。通过检查旗标OperationStatus() = 0,1.可以判断电量计处于FULL ACCESS(全访问)模式。</span></p>

<p><span style="font-size:16px"><strong>3、如何读取安全密码</strong></span></p>

<p><span style="font-size:16px">在解锁模式下用ManufacturerAccess() 0x0035命令读取安全密码(Security Keys)。</span></p>

<p><span style="font-size:16px">首先,打开<a href="http://www.ti.com.cn/tool/cn/bqStudio" target="_blank">bqStudio</a>的Advanced Comm SMB界面,配置Target Addr = 16 (Hex);在Write Block&nbsp;位置输入&nbsp;44(Hex),在&nbsp;Block中输入&nbsp;35 00&nbsp;,然后点击Write Block&nbsp;按钮。</span></p>

<p><span style="font-size:16px">然后,在&nbsp;Read Block&nbsp;位置输入&nbsp;44(Hex),点击&nbsp;Read Block按钮,即可读取电量计的安全密码。返回的数据以小端序显示,即低字节在前、高字节在后。比如下图1,返回14 04 72 36 FF FF FF FF,其中0414是UNSEAL KEY的第一个字节,3672是UNSEAL KEY的第二个字节,FFFF是FULL ACCESS&nbsp;KEY的第一个字节,最后一组FFFF是FULL ACCESS&nbsp;KEY的第二个字节。</span></p>

<p><span style="font-size:16px"><img alt=" " src="https://e2echina.ti.com/resized-image/__size/2460x600/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-19/_FE56_1.png" />图1&nbsp;读取密码</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px"><strong>4、如何修改安全密码</strong></span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px">在解锁模式下用ManufacturerAccess() 0x0035命令修改安全密码(Security Keys)。下面举例把<a href="http://www.ti.com.cn/product/cn/BQ40Z50-R2" target="_blank">BQ40Z50-R2</a>默认UNSEAL KEY密码0x0414, 0x3672修改为0x1234, 0x5678,保留FULL ACCESS&nbsp;KEY(默认0xFFFF, 0xFFFF)不变。</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px">打开<a href="http://www.ti.com.cn/tool/cn/bqStudio" target="_blank">bqStudio</a>的Advanced Comm SMB界面,配置Target Addr = 16 (Hex);在Write Block&nbsp;位置输入&nbsp;44(Hex),在&nbsp;Block中输入&nbsp;35 00 34 12 78 56 FF FF FF FF,然后点击Write Block&nbsp;按钮,如图2所示。&nbsp;Transaction Log显示绿色表示字节已经成功发送电量计。</span></p>

<p><span style="font-size:16px"><a href="https://e2echina.ti.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-19/_FE56_2.png"><img alt=" " src="https://e2echina.ti.com/resized-image/__size/2460x500/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-19/_FE56_2.png" /></a><br />
&nbsp;图2&nbsp;修改密码</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px">按照第3节介绍的安全密码读取方法,读回密码检验密码是否修改正确。如下图3,在&nbsp;Read Block&nbsp;返回35 00 34 12 78 56 FF FF FF FF表示密码修改成功。</span></p>

<p><span style="font-size:16px"><img alt=" " src="https://e2echina.ti.com/resized-image/__size/2460x500/__key/communityserver-blogs-components-weblogfiles/00-00-00-01-19/_FE56_3.png" />图3&nbsp;确认密码</span></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:16px">制定密码时要注意UNSEAL KEY的第一个字节与FULL ACCESS&nbsp;KEY的第一个字节不能相同。比如UNSEAL KEY 0x1234, 0x5678与FULL ACCESS&nbsp;KEY 0x1234, 0xFFFF的第一个字节相同为0x1234,因此这不是有效的密码。</span></p>

alan000345 发表于 2019-6-28 08:57

<p><img height="50" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/onion/Onion--109.gif" width="50" />这样的东西都没人顶,我顶一下吧</p>

zxcvbnm751120 发表于 2024-10-15 11:11

页: [1]
查看完整版本: BQ40Z50-R2安全模式介绍及密码修改方法