我使用 Battery Management Studio (bqStudio)为符合 SBS 的 SMBus 电量监测计生成了一个 bq.fs 文件。 此文件的格式是什么?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
SMB 的闪存流文件格式
以下各节介绍 TI BMS FlashStream (.bq.fs)文件的文件格式。 这些文件包含更新设备指令闪存(IF)和数据闪存(DF)所需的 SMBus 操作说明。
bqfs 文件是一个包含命令和数据的 ASCII 文本文件。 文件的每一行都代表一个命令、并可能代表 XX 字节的数据、如下所述。 注释行以分号开头。 任何行都不包含超过96个数据字节。 每行的前两个字符表示命令,然后是“:”。
“SWC:”-表示该行是用于写入 SMBus 命令的命令(0字节)
“SWW:”-表示该行是写入 SMBus 字的命令(2个字节)
“SWB:”-表示该行是一条命令,用于写入一个包含多个字节数据的 SMBus 块
“SCW”-表示线路是读取和比较 SMBus 字(2个字节)的命令
“SCL:”-表示该行是读取和比较多个字节数据中的一个 SMBus 块并验证块长度的命令
“X:”–表示该行是一个命令,用于在继续(十进制)之前等待最小的指定毫秒数。
空白用于分隔.bqfs 文件中的字段。 每行包含一条以上命令、且只有一条。
SMBus 写入命令“SWC:”指示主机向给定的 SMBus 地址写入单个字节的 SMBus 命令。 此序列的格式为:
“SWC:smbAddr smbCommand”
例如、以下内容:
SWC:16 08
指示主机应将 SMBus 命令0x08写入地址为0x16的器件。
SMBus 写入命令“SWW:”指示主机使用 SMBus 命令向给定的 SMBus 地址写入一个字(首先是2字节 MSB)。 此序列的格式为:
“SWW: smbAddr smbCommand smbWordLSB smbWordMSB”
例如、以下内容:
SWW:16 08 AA AB
指示主机应使用 SMBus 命令0x08将字节0xAA (字的 LSB)和0xAB (字的 MSB)写入地址为0x16的器件。
SMBus 写入命令“SWB:”指示主机使用 SMBus 命令将一个字节块写入给定的 SMBus 地址。 此序列的格式为:
“SWB:smbAddr smbCommand smbBlockByte1 [smbBlockByte2…”
例如、以下内容:
SWB:16 08 AA AB AC
指示主机应使用 SMBus 命令0x08向地址为0x16的器件写入字节0xAA、0xAB、0xAC 的块。
SMBus 读取字和比较命令“SRW:”指示主机使用 SMBus 命令从给定的 SMBus 地址读取字并与指定值进行比较。 此序列的格式为:
“SCW: smbAddr smbCommand wordLSB wordMSB”
例如、以下内容:
SCW:16 08 AA AB
指示主机应使用 SMBus 命令0x08从地址为0x16的器件读取一个字、并与0xAA (LSB)和0xAB (MSB)进行比较。
。
SMBus 读取块和比较确切长度命令“SCL:”指示主机使用 SMBus 命令从给定的 SMBus 地址读取数据块,并比较长度和可选的比较字节。 此序列的格式为:
“SCL:smbAddr smbCommand blockLength [blockByte1 blockByte2…]”
例如、以下内容:
SCL:16 08 02 AA AB
指示主机应使用 SMBus 命令0x08从地址为0x16的器件读取数据块、并比较长度是否正好为2个字节、并将字节与0xAA (字节1)和0xAB (字节2)进行比较。
WAIT 命令指示主机应等待给定毫秒数的最短时间、然后再继续执行闪存流的下一行。 允许的最大值为20000毫秒。 任何大于20000的值都有未定义的行为。
例如、以下内容:
X:200
指示主机必须等待至少200ms 才能继续。
注:“X:”后面的数字是一个十进制数字。 这与所有其他命令不同。 通常、除此命令外、所有字节都指定为十六进制值。