RFID防碰撞算法.docx
- 文档编号:28857931
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:16
- 大小:215.52KB
RFID防碰撞算法.docx
《RFID防碰撞算法.docx》由会员分享,可在线阅读,更多相关《RFID防碰撞算法.docx(16页珍藏版)》请在冰豆网上搜索。
RFID防碰撞算法
RFID防碰撞算法综述
【摘要】射频识别技术RFID是目前正快速开展的一项新技术,它通过射频信号进展非接触式的双向数据通信,从而达到自动识别的目的。
随着RFID技术的开展,如何实现同时与多个目标之间的正确的数据交换,即解决RFID系统中多个读写器和应答器之间的数据碰撞,成为了限制RFID技术开展的难题,采用合理的算法来有效的解决该问题,称为RFID系统的防碰撞算法。
采用时分多路存取技术,相关的算法有ALOHA法、时隙ALOHA法、二进制搜索法、动态二进制搜索法等。
在各种算法当中,二进制树算法因为它识别应答器确实定性,成为了应用最广泛的一种,多个国际标准均对其进展了规定,这推动了防碰撞算法的开展,全文针对RFID系统二进制树防碰撞算法,进展了理论与实践方面的探讨。
【关键词】:
射频识别;防碰撞算法;读写器;应答器;
Abstract:
RFIDisanewlydevelopedtechnologywhichmunicatesthroughthenon-contactRFsignal,soastoachieveobjectiveautomaticidentification.
AlongwiththedevelopmentofRFIDtechnology,howtorealizeDataExchangeaccuratelyamongMultipleTargetsatthesametimebeesthekeyproblemofRFIDtechnology.RFIDanti-collisionalgorithmisthesolutiontotheabovementionedproblems.InTDMA,thereareseveralanti-collisionalgorithms,suchasALOHA,SlottedALOHA,BinarySearch,DynamicBinarySearchandsoon.
KeyWords:
RFID;Anti-collision;Read/WriteDevices;Transponders
1、RFID技术简介
自动设备识别技术是目前国际上开展很快的一项新技术,英文名称为AutomaticEquipmentIdentification,简称AEI,它通过一些先进的技术手段,实现人们对各种设备在不同状态下的自动识别和管理。
【1】
目前,RFID的应用还停留在封闭市场〔应用相对独立,对统一标准的要求相对较低〕,诸如交通、车辆管理、身份识别、生产线自动化控制,仓储管理与物资跟踪等。
在高速公路收费与智能交通方面,某某“驾易通〞和某某“粤港通〞采用的就是射频识别技术。
装有射频标签的汽车能被自动识别,无须停车缴费,大大提高了行车速度和效率。
虽然我国很多地区告诉公路都采用了射频卡,但是大局部还是应用人工停车收费的方式。
利用射频识别技术的不停车高速公路自动收费系统是将来的开展方向,人工收费包括IC卡的停车收费方式也将被淘汰。
在货物的跟踪,管理与监控方面,澳大利亚和英国的西思罗机场将射频识别技术应用于旅客行李管理中,大大提高了分拣效率。
在几年前,欧共体就要求从1997年开始生产的新车型必须具有基于射频识别技术的防盗系统。
而我国铁路行包自动追踪管理系统还只是在计划推广之中。
【2】
在射频卡应用方面,1996年1月韩国就在汉城的600辆公共汽车上安装了非现金结算,方便了市民的出行。
而德国汉莎航空公司如此开始试用射频卡作为飞机票,改变了传统的机票购销方式,简化了机场人关的手续。
在我国,射频卡主要应用于公共交通、地铁、校园、社会保障等方面。
某某、某某、等地陆续采用了射频公交卡。
在未来的几年里,我国射频卡应用最大的项目将是第二代公民某某。
总体而言,我国射频识别技术应用状况还处于初级阶段,市场前景非常广阔。
不久的将来,我国射频识别技术应用将在生产线自动化,仓库管理,电子物品监视系统、货运集装箱的识别以与畜牧管理等方面有所突破。
实现射频识别技术在我国成熟,全面应用将是一个长期的过程【3】。
自从上世纪九十年代以来,RFID技术快速开展,得到了广泛的应用,进入新世纪后,各个国家,组织还有企业都加大了对RFID技术的投入,生产了大批相应的产品,在多个领域有了成功的应用案例。
RFID被誉为二十一世纪的十大战略性产业之一,可以预想,未来RFID技术的开展空间是无限广阔的。
【4】
2、RFID防碰撞算法
随着RFID技术的开展,多目标识别成为了一个很重要的应用方向,特别在目标跟踪,物品识别,访问控制等操作中,利用RFID技术,对附着在不同目标上的应答器快速可靠的进展识别,从而大大提高了定位的准确度,管理的自动化促进了整个产业链的开展。
因此,如何保证迅速快捷,又安全可靠的同时识别多个目标,就成为了RFID技术开展的关键性技术。
在RFID系统中,当工作X围内同时出现了多个读写器和多个应答器时,读写器与读写器之间,应答器与应答器之间的相互干扰,称RFID系统发生了碰撞,从而导致数据不能正确的传输,信息无法得到正确的读取,一方面影响了产品的识别,另一方面还可能导致信息的泄露。
在全球信息安全意识广泛普与的背景下,可靠的安全机制成为了RFID技术开展的关键性制约因素,如何有效的解决RFID系统的碰撞问题,成为了技术的关键,对此就需要采用一定的防碰撞算法来对其进展处理。
目前关于防碰撞算法的研究还在进展当中,理论成果已经得出了很多,许多国际标准也对一些成熟的算法进展了规定,但是无论在理论效率还是实际应用上,都还存在很大的改良空间。
【5】
3、课题提出的背景与其意义
早期的RFID技术很少涉与到防碰撞问题,而在近年来,随着RFID技术的开展,应用X围的扩大,使得防碰撞问题日益成为制约RFID开展的关键技术,原因有两个,首先,早期的RFID一般是近距离感应耦合式系统,其操作频率功率普遍较低,读取的速度慢,X围小,所以也较少有发生碰撞的可能,而目前RFID应用中多目标识别成为了主流方向,这就要某某现在多个物品中正确的识别出单个目标;其次,早期的RFID应用没有统一的规X,各个厂家的RFID产品也仅是应用在单个的系统当中,不存在碰撞的可能,而近年来RFID应用迅速开展,各个不同RFID制造商的产品之间的不兼容,也带来了碰撞问题。
总之,由于多目标识别应用的需要,RFID系统防碰撞问题成为了关键技术,为了解决碰撞,可以从硬件和软件两方面着手,由于RFID系统的大规模应用限制了本钱,所以,硬件实现是不实际的,因此就需要采用一定的防碰撞算法来予以解决。
依前所述,RFID系统碰撞主要有两种情况,读写器碰撞和应答器碰撞,读写器碰撞是一个应答器同时收到不同读写器发出的命令,应答器碰撞是一个读写器同时给不同应答器发送命令。
在实际的应用当中,应答器由于其低本钱的优越,从而得到大量的生产,而读写器往往是固定在系统的某处,来识别多个应答器,所以碰撞的主要情况是应答器碰撞,即一个读写器的工作X围内同时出现了多个应答器,并且对该读写器发出的命令同时予以响应,从而导致读写器无法正确的识别出一个应答器,称该现象为发生了应答器碰撞。
解决碰撞的过程相应的被称为防碰撞,如前所述,该防碰撞过程主要从软件的角度来予以解决,称为防碰撞算法。
【6】
在上述前提下,基于应答器确实定型二进制树防碰撞算法是目前最好的一种选择,对其进展研究,是最有实际应用价值的,所以,本文将对其进展理论分析与具体实现,在研究过程中,注重与新一代智能RFID系统的结合,应用拥有强大功能的FPGA(FieldProgrammableGateArray)做为算法运行的微处理器,这种思路将是未来RFID技术开展的重要方向,RFID技术中的关键算法与先进的电子技术FPGA的结合,将为RFID技术的应用拓开广阔的前景。
4、二进制防碰撞算法
在RFID防碰撞算法中,二进制树算法是目前应用最广泛的一种,之所以称为“二进制树〞,是因为在算法执行过程中,读写器要屡次发送命令给应答器,每次命令都把应答器分成两组,屡次分组后最终得到唯一的一个应答器,在这个分组过程中,将对应的命令参数以节点的形式存储起来,就可以得到一个数据的分叉树,而所有的这些数据节点又是以二进制的形式出现的,所以称为“二进制树〞。
【7】
为了便于描述算法,声明一些根本概念如下:
首先,在RFID系统当中,每个应答器都是独一无二的,它们的独立性通过唯一的自身序列号来表现,该序列号在不同的标准中有不同的名称,如EPC标准中称其为电子产品代码EPC,即英文ElectronicProductCode的缩写,IS014443标准中称其为唯一标识码UID,即英文UniqueIdentmer的缩写。
【8】事实上,这些都是对应答器序列号的名称描述,因为下文涉与到的防碰撞算法是普遍意义上的,既包括了EPC标准中的规定,也包括了ISO标准中的规定,因此在本文对普遍意义上的防碰撞算法的描述过程中,统一用序列号SN(SerialNumber)来描述上述概念,同时,序列号的长度,格式,以与编码方式也是各个标准各自差异的,为了说明的便利,统一定义为8位长度的
二进制码。
如下列图。
应答器序列号数据格式
读写器与应答器之间进展数据交换时,往往要传输序列号的局部或者全部位,此时的传输顺序定义为:
先发送低位,再发送高位。
在读写器或者应答器内部,对数据进展比拟时,遵循这样的原如此,即按位依次比拟,先比拟低位,再比拟高位,约定0<1,根据这个比拟顺序,在判断大小时,低位数据优先,即两数A,B相比拟,从低位开始的第一个不相等位的大小决定了两数的大小,只有当两个数的全部位均相等时,两数才相等。
〔1〕根本二进制树防碰撞算法
算法思路:
定义两个具有普遍意义的命令来描述算法:
(1)请求命令Request(SN):
该命令携带一个参数SN,应答器接收到该命令,将自身的SN与接收到的SN比拟,假如小于或者等于,如此该应答器回送其SN给读写器。
注:
Request(SN)初始值设为Request(11111111)。
(2)休眠命令Sleep(SN):
该命令携带一个参数SN,应答器接收到该命令,将自身的SN与接收到的SN比拟,假如等于,如此该应答器被选中,进入休眠状态,也即是不再响应Request命令,除非该应答器通过先离开读写器工作X围再进入的方式重新上电,才可以再次响应Request命令。
根本二进制树算法的流程图如下列图:
根本二进制树算法流程
根本二进制树算法的步骤如下:
(1)应答器进入读写器工作X围,读写器发出一个最大序列号,所有应答器的序列号均小于该最大序列号,所以在同一时刻将自身序列号返回给读写器。
(2)由于应答器序列号的唯一性,当应答器数目不小于两个时,必然发生碰撞.发生碰撞时,将最大序列号中对应的碰撞起始位设置为O,低于该位者不变,高于该位者设置为l。
(3)读写器将处理后的序列号发送给应答器,应答器序列号与该值比拟,小于或等于该值者,将自身序列号返回给读写器。
(4)循环这个过程,就可以选出一个最小序列号的应答器,与该应答器进展正常通信后,发出命令使该应答器进入休眠状态,即除非重新上电,否如此不再响应读写器请求命令。
也就是说,下一次读写器再发最大序列号时,该应答器不再响应。
(5)重复上述过程,即可按序列号从小到大依次识别出各个应答器。
注:
第五步时,从步骤1开始重复,也就是说,读写器识别完一个应答器后,将重新发送原始的最大序列号。
性能评价:
假设工作X围内有N个应答器存在,通过根本二进制树搜索算法进展防碰撞操作,依次识别出所有应答器。
循环次数
定义为在整个防碰撞循环过程中的循环轮次,也即是二进制树的遍历次数。
根据前面的分析可知,作为一种确定性的算法,根本二进制树一轮循环总能识别出一个应答器,所以在n个应答器的前提下,经过n次循环可以识别出N个应答器,所以整个过程中的循环次数为n.
搜索次数
定义为算法执行命令的次数。
也即是二进制树的节点数目。
该值可以用式子
来表示,其中Integ表示取整。
通信时间t定义为数据交换的时间,也即是命令执行的时间。
假设有n个应答器,从读写器到应答器的传输时间为tl,反之为t2.总时间为t,如此传输的总时间t可以用式2.8来表示:
数学归纳法证明如下:
假设只有一个应答器,如此读写器发送命令,应答器响应,无碰撞,识别出应答器。
假设有两个应答器,如此读写器发送命令,两个应答器响应,发生碰撞,为第一次过程,该时间为:
读写器修改命令参数,发出命令,仅一个应答器响应,如此识别出该应答器,
这一次过程时间与前一次一致,读写器再发送命令,最后一个应答器响应,得到
识别,时间也是一样的,如此总时间为:
当有n个应答器时,假设识别总时间为:
如此当n+1个应答器时,读写器首先发送命令,应答器全体响应,发生碰撞,这个过程时间为:
读写器修改命令参数,发出命令,k个应答器响应,余下p个不响应,k+p=n+l,如此识别出该k个应答器需要时间为:
再识别余下p个需要时间为:
如此这两者时间之和为:
加上前一次的.t1+t2,总时间为:
得证。
因为根本二进制树算法中每次传输的序列号SN长度一样,
,所以有:
【9】
根本二进制树搜索算法是所有二进制树算法的根底,分析根本二进制树搜索算法的性能可知,对于固定数目的应答器,二进制树算法的性能主要取决于二进制树的节点数目和单次传输命令参数的时间,事实上,二进制树的节点数目与应答器分组的思路是直接相关的,而单次传输命令参数的时间如此取决于该命令包含的数据位数。
所以,要改善二进制树算法的性能,就必须从这两点着手,现有的二进制树搜索算法有很多种,它们都是在根本二进制树搜索算法的根底上加以改良得来的,根据前述分析,主要的改良思路有两个:
(1)减少每次通信过程中的数据传输位数。
(2)减少应答器分组的询问次数。
本文中,定义根据第一个思路得来的算法为动态二进制树,它的一个典型应用为ISOl4443TYPE-A二进制树搜索算法。
定义根据第二个思路得来的算法为退避式二进制树,它的一个典型应用为EPC二进制树搜索算法【10】。
〔2〕动态二进制树防碰撞算法
算法思路:
定义两个具有普遍意义的命令来描述算法:
(1)请求命令Request(
),该命令携带一个参数SN,长度为
,应答器接收到该命令,将自身的SN中的前1~x位与接收到的
比拟,假如两者相等,如此该答器返回其SN的剩余位给读写器。
注:
Request(
)初始值设为Request(1l111111),约定当参数值为全1时,应答器返回完整序列号。
(2)休眠命令Sleep(SN),该命令携带一个参数SN,应答器接收到该命令,将自身的SN与接收到的SN比拟,假如等于,如此该应答器被选中,进入休眠状态,也即是不再响应Request命令,除非该应答器通过先离开读写器工作X围再进入的方式重新上电,才可以再次响应Request命令。
动态二进制树算法的流程与根本二进制树算法是一致的,它们的区别在于:
根本二进制树算法中,应答器返回完整序列号,而动态二进制树算法中,应答器只返回序列号的有效局部;同样,根本二进制树算法中,读写器生成新Request命令时,其命令参数长度是固定为8位的,而动态二进制树算法中,该命令参数长度是根据应答器返回的序列号来动态变化的。
动态二进制树算法的流程如下列图:
动态二进制树算法流程
事实上,动态二进制树对根本二进制树的改良是基于如下考虑的,在根本二进制树的分析过程中可见,算法的核心局部即新命令参数的生成,是根据是否发生碰撞,以与碰撞位来决定的,特别是新Request命令参数的生成是由碰撞的起始位来确定的,而碰撞的起始位的得到只需要应答器序列号中包括碰撞起始位在内的局部位即可,把这些位称为序列号的有效位,同样,新Request命令参数也为包括碰撞起始位(设为0)在内的局部位,综合如下:
假如选择高位加碰撞起始位(设为0),如此算法为应答器序列号对应位小于这些位的数值者,返回剩余低位,假如选择碰撞起始位(设为0)加低位,如此算法为应答器序列号对应位等于这些位的数值者,返回剩余高位,从而读写器的新Request命令参数与应答器返回的序列号有效局部组合起来,可以得到一个完整的应答器序列号。
这两种选择方式并没有本质区别,在本文中,采取其中的一种,即:
读写器检测到碰撞后,将碰撞起始位置0,低位不变,从而将碰撞起始位(置为O)加低位作为新Request命令参数,应答器响应,从低位开始比拟,假如对应位等于该参数,如此返回剩余位给读写器,如果只有1个应答器响应,读写器检测到无碰撞发生,如此将上一次发出的Request命令参数与应答器返回的剩余位组合起来,作为新的Sleep命令参,该参数也即是刚刚做出响应的这个应答器的序列号。
注:
如果上一次发出的Request为全l,如此明确读写器工作X围内只有一个应答器,此时应答器返回数据为完整序列号,以该序列号作为Sleep命令参数。
动态二进制树算法的步骤如下:
(1)应答器进入读写器工作X围,读写器发出一个最大序列号,约定此时所有应答器均返回完整序列号,如此同一时刻应答器将自身序列号发回给读写器。
(2)由于应答器序列号的唯一性,当应答器数目不小于两个时,必然发生碰撞。
发生碰撞时,将最大序列号中对应的碰撞起始位置为0。
低于该位者不变。
(3)读写器将处理后的碰撞起始位与低位发送给应答器,应答器序列号与该值比拟,等于该值者,将自身序列号中剩余位发回.
(4)循环这个过程,就可以选出一个最小序列号的应答器,与该应答器进展正常通信后,发出命令使该应答器进入休眠状态,即除非重新上电,否如此不对读写器请求命令起响应。
(5)重复上述过程,即可按序列号从小到大依次识别出各个应答器.【11】
性能评价:
动态二进制树算法的识别过程中,节点数目,循环轮次都是一样的,但是每次循环过程中,读写器命令与应答器指令所携带的参数都是在动态改变长度的,所以动态算法的优势主要表现在两个方面,一是算法执行过程中数据传输时间;二是算法执行过程中数据信息量。
根据分析,算法执行过程中,读写器与应答器传送的数据主体是应答器的序列号,为了便于分析,假定数据交换过程中,双方只传送序列号SN,如此在根本算法中,读写器与应答器均传送了序列号全部长度,而在动态算法中,读写器传送序列号的局部位,应答器再传送剩余位,两者组合起来才得到全部的序列号,显然,虽然每次传送时动态算法的数据长度不同,但是在整个算法执行过程中,根本算法传送了两倍序列号,动态算法如此只传送了一倍数据量,从而可知,动态算法传送的信息量是根本算法的50%,从而数据传输时间也是原根本算法的50在本例中,由于假定了应答器的序列号为8位长度二进制数,所以这个动态变化的优势并不明显,然而,事实上在实际应用中,应答器序列号长度往往是极大的,比如说常见的是96位,在这样的情况下,动态算法的优势就表现出来了。
【12】
〔3〕退避式二进制树防碰撞算法
算法思路:
退避式二进制树搜索算法是对根本二进制树搜索算法的一种改良,根据根本二进制树算法的分析可知,每识别一个应答器后,读写器恢复Request命令参数的初始值,重新从二进制树的根部开始执行,对此可以采取退避的思想,即每次识别出一个应答器后,算法返回其上一个父节点,而不返回整棵树的根节点。
定义两个具有普遍意义的命令来描述算法:
(1)请求命令Request(SN):
该命令携带一个参数SN,应答器接收到该命令,将自身的SN与接收到的SN比拟,假如小于或者等于,如此该应答器回送其SN给读写器。
注:
Request(SN)初始值设为Request(11ll1111)。
(2)休眠命令Sleep(SN):
该命令携带一个参数SN,应答器接收到该命令,将自身的SN与接收到的SN比拟,假如等于,如此该应答器被选中,进入休眠状态,即除非重新上电,否如此不再响应Request命令。
【13】退避式二进制树算法的流程见图,根本设置可参考根本二进制树算法:
退避式二进制树算法流程
如下列图,退避式二进制树算法的流程与根本算法的区别在于:
根本算法中,一个应答器被识别后,重新启动新循环时,读写器返回整棵树的根节点,获取原始Request命令参数,而退避式算法中,读写器返回上一次发生碰撞节点,获取Request命令参数。
事实上,退避式算法的改良是基于如下考虑的,在根本二进制树的分析过程中可见,算法之所以称为二进制树,是因为每次碰撞后,均以碰撞起始位为界,将应答器分为两个局部,形象的看,如同一棵树在进展从根部到主干到树枝的一个不断的分叉过程,所以,分叉也即是分组的理念是二进制树算法的本质所在,根据这一点,算法每次分叉到达末端之后,不再返回根部重新开
始分叉,而是返回上一次分叉的节点即可重新开始新的树干,该节点也即是上一次发生碰撞的节点。
采用该返回思路的二进制树算法,称为退避式二进制树算法。
退避式二进制树算法的步骤如下:
(1)应答器进入读写器工作X围,读写器发出一个最大序列号,所有应答器的序列号均小于该最大序列号,所以在同一时刻将自身序列号发回给读写器。
(2)由于应答器序列号的唯一性,假如应答器数目不小于两个,必发生碰撞。
此时将最大序列号中对应碰撞起始位置为O。
低于该位者不变,高于该位者置1。
(3)读写器将处理后的最大序列号发送给应答器,应答器序列号与该值比拟,小于或等于该值者,将自身序列号发回.
(4)循环这个过程,选出一个最小序列号的应答器,与之正常通信后,命令该应答器进入休眠状态,即除非重新上电,否如此不再响应读写器请求命令。
(5)返回上一个发生碰撞的节点,获取该节点对应的最大序列号,重复上述过程,即可按序列号从小到大依次识别出各个应答器.
性能评价:
与根本二进制树比拟可知,退避式算法每次传送的数据信息量与根本算法是一样的,区别在于,退避式算法的传送次数,也即是所遍历的节点数目比之根本算法大大减少,假设读写器工作X围内有n个应答器,如此所需节点数目为而,如此可用式子2.19来表示:
数学归纳法证明如下:
当读写器工作X围内只有一个应答器时,显然有:
假设n个应答器时,有:
如此当系统中有n+1个应答器时,由于新增加的这个应答器与原来n个应答
器的序列号均不一样,为了将其与某个匹配度最高的应答器区分开来,需要在原
来二进制树中增加一个节点,由于节点之间仅存在父子关系,且仅通过两条边相
连,所以有:
得证。
5、结论
本文探讨了RFID技术,研究了应用最广泛的二进制树防碰撞算法,对现有的各种算法进展了归纳,总结起来,本文在以下几个方面进展了研究:
(1)探讨了RFID技术,对RFID技术做了原理性的阐述,进而展开研究了RFID技术现有的实际应用,通过对RFID现状的分析,引出了目前RFID技术存在的困难,即防碰撞算法,这也正是本文研究的对象。
(2)本文对防碰撞算法进展了研究,在此根底上主要针对二进制树防碰撞算法,比拟了现有的各类算法,对其进展了概括归类,从根本思路,性能评价两个方面对其进展研究,比拟了各自的优缺点对二进制树算法的系统性的研究,将有助于理清二进制树算法的脉络,从而系统性的深入研究该类算法。
参考文献:
【l】纪震,李慧慧,姜来.电子标签原理与应用.某某:
某某电子科技大学,2006,
【2】FinkenzellerK.射频识别技术.:
清华大学,2000
【3】X殿东.无线射频识别(RFID)技术.电信技术,2005
【4】日本NTTWARE株式会社著,X维强译.RFID的现状和开展趋势.:
人民邮电,2007
【5】Shi,Dong-Her,Sun,etal.Taxon
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RFID 碰撞 算法