主权项 |
一种基于自适应分组机制的RFID防碰撞方法,其特征在于:包括:A、阅读器初始化查询栈为空,并发送Req(ALL,ALL)指令激活感应场内的所有标签,然后接收标签返回的应答信号;B、阅读器根据译码后的应答信号判断是否发生标签碰撞,若是,则根据碰撞位生成相应的碰撞码并进行记录,然后向标签发送碰撞指令Req(CID,null),反之,则转至步骤G;C、标签将碰撞指令Req(CID,null)保存至碰撞组Col_bit中,并将碰撞位的消息返回给阅读器;D、阅读器根据碰撞码和返回的消息设置分组标志位Div_bit和分组码Div_num,然后将元素(Div_bit,Div_num)和(Div_bit,<img file="FDA0001047194890000011.GIF" wi="277" he="78" />)依次加入查询栈;E、阅读器判断查询栈是否为空,若是,则释放碰撞码和Div_bit所占用的内存,并将Div_num的值置0,然后结束流程;反之,则将查询栈栈顶元素出栈,然后根据栈顶元素的内容发送Req(Div_bit,Div_num)指令,然后执行步骤F;F、阅读器根据符合Req(Div_bit,Div_num)指令的标签返回的应答消息,判断是否发生了碰撞,若是,则返回步骤C,反之,则将该标签的状态标志state置0和碰撞组Col_bit清空,并将其他标签的状态标志state自动减1,然后执行步骤G;G、阅读器发送指令对标签进行读写操作,然后在读写结束后发送静默命令使该标签进入静默状态,最后返回步骤E;其中,Req(ALL,ALL)指令,要求阅读器感应场范围内的所有标签返回自己的完整序列号进行响应;碰撞指令Req(CID,null),表示标签将CID的值与自身的ID值进行比较,从而得到发生碰撞的位置并进行记录,此后每次响应阅读器指令的时候,标签只发送碰撞位上的二进制值;Req(Div_bit,Div_num)指令,是指满足状态标志State为0且第Div_bit位上的数值为Div_num的标签响应阅读器,发送碰撞位上的二进制值,而其他标签的状态标志State自动加1;分组标志位Div_bit,用于记录以碰撞标签的哪一个比特位作为分组标志;分组码Div_num,用于记录被选中分组标签中第Div_bit位上的二进制值;<img file="FDA0001047194890000012.GIF" wi="62" he="63" />为异或运算符。 |