三天搞定射频识别技术(三)3.3PN532数据帧

唤醒芯片

0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x03,0xFD,0xD4,0x14,0x01,0x17,0x00
从手册可以看出,唤醒命令要在原有的数据包之前加入唤醒头,这个比较特殊一点
0xd4代表主机向PN532写入数据
0x14,0x01代表选择了普通模式
三天搞定射频识别技术(三)3.3PN532数据帧

命令格式

扫描卡片

0x4a, 0x02, 0x00   //扫描命令,卡片个数,波特率

应答
0x4b, 应答码
0x02, 卡片个数
0x01, 第一个卡片
0x04, 0x00, 卡片类型
0x08, 卡片容量
0x04, id长度
0x01, 0x02, 0x03, 0x04 卡片id

认证卡片

 0x40, 0x01, 0x60, 0x02,  数据交换命令,1号卡片,A认证,2地址
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 秘钥
0x01, 0x02, 0x03, 0x04 卡片id

应答
0x41, 0x00 无错

读卡

0x40, 0x01, 0x30, 0x02  	//交换数据,1号卡,读取块,2地址

应答
0x41, 0x00, 16bytes 应答,无错,16个数据

写卡

0x40, 0x01, 0xa0, 0x02,  	交换数据,1号卡,写入块,2地址
1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6 	数据

应答
0x41, 0x00 应答,无错

充值

 0x40, 0x01, 0xc1, 0x02, 1,0,0,0 //交换数据,1号卡,充值,2地址,数据
0x40, 0x01, 0xB0, 0x02;//交换数据,1号卡,保存,2地址

应答
0x41, 0x00 应答,无错

扣款

 0x40, 0x01, 0xc0, 0x02, 1,0,0,0;//交换数据,1号卡,扣款,2地址,数据
0x40, 0x01, 0xB0, 0x02;//交换数据,1号卡,保存,2地址

应答
0x41, 0x00 应答,无错
注意:充值或者扣款操作一定要加上保存动作

读写卡片

读写卡片的每一条命令都要按照帧格式
唤醒芯片,将芯片设置为普通模式
扫描卡片,一次最多2张。成功可以得到ID
认证,需要发送秘钥和ID。注意这里没有防冲突环节,因为在扫描的时候已经拿到卡片的ID,在认证的时候指明ID就可以了
读、写、充值、扣款
PN532读取卡片的过程要比MFRC522简单很多
三天搞定射频识别技术(三)3.3PN532数据帧
三天搞定射频识别技术(三)3.3PN532数据帧
三天搞定射频识别技术(三)3.3PN532数据帧
框架:
三天搞定射频识别技术(三)3.3PN532数据帧
三天搞定射频识别技术(三)3.3PN532数据帧

上一篇:树莓派pico使用MicroPython驱动oled屏显示中文和英文


下一篇:AES加密和解密C++实现