登录
注册
一键加入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
热门版块:
友善之臂最新动态
NanoPi 玩家交流区
开发板实战手册及教程
二手交易区
U-boot技术交流区
开发板销售中心
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访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
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问