一种多人并行智能识别防碰撞算法

文档序号:9667747阅读:502来源:国知局
一种多人并行智能识别防碰撞算法
【技术领域】
[0001] 本发明涉及射频识别(RFID)技术,特别涉及一种多人并行智能识别防碰撞算法 即RFID识别算法。
【背景技术】
[0002] RFID(RadioFrequencyIdentfication)射频识别是一种非接触式的自动识别技 术,其原理是通过射频信号自动识别目标对象并获取相关数据。它具有非接触、工作时无需 人工干预、标签存储信息量大等优点,因此RFID技术的应用领域十分广泛。
[0003] 近年来,随着国内旅游业的快速发展,全国各旅游景区游客接待量逐年增长,为了 实现游客进入景区期间的快速通行,多数景区都安装了RFID电子门票系统。由于该系统所 有标签工作在同一频道,因此每次只能允许一人通过,当多人同时通过时,读写器作用范围 内存在多个标签,此时读写器与标签间通信就会产生相互干扰,即标签通信发生了碰撞,使 读写器不能正确识别每个标签的信息。
[0004] 信息碰撞导致无法实现多人并行通过,限制了旅游景区的游客的通行效率。

【发明内容】

[0005] 本发明的目的是针对现有技术的不足,提供了一种遵循特定算法的RFID技术来 实现景区游客多人并行入园智能识别防碰撞算法。
[0006] 本发明的具体步骤为:
[0007] 读写器命令组:
[0008] 请求命令-Order(code)
[0009] 选择命令-Choose(code)
[0010] 读取命令-Read(code)
[0011] 通过命令-Pass(code)
[0012] (1)初始状态:
[0013] 令:读写器识别场区内共有待识别标签η个,每个标签共有比特位m个,且比特位 等级由低到高分别为Di……Dm。读写器的初始命令集合为:L=ΙΛ,12……1J,待识别 标签集合T={ApAuAs......An}。其中,标签存储的编码集合分别为:
[0014] Ai= {an,a12,a13......aln}
[0015] A2 -{a21,a22,a23......a2m}
[0016] M
[0017] M
[0018] An={anl,an2,an3......anm}
[0019] (2)读写器向场区内发送请求命令Order(L°= {1,1,1......1}),场区内所有标 签响应并返回各自编码,读写器接受到编码并判断是否有编码碰撞发生,若无碰撞发送,则 识别出唯一标签,读写器发送Choose(code)命令选择标签,再发送Read(code)命令读取标 签编码,确认标签编码后,读写器发送Pass(code)命令允许该标签通过;若发生碰撞,则读 写器判别编码碰撞的比特位。依据碰撞发生的位置,读写器在生成新命令L1的时候将产生 碰撞的比特位编码置为" 1",未发生碰撞的比特位编码置为"〇",令发生碰撞的最高比特位 为Dp,则读写器要求Dp位编码为"0"的标签返回低于Dp位的所有编码。
[0020] 则新命令:i1 ={/丨,……/,!)(其中l<q<r<m).........父节点①
[0021] 响应标签集合r1 =U<!,_4……(其中l<e<f<g<n)
[0022] 响应标签编码集合:4 , .,…}
[0023]
[0024]
[0025]
[0026] (3)读写器接受到响应标签返回的编码并判断是否有碰撞发生:若无碰撞发生则 直接识别出唯一标签;若发生碰撞则读写器在生成新命令Order(L2)的时候将产生碰撞的 比特位编码置为" 1",未发生碰撞的比特位编码置为"〇",令发生碰撞的最高比特位为Dq,读 写器要求Dq位编码为"0"的标签返回低于Dq位的所有编码。
[0027] 则新命令:f=.丨/,::,/::……C}:(其中q<r<s<m).........父节点②
[0028] 响应标签集合Γ2 = ……(其中f<h<i<j<g)
[0029]响应标签编码集合:為丨=
[0030]
[0031]
[0032]
[0033] (4)读写器接受到响应标签编码并判别是否产生碰撞
[0034]i若此时无碰撞发生,读写器发送Choose(code)命令选择标签Ak,并发送读取命 令Read(code)读取标签编码,确认编码信息后,读写器发送Pass(code)命令使得标签AkS 过,同时Ak从标签集合T中去除。
[0035]ii若此时只有一位比特位发生碰撞,由一位碰撞的特性可知,此时碰撞标签有且 仅有2个,且这2个标签编码只是碰撞位不同,令标签分别为A1;A,,依据非"0"即" 1"的二 进制编码规则,读写器先发送选择命令Order(code)要求碰撞位为"0"的标签返回编码,接 受到返回信息后,读写器发送Read(code)命令读取标签~的编码,确认编码后读写器发送 PaSS(C〇de)命令允许标签通过,并从集合T中删除标签&,此即识别出一个标签;同理识别 出碰撞位为"1"的标签、。从而读写器识别出2个碰撞标签并允许A1;Aj通过。
[0036] (5)当读写器识别出标签后,返回上一父节点②处对余下标签进行识别。新命令规 贝1J:令碰撞发生比特位"1",未碰撞比特位为"〇"。同时读写器要求在上一父节点②中碰撞 比特位Dq为" 1"的标签返回低于Dq的编码。
[0037] 则新命令.I3 = {ξ,ζ. ?….ig}(其中s<u<v<m)............父节点③
[0038] 响应标签集合Γ3 ={<,<….…43}(其中l<x<y<z<n)
[0039] 响应标签编码集合:為;=~ *
[0040]
[0041]
[0042]
[0043] 读写接收到响应标签编码并判断是否有碰撞发生:
[0044]i若此时无碰撞发生,则读写器能直接识别出唯一标签并允许该标签通过。
[0045]ii若此时发生一位碰撞,则读写器能分别识别出2个标签并允许标签通过。
[0046]iii若此时发生多位碰撞,则递归调用步骤(2)。
[0047] 本发明优点是:通过一种多人并行智能识别防碰撞算法解决RFID系统中防碰撞 问题,实现在最短时间内识别其作用范围的所有标签。该算法通过分段传输有效碰撞编码, 大大提高了读写器与标签间信息传输效率,从而实现在最短时间内识别其作用范围的所有 标签。
【附图说明】
[0048] 图1为本发明算法流程图。
【具体实施方式】
[0049] 实施例:
[0050] 本发明实施例设定标签编码为8位。
[0051] 步骤一:读写器发送Ordermilllll)命令,场区内所有小于等于该命令编码的 标签应答。
[0052] 步骤二:读写器检测接收的信号,如果没有检测到信号则认为射频场区内无标签, 回到步骤一。如果有信号则转至步骤三。
[0053] 步骤三:读写器利用曼彻斯特译码原理对响应的电子标签序列号信息进行译 码,同时判断是否有比特位碰撞发生,并确认碰撞发生的具体比特位,转入步骤四。如果 没有碰撞发生,则有且仅有一个标签响应,此时由读写器向该标签发送Choose(code)命 令,在确认选择后读写器发送Read(code)命令,对响应的标签进行读写,完成读写后发送 Pass(code)命令给标签,允许该标签通过。
[0054] 步骤四:根据步骤三读写器得到具体的碰撞比特位,并将发生碰撞的比特位 设置为"1",没有发生碰撞的比特位设置为"〇",从而产生下一个读写器发送的指令 Order(code, 0)中code的参数。读写器发送得到的Order(code, 0)命令,标签在接收到指 令后将code与自己的编码进行比较,锁定比特位为"1"的比特值,并将其保存。同时要求 最高比特位为"〇"的标签响应这个命令,并回复除最高位以外的所有其他碰撞位。而后利 用二进制防碰撞算法的原理逐步缩小标签应答范围直至识别标签或出现一位碰撞。当出现 一位碰撞时,转步骤六。当识别一个标签时,读写器将完成步骤三中最后的读写周期,分别 发送Choose(code)命令、Read(code)命令和Pass(code)命令。而后回到父节点,进行下 一个分支的识别。循环往复以上操作直到最高位为"〇"的标签分支不存在未识别的标签, 转到步骤五。
[0055] 步骤五:读写器发送Order(code,1)命令,该指令仅针对之前锁定位置最高位为 "1"的标签,这些标签在收到指令之后将自己除最高位以外的剩余几位碰撞位发送给读写 器。而后利用二进制防碰撞算法的原理逐步缩小应答范围直至识别标签或出现一位碰撞。 当出现一位碰撞时,转到步骤六。在识别到唯一标签时,读写器在此进入读取环节发送选 择、读取、和通过命令。而后回到父节点,进行下一个分支的识别。通过以上操作直至碰撞 最高位为" 1"的分支内所有标签均被识别,转步骤七。
[0056] 步骤六:当产生一位碰撞时,根据非"0"即" 1"的原则识别两个标签,读写器首先 对碰撞位为"1"的标签进行读取环节的操作即选中、读取和通过,而后读写器对碰撞位为 "〇"的标签进行同样的读取环节。以此分别读取这两个标签序列号。
[0057] 步骤七:直至没有电子标签未被识别出来,识别过程结束。
[0058] 算法具体实例实现:
[0059]假设读写器场区范围内有ID分别为 00110110、01010001、01100101、01111010、 10001000、10100111、10111001、11100110、11100111、11111001 的十个标签A、B、C、D存在。
[0060] 开始:射频场区内所有标签对于读写器来说处于未知状态,所以读写器发送 Order(1 111 111 1)命令,要求场区内所有标签应答。
[0061] 第1步:读写器发送Orderaillllll),标签同时应答,读写器根据曼彻斯特编码 原理,解码得到xxxxxxxx(此处用大写字母X表示解码结果,X代表未识别比特位值,下 同)。由此得到下一个请求命令Order(11111111,0)。
[0062] 第2步:读写器发送Order(1111111,0)命令,标签1、2、3、4分别将自己编码与 0111 111 1比对,解码得到X
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1