专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
NXP
NFC----PN532
2019-07-12 13:04
发布
生成海报
站内文章
/
NXP MCU
17655
0
1567
data/attach/1907/op51b91s0h93kub7ub367cqr76j53vf3.jpg
一、PN532简介
1.1、PN532由NXP出品,是一款高度集成的载波的13.56MHz传输模块,基于80C51内核有40KROM、 1KRAM。 使用不同的固件支持13.56MHz频段的无线协议。
硬件接口:I2C、SPI、高速UART(HSU).
1.2、PN532有三个模式,可以通过两个引脚来选择
标准模式:PN532的默认模式
仿真模式:PN532在该模式下用RS232串口9600bps,不能改变波特率。支持IRQ引脚的仿真,中断发生 的时候P70_IRQ引脚是低电平。
RFfiledON Mode:这个模式下,复位后PN532立刻打开射频。P33——INT1和P34/SIC_CLK引脚选择调
制和波特率,数据字节持续发送。这个模式下,温度传感器不能用。
二、PN532工作模式
PN532的固件可以满足各种需要,待机模式、低电量模式、虚拟卡模式、发起者/PCD模式、目标/PICC模式。通过固件切换5种不同模式。或者根据内部的状态及主控器的命令切换模式。
2.1 目标/PICC模式
PN532被配置成这个模式,或者ISO/IEC 14443-4卡模式
2.2、如果有目标卡被激活,PN532进入发起者或PCD模式。
2.3 、ISO/IEC 14443-4 PICC竞争概念,不支持B类的PICC卡。
三、主控器接口
系统的主控制可以和PN532交互通过SPI、I2C或者高速UART、通过16、17引脚来选择通信方式。
如果用SPI接口,PVDD不接的话,需要使用LowVbat模式。
P70_IRQ 引脚,PN532和控制器除了连接通信接口,还要连接一个IRQ引脚,当有命令的时候通知控制器。
3.1、控制器(单片机)和PN532的交互
单片机和PN532通过帧格式进行半双工通信,有4中帧类型,单向或者双向的。
标准帧:命令从单片机到PN532、响应从PN532到单片机,最大传输255个字节。
扩展帧:有效数据最多264个字节,少于255个字节也可以用这个帧。
ACK帧:响应帧可能是单片机到PN532也可能是PN532到单片机。
NACK帧:只能是单片机发给PN532,表示上一个回复帧接收没有成功,让PN532重传上一次数据到单片机。
错误帧:PN532到单片机,通知单片机在应用层有错误发生。
3.2、单片机和PN532的对话架构
单片机给PN532发送命令,PN532给单片机一个响应,然后PN532执行命令,然后PN532返回给单片机一个 命令执行结果。单片机可以给PN532一个ack,也可以不给
3.2.1、数据链路层交互:
3.2.2、单片机到PN532的链路层错误:如果PN532检测到了一个数据链路层的错误,它将不会给单片机回 复ACK。
链路层几种可能的错误:LCS错误、高速串口的帧错误、DCS错误、高速串口的超时错误。
3.2.3、PN532 到单片机发生在数据链路层的错误:单片机检测到 一个错误的响应帧,单片机给PN532发送一 个NACK帧。
3.2.4、终止退出:单片机可能给PN532帧强制PN532退出当前的进程,PN532不再进行后续处理不在响应单 片机,PN532开始等待一个新的单片机命令。
3.3、应用层
3.3.1、成功交换数据
单片机发送一个命令,然后到手一个响应。
3.3.2、强制退出
单片机可以强制PN532退出有两种方法:发送一个ACK帧给PN532 (数据链路层的退出)、发送新的命令终
止上一个命令的执行。
3.3.3、应用层错误
PN532检测到一个应用层的错误,返回一个语法错误帧给单片机。错误的原因:单片机发给PN532一个不 可知的命令、不符合规定的帧的长度、命令帧中不正确的参数。
4、高速串口通信(HSU)
PN532的HSU是一个全双工的接口,速度高达1.288M。PN532的RX引脚接收一个命令,TX引脚给控制器一 个响应。
PN532在收到命令后,必须在15ms以内进行响应ACK,如果单片机在15ms以内没收到ACK帧,单片机重
发相同的命令帧。
5、握手机制
单片机唤醒PN532或者PN532唤醒单片机。两个握手信号:PN532到单片机的是P70_IRQ引脚、单片机到 PN532的是H_REQ引脚。H_REQ引脚是可选的。
6、命令
帧结构包括了数据的类型和数量,INPUT:单片机发送数据到PN532,OUTPUT:PN532发送数据到单 片机。
命令可以用来将PN532配置成发起者或者目标卡。下表给出了“Command Code (cc)”,下表给出了单片 机到PN532的帧。
RF 射频交互命令:
列表中打“×”的表示PN532作为发起者或者目标可以使用的命令。
6.1、错误解决
交互的过程中,PN532会返回一个状态字节来表示RF交互是否成功。不成功的命令,只有状态字节被返回 到单片机。状态字节的bit6和bit7有特殊的意义。
NADpresent 位通知单片机PN532响应帧的数据(InDataExchange或TgGetData)包含了一个NAD字节。
MI位设置成1通知单片机PN532配置成目标卡从发发起者收到了数据。
Error Code,错误类型,参看数据手册67页。
6.2 命令详解
6.2.1、诊断—— 诊断命令用来进行自我诊断
语法错误原因:未知的NumTst,未知的测试号码。
NumTst的定义参看手册第69页。
6.2.2、得到固件版本号
6.2.3、读寄存器的值—— 这个命令用来读PN532的SFR寄存器或者存储区的XRAM
6.2.4 写寄存器
6.2.5 读GPIO
6.2.6 写GPIO
6.2.7 设置串口波特率
6.2.8、
InJumpForDEP 激活RF射频范围内目标卡进入Ready状态,使用IEC/IOS 18092 (DEP)的数据交换格式. 只能激活一个。
6.2.9、InJumpForPSL 激活RF射频范围内目标卡进入Ready状态,使用PSL或者DEP的交换格式。
6.2.10、InListPassiveTarget,主动模式下激活射频范围内的多张卡。
6.2.11、数据交换—— PN532作为发起者或目标者进行数据交换
Ta的文章
更多
>>
掀起“红盖头”:揭开真正意义的DSP神秘面纱
0 个评论
NFC----PN532
0 个评论
PowerDesigner连MySQL
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮