RFID防碰撞算法即是射频识别中多标签(tag)向唯一阅读器(reader)发其ID时,阅读器如何用尽量小的算力,控制不同标签,让其串行地发消息的算法。

本文是论文阅读记录。

实现方法主要分两类:确定性算法,概率性算法。当然还有他们的混用。

确定性算法

1.QT算法,二进制搜索算法BSA&动态二进制搜索算法DBSA

比特追踪技术,通常基于曼彻斯特编码,电平跳变不一致即视为碰撞。

2.关键词:连续位置碰撞、映射。《Improved RFID anti-collision algorithm》,Mustapha Djeddou(阿尔及利亚),2012,SCI

发生连续位置碰撞后,如下图2位,将此两位分别置00,01,10,11,低位置1(通配)发包,但这样冗余较多,容易产生空闲时隙。

比较方面

3.关键词:连续碰撞位、映射。《一种基于ISO18000-6B标准的 RFID防碰撞算法》,苏健,2014,电子学报

主要思想是基于2.Mustapha Djeddou提出的,当发生碰撞后发“自定义命令”QueryP,映射规则类似one-hot编码,即能表示当前哪一位出了碰撞。注意:如果连续两位碰撞,则返回4位二进制编码,如果连续三位碰撞,则返回8位二进制编码,这里产生一定的通信量,但好在由标签发出。阅读器收到映射后的独热码后即可知道碰撞标签的id局部信息,比如tag:1001和1111.向阅读器发0001和1000,由于阅读器也遵循同一映射,当它收到0001,它就知道这个tag这两位是00了。

还有一点,这里阅读器发的都是截止到碰撞位的部分编码,也就是抛弃了后边通配的1。

比较方面:平均查询周期(识别一标签需要的平均查询周期(时隙数))、总的传输数据量、能量效率

P.S.随机性算法采用伪随机数RN16进行仲裁,确定性算法则使用标签ID 进 行 仲 裁.通常情况下确定性算法中的碰撞时隙所包含的标签数要多于随机性算法中碰撞时隙所包含的标签数。

值得注意的是,2013年IEEE Communication Letters上发表的算法M-ary Query Tree,在发碰撞位映射的同时,发送剩余位id。可见本文相对于MQT算法仅仅舍去了剩余位id,发在了国内期刊上。

概率性算法

1.ALOHA,Sloted ALOHA,FSA和DFSA

  1. 在纯ALOHA算法中,若读写器检测出信号存在相互干扰,读写器就会以向标签发出命令,令其停止向读写器传输信号;标签在接收到命令信号之后,就会停止发送信息,并会在随机时间段内进入到待命状态,只有当该时间段过去后,才会重新向读写器发送信息。各个电子标签待命时间片段长度是随机的,再次向读写器发送信号的时间也不相同,这样减少碰撞的可能性。当读写器成功识别某一个标签后,就会立即对该标签下达命令使之进入到休眠的状态。而其他标签则会一直对读写器所发出命令进行响应,并重复发送信息给读写器,当标签被识别后,就会一一进入到休眠状态,直到读写器识别出所有在其工作区内的标签后,算法过程才结束。
  2. 时隙ALOHA算法把时间分成多个离散的时隙,每个时隙长度等于或稍大于一个帧,标签只能在每个时隙的开始处发送数据。这样标签要么成功发送,要么完全碰撞,避免了纯ALOHA算法中的部分碰撞冲突,碰撞周期减半,提高了信道利用率。时隙ALOHA算法需要读写器对其识别区域内的标签校准时间。时隙ALOHA算法是随机询问驱动的TDMA防冲撞算法,工作过程如图所示。因为标签仅仅在确定的时隙中传输数据,所以该算法的冲撞发生频率仅仅是纯ALOHA算法的一半,但其系统的数据吞吐性能却会增加一倍。

  3. 帧时隙算法中,时间被分成多个离散时隙,电子标签必须在时隙开始处才可以开始传输信息。读写器以一个帧为周期发送查询命令。当电子标签接收到读写器的请求命令时,每个标签通过随机挑选一个时隙发送信息给读写器。如果一个时隙只被唯一标签选中,则此时隙中标签传输的信息被读写器成功接收,标签被正确识别。如果有两个或两个以上的标签选择了同一时隙发送,则就会产生冲突,这些同时发送信息的标签就不能被读写器成功识别。整个算法的识别过程都会如此循环,一直到所有标签都被识别完成。

  4. 动态帧时隙ALOHA算法允许根据系统的需要动态地调整帧长度,在每帧结束后,根据上一帧的反馈情况检测标签发生碰撞的次数(碰撞时隙数),电子标签被成功识别的次数(成功时隙数)和电子标签在某个时隙没有返回数据信息的次数(空闲时隙数)来估计当前未被正确识别的电子标签数目,然后选择最佳的下一帧的长度,把它的帧长度作为下一轮识别的帧长。

时隙ALOHA算法的信道利用率公式,n为待识别标签数,F为帧长,理论最大值出现在F=n时,为0.368

上图为帧时隙ALOHA算法

  1. Lower bound method将帧长设为碰撞slot个数的二倍。(Transmission control scheme for fast RFIDobject identification,2006,iEEE会议)
  2. FRITS C.Schoute(Dynamic Frame Length ALOHA,1983)考虑到每个时隙标签大于3个的情形。通过构造泊松过程分布函数, 当标签数等于帧长的情况下得到N=2.39·C。
  3. Vogt(2002)通过对实际成功、空闲、碰撞时隙数与理论成功、空闲、碰撞时隙数进行比较, 得出误差最小的结果来估计标签数。但没有考虑tag暂时的失活状态(无法响应reader的request)

在《Novel Anti-collision Algorithms for Fast Object Identification in RFID System》一文中(2005),作者将DSA(Dynamic Slot Allocation)和TEM(Tag Estimation Method)结合,预测待识别的标签数,从而作为预测下一帧帧长的函数。

还有利用贝叶斯公式、马尔科夫链等预测下一帧帧长的算法。

2.基于Q值的DFSA,EPC C1G2标准-防碰撞方案,图源5.

3.Binary Selection算法

当多个标签产生相同随机位Q且发生id碰撞时,Tc都变成Q,若Q不为零下一时刻必然空闲。

4.关键词:标志位。《基于空闲时隙消除的超高频RFID防碰撞算法》,苏健,2017,电子学报

核心技术:

计数器Tc,一位标志位F,一位随机位Q,初始化为(0,0,0)

Tc=0的向reader发Q,如未发生Q碰撞,则Tc=0的F=1并向reader发id,如id碰撞则Tc=0的F置零,否则识别成功,Tc-=1;如发生Q碰撞Tc+=Q或Tc+=1

特点:时隙状态只有ID碰撞,ID成功和Q碰撞,没有空闲,均被tag和reader之间的Q通信和id通信占满。之所以没有Q成功

和BS的区别在于BS发生碰撞后Tc变大且可能Q相同导致变化后Tc相同,本文发生id碰撞后F=0,Tc不变,发生Q碰撞后Tc变大且Q不同从而Tc不同。

4.关键词:利用碰撞信息推理调整Q值。基于时隙预测的 RFID 防碰撞 ALOHA 算法,李萌,通信学报,2011

参考文献:

https://blog.csdn.net/yixueming/article/details/45009303

RFID防碰撞算法学习记录相关推荐

  1. RFID防碰撞算法(三)

    RFID防碰撞算法(三) (2012-02-10 11:08) 标签:  算法  http://blog.chinaunix.net/uid-10604457-id-3069619.html 1.2. ...

  2. 韦冬雪计算机应用,捕获效应下RFID防碰撞算法的研究与应用

    摘要: 作为物联网核心技术之一的射频识别(Radio Frequency Identification,RFID)技术,其应用市场正随着物联网的普及而拓宽.阅读器和标签是RFID系统的重要组成部分,阅 ...

  3. [数据结构与算法] 学习记录合辑 (07) 图

    该合辑为笔者自b站自学的"C++数据结构与算法"课程学习记录,旨在将重要的学习要点.思考内容与部分代码进行记录,以便后续自行翻看,亦可给其他读者带来一些参考 内容基于笔者自身的理解 ...

  4. DETR目标检测算法学习记录

    引言 无论是One Stage中的YOLO还是Two-Stage中的Faster-RCNN,其虽然都在目标检测领域有着一席之地,但无一例外都是基于Anchor的模型算法,这就导致其在输出结果时不可避免 ...

  5. 神经网络之BP算法学习记录(大多借鉴于《神经网络与机器学习——邱锡鹏》)

    神经网络之BP算法 神经网络 前馈神经网络 反向传播算法 损失函数 梯度下降法 梯度下降法在前馈神经网络中的应用 反向传播算法中的梯度下降法 反向传播算法MATLAB示例 使用newff建立神经网络 ...

  6. 关键路径例题图表_算法学习记录-图——应用之关键路径(Critical Path)

    之前我们介绍过,在一个工程中我们关心两个问题: (1)工程是否顺利进行 (2)整个工程最短时间. 之前我们优先关心的是顶点(AOV),同样我们也可以优先关心边(同理有AOE).(Activity On ...

  7. ICP算法学习记录(包括基础概念,计算推导)

    首先,ICP,全称叫做(Iterative Closest Point,迭代最近点),在slam中用来做点云匹配,点云匹配就是将同一个物体,在不同视角下的两组或多组点云,通过旋转加平移让他们匹配起来. ...

  8. 基本算法学习记录---Day2

    并查集模板1 class Solution {int[] root = new int[200000];public int Que() {//初始化for(int i = 1;i<=n;i++ ...

  9. 学习记录(电子信息专业)

    一个电子小白的学习之旅 软件 Java学习记录 数据结构和算法学习记录 C++学习记录 python学习记录 matlab学习记录 altium designer学习记录 multisim学习记录 Q ...

最新文章

  1. Uploadify 上传插件引起Chrome崩溃解决方法
  2. webserver获取http请求方的服务器ip_光大科技基础设施团队剖析HTTP协议
  3. DIV水平方向居中的几种方法
  4. 解析ArcFace源码
  5. 无需predetermine一条路
  6. 电梯tt服务器显示第二行啥意思,【大杂烩】〖其他〗奥的斯电梯服务调试器按键说明(TT)...
  7. 仿英雄联盟比赛直播网页模板
  8. 【Flink】Flink自定义UDF以及为函数启用别名
  9. jhipster详解
  10. LeetCode 101 对称二叉树的几种思路(Python实现)
  11. 【原】数据分析/数据挖掘 入门级选手建议
  12. Backbone的RESTFUL API 解释
  13. Altium Designer(九):DXF+DWG
  14. 五种代理IP proxy的设置方法
  15. 3D数学基础 简要归纳
  16. 2019java后端面试集合篇最值得收藏的(一)
  17. oracle删临时表,ORACLE中创建和删除临时表
  18. KSO-.NETCore部署CentOS7.5中验证码绘图Bitmap类型报错“The type initializer for ‘Gdip‘ threw an exception ”
  19. 深度学习:淘气3000问
  20. 民族学类毕业论文文献有哪些?

热门文章

  1. Axure RP8原型设计(一)
  2. Python爬虫实例:从百度贴吧下载多页话题内容
  3. python中sinxcosy,是1+cosx的一个原函数;的一个原函数是1+cosx
  4. java发布jkd版本更新日期(截至2019)
  5. 最新人人分销程序V9.9商业版+活动模块/数十套微模板
  6. TCP校验和(Checksum)的原理和实现
  7. 渗透测试培训必会工具xray扫描器被动扫描的使用(二)
  8. kindle fire1代_启动新的Kindle Fire时要做的8件事
  9. 脚本录制软件python 按键精灵 tc_用动作脚本的方式介绍如何使用按键精灵的录制功能...
  10. 在树莓派上定时播放语音