资源描述
(完整word)实验11 NFC通信实验-V20170317
实验11 NFC通信实验—V20170317
1.实验目的
了解NFC近场通信原理和过程;
学习PN532的使用;
2.实验设备
硬件:RFID实验箱6号NFC节点;
软件:STC下载软件STC_ISP,RFID实验箱管理软件;
芯片手册:配套光盘\附件\芯片手册\PN532用户手册
3. 实验原理
3。1 NFC简介
NFC是Near Field Communication缩写,即近距离无线通讯技术。是一种短距离的高频无线通信技术,允许电子设备之间进行非接触式点对点数据传输,在十厘米(3.9英吋)内,交换数据。
这个技术由免接触式射频识别(RFID)演变而来,由飞利浦公司和索尼公司共同开发的NFC 是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。
3.2 工作模式
1。卡模式(Card emulation):这个模式其实就是相当于一张采用RFID技术的IC卡(个人理解).可以替代现在大量的IC卡(包括信用卡)场合商场刷卡、公交卡、门禁管制,车票,门票等等。此种方式下,有一个极大的优点,那就是卡片通过非接触读卡器的 RF 域来供电,即便是寄主设备(如手机)没电也可以工作.
2。点对点模式(P2P mode):这个模式和红外线差不多,可用于数据交换,只是传输距离比较短,传输创建速度快很多,传输速度也快些,功耗低(蓝牙也类似)。将两个具备 NFC 功能的设备链接,能实现数据点对点传输,如下载音乐,交换图片或者同步设备地址薄。因此通过NFC,多个设备如数字相机,PDA,计算机,手机之间,都可以交换资料或者服务。
3。读卡器模式(Reader/writer mode):作为非接触读卡器使用,比如从海报或者展览信息电子标签上读取相关信息。
本实验介绍点对点通信模式的应用。
3.3 指令帧格式
3.3.1 Normal information frame:正常信息数据帧格式
3.3。2 Extended information frame:扩展信息数据帧格式
3.3.3 ACK frame:应答数据帧格式
3。3。4 NACK frame:非应答数据帧格式
3.3。5 Error frame:错误数据帧格式
更多芯片资料,请查看PN532数据手册:配套光盘\附件\芯片手册\PN532用户手册
3.4 代码分析
3。4。1 主机代码分析
在NFC通信实验中,主机是通信的发起端(initiator).
nfc.c文件中,是操作PN532的指令和函数:
1 唤醒指令
上电唤醒一次即可,无需多次唤醒.
2 参数配置指令
3 打开天线
4 设置重复次数
5 检测从机
检测从机信号,若5s内主机未检测到从机,则提示未接收到数据,并结束本次请求;若检测到从机,则进行数据交换。
6 取消选定&释放设备
完成一次数据传输,需发送这亮条指令给PN532。
3.4。2 从机代码分析
在NFC通信实验中,从机是通信的目标端(target)。
nfc。c文件中,是操作PN532的指令和函数.从机的唤醒,参数配置,释放设备和主机操作是一致的,以下分析从机的主要操作:
1 开启目标端
发送指令给PN532,使主机可以检测到从机.
2 获取数据
从机信号被主机检测到后,从机发送数据给发起端开始数据交换,主机成功获取到从机发来的数据后,主机发送数据给从机,从而实现数据交换。
若5s内从机未被主机检测到(即没有应答数据返回),则结束本次请求;若5s内被主机检测到,则进行数据交换。
3.5 实例分析
硬件连接说明:
串口1连接DB9,可与上位机连接,或通过公公交叉线连接wifi节点;
串口2连接PN532的串口,可以对PN532进行配置,并接收PN532发来的数据.
例如,主从机需要交换如下数据:
主机数据:1234
从机数据:abcd
3。5.1 主机操作步骤
第一步:待发送数据整理
根据3.3小节的帧格式,将“1234"整理成指定的数据帧:
整理后得到:00 00 FF 07 F9 D4 40 01 31 32 33 34 21 00
其中,31 32 33 34为字符1234的ASCII值的的十六进制。
第二步:发送参数配置指令
发送:00 00 FF 03 FD D4 12 14 06 00
返回:00 00 FF 00 FF 00 00 00 FF 02 FE D5 13 18 00
第三步:发送打开天线指令
发送:00 00 FF 04 FC D4 32 01 01 F8 00
返回:00 00 FF 00 FF 00 00 00 FF 02 FE D5 33 F8 00
第四步:发送重复次数配置指令
发送:00 00 FF 06 FA D4 32 05 FF FF FF F8 00
返回:00 00 FF 00 FF 00 00 00 FF 02 FE D5 33 F8 00
第五步:发送检测从机信号指令
发送:00 00 FF 0A F6 D4 56 00 01 01 00 FF FF 00 0F C7 00
返回:00 00 FF 00 FF 00 00 00 FF 17 E9 00 01 12 34 56 78 9A BC DE FF 00 00 00 00 00 09 03 12 34 56 78 6C 00
第六步:发送含“1234”的数据帧
当主机检测到从机,并得到正确的应答数据时,主机发送含“1234”的数据帧:
发送:00 00 FF 07 F9 D4 40 01 31 32 33 34 21 00
返回:00 00 FF 06 FA D4 8E 61 62 63 64 14 00
此时,数据交换成功。主机获得从机数据“abcd”,从机将获得主机数据“1234"。
第七步:发送取消选定指令
发送:00 00 FF 03 FD D4 44 00 E8 00
返回:00 00 FF 00 FF 00 00 00 FF 03 FD D5 45 00 E6 00
第八步:发送释放设备指令
发送:00 00 FF 03 FD D4 52 00 DA 00
返回:00 00 FF 00 FF 00 00 00 FF 03 FD D5 53 00 D8 00
3。5.2 从机操作步骤
第一步:待发送数据整理
根据3.3小节的帧格式,将“1234”整理成指定的数据帧:
整理后得到:00 00 FF 06 FA D4 8E 61 62 63 64 14 00
其中,61 62 63 64为字符abcd的ASCII值的的十六进制.
第二步:发送参数配置指令
发送:00 00 FF 03 FD D4 12 14 06 00
返回:00 00 FF 00 FF 00 00 00 FF 02 FE D5 13 18 00
第三步:发送关闭天线指令
发送:00 00 FF 04 FC D4 32 01 00 F9 00
返回:00 00 FF 00 FF 00 00 00 FF 02 FE D5 33 F8 00
第四步:发送启动目标端指令
发送:00 00 FF 2B D5 D4 8C 02 08 00 12 34 56 40 01 FE 12 34 56 78 90 12 C0 C1 C2 C3
C4 C5 C6 C7 0F AB 12 34 56 78 9A BC DE FF 00 00 04 12 34 56 78 00 D0 00
第五步:发送获取数据指令
在第四步完成之后,如果有主机在等待从机信号,从机则发送获取数据的指令。
发送:00 00 FF 02 FE D4 86 A6 00
返回:00 00 FF 07 F9 D4 40 01 31 32 33 34 21 00
第六步:发送含“abcd”的数据帧
从机成功接收到主机发来的数据,则发送待交换的数据给主机,以完成数据交换。
发送:00 00 FF 06 FA D4 8E 61 62 63 64 14 00
第七步:发送释放设备指令:
发送:00 00 FF 03 FD D4 52 00 DA 00
第八步:发送休眠指令:
发送:00 00 FF 03 FD D4 16 F0 26 00
4. 实验过程
4。1 准备工作
本实验需要先将实验箱恢复至出厂状态再进行,请根据配套光盘\附件中将物联网RFID实验箱恢复到出厂状态文档的操作步骤,将实验箱恢复到出厂状态.
4。2 实验操作
第一步:打开安装好的RFID实验箱管理软件,进入软件主界面,如图4.2。1所示:
图4。2.1 软件主界面
第二步:点击右下角的“说明”,查看“NFC&WiFi模式”操作说明,如图4.2.2所示
图4。2。2 NFC&WiFi模式操作说明
第三步:按照说明完成连接,并把S1开关拨至指定的位置,点击APP上6号节点的“控制”按钮,进入NFC通信实验界面,如图4。2.3所示:(注意,进行该实验时,无须点击右下角的“开始"按钮)
图4。2.3 NFC通信实验界面
第四步:在IP地址栏输入10号节点的IP地址:192。168。0.165,端口号为4001,点击连接,连接成功会有弹窗提示。
第五步:字符型数据交换:(主机先点击发送,再点击从机发送)
在主从机的发送区填入数据(请最多输入20个字符或者数字),填写完毕后,先点击主机发送,5s之内点击从机发送,可以看到,主从机数据进行交换,如图4。2。4所示:
图4。2。4 字符型数据交换
第六步:十六进制数据交换:(主机先点击发送,再点击从机发送)
在主从机的发送区填入数据(请最多输入20个字符或者数字),填写完毕后,先点击主机发送,5s之内点击从机发送,可以看到,主从机数据进行交换,如图4.2.5所示:
注意:输入十六进制的格式为:每个字节之间用空格隔开,每个字节由两个字母或两个数字或一个字母一个数字组成,发送的字节如果为一个字母或数字,应补齐一个0。
例1:发送A 应输入0A(补齐0)
例2:发送12 34 5 应输入12 34 05(5补齐一个0)
图4。2.5 十六进制数据交换
4.3 错误分析
由于错误操作会导致实验出现错误,详细的错误信息如下表所示:
错误操作
实验现象
主机
从机
主机点发送,从机未发送
约6s后,接收区提示**error**
无
主机未发送,从机点发送
无
约6s后,接收区提示**error**
从机先点击发送
主机后点击发送
约6s后,接收区提示**error**
约6s后,接收区提示**error**
展开阅读全文