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

1、前言

通过本文你可以了解到PN523的通信协议,并且能够对RFID卡进行读写和复制操作。这里不会深度探讨理论,而是重点展示如何使用。

2、PN523串口通信协议

2.1 唤醒模组

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

55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 03 FD D4 14 01 17 00

将会收到回复

00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 00

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

2.2扫描卡

先举例一帧数据

00 00 FF 04 FC D4 4A 01 00 E1 00

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

2.3 授权

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

00 00 FF F F1 D4 40 01 60 03 FF FF FF FF FF FF C8 70 47 E9 26 0

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

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

命令类别

数据说明
0x60 / 0x61Authentication A / Authentication B
0x3016 bytes reading
0xA016 bytes writing
0xA24 bytes writing
0xC1Incrementation
0xC0Decrementation
0xB0Transfer
0xC2Restore

返回帧数据:

00 00 FF 03 FD D5 41 00 EA 00

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

2.4 读

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

00 00 FF 05 FB D4 40 01 30 02 B9 00

其中数据包是D4 40 01 30 02

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

返回两帧数据

00 00 FF 00 FF 00

00 00 FF 13 ED D5 41 00 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 72 00

提取数据帧

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

2.5 写

完整请求

00 00 FF 15 EB D4 40 01 A0 02 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F D1 00

数据

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

返回数据:

00 00 FF 03 FD D5 41 00 EA 00

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

3、M1卡、UID卡和UltraLight卡

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

4、使用软件进行读写

这里简单介绍下使用上位机软件进行读写卡的操作
这里写图片描述
首先将你的模块和串口模块连接,然后把串口模块插上电脑,再打开软件。之后按照2-3-4的点就好了,UltraLight的话是点不动4的。

这里写图片描述
这时就可以进行读写操作咯,读和写的右边都有一个下拉菜单,用来选择读写的块,我只写了前面几个块,并且没有给输入功能。读一次读16个字节,无论哪种卡都是这样,但是写会根据卡的不同,写入16字节或是4字节。卡的类型在左下角可以看到。例如我对块2进行写和读,额对了,授权哪里我只对第一个扇区授权了,之后软件版本迭代会弄个下拉框的。。。忘记了 - -|.
下面三个图分别是,先读块2,写块2,再读块2
这里写图片描述
这里写图片描述
这里写图片描述

5、使用软件进行复制

这里是使用网上别人编写的程序进行复制,界面如下

这里写图片描述
先点击PN532来串口连接,然后点击读整卡来把M1卡所以类容读取出来,读取出来后点击左边的三角可以保存。
这里写图片描述
将读取的文件保存起来,换一个白卡后,再点击写整卡
这里写图片描述

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

6、下载

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

  • 11
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值