我使用的是 Windows 11 笔记本电脑和 ACS ACR1552 阅读器。
我正在使用 ACS 脚本工具(v5.02)向恩智浦 ICODE SLI 标签发送 APDU。
我正在创建一个透明会话,将协议设置为 15693/Layer3,然后使用透明交换封装向标签发送 APDU。
GET_SYSTEM_INFO 和 READ_SINGLE_BLOCK 似乎工作正常。
WRITE_SINGLE_BLOCK 返回"64 01" 错误,但似乎确实写入了数据。
我没有找到任何关于 64 01 响应的含义或原因的信息。
有谁能对此提供一些信息?
以下是我正在处理的 APDU 序列。
; (1) 建立透明会话
< FF C2 00 00 02 81 00 00
> C0 03 00 90 00 90 00
; (2) 透明交换 - 将协议切换到 SwitchProtocolRf::ISO15693 SwitchProtocolLayer::PART3
< FF C2 00 02 04 8F 02 02 03
> C0 03 00 90 00 8F 01 00 90 00
; (3) get sys info
< FF C2 00 01 04 95 02 02 2B 00
> C0 03 00 90 00 92 01 00 96 02 00 00 97 0F 00 0F 2E 98 5C 8A 00 01 04 E0 00 00 1B 03 01 90 00
; (4) 读取具有安全状态的用户屏蔽 0
< FF C2 00 01 05 95 03 42 20 00 00
> C0 03 00 90 00 92 01 00 92 01 00 96 02 00 00 97 06 00 00 00 00 97 06 00 00 00 11 22 33 90 00
; (5) 用 12 34 56 78
< FF C2 00 01 09 95 07 02 21 0012 34 56 7800
> C0 03 01 64 01 90 00
; (6) 读取具有网络安全状态的用户屏蔽 0
< FF C2 00 01 05 95 03 42 20 00 00
> C0 03 00 90 00 92 01 00 92 01 00 96 02 00 00 97 06 00 00 97 06 00 00 12 34 56 78 90 00
; (7) 结束透明会话
< FF C2 00 00 02 82 00 00
> C0 03 00 90 00 90 00
我在读取/写入 icode SLIX/SLIX2 标签时也遇到了同样的问题,写入正常,但出现了 64 01 超时。
我通过在写入的同一事务中加入计时器选项,调整命令的超时时间,从而解决了这个问题。
例如将"00 01 02 03" 写入 0 号区块
> FF C2 00 01 10 5F 46 04 40 42 0F 00 95 07 02 21 00 01 02 0300
透明命令 命令
大小(0x10 = 接下来是 16 字节) 超时 命令
到
设备
可以看出,现在答案是正确的。
该命令与原作者问题中的命令基本相同,只是增加了绿色部分,根据文档,该部分设置了 1 秒超时(可能过长)。
5f 46 = 计时器数据对象
04 = 长度
40 42 0f 00 = 1,000,000(微秒,LSB 优先),即 000f4240h = 1,000,000
可能太晚了,对最初的发帖人没用,但也许这能帮其他人省下我花费的两三个小时。
你可以查看参考手册 ref-ACR1552U-Series-1.06.pdf。第 43 页。
请阅读读者文件。