arduinopn532模块_零知开源分享-使用PN532串口NFC模块读写NFC卡片
POSTAMBLE:帧尾 一般为 00。
2、读写示例分析
使用的是pn532为主控芯片的NFC串口模块,来读写M1卡,注意所有数字为16进制形式。用usb转串口模块将pn532与电脑连接,串口助手发送选择hex。
波特率默认:115200 ,数据位:8 ,校验位:无, 停止位:1 ,流控:无。
硬件连接正常后开始操作,详细步骤分析:
(1)唤醒PN532:
[mw_shl_code=arduino,true]PC->PN532: 55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 03 fd d4 14 01 17 00
PN532->PC: 00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 00[/mw_shl_code]
其中第一条不符合普通的发送格式,比较特殊。如果没有正常返回,检查硬件连接和波特率。
(2)获取卡UID,也就是卡的唯一ID号,全球就这一个(理论上):
[mw_shl_code=arduino,true]PC->PN532: 00 00 FF 04 FC D4 4A 02 00 E0 00[/mw_shl_code]
04 //代表有四个数据分别是 D4 4A 02 00;
FC //这是04的补码 ;
4a //命令;
02 //卡数量,0--2;
00 //波特率 106K;
E0 //校验位 D4+4A+02+00=0x0120 取后两位20的补码为E0。
[mw_shl_code=arduino,true]PN532->PC: 00 00 FF 00 FF 00
00 00 FF 0C F4 D5 4B 01 01 00 04 08 04 A1 9F F5 5E 3B 00
[/mw_shl_code]
00 00 FF 00 FF 00 //ACK;
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)密钥验证
注意验证完秘钥,卡不能离开,需要一直放在上面,才能顺利的完成下面读写操作,还有注意替换步骤(2)的UID,最后需要根据自己的UID计算校验位即倒数第二位。
[mw_shl_code=arduino,true]PC->PN532: 00 00 fF 0F F1 D4 40 01 60 07 FF FF FF FF FF FFA1 9F F5 5E C2 00[/mw_shl_code]
40 //命令;
01 //卡1;
60 //密钥验证命令;
07 //块号;
ff ff ff ff ff ff //密钥;
A1 9F F5 5E //UID 替换为步骤2得到的UID ;
C2 //检验位,根据替换的UID计算,计算方法跟步骤2一样。
[mw_shl_code=arduino,true]PN532->PC: 00 00 FF 00 FF 00
00 00 FF 03 FD D5 41 00 EA 00[/mw_shl_code]
41 00 //正确状态。
(4)读卡
[mw_shl_code=arduino,true]PC->PN532: 00 00 ff 05 fb D4 40 01 30 07 B4 00 //读第7块
PC->PN532: 00 00 ff 05 fb D4 40 01 30 06 B5 00 //读第6块
PC->PN532: 00 00 ff 05 fb D4 40 01 30 08 B3 00 //读第8块[/mw_shl_code]
M1卡有16个扇区,每个扇区4个块。
40 //命令;01 //卡1;30 //读卡命令;07 //快号。
[mw_shl_code=arduino,true]PN532->PC: 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块
PN532->PC: 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块
[/mw_shl_code]
41 00 //正确,错误会返回: 00 00 FF 00 FF 00
00 00 FF 03 FD D5 41 13 D7 00 ;
41 03 //错误。
(5)写卡
[mw_shl_code=arduino,true]PC->PN532: 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
[/mw_shl_code]
40 //命令; 01 //卡1; A0 //写卡命令; 06 //块号;
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F //16字节数据;
CD//校验和,如果更改其他的数需重新计算。
[mw_shl_code=arduino,true]PN532->PC: 00 00 00 FF 00 FF 00
00 00 FF 03 FD D5 41 00 EA 00
[/mw_shl_code]
41 00 //正确。
二、使用上位机方式进行操作
下面使用上位机软件进行读写测试:我们使用一个USB转串口模块连接到PN532模块。
PN532 模块:
模块图.jpg (116.16 KB, 下载次数: 12)
2019-6-3 15:19 上传
接线如下:
接线图.png (99.72 KB, 下载次数: 9)
2019-6-3 15:15 上传
我们使用模块的串口接口,因此在上面的配置模式中我们选的是HSU这个,即1、2两个开关都在左边(基于上图)。
线路连接好后,我们打开上位机软件,如下图:
上位机.png (4.42 KB, 下载次数: 19)
2019-6-3 15:21 上传
如果我们线路连接没有问题,接口选择也正确,就会显示“发现NFC设备”标识,如果没有连接好,则会出现“未发现NFC设备”。
上一步成功后,我们就可以使用PN532来进行读写NFC卡片了。
我们把门禁卡放在PN532模块上方,如下图所示:
读卡.jpg (186.5 KB, 下载次数: 8)
2019-6-3 15:23 上传
然后点击上位机中的【读取卡:读取卡片内容】,就可以读取到卡片的内容了:
结果.png (20.98 KB, 下载次数: 7)
2019-6-3 15:24 上传
更多详细资料可到零知实验室官网免费获取。
arduinopn532模块_零知开源分享-使用PN532串口NFC模块读写NFC卡片相关推荐
- android arduino wifi模块,零知开源分享-ESP8266wifi模块的使用
本帖最后由 零知实验室-roc 于 2019-5-14 14:01 编辑 1.说明 MCU:零知开源开发板-标准板 wifi模块:ESP-12F WiFi模块.png (85.41 KB, 下载次数: ...
- 零知开源分享-L298N模块使用 电机驱动 TT马达
电机驱动模块在电子制作中会经常使用到,下面以L298N型号的模块为例介绍其使用方法. 模块引脚说明如下: 值得注意的是,它已经内置5V供电,所以不必从外面再接5V输入. 1.实验材料 直流减速电机TT ...
- arduino并口屏_零知开源软件库使用-ILI9341并口显示屏
对于ILI9341的240x320屏幕,零知开源平台已经可以支持该显示屏的常用操作了,一个示例如下: /** * 文件: ili9341-并口显示.ino by 零知实验室 * ...
- 零知开发板和红外人体感应模块使用
本文讲解如何使用人体感应模块HC SR505模块,我们使用一个LED来指示是否感应到人走进传感器,人走进时候LED指示灯亮,人离开范围内时候,LED熄灭.根据文档,该模块感应范围为3米,延迟时间是8s ...
- python 异常处理模块_我的python学习之路-异常处理和模块导入
本节摘要 一.模块导入 二.导入包 三.异常处理 一.模块导入 文件就是一个模块,文件夹就是一个包 文件夹里面可以有很多文件,就相当于包中有好多的模块. 1.import 引入 模块不会被重复导入,引 ...
- 万兆单模模块_万兆(10G SFP+)单模光模块的介绍及应用
原标题:万兆(10G SFP+)单模光模块的介绍及应用 10G万兆单模光模块通常与OS2单模光纤搭配使用,最高速率为10.3Gb/s,目前主流采用SFP+封装类型. 万兆单模光模块双纤波长为1310n ...
- linux 光功率 模块_基于国产芯片的千兆皮秒脉冲激光器模块研制
本文内容转载自<激光技术>2019年12月,版权归<激光技术>编辑部所有. 刘云,吴敏,朱向冰,王宝慧,李风雨,马伟,徐焕银 安徽师范大学物理与电子信息学院,安徽问天量子科技股 ...
- python3语音识别模块_零基础教你玩转语音控制,学习语音控制技术,打造智能生活很简单...
大家好,我是阿乐,今天给大家讲解一下LD3320语音识别模块. 先来看看模块实物,它是长这个样子的: LD3320语音识别模块实物 我现在用来给大家做讲解的这个模块是已经集成了单片机在上面,这样子开发 ...
- python画图的模块_用python和pygame游戏编程入门-画图模块
在设计一个游戏时,有些时候你可以不加载任何图片,只是绘制一些图形来制作一个游戏. pygame.draw这个模块的作用是在屏幕上绘制各种图形. 函数 作用 rect 绘制矩形 polygon 绘制多边 ...
最新文章
- WPF INotifyPropertyChanged 通过特性减少代码量
- 多个硬件体验如一,华为终端分布式技术会重构IoT生态吗?
- BugkuCTF-Misc:白哥的鸽子
- 微信支付 - 构建商户订单
- java Concurrent包学习笔记(一):ExecutorService
- python蟒蛇绘制实例分析_011 实例2-Python蟒蛇绘制
- linux 读取文件夹命令,Linux系统编程_1_文件夹读取(实现简单ls命令)
- SpringCloud 基于OAth2.0 搭建认证授权中心_02
- 【POJ 1151】Atlantis
- 设计模式 C++单例模式
- ajaxpro.2.dll使用【转帖】
- 文件服务器 重复文件,ftp服务器校验重复文件
- nsa php版本,mnsa网络
- PPT双屏抽奖,大气,能Hold住全场!与其它PPT内容可融为一体,实现无缝切换!
- WF4.0 RC 对比 Beta2 的变化
- (博主可帮找错)Servlet.service() for servlet [dispatcherServlet] path [] threw exception feign.Feig,可截图私聊博主
- 《上海悠悠接口自动化平台》-1.新增API 与 各参数的描述
- 【超图+CESIUM】【基础API使用示例】18、超图|CESIUM - 标绘点位:Cesium.DrawHandler绘制点位Cesium.DrawMode.Point
- python操作cad的模块_Process Autocad by python
- html英雄联盟网页,Html+Css+JQuery实现简易英雄联盟官网