M1射频读卡器笔记

操作指令:

1、卡机复位

主机发送:

0x02 0x00 0x02 0x30 0x30 /0x31 0x03 BCC

读器器返回:

0x02 0x00 012 0x30 0x30/0x31 读卡器版本信息 0x03 BCC

读卡器版本信息 “XXX  XXX VX.X”

2、卡机查状态

主机发送:

0x02 0x00 0x02 0x31 0x30 0x03 BCC

读卡器返回:

0x02 0x00 0x03 0x31 0x30 卡机状态字S 0x03 BCC

S = ‘N’ (0x4E) 卡机无卡

S = ‘Y’ (0x59) 卡机有卡,已到位

Mefare 1卡操作指令

1、寻卡

主机发送:

0x02 0x00 0x02 0x35 0x30 0x03 BCC

读卡器返回:

0x02 0x00 0x03 0x35 0x30 状态字P 0x03 BCC

P = ‘Y’ (0x59) 寻卡成功

P = ‘N’ (0x4E) 寻卡失败

P = ‘E’ (0x45) 卡机内无卡

2、读取Mefare1卡序列号:

主机发送:

0x02 0x00 0x02 0x35 0x31 0x03 BCC

读卡器返回:

0x02 0x00 0x03 0x35 0x31 状态字P 4Byte的SN 0x03 BCC

P = ‘Y’ (0x59) 读取成功, 并返回卡的序列号

P = ‘N’ (0x4E) 读取失败, 并返回空 0x00 0x00 0x00 0x00

P = ‘E’ (0x45) 卡机内无卡,卡机内无卡

3、验证Mefare1卡密码:

主机发送:

0x02 0x00 0x02 0x35 0x32/39 扇区号 4Byte密码 0x03 BCC

密码类型:0x32  为密码A

                0x39  为密码B

扇区号:s50 卡为0~63

读卡器返回:

0x02 0x00 0x03 0x35 0x31 状态字P  0x03 BCC

P = ‘Y’ (0x59) 验证成功

P = ‘N’ (0x4E) 验证失败

P = ‘E’ (0x45) 卡机内无卡,卡机内无卡

4、验证Mefare1卡密码:

主机发送:

0x02 0x00 0x02 0x35 0x32/39 扇区号 4Byte密码 0x03 BCC

密码类型:0x32  为密码A

                0x39  为密码B

扇区号:s50 卡为0~63

读卡器返回:

0x02 0x00 0x03 0x35 0x31 状态字P  0x03 BCC

P = ‘Y’ (0x59) 验证成功

P = ‘N’ (0x4E) 验证失败

P = ‘E’ (0x45) 卡机内无卡,卡机内无卡

5、读Mefare1卡指定扇区的块数据

主机发送:

0x02 0x00 0x04 0x35 0x33 扇区号 块号 0x03 BCC

扇区号:s50 卡为0~63

块   号:0~3

读卡器返回:

0x02 0x00 0x03 0x35 0x33 扇区号 块号 ‘Y’ 16Byte数据  0x03 BCC

P = ‘Y’ (0x59) 读取成功,随后跟着16字节的块数据

0x02 0x00 0x03 0x35 0x33 状态字P  0x03 BCC

P = ‘N’ (0x4E) 读取失败

P = ‘E’ (0x45) 卡机内无卡,卡机内无卡

6、写Mefare1卡指定扇区的块数据

主机发送:

0x02 0x00 0x04 0x35 0x34 扇区号 块号 0x03 BCC

扇区号:s50 卡为0~63

块   号:0~3

读卡器返回:

0x02 0x00 0x03 0x35 0x34 扇区号 块号 ‘Y’ 16Byte数据  0x03 BCC

P = ‘Y’ (0x59) 写入成功 ,随后跟着读回的16字节数据

0x02 0x00 0x03 0x35 0x34 状态字P  0x03 BCC

P = ‘N’ (0x4E) 写入失败

P = ‘E’ (0x45) 卡机内无卡,卡机内无卡

7、更改Mefare1卡指定扇区密码A(密码B和控制字不变)

密码B写成:0xff 0xff 0xff 0xff 0xff 0xff,控制字写成:0xff 0x07 0x08 0x069

主机发送:

0x02 0x00 0x09 0x35 0x35 扇区号 6Byte密码 0x03 BCC

扇区号:s50 卡为0~63

读卡器返回:

0x02 0x00 0x04 0x35 0x35 状态字P  0x03 BCC

P = ‘Y’ (0x59) 更改成功

P = ‘N’ (0x4E) 更改失败

P = ‘E’ (0x45) 卡机内无卡,卡机内无卡

写第三块进行写操作需要谨慎,乱填写控制字将会锁死M1卡。相关操作请参考M1卡手册;

8、Mefare1卡增值操作

注意:在该块进行此操作之前应当对其进行钱包初始化操作,每扇区的3第三块不能可行此基操作

主机发送:

0x02 0x00 0x08 0x35 0x37 扇区号 块号 4Byte数据 0x03 BCC

扇区号:s50 卡为0~63

块   号:s50 卡为0~3

读卡器返回:

0x02 0x00 0x03 0x35 0x37 状态字P  0x03 BCC

P = ‘Y’ (0x59) 写入成功

P = ‘N’ (0x4E) 写入失败

P = ‘E’ (0x45) 卡机内无卡

8、Mefare1卡减值操作

注意:在该块进行此操作之前应当对其进行钱包初始化操作,每扇区的3第三块不能可行此基操作

主机发送:

0x02 0x00 0x08 0x35 0x38 扇区号 块号 4Byte数据 0x03 BCC

扇区号:s50 卡为0~63

块   号:s50 卡为0~3

读卡器返回:

0x02 0x00 0x03 0x35 0x38 状态字P  0x03 BCC

P = ‘Y’ (0x59) 写入成功

P = ‘N’ (0x4E) 写入失败

P = ‘E’ (0x45) 卡机内无卡

原文地址:https://www.cnblogs.com/worldsing/p/3103113.html