很久很久之前买了个
PN532
模块,一直在吃灰,最近想起来想要使用,结果发现文档全是英文,查了一堆资料满足了我现在的读取IC卡
的UID
的需求
在此之前,我的认为
NFC
卡片都是一样的,其实ID卡
和IC卡
的频率是不一样的,
ID卡
的识别模块带有很显眼的线圈,而IC卡
通常是一个芯片来识别。
通常ID卡
的频率是125KHZ
,IC卡
的频率在13.56MHZ
。
在购买识别IC卡
或者ID卡
的时候确认一下卡的芯片
和工作频率
是否与识别模块兼容或匹配
我买的是这款红色,注意一下下面有三种交互协议,
那个开关拨到
数字
方是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 0490 1F 2A A4
51 00
这里90 1F 2A A4
为 卡的UID
号
这里对协议的内容进行一个介绍
1.
PREAMBLE
: 这个就是帧头,一字节,一般是00
2.START CODE
: 开始码 ,2
个字节,分别是00
和FF
3.LEN
:这个是数据长度,1
字节,包含TFI
和PD0
到PDn
4.LCS
: 数据长度的校验,1
字节,是LEN
的补码,也就是(LEN
取反+1)或者认为(LEN
+LCS
=255)
5.TFI
:命令,1
字节,D4
表示数据流从控制器
到PN532
,D5
表示数据流从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/