APP下载

通用高频RFID终端的设计

2010-03-24蔡鹏鹏孙玲玲汪大卓

关键词:读卡以太网标签

蔡鹏鹏,孙玲玲,汪大卓

(杭州电子科技大学射频电路与系统教育部重点实验室,浙江杭州310018)

0 引言

日常生活和生产中最常见的RFID技术是高频RFID技术的应用,如公交IC卡、二代身份证、数字门票等均是采用了高频RFID技术[1]。但是目前国内外的高频RFID均必须通过专门的方法进行定制,每一个应用都必须从硬件到软件进行大的改动。因此,设计一个用于高频RFID的读卡器,并使其具有易二次开发的特性显得十分有意义。本设计给RC522添加以太网作为接口设备,辅助以无线网络进行通信,以达到通信通路的通用性。并规范以太网、无线网络的信息包及采用实时操作系统使RFID终端具有通用性的特点。上层软件只需要根据给定的数据协议即可操作RFID读卡器,可以将上层软件的开发和底层硬件开发分离开来,开发实际项目时能将更多的注意力放在完善应用软件和数据库上,以此提高开发效率。

1 硬件结构设计

为了达到通用性的目的,本设计使用模块化的电路设计方法,即将整体的读卡设备分为各个子功能的小模块,以便在不同应用需求的环境下进行配置变更。总体可以分为:(1)读卡模块;(2)以太网通信模块;(3)无线通信模块;(4)主控单元及LCD显示屏。系统框图如图1所示:

图1 系统总体框图

本系统的主控芯片是采用ARM核心Cotex-M 3的STM32F103ZET6。读卡模块使用NXP公司生产的符合ISO/IEC 14443A[2]协议的控制芯片MFRC522。使用该芯片可以在外加极少元件的情况下,得到一个稳定的RFID读卡模块,这一读卡模块通过I2C总线与主控单元进行通信。无线模块采用TI公司的CC1101芯片,该芯片可以工作于315/433/868/915MHz[3],在这个系统中将其工作频段配置为433MHz。以太网模块采用Davicom公司的DM 9000A。DM 9000A是PHY层驱动芯片,符合IEEE 802.3x规范要求,全双工工作于10/100M带宽。以上模块在必要时,可以将单独一个模块卸下,更换成另外的模块,只需要在操作系统中的驱动部分进行更改即可。这里简要对核心的RFID读卡模块进行分析[4],如图2所示:

图2 RFID读卡模块电路图

MFRC522通过TX 1和TX 2管脚提供信号输出,并提供能量驱动天线工作。27.12MHz的晶体振荡器与两个15pF的电容构成MF RC522的本地振荡器,经过MF RC522内部二分频以后得到13.56MHz的载波频率。通过主控电路对MFRC522进行配置以后,MFRC522将根据寄存器的配置信息对发射数据进行基带编码与调制,然后使用本地振荡器进行上变频,进而通过TX1和TX2管脚驱动天线发射信号。其中L0、C0、C1组成的串联谐振电路的振荡频率为:

该频率即为高频RFID的工作频段。RFID标签在收到读卡模块的发射信号以后,通过射频场的负载调制进行响应。天线绕组本身的电感与C2a、C2b构成接收的谐振网络,对RFID标签的回波进行选频接收。读卡模块的天线拾取信号后,经过C3、R1组成的天线匹配电路送到RX管脚。MF RC522内部接收器对信号进行检测和解调并根据寄存器的设定对信号进行处理。最后数据通过通信接口由微控制器进行读取。

2 软件结构设计

本系统的软件设计要点:一个是采用了实时操作系统,需要合理划分设备驱动层与应用层的代码结构,以实现系统面向应用的通用性,而不必由于硬件的更改重写大部分代码;另一个则是设计一套Socket的通信规范,实现板极开发与数据库开发相分离的通用性设计。

2.1 实时操作系统RT-Thread

RT-Thread是一款国内的开源实时操作系统,由非盈利的专业人员开发维护[5]。RT-Thread有STM32系列ARM处理器上的移植分支。对应用开发来说,RT-Thread具有一个稳定的全抢占式的实时操作系统内核;另外RT-Thread的0.3.0版本内嵌LwIP协议,可以直接使用BSP Socket套接字进行TCP/IP开发。

采用了RT-Thread之后,系统的软件功能实现就可以分层了,这里以以太网Socket客户端应用功能的分层实现为例简单说明,分层结构如图3所示:

图3 系统的软件分层结构

这里的最底层是实时操作系统的内核,已经由所选择的操作系统给定。

设备驱动层是联系硬件与上层标准协议实现、应用代码开发的纽带,这一层用于硬件的代码封装,使不同的硬件可以由同样或者相近的接口进行控制与通信。因而改变硬件模块时,只需要改变这一层内相应的驱动代码。协议实现层用于系统的标准化编程,即对于已经有规范的协议,如TCP/IP协议族,可以在这一层进行代码封装,则对于上一层的应用处理层来说,能够直接使用协议规定的标准函数进行代码编写。应用处理层则是处理用户自定义应用的分层,所有逻辑判断,如输入状态判断和控制状态改变等都在这一层实现。

2.2 通用终端Socket通信规范

通用终端Socket通信规范是指通过Socket传输的数据流所具有的,适应通用RFID终端数据的一套自定义通信格式。

本系统是一个通用的高频RFID终端,传输数据方向分为出终端与入终端两种。出终端的数据包含RFID标签号及终端状态,这里将这两种信息统称为读卡信息(Card Info);入终端的数据则可以有多种,主要由应用环境对应的数据库来决定,一般为标签号对应的用户ID、用户姓名、通知信息、状态改变中的一个或几个的组合,这里将这一部分的信息统称为返回信息(Back Info)。数据帧格式如表1所示:

表1 终端数据帧格式

SOF:数据帧头,这里定义其值SOF=0xAA,表示一段数据流的开始。

LENGTH:帧长度,其值为数据帧中除去最末CRC16的两个字节以外的数据帧字节数(包括LENGTH自身两个字节)。

CMD:控制命令字,根据应用的要求赋予不同值以不同意义。例如,当入终端数据帧的CMD=0x01时,表示整个数据帧是对一个RFID标签号的数据库查询请求的空响应,该空响应表示读卡终端读取的RFID标签号未在数据库中登记。

Info:信息,当数据帧为出终端数据帧时,Info即为Card Info;当数据帧为入终端数据帧时,Info即为Back Info。这里的Info是某一命令或者响应的参数,如上面的例子,一个错误响应有时候需要一些提示,如“RFID标签未登记,请在数据库中加入该标签”。这时候的提示就可以放在Info中进行传输。

CRC16:16位CRC校验码,对以上几个部分的数据进行CRC计算之后得到的校验码,便于终端和数据库进行数据正确性检测,以应对可能的通信数据错误。

通过给固定的数据段值以固定意义,可以快速地根据应用环境需要调整终端的功能。

3 结束语

采用硬件模块化与软件分层的方法,设计了一种通用高频RFID终端,该终端支持ISO/IEC 14443A协议的高频RFID标签,无线通信的有效距离为50m,有效读卡距离达到5cm,以太网接口速度在netio测试下达到平均接收645kByte/s、平均发送960kByte/s的速度,一个有线节点最大可以支持20个无线节点。系统参数可以满足大多数的应用要求。使用这种结构的高频RFID终端,已经成功在一个实际项目中应用。

[1] Klaus Finkenzeller.射频识别(RFID)技术[M].北京:电子工业出版社,2001:6-10.

[2] International Standard.Identification cards——Contactless integrated circuit(s)cards——Proximity cards——Part 1:Physical characteristics[EB/OL].http://webstore.iec.ch/preview/info_isoiec14443-1%7Bed2.0%7Den.pdf.2010-04-22.

[3] Texas Instruments.CC1101 Datasheet[EB/OL].http://focus.ti.com/lit/ds/sw rs061f/swrs061f.pd f,2010-05-06.

[4] 韩爱丽,李亚.基站芯片RC522的14443A读卡器设计[J].单片机与嵌入式系统应用,2006,(12):35-40.

[5] RT-Thread工作室.RT-Thread实时操作系统编程指南版本0.3.0[EB/OL].http://www.rt-thread.org/download/RTThread.pdf,2010-03-18.

猜你喜欢

读卡以太网标签
煤矿井下车辆乘人防漏识别读卡基站设计
智能会议预约终端内置读卡器性能的改善*
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
谈实时以太网EtherCAT技术在变电站自动化中的应用
标签化伤害了谁
一种90W高功率以太网供电系统的设计
科学家的标签
浅谈EPON与工业以太网在贵遵高速公路中的应用