用PN532对RFID进行读写和复制(附winfrom软件)

1、前言

2、PN523串口通信协议

2.1 唤醒模组

按照模组的文档来看,在每次上电的时候需要唤醒,让他退出休眠模式。
对其发送:

将会收到回复

这帧没啥变化,就不进行解析了

2.2扫描卡

先举例一帧数据

其中 00 00 FF 04 FC 属于包头

数据 说明
00 00 FF 固定头
04 数据包长度
FC 包长度校验(04+FC=0X10)

其中 D4 4A 01 00 属于数据包

数据 说明
D4 4A 指令标识码
01 寻卡数量
00 通信速率 106kbps

其中E1 00 属于包尾

数据 说明
E1 校验(0x100-(0xD4+0x4A+0x01+0x00))
00 固定尾巴

发送之后模组会回复两帧,一帧是应答,一帧是回复

数据 说明
00 00 FF 固定头
0C 数据包长度
F4 包长度校验
D5 4B 指令的标识码(是主机发送的指令 加 1,主机发的 D4 AA,回 D5 4B)
01 目标卡 1
01 找到目标卡的数量
00 04 Mifare S50 卡,00 44是UltraLight卡
08 卡的容量 08=1K
04 UID 的字节数
94 8A 3B 0B 卡的 UID
6A (0X100—累加和)校验
00 包尾

2.3 授权

这里就是对数据包进行修改,完整请求如下:

上文讨论过的包头包尾去掉,仅仅看数据包

数据 说明
D4 40 命令格式
01 数据大于6字节这里为1
60 验证密码A(命令字节,具体含义见下表)
03 在第三块存储密码
FF FF FF FF FF FF 密码
94 8A 3B 0B UID

命令类别

数据 说明
0x60 / 0x61 Authentication A / Authentication B
0x30 16 bytes reading
0xA0 16 bytes writing
0xA2 4 bytes writing
0xC1 Incrementation
0xC0 Decrementation
0xB0 Transfer
0xC2 Restore

返回帧数据:

这里只关注 D5 41 00中的最后一位,如果是00则表示验证成功。
补充说明一下,上面举例帧是验证的块3,也就是我们仅能对扇区0进行操作,如何想对其他块操作需要先进行授权哟,但是UltraLight卡不需要授权就可以直接读写。

2.4 读

同样首先来看一帧完整请求

其中数据包是D4 40 01 30 02

数据 说明
D4 40 命令格式
01 数据大于6字节这里为1
30 命令字,读16字节数据
02 从第二块开始读

返回两帧数据

提取数据帧

数据 说明
D5 41 命令格式
00 成功
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 读取结果

2.5 写

完整请求

数据

数据 说明
D4 40 命令格式
01 大于 6 字节
A0 16字节写数据指令
02 往第 02 块写
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 写入数据

返回数据:

D5 41 返回的指令标示符,00 说明写入成功

3、M1卡、UID卡和UltraLight卡

MI卡的0块是保存UID的不能进行修改,也就是如果你想复制什么卡的话,最好不要选用M1卡,而是选择能够修改任何位置的UID卡。UltraLight卡是没有密码的,并且每块大小只有四个字节,也就是在写入的时候选择命令请选择0xA2来写哦。

4、使用软件进行读写

这里简单介绍下使用上位机软件进行读写卡的操作

就可以复制卡的类容了,但是0块由于是UID的位置M1卡是不能被改写的,如果你需要复制门禁卡的话,可以写在UID卡里面而不是M1卡,价格十几块钱20张的样子。

6、下载

PN532上位机读写程序
PN532上位机读写winfrom源码
PN532对RFID复制工具.

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年9月16日
下一篇 2017年9月16日

相关推荐