1、数据过滤在 RFID 中的应用 杨军 陈东升 重庆师范大学涉外商贸学院 摘 要: 笔者简单阐述了无线射频识别 (RFID) 系统的基本组成以及 RFID 中间件的功能, 针对 RFID 大规模应用中数据海量的特点, 首先分析了如何利用哈希表有效过滤数据的算法, 然后在 Linux 系统采用 C+语言, 在 QT SDK 环境实现了该算法, 实践证明, 该算法可以大幅降低数据冗余度, 提高系统处理效率。关键词: 无线射频识别; 中间件; 数据过滤; 哈希表; QT; 作者简介:杨军 (1979-) , 男, 湖北宜昌人, 硕士研究生, 讲师 (通讯作者) 。研究方向:物联网数据处理、嵌入式编程。
2、E-mail:。基金:重庆师范大学涉外商贸学院校级科研项目 (项目编号:KY2016002) Application of Data Filtering in RFIDYang Jun Chen Dongsheng Chongqing Normal University Foreign Trade and Business College; Abstract: The author briefly discusses the basic composition of radio frequency identification (RFID) system and function of RFI
3、D middleware. According to the characteristics of RFID data in large-scale application of massive, this paper first analyzes how to use hash table to filter the data effectively, and then uses C+ language in the Linux system, realizes the algorithm in the QT SDK environment. Practice has proved that
4、 this algorithm can greatly reduce data redundancy, improve system efficiency.Keyword: radio frequency identification; middleware; data filtering; hash table; QT; 1 物联网概述物联网, 目前没有一个统一的定义, 一种通俗的认识是指在现有互联网的基础上, 利用 RFID 射频识别、各类传感器、全球定位系统等技术在各类数据通信手段的支持下, 按照约定的协议, 把任何物品与互联网连接起来, 进行信息交换和通讯, 以实现智能化识别、定位、跟
5、踪、监控和管理的一种网络。从技术架构方面来说, 物联网整体架构由三部分组成, 分别是感知层、网络层和应用层。感知层由各种传感器和传感器网关构成, 包括各种类型传感器、二维码标签、RFID 读写器和标签、GPS 等设备。感知层的作用是识别物理世界的物体和采集数据。网络层由互联网、有线网络和各种无线网络等组成, 其作用是对感知层采集的数据进行传递和处理。应用层给用户提供了相关接口, 用户可以利用这些接口对网络层传递的数据进行处理。从而实现丰富的物联网应用, 包括智能医疗、智能物流、智能家居、食品追溯、环境监测等。2 RFID 技术物联网应用中非常关键的技术之一就是 RFID 技术。RFID, 即无
6、线射频识别技术, 是一种通过无线射频方式进行自动识别的技术, 通过 RFID 技术可以获取大量、准确且有价值的数据。RFID 技术的优点是非接触式、不用人工干预、适合各种环境等。近年来, 随着应用成本急剧下降, 该技术必将被广泛应用于各行各业。RFID 的核心部件是阅读器和电子标签。阅读器的主要功能是读写电子标签, 是 RFID 系统的核心部件。每个阅读器都配有不同根数的天线, 天线发出电磁波, 形成磁场, 当电子标签进入磁场范围内, 获得能量, 发出反馈信息给阅读器。电子标签是 RFID 系统的数据载体, 具有唯一的电子编码, 附着在物体上以标识目标对象。根据标签是否配有电源, 电子标签分为
7、有源标签和无源标签。有源标签自备电源, 能主动发送信号。无源标签没有电池, 只能被动地从阅读器获取能量。由于价格原因, 通常使用无源标签。阅读器依序接收与解读标签发送的数据, 送给 RFID 中间件进行处理, 最终交付给应用程序使用。3 RFID 中间件RFID 中间件扮演着 RFID 硬件和应用程序之间的中介角色, 是联系两者的桥梁和纽带。在应用程序端, 通过使用中间件所提供的一组通用应用程序接口 (API) , 就能实现与 RFID 读写器的连接。借助 RFID 中间件技术, 可以大大降低系统开发复杂度和系统的维护成本。图 1 为一个典型的 RFID 系统结构图, 主要由设备管理层、数据处
8、理层和应用接口层组成。中间件系统在实际应用中主要实现数据的采集、过滤、封装和转发、管理读写器设备和为上层提供应用接口等功能, 是整个 RFID 系统的运行支撑平台, 其作用非常大。图 1 RFID 中间件基本组成 下载原图4 冗余数据过滤在物联网应用中, 物品上粘贴的电子标签, 可以用来识别和跟踪物品的生产、运输和销售等过程。然而由于 RFID 技术本身的特性, 阅读器将不断收到一连串的电子产品编码, 这样就会造成在短时间会产生大量的数据。在这些数据中, 由于环境的影响和射频技术本身的一些特点, 会造成多读、漏读、重复读数据等现象, 而且有些数据的有效利用率非常低, 这些都会制约 RFID 技
9、术应用进一步发展。为了能够筛选出有效数据、大幅降低数据冗余度、提高系统处理效率、将有用信息传递给上层应用, 以过滤器为基础构建了一种数据过滤模型。4.1 冗余去除算法冗余去除算法, 主要使用到了一个时间容忍度参数 T, 用以对数据进行平滑, T的粒度随着 RFID 应用的不同而随时改变。如果同一编码的两个读数的时间之差在 T 之内的话, 则可以合并时间戳。否则的话, 就认为是一个新的读数, 重新计算标签的时间戳。设置标签数据的数据结构:在本算法中为了降低算法的时空复杂度, 利用哈希表来保存标签数据, 具体步骤如下。步骤 1:建立一个数据缓冲队列, 用于存储阅读器发送过来的 RFID 标签数据。
10、步骤 2:建立一个哈希表, 用于存储无重复的 RFID 标签数据, 初始化时为空。步骤 3:从数据缓冲队列中取数据, 然后在哈希表中匹配数据 tag ID。步骤 4:如果 tag ID 没有出现, 则将此数据加入哈希表。步骤 5:如果此 tag ID 已出现 (为方便描述, 将原有相同 tag ID 数据项称为old Tag, 新数据项为 new Tag) , 则比较 new Tag.read Time、old Tag.read Time 两者时间差值, 看是否在设定的时间范围 T 之内, 若是则丢弃此标签数据, 否则添加新的数据项到哈希表。步骤 6:重复步骤 3、4、5, 直到所有标签信息被
11、处理。算法处理流程图如图 2 所示。图 2 数据过滤流程图 下载原图5 算法实现与实验验证软硬件环境如下。数据采集:900 MHz 阅读器以及标签。数据处理:PC (x86 平台) +Linux。数据传输:串口通信 (波特率:9 600;数据位:8 位;停止位:1 位;校验位:无) 。开发语言及环境:C+, QT SDK。基本流程:数据处理平台 PC 通过串口, 获取阅读器发送过来的标签信息, 采用上述策略过滤数据, 消除冗余数据, 然后将数据交给上层应用, 从而提高系统效率。5.1 数据接收阅读器的定义:5.2 数据处理标签数据的结构如上所述。过滤算法的具体实施如下:通过实践, 此算法运行正
12、常, 达到预期效果。可以改进的地方为:考虑加入一个输出队列, 按时间先后对标签数据进行排序, 以满足用户的需求。6 结语RFID 的大规模应用会产生海量的数据, 为了减轻系统的负荷, 可以对数据进行过滤处理, 数据过滤算法就是对同一时间段内的同一个标签的数据进行过滤操作。在以上算法设计中, 采用了哈希表来存储标签数据, 来加快查找的速度。实践证明, 大幅降低数据冗余度, 取得较好的效果。参考文献1闫家旻.嵌入式 RFID 中间件的设计与实现D.大连:大连海事大学, 2013. 2董丽峰.RFID 中间件技术在物联网中的应用及研究J.黑龙江科技信息, 2010. 3袁文明.适应 RFID 网络化应用的数据处理技术研究D.上海:上海交通大学, 2010. 4邹恺.嵌入式 RFID 中间件数据处理模块设计与实现D.武汉:华中科技大学, 2009. 5杨孝锋.RFID 中间件平台关键技术研究D.长春:吉林大学, 2009.