2 标签的读写
2.1 命令格式
2.1.1读写器的命令格式
读写器的命令格式如下:
帧头探测段是一个至少持续400Ls的稳定无调制载波(相当于16bit数据的传输) ;帧头是9bit的NRZ格式的manchester"O",即:010101010101010101;开始符是用来标记有效数据,原返回率采用5位的开始符(1100111010),4倍返回率采用开始符(11011100101);CRC采用16bit的CRC编码。
2.1.2 标签的应答格式
标签的应答格式如下:
静默是标签持续2byte 的无反向散射(40kb/s的速率下相当于400Ls的持续时间) ;返回帧头是:"00000101010101010101000110110001";CRC采用16bit的CRC编码。
2.2 防冲突机制
充电后的IC有三种主要数字状态:准备(READY,初始状态) ;识别( ID,标签期望读写器识别的状态) ;数据交换(DATE EXCHANGE,标签已被识别状态)。
图3:状态转换图
首先,标签进入读写器的射频场,从无电状态进入准备状态。读写器通过"组选择"和"取消选择"命令来选择工作范围内处于准备状态中所有或者部分的标签,来参与冲突判断过程。为解决冲突判断问题,标签内部有两个装置:一个8bit的计数器;一个0或1的随机数发生器。标签进入ID状态的同时把它的内部计数器清"0".它们中的一部分可以通过超高频射频识别系统读写器设计收"取消"命令重新回到准备状态,其它处在识别状态的标签进入冲突判断过程。被选中的标签开始进行下面循环:
① 所有处于ID状态并且内部计数器为0的标签将发送它们的UID.
②如果多于一个的标签发送,读写器将发送失败命令。
③ 所有收到失败命令且内部计数器不等于0的标签将其计数器加1.收到失败命令且内部计数器等于0的标签(刚刚发送过应答的标签) 将产生一个"1"或"0"的随机数,如果是"1",它将自己的计数器加1;如果是"0",就保持计数器为0并且再次发送它们的UID.
④如果有一个以上的标签发送,将重复第2步操作;
⑤如果所有标签都随机选择了"1",则读写器收不到任何应答,它将发送成功命令,所有应答器的计数器减1,然后计数器等于0的应答器开始发送,接着重复第2步操作;
⑥如果只有一个标签发送并且它的UID被正确接收,读写器将发送包含UID的数据读命令,标签正确接收该条命令后将进入数据交换状态,接着将发送它的数据。读写器将发送成功命令,使处于ID状态的标签的计数器减1;
⑦如果只有一个标签的计数器等于1并且返回应答,则重复第5和第6步操作;如果有一个以上的标签返回应答,则重复第2步操作;
⑧如果只有一个标签返回应答,并且它的UID没有被正确接收,读写器将发送一个重发命令。如果UID被正确接收,则重复第5步操作。如果UID被重复几次的接收(这个次数可以基于系统所希望的错误处理标准来设定) ,就假定有一个以上的标签在应答,重复第2步操作。