上层服务接口将经过过滤和组装的RFID数据向上层应用软件发送,以实现更为丰富和贴近现实的功能。
2 RFID数据过滤方法设计
2. 1 现有数据过滤方法及问题分析
从硬件上报的原始RFID数据量非常巨大,根据具体的配置不同,每台读写器每秒可以上报数个至数十个不等的标签数据,但其中只有少部分是对用户有意义的、非重复性的数据,这样大量的数据如果不经过去冗等处理而直接上传,将会给整个RFID系统带来很大的负担。 所以,对RFID数据过滤方法的研究在近几年一直是个热点。
现有过滤方法主要可以分为如下几类:
1) 建立事件列表类. 对每一个新到标签数据进行检测,如果是新标签加入相应列表中,且该标签在列表中已存在,则仅更新对应标签的时间等状态数据,而不新建标签数据记录,以达到去除重复信息的作用。
2) 事件编码类. 对标签状态的改变进行编码,标签出现编码为0,标签消失编码为1. 然后加入计时器机制,对计时器有效时间内的同一标签的状态跳变进行忽略,从而在状态定义和时间维度2个方面对数据进行了去重化。
这些算法均能够很好地消除冗余数据,减少了上层系统的负荷,有着较好的过滤效果. 但在实际应用中,除了RFID数据的去冗化以外,对数据的过滤还有着其他的需求. 比如,由于信号不稳定或其他干扰因素,货架上物品的RFID标签并不能在每一个读写器周期中被检测到;或者当顾客推着小推车从货架旁走过时,其推车内已选购的商品被货架内的读写器误读到。本文中将类似的无效RFID数据称为RFID噪点。
在上述几类过滤算法设计中, RFID噪点显然不是一个被考虑到的因素,只要出现了RFID 标签,哪怕只是误读到一次,也会被作为一个事件数据进行上传。如果上层业务规则过滤模块没有对这些噪点数据进行处理,则会产生一些莫须有的事件记录,对整个系统的数据管理造成很大麻烦,但上层业务规则过滤模块对噪点的发现和抑制显然是一件很难的事情,因为数据采集细节已经被RFID数据过滤模块完全屏蔽掉了,对噪点的发现失去了最基本的依据。
2. 2 带噪点抑制功能的RFID数据过滤方法设计
RFID标签数据由读写器在每个报告周期reportcycle进行上报,在经历多个报告周期之后,一个典型的RFID读写器上报数据如图2所示。
将在报告周期中出现的RF ID标签编码为1,未出现的编码为0,则对每一个标签,其事件可以记录为一个01序列串. 对图2而言: tag1可编码为0001111000,表示标签通过了读写器范围; tag2可编码为1111100000,表示标签离开了读写器范围;tag3可编码为0000001111,表示标签进入并停留在读写器范围中. 对tag4和tag5而言,它们出现了噪点数据, tag4也许不应该出现在读写器范围内,而tag5根本就没有离开。根据实际情况, RF ID噪点可分为1噪点和0噪点2类,前者表示非读写器范围内的标签被偶尔读到,如tag4;后者表示处于读写器范围内的标签偶尔没有被读到,如tag5. 按照传统的过滤算法, tag5 将产生一个通过事件,tag4将产生2个离开事件和2个进入事件。