资讯中心

    (三)NT3H2211 EEPROM存储分区设计与移动电源异常记录规范
    发布日期:2026-09-16 访问量:3

    一、存储设计背景

    NT3H2211提供2048字节EEPROM存储空间,如何合理分区以同时满足新国标合规要求、实时数据更新和客户定制扩展需求,是软件设计的核心问题。本文基于实佳电子的量产实践,给出一套经过验证的四区分配方案和异常记录数据格式规范。

    二、四区分配总览

    分区

    地址范围

    大小

    功能

    读写属性

    基本信息区

    0x0000-0x002F

    48字节

    产品身份信息,出厂写入

    只读(锁定后)

    实时数据区

    0x0030-0x00EF

    192字节

    当前电池状态,BMS定时更新

    I2C可写,NFC可读

    异常记录区

    0x00F0-0x01EF

    256字节

    16条×16字节环形缓冲区

    I2C追加写,NFC可读

    配置保留区

    0x01F0-0x01FF

    16字节

    NFC密码、访问权限、配置寄存器

    受密码保护

    扩展数据区

    0x0200-0x07FF

    1536字节

    客户自定义扩展

    按客户需求配置

     

    该分区方案的设计原则:基本信息只读防篡改,实时数据高频更新,异常记录环形覆盖,配置区受密码保护,扩展区预留灵活。2048字节在满足新国标全部要求的同时,保留1536字节供客户自定义使用。

    三、基本信息区(48字节)

    基本信息区在出厂时一次性写入,之后通过NT3H2211的AUTH0寄存器和NFC密码锁定为只读,防止篡改。确保每台设备的身份信息唯一可追溯。

    偏移

    长度

    字段

    格式

    示例

    0x00

    8字节

    产品序列号SN

    ASCII

    SJ2026090001

    0x08

    16字节

    产品型号

    ASCII

    POWERBANK-20000

    0x18

    4字节

    电池容量

    uint32(mAh)

    20000

    0x1C

    4字节

    厂商代码

    ASCII

    SJEA

    0x20

    4字节

    生产日期

    BCD(YYYYMMDD)

    20260915

    0x24

    2字节

    固件版本

    uint16(主.次)

    0x0102(V1.2)

    0x26

    2字节

    硬件版本

    uint16

    0x0100

    0x28

    8字节

    预留

    -

    全0xFF

     

    四、实时数据区(192字节)

    实时数据区由BMS定时更新(建议1-5秒周期),手机NFC读取时获取最新电池状态。前20字节为核心数据,剩余172字节预留扩展。

    偏移

    长度

    字段

    格式

    说明

    0x30

    2字节

    当前电压

    uint16(mV)

    电芯电压,范围2500-4500

    0x32

    2字节

    当前电流

    int16(mA)

    充电为正,放电为负

    0x34

    2字节

    当前温度

    int16(0.1℃)

    NTC极耳测温,范围-400~1250

    0x36

    1字节

    SOC剩余电量

    uint8(%)

    0-100

    0x37

    2字节

    循环次数

    uint16

    充放电完整循环计数

    0x39

    1字节

    健康度SOH

    uint8(%)

    基于循环和温度历史估算

    0x3A

    1字节

    充电状态

    uint8

    0=空闲,1=充电,2=放电,3=充满

    0x3B

    1字节

    保护状态

    uint8位域

    bit0=过温,bit1=过充,bit2=过放,bit3=短路

    0x3C

    8字节

    最近异常时间

    uint64(Unix秒)

    最近一次异常发生的时间戳

    0x44

    1字节

    最近异常类型

    uint8

    0=无,1=过温,2=过充,3=过放,4=短路,5=鼓包

    0x45

    1字节

    FSR压力值

    uint8(0.01N)

    鼓包传感器读数,无FSR时为0xFF

    0x46

    170字节

    预留扩展

    -

    可增加更多实时参数

     

    五、异常记录区(256字节)

    异常记录区是新国标第6.8b条的核心存储区域。采用16字节定长记录、16条环形缓冲区设计,最新记录自动覆盖最旧记录。

    5.1 单条记录格式(16字节)

    偏移

    长度

    字段

    格式

    说明

    0

    1字节

    异常类型

    uint8

    01=过温,02=过充,03=过放,04=短路,05=鼓包,06=低温

    1

    1字节

    事件状态

    uint8

    01=触发,02=恢复,03=保护锁死

    2

    2字节

    触发数值

    uint16

    温度×10或电压×100或压力×100,小端

    4

    8字节

    时间戳

    uint64

    Unix时间戳(秒),小端模式

    12

    1字节

    SOC

    uint8

    异常触发时剩余电量百分比

    13

    2字节

    循环次数

    uint16

    异常触发时已循环次数,小端

    15

    1字节

    CRC8

    uint8

    前15字节的CRC8校验(多项式0x07)

     

    5.2 环形缓冲区管理

    256字节分为16个槽位(slot 0-15),每个槽位16字节。管理算法如下:

    1.    维护一个写指针(write_ptr),初始值0,存储在BMS RAM中(不需存入EEPROM)。

    2.    异常发生时,将16字节记录写入write_ptr指向的槽位。

    3.    写入完成后write_ptr递增,达到16时归零(覆盖最旧记录)。

    4.    手机读取时,从write_ptr的下一个槽位开始读取(即最旧记录),顺序读取16个槽位,跳过全0xFF的空槽位。

    5.    CRC8校验失败的记录视为无效,跳过不展示。

    5.3 异常类型定义

    类型码

    异常名称

    触发条件示例

    恢复条件

    0x01

    过温

    电芯温度≥60℃

    温度降至50℃以下

    0x02

    过充

    电芯电压≥4.35V

    电压降至4.20V以下

    0x03

    过放

    电芯电压≤2.50V

    充电至3.0V以上

    0x04

    短路

    放电电流≥20A(持续10ms)

    移除短路,手动复位

    0x05

    鼓包

    FSR压力≥0.5N(膨胀约0.5mm)

    不可恢复,建议更换

    0x06

    低温

    电芯温度≤-20℃

    温度升至-10℃以上

     

    六、配置保留区(16字节)

    配置保留区用于存储NFC访问密码和权限配置,受NT3H2211硬件密码保护,未授权的NFC读取将被拒绝。

          NFC密码(PWD):4字节,设置后NFC读取需先通过密码认证。

          密码确认(PACK):2字节,密码认证的应答确认。

          认证起始地址(AUTH0):1字节,从该地址开始的存储区需要密码认证才能访问。

          访问权限(AUTHLIM):1字节,配置密码尝试次数限制。

          NDEF配置:NDEF消息长度、类型标识,确保手机触碰后正确解析。

    建议:基本信息区和异常记录区设为公开可读(无需密码),配置区和扩展区的敏感数据设为密码保护。

    七、扩展数据区(1536字节)

    扩展数据区供客户自定义使用,典型应用包括:

          FSR鼓包压力历史数据:记录压力变化趋势,用于鼓包预测算法。

          更多异常记录:将异常记录从16条扩展到32条或更多。

          厂商自定义参数:电芯型号、生产批次、测试数据、校准系数。

          整机测试数据:出厂测试的电压、内阻、容量等测试记录。

          用户配置数据:用户通过APP/NFC设置的参数(如快充模式、温度告警阈值)。

    八、数据完整性保障

    6.    CRC8校验:每条异常记录含CRC8,读取时校验,损坏记录自动跳过。

    7.    写保护:基本信息区出厂锁定,防止篡改。

    8.    会话仲裁:I2C和RF访问通过SESSION_REQ寄存器仲裁,避免同时写入。

    9.    写入验证:BMS写入后回读确认,确保数据正确写入。

    10.  环形覆盖:异常记录采用环形缓冲区,不会因存储满而停止记录。

    常见问题

    Q1:为什么异常记录用16字节定长而不是变长?

    A:定长记录有三个优势:①环形缓冲区管理简单,写指针按固定步长递增,不需要解析变长字段;②手机端解析简单,按16字节边界直接读取,不需要分隔符;③存储效率高,无额外长度字段开销。16字节可容纳类型、状态、数值、时间戳、SOC、循环次数和CRC,信息完整。

    Q2:时间戳用Unix格式,BMS没有RTC怎么办?

    A:如果BMS没有RTC,可采用相对时间戳:从产品首次上电开始计时(秒计数),手机读取时结合首次使用时间(可通过NDEF配置或服务器获取)换算为绝对时间。另一种方案是每次手机NFC触碰时,由手机将当前时间写入标签的时间同步区,BMS以此为基准计时。实佳电子提供相对时间戳的参考实现。

    Q3:16条异常记录够吗?

    A:对大多数产品足够。正常使用的充电宝一年异常次数通常不超过5次,16条可覆盖3年以上的异常历史。如果产品应用环境恶劣(如共享充电宝),可利用扩展区将记录扩展到32条或更多。环形缓冲区设计确保始终保留最新的16条,不会丢失近期异常。

    Q4:EEPROM擦写寿命10万次,实时数据1-5秒写一次会不会很快耗尽?

    A:不会。两个原因:①实时数据区不需要每次都写EEPROM,可利用NT3H2211的64字节SRAM作为缓冲区,仅在数据变化超过阈值(如温度变化≥1℃)时才写入EEPROM;②即使每5秒写一次,10万次寿命可支持约138小时(5.8天)连续写入,而实际使用中充电宝大部分时间处于待机状态(不写EEPROM),实际寿命可达数年。建议采用变化触发写入策略,进一步延长寿命。