ALOHA算法是一种随机接入方法。
其基本思想是采取标签先发言的方式,当标签进入读写器的识别区域内时就自动向读写器发送其自身的ID号,在标签发送数据的过程中,若有其他标签也在发送数据,将会发生信号重叠,从而导致冲突。读写器检测接收到的信号有无冲突,一旦发生冲突,读写器就发送命令让标签停止发送,随机等待一段时间后再重新发送以减少冲突。
根据具体实现方法不同,又可以进行细分:
- 纯ALOHA算法
在纯ALOHA算法中,若读写器检测出信号存在相互干扰,读写器就会以向标签发出命令,令其停止向读写器传输信号;标签在接收到命令信号之后,就会停止发送信息,并会在随机时间段内进入到待命状态,只有当该时间段过去后,才会重新向读写器发送信息。各个电子标签待命时间片段长度是随机的,再次向读写器发送信号的时间也不相同,这样减少碰撞的可能性。
当读写器成功识别某一个标签后,就会立即对该标签下达命令使之进入到休眠的状态。而其他标签则会一直对读写器所发出命令进行响应,并重复发送信息给读写器,当标签被识别后,就会一一进入到休眠状态,直到读写器识别出所有在其工作区内的标签后,算法过程才结束。
发送帧不会产生碰撞,可以分析出,即发送成功的概率P与呑吐率与数据包含量有关。具体定量关系大家可以看课本第120页。
- 时隙ALOHA算法
时隙ALOHA算法把时间分成多个离散的时隙,每个时隙长度等于或稍大于一个帧,标签只能在每个时隙的开始处发送数据。这样标签要么成功发送,要么完全碰撞,避免了纯ALOHA算法中的部分碰撞冲突,碰撞周期减半,提高了信道利用率。时隙ALOHA算法需要读写器对其识别区域内的标签校准时间。时隙ALOHA算法是随机询问驱动的TDMA防冲撞算法,工作过程如图所示。
因为标签仅仅在确定的时隙中传输数据,所以该算法的冲撞发生频率仅仅是纯ALOHA算法的一半,但其系统的数据吞吐性能却会增加一倍。
- 帧时隙ALOHA算法
帧时隙算法中,时间被分成多个离散时隙,电子标签必须在时隙开始处才可以开始传输信息。读写器以一个帧为周期发送查询命令。当电子标签接收到读写器的请求命令时,每个标签通过随机挑选一个时隙发送信息给读写器。如果一个时隙只被唯一标签选中,则此时隙中标签传输的信息被读写器成功接收,标签被正确识别。如果有两个或两个以上的标签选择了同一时隙发送,则就会产生冲突,这些同时发送信息的标签就不能被读写器成功识别。整个算法的识别过程都会如此循环,一直到所有标签都被识别完成。
该算法的缺点是当标签数量远大于时隙个数时,读取标签的时间会大大增加;当标签个数远小于时隙个数时,会造成时隙浪费。 一个典型的帧时隙ALOHA算法过程如图所示。
- 动态帧时隙ALOHA算法
动态帧时隙ALOHA算法中一个帧内的时隙数目随着区域内标签数目动态改变,或增加时隙数以减少帧中的碰撞数目。步骤如下:
(1)进入识别状态,开始识别命令中包含了初始的时隙数N。 (2)由电子标签随机选择一个时隙,同时将自己的时隙计数器复位为1。
(3)当电子标签随机选择的时隙数与时隙计数器对应时,标签向读写器发送数据;若不相等,标签将保留自己的时隙数并等待下一个命令。
(4)当读写器检测到的时隙数量等于命令中规定的循环长度N时,本次循环结束,读写器转入步骤(2),开始新的循环。
该算法每帧的时隙个数N都是动态产生的,解决了帧时隙ALOHA算法中的时隙浪费的问题,适应标签数量动态变化的情形。
动态帧时隙ALOHA算法允许根据系统的需要动态地调整帧长度,由于读写器作用范围内的标签数量是未知的,而且在识别的过程中未被识别的标签数目是改变的,因此,如何估算标签数量以及合理地调整帧长度成为动态帧时隙ALOHA算法的关键。由理论推导可知,在标签数目和帧长度接近的情况下,系统的识别效率最高,也就是说标签的值就是帧长度的最佳选择。
在实际应用中,动态帧时隙算法是在每帧结束后,根据上一帧的反馈情况检测标签发生碰撞的次数(碰撞时隙数),电子标签被成功识别的次数(成功时隙数)和电子标签在某个时隙没有返回数据信息的次数(空闲时隙数)来估计当前未被正确识别的电子标签数目,然后选择最佳的下一帧的长度,把它的帧长度作为下一轮识别的帧长,直到读写器工作范围内的电子标签全部识别完毕。 转自:https://me.csdn.net/u013847155