NFC的PN532 读写命令格式

PN532操作命令        PN532命令(S50)
说明:1、本文只针对pn532与S50卡的通信。
2、Pn532与PC通信方式为串口,波特率115200,数据位8,停止位1,奇偶校验none
3、除特别说明,所有发送和接收的信息都遵循普通帧格式
4、所有对EEPROM的操作必须首先经过身份验证
普通帧格式:(正常发送和接收的命令和数据遵循此格式)
ACK帧格式:
NACK帧格式:
扩展帧格式:
错误帧格式:(提示应用层错误,无法识别的命令或参数等错误)
命令集:
唤醒:    55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 03 FD D4 14 01 17 00
解释:1、55 55 00 00 00 00 00 00 00 00 00 00 00 00唤醒命令比较特殊,仅有该命令有此部分,代表等待
2、命令 SAMConfiguration ,其中01表示配置为正常模式
例:返回信息00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 00
解释:
1、 ACK
2、 D5  15表示正确执行并完毕
获取UID:    00 00 FF 04 FC D4 4A 01 00 E1 00
2、 各波特率的值   
例:返回数据:00 00 FF 00 FF 00 00 00 FF 0C F4 D5 4B 01 01 00 04 08 04 FB 0E E2 0B D8 00
身份校验: 00 00 FF LEN LCS D4 40 01 60 Addr FF FF FF FF FF FF UID DCS 00 
例:输入命令:00 00 FF 0F F1 D4 40 01 60 07 FF FF FF FF FF FF FB 0E E2 0B 94 00
读操作:  00 00 FF 05 FB D4 40 01 30 Addr DCS 00 
解释:
命令InDataExchange, 01表示目标卡数目,30表示读操作,Addr是要读取的block地址
例:输入命令:00 00 FF 05 FB D4 40 01 30 04 B7 00
解释:04表示要读取的block地址
返回信息:00 00 FF 00 FF 00 00 00 FF 13 ED D5 41 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FA 00
解释:00表示读取成功,后面的数据为读取的数据
写操作:  00 00 FF 15 EB D4 40 01 A0 Addr BlockData 4F 00
解释:
Addr为要写入的地址,BlockData为要写的数据。
例:输入命令:00 00 FF 15 EB D4 40 01 A0 04 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 37 00
解释:对sector2中的block1全写01
输出信息:00 00 FF 00 FF 00 00 00 FF 03 FD D5 41 00 EA 00
解释:00表示写入成功
输入命令:00 00 FF 05 FB D4 40 01 30 04 B7 00
解释:读该block的数据
输出信息:00 00 FF 00 FF 00 00 00 FF 13 ED D5 41 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 DA 00
解释:显然,读出的数据即写入的数据
增操作:  00 00 FF 09 F7 D4 40 01 C1 Addr 01 00 00 00 DCS 00 
减操作:  00 00 FF 09 F7 D4 40 01 C0 Addr 01 00 00 00 DCS 00 
传送操作: 00 00 FF 05 FB D4 40 01 B0 Addr DCS 00
存储操作: 00 00 FF 05 FB D4 40 01 C2 Addr DCS 00
关闭射频: 00 00 FF 04 FC D4 32 01 00 F9 00
解释:该命令为RFConfiguration,01表示RF field,00表示关闭射频
例:输入命令:00 00 FF 04 FC D4 32 01 00 F9 00
输出信息:00 00 FF 00 FF 00 00 00 FF 02 FE D5 33 F8 00
解释:D5 33表示执行完毕,RF Field关闭
一、M1卡命令解析 (1号M1卡)
密钥验证:按照块号来验证,同一个扇区内只要验证其中一块,就可以操作同一个扇区内的4个块了。
操作另一个扇区时,还要重新验证。
1、初始化PN532到normal状态
in: 55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 03 fd d4 14 01 17 00
out:00 00 FF 00 FF 00
00 00 FF 02 FE D5 15 16 00
2、寻卡
in:00 00 ff 04 fc d4 4a 02 00 e0 00
析:4a //命令
02 //卡数量,0--2
00 //波特率 106K
out:00 00 FF 00 FF 00
00 00 FF 0C F4 D5 4B 01 01 00 04 08 04 02 F5 13 BE 06 00
析:00 00 FF 00 FF 00  //ACK
m1卡00 00 FF 0C F4
D5 //PN532 到 MCU
4B //响应命令
01 //目标卡1
01 //目标卡数量,最大为0x02,最小为0
00 04 //atq
08    //卡容量 08=1K
04    //4个字节UID
02 F5 13 BE //UID
06 00 //DCS+POST
3、密钥验证
in: 00 00 fF 0F F1 D4 40 01 60 07 FF FF FF FF FF FF 02 F5 13 BE C2 00
析: 40 //命令
01 //卡1
60 //密钥验证命令
07 //块号
ff ff ff ff ff ff //密钥
02 f5 13 be //UID
OUT: 00 00 FF 00 FF 00
00 00 FF 03 FD D5 41 00 EA 00
析: 41 00 //正确状态
4、读卡 //07是控制字节
in: 00 00 ff 05 fb D4 40 01 30 07 B4 00 //读第7块
00 00 ff 05 fb D4 40 01 30 06 B5 00 //读第6块
00 00 ff 05 fb D4 40 01 30 08 B3 00 //读第8块
析: 40 //命令
01 //卡1
30 //读卡命令
07 //快号
out: 00 00 FF 00 FF 00 //ACK
00 00 FF 13 ED D5 41 00 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF 01 00  //7块
out: 00 00 FF 00 FF 00 //ACK
00 00 FF 13 ED D5 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EA 00 //6块
析: 41 00 //正确
err: 00 00 FF 00 FF 00
00 00 FF 03 FD D5 41 13 D7 00
析: 41 03 //错误
5、写卡
in:  00 00 ff 15 EB D4 40 01 A0 06 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F CD 00
析: 40 //命令
01 //卡1
A0 //写卡命令
06 //块号
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  //16字节数据
out: 00 00 00 FF 00 FF 00
00 00 FF 03 FD D5 41 00 EA 00
附件:
00 00 FF 00 FF 00
00 00 FF 0F F1 D5 4B 01 01
00 44 //44代表什么呢?
00    //不遵循ISO14443-4标准
07
04 8F D7 5A CF 20 80
60 00
二、P2P应用
1、初始化PN532到normal状态
in: 55 55 00 00 00 00 00 00 00 00 00 0
0 00 00 00 00 ff 03 fd d4 14 01 17 00
out:00 00 FF 00 FF 00
00 00 FF 02 FE D5 15 16 00
/************NFC initial****************/
1、扫描1个目标并初始化 212K
in: 00 00 ff 09 f7 D4 4A 01 02 00 FF FF 00 00 E1 00
out:00 00 FF 00 FF 00
00 00 FF 16 EA D5 4B 01 01 12 01 01 FE A2 A3 A4 A5 A6 A7 C0 C1 C2 C3 C4 C5 C6 C7 D5 00
2、激活1个target
in:00 00 ff 04 fc d4 50 01 00 db 00
out:00 00 FF 00 FF 00
00 00 FF 12 EE D5 51 00 AA 99 88 77 66 55 44 33 22 11 00 00 00 09 01 29 00 //正确响应
out:00 00 FF 00 FF 00
00 00 FF 03 FD D5 51 01 D9 00 //超时
3、选择一个target 设定两个设备之间的通信速率为106k
in:00 00 ff 05 fb d4 4e 01 00 00 dd 00
out:00 00 FF 00 FF 00
00 00 FF 03 FD D5 4F 00 DC 00 //正确
4、向target发送数据
in: 00 00 ff 13 ed d4 40 01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 73 00
out:00 00 FF 06 FA D5 41 00 AA AA AA EC 00
5、释放target
in: 00 00 ff 03 fd d4 52 01 d9 00
out:00 00 FF 00 FF 00
00 00 FF 03 FD D5 53 00 D8 00  //成功释放
nfc target
1、将本设备初始化为target DEP,即从设备
in: 00 00 ff 27 d9 d4 8c 00 08 00 12 34 56 40 01 fe a2 a3 a4 a5 a6 a7 c0 c1 c2 c3 c4 c5 c6 c7 ff ff aa 99 88 77 66 55 44 33 22 11 00 00 21 00   
out:00 00 FF 00 FF 00
00 00 FF 14 EC D5 8D 26 11 D4 00 01 FE A2 A3 A4 A5 A6 A7 00 00 00 00 00 00 B9 00 //DEP Felica
2、获得数据TgGetdata
in: 00 00 ff 02 fe d4 86 a6 00
out:00 00 FF 00 FF 00
00 00 FF 13 ED D5 87 00 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 2C 00 00
3、发送数据TgSendData= AA AA AA
in: 00 00 ff 05 fB d4 8e AA AA AA A0 00
out:00 FF 00 FF 00
00 00 FF 03 FD D5 8F 00 9C 00  //发送成功
三、模拟ISO-14443 A 卡
1、初始化为TARGET,only iso14443-A 卡
in:00 00 ff 27 d9 d4 8c 04 08 00 12 34 56 60 01 fe a2 a3 a4 a5 a6 a7 c0 c1 c2 c3 c4 c5 c6 c7 ff ff aa 99 88 77 66 55 44 33 22 11 00 00 fd 00
out:
2、获得数据TgGetdata
in: 00 00 ff 02 fe d4 86 a6 00
out:
3、发送数据TgSendData= AA AA AA
in: 00 00 ff 04 fa d4 8e 90 00 0e 00
out:00 FF 00 FF 00
00 00 FF 03 FD D5 8F 00 9C 00  //发送成功

本文发布于:2024-09-23 01:19:10,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/359384.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:命令   表示   数据   设备   格式   解释
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议