根据TID号写EPC功能详解.pdf (518.8 KB)
你好!请问8DH 1. cmd_set_select中truncate用途是?2. 当SelParam: MemBank: 02TID, Target 000,Enable的设置 是否跟随action 是000、001 (0x01)、011 (0x03)或其他要对应设置1或0?
例如:标签TID E200F451443136573433000A01C01C01, USER 2048bits ,需要多次用81或82命令以操作user2048bits的全部长度。能否给出个8DH命令的示例:1.在多个81或82命令前,使只能操作TID为 E200F451443136573433000A01C01C01的标签; 2.在多个81或82命令后,清除使只能操作TID为 E200F451443136573433000A01C01C01的标签标识。
这个也是用的6C协议中的定义,具体可以参考AI的回复哈
在超高频RFID的ISO/IEC 18000-6C(EPC Gen2)协议里,truncate(截断) 是指标签响应读写器ACK命令时,只返回部分EPC数据,不回完整的PC+EPC+CRC16,用来缩短空中传输时间、提升识读速度。
一、核心定义
协议6.3.2.10.1.1小节明确:读写器发ACK时可指定“截断应答”;标签截断后仅返回PC+部分EPC,不含CRC16与剩余EPC位;非截断则返回完整的PC+EPC+CRC16。
二、工作机制
- 触发条件:读写器在ACK命令中设置Truncate位(通常为1),并指定截断长度。
- 标签行为:
- 截断:返回PC(2字节)+ 前N位EPC(N由读写器指定),无CRC16。
- 非截断:返回PC(2字节)+ 完整EPC(1–15字)+ CRC16(2字节)。
- 适用场景:高速盘点、多标签密集环境,减少数据传输量与碰撞概率。
三、示例(EPC长度96bit)
- 非截断:返回2字节PC + 12字节EPC + 2字节CRC16,共16字节。
- 截断(取前48bit EPC):返回2字节PC + 6字节EPC,共8字节,无CRC16。
四、关键注意
- 无CRC校验:截断应答不含CRC16,读写器需上层校验或信任该响应。
- 仅EPC区:截断仅影响EPC响应,Read/Write等命令不支持截断。
- 标签支持:需标签芯片实现截断功能(主流Impinj、Alien芯片均支持)。
一句话总结:truncate就是“缩短EPC响应长度”,用牺牲校验换取更快识读速度。
第二个问题没怎么理解,但enable是先设置的,select选择enable后,才会有selparam参数
可以将协议文档导入AI,让AI生成流程,反复测试验证哈,以下是AI给的流程,供参考:
功能:先锁定只操作指定TID标签 → 批量读写USER 2048bits → 最后清除Select筛选,恢复正常盘存。
一、关键参数说明
- 目标TID:
E200F451443136573433000A01C01C01(16字节,128bit) - 筛选区域:TID区(MemBank=10)
- 命令:0x8D 设置Select(筛选)
- 协议帧头:
0xA0,校验:LRC
二、示例1:启用Select → 只允许操作该TID标签
上位机发送帧(完整十六进制)
A0 1F 00 8D 01 68 00000000 40 00 E200F451443136573433000A01C01C01 XX
字段拆解
| 字段 | 值 | 说明 |
|---|---|---|
| Head | A0 | 帧头 |
| Len | 1F | 长度=31 |
| Address | 00 | 广播地址 |
| Cmd | 8D | 设置Select |
| Enable | 01 | 使能筛选 |
| SelParam | 68 | Target=S1(011)+Action=010+MemBank=TID(10) → 01101000=0x68 |
| Pointer | 00000000 | 掩码从TID第0bit开始 |
| MaskLen | 40 | 掩码长度128bit(0x40) |
| Truncate | 00 | 不截断 |
| Mask | E200F451443136573433000A01C01C01 | 目标TID |
| Checksum | XX | 自动计算LRC |
读写器成功返回
A0 04 00 8D 10 BF
10= 命令成功
三、示例2:禁用Select → 清除筛选标识
上位机发送帧
A0 05 00 8D 00 XX
字段拆解
| 字段 | 值 | 说明 |
|---|---|---|
| Head | A0 | 帧头 |
| Len | 05 | 长度=5 |
| Address | 00 | 广播 |
| Cmd | 8D | 设置Select |
| Enable | 00 | 关闭筛选 |
| Checksum | XX | LRC |
读写器返回
A0 04 00 8D 10 BF
四、使用流程(必看)
- 先发 8D 启用筛选
- 再发 81/82 多次读写 USER 2048bits(只会操作选中的TID标签)
- 最后发 8D 关闭筛选
五、USER 2048bits 读写分段建议(128字=256字节)
- 每次读/写 32字(64字节),分 4次 完成
- MemBank=3(USER区)