WINCE下基于SL031的RFID功能的实现(转载的文章)
0赞最近看了一篇MIFARE读写器模块的文章,和大家分享一下。
系统:WINCE5.0+S3C2440非标准的BSP包,也就是从WINCE4.2移植过来的BSP包。
1. RFID
1.1 RFID是什么
RFID是Radio Frequency Identification的缩写,即射频识别,俗称电子标签。
1.2什么是RFID技术
RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。RFID是一种简单的无线系统,只有两个基本器件,该系统用于控制、检测和跟踪物体。系统由一个询问器(或阅读器,在这里是SL031)和很多应答器(或标签,在这里是Mifare 1k的射频卡)组成。
RF技术利用无线射频方式在阅读器和射频卡之间进行非接触式双向(也即可读可写)传输数据,已达到目标识别(在这里就是发现Mifare 1k的射频卡)和数据交换的目的(在这里是阅读器SL031和Mifare 1k的射频卡进行数据交换)。
最基本的RF系统由三部分组成:
⑴标签(Tag,及射频卡):由耦合元件及芯片组成,标签含有内置天线,用于和射频天线间进行通信。
⑵阅读器:读取(在读写卡中还可以写入)标签信息的设备。
⑶天线:在标签和读取器间传递射频信号。
在本系统中,阅读器SL031通过其UART接口和S3C2440的UART接口连接,进行数据交换。
1.3 RFID的分类
RFID按应用频率的不同分为低频(LF)、高频(HF)、超高频(UHF)、微波(MW),相对应的代表性频率分别为:低频135KHz以下、高频13.56MHz、超高频860M~960MHz、微波2.4G,5.8G。
RFID按照能源的供给方式分为无源RFID,有源RFID,以及半有源RFID。无源RFID读写距离近,价格低;有源RFID可以提供更远的读写距离,但是SRR110U UHF超高频桌面读写器需要电池供电,成本要更高一些,适用于远距离读写的应用场合。
1.4 RFID的基本组成部分
RFID标签俗称电子标签,也称应答器(tag, transponder, responder),根据工作方式可分为主动式(有源)和被动式(无源)两大类,本文主要研究被动式RFID标签及系统。被动式RFID标签由标签芯片和标签天线或线圈组成,利用电感耦合或电磁反向散射耦合原理实现与读写器之间的通讯。RFID标签中存储一个唯一编码,通常为64bits、96bits甚至更高,其地址空间大大高于条码所能提供的空间,因此可以实现单品级的物品编码。当RFID标签进入读写器的作用区域,就可以根据电感耦合原理(近场作用范围内)或电磁反向散射耦合原理(远场作用范围内)在标签天线两端产生感应电势差,并在标签芯片通路中形成微弱电流,如果这个电流强度超过一个阈值,就将激活RFID标签芯片电路工作,从而对标签芯片中的存储器进行读/写操作,微控制器还可以进一步加入诸如密码或防碰撞算法等复杂功能。RFID标签芯片的内部结构主要包括射频前端、模拟前端、数字基带处理单元和EEPROM存储单元四部分。
读写器也称阅读器、询问器(reader, interrogator),是对RFID标签进行读/写操作的设备,主要包括射频模块和数字信号处理单元两部分。读写器是RFID系统中最重要的基础设施,一方面,RFID标签返回的微弱电磁信号通过天线进入读写器的射频模块中转换为数字信号,再经过读写器的数字信号处理单元对其进行必要的加工整形,最后从中解调出返回的信息,完成对RFID标签的识别或读/写操作;另一方面,上层中间件及应用软件与读写器进行交互,实现操作指令的执行和数据汇总上传。在上传数据时,读写器会对RFID标签原子事件进行去重过滤或简单的条件过滤,将其加工为读写器事件后再上传,以减少与中间件及应用软件之间数据交换的流量,因此在很多读写器中还集成了微处理器和嵌入式系统,实现一部分中间件的功能,如信号状态控制、奇偶位错误校验与修正等。未来的读写器呈现出智能化、小型化和集成化趋势,还将具备更加强大的前端控制功能,例如直接与工业现场的其它设备进行交互甚至是作为控制器进行在线调度。在物联网中,读写器将成为同时具有通讯、控制和计算(communication, control, computing)功能的C3核心设备[3]。
天线(antenna)是RFID标签和读写器之间实现射频信号空间传播和建立无线通讯连接的设备。RFID系统中包括两类天线,一类是RFID标签上的天线,由于它已经和RFID标签集成为一体,因此不再单独讨论,另一类是读写器天线,既可以内置于读写器中,也可以通过同轴电缆与读写器的射频输出端口相连。目前的天线产品多采用收发分离技术来实现发射和接收功能的集成。天线在RFID系统中的重要性往往被人们所忽视,在实际应用中,天线设计参数是影响RFID系统识别范围的主要因素。高性能的天线不仅要求具有良好的阻抗匹配特性,还需要根据应用环境的特点对方向特性、极化特性和频率特性等进行专门设计[4-7]。
中间件(middleware)是一种面向消息的、可以接受应用软件端发出的请求、对指定的一个或者多个读写器发起操作并接收、处理后向应用软件返回结果数据的特殊化软件。中间件在RFID应用中除了可以屏蔽底层硬件带来的多种业务场景、硬件接口、适用标准造成的可靠性和稳定性问题,还可以为上层应用软件提供多层、分布式、异构的信息环境下业务信息和管理信息的协同。中间件的内存数据库还可以根据一个或多个读写器的读写器事件进行过滤、聚合和计算,抽象出对应用软件有意义的业务逻辑信息构成业务事件,以满足来自多个客户端的检索、发布/订阅和控制请求。
应用软件(application software)是直接面向RFID应用最终用户的人机交互界面,协助使用者完成对读写器的指令操作以及对中间件的逻辑设置,逐级将RFID原子事件转化为使用者可以理解的业务事件,并使用可视化界面进行展示。由于应用软件需要根据不同应用领域的不同企业进行专门制定,因此很难具有通用性。从应用评价标准来说,使用者在应用软件端的用户体验是判断一个RFID应用案例成功与否的决定性因素之一。
2. SL031模块及硬件设计
⑴SL031模块的主要特征
SL031通过UART接口来S3C2440的UART接口通信,SL031的主要特征如下:
图1
⑵SL031的引脚描述
图2
⑶CPU和SL031模块的连接
TXD1/GPH4----------->RX
RXD1/GPH5----------->TX
GPF2----------->Out
GPF3----------->IN
3.WINCE下的控制代码
因为CPU的UART1的TX及RX和SL031的RX及TX连接,所以就需要用到串口驱动来读取SL031获得标签的内容,也可以用串口驱动通过SL031来写数据到标签中,在这里SL031是读写器。
根据图2的描述,SL031的out引脚在检测到标签进来的时候,out引脚输出低电平;而在检测到标签离开的时候,out引脚会输出高电平,这样我们可以使用GPF2的中断功能来检测标签进来或者离开,然后再做相应的动作。我们的设计思想是由驱动检测到标签进来还是离开,然后通过event的方式告诉应用程序,再有应用程序通过串口驱动的接口来读写标签的数据,相应的处理代码如下:
⑴增加中断逻辑号
图3
⑵GPF2-àOUT初始化为双跳变沿触发
图4
⑶中断ISR处理函数OEMInterruptHandler中添加的内容
图5
⑷中断使能,关闭和结束函数的代码:
OEMInterruptEnable函数的代码如下:
图6
OEMInterruptDisable函数的代码如下:
图7
OEMInterruptDone函数的代码如下:
图8
⑸RFID标签检测线程IST所需要用到的event
图9
⑹RFID标签检测线程IST
图10
让SL031模块进入power down模式的命令
图11