登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
资料下载
搜索帖子!
NanoPC-T2
Core4418
NanoPC-T3 Plus
Core6818
NanoPi-M4B
NanoPC-T4
NanoPC-T6
NanoPi-NEO
NanoPi-NEO Core
NanoPi-NEO Air
NanoPi-M1 Plus
NanoPi-Duo2
NanoPi-NEO3
核心板:
Smart210
Tiny210
Smart4418
Smart6818
SOM-RK3399V2
CM3588(新品)
路由器:
R1
R1S
R2S
R2S Plus
R2C Plus
R4S
R5S
R5C
R6C
R6S
热门版块:
站点服务
Linux技术交流区
站务管理与公告
裸机程序和微型OS
友善之臂官方客服中心
相关资料下载及使用技巧
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
友善之家
开发板硬件讨论区
讲解:NFC之PN532使用
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
新 帖
主题 : 讲解:NFC之PN532使用
复制链接
|
浏览器收藏
|
打印
奋斗之路
级别: 侠客
作者资料
发送短消息
加为好友
UID:
121354
精华:
0
发帖:
67
金钱:
365 两
威望:
73 点
贡献值:
0 点
综合积分:
134 分
注册时间:
2015-12-11
最后登录:
2017-12-06
楼主
发表于: 2017-01-18 11:10
全看
|
小
中
大
讲解:NFC之PN532使用
一、简介
PN532是一个高度集成的非接触读写芯片,它包含80C51微控制器内核,集成了13.56MHz下的各种主动/被动式非接触通信方法和协议。
工作模式:
● 读写器模式,支持ISO/IEC 14443A / MIFARE®机制
● 读写器模式,支持 FeliCa机制
● 读写器模式,支持ISO/IEC 14443B机制
● 卡操作模式,支持ISO 14443A / MIFARE®机制
● 卡操作模式,FeliCa机制
● ISO/IEC18092,ECM340点对点
特性
● 带40 kB ROM和1 kB RAM的80C51微控制器内核
● 高度集成的模拟电路,解调和译码响应
● 输出缓冲驱动器通过最少量的外部无源器件连接天线
● 集成了RF场检测器
● 集成了数据模式检测器
● 支持ISO/IEC 14443A / MIFARE®
● 只在读写器模式中支持ISO/IEC 14443B
● 在读写器模式中典型工作距离超过50mm,具体距离由天线尺寸、调谐和电源决定
● 在NFCIP-1模式下工作距离高达50mm,具体视天线的尺寸、调谐以及电源而定
● 在卡操作模式中典型工作距离约为100mm,具体距离由天线尺寸、调谐和外部场强度决定
● 在读写器模式中,支持Mifare Classic加密,可支持212 kbit/s和424 kbit/s两种更高数据传输速率
● FeliCa模式下,支持106kbit/s 、212kbit/s和424kbit/s的通信波特率
● 集成了NFCIP-1的RF接口,传输速率高达424kbit/s
● 支持主机接口:
-SPI接口
-I2C接口
-串行UART
● 灵活的中断模式
● 低功耗模式 一硬件掉电模式 一软件掉电模式
● 当器件处于掉电模式时能够通过I2C、HSU和SPI接口自动唤醒
● 可编程定时器
● 石英晶体振荡器
● 2.7V~5.5V的电源
二、通信接口
PN532和主机之间有三种方式进行通信:I2C 、SPI、 HSU,这样几乎满足了所有的主控芯片。下图是通信方式的选择
需要注意的是:
SPI只能选择工作模式0。也就是说SPI的空闲电平为 高电平、数据总是在SCK的第一个边沿采样、数据发送格式总是LSB在前。只要NSS引脚拉低,芯片就会被唤醒。
HSU高速串口的默认配置是:8个数据位,1个停止位,LSB先发送,波特率115200,无校验
I2C模式下,默认的从机地址是0x48,先发送MSB,最高支持速率400KHz
三、数据包格式
PN532与主机之间的通信数据有固定的格式,只要我们按照规定的格式发送数据,就可以完全控制PN532。这样大大提高我们开发的效率
1、 正常数据包
00 序列头
00 FF 起始号
LEN 数据包的长度,包含TFI
LCS 数据长度校验和, LEN LCS=0
TFI 命令
PD0 PD1 … PDn 数据
DCS 数据校验和 TFI PD0 …PDn = 0
00 序列结尾
2、 PN532应答包
00 序列头
00 FF 起始号
00 FF 应答包
00 结束序列
3、 非应答包
00 序列头
00 FF 起始号
FF 00 没有应答
00 结束序列
4、 加长数据包
正常的情况下,只能发送256个字节的数据,PN532提供一种特殊的格式,可以发送更多的数据。当然我们在使用的时候要依据实际的情况去选择
00 序列头
00 FF 起始号
FF 正常模式下的包长度,这里是FF
FF 正常模式下的包长度校验和,这里是FF
LENM 数据包的长度高字节,
LENL 数据包的长度低字节,包含TFI
LCS 数据长度校验和,LENM LENL LCS=0
TFI 命令
PD0 PD1 … PDn 数据
DCS 数据校验和 TFI PD0 …PDn = 0
00 序列结尾
四、唤醒PN532
将芯片唤醒必须满足以下3个条件
1)PVDD引脚拉高
2)I2C模式下发送地址48h,SPI模式下将NSS拉低,串口模式下的其实数据头必须为0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0xFD,0xD4,0x14,0x01,0x17,0x00
3)主机必须发送命令14 02 00(虚拟模式)或者14 01(正常模式)
五、读写S50卡片过程
1、唤醒模块,主机发送命令
0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0xFD,0xD4,0x14,0x01,0x17,0x00
模块回应
0x00,0x00,0xFF,0x02,0xFE,0xD5,0x15,0x16,0x00
在唤醒模块的过程中,数据的包头有些特殊,而这个包头是有芯片手册中找到的。
注意,为了简略,下面的命令只包含数据包格式中的TFI\DATA,其他的请读者自行加上
2、扫描卡片并获取到卡片ID,主机发送
0xd4,0x4A(列出卡片),0x02(数量最多2个),0x00(波特率)
Response
0xd5,0x4b,0x02两个设备
0x01(一号设备),0x04,0x00,0x08,0x04(长度),id1,id2,id3,id4,
0x02(二号设备),0x04,0x00,0x00,0x04(长度),id1,id2,id3,id4,
3、验证A秘钥,主机发送
0xd4,0x40(交换数据),0x01(1号设备),0x60(验证A),0x03(地址)
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF(keyA),0xC1,0x32,0x77,0x03(id)
Response
0xd5,0x41,0x00(成功)
4、验证B秘钥,主机发送
0xd4,0x40(交换数据),0x01(1号设备),0x61(验证B),0x03(地址)
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF(keyB),0xC1,0x32,0x77,0x03(id)
Response
0xd5,0x41,0x00(成功)
5、读卡,主机发送
0xd4,0x40(交换数据),0x01(1号设备)1,0x30(读16Bytes),0x02(地址)
Response
0xd5,0x41,0x00(成功),byte1,btyte2…
6、写卡,主机发送
0xd4,0x40(交换数据),0x01(1号设备)1,0xA0(写16Bytes),0x02(地址),Data1,data2…
Response
0xd5,0x41,0x00(成功)
关注华清远见微信公众号,即可免费领取嵌入式资料&千元现金红包哦~
顶端
回复
引用
分享
真心朋友
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
130379
精华:
0
发帖:
26
金钱:
130 两
威望:
26 点
贡献值:
0 点
综合积分:
52 分
注册时间:
2017-01-07
最后登录:
2020-07-27
1楼
发表于: 2017-11-15 13:38
全看
|
小
中
大
楼主,我是华清的学生,我就是想问问pn532可不可以在android下使用,或者怎样在android下使用,求教,谢谢
顶端
回复
引用
分享
上一主题
下一主题
友善之家
开发板硬件讨论区
http://www.aiothome.net
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问