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进行处理,非常感谢!