面向复杂事件处理的RFID引擎设计与实现
RFID技术是利用无线电波自动识别人或者物的技术。该系统一般由电子标签、数据管理系统和读写器三部分组成,准确地获取RFID的数据是射频识别系统的关键。
目前,RFID技术仍然发展不成熟,尤其是在事件处理方面存在如下缺陷:一方面,来自阅读器的标签信息数据量太大,并且包含过多的冗余数据,降低了事件处理的效率;另一方面,标签所包含的语义信息过于简单,无法被上层应用软件直接使用;再者,利用无线电波频率自动识别,当现场电子标签过多时,RFID识别的准确性与读取速度会明显下降。RFID中间件在事件处理方面仅仅利用平滑过滤算法对标签数据做简单的平滑处理,随后将处理后的标签数据上传给应用层,这种情况在数据量小的情况下可以满足一定的需求,可是RFID大部分的应用环境所面对的都是海量的数据,因此传统的事件处理方法大大增加了上层应用软件的负担,使其数据处理效率急剧下降,不能满足现实的需求。因此,在复杂事件情况下,如果把数据处理部分由RFID引擎(即读写器系统)在进入之前就由应用软件来完成,是一个理想的选择。
1 复杂事件处理概念
复杂事件处理(Complex Event Progressing)技术是20世纪90 年代中期由斯坦福大学的David Luckham教授提出是一种新兴的基于事件流的技术,它将系统数据看作不同类型的事件,通过分析事件间的关系(成员关系、时间关系、因果关系以及包含关系等)建立不同的事件关系序列库(即规则库),再利用过滤、关联、聚合等技术由简单事件产生高级事件。在研究构建RFID引擎时,先进行定性的理论模型的研究。
从复杂事件定义中可以看出在发生复杂事件情况下正确快速的电子标签是一个十分值得研究的课题。短距离的RFID读写器与电子标签一般是一对一读写设计,即短距离的RFID读写器在设计中只允许一次读一个电子标签,当近距离有多个电子标签时,读写器不能工作。对于长距离的RFID读写器,如在半径30 m距离范围内,其RFID读写器的检测电子标签最好不要超过30个,如果再考虑交集域,则所读电子标签就更多,这种情况下要准确读取电子标签,就必须要制定通信协议,使范围内的电子标签能按顺序、准确无误地逐一读写。
2 复杂事件处理的RFID引擎设计
2.1 设计总体思想
在复杂事件下,RFID引擎设计分为两大部分:一是发射及接收部分,另一个是读写控制与通信部分。
发射及接收部分的作用是:(1)产生无线发射的能量;(2)对发射的信号进行调制;(3)接收并解调来自射频的电子标签的信号并进行存取。
读写控制与通信部分的作用是:(1)能完成与应用系统上位机通信,并执行上位机指令;(2)控制与电子标签的通信过程;(3)完成信号的编码、解码;(4)执行信号安全加密、解密及各种算法,进行电子标签、RFID引擎设计及一般阅读器身份认证。
除此之外,还应考虑产品的小型化、低成本、多功能多数据接口问题,以及发射、接收制式、波段的兼容等问题。
2.2 关于引擎设计
读取电子标签的准确与否,首先取决于系统结构的优劣。
本设计的通信结构包括:
(1)物理层。只完成信息的准确交互,不进行任何信息的检测、校正。
(2)网络层。保存最新的节点地址表,包括物理地址和虚拟地址。
(3)传输层。决定通信节点和完成节点的多次握手,建立通信、信息的打包并交付下层进行发送或接收数据。最后,通过网络模块连接PC,并与其信息交互。
建立了可靠的通信后,假如此时要读电子标签的信息,就要在引擎收到标签的确认信息后把下一步收到的标签内容发给PC机;假如此时要写标签的信息,则要在标签发送完确认信息后等待来自读写器的数据包,读写器收到节点的确认信息后发送数据包。由上所述特制定的指令包如表1、表2、表3所示。
2.3 引擎的工作原理
图1所示为引擎工作的方框图。
(1)引擎要求与某个电子标签进行通信,此时引擎发送地址指令包,请求建立通信,数据包中包括读或写等指令信号;(2)电子标签收到地址指令包后,发送自己的标签内容到该引擎;(3)引擎收到电子标签的内容后,再把内容打包发回给该电子标签;(4)该电子标签把收到的内容与自己的标签内容进行比较,如果相同表示两者间的通信可靠,此时发送确认信息;如果不同表示两者通信不可靠,此时发送失败信息并转与上位应用系统、上位PC通信验证;假如重复多次都失败,则引擎向PC机报警。
关于地址表的建立与确定:
创建两个地址表data1和data2用于保存最近两次搜索到的电子标签地址,引擎每搜索一次电子标签地址,便把该地址表轮流保存在data1和data2中并进行排序,搜索完毕后,按新旧地址表的顺序进行比较。此时建立两个执行地址表rundata1和rundata2,如果没有新地址表,而旧地址表的电子标签地址保存在ruandata1中表示该标签移出了检测范围;如果有新地址表,而在旧地址表中没有电子标签保存在rundata2,表示有新标签移进检测范围。最后两个执行地址表的地址分开上传给PC机,并进行报告。
图2所示为面向复杂事件处理的RFID引擎的方框图。
3 设计的实现与效果
硬件实现可以采用自主开发硬件,也可采用已有IC及电子器件构成硬件电路。设计的电路要建立系统模型,开发要符合中国无线频谱规范和RFID通信协议要求。
设计采用高性能射频收发器CC1101,用双51系列MCU,其中一个可通过SPI 接口连接CC1101的主要运行参数并对发送/接收FIFO口进行控制;而另一个与存取、输入设备连接,利用软件控制算法,完成对区域内一定数量电子标签的准确读写。
表4所示是引擎在复杂条件下阅读电子标签的测试结果。
从表4可以看出,引擎识别水平还没有达到在任何时间任何条件下阅读准确度都为100%。这样,引擎的准确度不能得到严格保证,从而信息的出错率就不能降到最低。环境影响、贴标签物品的材质、一次阅读标签的数量都会影响到阅读的精确度。如果RFID不能够提供足够高的信息精确度,其应用无疑不会受到欢迎。针对这种情形,还可以通过设置冗余引擎以及改善阅读流程来提高准确度。