zoukankan      html  css  js  c++  java
  • 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) 卡机内无卡

  • 相关阅读:
    sql
    java常见异常
    call的用法及NodeList与Array的区别
    os模块
    random模块
    time模块
    序列化模块
    模块介绍
    内置函数
    匿名函数-lambda
  • 原文地址:https://www.cnblogs.com/worldsing/p/3103113.html
Copyright © 2011-2022 走看看