如何使用ACR1252U NFC读卡器读取NTag213标签的全部存储记录
读取NTAG213标签全部存储记录的实现方法
NTAG213属于NFC Forum Type 2标签,总容量180字节,按每页4字节组织,用户可读写区域为地址0x04`0x27`共36页144字节,`0x00`0x03为厂商信息、UID、锁位等只读区域,0x28及之后为配置区域。你可以通过标准READ指令逐页读取全部内容,ACR1252U读卡器遵循PC/SC规范,直接发送对应APDU指令即可。
核心读取逻辑
- 确认你已经通过PC/SC接口成功建立与标签的ISO 14443 Type A连接
- 单页读取的APDU指令格式为
FF B0 00 <页地址> 04,响应末尾两个字节为90 00时代表读取成功,前4字节即为对应页的存储内容 - 遍历所有目标页地址发起读取请求,即可获得标签全部存储数据
示例Python代码片段
基于pyscard库的实现参考,假设你已经初始化了读卡器连接对象conn:
# 读取范围设置:0x00为厂商信息起始页,0x27为最后一个用户存储页 start_page = 0x00 end_page = 0x27 full_tag_data = [] for page_addr in range(start_page, end_page + 1): # 构造读页指令 read_apdu = [0xFF, 0xB0, 0x00, page_addr, 0x04] resp, sw1, sw2 = conn.transmit(read_apdu) if sw1 == 0x90 and sw2 == 0x00: full_tag_data.extend(resp) else: print(f"页0x{page_addr:02X}读取失败,状态码:{sw1:02X}{sw2:02X}") # 输出全量原始十六进制内容 print(f"标签全部存储内容:{bytes(full_tag_data).hex()}") # 若需要解析NDEF记录,取0x04~0x27对应区间的内容送入NDEF解析库即可
注意事项
- 仅需要读取用户存储的NDEF内容时,可跳过
0x00~0x03的厂商区域,直接从0x04开始读取即可 - 被写保护的页读取时会返回
63 00错误码,属于正常现象 - 若需要提升读取速度,可使用FAST_READ指令一次最多读取16页,指令格式为
FF B0 00 <起始页地址> 40,一次返回64字节内容
内容的提问来源于stack exchange,提问作者Phil
相关产品推荐
相关产品推荐

