关于RFID编程的问题,求教经验人士!! 无法读写 IS014443B类卡,返回状态0X05
无法读写 IS014443B类卡,返回状态0X05
先介绍下背景: 我是一名软件工程师,主要从事C/C++ 领域的工作. 现在公司开发RFID项目,没有硬件工程师所以本人开始入手自学这一块的知识.
设备如下:
1. 读卡器: FEIG (荷兰公司,已被NOKIA收购)的CPR.40.30 USB读卡器一部.
2. TAG: ISO14443B 卡一片, 标准羊城通ISO14443A 卡一片
3. API : FEISC.dll 的 FEISC_0xB0_ISOCmd 方法
根据FEIG的编程手册,我通过以下方式成功实现了 寻找(Inventory) + 选择(select) 一个读卡器通讯区域内的卡.
1. ISO 0xB0 Command -> 发送0x01请求, 寻找(Inventory)信号区域内卡片,并且通过来自TAG的响应数据,获得卡的ID (ISO14443B的卡是4位的PUPI, ISO14443A的卡是7位的UID), 返回状态是0X00 (成功!)
2. ISO 0XB0 Command -> 发送0X25请求, 通过ID 选择该卡,并且返回状态 0X00(成功!)
3. ISO 0XB0 Command -> 发送0X24请求(Write Multiple Block), 发送写数据到卡的 第5个数据段,每个段长是2 BYTE. 这时返回的状态码是0X05. 查手册,0X05的状态是 Wrong transponder type: this command is not applicable at the transponder
但是该公司的手册上又的确是列明了ISO14443B 的卡是支持读写的,是否我忽略了什么准备步骤呢? 手册上有一些关于读写的概念比如 Mifare和APDU (Application protocol data unit),但是我不是很理解其涵义.