Mifare卡是一种非接触式的智能卡,我们了解他们的相关协议。
表一
命令格式如下:
协议头(Head):2字节,固定填充0xAA,0xBB
长度(Length):2字节,从此列后的所有有效字节数(包含XOR)
节点ID(Node ID):2字节,目标节点地址数
函数码(Function code):2字节,函数功能码,另见表三
数据(Data):00~D0字节,数据位
异或(XOR):1字节,从节点ID到最后一个自己的数据的异或值
表二
回复格式如下:
协议头(Head):2字节,固定填充0xAA,0xBB
长度(Length):2字节,从此列后的所有有效字节数(包含XOR)
节点ID(Node ID):2字节,目标节点地址数
函数码(Function code):2字节,函数功能码,另见表三
状态(Status):成功为0,其余的值为失败
数据(Data):00~D0字节,数据位
异或(XOR):1字节,从节点ID到最后一个自己的数据的异或值
表三
函数码列表:
1、 Initialize port :0x0101
2、 Set device node number : 0x0102
3、 Read device node number : 0x0103
4、 Read device Mode : 0x0104
5、 Set buzzer beep: 0x0106
6、 Set Led color : 0x0107
7、 Set reader working status : 0x0108
8、 Set antenna status 。0x010c
9、 Mifare Reauest , 0x0201
10、 Mifare anticollision , 0x0202:
11、 Mifare Select 0x0203:
12、 Mifare Hlta , 0x0204:
13、 Mifare Authentication1 0x0206 :
14、 Mifare Authentication2 0x0207:
15、 Mifare Read 0x0208:
16、 Mifare Write 0x0209:
17、 Mifare Initval 0x020A:
18、 Mifare Read Balance 0x020B:
19、 Mifare Decrement 0x020C:
20、 Mifare Increment 0x020D:
21、 Mifare Restore 0x020E:
22、 Mifare Transfer 0x020F
23、 Mifare UltraLight Anticoll 0x0212:
24、 Mifare UltraLight Write 0x0213:
25、 Write key store in RC500 EEPROM 。
读取卡号流程:
1 设置串口波特率,参数如下:
Baud rate: 19200 bps
Data: 8 bits
Stop: 1 bit
Parity: None
2 打开天线
发送命令0x010c,数据1(打开天线)到串口
3 请求卡类型
发送命令0x0201,数据0x52到串口
4 读取卡信息
发送命令0x202到串口
完成后,读取串口返回信息即可。