(二)标签防碰撞--ALOHA

什么是标签碰撞问题?–当阅读器的识别范围内存在大量标签时,不同标签发出的无线电信号容易引起混淆和干扰,从而造成标签碰撞问题,导致这些标签都不能向阅读器成功发送信息。

因此,防碰撞技术的主要任务是在一定时间内完成对指定标签或者所有标签的识别,即提高系统的吞吐率[2][^1] 。

防碰撞技术在通信领域中又称为多址技术,RFID 阅读器对多个标签的读取过程就是采用的多址方式,目前解决标签碰撞的思路(算法)主要为以下几种(重点前两个):

  1. ⭐⭐ 时分多址(TMDA,Time Division Multiple Access)技术

    将整个传输时间划分为多个时间间隙,每个时隙都只被一路信号占用,通过在时间上交叉发送每一路的部分信号来实现一条电路传输多路信号,如 Aloha 算法。

  2. ⭐⭐ 二进制树算法

    二进制树的基本思想是将处于冲突的标签分成左右两个子集 0 和 1,先查询 0,若没有冲突,则正确识别;若有冲突,则再把子集 0 分成 00 和 01 两个子集,以此往复,直到识别出子集 0 的所有标签,再按照这个思路查询识别子集 1 中的所有标签。

  3. 空分多址(TMDA,Space Division Multiple Access)技术

    将目标区域按照空间分成多个阵列区域,每个区域中放置阅读器和作用范围较小的天线,这样即使相邻的阅读器也不会相互干扰,如果多个标签分布在阵列的不同区域,那么这样的

    做法也可以同时识别这些标签。缺点是对阅读器和天线的要求高,系统更加复杂。

  4. 码分多址(CMDA,Code Division Multiple Access)技术

    利用扩频技术将需要传输的多个信号,用一个带宽远大于这些信号带宽的伪随机码来编码、装载,阅读器端再用同样的伪随机码来解码、接收。缺点是伪随机码的生成比较困难。

  5. 频分多址(FMDA,Frequency Division Multiple Access)技术

    不同的标签采用不同频率的信号对数据进行发送,阅读器对收到的不同频率的信号进行分离识别,从而解决碰撞问题。缺点是对阅读器的硬件要求高。

2.0 Python 删除列表元素的方法
2.0.1 遍历一个删除一个
data = [1,2,3,4,5]

while len(data) > 0:
    print(data[0])
    data.remove(data[0])

2.0.2 遍历时删除指定元素
i = 0
data = [1, 2, 3, 4, 5]

while i < len(data):
    print(data[i])

    if data[i] == 3:
        data.pop(data[i])
        i -= 1  # 删除完之后,列表已经整体前移了,因此这里下标也需要前移
    i += 1
print(data)

2.1 纯 ALOHA 算法

Aloha 算法[3][^2]的基本思想是:当标签进入到阅读器的识别范围,接收到阅读器的识别命令后,以数据包的形式向阅读器发送标签自身的标识符,立即开始等待固定的时间,若在等待时间结束内其他标签也在发送,则会产生信号叠加而引起冲突,阅读器接收到数据包后,判断冲突是否发生:纯 Aloha 的代码实现^((20230824082724-z2xvtkn “[code-1]”))^

  • 没有发生冲突:阅读器正确识别标签并发送确认信息,标签接收到确认 信息后不再发送标识符;
  • 发生冲突:阅读器向该标签发送冲突确认,标签接收到冲突信息,等待的固定时间完成后,会随机独立地等待一段时间再重新发送标识符,直到成功为止。

纯 ALOHA 算法简单且易于实现,但是信道利用率低,不管是完全冲突还是部分冲突,都会停止发送,性能比较差。

image

2.2 改进一 S-ALOHA 算法

时隙(Slotted)-Aloha 算法将纯 ALOHA 算法的时间分为若干大小相等的时间间隙,时隙的设定和时隙开始命令由阅读器统一校准控制,每个时隙 ≥ 标签等待接收确认信息的时间长度,而 标签只能在时隙开始时发送标识符,标签要么成功发送,要么完全碰撞,避免了纯 ALOHA 算法中的部分冲突,碰撞周期减半,阅读器的吞吐量翻倍。时隙 Aloha 算法的代码实现 ^((20230824141601-5b5vyan “[code-2]”))^

image

2.4 改进三 DFS-AlOHA 算法

动态帧时隙(Dynamic-Framed-Slotted)-Aloha 算法一个帧包含的时隙数随着识别区域内的标签数动态变化,解决了 FSA 算法中出现的需要的时隙数与标签数不匹配的问题,思路如下:动态帧时隙-Aloha 算法的代码实现^((20230825100755-uo8hbdf “[code-4]”))^,在帧时隙-Aloha 算法的基础上,设置每轮查询时帧所包含的时隙数随着当前未识别的标签数而动态变化。由于算法中的初始时隙数 N,是根据当轮命令结束时剩余未发送数据的标签数来动态改变的,避免了时隙浪费和耗时增加的问题,提高了阅读器的识别效率。这种算法的缺点是还需要额外对剩余标签总数进行估计。

image

2. 5 改进四 GDFS-Aloha 算法

因 RFID 系统硬件条件的限制,帧长不能无限增加(8,16,32,64,128,256),帧长最大只能包含 256 个时隙,因此当阅读器识别范围内的标签数远大于 256 时,动态帧时隙算法的识别效率显著降低。

因此这里提出,基于分组的动态帧时隙(Group-Dynamic-Framed-Slotted)-Aloha 算法,根据标签与最大帧长的倍数关系,对标签进行分组,再对每个分组使用动态帧时隙算法。基于分组的动态帧时隙算法代码实现^((20230826121438-0ev7hfh “[code-5]”))^

image

  • 22
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值