射频识别系统的阅读器信息统计单元及统计方法
技术领域
本发明属于射频识别技术领域,尤其涉及一种射频识别系统的阅读器信息统计单元及统计方法。
背景技术
射频识别(RFID,Radio Frequency Identify)系统包括标签和读写器。是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。
射频识别系统包括无源射频识别和有源射频识别,两者的本质区别在标签端。前者标签是从阅读器发射波形中获取能量,后者标签自身有能源供应。
在实际的应用场景中,射频识别系统至少需要包括客户端,阅读器和标签三部分。客户端实现阅读器信息的收集、处理工作,以满足一定的应用场景。阅读器处于客户端和标签之间,其主要流程是接收客户端命令、下发空口命令给标签、收集标签信息、上报标签信息给客户端。
如图1所示,客户端、阅读器和标签三者之间存在a、b、c、d四种信息流。其中信息流a是客户端向阅读器下发的清点、读写等阅读器操作;信息流b是阅读器根据客户端信息流a的要求,向标签下发清点、读写等空口指令;信息流c是标签进行一定的处理后,将操作结果以电磁波的形式返回给阅读器;信息流d是阅读器将收集到的标签信息、天线、协议等阅读器相关信息传递给客户端。目前,信息流d收集到的信息一般由客户端负责处理和统计相关工作,以满足一定的应用场景。
从上面的介绍可以看出,由客户端进行阅读器信息的统计工作,但是实际应用中,多是存在一个项目由不同的厂家合作完成,一个厂家负责提供阅读器识别设备,另一个厂家负责实现客户端。这样在丢失标签情况下,无法成功确认故障是阅读器没有清点到标签还是阅读器上传了标签信息,但是客户端由于操作失误,没有处理标签信息。
如何能够尽快定位阅读器和客户端的故障,统计标签信息,成为本领域技术人员研究的课题。
发明内容
本发明要解决的问题是提供一种在阅读器内部获取标签信息的方法,该方法能够在没有客户端的情况下,获取标签信息;也能和客户端获取的标签信息一起,定位系统故障。
为解决上述问题,本发明采用的技术方案:一种射频识别系统的阅读器信息统计单元,其特征在于:包括启动模块、数据库模块、文件存储模块和定时器模块;启动模块是在开启阅读器信息统计时的初始化模块;数据库模块完成标签信息的查找、创建和删除;文件存储模块创建信息统计控制文件和阅读器信息文件;定时器模块定期删除过期的数据库内存。
利用上述的射频识别系统的阅读器信息统计单元进行信息统计的方法,包括如下步骤:
(A)阅读器上电后阅读器信息统计启动流程:
a.分配哈希链表空间;
b.创建信息统计控制文件;
c.创建信息统计文件;
d.开启数据库超时结点轮循删除定时器;
(B)阅读器信息统计流程:在阅读器识别到标签信息后,根据标签的唯一标识查找数据库,若信息结点不存在,创建信息结点,并保存到文件;否则,若信息结点超出信息结点保活时间,则更新结点创建时间,并将信息保存到文件,若信息结点未超出信息结点保活时间,则只需更新信息结点创建时间;
(C)当轮循删除定时器的定时时间到达时,需要遍历数据库,删除过期的数据库信息结点,释放阅读器内存。
所述过期数据库信息节点为当前时间超过保活时间和结点创建时间之和的数据库结点。
所述步骤(2)中根据标签的唯一标识查找数据库之前需要计算标签哈希关键码值。
所述轮循删除定时器删除过期数据库信息结点流程:
(1)首先需要获取当前系统时间;
(2)遍历哈希表;
(3)若当前时间不大于结点创建时间和保活时间之和,返回(2);若当前时间大于结点创建时间和保活时间之和,表明结点超时,到步骤(4);
(4)删除结点;
(5)重新开启定时器模块。
本发明具有的优点和积极效果是:该方法能够在没有客户端的情况下,获取标签信息;并且仅统计一次,便于和客户端数据信息对比,定位系统故障;该方法能够在断电等外部环境不稳定情况下连续统计阅读器信息,便于定位故障,了解设备性能,并且适用于多种应用场景。
附图说明
图1是射频识别系统信息流框图;
图2是本发明中阅读器信息统计单元所需的各个模块;
图3是本发明给出的阅读器信息统计启动流程图;
图4是本发明给出的阅读器信息统计流程图;
图5是本发明给出的定时器模块轮循删除数据库超时信息结点流程图。
具体实施方式
现根据附图对本发明进行较详细的说明:
参照附图2所示,是本发明中阅读器信息统计单元所需的各个模块,包括四个模块,即启动模块、数据库模块、文件存储模块和定时器模块。启动模块是在开启阅读器信息统计时进行数据库内存分配、文件创建、开启定时器模块(轮循删除超时数据库结点等)初始化工作;数据库模块实现阅读器信息的查找、创建和删除;文件存储模块用来创建信息统计控制文件和阅读器信息文件;定时器模块负责定期删除过期的数据库内存。
参照附图3所示,是本发明给出的阅读器信息统计启动流程图。本发明中通过哈希表查找数据库,哈希表具有查找速度快等优点,适用于嵌入式系统中。所以在启动模块中要根据哈希表长度和阅读器信息结点申请数据库内存,以便保存阅读器信息结点。此外还需要创建两个文件,一个是阅读器信息统计控制文件,用于对阅读器信息文件的管理工作,比如创建信息文件的个数,记录信息的总大小,当前操作的信息文件标识等信息。通过信息统计控制文件,可以不受外部环境影响(比如阅读器断电)连续统计阅读器信息,还可以知道已经统计的信息文件总大小,在阅读器内存有限时,便于停止信息统计。另一个文件是阅读器信息文件,用来记录标签的EPC码、清点到该标签的时间、天线、协议、操作结果等信息。这些信息可以由用户自己根据应用场景设置。最后要开启信息统计数据库超时结点轮循删除的定时器模块,以便定时删除超时的数据库结点,释放阅读器内存。
参照图4所示,本发明给出的阅读器信息统计流程图。当阅读器识别到一个标签时,首先需要获取该标签的唯一标识,该唯一标识可以是标签的epc码,也可以是标签其他存储区中唯一标识该标签的内容。进行如下处理:
(1)根据唯一标识计算哈希表的关键码值。
(2)根据关键码值查找哈希结点是否存在,若不存在进入(3),否则进入(4)。
(3)创建哈希结点,插入哈希表;
(4)获取当前系统时间,若当前时间大于结点创建时间和信息保活时间之和,表明数据库结点超时,需要删除该结点,只需更新结点创建时间即可,此外还需要将阅读器信息保存到文件中。
(5)若当前时间不大于结点创建时间和信息保活时间之和,表明之前已经记录该标签的相关信息,无需重复记录,只需要更新结点的创建时间即可。
参照图5所示,是本发明给出的定时器模块轮循删除数据库超时信息结点流程图。当数据库轮循删除超时结点定时器到时,需要删除已经超时的数据库结点。因为这些结点已经没用了,但是还在占用阅读器内存,若不删除会浪费阅读器内存,杀死系统进程。进行如下处理:
(1)首先需要获取当前系统时间;
(2)遍历哈希表;
(3)若当前时间不大于结点创建时间和保活时间之和,返回(2);若当前时间大于结点创建时间和保活时间之和,表明结点超时,到步骤(4);
(4)删除结点;
(5)重新开启定时器模块。
以上对本发明的实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明范围所作的均等变化与改进等,均应仍归属于本专利涵盖范围之内。