基于嵌入式的NFC应用毕业设计.docx
- 文档编号:30448830
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:32
- 大小:1,011.93KB
基于嵌入式的NFC应用毕业设计.docx
《基于嵌入式的NFC应用毕业设计.docx》由会员分享,可在线阅读,更多相关《基于嵌入式的NFC应用毕业设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于嵌入式的NFC应用毕业设计
宁波理工学院
毕业设计(论文)
题目基于嵌入式的NFC应用
姓名
学号
专业班级09电子信息工程2班
指导教师
分院信息科学与工程学院
完成日期2013年5月20日
摘要
NFC是NearFieldCommunication的缩写,是近年来在射频识别技术上发展起来的一种近距离无线通信技术。
本文在了解STM32F107开发板串口配置以及ACR122S读写器串口通信指令的基础上,设计了一个基于嵌入式的NFC考勤系统的简单应用。
NFC考勤系统的实现主要划分为以下两个大块:
第一块,实现STM32F107开发板、ACR122S读写器与PC三者之间的通信;第二块,刷卡时,读写器读取的信息通过RS232串口发送给开发板,一方面把信息在开发板的液晶上显示,另一方面把信息传到PC上的考勤界面上显示。
关键词:
STM32F107开发板;ACR122S读写器;串口通信
Abstract
NFC(NearFieldCommunication)isashort-rangewirelesscommunicationstechnologydevelopedinrecentyearsinradiofrequencyidentificationtechnology.ThistextisbasedonunderstandingSTM32F107developmentboardserialconfigurationandACR122Sofreaderserialcommunicationinstruction,designingasimpleapplicationofembeddedNFC-basedtimeandattendancesystem.NFCattendancesystemimplementationisdividedintothefollowingtwoblocks:
thefirstblock,thecommunicationbetweentheSTM32F107developmentboard,ACR122SreaderandPC;thesecondblock,whencreditingcard,thereadertoreadtheinformationfromthecardissenttotheboardthroughtheRS232serialport,ontheonehand,theinformationdisplayedontheLCDdevelopmentboard,ontheotherhand,theinformationtotheattendanceinterfaceonthePC.
Keyword:
STM32F107developmentboard;ACR122Sreader;Serialcommunication
第1章概述
1.1NFC技术研究的意义
如今无线通信在人们的生活中扮演越来越重要的角色,低功耗、微型化是用户对当前无线通信产品尤其是便携产品的强烈追求,因此近距离无线通信正逐渐引起人们的注意,同时对近距离无线通信技术的要求也越来越高。
然而近距离无线通信技术中最近几年发展起来了一种新兴技术,即近场通信(NearFieldCommunication)技术。
它让这种电子设备可以在短距离内简单地进行无线连接通信,为所有消费类电子产品提供了一种极其便利的通信方式。
随着消费电子产品的不断创新发展很多产品实现了多功能集合,各种设备之间通过网络连接进行数据交换的需求不断提升。
虽然在计算机之间容易建立网络连接,但电子产品之间建立网络相对复杂。
近距离无线通信NFC技术具备虚拟网络连接器的功能,可以方便快速地完成电子产品间的数据交换,在建立网络连接方面显示出了十分明显的优势。
NFC技术类似一个虚拟连接器(Virtualconnector)可以快捷方便地建立设备间的连接,只要简单地靠近而不需要进行繁复的参数设置就能完成整个连接过程。
因此NFC技术可以成为蓝牙、Wi-Fi等通信技术的有效补充。
1.2NFC技术的分析
NFC近距离通信是由飞利浦公司发起,由诺基亚、索尼等著名厂商联合主推的一项无线通讯技术。
这项技术最初只是RFID技术和网络技术的合并,随着无线通信技术的不断革新,如今已演变成一种短距离无线通信技术。
虽然NFC在世界领域已引起了广泛的关注,但是在国内对大多数人来说NFC还是一个全新的概念,甚至很多人都不知道NFC的具体应用。
从某些简单的应用上来讲NFC就是:
当你手里拿着手机,在一个音乐会的广告海报前面,把手机接近海报,它就能实现手机与海报网站的连接;要想买票入场,可以利用嵌在手机中的智能卡支付票款等等,这就是NFC想要带给你的生活享受。
NFC将非接触式读卡器、非接触式卡和点对点(Peer-Peer)功能整合进一块单芯片,为消费者的生活方式开创了不计其数的全新机遇。
NFC支持三种不同的模式:
读写模式,NFC设备充当读卡器,对符合ISO/IEC14443、15693和18092规范的智能卡读写;智能卡模式,NFC设备模拟智能卡的功能与读写器进行交互;点对点模式,支持NFC设备间的通信。
NFC用于在短距离范围内快速建立各种设备之间的无线通信,可作为一种虚拟连接器,它可以满足任何两个无线设备间的数据交换。
它还能通过初始化设备原有的蓝牙和802.11等无线协议,使设备能在更远距离上通信或以更高速率传输数据。
通过NFC,数码相机、手机、PDA等多个设备之间可以很方便快捷地进行无线连接,进而实现数据交换和服务。
与RFID一样,NFC信息也是通过频谱中无线频率部分的电磁感应耦合方式传递。
RFID的传输范围可以达到几米、甚至几十米,而NFC其传输范围比RFID小,相对于RFID来说NFC采取了独特的信号衰减技术,具有距离近、带宽高、能耗低、安全、迅速等特点。
另外NFC与非接触式智能卡兼容,目前已经得到越来越多主要厂商支持的正式标准。
最后,RFID更多的被应用在生产、物流、跟踪、资产管理上,而NFC则在门禁、公交、手机支付等领域内发挥着巨大的作用。
1.3国内外发展趋势
2004年3月18日,为了推动NFC的发展和普及,NXP(原飞利浦半导体)、索尼和诺基亚创建了一个非赢利性的行业协会—NFC论坛,旨在促进NFC技术的实施和标准化,确保设备和服务之间协同合作。
多年发展之后,NFC论坛在全球已经拥有超过100个成员,包括手机生产商、电信运营商、金融机构和软件开发商等。
2011年,三星、LG、HTC、诺基亚、RIM等公司便推出了40多部NFC手机,苹果手机也有可能支持NFC移动支付。
而根据市场研究公司BergLnsight的最新报告显示,今年NFC手机出货量将从去年的3000万部增长到1亿部,到2016年,全球的NFC手机将增长到7亿部。
除了手机,越来越多的平板电脑甚至笔记本都将支持NFC功能,比如夏普RW-T110平板电脑便支持NFC技术,这是因为平板无需NFC移动支付的安全芯片,NFC的成本低,而其最主要的功能便是设备互联和信息传输,实现设备间的游戏对战、文件同步等功能。
其中移动支付功能是NFC手机中应用最有前景的一项功能,目前国内外已经开展了具体的实施项目。
在国外,主要以GoogleWallet为首的电子钱包支付项目,依托运营商的Isis移动平台,以及NFC设备提供ViVotech等公司市场推广。
NFC技术的应用前景十分广阔,但尚处于发展的初级阶段。
从目前的研究看,主要有以下四个基本的应用类别。
(1)接触通过,如门禁管制、车票和门票等,使用者只需携带存储着的票证或门控密码的移动设备靠近读取装置即可。
(2)接触确认,如移动支付,用户通过输入密码或者仅是接受交易,确认该次交易行为。
(3)接触连接,如把两个内建的NFC的装置相连接,进行点对点数据传输,例如下载音乐、图片互传和同步交换通讯录等。
(4)接触浏览,一个内建NFC的设备可以方便的浏览存储在另一个NFC功能的设备中的信息。
NFC具有成本低廉、方便易用和更富直观性等特点,这让它在某些领域显得更具潜力—NFC通过一个芯片、一根天线和一些软件的组合,能够实现各种设备在几厘米范围内的通信。
据ABI有关NFC的最新研究,NFC市场会出现采用NFC芯片的智能手机和增强型手持设备。
ABI估计,到2005年以后,市场会出现采用NFC芯片的智能手机和增强型手持设备。
到2009年,这种手持设备将占一半以上的市场。
研究机构StratcgyAnalytics预测,至2011年全球基于移动电话的非接触式支付额将超过360亿美元。
如果NFC技术得到普及,它将在很大程度上改变人们使用许多电子设备方式,甚至改变使用信用卡、钥匙和现金的方式。
NFC作为一种新兴的技术,克服了蓝牙技术协同工作能力差的弊病。
不过,它的目标并非是完全取代蓝牙、Wi-Fi等其他无线技术,而是在不同场合、不同的领域起到互相补充的作用。
相信在不久的将来,基于NFC技术的产品将会形成一个新的浪潮,势不可挡席卷全球,它的发展前景将同计算机和互联网一样,融入人们生活的每一个角落。
1.4本文主要工作
本课题主要是研究基于嵌入式的NFC应用,基于NFC技术提出了一种对非接触式智能卡信息的读取,采用NFC的读写模式,实现了对智能卡的快速访问。
主要研究ACR122S读写器与S50非接触智能IC卡的结构与原理,还有就是读写器与标签之间进行读写操作的流程、以及它们之间通讯的协议。
本文所作的设计是基于嵌入式NFC考勤系统的简单应用。
在设计过程中,第一步了解STM32F107开发板串口配置以及ACR122S读写器串口通信指令,实现STM32F107开发板、ACR122S读写器与PC三者之间的通信。
在此通信的基础上,STM32F107开发板从读写器中读取的数据通过GPIO总线对TFTLCD屏进行访问操作,实现图形界面的显示,即读写器从非接触式智能卡读取的一些信息通过开发板的控制在LCD屏上显示,这些信息包括个人的姓名、考勤时间。
最后利用MicrosoftVisualC++绘制一个考勤界面,把个人的考勤信息传到PC机上的界面上显示出来,实现考勤数据的记录。
第2章串口的通信过程
要设计一个基于嵌入式NFC考勤系统的应用,首先第一步就是要实现PC、STM32开发板和读写器三者之间的通信。
2.1ACR122S读写器的通信原理
2.1.1读写器的工作原理
图2.1读写器工作原理
一台典型的读写器主要包含图中的射频收发单元电路以及微控制单元电路。
此外,许多读写器一般有一些附加的接口(RS-232、RS-485、USB等),以便将所获得的数据给另外的系统作进一步的处理或存储。
射频芯片PN532是NXP公司推出的应用于13.56MHZ非接触式通信的高集成度IC卡读写芯片,支持ISO14443TypeA&TypeB的所有层协议,其内部的发送器模块具有输出驱动缓存器。
接收器模块接收天线传来的信号,对该信号进行解调和解码形成相关数据。
数字模块负责按ISO14443规定帧格式处理该数据,并使用奇偶检验和CRC校验进行错误检测。
射频单元的发送部分和接收部分合起来称为读写器的射频接口。
它担负着以下任务:
产生超高频的发射功率,以启动标签为它提供能量;对发射信号进行调制,用于将数据传送给标签;接收并解调来自标签的信号。
NFC读写器持续产生正弦波信号(中心频率13.56MHz),如果有标签在正弦波产生的磁场扰动范围内,标签由磁场扰动获得能量,产生原正弦波反频率或改变频率属性的波。
读写器探测到这种改变,以知道附近有标签进入磁场,或者由有源标签主动发送某一频率的信号。
读写器将要发送的信息,经编码并加载到高频载波信号上再经天线向外发送。
当进入读写器工作区域的电子标签接收到此信号,其内部芯片的有关电路对此信号进行倍压整流、调制、解码、解密,然后对命令请求、密码、权限等进行判断。
读写器读取信息并解码后,再由应用软件进行有关数据处理。
读写器的控制单元则担负着以下的任务:
与应用系统软件进行通信,并执行应用系统软件发来的命令;控制读写器与标签的通信过程(主-从原则);负责信号的编码解码。
2.1.2读写器串口通信基础
ACR122S是一款串口型(RS-232)NFC非接触式智能卡读写器,采用13.56MHz非接触式(RFID)技术并符合ISO/IEC18092NFC标准,能够支持Mifare®、ISO14443A类和B类、FeliCa和NFC技术,包括所有四类NFC标签和三种NFC模式(读写器、peer-to-peer和模拟卡片模式)。
这是一款即插即用设备,无需安装任何驱动。
ACR122S具有内置的ISO7816SAM卡槽,能够增强安全性。
另外,它还具有一个蜂鸣器和两个LED指示灯,方便用户操作。
ACR122S能够以424Kbps的速度读取标签,因而其读写速度更快而且效率更高。
它的操作距离最远可达5cm,具体根据所使用的标签类型而定。
ACR122S的典型应用包括电子支付、电子票务(大型事件或公共交通)、高速公路收费系统和网络验证。
图2.2读写器通信原理图
读写器通信原理图代表不同的指令,读写器回根据判断的指令格式对应什么接口去执行相应的动作。
PC/SC即个人计算机(Personalcomputer)/智能卡(SmartCard),它是为智能卡访问Windows平台而定义的一种标准结构。
根据PC/SC规范,这部分通信遵从ISO/IEC7816协议,IC卡与读卡器之间的通信有两种协议可供选择:
T=0,异步半双工字符传输协议和T=1异步半双工分组传输协议,本读卡器采用T=0协议。
SAM接口必须激活之后才能使用的非接触式接口和外设,总而言之所有的APDU指令的数据交换都要通过SAM接口。
读卡器通过向卡发送命令APDU(应用协议数据单元),接收由卡返回的应答APDU,实现对卡的读写。
应用协议数据单元(APDU)可包含有命令报文或响应报文,它从接口设备发送到卡,或者相反地由卡发送到接口设备。
(1)命令APDU格式为:
如表2-1所示,其中命令头为命令的编码,Lc为体内数据(Data)长度,Data为发送数据,Le是期望中应答APDU数据字段的最大字节数。
表21命令APDU结构
(2)响应APDU格式为:
如表2-2所示,其中体的字节数由命令APDU的Le指出。
Data是IC卡接收命令APDU并进行处理后送回发送设备的数据。
尾标SW1和SW2为状态代码。
,尾标编码了处理“命令响应对”之后的接收实体的状态。
如果该命令被放弃,则响应APDU是一个尾标,它按2个状态字节来编码差错条件。
表22响应APDU结构
2.1.3读写器串口通信指令格式
(1)ACR122S命令帧格式:
其中HOST=HostController,RDR=ACR122S。
表23ACR122S命令帧格式
其中ACR122S命令帧格式中包含10个字节的HOST_to_RDR_XfrBlock格式如表2-4所示:
HOST_to_RDR_XfrBlock:
ToexchangeAPDUsbetweentheHostandACR122S。
表24HOST_to_RDR_XfrBlock格式
(2)ACR122S状态帧格式:
表25ACR122S状态帧格式
(3)ACR122S响应帧格式:
表26ACR122S响应帧格式
其中ACR122S响应帧格式中包含10个字节的RDR_to_HOST_DataBlock格式如表2-7所示:
表27RDR_to_HOST_DataBlock格式
无论是在命令帧还是响应帧格式当中,都涉及到了一个字节的校验和求法:
Checksum=XOR{Bulk-OUTHeader,APDUCommandorParameters}
Checksum=XOR{Bulk-INHeader,APDUResponseorabData}
如果程序中求出的校验和设定的校验和的值一样,说明数据在传输过程中没出现错码。
(4)直接发送指令格式:
直接发送指令通过读写器SAM非接触式接口来传达应用协议数据单元(APDU)指令。
读卡器通过向卡发送命令APDU(应用协议数据单元),接收由卡返回的应答APDU,实现对卡的读写。
表28直接发送指令格式
(5)直接发送响应格式
表29直接发送响应格式
在这次设计过程中,开发板上串口通信给读写器发送的是查询卡的指令,发送的指令为“0x020x6F0x090x000x000x000x000x010x000x000x000xFF0x000x000x000x040xD40x4A0x010x000x030x03”其中“0x020x6F0x090x000x000x000x000x010x000x000x00”指令的含义是通过SAM接口与S50卡进行数据交换。
APDU的指令格式是“FF00000004D44A0100”
DirectTransmitAPDU=“FF000000”
LengthofthePN532_TagCommand=“04”
PN532Command(InListPassiveTarget106kbpstypeA)=“D44A0100”其中“0xD40x4A0x010x00”是查看周围是否有卡存在,如果有卡的话,识别卡的卡号(即每张卡唯一的UID)。
TosendanAPDUtotheslot0(default),sequencenumber=1。
HOST->026F090000000001000000
FF00000009D44A0100[Checksum]03
RDR->02000003
RDR->02800E0000000002010000
D54B010100040804[UID]9000[Checksum]03
TheAPDUResponseis“D54B010100040804[UID]9000”
ResponsereturnedbythePN532=“D54B010100040804[UID]”
StatusCodereturnedbythereader=“9000”表达的含义是“Theoperationiscompletedsuccessfully”。
2.2PC、开发板与读写器串口之间的通信
2.2.1串口通信流程框图
在此次设计中,STM32F107开发板的串口1用来连接NFC读写器,串口2用来连接电脑。
图2.3通信流程
这个通信过程的实现,主要通过对开发板上串口通信的编程来控制读写器与非接触式智能卡之间的通信。
PC主要起到一个监听的作用,监听STM32开发板与读写器之间的通信。
读写器和非接触式智能卡的所有行为都应由STM32开发板的编程来控制完成。
通信过程中,STM32开发板作为主动方对读写器发出各种指令,而读写器则作为被动方对应用软件的各种指令做出响应。
读写器接收到通过STM32开发板串口传来的指令后,根据指令的不同,对非接触式智能卡做出不同的反应,与之建立通信关系。
非接触式智能卡接收到读写器的指令,对指令进行响应。
2.2.2串口通信流程
串口的通信实现主要通过PC机上串口调试软件进行通信。
图2.4串口通信系统框图
(1)串口初始化:
设置波特率、数据位、停止位数、奇偶校验模式、硬件流模式使能还是失能以及使能接收和发送模式。
(2)串口发送函数SerialPutChar():
USART_SendData(),从串口发送字符,然后等待循环发送结束while(USART_GetFlagStatus(eval_com,USART_FLAG_TC)==RESET),如果不等待发送结束就返回,此时再写同样的数据发生寄存器会将刚才的数据覆盖掉,接收则将得不到预期的数据。
(3)串口接收输入函数GetKey():
USART_GetFlagStatus(eval_com,USART_FLAG_RXNE)!
=RESET),首先检查串口接收标志寄存器“USART_FLAG_RXNE”,判断是否已经接收到数据,没收到则返回“RESET”,反之表示已经接收到数据,则数据从“EVAL_COM->DR”寄存器读出返回。
根据读写器串口通信的特定指令,我们可以得到每张不同卡的卡号,以便后面卡号与姓名之间的绑定。
卡号“CAD5F0E2”对应的卡的名字是“徐笑彬1”,工号是“1011”。
卡号“DA17DDC2”对应的卡的名字是“徐笑彬2”,工号“1012”。
卡号“9A22EFE2”对应的卡的名字是“徐笑彬3”,工号是“1013”。
第3章基于嵌入式的NFC考勤系统简单设计
3.1系统框图
图3.1硬件系统框图
3.2液晶显示控制模块
3.2.1TFTLCD液晶显示原理
TFT就是“ThinFilmTransistor”的简称,一般代指薄膜液晶显示器。
其图象产生的基本原理为:
显示屏由许多可以发出任意颜色的光线的像素组成,主要控制各个像素显示相应的颜色就可以达到目的。
神州Ⅳ号STM32开发板上配带的FTFLCD屏,LCD屏为320×240分辨率,262K(26万色),同时支持2.8寸的ILI9320的FTFLCD。
ILI9320控制器是一款带有262144(26万色)种颜色的单芯片SoC驱动的晶体管显示器,320×240分辨率,包括720路源极驱动以及320路的栅极驱动,自带有显存,容量为172800字节。
本次ILI9320控制模块与STM32处理器之间的接口为“i80-system”接口,用到的信号包括以下图所示:
图3.2ILI9320控制模块与处理器之间的接口信号
其中DB为数据总线,其它的信号为控制信号。
控制信号的含义如表3-1所示:
表31控制信号的含义
ILI9320控制器是一款带有262144(26万色)种颜色的单芯片SoC驱动的晶体管显示器,由于该芯片支持262K色(26万色),也就是说每一个点可以有26万不同的颜色,那么从数据总线上一次传输26万色的数据,需要18根并行的数据线(2的18次方=262144)。
但是一般的处理器数据线的位宽为2的幂次方,与18最接近的16,本次STM32采用16位位宽的总线与其连接,分两次传输18位数据,以实现26万色的显示,如图所示:
图3.3颜色控制
3.2.2ILI9320控制器的寄存器配置
表32ILI9320寄存器指令格式
寄存器R0,指令00H,当为读操作时,读取控制器的型号;当为写操作时,打开或关闭OSC振荡器。
我们在程序设计中就是通过指令00H读取控制器的型号,从而针对具体型号的控制器进行初始化操作。
寄存器R3,指令03H,入口模式命令。
我们重点关注的是I/D0、I/D1、AM这3个位,因为这3个位控制了屏幕的显示方向。
AM:
控制GRAM更新方向
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 NFC 应用 毕业设计