(1)RFID防碰撞概述
快速、准确、有效的防碰撞问题解决方案对RFID技术的发展有着至关重要的作用。标签防碰撞算法就是要解决在读写器的有效通信范围内,多个标签如何同时与读写器进行通信的问题。在高频(HF)频段,标签的防碰撞算法一般采用ALOHA。在超高频(UHF)频段,主要采用二进制树型搜索算法。
RFID系统经常会出现多个读写器以及多个标签的应用场合,从而导致标签之间或读写器之间的相互干扰,这种干扰称为碰撞,也称为冲突。RFID系统存在两类碰撞问题:
①一类称为多标签碰撞问题,即多个标签与同一个读写器同时通信时产生的碰撞。
②另一类称为多读写器碰撞问题,即相邻的读写器在其信号交叠区域内产生干扰,导致读写器的阅读范围减小,甚至无法读取标签。
1)多读写器碰撞
当相邻的读写器作用范围有重叠时,多个读写器同时读取同一个标签时可能会引起多读写器与标签之间的干扰。如图2.5中的标签同时收到3个读写器的信号,标签无法正确解析读写器发来的查询信号。
图2.5 多读写器碰撞
2)多标签碰撞
多标签碰撞是指读写器同时收到多个标签信号而导致无法正确读取标签信息的问题。如图2.6中的读写器发出识别命令后,在标签应答过程中可能会两个或者多个标签同一时刻应答,或一个标签还没有完成应答时其他标签就做出应答。它会使得标签之间的信号互相干扰,从而造成标签无法被正常读取。
图2.6 多标签碰撞
读写器自身有能量供应,能进行较高复杂度的计算,所以读写器能检测到碰撞产生,并通过与其他读写器之间的交流互通来解决读写器的碰撞问题,如读写器调度算法和功率控制算法。
但由于电子标签的低功耗、低存储能力和有限的计算能力等限制,导致许多成熟的防碰撞算法(如空分多路法)不能直接在RFID系统中应用。这些限制主要有:
①无源标签没有内置电源,标签的能量来自读写器,因此算法在执行的过程中,标签功耗要求尽量低。
②RFID系统的通信带宽有限,因此防碰撞算法应尽量减少读写器和标签之间传输信息的比特数目。
③标签不具备检测冲突的功能而且标签间不能相互通信,因此冲突判决需要读写器来实现。
④标签的存储和计算能力有限,这就要求防碰撞协议尽可能简单,标签端的设计不能太复杂。
(2)RFID防碰撞方法分类
防碰撞方法可分为空分多路(SDMA)、频分多路法(FDMA)、码分多路法(CDMA)和时分多路法(TDMA)。但由于种种原因,使用最多的防碰撞方法是时分多路法(TDMA)。
1)空分多路法
空分多路法(SDMA)是在分离的空间范围内实现多个目标识别。一种实现方法是将读写器和天线之间的作用距离按空间区域进行划分,把读写器和天线安置在一个天线阵列中。当标签进入这个天线阵列的覆盖范围后,与其距离最近的读写器对该标签进行识别。由于每个天线的覆盖范围较小,相邻的读写器识别范围内的标签同样可以进行识别而不受相邻读写器的干扰,如果多个标签根据在天线阵列中的空间位置的不同,可以同时被识别。另一种实现方法是读写器利用相控阵天线,让天线的方向性图对准单独的标签,标签根据其在读写器作用范围内的角度位置不同而区别开来。空分多路法的缺点是天线系统复杂,会大幅度提高成本。
2)频分多路法
频分多路法(FDMA)是把若干个使用不同载波频率的调制信号在同时供通信用户使用的信道上进行传输的技术。通常情况下,RFID系统的前向链路(从读写器到标签)频率是固定的,用于能量的供应和数据的传输。对于反向链路,不同标签采用不同频率的载波进行数据调制,信号之间不会产生干扰,读写器对接收到的不同频率的信号进行分离,从而实现对不同标签的识别。
频分多路法的缺点是导致读写器和标签成本要求较高。因此在RFID应用中,频分多路法很少使用。(www.xing528.com)
3)码分多路法
码分多路法(CDMA)是基于扩频通信技术发展起来的。扩频技术包含扩频与多址两个基本概念。扩频目的是扩展信息带宽,即把需发送的具有一定信号带宽的信息数据,用一个带宽远大于其信号带宽的伪随机码进行调制,使原来的信息数据的带宽被扩展,最后通过载波调制发送出去。解扩是指在接收端采用一致的伪随机码,与接收到的宽带信号作相关处理,把宽带信号转换成原来的信息。多址是给每个用户分配一个地址码,码型互不重叠。
码分多路法具有抗干扰性好,保密安全性高,信道利用率高等优点。但是该技术也存在诸多缺点,如频带利用率低、信道容量小,伪随机码的产生和选择较难,接收时地址码捕获时间长等,所以该方法很难应用于实际的RFID系统中。
4)时分多路法
时分多路法(TDMA)是把整个可供使用的通路容量按时间分配给多个用户的技术。时分多路复用是按传输信号的时间进行分割的,它使不同的信号在不同的时间内传输,将整个传输时间分为许多时间间隔,每个时间片被一路信号占用。
TDMA就是通过在时间上交叉发送每一路信号的一部分来实现一条电路传输多路信号的。电路上每一短暂时刻只有一路信号存在。因为数字信号是有限个离散值,所以时分多路复用技术广泛应用于包括计算机网络在内的数字通信系统。
RFID系统的标签防碰撞算法大多采用时分多路法,该方法可分为非确定性算法和确定性算法。非确定性算法也称为标签控制法,在该方法中,读写器没有对数据传输进行控制,标签的工作是非同步的,标签获得处理的时间不确定,因此标签存在“饥饿”问题。ALOHA算法是一种典型的非确定性算法,实现简单,广泛用于解决标签的碰撞问题。确定性算法也称为读写器控制法,由读写器观察控制所有标签。按照规定算法,在读写器作用范围内,首先选中一个标签,在同一时间内读写器与一个标签建立通信关系。二进制树型搜索算法是典型确定性算法,该类算法比较复杂,识别时间较长,但无标签饥饿问题。
(3)常见的防碰撞算法
常见的防碰撞算法有ALOHA算法和二进制树型搜索算法。
1)ALOHA算法
ALOHA算法是一种随机接入方法,其基本思想是采取标签先发言的方式,当标签进入读写器的识别区域内时就自动向读写器发送其自身的ID号,在标签发送数据的过程中,若有其他标签也在发送数据,将会发生信号重叠,从而导致冲突。读写器检测接收到的信号有无冲突,一旦发生冲突,读写器就发送命令让标签停止发送,随机等待一段时间后再重新发送以减少冲突。
①纯ALOHA算法:在纯ALOHA算法中,若读写器检测出信号存在相互干扰,读写器就会向电子标签发出命令,令其停止向读写器传输信号;电子标签在接收到命令信号之后,就会停止发送信息,并会在接下来的一个随机时间段内进入到待命状态,只有当该时间段过去后,才会重新向读写器发送信息。各个电子标签待命时间片段长度是随机的,再次向读写器发送信号的时间也不相同,这样减少碰撞的可能性。
当读写器成功识别某一个标签后,就会立即对该标签下达命令使之进入休眠的状态。而其他标签则会一直对读写器所发出命令进行响应,并重复发送信息给读写器,当标签被识别后,就会一一进入休眠状态,直到读写器识别出所有在其工作区内的标签后,算法过程才结束。
②时隙ALOHA算法:时隙ALOHA算法把时间分成多个离散的时隙,每个时隙长度等于或稍大于一个帧,标签只能在每个时隙的开始处发送数据。这样标签要么成功发送,要么完全碰撞,避免了纯ALOHA算法中的部分碰撞冲突,碰撞周期减半,提高了信道利用率。时隙ALOHA算法需要读写器对其识别区域内的标签校准时间。时隙ALOHA算法是随机询问驱动的TDMA防冲撞算法。
③帧时隙ALOHA算法:帧时隙算法中,时间被分成多个离散时隙,电子标签必须在时隙开始处才可以开始传输信息。读写器以一个帧为周期发送查询命令。当电子标签接收到读写器的请求命令时,每个标签通过随机挑选一个时隙发送信息给读写器。如果一个时隙只被唯一标签选中,则此时隙中标签传输的信息被读写器成功接收,标签被正确识别。如果有两个或两个以上的标签选择了同一时隙发送,则就会产生冲突,这些同时发送信息的标签就不能被读写器成功识别。整个算法的识别过程都会如此循环,一直到所有标签都被识别完成。
④动态帧时隙ALOHA算法:动态帧时隙ALOHA算法中一个帧内的时隙数目随着区域内标签数目动态改变,或增加时隙数以减少帧中的碰撞数目。其步骤如下:
第1步:进入识别状态,开始识别命令中包含了初始的时隙数N。
第2步:由电子标签随机选择一个时隙,同时将自己的时隙计数器复位为1。
第3步:当电子标签随机选择的时隙数与时隙计数器对应时,标签向读写器发送数据;若不相等,标签将保留自己的时隙数并等待下一个命令。
第4步:当读写器检测到的时隙数量等于命令中规定的循环长度N时,本次循环结束,读写器转入第2步,开始新的循环。
该算法每帧的时隙个数N都是动态产生的,解决了帧时隙ALOHA算法中的时隙浪费的问题,适应标签数量动态变化的情形。
动态帧时隙ALOHA算法允许根据系统的需要动态地调整帧长度,由于读写器作用范围内的标签数量是未知的,而且在识别的过程中未被识别的标签数目是改变的,因此,如何估算标签数量以及合理地调整帧长度成为动态帧时隙ALOHA算法的关键。由理论推导可知,在标签数目和帧长度接近的情况下,系统的识别效率最高,也就是说标签的值就是帧长度的最佳选择。
在实际应用中,动态帧时隙算法是在每帧结束后,根据上一帧的反馈情况检测标签发生碰撞的次数(碰撞时隙数),电子标签被成功识别的次数(成功时隙数)和电子标签在某个时隙没有返回数据信息的次数(空闲时隙数)来估计当前未被正确识别的电子标签数目,然后选择最佳的下一帧的长度,把它的帧长度作为下一轮识别的帧长,直到读写器工作范围内的电子标签全部识别完毕。
2)二进制树型搜索算法
二进制树型搜索算法由读写器控制,基本思想是不断地将导致碰撞的电子标签进行划分,缩小下一步搜索的标签数量,直到只有一个电子标签进行回应。实现该算法系统的必要前提是能够辨认出在读写器中数据冲突位的准确位置。为此,必须有合适的位编码法。其基本思想是将处于冲突的标签分成左右两个子集0和1,先查询子集0,若没有冲突,则正确识别标签,若仍有冲突则再分裂,把子集0分成00和01两个子集,依次类推,直到识别出子集0中所有标签,再按此步骤查询子集1。可见,标签的序列号是处理碰撞的基础。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。