作者: 朱明武(Mingmo)
電量計(jì)有三層安全模式:SEALED(加鎖), UNSEALED(解鎖), FULL ACCESS(全訪問)。在不同安全模式下切換需要不同的安全密碼。下面以BQ40Z50-R2為例(BQ40Z50-R1/R2/R3均適用)介紹三層安全模式的區(qū)別、模式切換方法、如何讀取密碼及如何修改密碼。
1、三層安全模式的區(qū)別
不同安全模式下電量計(jì)的信息訪問權(quán)限不同。
SEALED(加鎖)模式下,標(biāo)準(zhǔn)SBS命令(Command)可以訪問、部分?jǐn)U展命令(Extended Command)不能使用、不能讀寫Data Memory參數(shù)(不能導(dǎo)出導(dǎo)入GG文件)、不可以燒錄CHEM ID、不能燒錄或?qū)С龉碳?FW)。具體SBS命令訪問權(quán)限請參考電量計(jì)技術(shù)參考手冊(Technical Reference Manual),里面ManufacturerAccess() Command List表格的Available in SEALED Mode標(biāo)記了能否訪問。
UNSEALED(解鎖)模式下,標(biāo)準(zhǔn)SBS命令(Command)可以訪問、部分?jǐn)U展命令(Extended Command)不能使用、可以讀寫Data Memory參數(shù)(可以導(dǎo)出導(dǎo)入GG文件)、可以燒錄CHEM ID、不能燒錄或?qū)С龉碳?(FW)。
FULL ACCESS(全訪問)模式下,所有SBS命令(Command)可以訪問、可以讀寫Data Memory參數(shù)(可以導(dǎo)出導(dǎo)入GG文件)、可以燒錄CHEM ID、不能燒錄或?qū)С龉碳?(FW)。BQ40Z50-R2從TI出貨時(shí)默認(rèn)是FULL ACCESS(全訪問)模式。
2、三層安全模式之間切換方法
2.1 從FUll ACCESS or UNSEALED 進(jìn)入 SEALED
往ManufacturerAccess()發(fā)送命令 0x0030 即可讓BQ40Z50-R2進(jìn)入SEALED(加鎖)模式。通過檢查旗標(biāo)OperationStatus()[SEC1, SEC0] = 1,1.可以判斷電量計(jì)處于SEALED(加鎖)模式。
注意,如果該電量計(jì)的SREC固件曾經(jīng)加鎖過,那么在FULL ACCESS or UNSEALED模式下發(fā)送復(fù)位命令或?qū)С鯯REC固件后都會使得電量計(jì)加鎖,進(jìn)入SEALED模式。
2.2 從SEALED 進(jìn)入U(xiǎn)NSEALED
從SEALED 進(jìn)入U(xiǎn)NSEALED需要往ManufacturerAccess()發(fā)送兩個(gè)字的UNSEAL KEY密碼。默認(rèn)UNSEAL KEY第一個(gè)字是0x0414,第二個(gè)字是0x3672。先發(fā)送第一個(gè)字,接著在4秒內(nèi)發(fā)第二個(gè)字,中間不能有其它命令讀寫電量計(jì)。通過檢查旗標(biāo)OperationStatus()[SEC1, SEC0] = 1,0.可以判斷電量計(jì)處于UNSEALED(解鎖)模式。
2.3從UNSEALED 進(jìn)入FULL ACCESS
從UNSEALED進(jìn)入FULL ACCESS需要往ManufacturerAccess()發(fā)送兩個(gè)字的FULL ACCESS KEY密碼。默認(rèn)FULL ACCESS KEY第一個(gè)字是0xFFFF,第二個(gè)字是0xFFFF。先發(fā)送第一個(gè)字,接著在4秒內(nèi)發(fā)第二個(gè)字,中間不能有其它命令讀寫電量計(jì)。通過檢查旗標(biāo)OperationStatus()[SEC1, SEC0] = 0,1.可以判斷電量計(jì)處于FULL ACCESS(全訪問)模式。
3、如何讀取安全密碼
在解鎖模式下用ManufacturerAccess() 0x0035命令讀取安全密碼(Security Keys)。
首先,打開bqStudio的Advanced Comm SMB界面,配置Target Addr = 16 (Hex);在Write Block 位置輸入 44(Hex),在 Block中輸入 35 00 ,然后點(diǎn)擊Write Block 按鈕。
然后,在 Read Block 位置輸入 44(Hex),點(diǎn)擊 Read Block按鈕,即可讀取電量計(jì)的安全密碼。返回的數(shù)據(jù)以小端序顯示,即低字節(jié)在前、高字節(jié)在后。比如下圖1,返回14 04 72 36 FF FF FF FF,其中0414是UNSEAL KEY的第一個(gè)字節(jié),3672是UNSEAL KEY的第二個(gè)字節(jié),F(xiàn)FFF是FULL ACCESS KEY的第一個(gè)字節(jié),最后一組FFFF是FULL ACCESS KEY的第二個(gè)字節(jié)。
圖1 讀取密碼
4、如何修改安全密碼
在解鎖模式下用ManufacturerAccess() 0x0035命令修改安全密碼(Security Keys)。下面舉例把BQ40Z50-R2默認(rèn)UNSEAL KEY密碼0x0414, 0x3672修改為0x1234, 0x5678,保留FULL ACCESS KEY(默認(rèn)0xFFFF, 0xFFFF)不變。
打開bqStudio的Advanced Comm SMB界面,配置Target Addr = 16 (Hex);在Write Block 位置輸入 44(Hex),在 Block中輸入 35 00 34 12 78 56 FF FF FF FF,然后點(diǎn)擊Write Block 按鈕,如圖2所示。 Transaction Log顯示綠色表示字節(jié)已經(jīng)成功發(fā)送電量計(jì)。
按照第3節(jié)介紹的安全密碼讀取方法,讀回密碼檢驗(yàn)密碼是否修改正確。如下圖3,在 Read Block 返回35 00 34 12 78 56 FF FF FF FF表示密碼修改成功。
制定密碼時(shí)要注意UNSEAL KEY的第一個(gè)字節(jié)與FULL ACCESS KEY的第一個(gè)字節(jié)不能相同。比如UNSEAL KEY 0x1234, 0x5678與FULL ACCESS KEY 0x1234, 0xFFFF的第一個(gè)字節(jié)相同為0x1234,因此這不是有效的密碼。
審核編輯:何安
-
電源管理
+關(guān)注
關(guān)注
115文章
6140瀏覽量
144106
發(fā)布評論請先 登錄
相關(guān)推薦
評論