本发明涉及通信
技术领域:
,尤其涉及一种rfid标签数据输出的方法、装置、设备和存储介质。
背景技术:
:目前的随着物联网在各行各业的应用和发展,rfid(radiofrequencyidentification,无线射频识别)技术作为物联网技术的信息终端起到了不可或缺的作用。现有的rfid系统如图1所示,通常包括有电子标签、读写器以及实现电子标签与读写器之间数据通信的天线(读写器天线、电子标签天线),电子标签内存储有一定格式的电子数据,以此作为识别物品的标识信息,应用中电子标签被附在待识别的物品上并作为待识别物品的电子标记,读写器向电子标签发送命令,电子标签根据收到的读写器指令将存储的标识性数据传输给读写器进而实现数据通信,读写器在读取数据并解码后将数据传送至控制设备或者网络进行有关的数据处理。现有技术中rfid系统的管理通常运行依赖电脑上的管理软件,而电脑在不同的使用环境下,存在不同的操作系统,如windowsxp\windowsvista\windows7\windows8\windows10和linux等,管理软件运行在不同系统的环境下,需要不同的应用程序与rfid中间件才能实现对设备的管理和控制,与第三方系统对接时更是需要定制性进行开发。当操作系统升级时,可能存在因升级导致原有应用程序接口变化,导致管理软件不兼容、不工作甚至管理软件崩溃等情况发生,普通的用户处理此类情况,存在较大难度。因此,亟待一种能解决上述问题的方案。技术实现要素:为了解决上述问题,本发明提供一种rfid标签数据输出的方法、装置、设备和存储介质。第一方面,本发明提供一种rfid标签数据输出的方法,包括:按照配置规则查找所对应的电子标签;选定经过防碰撞操作所确认的电子标签;认证上述选定的电子标签;当认证通过时,输出该电子标签的数据。第二方面,本发明提供一种rfid标签数据输出的装置,包括有查找模块、选定装置、认证模块以及操作模块,其中:查找模块用于按照配置规则查找所对应的电子标签;选定模块用于选定经过防碰撞操作所确认的电子标签;认证模块用于认证选定的电子标签;输出模块用于当认证通过时,输出该电子标签的数据。第三方面,本发明提供一种rfid设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的方法的步骤。第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的方法的步骤。采用本发明提供的rfid标签数据输出的方法、装置、设备和存储介质,可以适应不同操作系统环境下,克服现有设备需要不同的管理程序来控制的问题,此外,操作系统升级可能会导致底层接口sdk等变动,致使原有管理程序无法正常工作。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为现有的rfid系统结构图;图2为本发明一示例性实施例中rfid系统及组成;图3为本发明一示例性实施例中rfid读写器与电子标签部件图;图4为本发明一示例性实施例中rfid标签数据读写的流程图。图5为本发明一示例性实施例中rfid标签数据读写的交互图。图6为本发明一示例性实施例中rfid标签数据读写的装置图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请应用在如图2所示例的rfid系统中,rfid系统由电子标签、读写器和终端三部分组成,终端与读写器之间的通信为有线通信,读写器和电子标签之间的通信是无线通信,通信基本流程为读写rom→天线→电子标签→输出。其中,读写器中无线通信通过射频模块完成,射频模块包括有电源装置、射频振荡器、射频处理器、射频接收器、前置放大器。射频振荡器产生信号,通过射频处理器调制发射信号,送往天线发送给电子标签。从电子标签发回的信号,由射频接收器接收并经过放大送往控制模块处理。控制模块负责与应用系统软件进行通信,并且控制读写器和电子标签的通信,是读写器的重要组成部分。控制模块接收应用系统软件发送来的指令,经过信号的编码加密送到射频模块调制经天线发送给标签。对电子标签发来的信号解调、解码、解密传送给应用系统软件。其中,本申请中终端的操作系统包括而不限于windowsxp\windowsvista\windows7\windows8\windows10和linux等操作系统,终端与读写器之间的通信包括而不限于例如usb、ieee1394、thunderbolt、tcp/ip、udp等通信协议,终端包括而不限于手机、平板电脑、个人电脑、服务器等能够被配置为执行本申请实施例所提供的方法中的至少一种。为便于描述,下文以该方法的执行主体是以终端为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为终端只是一种示例性的说明,并不应理解为对该方法的限定。电子标签(tag),是射频识别系统真正的数据载体。每个电子标签都有唯一的电子编码,一般附在所要监测的物体上通过电磁波与读写器进行无线数据交换,具有智能读写和加密通信的功能。电子标签接收读写器发来的信号,并转换为直流电源供电子标签内的电路工作,根据读写器的要求送回数据经过调制后由天线发给读写器。所有的电磁通信都是要占用一定的频率和带宽的,rfid通信也不例外,系统应用占据的频段或频点位于ism(industrialscientificmedical)频段,此频段主要是开放给工业、科学和医学三个主要机构使用,无需授权许可,只需要遵守一定的发射功率(一般低于1w),并且不要对其它频段造成干扰即可。目前,rfid系统在国际上广泛采用的典型工作频段有低频、高频、超高频和微波四个频段。分别为低频125khz和133khz,高频13.56mhz和27.12mhz、超高频433mhz和860mhz—960mhz,微波2.45ghz和5.8ghz。工作频率的不同,工作原理也不相同,识别距离也有差别,低频识别距离较近,微波识别距离就比较远。具体实施例一:在本申请实施例中的rfid电子标签(tag)的设计中主要包含了以下关键的技术,编码和调制,数字调制,检错纠错、基带中的编码等技术,具体各模块组成如图3所示。1.编码和调制对于rfid系统来说,阅读器和应答器之间的数据传输需要三个方面的模块:发送器、接收器和信息通道。发送器有调制器和信号处理组成,接收器由应答器中的解调电路和信号处理组成,信息通道主要为信息传输的介质,本申请涉及的数据编码方式有pie码、曼彻斯特码、米勒码等,涉及的数据调制方式有ask、单边ask、双边ask、pr-ask等方式。2.数字调制电磁能量通过电磁波的形式发射到空间中,通过改变电磁波的三个参数即频率、功率、相位中的任何一个或者几个就可以实现对信息编码,然后通过电磁波传送到空间中的任何地点。通过对电磁波的信息编码就是调制,载波就是没有调制的电磁波。从接收到的电磁波中通过分析其频率、相位、接受功率的变化可以得到了原来的信息,这就是解调。在rfid中常用的调制方法主要由频移键控,振幅键控和副载波组成。3.基带中的编码编码是用不同形式的代码来表示二进制中的0和1,在rfid中常用的编码方式有米勒编码、单级性归零码、mrz码、差动双向码、变形米勒码、曼彻斯特码等形式。4.检错纠错在使用rfid技术传输数据时容易受到外界的干扰,导致数据发生改变,使结果产生错误,所以有必要引进ecc(errorcorrectingcode,检错纠错)技术,通过检错纠错可以通过采取一定的措施对改变的数据进行校正,相关技术中比较常用的技术包括奇偶校验。奇偶校验的方法又包括纵向奇偶校验,横向奇偶校验,横向纵向奇偶校验等。其中纵向奇偶校验是通过以字符为单位来进行分组的,横向奇偶校验和纵向奇偶校验只能够检查出数据在横向和纵向方向上的编码错误,对于某个字符的错误则无能为力。本申请将纵向方向和横向方向上的奇偶校验方法结合起来,得到交叉校验,这种方法具有非常好的检错性能。本发明提供一种rfid标签数据输出的方法实现如图4所示:s401:通过读写器中的天线将信号发送出去,查找在特定的频段范围内感应的标签。通过配置rfid读写器相关参数,设定天线发送频率,按照发送频率调用api接口并选择相应模式。具体的,本申请可以根据用户需求,通过配套管理软件,设置rfid设备的参数如:工作方式:可以配置通过触发进行rfid标签读\写或者自动连续读取rfid标签的任意一种工作方式进行读\写;读取频段:配置所读取的rf频段标准(840mhz-844.5mhz\902mhz-928mhz等)和功率灵敏度等参数。读取区域:可以指定读取的rfid标签的指定区域,如电子标签的唯一标识码tid、电子产品代码epc以及用户数据userdata的读取;读取长度:可以指定进行任意长度、任意起始位置的读取配置;读取方式:可以配置输出方式间隔时间,如相同标签在若干秒内不再重复输出,新标签立即输出;输出方式:可以配置输出的数据规则与格式,如ps2、hid的协议规则;当系统可以进行数据读取并且有电子标签时,电子标签收到发来的命令序列。此时,电子标签将存储在eprom的唯一标识码,传送给需要认证部分。调用voidwriterv(ucharaddress,ucharvalue)函数,将请求命令的参数28h送入输入输出数据寄存器中,然后调用writerawrv函数送入请求指令字16h,经过运行后,输入输出数据中就存有电子标签的唯一标识码。接着,再调用ucharreadrv(ucharaddress)获取操作结果。s402:防碰撞操作,本申请可以选择调用原生api或者进行编写防碰撞算法,调用该接口,然后读写器可以通过自身寄存器读取当前的防碰撞电子标签序列号。本申请涉及的防碰撞算法有aloha算法、二进制搜索算法、标签估计算法等。对电子标签的选择碰撞问题会应用对电子标签的选择,并且信息产生碰撞后信息的记录出现不准确情况。因此,在编写好防碰撞算法后,将算法函数存在rom内地址0x4000000。产生碰撞问题后,调用writerv函数将碰撞参数送入输入输出数据寄存器,接着调用writerawrv指令将指令字80h送入寄存器,则经过运行后输入输出数据寄存器中存放有碰撞处理的结果。该结果为一8字节标识码,表示读写器应该进行读取的电子标签标识码。s403:对电子标签的认证安全在经过碰撞处理后,得到可以进行读取的标签号,进入rfid读写器和电子标签的认证步骤。rfid读写器和电子标签的认证安全要符合国标iso9798标准,读写器和电子标签两方都应当有认证对方的秘钥。一般模式下,双方具有相同的key。秘钥可以由伪随机算法迭代生成,见下式:keyi=(akeyi-1+b)%m指定初值key,该值可以为读写器内rom某一内存地址,其中a为迭代参数,b为迭代常数,m为数控规模。达到指定运行层次n后,即可以获得key。然后rfid读写器调用charpcdauthkey(uchar*coded)函数向电子标签验证秘钥,电子标签经过固化在rom中的硬件计算后返回随机数r,读写器收到r后调用函数charpcdauthstate(ucharauth_mode,ucharblock,uchar*snr)进行验证,之后便可以建立连接。选定电子标签,并返回电子标签所采集的相关信息,主要返回电子标签的唯一标识码tid、电子产品代码epc以及用户数据userdata等信息。s404:在读写器系统内进行安全认证,以确定数据的准确性,以及数据来源具有相关安全性。如果通过了该认证,则可以传输标签内容。电子标签可以分为不同扇区,通过调用读写器不同api读取不同扇区。rfid读写器的软件部分主要完成对读写器各个寄存器的存储内容和容量进行配置。对电子标签的读写操作在rfid读写器和电子标签安全认证成功后,读写器可以进行对电子标签的读写操作。这一步主要调用writerv函数将读写命令参数送入输入输出数据寄存器中。对电子标签读取指令为38h,写入指令为18h,然后调用writerawrc函数将操作指令16h送入指令寄存器,rifd读写器执行后即可在输入输出数据寄存器中获得数据。进一步地,终端的命令包都对应一个命令执行结果数据包。应用接口层接收终端所发送的命令包,解析其中的参数,根据解析的结果执行相应的回调函数。读写器在命令执行结束后,将执行结果打包发送至终端进行处理和显示,如操作成功,将所读取的电子标签输出为标签文档,文档中的序号自动编号,操作失败,则返回失败并输出为日志文件。通过本申请实施例,无须安装应用软件,克服了现有技术中通过不同的应用程序与rfid中间件才能实现对设备的管理和控制,特别是与第三方系统对接时更是需要定制性进行开发,高效便捷的实现了电子标签数据的自动读写操作。具体地,本申请屮的命令包由1个字节的包类型、1个字节的包长度和可变长度的数据域组成,命令位字段定义下表1所示:表1:应用接口层命令包定义byte1byte2byte[3……n+4]命令包类型id命令包长度l命令包有效数据域终端系统接口与读操作功能定义列举如下表2,需要声明的是,此处定义仅仅是示例性而非限定性,本领域技术人员完全可以根据实际数据传输要求以及用户的需要进行写操作接口的函数定义与功能说明。表2:读操作命令接口定义本申请中rfid读写器和电子标签之间进行通信需要统一的数据结构,这样在读写器解析时可以利用接口函数将通信数据包转化为自身内存数据结构,并且通过硬件转换将通信数据包转化为指令数据,从而避免了数据格式因为固件的版本不同而导致数据传输异常问题。该数据包结构如表3:表3:数据包结构1byte1byte1bytenbyte1byte长度包类型标签地址数据crc同时,根据整个过程中系统需要进行相互交互的过程类型以及过程参数,可以将通信数据包分为具体的几类:find、send和ack数据包。具体如下表4:表4:数据包类型表send数据包和ack数据包为rfid系统通信数据包,即读写器可以通过send数据包将信息发送给电子标签,或者ack接收电子标签数据信息,电子标签则通过ack数据包接收需要执行指令。实际应用环境下,读写器的相关数据包应该添加command命令位,电子标签添加接收位。进一步地,读写器数据包rfid读写器发送和接收的包具有统一的标识,在标志位定义为flag1。当通信类型为find时,其包类型为:当通信数据包类型为send时,即为rfid读写器已经和电子标签建立连接,然后开始发送命令或者数据。有了send包,两者之间就可以进行正常通信。同时,该包应该在中间的过程进行检查,保证数据在过程中的一些参数。另外,当通信时,需要将该包装成数据帧发送,在接收的时候就可以对该包结构中的内容进行分析。在接收端,主要表现的利用为对该包的分析,分析可以通过表项中的内容进行,其数据包类型如下表:表5:send数据包当通信数据包类型为ack时,表示系统内标签可以进行发送的数据。其包类型如表。电子标签数据包在rfid读写器系统中,电子标签发送的数据包flag位为2。当通信数据包为send类型时,主要发送电子标签采集数据,其结构如表。当通信数据包为ack类型时,主要发送对rfid读写器的回应数据包,其结构如表:在整个系统中,电子标签主要负责进行数据的采集和向读写器传送数据,主要的数据采集命令应有rfid读写器发出,如图5所示的电子标签与rfid读写器、终端具体交互过程为:(1)、rfid读写器进行加电复位,在特定频段内发送电磁波,并且等待进入范围的电子标签回应。(2)、在等待过程中,如果收到电子标签节点的ack数据包,表示有电子标签进入,那么读写器向该电子标签发回确认数据包。(3)、解析标签数据并根据阅读器rom预先配置的规则执行相应的操作。(4)、接收电子标签发送的数据包,并将该通信数据包转化为自身内存结构进行解析,然后按照设定规则输出到外部系统。如果信息错误,则设定错误重发计数器,并等待电子标签重发,在计数器达到阀值时发送电子标签不可达的错误信息。电子标签由于存储数据相对较小,因此通信数据包类型较少,在数据采集时应当及时向读写器发送,其具体过程为:(1)、标签初始化,工作时收到读写器的天线信号。硬件电路对数据包进行解析,并向解析后的地址发送ack通信数据包,请求加入网络。(2)、收到读写器ack包。根据回复的内容进行相应操作。如果回复接收信息,则启动数据发送模块工作,在读写器配置的信道发送send数据包确认信道。收到表示错误的包,那么报告错误退出。(3)、收到读写器控制命令后,解析该控制命令,执行命令对应的操作,接着发送send数据包返回给读写器。(4)、采集和发送过程中有出现错误的情况,发送ack数据包给读写器,读写器解析后回送命令。终端侧主要实现对读写器的规则配置,如设置读取rfid标签的工作参数:工作方式:可以配置通过触发进行rfid标签读\写或者自动连续读取rfid标签的任意一种工作方式进行读\写;读取频段:配置所读取的rf频段标准(840mhz-844.5mhz\902mhz-928mhz等)和功率灵敏度等参数。读取区域:可以指定读取的rfid标签的指定区域,如电子标签的唯一标识码tid、电子产品代码epc以及用户数据userdata的读取;读取长度:可以指定进行任意长度、任意起始位置的读取配置;读取方式:可以配置输出方式间隔时间,如相同标签在若干秒内不再重复输出,新标签立即输出;输出方式:可以配置输出的数据规则与格式,如ps2、hid的协议规则;进一步的,读写器根据配置的规则读取电子标签数据并输出至终端进行处理与显示。具体实施例二:图6为本发明又一示范性实施例中rfid标签数据输出的装置,包括有查找模块61、选定装置62、认证模块63以及输出模块64,其中:查找模块61用于按照配置规则查找所对应的电子标签;选定模块62用于选定经过防碰撞操作所确认的电子标签;认证模块63用于认证上述选定的电子标签;操作模块64用于输出对认证通过后的电子标签数据。本发明实施例提供的rfid标签数据输出的装置中各模块还可用于实现上述实施例各方法步骤所对应的功能,在此不再赘述。本发明实施例还提供一种rfid设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现上述rfid标签数据输出方法的各步骤。本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述rfid标签数据输出方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12