RFID中间件关键模块的研究与实现

时间:2022-08-15 01:05:58

【摘要】(College of Computer Science & Technology, Civil Aviation University of China, Tianjin 300300, China) Abstract: RFID(Radio Frequency Identification) middleware is the i...

RFID中间件关键模块的研究与实现

摘要:rfid(无线射频识别)中间件是介于前端读写器与后端数据库和应用软件之间的重要环节。该文对RFID中间件的相关概念做了介绍,研究和设计了RFID中间件的关键模块,实现了RFID中间件的数据读取和分发、数据过滤和聚合、读写器控制等功能。

关键词:RFID;中间件;读写器;标签;数据过滤

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)34-9846-02

Research and Realization of RFID Middleware Key Part

LI De-xing LI Guo

(College of Computer Science & Technology, Civil Aviation University of China, Tianjin 300300, China)

Abstract: RFID(Radio Frequency Identification) middleware is the important part which between the reader and database or application. Introduces the conception of RFID middleware, disscusses and designs its key part, accomplishes its function,such as data reader and send,data filter and gather, reader control.

Key words: RFID; middleware; reader; tag; data filter

无线射频识别(Radio Frequency Identification,RFID)技术是一种自动识别和数据获取技术[1]。它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。

RFID技术具有广泛的应用前景。近年来,RFID产品广泛的应用于社会、经济、国防等领域,在物流与供应链管理、防伪和安全控制、交通管理与控制、生产管理与控制等方面发挥重要作用。在汽车防盗系统、不停车收费系统、门禁系统、航空行李运输、图书管理等系统中都有着很重要的影响力。

RFID中间件扮演RFID标签和应用程序之间的中介角色,从应用程序端使用中间件所提供一组通用的应用程序接口(API),即能连到RFID读写器,读取RFID标签数据[2]。引入RFID中间件后,即使存储RFID标签信息的数据库软件或后台应用程序发生改变或者系统升级,或者RFID阅读器种类增加等情况发生时,应用端软件不需要修改也能处理,减少了程序的二次开发问题,节省了人力和物力,提高工作效率。

1 相关技术

1.1 RFID技术简介

RFID是Radio Frequency Identification的缩写,即射频识别。常称为感应式电子晶片或近接卡、感应卡、非接触卡、电子标签、电子条码,等等。RFID射频识别是一种非接触式的自动识别技术,最基本的RFID系统由三部分组成[3]:标签(Tag):由耦合元件及芯片组成,每个标签具有唯一的电子编码,附着在物体上标识目标对象;阅读器(Reader):读取(有时还可以写入)标签信息的设备,可设计为手持式或固定式;天线(Antenna):在标签和读取器间传递射频信号。

RFID系统在实际应用中,电子标签附着在待识别物体的表面,电子标签中保存有约定格式的电子数据。阅读器可无接触地读取并识别电子标签中所保存的电子数据,从而达到自动识别物体的目的。阅读器通过天线发送出一定频率的射频信号,当标签进入磁场时产生感应电流从而获得能量,发送出自身编码等信息,被读取器读取并解码后送至电脑主机进行相关处理。

RFID产业潜力无穷,应用的范围也越来越广,遍及制造、物流、医疗、航空、零售等等。

1.2 RFID中间件简介

RFID中间件是一种面向消息的中间件(Message-Oriented Middleware,MOM),信息(Information)是以消息(Message)的形式,从一个程序传送到另一个或多个程序[4]。信息可以以异步(Asynchronous)的方式传送,所以传送者不必等待回应。面向消息的中间件包含的功能不仅是传递(Passing)信息,还必须包括解译数据、安全性、数据广播、错误恢复、定位网络资源、找出符合成本的路径、消息与要求的优先次序以及延伸的除错工具等服务。

RFID中间件可以从架构上分为两种:以应用程序为中心(Application Centric)的设计概念是通过RFID Reader厂商提供的API,以HotCode方式直接编写特定Reader读取数据的Adapter,并传送至后端系统的应用程序或数据库,从而达成与后端系统或服务串接的目的。以架构为中心(Infrastructure Centric),随着企业应用系统的复杂度增高,企业无法负荷以HotCode方式为每个应用程式编写Adapter,同时面对对象标准化等问题,企业可以考虑采用厂商所提供标准规格的RFID中间件。这样一来,即使存储RFID标签情报的数据库软件改由其他软件代替,或读写RFID标签的RFID Reader种类增加等情况发生时,应用端不做修改也能应付。

RFID中间件在企业应用中的位置如图1所示。

目前国内外已经有一些公司着手进行RFID中间件的开发[5],国际上的IT巨头,如IBM,Microsoft,BEA,Syabse等都已经或即将RFID中间件系统。目前国内对RFID中间件以前期研究为主,产品开发比较少,已经的产品在适用性和成熟度上也存在一定的问题。

2 RFID中间件关键模块的设计

2.1 RFID中间件功能定位

RFID中间件在实际应用当中主要起到数据的处理、传递和读写器的管理等功能。通过对RFID系统的分析,RFID中间件应具备以下几个功能[4]。

2.1.1 数据读出和写入

目前市场上的电子标签,不但存储标识数据,有的还能够提供用户可进行自定义读写操作的附加存储器。当网络因某种原因失效时,通过读取附加存储器的内容仍能够获得必要的信息。RFID中间件应提供统一的API,完成数据的读出和写人工作。中间件应提供对不同厂家读写设备的支持、不同协议的设备支持,实现应用对设备的透明操作。

2.1.2 数据的过滤和聚合

读写器不断地从Tag读取大量的未经处理的数据,一般来说应用系统并不需要大量的重复数据,数据必须进行去重和过滤。不同的应用需要取得不同的数据子集,例如:装卸部门的应用只关心包装箱的数据而不关心包装箱内件的数据。RFID中间件应能够聚合汇总上层应用系统定制的数据集合。

2.1.3 RFID数据的分发

RFID设备读取的数据,并不一定由某一个应用程序来使用,它可能被多个应用程序使用(包括企业内部各个应用系统甚至是企业商业伙伴的应用系统),每个应用系统可能需要数据的不同集合,中间件应能够将数据整理后发送到相关的应用系统。数据分发还应支持分发时间的定制,例如:应立即将读取的RFID数据传送到生产线控制系统以指导生产、在整批货物处理完成后再将完整的数据传送到企业合作伙伴的应用系统中、每天业务处理完成后再将当天的全部数据传送到决策支持系统等。

2.1.4 数据安全

RFID的使用往往在不为人所知的地方,在家用电器上、服装上甚至是食品包装盒上也许都嵌人有RFID芯片,在芯片的内部保存着ID信息,也许还有其他的附加信息,一些别有用心的人也许能够通过收集这些数据而窥探到个人隐私。RFID中间件应该考虑到用户的这些担心,并在法律法规的指导下进行数据收集和处理工作。

2.2 系统关键模块的设计

2.2.1 数据的过滤和聚合

过滤机制包括去重复,事件过滤,标签码过滤。

去重复是指一定时间内认为某一标签只被读到一次。本系统中采用的过滤算法是:假设读到的标签数据表示为(ReaderID,TagID,Time,TagData),其中ReaderID是阅读器的逻辑ID,TagID是标签的唯一ID号,Time是读取时间,TagData代表读取到的标签所携带的信息。构造一个链表,当有新标签到来时,将该标签的TagID插入到链表中,当读到下一个TagID时,在链表中查找是否存在,如果不存在,就认为是新的标签,将其插入链表;如果存在,检查两者的时间差,如果小于事先设定的时间间隔,就认为是重复标签,只需要更改链表中该标签的Time, 不需要将其插入链表。

处理流程如图2所示。

事件过滤,当该标签是刚刚进入读写区域读到一个标签的TagID时,就认为这个标签发生了到来事件;当在一定时间内没有读到已经通过读写区域的标签时,就认为该标签离开。

采用算法是构造链表A,B和C,链表A存储读到的标签的TagID,链表B存储发生到来事件的行李标签号TagID,链表C存储发生离开事件的行李标签号TagID。如果有新读到的标签,将其插入链表链表A和B,继续读取,进行去重复操作,定时遍历链表A,如果在这段时间TimeIn内某个标签的读取时间未被更新,就代表该标签已经离开,标签发生离开事件,在链表C中存储该标签,在链表A中删除该标签。

处理流程如图3所示。

标签码过滤,根据应用系统所需要查找的标签的TagID,在各个读卡器的阅读范围内搜索该标签。

2.2.2 读卡器设备的控制

不同读卡器的控制问题,是RFID中间件需要解决的另一个关键性问题。不同厂商生产的读卡器,虽然可能是遵循了同一个协议标准,但是他们的指令格式不同,卡片存储区大小划分不同,同一个上层应用软件使用时要求对读卡器的操作是透明的,上层应用软件不需要知道现在控制的读写器是那种读写器,它的指令格式是怎样设计的,上层应用软件只需要从中间件那里得到自己所需的数据,或者说中间件接收到上层应用软件的命令请求后,把上层软件需要的数据发送过去就行。不管是添加了新的读卡器,或者更换了读卡器,RFID中间件也能很好的进行控制操作,上层软件不需要进行什么改动就可以获取数据。

本文设计的解决方法:

将读卡器抽象成一个类,读卡器类的成员变量和成员函数如下:

Class Reader{

Public:

int ReaderID;//读卡器ID号

int ReaderIP; //读卡器IP

int ReaderComm;//选用的串口号

int ReaderBoud;//波特率

bool ConnectReader(int);//连接读写器

bool Close(int);//关闭连接

bool ReadEPC(CString&);//读EPC码

}

当发出读写命令后,根据读卡器的ID号,查找对应该读卡器类型的API函数,进行操作。

4 结论

RFID中间件技术成功的将RFID数据采集与业务处理分离,是应用系统可以不必关心底层数据如何到来,能够更好的完成业务的流程和处理。经过测试,系统运行良好,标签识别率高,基本实现了RFID中间件的功能。

参考文献:

[1] 蒋邵岗,谭杰.RFID中间件数据处理与过滤方法的研究[J].计算机应用,2008,10.

[2] 范文兵,曹晓光,陈燕,等.RFID中间件的标准化与实现方法[J].单片机与嵌入式系统应用,2008,1.

[3] KlausFinkenzeller[德]著.吴晓峰陈大才译射频识别技术[M].北京:电子工业出版社,2006.

[4] 吴正大,魏俊荣,张继新.RFID中间件设计技术初探[J].邮电设计技术,2006,8.

[5] 谭民,刘禹,曾隽芳.RFID技术系统工程及应用指南[M].北京:机械工业出版社,2007,4.

上一篇:校园网格平台的研究 下一篇:基于VB程序和SQL Server数据库的多条件模糊查...