Xadow NFC模块

From Wiki
Jump to: navigation, search

产品简介

Near Field Communication (NFC) 是一种近场无线通信技术,被广泛用于门禁和电子支付系统当中。这款Xadow NFC 选用了高集成度芯片PN532,支持13.56MHz的非接触通信方法。利用我们提供的Arduino库文件,你可以轻松地读/写NFC标签,也可以使用两块Xadow NFC来实现点对点通信。该模块支持I2C, SPI, UART三种通信方式,I2C是默认方式。另外,我们设计了一个独立的PCB天线,你可以随意延长天线,为你的设计提供了较大的方便。


300px-X nfc 01.jpg

规格参数

工作电压: 3.3V 工作电流: 静态模式: 73mA 读/写模式: 83mA 支持通信方式: I2C(default), SPI, UART. 支持13.56MHz的无接触通信. 支持ISO14443 Type A and Type B协议 最大的操作距离:28mm(由天线尺寸决定) 支持点对点通信 外形尺寸: 25.43mm x 20.35mm 应用示例

基于高度集成化的NFC控制器PN532,Xadow NFC 具备很多能力。但是目前我们的Arduino库文件只支持读/写标签,不支持手机与Xadow NFC的通信,标签模拟,或者更高级的功能。 注意:当Xadow NFC 使用SPI通信方式时,这里有一个现成的支持手机与NFC通信的库文件。但是Xadow NFC的默认通信方式是I2C,所以你是不可以直接使用这个库文件来实现手机与NFC通信的功能。 在进行读写卡之前,你需要做一些准备工作,比如说硬件的安装,库文件的下载等等。 硬件连接图:



XadowNFC.jpg


连接完成后下载 PN532 library 和Ndef Library。记得将下载的库文件安装到Arduino的library中。如果你还不清楚操作步骤,可以跳转到库文件的安装页面来学习。

Demo 1: 向卡中写入数据 通过路径:File -> Example ->NDEF->WriteTag打开代码。


Code Interfae.jpg


在上面的代码中, 函数 message.addUriRecord("http://arduino.cc") 是用来写信息到卡中的。 你可以替换掉信息 "http://arduino.cc"。 比如, 我们将信息 "do you happy?" ,"hello, world" 写入到卡中。 上传代码后打开串口,按照上面的提示进行操作,你将会成功完成写入数据这关键一步的。 WriteTag.jpg Demo 2: 读取卡的信息 上一步骤我们学习了如何向卡中写数据,写完之后如果想检测写进的数据是否正确,那就需要使用代码:ReadTag。 通过路径:File -> Example ->NDEF->ReadTag 打开代码并上传。


77.jpg


下载完成后打开串口,可以看到:


Read a Tag.jpg


为了对串口输出的结果有一个清晰的认识,接下来我们有必要解释下读取到的卡信息。在一条NDEF消息中可以有多条记录的,我们就选择其中一条记录来分析吧。

TNF(001) - TNF 域指示了 TYPE 域值的结构。0x01这个值是NFC论坛已知值,表示 TYPE 域包含一个值在 RTD 类名之后。 Type Length 01 - 01 是类型长度,TYPE_LENGTH 域是一个8位无符号整数,表示了 TYPE 域有几个八位组。对 TNF 域的某些值,TYPE_LENGTH 域总是0 Pay load Length - PAYLOAD_LENGTH 域是一个8位无符号整数,表示了 PAYLOAD 域(应用程序的内容)有几个八位组。PAYLOAD_LENGTH 域的大小由 SR 标志决定。 Type(55) - TYPE 域是什么类型,55是"U"的ASCII码,表明它是 URI 记录类型 Pay Load - 内容00 68 65 6C 6F 2C 77 6F 72 6C 64,其实 就是"hello world"的ASCII码


File:PN532.pdf