uest10000000命令。区域内D7位是0的标签应答,即标签2,标签3,标签5,标签6应答,同理可解码得EPC数据为:010110,碰撞位有:D2,D6,位,此时只有两个碰撞位,则读写器可依次通过SELECT命令发送ldquo00101010rdquo,ldquo00101110rdquo,ldquo01101010rdquo,ldquo01101110rdquo,从而完成标签5,标签2,标签6的读写操作,最后通过UNSELECT命令将些三个标签置于ldquo休闲rdquo状态。算法再采用回溯策略,从该节点的父节点获得下一次Request命令所需的参数:00000000。Step5:阅读器发送Request00000000命令。区域内所有处于非ldquo哑吧rdquo状态的标签应答,即标签1与标签3应答,同理可解码得EPC数据为:0101010,此时碰撞位只有D7位。则读写器可依次通过SELECT命令发送00101010,10101010,从而完成标签3和标签1的读写操作,最后通过UNSELECT命令将标签3和标签1置于ldquo休闲rdquo状态。算法再采用回溯策略,从该节点的父节点获得下一次Request命令所需的参数,由于已到树根无父节点,因此识别过程结束。图3为识别读写全部标签的流程图:通过该实例,可归纳该算法要点如下:1)阅读器发Request(00000000)命令,要求区域内所有标签应答。2)检测有无碰撞发生。若无碰撞时,可识别出一个单独的标签。标签值为应答时返回的EPC值。处理完后,再屏蔽掉它。3)若有碰撞,可分两种情况,如碰撞位gt2,则可从碰撞位中随机选择一位,并由选中的那一位和上一次REQUEST中的参数共同决定下一次Request命令所需的参数,具体如下:在上一次REQUEST命令中参数的基础上再对所选中的那一位取反,即可得下一次REQUEST命令的参数。
f4)若碰撞位lt2时,可通过改变相应两位的数值即00,01,10,11的值以同时识别出4个标签,另外下一次Request命令所需参数,采用回溯策略,从其父节点获得,通过迂回方式直到执行Request00000000命令返回值碰撞位小于2时读写结束。4系统的软件实现以下程序为实现读写过程的子程序:PushEPC:将EPC值入栈;Pop:将栈顶元素弹出;GetTop:返回栈顶元素;StackEmpty:栈空返回true,不空返回false;RequestEPC:阅读器将EPC发送给标签;GetCollisio
BitsCou
t_EPC:返回EPC值中碰撞位的数目;Ra
domSelectCollisio
BitEPC:返回从EPC中随机选择的一个碰撞位的下标;ReverseBitEPC,
:将EPC的第
位取反,并返回取反后的EPC值;SetCollisio
EPC,bit:将EPC的碰撞位置bit值,而其他位不变,并返回。阅r