1、第八章 RFID防碰撞技术 快速、准确、有效的防碰撞问题解决方案对快速、准确、有效的防碰撞问题解决方案对RFIDRFID技术的发展有着至关重要的作用。标签防碰技术的发展有着至关重要的作用。标签防碰撞算法就是要解决在读写器的有效通信范围内,撞算法就是要解决在读写器的有效通信范围内,多个标签如何同时与读写器进行通信的问题。在多个标签如何同时与读写器进行通信的问题。在高频(高频(HFHF)频段,标签的防碰撞算法一般采用)频段,标签的防碰撞算法一般采用ALOHAALOHA。在超高频(。在超高频(UHFUHF)频段,主要采用二进制)频段,主要采用二进制树型搜索算法。本章将重点介绍这两类算法及其树型搜索算
2、法。本章将重点介绍这两类算法及其扩展算法。扩展算法。8.1 RFID系统中的碰撞与防碰撞 nRFID系统中的碰撞 RFIDRFID系统经常会出现多个读写器以及多个标签的应用场合,从而系统经常会出现多个读写器以及多个标签的应用场合,从而导致标签之间或读写器之间的相互干扰,这种干扰称为导致标签之间或读写器之间的相互干扰,这种干扰称为碰撞碰撞,也称,也称为冲突。为冲突。RFIDRFID系统存在两类碰撞问题:系统存在两类碰撞问题:(1 1)一类称为)一类称为多标签碰撞问题多标签碰撞问题,即多个标签与同一个读写器同,即多个标签与同一个读写器同时通信时产生的碰撞;时通信时产生的碰撞;(2 2)另一类称为)
3、另一类称为多读写器碰撞问题多读写器碰撞问题,即相邻的读写器在其信号,即相邻的读写器在其信号交叠区域内产生干扰,导致读写器的阅读范围减小,甚至无法读取交叠区域内产生干扰,导致读写器的阅读范围减小,甚至无法读取标签。标签。8.1 RFID系统中的碰撞与防碰撞1.多读写器碰撞 当相邻的读写器作用范围有重叠时,多个读写器同时读取同一当相邻的读写器作用范围有重叠时,多个读写器同时读取同一个标签时可能会引起多读写器与标签之间的干扰。如图标签同时收个标签时可能会引起多读写器与标签之间的干扰。如图标签同时收到到3 3个读写器的信号,标签无法正确解析读写器发来的查询信号。个读写器的信号,标签无法正确解析读写器发
4、来的查询信号。读写器自身有能量供应,能进行较高复杂度的计算,所以读写读写器自身有能量供应,能进行较高复杂度的计算,所以读写器能检测到碰撞产生,并通过与其他读写器之间的交流互通来解决器能检测到碰撞产生,并通过与其他读写器之间的交流互通来解决读写器的碰撞问题,如读写器调度算法和功率控制算法。读写器的碰撞问题,如读写器调度算法和功率控制算法。8.1 RFID系统中的碰撞与防碰撞2.多标签碰撞 多标签碰撞多标签碰撞是指读写器同时收到多个标签信号而导致无法正确是指读写器同时收到多个标签信号而导致无法正确读取标签信息的问题。如图读写器发出识别命令后,在标签应答过读取标签信息的问题。如图读写器发出识别命令后
5、,在标签应答过程中可能会两个或者多个标签同一时刻应答,或一个标签还没有完程中可能会两个或者多个标签同一时刻应答,或一个标签还没有完成应答时其他标签就做出应答。它会使得标签之间的信号互相干成应答时其他标签就做出应答。它会使得标签之间的信号互相干扰,从而造成标签无法被正常读取。本章后续讨论的防碰撞都是针扰,从而造成标签无法被正常读取。本章后续讨论的防碰撞都是针对多标签防碰撞。对多标签防碰撞。8.1 RFID系统中的碰撞与防碰撞nRFID系统中防碰撞算法分类 电子标签的低功耗、低存储能力和有限的计算能力等限制,导电子标签的低功耗、低存储能力和有限的计算能力等限制,导致许多成熟的防碰撞算法(如空分多路
6、法)不能直接在致许多成熟的防碰撞算法(如空分多路法)不能直接在RFIDRFID系统中系统中应用。这些限制可以归纳为:应用。这些限制可以归纳为:(1 1)无源标签没有内置电源,标签的能量来自于读写器,因此算)无源标签没有内置电源,标签的能量来自于读写器,因此算法在执行的过程中,标签功耗要求尽量低;法在执行的过程中,标签功耗要求尽量低;(2 2)RFIDRFID系统的通信带宽有限,因此防碰撞算法应尽量减少读写系统的通信带宽有限,因此防碰撞算法应尽量减少读写器和标签之间传输信息的比特数目;器和标签之间传输信息的比特数目;(3 3)标签不具备检测冲突的功能而且标签间不能相互通信,因此)标签不具备检测冲
7、突的功能而且标签间不能相互通信,因此冲突判决需要读写器来实现;冲突判决需要读写器来实现;(4 4)标签的存储和计算能力有限,这就要求防碰撞协议尽可能简)标签的存储和计算能力有限,这就要求防碰撞协议尽可能简单,标签端的设计不能太复杂。单,标签端的设计不能太复杂。8.1 RFID系统中的碰撞与防碰撞1.无线通信中的防碰撞方法 解决防碰撞的方法主要包括空分多路(解决防碰撞的方法主要包括空分多路(SDMASDMA)、频分多路法)、频分多路法(FDMAFDMA)、码分多路法()、码分多路法(CDMACDMA)和时分多路法()和时分多路法(TDMATDMA)。)。1)空分多路法 空分多路法空分多路法(SD
8、MASDMA)是在分离的空间范围内实现多个目标识别。)是在分离的空间范围内实现多个目标识别。一种实现方法是将读写器和天线之间的作用距离按空间区域进行一种实现方法是将读写器和天线之间的作用距离按空间区域进行划分,把读写器和天线安置在一个天线阵列中。当标签进入这个划分,把读写器和天线安置在一个天线阵列中。当标签进入这个天线阵列的覆盖范围后,与其距离最近的读写器对该标签进行识天线阵列的覆盖范围后,与其距离最近的读写器对该标签进行识别。由于每个天线的覆盖范围较小,相邻的读写器识别范围内的别。由于每个天线的覆盖范围较小,相邻的读写器识别范围内的标签同样可以进行识别而不受相邻读写器的干扰,如果多个标签标签
9、同样可以进行识别而不受相邻读写器的干扰,如果多个标签根据在天线阵列中的空间位置的不同,可以同时被识别。根据在天线阵列中的空间位置的不同,可以同时被识别。另一种实现方法是读写器利用相控阵天线,让天线的方向性图另一种实现方法是读写器利用相控阵天线,让天线的方向性图对准单独的标签,标签根据其在读写器作用范围内的角度位置不对准单独的标签,标签根据其在读写器作用范围内的角度位置不同而区别开来。同而区别开来。空分多路法的空分多路法的缺点缺点是天线系统复杂,会大幅度提高成本。是天线系统复杂,会大幅度提高成本。8.1 RFID系统中的碰撞与防碰撞2)频分多路法 频分多路法频分多路法(FDMAFDMA)是把若干
10、个使用不同载波频率的调制信号)是把若干个使用不同载波频率的调制信号在同时供通信用户使用的信道上进行传输的技术。通常情况下,在同时供通信用户使用的信道上进行传输的技术。通常情况下,RFIDRFID系统的前向链路(从读写器到标签)频率是固定的,用于能量系统的前向链路(从读写器到标签)频率是固定的,用于能量的供应和数据的传输。对于反向链路,不同标签采用不同频率的载的供应和数据的传输。对于反向链路,不同标签采用不同频率的载波进行数据调制,信号之间不会产生干扰,读写器对接收到的不同波进行数据调制,信号之间不会产生干扰,读写器对接收到的不同频率的信号进行分离,从而实现对不同标签的识别。频率的信号进行分离,
11、从而实现对不同标签的识别。频分多路法的缺点是导致读写器和标签成本要求较高。因此在频分多路法的缺点是导致读写器和标签成本要求较高。因此在RFIDRFID应用中,频分多路法很少使用。应用中,频分多路法很少使用。8.1 RFID系统中的碰撞与防碰撞3)码分多路法 码分多路法(码分多路法(CDMACDMA)是基于扩频通信技术发展起来的。)是基于扩频通信技术发展起来的。扩频技术扩频技术包含扩频与多址两个基本概念。包含扩频与多址两个基本概念。扩频扩频目的是扩展信息目的是扩展信息带宽,即把需发送的具有一定信号带宽的信息数据,用一个带宽远带宽,即把需发送的具有一定信号带宽的信息数据,用一个带宽远大于其信号带宽
12、的伪随机码进行调制,使原来的信息数据的带宽被大于其信号带宽的伪随机码进行调制,使原来的信息数据的带宽被扩展,最后通过载波调制发送出去。解扩是指在接收端采用一致的扩展,最后通过载波调制发送出去。解扩是指在接收端采用一致的伪随机码,与接收到的宽带信号作相关处理,把宽带信号转换成原伪随机码,与接收到的宽带信号作相关处理,把宽带信号转换成原来的信息。来的信息。多址多址是给每个用户分配一个地址码,码型互不重叠。是给每个用户分配一个地址码,码型互不重叠。码分多路法具有抗干扰性好,保密安全性高,信道利用率高等码分多路法具有抗干扰性好,保密安全性高,信道利用率高等优点。但是该技术也存在诸多缺点,如频带利用率低
13、、信道容量优点。但是该技术也存在诸多缺点,如频带利用率低、信道容量小,伪随机码的产生和选择较难,接收时地址码捕获时间长等,所小,伪随机码的产生和选择较难,接收时地址码捕获时间长等,所以该方法很难应用于实际的以该方法很难应用于实际的RFIDRFID系统中。系统中。8.1 RFID系统中的碰撞与防碰撞4)时分多路法 时分多路法(时分多路法(TDMATDMA)是把整个可供使用的通路容量按时间分配)是把整个可供使用的通路容量按时间分配给多个用户的技术。给多个用户的技术。时分多路复用时分多路复用是按传输信号的时间进行分割的,它使不同的信是按传输信号的时间进行分割的,它使不同的信号在不同的时间内传输,将整
14、个传输时间分为许多时间间隔,每个号在不同的时间内传输,将整个传输时间分为许多时间间隔,每个时间片被一路信号占用。时间片被一路信号占用。TDMATDMA就是通过在时间上交叉发送每一路信号的一部分来实现一就是通过在时间上交叉发送每一路信号的一部分来实现一条电路传输多路信号的。电路上每一短暂时刻只有一路信号存在。条电路传输多路信号的。电路上每一短暂时刻只有一路信号存在。因为数字信号是有限个离散值,所以时分多路复用技术广泛应用于因为数字信号是有限个离散值,所以时分多路复用技术广泛应用于包括计算机网络在内的数字通信系统。包括计算机网络在内的数字通信系统。8.1 RFID系统中的碰撞与防碰撞2.RFID中
15、防碰撞算法分类 8.1 RFID系统中的碰撞与防碰撞n标签防碰撞算法 RFIDRFID系统的标签防碰撞算法大多采用时分多路法,该方法可分系统的标签防碰撞算法大多采用时分多路法,该方法可分为非确定性算法和确定性算法。为非确定性算法和确定性算法。非确定性算法非确定性算法也称标签控制法,在该方法中,读写器没有对数也称标签控制法,在该方法中,读写器没有对数据传输进行控制,标签的工作是非同步的,标签获得处理的时间不据传输进行控制,标签的工作是非同步的,标签获得处理的时间不确定,因此标签存在确定,因此标签存在“饥饿饥饿”问题。问题。ALOHAALOHA算法算法是一种典型的非确定是一种典型的非确定性性算法,
16、实现简单,广泛用于解决标签的碰撞问题。算法,实现简单,广泛用于解决标签的碰撞问题。确定性算法确定性算法也称读写器控制法,由读写器观察控制所有标签。也称读写器控制法,由读写器观察控制所有标签。按照规定算法,在读写器作用范围内,首先选中一个标签,在同一按照规定算法,在读写器作用范围内,首先选中一个标签,在同一时间内读写器与一个标签建立通信关系。时间内读写器与一个标签建立通信关系。二进制树型搜索算法二进制树型搜索算法是典是典型确定性算法,该类算法比较复杂,识别时间较长,但无标签饥饿型确定性算法,该类算法比较复杂,识别时间较长,但无标签饥饿问题。问题。8.2 ALOHA算法 ALOHAALOHA算法算
17、法是一种随机接入方法,其基本思想是采取标签先发言是一种随机接入方法,其基本思想是采取标签先发言的方式,当标签进入读写器的识别区域内时就自动向读写器发送其的方式,当标签进入读写器的识别区域内时就自动向读写器发送其自身的自身的IDID号,在标签发送数据的过程中,若有其他标签也在发送数号,在标签发送数据的过程中,若有其他标签也在发送数据,将会发生信号重叠,从而导致冲突。读写器检测接收到的信号据,将会发生信号重叠,从而导致冲突。读写器检测接收到的信号有无冲突,一旦发生冲突,读写器就发送命令让标签停止发送,随有无冲突,一旦发生冲突,读写器就发送命令让标签停止发送,随机等待一段时间后再重新发送以减少冲突。
18、机等待一段时间后再重新发送以减少冲突。8.2 ALOHA算法n纯ALOHA算法 在纯在纯ALOHAALOHA算法中,若读写器检测出信号存在相互干扰,读写器算法中,若读写器检测出信号存在相互干扰,读写器就会以向电子标签发出命令,令其停止向读写器传输信号;电子标就会以向电子标签发出命令,令其停止向读写器传输信号;电子标签在接收到命令信号之后,就会停止发送信息,并会在接下来的一签在接收到命令信号之后,就会停止发送信息,并会在接下来的一个随机时间段内进入到待命状态,只有当该时间段过去后,才会重个随机时间段内进入到待命状态,只有当该时间段过去后,才会重新向读写器发送信息。各个电子标签待命时间片段长度是随
19、机的,新向读写器发送信息。各个电子标签待命时间片段长度是随机的,再次向读写器发送信号的时间也不相同,这样减少碰撞的可能性。再次向读写器发送信号的时间也不相同,这样减少碰撞的可能性。当读写器成功识别某一个标签后,就会立即对该标签下达命令当读写器成功识别某一个标签后,就会立即对该标签下达命令使之进入到休眠的状态。而其他标签则会一直对读写器所发出命令使之进入到休眠的状态。而其他标签则会一直对读写器所发出命令进行响应,并重复发送信息给读写器,当标签被识别后,就会一一进行响应,并重复发送信息给读写器,当标签被识别后,就会一一进入到休眠状态,直到读写器识别出所有在其工作区内的标签后,进入到休眠状态,直到读
20、写器识别出所有在其工作区内的标签后,算法过程才结束。算法过程才结束。8.2 ALOHA算法n纯ALOHA算法 纯纯ALOHAALOHA算法中的信号碰撞分两种情况:算法中的信号碰撞分两种情况:(1 1)一种是信号部分碰撞,即信号的一部分发生了冲突;)一种是信号部分碰撞,即信号的一部分发生了冲突;(2 2)一种则是信号的完全碰撞,是指数据完全发生了冲突。)一种则是信号的完全碰撞,是指数据完全发生了冲突。如图所示,如图所示,发生冲突的数据都无法被读写器所识别。发生冲突的数据都无法被读写器所识别。8.2 ALOHA算法n纯ALOHA算法 纯纯ALOHAALOHA算法的信道吞吐率算法的信道吞吐率S S与
21、帧产生率与帧产生率G G之间的关系为之间的关系为 当当G G=0.5=0.5时,最大吞吐率时,最大吞吐率S S=1/(2e)18.4%=1/(2e)18.4%。发送帧不会产生碰撞。发送帧不会产生碰撞(即发送成功)的概率(即发送成功)的概率P P为为 电子标签数量越多,帧时越长,则电子标签数量越多,帧时越长,则G G越大,发送成功的概率越低。越大,发送成功的概率越低。纯纯ALOHAALOHA算法虽然算法简单,易于实现。但对于同一个标签,算法虽然算法简单,易于实现。但对于同一个标签,如果连续多次发生碰撞,这将导致读写器出现错误判断认为这个标如果连续多次发生碰撞,这将导致读写器出现错误判断认为这个标
22、签不在自己的作用范围内。同时其冲突概率很大。签不在自己的作用范围内。同时其冲突概率很大。假设其数据帧长假设其数据帧长度为度为F,则冲突周期为,则冲突周期为2F。8.2 ALOHA算法n时隙ALOHA算法 时隙时隙ALOHAALOHA算法把时间分成多个离散的时隙,每个时隙长度等于算法把时间分成多个离散的时隙,每个时隙长度等于或稍大于一个帧,标签只能在每个时隙的开始处发送数据。这样标或稍大于一个帧,标签只能在每个时隙的开始处发送数据。这样标签要么成功发送,要么完全碰撞,避免了纯签要么成功发送,要么完全碰撞,避免了纯ALOHAALOHA算法中的部分碰撞算法中的部分碰撞冲突,碰撞周期减半,提高了信道利
23、用率。时隙冲突,碰撞周期减半,提高了信道利用率。时隙ALOHAALOHA算法需要读写算法需要读写器对其识别区域内的标签校准时间。时隙器对其识别区域内的标签校准时间。时隙ALOHAALOHA算法是随机询问驱动算法是随机询问驱动的的TDMATDMA防冲撞算法,工作过程如图所示。防冲撞算法,工作过程如图所示。8.2 ALOHA算法n时隙ALOHA算法时隙时隙ALOHAALOHA算法的信道吞吐率算法的信道吞吐率S S和帧产生率和帧产生率G G的关系为的关系为 当当G G=1=1时,吞吐量时,吞吐量S S为最大值为最大值1/e1/e,约为,约为0.3680.368,是纯,是纯ALOHAALOHA算法的算
24、法的两倍。两倍。因为标签仅仅在确定的时隙中传输数据,所以该算法的冲撞发因为标签仅仅在确定的时隙中传输数据,所以该算法的冲撞发生频率仅仅是纯生频率仅仅是纯ALOHAALOHA算法的一半,但其系统的数据吞吐性能却会增算法的一半,但其系统的数据吞吐性能却会增加一倍。加一倍。8.2 ALOHA算法n帧时隙ALOHA算法 帧时隙算法中,时间被分成多个离散时隙,电子标签必须在时帧时隙算法中,时间被分成多个离散时隙,电子标签必须在时隙开始处才可以开始传输信息。读写器以一个帧为周期发送查询命隙开始处才可以开始传输信息。读写器以一个帧为周期发送查询命令。当电子标签接收到读写器的请求命令时,每个标签通过随机挑令。
25、当电子标签接收到读写器的请求命令时,每个标签通过随机挑选一个时隙发送信息给读写器。如果一个时隙只被唯一标签选中,选一个时隙发送信息给读写器。如果一个时隙只被唯一标签选中,则此时隙中标签传输的信息被读写器成功接收,标签被正确识别。则此时隙中标签传输的信息被读写器成功接收,标签被正确识别。如果有两个或两个以上的标签选择了同一时隙发送,则就会产生冲如果有两个或两个以上的标签选择了同一时隙发送,则就会产生冲突,这些同时发送信息的标签就不能被读写器成功识别。整个算法突,这些同时发送信息的标签就不能被读写器成功识别。整个算法的识别过程都会如此循环,一直到所有标签都被识别完成。的识别过程都会如此循环,一直到
26、所有标签都被识别完成。8.2 ALOHA算法n帧时隙ALOHA算法 帧时隙帧时隙ALOHAALOHA算法工作过程如图所示。算法工作过程如图所示。该算法的缺点是当标签数量远大于时隙个数时,读取标签的时该算法的缺点是当标签数量远大于时隙个数时,读取标签的时间会大大增加;当标签个数远小于时隙个数时,会造成时隙浪费。间会大大增加;当标签个数远小于时隙个数时,会造成时隙浪费。8.2 ALOHA算法n帧时隙ALOHA算法 一个典型的帧时隙一个典型的帧时隙ALOHAALOHA算法过程如图所示。算法过程如图所示。在每一帧初始时刻,读写器发出请求指令,向标签提供帧长等在每一帧初始时刻,读写器发出请求指令,向标签
27、提供帧长等信息。每个标签根据信息随机选择一个时隙向读写器发送信息。假信息。每个标签根据信息随机选择一个时隙向读写器发送信息。假设标签的序列号为设标签的序列号为4 4比特,在第一帧中,标签比特,在第一帧中,标签1 1和标签和标签3 3选择了时隙选择了时隙1 1与读写器通信,标签与读写器通信,标签2 2和标签和标签4 4选择了时隙选择了时隙2 2。时隙。时隙1 1和时隙和时隙2 2都发生了都发生了碰撞,而标签碰撞,而标签5 5在时隙在时隙3 3中被读写器成功识别。第二帧中标签中被读写器成功识别。第二帧中标签3 3和标签和标签2 2被成功识别。如此循环直到所有标签被成功识别为止。被成功识别。如此循环
28、直到所有标签被成功识别为止。8.2 ALOHA算法n动态帧时隙ALOHA算法 动态帧时隙动态帧时隙ALOHAALOHA算法中一个帧内的时隙数目随着区域内标签算法中一个帧内的时隙数目随着区域内标签数目动态改变,或增加时隙数以减少帧中的碰撞数目。步骤如下:数目动态改变,或增加时隙数以减少帧中的碰撞数目。步骤如下:(1 1)进入识别状态,开始识别命令中包含了初始的时隙数)进入识别状态,开始识别命令中包含了初始的时隙数N N。(2 2)由电子标签随机选择一个时隙,同时将自己的时隙计数器)由电子标签随机选择一个时隙,同时将自己的时隙计数器复位为复位为1 1。(3 3)当电子标签随机选择的时隙数与时隙计数
29、器对应时,标签)当电子标签随机选择的时隙数与时隙计数器对应时,标签向读写器发送数据;若不相等,标签将保留自己的时隙数并等待下向读写器发送数据;若不相等,标签将保留自己的时隙数并等待下一个命令。一个命令。(4 4)当读写器检测到的时隙数量等于命令中规定的循环长度)当读写器检测到的时隙数量等于命令中规定的循环长度N N时,本次循环结束,读写器转入步骤(时,本次循环结束,读写器转入步骤(2 2),开始新的循环。),开始新的循环。该算法每帧的时隙个数该算法每帧的时隙个数N N都是动态产生的,解决了帧时隙都是动态产生的,解决了帧时隙ALOHAALOHA算法中的时隙浪费的问题,适应标签数量动态变化的情形。
30、算法中的时隙浪费的问题,适应标签数量动态变化的情形。8.2 ALOHA算法n动态帧时隙ALOHA算法 动态帧时隙动态帧时隙ALOHAALOHA算法允许根据系统的需要动态地调整帧长度,算法允许根据系统的需要动态地调整帧长度,由于读写器作用范围内的标签数量是未知的,而且在识别的过程中由于读写器作用范围内的标签数量是未知的,而且在识别的过程中未被识别的标签数目是改变的,因此,如何估算标签数量以及合理未被识别的标签数目是改变的,因此,如何估算标签数量以及合理地调整帧长度成为动态帧时隙地调整帧长度成为动态帧时隙ALOHAALOHA算法的关键。由理论推导可知,算法的关键。由理论推导可知,在标签数目和帧长度
31、接近的情况下,系统的识别效率最高,也就是在标签数目和帧长度接近的情况下,系统的识别效率最高,也就是说标签的值就是帧长度的最佳选择。说标签的值就是帧长度的最佳选择。在实际应用中,动态帧时隙算法是在每帧结束后,根据上一帧在实际应用中,动态帧时隙算法是在每帧结束后,根据上一帧的反馈情况检测标签发生碰撞的次数(碰撞时隙数),电子标签被的反馈情况检测标签发生碰撞的次数(碰撞时隙数),电子标签被成功识别的次数(成功时隙数)和电子标签在某个时隙没有返回数成功识别的次数(成功时隙数)和电子标签在某个时隙没有返回数据信息的次数(空闲时隙数)来估计当前未被正确识别的电子标签据信息的次数(空闲时隙数)来估计当前未被
32、正确识别的电子标签数目,然后选择最佳的下一帧的长度,把它的帧长度作为下一轮识数目,然后选择最佳的下一帧的长度,把它的帧长度作为下一轮识别的帧长,直到读写器工作范围内的电子标签全部识别完毕。别的帧长,直到读写器工作范围内的电子标签全部识别完毕。8.3 二进制树型搜索算法 二进制树型搜索算法二进制树型搜索算法由读写器控制由读写器控制,基本思想是不断的将导致,基本思想是不断的将导致碰撞的电子标签进行划分,缩小下一步搜索的标签数量,直到只有碰撞的电子标签进行划分,缩小下一步搜索的标签数量,直到只有一个电子标签进行回应。一个电子标签进行回应。1冲突位检测 实现该算法系统的必要前提是能够辨认出在读写器中数
33、据冲突实现该算法系统的必要前提是能够辨认出在读写器中数据冲突位的准确位置。为此,必须有合适的位编码法。如图对位的准确位置。为此,必须有合适的位编码法。如图对NRZNRZ编码和曼编码和曼彻斯特编码的冲突状况作一比较。彻斯特编码的冲突状况作一比较。8.3 二进制树型搜索算法1)NRZ编码 某位之值是在一个位窗(某位之值是在一个位窗(t tBITBIT)内由传输通路的静态电平表)内由传输通路的静态电平表示,这种逻辑示,这种逻辑“1 1”为为 “高高”电平,逻辑电平,逻辑“0 0”为为 “低低”电平。电平。如果两个如果两个电子标签之一发送了副载波信号,那么,这个信号由读写器译码为电子标签之一发送了副载
34、波信号,那么,这个信号由读写器译码为“高高”电平,就被认定为逻辑电平,就被认定为逻辑“1 1”。但读写器不能确定读入的某位。但读写器不能确定读入的某位究竟究竟是若干个电子标签发送的数据相互重叠的结果,还是某个电子标签是若干个电子标签发送的数据相互重叠的结果,还是某个电子标签单独发送的信号,见下页中图(单独发送的信号,见下页中图(a a)。)。2)曼彻斯特编码 某位之值是在一个位窗(某位之值是在一个位窗(tBITtBIT)内由电平的改变(上升)内由电平的改变(上升/下降沿)下降沿)表示。逻辑表示。逻辑“0 0”编码为上升沿,逻辑编码为上升沿,逻辑“”编码为下降沿。如果两编码为下降沿。如果两个或个
35、或多个电子标签同时发送的数位有不同值,则接收的上升沿和下降沿多个电子标签同时发送的数位有不同值,则接收的上升沿和下降沿互相抵消,互相抵消,“没有变化没有变化”的状态是不允许的,将作为错误被识别。的状态是不允许的,将作为错误被识别。用用这种方法可以按位追溯跟踪冲突的出现,见下页中图(这种方法可以按位追溯跟踪冲突的出现,见下页中图(b b)。)。8.3 二进制树型搜索算法 采用采用NRZNRZ编码和曼彻斯特编码的冲突状况(曼彻斯特编码能够按编码和曼彻斯特编码的冲突状况(曼彻斯特编码能够按位识别出冲突)示意图。因此,选用曼彻斯特编码可实现位识别出冲突)示意图。因此,选用曼彻斯特编码可实现“二进制二进
36、制树树型搜索型搜索”算法。算法。8.3 二进制树型搜索算法2.二进制树型搜索算法过程 二进制树型搜索算法的模型如图所示,其基本思想是将处于冲二进制树型搜索算法的模型如图所示,其基本思想是将处于冲突的标签分成左右两个子集突的标签分成左右两个子集0 0和和1 1,先查询子集,先查询子集0 0,若没有冲突,则正,若没有冲突,则正确识别标签,若仍有冲突则再分裂,把子集确识别标签,若仍有冲突则再分裂,把子集0 0分成分成0000和和0101两个子集,两个子集,依次类推,直到识别出子集依次类推,直到识别出子集0 0中所有标签,再按此步骤查询子集中所有标签,再按此步骤查询子集1 1。可见,标签的序列号是处理
37、碰撞的基础。可见,标签的序列号是处理碰撞的基础。8.3 二进制树型搜索算法二进制树型搜索算法的实现步骤如下:二进制树型搜索算法的实现步骤如下:(1 1)读写器广播发送最大序列号查询条件)读写器广播发送最大序列号查询条件Q Q,其作用范围内的标,其作用范围内的标签在同一时刻传输它们的序列号至读写器。签在同一时刻传输它们的序列号至读写器。(2 2)读写器对收到的标签进行响应,如果出现不一致的现象(即)读写器对收到的标签进行响应,如果出现不一致的现象(即有的序列号该位为有的序列号该位为0 0,而有的序列号该位为,而有的序列号该位为1 1),则可判断有碰撞。),则可判断有碰撞。(3 3)确定有碰撞后,
38、把有不一致位的数最高位置)确定有碰撞后,把有不一致位的数最高位置0 0再输出查询条再输出查询条件件Q Q,依次排除序列号大于,依次排除序列号大于Q Q的标签。的标签。(4 4)识别出序列号最小的标签后,对其进行数据操作,然后使其)识别出序列号最小的标签后,对其进行数据操作,然后使其进入进入“无声无声”状态,则对读写器发送的查询命令不进行响应。状态,则对读写器发送的查询命令不进行响应。(5 5)重复步骤)重复步骤1 1,选出序列号倒数第二的标签。,选出序列号倒数第二的标签。(6 6)多次循环完后完成所有标签的识别。)多次循环完后完成所有标签的识别。8.3 二进制树型搜索算法 为了实现这种算法需要
39、一组命令。这组命令可由电子标签进为了实现这种算法需要一组命令。这组命令可由电子标签进行处理(见下表),每个电子标签拥有一个唯一的序列号(行处理(见下表),每个电子标签拥有一个唯一的序列号(SNRSNR)。)。REQUEST(SNR)请求(序列号)此命令发送一序列号作为参数给电子标签。电子标签把自己的序列号与接收的序列号进行比较,如果小于或相等,则此电子标签回送其序列号给读写器。这样就可以缩小预选的电子标签的范围SELECT(SNR)选择(序列号)用某个(事先确定的)序列号作为参数发送给电子标签,具有相同序列号的电子标签将以此作为执行其他命令(如读出和写入数据)的切入开关,即选择这个电子标签,具
40、有其他序列号的电子标签只对REQUEST命令应答READ-DATA读出数据 选中的电子标签将存储的数据发送给读写器(在实际的系统中,还有鉴别或写入等命令等)UNSELECT退出选择 取消一个事先选中的电子标签,电子标签进入“无声”状态。在这种状态下,电子标签完全是非激活的,对收到的REQUEST命令不作应答。为了重新激活电子标签,必须暂时离开读写器的作用范围(等于没有供应电压),以执行复位8.3 二进制树型搜索算法3二进制树型搜索算法实例 下面以一个实例来说明二进制树型搜索算法。现以读写器作用下面以一个实例来说明二进制树型搜索算法。现以读写器作用范围内的四个电子标签为例说明搜索的过程。这四个电
41、子标签的序范围内的四个电子标签为例说明搜索的过程。这四个电子标签的序列号(这里用列号(这里用8 8位的序列号举例)分别为:位的序列号举例)分别为:电子标签电子标签1:101100101:10110010 电子标签电子标签2:101000112:10100011 电子标签电子标签3:101100113:10110011 电子标签电子标签4:111000114:11100011 二进制树型搜索算法算法在重复操作的第一次中由读写器发送二进制树型搜索算法算法在重复操作的第一次中由读写器发送REQUESTREQUEST(1111111111111111)命令。序列号)命令。序列号111111111111
42、1111,是本例中系统最大,是本例中系统最大可能的可能的8 8位序列号。读写器作用范围内的所有电子标签的序列号都应位序列号。读写器作用范围内的所有电子标签的序列号都应小于或等于小于或等于1111111111111111,因此,处于读写器作用范围内的所有电子标,因此,处于读写器作用范围内的所有电子标签都应对该命令作出应答。签都应对该命令作出应答。8.3 二进制树型搜索算法3二进制树型搜索算法实例 二进制树型搜索算法选择电子标签的迭代过程如图。二进制树型搜索算法选择电子标签的迭代过程如图。8.3 二进制树型搜索算法 如上表所示如上表所示,对于所接收的序列号的对于所接收的序列号的0 0位、位、4 4
43、位和位和6 6位,由于重位,由于重叠着响应的电子标签对这些位的不同内容而造成了冲突(叠着响应的电子标签对这些位的不同内容而造成了冲突(x x)。因)。因此,可以推断在读写器作用范围内存在两个或多个电子标签。仔细此,可以推断在读写器作用范围内存在两个或多个电子标签。仔细观察表明:由于接收的位顺序为观察表明:由于接收的位顺序为1x1x001x1x1x001x,从而可以得出所接收的,从而可以得出所接收的序列号的八种可能性。序列号的八种可能性。第第6 6位是最高的位是最高的x x位,此位在第一次迭代中上出现了冲突。这意位,此位在第一次迭代中上出现了冲突。这意味着:不仅在序列号(味着:不仅在序列号(SN
44、RSNR)11000000b11000000b的范围内,而且在序列号的范围内,而且在序列号(SNRSNR)1 10 0111111b111111b的范围内,至少各有一个电子标签存在。为了的范围内,至少各有一个电子标签存在。为了能选择到一个单独的电子标签,必须根据已有的信息来限制下一次能选择到一个单独的电子标签,必须根据已有的信息来限制下一次迭代的搜索范围。例如,用迭代的搜索范围。例如,用1 10 0111111b111111b的范围内进一步搜索。为的范围内进一步搜索。为此,将第此,将第6 6位置位置“0 0”(有冲突的最高值位),将所有低位置(有冲突的最高值位),将所有低位置“1 1”,从而从
45、而暂时对所有的低值位置不予处理。暂时对所有的低值位置不予处理。8.3 二进制树型搜索算法二进制树型搜索树通过地址参数限制搜索范围的一般规则:二进制树型搜索树通过地址参数限制搜索范围的一般规则:读写器发命令读写器发命令REQUESTREQUEST(1011111110111111)后,所有满足此条件的)后,所有满足此条件的电子标签都要做出应答,并将它们自己的序列号传输给读写器。本电子标签都要做出应答,并将它们自己的序列号传输给读写器。本例中,做出应答的是电子标签例中,做出应答的是电子标签1 1、2 2和和3 3(见第二次迭代)。(见第二次迭代)。现在接收的序列号的第现在接收的序列号的第0 0位和
46、第位和第4 4位上出现了碰撞(位上出现了碰撞(x x)。由此得出)。由此得出结论:在第二次迭代的搜索范围内,至少还存在有两个电子标签。结论:在第二次迭代的搜索范围内,至少还存在有两个电子标签。需要进一步确定的序列号有四种可能性。需要进一步确定的序列号有四种可能性。检 索 命 令 第一次迭代:范围=第n次迭代:范围=请求(REQUEST)范围 0 位(x)=1,位(0 x1)=0请求(REQUEST)范围 序列号(SNR)Max 位(x)=0,位(0 x1)=18.3 二进制树型搜索算法 如果第二次迭代仍然出现冲突,则要求第三次迭代进一步限制如果第二次迭代仍然出现冲突,则要求第三次迭代进一步限制
47、搜索范围。使用表格形成的规则,其搜索范围搜索范围。使用表格形成的规则,其搜索范围1010111110101111。读写器。读写器将命令将命令REQUESTREQUEST(1010111110101111)发送给电子标签。只有电子标签)发送给电子标签。只有电子标签2 2(“1010001110100011”)能满足此条件,该电子标签即单独对命令作出应)能满足此条件,该电子标签即单独对命令作出应答答(见第三次迭代)。(见第三次迭代)。然后,读写器用然后,读写器用SELECTSELECT命令选中电子标签命令选中电子标签2 2,对该选中的电子标,对该选中的电子标签进行签进行READ-DATAREAD-
48、DATA操作。此时其他电子标签则处于静止状态。在完成操作。此时其他电子标签则处于静止状态。在完成READ-DATAREAD-DATA操作后,读写器用操作后,读写器用UNSELECTUNSELECT命令使电子标签命令使电子标签2 2进入进入“无声无声”状态,这样电子标签状态,这样电子标签2 2对后继的请求命令将不再做出应答。对后继的请求命令将不再做出应答。8.3 二进制树型搜索算法 如图形象地描述了上述例子的搜索过程,三次迭代需要不断地如图形象地描述了上述例子的搜索过程,三次迭代需要不断地搜索空间,直到第三次搜索定位到唯一的一个电子标签。搜索空间,直到第三次搜索定位到唯一的一个电子标签。二进制树
49、型搜索树:随着搜索范围的依次变小,最终可以选择一个唯一的电子标签8.3 二进制树型搜索算法 为了从较大量的电子标签中搜索出某个唯一的电子标签,需要为了从较大量的电子标签中搜索出某个唯一的电子标签,需要多次迭代。其平均次数多次迭代。其平均次数L L取决于读写器作用范围内的电子标签总数取决于读写器作用范围内的电子标签总数N N,即,即 可以看出,利用二进制树型搜索算法可以快速简单地解决碰撞可以看出,利用二进制树型搜索算法可以快速简单地解决碰撞问题。如果只有一个电子标签在读写器作用范围内,在这种情况下问题。如果只有一个电子标签在读写器作用范围内,在这种情况下不会出现冲突,只需要一次迭代就可发现电子标
50、签的序列号。如果不会出现冲突,只需要一次迭代就可发现电子标签的序列号。如果有一个以上的电子标签处在读写器作用范围内,那么迭代的平均数有一个以上的电子标签处在读写器作用范围内,那么迭代的平均数增加很快。增加很快。8.3 二进制树型搜索算法n动态二进制树型搜索 二进制树型搜索算法为了选择一个电子标签传输大量多余的数据。如图用X表示最高冲突位的位置,在前述的迭代的最高冲突位上出现了位冲突,即可得出:命令中(X1)0各位不包含给电子标签的补充信息,因为(X1)0各位总是被置为“1”的。电子标签序列号的NX各位不包含给读写器的补充信息,因为NX这些位是已知且给定的。在搜索一个4字节序列号时,读写器的命令