Missing Tag Identification in COTS RFID Systems: Bridging the Gap between Theory and Practice 理解+笔记+翻译

名称:在COTS RFID系统中,丢失标签识别:弥补理论和实际的鸿沟

来源:IEEE TRANSACTIONS ON MOBILE COMPUTING

地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8585054

理解

文章重点内容和脉络

  1. 提出问题:(1)哈希相关的时隙选择 (2)时隙状态的完整可见性

    主要问题:在假设标签的响应时隙可以通过哈希操作预测的基础上,提出了大量工作来加速识别过程。虽然这些工作有望提高时间效率,但现实情况是,广泛部署的Gen2标签无法支持作为这些工作前提的哈希函数。此外,没有制造商宣布哈希函数将在不久的将来打包成商业标签。

    现有的工作要求阅读器报告空时隙,这在当前的COTS设备中是不受支持的

    主要原因:哈希函数硬件设计带来的高能耗和制造成本

  2. 简述解决方案:首先开发了一个点对多点协议(名为P2M)。P2M使用Q-command查询标签,这是Gen2标准中事实上的随机访问协议,通过仔细配置询问持续时间2^Q,可以在限定的最坏情况时间内完成任务。为了提高P2M的时间效率,我们设计了一个点对点协议(称为P2P),该协议可以使用选择性位掩码对每个时隙中的标签进行奇点化,并确保在所有时隙中成功通信。

    所提出的解决方案不需要Hash函数。通过使用Gen2标准中指定的命令(如Q-command和Select命令),设计了两个与Gen2兼容的缺失标签识别协议。

  3. P2M详述:

    1. 阅读器可以通过Q查询收集其覆盖范围内存在的标签的所有EPC,因此它将收集的EPC与数据库中记录的EPC进行比较。如果收集的EPC集合中不存在一些记录的EPC,则这些标签丢失,因此可以由阅读器识别。这种比较是在Q-query结束时进行的。
    2. 问题:P2M中的主要问题是何时应该终止Q查询。
    3. 编码方法:
      1. Gen2标准规定了tag-to-reader链接的四种编码方法:FM0、M2(Miller2)、M4(Miller4)和M8(Miller8)。数据速率取决于BLF和使用的编码方法。
      2. Reader-to-rag的符号是振幅调制脉冲间隔编码(PIE)符号,模拟比较器足以对其进行解码。PIE 中的符号‘0’包含两个长度相同的区间,即开机和关机(PW:脉冲宽度)。Tari(A类参考区间)是data-0的持续时间,而data-1的持续时间是data-0的x倍,x∈[0.5,1]。Tari值可设置为6.25、12.5或25 μs,对应于160、80和40 kbps的速率。
    4. 配置参数Q:
      1. Q-query指令本质上是一个随机访问过程,标签在询问开始时随机设置其各自的计数器。阅读器无法预测标签选取的值。考虑任意时隙i,将有三种状态:

        • 如果只有一个标签应答,即该标签唯一地选择值i,则它是一个单时隙;
        • 如果有多个标签应答,即这些标签选取的值i,则为冲突时隙;
        • 如果没有标签应答,即没有标签选择值i,则为空时隙。
      2. 只有单时隙对EPC收集有用,而碰撞和空时隙则无用,因此自然优化标准是以高概率确保询问中存在n个单时隙,这意味着不会发生碰撞
      3. 为了避免高概率碰撞,需要将2^Q设置为f(n^2)。通过这个理论结果的指导,我们将Q设置为2logn,其中log表示以2为底的对数。在这种配置下,Q-query持续n^2时隙。
      4. 设置Q=2 log n,以确保没有冲突,并且这有m个丢失标签,那么,在询问中将有n-m个单时隙和n^2-n+m个空时隙
  4. P2M效率计算:

    • 单时隙大小:单时隙由RN16、ACK、EPC以及命令间时间T1和T2组成。计算单时隙的大小为ACK⋅Tari+RN16+EPCBLF/j+2(T1+T2)ACK·Tari+\frac{RN16+EPC}{BLF/j}+2(T_1+T_2)ACK⋅Tari+BLF/jRN16+EPC​+2(T1​+T2​),其中j∈{1,2,3,4}表示不同的tag-to-reader编码方式。
    • 空时隙大小:一个空时隙包含两个间隔T1和T3,因此其长度等于T1+T3。
    • 时隙间时间:查询开始时有一个查询命令,任意两个连续时隙之间有一个QueryRep,时间是(Query + (n^2-1) · QueryRep)·Tari

    ​ 总体询问时间:
    (n−m)⋅(ACK⋅Tari+RN16+EPCBLF/j+2(T1+T2))+(Query+(n2−1)⋅QueryRep)⋅Tari+(n2−n+m)(T1+T3)(n-m)·(ACK·Tari+\frac{RN16+EPC}{BLF/j} + 2(T_1+T_2))+\\(Query+(n^2-1)·QueryRep)·Tari+(n^2-n+m)(T_1+T_3) (n−m)⋅(ACK⋅Tari+BLF/jRN16+EPC​+2(T1​+T2​))+(Query+(n2−1)⋅QueryRep)⋅Tari+(n2−n+m)(T1​+T3​)

  5. P2M的问题:P2M将Q设置为2 log n,这会导致大量的空时隙从而导致浪费时间。

  6. P2P详述:

    1. 为了在提高时间效率的同时避免碰撞事件,我们提出了一种点对点的P2P模式,它能够在每个时隙中对标签进行奇点化。
    2. P2P可以分配应答顺序并避免碰撞。
    3. Gen2标准提供了一个Select命令,允许阅读器根据用户定义的标准有选择地读取标签的子集。
    4. 选择性查询包括两个阶段:标签过滤和标签查询。(+丢失标签识别)
      1. 标签过滤:阅读器发出一个指定bitmask的Select,并且将由标签执行的操作。在接收Select时,每个标签都会检查reader-to-tagbitmask是否匹配。如果是,它将断言其标志变量SL;否则,它将取消SL。通过仔细设计bitmask,我们可以确保只有一个标签可以通过bitmask比较。
      2. 标签查询:阅读器进一步发送一个Query,该Query指定带有确定的SL的标签来应答。由于在P2P中只有一个标签满足要求,因此该标签是唯一一个使用其RN16响应查询的标签。随后,阅读器使用解码的RN16发送ACK,并准备接收该标签的EPC。
      3. 丢失标签识别:指定一个单独的标签来回复。如果此标签没有响应,则阅读器将知道其不存在。因此,P2P可以在n次选择性查询后识别所有m个丢失的标签。此外,P2P还可以在最多n - m个选择性查询中检测缺失的标签。
  7. P2P执行时间:

    1. n-m 个 P2P选择性查询的长度包含Select、T4、查询和长度等于P2M中长度的单时隙:

      (Select+Query+ACK)⋅Tari+RN16+EPCBLF/j+T4+2(T1+T2)(Select+Query+ACK)·Tari+\frac{RN16+EPC}{BLF/j}+T_4+2(T_1+T_2)(Select+Query+ACK)⋅Tari+BLF/jRN16+EPC​+T4​+2(T1​+T2​)

    2. m 个 空时隙:

      (Select+Query+ACK)⋅Tari+T4+T1+T3(Select+Query+ACK)·Tari+T_4+T_1+T_3(Select+Query+ACK)⋅Tari+T4​+T1​+T3​

    3. 总的执行时间:

    (n−m)⋅((Select+Query+ACK)⋅Tari+RN16+EPCBLF/j+T4+2(T1+T2))+m⋅((Query+Select)⋅Tari+T4+T1+T3)(n-m)·((Select+Query+ACK)·Tari+\frac{RN16+EPC}{BLF/j}+T_4+2(T_1+T_2))+\\m·((Query+Select)·Tari+T_4+T_1+T_3) (n−m)⋅((Select+Query+ACK)⋅Tari+BLF/jRN16+EPC​+T4​+2(T1​+T2​))+m⋅((Query+Select)⋅Tari+T4​+T1​+T3​)

  8. bitmask介绍和利用

    1. 介绍:

      1. MemBank、Pointer和Length的组合指定了标签需要在其内存中搜索的位字符串的位置,而Mask记录了标签将与位字符串进行比较的bitmask内容。
      2. 通过设置MemBank=01_2从标签EPC构建bitmask。EPC是唯一的,并且已经存储在标签中,因此P2P不需要向标签写入新数据。
      3. 实现过滤阶段
    2. 确定性算法寻找合适的bitmask:

      1. 让l=1,我们从n个标签中任意选择一个。
      2. 给定l和这个标签EPC,我们将它的第一个l位段(即最左侧)与其他n - 1标签EPC进行比较。
      3. 如果我们发现该段是唯一的,它可以用作bitmask和Pointer=00000000_2,则搜索过程将终止;否则,该标签在时间上被视为无用,我们从n - 1标签中选择另一个标签,将其第一个l位段与其他n - 1标签EPC中的l位段进行比较。此步骤将一直运行,直到找到唯一的l位段或任何两个标签都相互比较过为止。
      4. 如果在第二步中找不到唯一的l位段,我们将用第二个l位段重复第二步中的操作。如果这次成功,则将该段分配给Mask,Pointer=00000001_2;否则我们设置l=l+1。如果找到bitmask或l=a log n,则第三步停止。如果找到一个bitmask,也就是说,我们可以有选择地查询与该bitmask匹配的标签,然后算法继续运行以查找另一个标签的bitmask。

    3. 概率性算法寻找合适的bitmask:

      1. 设置l和另一个参数z,z代表该算法的执行轮数
      2. 任意选择一个标签并选择其EPC的第一个(最左侧)段。然后,我们将该片段与其他n - 1标签进行比较。如果该段是唯一的,我们将其用作bitmask并设置Pointer = 00000000_2,则算法停止;否则,我们选择第二段,并重复上述操作。当找到唯一段或执行的轮数超过z时,算法终止。
      3. 为了在P2P中找到所有标签的bitmask,该方法需要运行n次。

  9. 实验比较:

    1. 比较P2M与确定性算法选择bitmask的P2P之间的性能
    2. 验证概率性算法选择bitmask的P2P的正确性
    3. 比较P2M与概率性算法选择bitmask的P2P之间的性能

文章中的符号

  1. Tari:

    发送到 UHF EPC Gen 2 标签的能量脉冲持续时间,以二进制代码表示 0。 符合 EPC Gen 2 标准的阅读器使用脉冲间隔编码 (PIE) 对二进制数据进行编码。 二进制“0”由一个短的高电平脉冲指示,然后是一个等长的低电平脉冲。 TARI 的长度可以从 6.25 到 25 微秒不等…发送到 UHF EPC Gen 2 标签以指示二进制代码中的 0 的能量脉冲的持续时间。 符合 EPC Gen 2 标准的阅读器使用脉冲间隔编码 (PIE) 对二进制数据进行编码。 二进制“0”由一个短的高电平脉冲表示,然后是一个等长的低电平脉冲。 TARI 的长度可以从 6.25 到 25 微秒不等。

    Tari = 12.5μs

    BLF = 640kHZ

  2. 奇点化:本文中的意思就是P2P,就是使用select bitmask 选择一个标签,将其他标签过滤的过程。

  3. P2M:一对多是指,每个时隙都面向多个Tag,标签可以进行随意选择。

  4. P2P:一对一是指,每个时隙都面向一个标签,其他标签被过滤掉。

  5. l : Length

  6. p : Pointer

  7. x(p,l) : 标签x的 开始位置p和长度为l的mask

  8. z : 算法执行的回合数

引文

[21] On synopses for distinct-value estimation under multiset operations

[20] 概率与计算

来源:Proceedings of the 2007 ACM SIGMOD international conference on Management of data

地址:https://dl.acm.org/doi/abs/10.1145/1247480.1247504

  1. 由于正常情况下,帧长越长,则碰撞的概率就会越小
  2. 随机算法问题,当帧长足够长时,则可以避免碰撞从产生,其中量级为O(n^2)
  3. 通过资料可以看出,当帧长$2^Q = n^2 即 Q =2log_2n $,时,不存在冲突的概率仅是大于0.5

自我提升

Select Function

  1. Action

    1. Action指定了表1中列出的八种类型的标签行为
  2. MemBank

    标签将搜索哪个标签内存模型,以与接收到的bitmask进行比较。MemBank=00200_2002​是保留内存,用于存储与标签相关的密码。如果MemBank=01_2;10_2; 11_2然后,标签在存储标签EPC的EPC内存库、指定永久标签和制造商特定信息的TID内存库、可使用用户定义数据写入的用户内存库 中搜索bitmask。

  3. Pointer

    记录所选 MemBank 中的起始位位置以进行bitmask比较。

  4. Length

    指定bitmask长度。

  5. Mask

    记录位字符串的bitmask内容。

Bitmask Selection

  1. 过程如上文章重点介绍
  2. 整理
  3. 代码实现如下

算法实现及整个过程实现

翻译

1 摘要和介绍

​ 随着射频识别(RFID)技术的快速发展,越来越多的研究致力于设计各种支持RFID的服务。缺失标签识别(missing tag identification,简称缺失标签识别)是库存管理等物联网应用中最重要的服务之一。之前关于缺失标签检测的工作都依赖于在单个标签上实现的哈希函数。本文致力于用COTS Gen2设备检测缺失的标签。我们首先介绍一个名为P2M的点对多点协议,该协议在模拟帧时隙Aloha范例中工作,用于询问标签并收集其电子产品代码(EPC)。如果收集到的标签中没有EPC,则会发现缺失的标签。为了减少标签响应冲突导致的P2M的时间开销,我们进一步提出了一种无碰撞点对点协议,名为P2P,该协议在每个时隙中选择性地指定一个标签以其EPC进行应答。如果未收到EPC,则认为该标签缺失。我们开发了两种位掩码选择方法来支持选择性查询,同时减少通信开销。我们使用COTS RFID设备实现了P2M和P2P,并评估了它们在不同设置下的性能。

1.1 背景和动机

​ 近年来,射频识别(RFID)技术得到了前所未有的发展[1]。RFID的显著优势,如商业标签的低制造成本(例如,每标签5美分[2])、无线非视线通信和批量标签识别,使其广泛应用于库存控制、供应链管理、物品定位到人机交互等各种场景。

​ 为了在全球范围内实现RFID的商业应用,成立于2003年的EPCglobal组织为超高频(UHF)RFID系统开发了Gen2空中接口协议[11]。该协议已被采纳为ISO 18000-6C标准,并已成为ImpinJ[12]和ThingMagic series[13]等商用现货(COTS)RFID设备的全球主流规范。Gen2 RFID系统包括两种类型的设备:无源RFID标签和RFID阅读器。无源标签是一种重量轻、无电池的设备,可以记录物理对象的信息,并能够捕获其附近RFID读取器的无线信号中的能量,并通过调整其天线上的阻抗匹配来调制该信号,从而将0和1的信息反向散射到读取器。

​ 识别丢失的标签是最重要的支持RFID的服务之一,它可以完全精确地定位应该在读卡器覆盖范围内但不存在的标签。根据[14]中的统计数据,2016年,库存缩减、商店盗窃、内部盗窃、管理和文书错误以及供应商欺诈等因素共同导致零售商损失约490亿美元。在这种情况下,RFID提供了一种很有希望的技术,通过部署一个读卡器来监控其覆盖范围内产品上的被动标签,并定期进行缺失标签识别,以及时发现缺失的物品,从而减少财务损失。

1.2 之前研究的限制

​ COTS Gen2设备缺失标签识别的十年间。关于缺失标签识别的研究大约在10年前在研究界开始,从那时起,十年的努力一直致力于减少通信开销,产生了大量的工作。然而,之前的工作都与Gen2标准不兼容,因此无法在实践中实现,这就留下了数十亿部署的COTS标签。之前工作的失败主要有两个原因:

​ (1)哈希相关的时隙选择:先前关于缺失标签识别的工作需要标签中的哈希功能,以便每个标签可以选择并响应一个随机但可预测的时隙,该时隙对应于其电子产品代码(EPC)和随机种子的哈希值。因此哈希功能从未在任何COTS标签中实现,否则会产生高能耗和制造成本(超过1000门等效硬件),这与人们对RFID的期望相矛盾。

​ (2)时隙状态的完整可见性:之前的工作必须明确知道每个时隙的状态,例如,空和忙,这取决于该时隙中标签的一位响应数,并利用应该是忙时隙的空时隙来识别丢失的标签。而 COTS Gen2 阅读器仅在某个时间间隔内报告成功读取,从而禁用空槽的实用程序。因此,之前的工作无法在COTS RFID设备中实现。

​ 基于上述观察,我们认为需要对COTS Gen2设备的缺失标签识别进行系统研究,以最大限度地发挥广泛部署的Gen2 RFID系统的功能,并减少经济损失。

1.3 提出方案

​ 为了解决这个问题,我们开发了两个协议,它们能够在与Gen2标准和现有COTS设备兼容的同时,完全定位缺失的标签。具体来说,我们首先开发了一个点对多点协议(名为P2M)。P2M使用Q-command查询标签,这是Gen2标准中事实上的随机访问协议,通过仔细配置询问持续时间2^Q,可以在限定的最坏情况时间内完成任务。为了提高P2M的时间效率,我们设计了一个点对点协议(称为P2P),该协议可以使用选择性位掩码对每个时隙中的标签进行奇点化,并确保在所有时隙中成功通信。为此,我们提出了两种位掩码选择方法,在通信开销和计算复杂度之间进行权衡。

​ 我们使用COTS Gen2设备在广泛的场景中实现P2M和P2P:一个ImpinJ阅读器和20个ImpinJ Monza标签。结果表明,P2P在识别所有缺失标签和检测第一个缺失标签方面的时间效率分别是P2M的4倍和6倍。我们还验证了P2P在大型系统中的位掩码选择方法的正确性。

2 系统模型和问题描述

​ 典型的Gen2 RFID系统由一个读卡器和多个被动标签组成。阅读器可以对标签进行充电、同步和收集信息,而每个带有EPC的标签通常附着在物理对象上,在标签和对象之间生成一对一的映射。为了与无电池标签交互,阅读器最初会向标签发送连续波。标签一方面从入射波中捕获能量为自己供电,另一方面利用该波作为载体,通过开关键控反向散射其信息位。具体来说,标签通过调整天线上的阻抗匹配来发送“1”位,以反映读卡器的波,通过保持沉默来发送“0”位。

​ 丢失的标签识别问题。考虑包含读取器和n个标签{x1,x2,x3,…xn},并且阅读器知道所有标签的EPC,存在一个事件,即n个标签中有m个由于这些标签损坏或其相应物体消失而丢失。缺失标签识别问题是准确地找到m个缺失标签。在这个问题中,最重要的指标是执行时间,即完成任务所花费的时间。越早发现缺失的产品,财务损失就越显著。

​ 以前工作的局限性。在假设标签的响应时隙可以通过哈希操作预测的基础上,提出了大量工作来加速识别过程。虽然这些工作有望提高时间效率,但现实情况是,广泛部署的Gen2标签无法支持作为这些工作前提的哈希函数。此外,没有制造商宣布哈希函数将在不久的将来打包成商业标签。

​ 为什么COTS标签不支持哈希功能?其主要原因在于哈希函数硬件设计带来的高能耗和制造成本。特别是,当前常用的哈希函数需要数千个门等价物,例如SHA-1和SHA-256[16]需要8120和10868门等效电路,功耗分别为10.68 mA和15.87 mA。即使是理论上提出的最紧凑的哈希函数,也不适用于COTS标记,例如PRESENT80[17],仍然需要1075门等效值。考虑到RFID的巨大市场(如2017年的1:82 1010标签),在标签中启用哈希功能将产生极高的成本。

​ 所提出的解决方案不需要Hash函数。在Gen2系统中,如何在没有哈希函数的情况下识别所有缺失的标签仍然是一个悬而未决的问题。为了弥补这一差距,我们通过使用Gen2标准中指定的命令(如Q-command和Select命令),设计了两个与Gen2兼容的缺失标签识别协议。由于我们的协议可以在COTS RFID设备中实现,因此它们可以用于在沃尔玛[18]和River Island[19]等RFID部署场景中识别丢失的物品,以减少甚至避免因产品丢失事件造成的财务损失。

​ 在下面的内容中,我们描述了P2M,它以点对多点的方式运行,使用Q命令查询系统中的所有标记。然后,我们展示了第二项工作,即P2P,它使用独占位掩码确保每个时隙中的点对点通信,并避免空时隙和冲突时隙。

3 P2M : Point-To-MultiPoint Missing Tag Identification

​ 在本节中,我们将介绍第一个与Gen2兼容的协议,点对多点Q-query及其在识别缺失标签中的应用,然后展示参数配置和时间成本计算。

3.1 Point-to-Multipoint Q-Query

​ Gen2标准规定了阅读器如何查询标签。首先,阅读器发送一个查询命令来启动查询。此命令包含反向散射链路频率(BLF)、标签到阅读器的编码方法和用于指定此查询轮中时隙数的Q参数。通过参数Q,每个标签能够通过选择0-2^Q -1 中的随机值来确定其响应时隙,时隙计数器=此值。如果该计数器等于0,则标签立即回复16位随机数(RN16);否则应保持沉默。当从标签接收到RN16时,阅读器发送包含解码的RN16的ACK以确认该标签。如果标签确认阅读器对标签RN16的正确性,则标签将其EPC反向散射到阅读器。随后,阅读器发出QueryRep命令标签减少其时隙计数器,计数器等于0的标签用另一个RN16回复,表示新时隙的开始。图1示出了Q查询过程,并显示了两个连续命令(如T1、T2和T3)之间存在等待时间。

​ 由于阅读器可以通过Q查询收集其覆盖范围内存在的标签的所有EPC,因此它将收集的EPC与数据库中记录的EPC进行比较。如果收集的EPC集合中不存在一些记录的EPC,则这些标签丢失,因此可以由阅读器识别。这种比较是在Q-query结束时进行的。P2M优于现有的工作,因为它们需要从COTS阅读器无法获取的所有时隙状态的知识。P2M中的主要问题是何时应该终止Q查询。

3.2 编码方法

​ 对低成本、小尺寸和无电池标签的追求严重限制了它们的计算和硬件能力。因此,以一种极其简单和健壮的方式对数据进行编码和解码是非常重要和必要的。实际上,Reader-to-rag的符号是振幅调制脉冲间隔编码(PIE)符号,模拟比较器足以对其进行解码。如图 2 所示,PIE 中的符号‘0’包含两个长度相同的区间,即开机和关机(PW:脉冲宽度)。Tari(A类参考区间)是data-0的持续时间,而data-1的持续时间是data-0的x倍,x∈[0.5,1]。Tari值可设置为6.25、12.5或25 μs,对应于160、80和40 kbps的速率。与轻量级标签不同,阅读器具有很强的解码能力。Gen2标准规定了tag-to-reader链接的四种编码方法:FM0、M2(Miller2)、M4(Miller4)和M8(Miller8)。数据速率取决于BLF和使用的编码方法。例如,如果BLF为320 kHz,则FM0、M2、M4和M8的数据速率分别为320/1、320/2=160、320/4=80、320/8=40 kbps。

3.3 参数Q的配置

​ 从Q-query的描述中,我们可以观察到它本质上是一个随机访问过程,标签在询问开始时随机设置其各自的计数器。阅读器无法预测标签选取的值。考虑任意时隙i,将有三种状态:

  • 如果只有一个标签应答,即该标签唯一地选择值i,则它是一个单时隙;
  • 如果有多个标签应答,即这些标签选取的值i,则为冲突时隙;
  • 如果没有标签应答,即没有标签选择值i,则为空时隙。

​ 我们在图1中进行说明,其中一个标签在第一个时隙中应答,然后两个标签和无标签分别在第二和第三个时隙中应答。

​ 在这些状态中,只有单时隙对EPC收集有用,而碰撞和空时隙则无用,因此自然优化标准是以高概率确保询问中存在n个单时隙,这意味着不会发生碰撞。从技术上讲,Q查询过程可以表述为经典的Ball-into-Bins(球放到桶中)问题。具体来说,n个标签是球和2^Q的值(或时隙)是箱子。为了避免高概率碰撞,需要将2^Q设置为f(n^2)。通过这个理论结果的指导,我们将Q设置为2logn,其中log表示以2为底的对数。在这种配置下,Q-query持续n^2时隙。

​ 通过这种设置,我们的点对多点协议就足以知道单时隙,这非常适合今天的COTS设备。相比之下,我们注意到现有的工作要求阅读器报告空时隙,这在当前的COTS设备中是不受支持的。

3.4 循环持续时间的计算

​ 如图1所示,三种类型的时隙在其时隙持续时间上不同。因此,询问持续时间计算的第一步是计算每种类型中的时隙数。回想我们设置Q=2 log n,以确保没有冲突,并且这有m个丢失标签,那么,在询问中将有n-m个单时隙和n^2-n+m个空时隙,因此,关键是计算单时隙和空时隙的大小。为此,我们进一步放大图1中的每个时隙,并获得以下观察结果:

  • 单时隙大小:单时隙由RN16、ACK、EPC以及命令间时间T1和T2组成。因此可以计算一个单时隙的大小为ACK⋅Tari+RN16+EPCBLF/j+2(T1+T2)ACK·Tari+\frac{RN16+EPC}{BLF/j}+2(T_1+T_2)ACK⋅Tari+BLF/jRN16+EPC​+2(T1​+T2​),其中j∈{1,2,3,4}表示不同的tag-to-reader编码方式。
  • 空时隙大小:一个空时隙包含两个命令间隔T1和T3,因此其长度等于T1+T3。
  • 时隙间时间:查询开始时有一个查询命令,任意两个连续时隙之间有一个QueryRep,所以整个查询的总时隙间时间应该是(Query + (n^2-1) · QueryRep)·Tari

​ 根据这些观察结果,现在我们能够确定P2M的总体询问时间为
(n−m)⋅(ACK⋅Tari+RN16+EPCBLF/j+2(T1+T2))+(Query+(n2−1)⋅QueryRep)⋅Tari+(n2−n+m)(T1+T3)(n-m)·(ACK·Tari+\frac{RN16+EPC}{BLF/j} + 2(T_1+T_2))+\\(Query+(n^2-1)·QueryRep)·Tari+(n^2-n+m)(T_1+T_3) (n−m)⋅(ACK⋅Tari+BLF/jRN16+EPC​+2(T1​+T2​))+(Query+(n2−1)⋅QueryRep)⋅Tari+(n2−n+m)(T1​+T3​)

4 P2P : Point-To-Point Missing Tag Identifucation

​ 我们前面提出的第一个命题遵循点对多点范式。由于其随机性,多个标签可能同时回复RN16,导致在阅读器端解码失败。处理标签碰撞的步骤,P2M将Q设置为2 log n,这会导致大量的空时隙和浪费时间。为了在提高时间效率的同时避免碰撞事件,我们提出了一种点对点的P2P模式,它能够在每个时隙中对标签进行奇点化。如图3所示,阅读器不能控制P2M中标签的响应时隙,从而使其遭受碰撞。相反,P2P可以分配应答顺序并避免碰撞,例如标签1-5按顺序在时隙1到5中应答。在接下来的内容中,我们首先阐述丢失标签识别过程,然后演示如何构建有效的bitmask。

4.1 Point-to-Point Selective Query

​ Gen2标准提供了一个Select命令,允许阅读器根据用户定义的标准有选择地读取标签的子集。如图4所示,选择性查询包括两个阶段:标签过滤和标签查询。首先,阅读器发出一个指定bitmask的Select,并且将由标签执行的操作。在接收Select时,每个标签都会检查reader-to-tagbitmask是否匹配。如果是,它将断言其标志变量SL;否则,它将取消SL。通过仔细设计bitmask,我们可以确保只有一个标签可以通过bitmask比较,这将在稍后介绍。然后阅读器进一步发送一个Query,该Query指定带有确定的SL的标签来应答。由于在P2P中只有一个标签满足要求,因此该标签是唯一一个使用其RN16响应查询的标签。随后,阅读器使用解码的RN16发送ACK,并准备接收该标签的EPC。当此查询完成时,阅读器将重复上述过程以逐个读取标签。

​ P2P的理想特性是它能够指定一个单独的标签来回复。如果此标签没有响应,则阅读器将知道其不存在。因此,P2P可以在n次选择性查询后识别所有m个丢失的标签。此外,P2P还可以在最多n - m个选择性查询中检测缺失的标签。

4.2 计算总体P2P执行时间

​ 如图1和图4所示,当前标签上的P2P选择性查询的长度包含Select、T4、查询和长度等于P2M中长度的单时隙。如果查询到缺少的标签,则此查询持续时间的组和几乎与之前的相同,只是时隙持续时间变为空时隙大小,而不是单时隙大小。因此,回想第3.4节,我们知道这需要P2P时间是(Select+Query+ACK)⋅Tari+RN16+EPCBLF/j+T4+2(T1+T2)(Select+Query+ACK)·Tari+\frac{RN16+EPC}{BLF/j}+T_4+2(T_1+T_2)(Select+Query+ACK)⋅Tari+BLF/jRN16+EPC​+T4​+2(T1​+T2​),以实现对当前标签的选择性查询。其中j∈{1,2,3,4}表示不同的tag-to-reader编码方式。因此,P2P的总体时间成本是
(n−m)⋅((Select+Query+ACK)⋅Tari+RN16+EPCBLF/j+T4+2(T1+T2))+m((Query+Select)⋅Tari+T4+T1+T3)(n-m)·((Select+Query+ACK)·Tari+\frac{RN16+EPC}{BLF/j}+T_4+2(T_1+T_2))+\\m((Query+Select)·Tari+T_4+T_1+T_3) (n−m)⋅((Select+Query+ACK)⋅Tari+BLF/jRN16+EPC​+T4​+2(T1​+T2​))+m((Query+Select)⋅Tari+T4​+T1​+T3​)
​ 在描述了P2P的过程之后,我们接下来将解释如何在我们的丢失标签识别协议中设计P2P中的关键功能Select。

4.3 Select Function

​ Select命令中有六个必填字段,如图5所示,我们将介绍与我们的设计相关的五个字段。

  1. Action指定了表1中列出的八种类型的标签行为。在我们的场景中,我们使用第一种类型,即Action = 0002000_20002​来指定标签操作。具体来说,与接收到的bitmask匹配的标签(称为匹配标签)将断言SL,而其他标签(称为不匹配标签)将取消断言SL。
  2. MemBank表示标签将搜索哪个标签内存模型,以与接收到的bitmask进行比较。MemBank=00200_2002​是保留内存,用于存储与标签相关的密码。如果MemBank=01_2;10_2; 11_2然后,标签在存储标签EPC的EPC内存库、指定永久标签和制造商特定信息的TID内存库、可使用用户定义数据写入的用户内存库 中搜索bitmask。本文中我们采用了EPC内存库,即MemBank = 01_2。
  3. Pointer记录所选 MemBank 中的起始位位置以进行bitmask比较。
  4. Length指定bitmask长度。如果 MemBank = M,Pointer = p 和 Length = l,那么标签将bitmask与其内存模型 M 中从第 p 位到第 (p+l-1) 位开始的位进行比较。
  5. Mask 记录位字符串的bitmask内容。 标签将其与其内存中的指定位字符串进行比较。

​ 从上面的描述中,我们观察到MemBank、Pointer和Length的组合指定了标签需要在其内存中搜索的位字符串的位置,而Mask记录了标签将与位字符串进行比较的bitmask内容。因此,我们用BM来表示一个bitmask,即BM=(M,p,l,Mask)BM=(M,p,l,Mask)BM=(M,p,l,Mask)。

​ 在P2P中,我们通过设置MemBank=01_2从标签EPC构建bitmask。EPC是唯一的,并且已经存储在标签中,因此P2P不需要向标签写入新数据。我们通过一个例子来进一步说明它的应用。如图6所示,阅读器发送将EPC 1010指定为bitmask的Select。收到此命令后,每个标签检查其EPC中从第一位到第四位的位字符串,并将其与Mask中接收到的位字符串进行比较。因为只有灰色标签符合条件,所以它将断言其SL并等待传入的查询,而其他标签将保持沉默。我们在图7中展示了这个例子的Java实现。由于标签EPC从内存中的第32位开始,因此实现中的Pointer设置为0x20。

​ 到目前为止,我们已经介绍了P2P的框架和Select功能,剩下的最后一个问题是如何有效地配置bitmask,即Mask。

4.4 bitmask选择

​ 回想一下,在P2P中,阅读器试图在每个时隙中将标签与其他标签区分开来。为此,一种直接的方法是将Mask设置为标签EPC,如图6中的示例所示。虽然这样的配置是有效的,但效率很低。回想图5,Select命令的长度为45位,不包括Mask。如果我们在Mask中使用96位EPC,它是其他字段的两倍以上,占整个Select的三分之二。如果我们能使用更短的Mask,效率就会提高。例如,将图 6 中的 Select 重新配置为 Pointer = 00000000_2, Length = 00000001_2, Mask = 1_2 当标签将其 EPC 的第一位与 Mask 进行比较时,我们可以使灰色标签成为唯一满足要求的标签为 1bit Mask而不是前 4 位。

​ 受上述示例的启发,我们开发了使用标签EPC的一部分而不是整个来构建bitmask的潜力。虽然96 ~ 496位EPC可以由ImpinJ Monza Tag支持,但本文中我们使用96位EPC,但我们的工作可以直接用于EPC长度超过96位的场景。我们知道96-bits的字符串可以唯一确定296=7.9∗10282^{96} = 7.9 * 10^{28}296=7.9∗1028。由于一个系统中标签的数量通常比这个数量小得多,因此与总共2^96个EPC相比,Gen2系统中当前的EPC是稀疏的。我们可以利用这种稀疏性来设计更有效的bitmask选择方法。注意,对于EPC较长的标签,例如496位EPC,其效率更为显著。(因为2^496的基数更大,系统中的EPC更稀疏)。

4.4.1 一种确定性bitmask选择算法

​ 我们首先设计了一个确定性算法,其核心思想是只使用标签EPC的一部分作为位掩码,以便只有一个标签匹配。字段Length和Pointer指定位字符串在标签内存中的长度和起始位置,将与接收到的bitmask进行比较,我们分别用l和p表示它们。由于我们从一个a log n - bits的EPC中选择一个长为l的连续bits,l可以等于一个1到a log n中的数,并且EPC中有a log n - l + 1个段,相应的p=0:a log n - l。例如,如果图6中的l = 2,则灰色标签从左到右有三段,即10、01、10。因此,我们可以通过下面的三维搜索(算法 1)在每个时隙中找到一个最优的bitmask,即可以在一个时隙中使标签奇异的最短位掩码。在算法中,x(p, l)表示在标签x的EPC中从第p位到第p + l -1位的字符串;a=EPClogna=\frac{EPC}{logn}a=lognEPC​。该算法的核心步骤是如下所述:输出指定Pointer、Length和Mask的最短bitmask。

  • 首先,让l=1,我们从n个标签中任意选择一个。
  • 第二,给定l和这个标签EPC,我们将它的第一个l位段(即最左侧)与其他n - 1标签EPC进行比较。
  • 如果我们发现该段是唯一的,它可以用作bitmask和Pointer=00000000_2,则搜索过程将终止;否则,该标签在时间上被视为无用,我们从n - 1标签中选择另一个标签,将其第一个l位段与其他n - 1标签EPC中的l位段进行比较。此步骤将一直运行,直到找到唯一的l位段或任何两个标签都相互比较过为止。
  • 第三,如果在第二步中找不到唯一的l位段,我们将用第二个l位段重复第二步中的操作。如果这次成功,则将该段分配给Mask,Pointer=00000001_2;否则我们设置l=l+1。如果找到bitmask或l=a log n,则第三步停止。如果找到一个bitmask,也就是说,我们可以有选择地查询与该bitmask匹配的标签,然后算法继续运行以查找另一个标签的bitmask。

​ 根据以上描述,我们可以将算法中的三个维度解释为:

  • 比较任意两个标签;
  • 将Pointer p从0滑动 a log n - l;
  • 增加 l from 1 to a log n.

​ 我们的算法可以确定地找到一个最佳位掩码。现在我们分析它的计算复杂性。如前所述,我们算法的复杂性可分解为三个部分:1)O(n^2)为每个(p,l)的操作比较;2)O(log n ^ 2) 表示(p, l)的合并;3)该算法需要为所有n个标签找到一个bitmaks。总体计算复杂度总计为O(n3(logn)2)O(n^3(logn)^2)O(n3(logn)2)。

4.4.2 一种概率bitmask选择算法

​ 接下来,我们设计了一种概率bitmask选择算法,以确保具有所需成功概率的唯一bitmask。与确定性算法相比,概率算法有三个优点:

  • 降低了复杂性。在最坏的情况下,概率方案将复杂性从O(n3)降低到O(n2)。在实践中,收益可能更为显著。特别是对于计算能力有限的手持移动阅读器,需要较低的复杂度。
  • 可调精度。作为期望的特性,可以调整概率算法的精度,以在精度、计算和通信开销之间取得平衡。
  • 更好的适用性。即使数据库中没有记录新的标签,概率算法也可用于识别丢失的标签,但确定性算法无法执行此任务。这将在本节末尾讨论。

​ 在概率算法中,我们将标签EPC划分为∣EPC∣l\frac{|EPC|}{l}l∣EPC∣​非重叠段,即alognl\frac{a logn}{l}lalogn​段。例如:如果图6中的l=2假设EPC为四位长,则黑色标签0111从左到右有两个这样的段,即01和11。该方法在算法2中正式说明,其操作如下:

  • 首先,我们设置l和另一个参数z,z代表该算法的执行轮数。稍后将介绍如何配置参数。
  • 其次,我们任意选择一个标签并选择其EPC的第一个(最左侧)段。然后,我们将该片段与其他n - 1标签进行比较。如果该段是唯一的,我们将其用作bitmask并设置Pointer = 00000000_2,则算法停止;否则,我们选择第二段,并重复上述操作。当找到唯一段或执行的轮数超过z时,算法终止。

​ 显然,概率方法的复杂性是O(n·z),其中z≤alognlz≤\frac{alogn}{l}z≤lalogn​,为了在P2P中找到所有标签的bitmask,该方法需要运行n次,因此总体复杂度为O(n2⋅logn)O(n^2·logn)O(n2⋅logn)。

​ 接下来,我们将分析参数配置。由于EPC中的每个位实际上是随机生成的,因此alognl\frac{a logn}{l}lalogn​非重叠段的字符串是相互独立的。如果前k - 1轮失败,算法将运行k轮,其中k ≤ z,因此执行轮数的概率分布(定义为k)可以表示为几何分布

​ 考虑一个任意的轮次,为所有n个标签找到唯一的bitmask等于所选的l位段彼此不同的事件。这一事件发生的概率是e−n22l+1e^{-\frac{n^2}{2^{l+1}}}e−2l+1n2​,因此,我们有
Pr(K=k)=(1−e−n22l+1)⋅e−n22l+1P_r(K=k)=(1-e^{-\frac{n^2}{2^{l+1}}})·e^{-\frac{n^2}{2^{l+1}}} Pr​(K=k)=(1−e−2l+1n2​)⋅e−2l+1n2​
​ 因此,z轮后的成功概率(定义为Ps)可计算为
Ps=∑k=1z(1−e−n22l+1)⋅e−n22l+1=1−(1−e−n22l+1)zP_s=\sum_{k=1}^z(1-e^{-\frac{n^2}{2^{l+1}}})·e^{-\frac{n^2}{2^{l+1}}}=1-(1-e^{-\frac{n^2}{2^{l+1}}})^z Ps​=k=1∑z​(1−e−2l+1n2​)⋅e−2l+1n2​=1−(1−e−2l+1n2​)z
​ 用a表示为n个标签找到bitmask所需的成功概率,我们可以得到l和z的关系:
Ps=a==>log(1−a)=zlog(1−e−n22l+1)(1)P_s = a ==>log(1-a)=zlog(1-e^{-\frac{n^2}{2^{l+1}}})\qquad\qquad(1) Ps​=a==>log(1−a)=zlog(1−e−2l+1n2​)(1)
​ 要求解这个方程,我们可以首先指定l或z的值,然后导出另一个。Ps随l和z单调增加,因此选择l和z表示计算复杂度和通信开销之间的折衷。例如,设z=1,当l达到其最大值log(n2−lna)log(\frac{n^2}{-lna})log(−lnan2​)复杂性将降低到O(1)。如果设a=0.99、n=210,则log(n2−lna)−1≈26log(\frac{n^2}{-lna})-1≈26log(−lnan2​)−1≈26。相反,如果让z=96l\frac{96}{l}l96​在相同的要求下,我们有l=20,然和z=4。请注意,l的值不能超过标签EPC的长度。

4.5 用新标签识别丢失的标签

​ 在这一部分中,我们将讨论是否可以使用P2P来识别场景中缺少的标签,因为新标签的出现并没有记录在数据库中。为此,我们研究了两种情况:使用确定性算法的P2P和使用概率算法的P2P。

​ 在第一种情况下,P2P不能用于这种共存场景,因为确定性算法必须搜索数据库中标签的所有epc,以找到唯一的bitmask,而新标签的bitmask不会被记录。因此,一些新标签也可能与选定的位掩码匹配,与已知标签的响应发生冲突,从而导致P2P失败。

​ 在第二种情况下,如果可以估计新标签的数量或者阅读器知道新标签填充的范围,则P2P可以适用于共存场景。假设新标签填充的上界为u,给定所需的a,我们可以根据以下等式计算所需的bitmask长度l和执行轮数,以使识别概率至少为a
log(1−a)=zlog(1−e(n+u)22l+1)log(1-a)=zlog(1-e^{\frac{(n+u)^2}{2^{l+1}}}) log(1−a)=zlog(1−e2l+1(n+u)2​)
​ 注意,当标签EPC为96位长时,如果l=96,P2P可以确定地识别所有丢失的标签。

5 实验

5.1 实施设置

​ COTS Gen2设备。在我们的实现中,我们使用一个ImpinJ R420阅读器和20个ImpinJ Monza-4 UHF标签。这些设备完全按照Gen2标准编译。丢失标签识别程序是用ImpinJ SDK v.1.28.0.1. Java编写的。特别是,ImpinJ R420阅读器支持Q查询和选择性查询。ImpinJ Monza-4标签具有96位EPC。

​ Parameters。阅读器的传输功率设置为30 dbm,其接收灵敏度为 -70 dbm。我们实现了三种tag-to-reader的编码方法:M2、M4、M8。由于ImpinJ阅读器可以支持三种组合,我们将tag-to-reader的链接速率从M2的320 kbps更改为M4的68.5 kbps,到M8的21.33 kbps。在PMP中,我们设置Q=2 logn,其中n是Gen2系统中的标签数量,分别设置为5、10和20。我们将调查报告确定性和概率性bitmask选择方法的正确性,但将前者用于P2P的实现,而后者将用于系统可扩展的后续实验。

5.2 实施结果

​ 我们评估了所提出的丢失标签识别协议,即P2M和P2P的性能。我们想指出的是,本文的重点是相同设置下的性能比较,而不是最大化吞吐量。

协议调查。在进行正式比较之前,我们首先介绍确定性bitmask选择方法的工作原理。我们从n=5个标签开始,其EPC列在表2的第一列中,即标签x1-x5。运行算法1,我们可以首先设置bitmask BM=(000_2,6,1,0_2)查询标签x3,然后使用BM=(000_2,9,1,0_2),BM=(000_2,11,1,0_2),BM=(000_2,37,1,0_2),BM=(000_2,39,1,0_2)依次查询标签x4、x1、x2、x5。也就是说,在这种情况下,P2P使用一位bitmask就足够了。为了说明,我们以为例,其中仅搜索标签EPC的前两个字符,如图8所示。将此示例与之前的示例进行比较,我们可以观察到在EPCW中搜索更多位置将产生更短的位掩码。

​ 我们进一步执行算法1,为分别对应于表2中前两列和所有标签的n=10和=20的情况构建bitmask。n=5,10,20的结果由表3、表4和表5分别显示。请注意,我们在P2P中使用MemBank=000_2,我们只列出(p,l,Mask)为便于说明。

协议比较。从这一部分开始,我们开始使用确定性bitmask选择方法比较P2M和P2P的性能,在识别所有缺失标签和检测ImpinJ阅读器支持的三种不同tag-to-reader编码方法(即M2、M4和M8)下的第一个缺失标签所花费的执行时间。

​ 首先,我们研究了标签总体数量n对P2M和P2P性能的影响。为此,我们修正了缺失标签的数量m=0,同时将n从5增加到10,再增加到20。如图9所示,P2P可以在明显少于P2M的时间内查询所有标签,并且性能增益随着系统中标签数量的增加而飙升。同时,P2M的执行时间比P2P有更大的增长。例如,在图9a中,当标签填充为5时,P2P比P2M好1.5倍。当有20个标签时,这个数字增加到5倍。P2P的性能增益来自点对点设计,因为它能够在每个时隙中成功读取标签,但P2M平均需要O(n)个时隙才能访问标签。

​ 其次,我们将研究P2M和P2P在系统中不同的缺失标签数量下的性能。为此,我们固定了总标签数n=20,同时将丢失标签数m更改为m=4,6,8,12。实验结果如图10所示。从这些结果中,我们可以观察到以下现象:

  • 整体表现:P2P显著优于P2M。具体而言,如图10a所示,PMP的识别成本在0.56 s和1.49 s之间,那是P2P的2.8倍到5.4倍。在另一种tag-to-reader的速率中,P2P比P2M至少获得3.3倍的性能增益。这主要是由于点对点查询范式按顺序读取标签,而P2M需要更多的时间来处理碰撞。
  • 缺失标签的影响:随着缺失标签数量的增加,P2M的执行时间比P2P显著减少。例如,在图10a中,P2M的减少为62.2%,是P2P的2.4倍。这可以解释为:丢失标签的增加减少了P2M中的标签间的碰撞,但由于P2P采用点对点查询,因此对P2P的影响较小。

​ 在与上述相同的设置下,我们进一步比较了P2M和P2P的缺失标签检测时间,即查找第一个缺失标签所花费的时间。从图11可以观察到,P2P能够在比P2M更短的时间内检测到第一丢失的标签。特别是,当有12个丢失的标签时,使用M2的P2M查找第一个丢失的标签所需的时间几乎是P2P的7倍。使用M4和M8时,它们之间的性能差距达到8以上。看图10和11,我们还可以发现,P2P的检测时间显著缩短,特别是在存在更多缺失标签的情况下,而P2M的检测时间没有改变。这种差异是由于P2P和P2M的性质造成的,前者可以了解每个时隙中是否存在标签,但后者在整个帧执行之前无法知道标签状态。也就是说,在最坏的情况下,P2P可以在探测n - m个标记后找到丢失的标签,而P2M则需要查询所有n个标签。

概率bitmask选择方法的正确性:在使用20个ImpinJ标签实现了P2M和P2P之后,我们开始确认本部分中概率bitmask选择方法的正确性。再次查看表2,其中列出了20个标签EPC,我们首先检查算法2是否适用于5个标签场景。为了评估概率方法的可靠性,我们设置α=0.99和0.999,并将算法2运行11−α\frac{1}{1-α}1−α1​次。每次我们从20个标签EPC中随机选择5个。如果标签之间的bitmask冲突出现不止一次,则我们认为算法2失败。我们在表6中记录了满足所需概率的l和z的组合。结果表明,随着α的增加,算法2需要使用更长的bitmask或运行更长的轮次,这与分析结果是一致的。此外,给定a,l或z的增加可以产生另一个较小的值,从而确认通信开销和计算复杂性之间的折衷。

​ 为了评估系统规模的影响,我们将标签数量从50个增加到300个,步长为50,并随机生成标签EPC。从结果中,我们观察到,随着标签数量的增加,算法2可以达到所需的概率a。由于最大bitmask长度可以通过z=1从(1)直接计算,在表7中,我们只列出了使算法2成功的最小bitmask长度和执行轮数的组合。我们可以发现,当系统扩展或所需的成功概率变得更高时,bitmask长度或执行轮数都会增加,这与分析结果相对应。

​ 大系统下的性能评估。我们进一步展示了所提出的协议的时间效率是如何随着系统规模的扩大而变化的。为此,我们按照ImpinJ阅读器的Gen2标准和规范设置参数如下:Tari=12:5ms,BLF=640 kHz。我们分别使用FM0和M4作为tag-to-reader链接的编码方法。因此,由r定义的数据速率是1/BLF和4/BLF。持续时间为T1 = T3 = max(2.75Tari, 10r)、T2=3r 和 T4=5.4r。当所需bitmask长度l为27、29、31、33、36且概率算法z的执行轮等于1时,我们将整个标签的数量从500变为10000,并设置a=0.999。此外,将r定义为缺失标签数量与总标签数量的比率,我们将其设置为0.3和0.6。我们在表8和表9中列出了结果。

​ 我们可以观察到,P2M的执行时间的增量遵循总体标签数量的平方模式。这种模式在P2P中是线性的。因此,P2P比P2M具有更高的时间效率。我们还可以发现,丢失标签的比率r对P2P的影响比P2M更大。这是因为在P2P中,r的增加导致成功时隙的减少和空时隙的增加。空时隙比成功时隙短。但由于P2M中r的增加导致空时隙的变化,其数量级为O(n),明显小于空时隙的原始数量,即O(n2)。

6 相关工作

​ 在本节中,我们简要总结了现有的丢失标签监控协议,这些协议可分为两类:概率检测和确定性识别。

​ 概率丢失标签检测。这种类型的协议以预定义的概率检测丢失的标签事件。Tan等人发起了丢失标签检测的研究,并在[22]中提出了一种称为TRP的解决方案。为了检测丢失的标签事件,TRP首先通过使用哈希函数来预测标签的响应时隙来构建虚拟位图,并将其与从总体中的标签响应测量的实际时隙状态进行比较。如果预期的忙(单例或冲突)时隙结果为空,则与此时隙对应的标签被视为不存在。因为当丢失标签的数量很少时,碰撞时隙只有丢少标记的概率很低,所以碰撞时隙不如单时隙有用。鉴于单重时隙的重要性,后续工作[23],[24]采用多个种子将空时隙和冲突时隙调整为单重时隙,这增加了检测概率,从而提高了时间效率。随后,未知标签的存在将使空时隙成为映射为繁忙的丢失标签,并将干扰检测。为了处理干扰,工作[25]和Yu等人[26]分别在未知标签大小的检测中扩展帧大小,并从已知标签设计Bloom过滤器以抑制未知标签。考虑一种不同的应用场景,Yu等人[27]设计了几种基于Bloom Filter的方法来检测RFID系统中的丢失标签,其中多类别标签分布在多个区域中。最近,Yang等人[28]开发了一个标签上的散列函数,需要将离线计算的散列值写入所有标签,并说明如何使用该函数以概率方式检测丢失的标签。

​ 确定性丢失标签识别。确定性协议是为了准确地识别哪些标签不存在。Li等人在[29]中开发了一系列识别协议,分别通过协调2个碰撞时隙和迭代停用已验证存在的标签,逐步降低时间成本。张等人。 在 [30] 中提出了识别协议,该协议存储和比较所有轮次中标签响应的位图,并在所有位图中查找相应位的变化,以确定存在和不存在的标签。Liu等人[31]基本上将[23]中的多种子方法与[29]中基于deactive的方法相结合,以提高识别性能。随后,Liu等人[32]通过协调2-碰撞和3-碰撞时隙以及过滤空的和不可协调的碰撞时隙来进一步增强先前的工作,以提高时间效率。最近,人们利用物理层信息来加速丢失标签的识别。Zheng等人[33]测量每个时隙中信号强度的变化,并使用压缩感知对丢失标签的识别进行建模,从而将时间成本降低到与丢失标签总体相同的数量级。相比之下,Chen等人[34]利用每个时隙中信号强度的变化构造了一个Bloom过滤器,它可以在处理任意数量的丢失标签时实现类似的时间效率。与以前的工作相比,本文的创新之处在于,我们设计了bitmask选择方法,并使用COTS RFID设备进行确定性丢失标签识别,而不需要在标签上使用哈希函数,也不需要将哈希值写入标签。

7 结论

​ 在本文中,我们提出了两个协议,支持使用COTS RFID阅读器和标签的丢失标签识别服务。具体地说,我们首先使用Q-query开发了一个点对多点协议,该协议在模拟帧时隙Aloha范例中运行,用于收集标签EPC。如果收集的EPC集合不包含其EPC,则可以找到缺少的标签。然后,我们设计了一个点对点协议,该协议使用bitmask在每个时隙中指定一个要回复的标签,这样可以避免标签响应碰撞,并提高时间效率。此外,我们还提出了两种位掩码选择方法来构建紧凑的bitmask。所提出的协议在ImpinJ阅读器和标签中实现,广泛的结果表明,它们能够完成丢失标签的识别任务。

目录

文章目录

  • Missing Tag Identification in COTS RFID Systems: Bridging the Gap between Theory and Practice 理解+笔记+翻译
    • 理解
      • 文章重点内容和脉络
      • 文章中的符号
    • 引文
      • [21] On synopses for distinct-value estimation under multiset operations
      • [20] 概率与计算
    • 自我提升
      • Select Function
      • Bitmask Selection
      • 算法实现及整个过程实现
    • 翻译
      • 1 摘要和介绍
        • 1.1 背景和动机
        • 1.2 之前研究的限制
        • 1.3 提出方案
      • 2 系统模型和问题描述
      • 3 P2M : Point-To-MultiPoint Missing Tag Identification
        • 3.1 Point-to-Multipoint Q-Query
        • 3.2 编码方法
        • 3.3 参数Q的配置
        • 3.4 循环持续时间的计算
      • 4 P2P : Point-To-Point Missing Tag Identifucation
        • 4.1 Point-to-Point Selective Query
        • 4.2 计算总体P2P执行时间
        • 4.3 Select Function
        • 4.4 bitmask选择
          • 4.4.1 一种确定性bitmask选择算法
          • 4.4.2 一种概率bitmask选择算法
        • 4.5 用新标签识别丢失的标签
      • 5 实验
        • 5.1 实施设置
        • 5.2 实施结果
      • 6 相关工作
      • 7 结论
    • 目录

Missing Tag Identification in COTS RFID Systems: Bridging the Gap between Theory and Practice 理解+笔记相关推荐

  1. Missing Tag Identification in COTS RFID Systems: Bridging the Gap between Theory and Practice 翻译

    Missing Tag Identification in COTS RFID Systems: Bridging the Gap between Theory and Practice 翻译 名称: ...

  2. Fast and Accurate Detection of Unknown Tags for RFID Systems – Hash Collisions are Desirable 理解+笔记

    Fast and Accurate Detection of Unknown Tags for RFID Systems – Hash Collisions are Desirable 理解+笔记+翻 ...

  3. Fast and Accurate Detection of Unknown Tags for RFID Systems – Hash Collisions are Desirable 翻译

    Fast and Accurate Detection of Unknown Tags for RFID Systems – Hash Collisions are Desirable 翻译 链接:h ...

  4. 论文《DeepHawkes: Bridging the Gap between Prediction and Understanding of Information Cascades》阅读

    论文<DeepHawkes: Bridging the Gap between Prediction and Understanding of Information Cascades>阅 ...

  5. Bridging the Gap between Training and Inference for Neural Machine Translation翻译

    Bridging the Gap between Training and Inference for Neural Machine Translation 翻译 原文链接:https://arxiv ...

  6. Bridging the Gap Between Anchor-based and Anchor-free Detection

    张士峰大佬近期发了一篇论文解读Anchor-base和Anchor-free方法间的差别,其本质在于正负样本的选取方式不同. 论文:<Bridging the Gap Between Ancho ...

  7. 【翻译】Bridging the Gap Between Anchor-based and Anchor-free Detection

    [翻译与个人理解]Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sampl ...

  8. 弥合鸿沟:一种生成内部威胁数据的实用方法(Bridging the Gap: A Pragmatic Approach to Generating Insider Threat Data )

    Bridging the Gap: A Pragmatic Approach to Generating Insider Threat Data 弥合鸿沟:一种生成内部威胁数据的实用方法 摘要:恶意内 ...

  9. 转载系列【检测】| CVPR2020:Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Trai

    目标检测论文阅读:Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sampl ...

最新文章

  1. 7.3 TensorFlow笔记(基础篇):加载数据之从队列中读取
  2. 在HTML中,如何设置新窗口打开和在原窗口打开
  3. java反射api研究_深入研究Java 8中的可选类API
  4. 【题解】Atcoder ARC#90 F-Number of Digits
  5. linux+vim+动不了,linux的vim按了ctrl+s之后假死的解决办法
  6. TIM怎么更新版本 TIM检查更新版本教程
  7. 用这10个小技巧加速Python编程
  8. c 文件操作_你电脑用久了,会有多少重复文件?快用它来整理一下吧
  9. 【Scala】Scala Java Error: value filter is not a member of *
  10. C# OpenFileDialog 使用
  11. OpenCV和OpenGL的异同
  12. 拓端tecdat|R语言stan泊松回归Poisson regression
  13. 基于STM32的红绿灯控制系统设计
  14. 计算机公共课4-电子表格系统 Excel 2010
  15. PDE——delta函数
  16. 在Windows 10中截取截图的6种方式 简介
  17. matlab图片导出无失真库export_fig介绍(半透明效果)
  18. APISpace 号码实时查询API接口 免费好用
  19. 移动MAS短信技术错误代码和CMPP3.0错误代码表
  20. 成都玺讯——虾皮跨境电商卖家未来规划

热门文章

  1. BZOJ 2709 Violet 1 迷宫花园
  2. Lycn 2013 with SQL AlwaysOn 「一」建立AlwaysOn
  3. 插头类型:MX 1.25 PH间距2.0、XH间距2.5/2.54、VH间距3.96区别?
  4. zeebe入门课程10-bpmn元素的支持7(exclusive gateway )
  5. pmos低电平驱动_MOS管的低端驱动和高端驱动
  6. tongyongjingmo(yuangang2)
  7. 配置并检验 S1 上的 SSH 访问
  8. 近红外光谱预测苹果糖度
  9. 计算机无法投影,如果无法连接计算机和投影仪怎么办
  10. 诗歌中的宇宙飞船和电子计算机代表什么,《宇宙飞船的避火衣》阅读理解及答案...