NXP

NFC----PN532

2019-07-12 13:04发布

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作为发起者或目标者进行数据交换