PN532 串口通讯读取IC卡UID

很久很久之前买了个PN532模块,一直在吃灰,最近想起来想要使用,结果发现文档全是英文,查了一堆资料满足了我现在的读取IC卡UID的需求

在此之前,我的认为NFC卡片都是一样的,其实ID卡IC卡的频率是不一样的,
ID卡的识别模块带有很显眼的线圈,而IC卡通常是一个芯片来识别。
通常ID卡的频率是125KHZIC卡的频率在13.56MHZ
在购买识别IC卡或者ID卡的时候确认一下卡的芯片工作频率是否与识别模块兼容或匹配

PN532

我买的是这款红色,注意一下下面有三种交互协议,
那个开关拨到数字方是0字母方是1,也就是说图是使用RSU的方式(串口)

比较重要的是这个模块串口通讯的波特率是115200

该模块上电之后需要有唤醒操作才能正常工作
下面是跟模块通讯
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 寻卡

发送:00 00 FF 04 FC D4 4A 02 00 E0 00
接收:00 00 FF 00 FF 00
00 00 FF 0C F4 D5 4B 01 01 00 04 08 04 90 1F 2A A4 51 00
这里 90 1F 2A A4 为 卡的UID

这里对协议的内容进行一个介绍

1.PREAMBLE: 这个就是帧头,一字节,一般是00
2.START CODE: 开始码 ,2个字节,分别是 00FF
3.LEN:这个是数据长度,1字节,包含TFIPD0PDn
4.LCS: 数据长度的校验,1字节,是LEN的补码,也就是(LEN取反+1)或者认为(LEN+LCS=255)
5.TFI:命令,1字节,D4 表示数据流从控制器PN532D5 表示数据流从PN532控制器
6.PD0~PDn:数据,(LEN-1) 字节
7.DCS: 校验码:些十六进制数加起来,后两位取补码即可。即(TFI + PD0 + PD1 + … + PDn)累加和,取后两位的补码。原文为:Lower byte of [TFI + PD0 + PD1 + … + PDn + DCS] = 0x00
8.POSTAMBLE: 帧尾,1字节,一般为 00

到这里我的识别卡的序列号的需求以及完成,想了解读写的话建议参考其他文章。

参考文章
https://blog.csdn.net/roctwo/article/details/78743259
https://makerinchina.cn/nfc%E6%A8%A1%E5%9D%97pn532%E4%BD%BF%E7%94%A8/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容