Key Takeaways
- 四个存储 Bank 概览
- EPC 编码体系:SGTIN-96 详解
- TID:芯片身份证
01四个存储 Bank 概览
Gen2 标签芯片包含四个逻辑存储 Bank:Reserved(64 位,存放 Kill/Access Password)、EPC(96-496 位,存放唯一标识)、TID(48-128 位,存放芯片厂商与型号信息,出厂只读)、User(0-512 位,用户自定义)。每个 Bank 独立寻址,可单独设置读写权限。这种分层设计让安全凭证、唯一标识、芯片信息与业务数据互不干扰,是 Gen2 协议的精髓之一。
- Reserved (64b):Kill Password + Access Password
- EPC (96-496b):唯一标识,可重写
- TID (48-128b):芯片厂商+型号,出厂只读
- User (0-512b):用户自定义,无标准结构
02EPC 编码体系:SGTIN-96 详解
SGTIN-96 是 GS1 推荐的零售级 EPC 编码方案,96 位容量足够标识 2^38 个序列号。结构为:Header(8位,0x30 标识 SGTIN-96)+ Filter(3位,标识包装类型如单品/箱/托盘)+ Partition(3位,决定 Company Prefix 与 Item Reference 的位长分配)+ Company Prefix(20-40位,GS1 分配的企业前缀)+ Item Reference(4-24位,企业内的商品编码)+ Serial Number(38位,单件序列号)。
Partition 字段是 SGTIN-96 的精妙之处。它允许 Company Prefix 在 20-40 位间变化,与之对应 Item Reference 在 24-4 位间反向变化,两者总长固定为 44 位。这让不同长度的 GS1 企业前缀都能压缩进同一编码方案。例如某公司前缀 7 位(典型大国企业),Partition=5,则 Item Reference 24 位;前缀 12 位(小国企业),Partition=2,则 Item Reference 19 位。这种弹性让 SGTIN-96 全球通用。
- SGTIN-96:Header 8b + Filter 3b + Partition 3b + CP + IR + SN
- Partition 让 Company Prefix 20-40 位可调,IR 反向补偿
- 96 位可标识 2^38 个序列号
- SGTIN-96 是零售级 GS1 标准编码
03TID:芯片身份证
TID(Tag Identifier)是芯片出厂时烧录的只读标识,存放厂商 ID(如 Impinj=0xE2)、芯片型号、掩码版本与序列号。TID 的核心价值在于防伪——攻击者可复制 EPC,但无法复制 TID,因为 TID 烧录在芯片 ROM 中不可重写。在高价值防伪场景中,后端通过比对 TID 与白名单数据库即可识别克隆标签。Gen2 V2 进一步把 TID 扩展为 128 位,加入芯片安全能力位图,让读写器可查询标签是否支持 AES-128、QRS 等高级功能。
- TID 出厂只读,含厂商 ID + 型号 + 掩码 + 序列号
- 防伪价值:EPC 可复制,TID 不可复制
- Gen2 V2 TID 扩展至 128 位,含安全能力位图
- 后端通过 TID 白名单识别克隆标签
04User Memory:扩展存储与陷阱
User Memory 是 EPC 之外的自由存储区,容量从 0 到 512 位(部分高端芯片可达 4K 位)。常见用途包括批次号、生产日期、质检状态、序列化物流编码。但 User Memory 没有标准结构——Impinj Monza 与 NXP UCODE 的字节布局可能完全不同,跨厂商互操作性差。GS1 曾提出 BM-11 标准化 User Memory 编码,但行业采纳率不足 30%。
关键原则是:EPC 是事实源,User Memory 是缓存。任何关键数据必须存在于后端数据库,User Memory 仅作离线降级。写入 User Memory 时统一使用 ASCII + 2 字节 CRC,便于跨读写器校验。一个常见错误是把不可重建的数据(如唯一序列号)只存在 User Memory 中——一旦芯片损坏,数据永久丢失。另一个陷阱是写入速度:User Memory 写入比 EPC 慢 3-5 倍,因为它使用更慢的 EEPROM 编程周期,批量编码时要计算进节拍。
- EPC 是事实源,User Memory 是缓存
- 写入建议:ASCII + 2 字节 CRC
- 写入速度比 EPC 慢 3-5 倍
- 不可重建数据不可只存 User Memory



