搞了一周,终于把基于RFID 无线通信设备的编程研究得差不多了.
记录一下这里的过程和心得:
1. 我用的是NOKIA的FEIG CPR40.30 USB 读卡器.这些设备一般都是按照一个ISO 标准设计的.换言之,一定要读文档.
2. RFID TAG的情况比较杂, 有的卡声明是符合某ISO标准的,但是又不完全支持该标准的全部命令. 比如我用的MyMax sticker,厂商是法国的twinlinx. 该卡标记为ISO14443B 类卡,但是完全不支持 0x23(ReadMultipleBlock) 和 0x24(WriteMultipleBlock) 这两个标准ISO命令. 联系厂商的technical support,居然说他们自己不是这方面的专家,无语了.
3. 读写TAG的步骤一般是:
A) Inventory Tag. 扫描信号距离内的卡,获得卡的8位UID (ISO14443B则是4位的PUPI)
B) Select tag. 通过UID/PUPI选择该卡.
C) 对ISO14443A/B类卡来说, 读写数据有两种方式: 标准ISO命令 ReadMultipleBlock / WriteMultipleBlock 或者APDU (Application protocol data unit).对于一些应用了加密技术的卡来说,有可能不支持 ISO read/write 的指令.就像上面#2所说的那样.这种情况就要使用APDU,关于APDU的方法似乎不同的设备其指令也不同,要case by case.