本科时期某课程的课程报告,与大家分享~~
内容包括RFID简介、市场应用与前景、工作原理、面临的风险、安全与隐私策略,共5点。
由于篇幅过长,将分两篇博客介绍,本次给出上半部分——简介、市场应用与前景、工作原理。
1. RFID简介
RFID (Radio-Frequency Identification),即无线射频识别,是一种非接触式的自动识别技术。它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于社会中的各个领域,具有体积小,成本低,易于嵌入物体中,无需接触就能大量地进行读取等优点。一套完整的RFID系统由三个部分组成:
1.1 工作方式
RFID的基本工作方式分为以下四步(如图表1所示):
1.2 标签分类
按照RFID应用频率的不同,可以分为低频(LF)、高频(HF)、超高频(UHF)、微波(MW),相对应的代表性频率分别为:低频135KHz以下、高频13.56MHz、超高频860M~960MHz、微波2.4G~5.8GHz。
按照RFID标签能源供给方式的不同,可以分为Passive Tag(无源)、Active Tag(有源)、Semi-active Tag(半有源)。目前,市场上约80%的标签是无源的,不到20%的标签是有源和半有源的。
1.3 编码体系
RFID标签采用的电子编码结构主要包括EPC编码体系和uID Center编码体系。
表格 1 96位EPC编码举例
EPC-96Ⅰ型序列号 |
|||
01 |
0000A89 |
00016F |
000169DC0 |
版本号字段 |
域名管理 |
对象分类 |
序列号 |
8位 |
28位 |
24位 |
36位 |
2. RFID的市场应用与前景
2.1 起源与发展
RFID技术起源于二次世界大战,它是为英国皇家空军设计的,用于在空战中识别敌我飞机。英国人发明雷达以后,在应用中发现了一个很大的问题:在雷达屏幕上搞不清楚哪些飞机是敌人,哪些是自己人。于是,他们在飞机上加装了敌我识别系统(IdentificationFriendorFoe, IFF),在雷达加装了相应的识别装置(二次雷达)。雷达在发现目标后,会自动发射一个询问信号,如果是己方飞机,敌我识别器就会自动回答,这样雷达就能分清敌我飞机了。现在每架军用飞机都安装有一个敌我识别系统。
经过数十年的发展,RFID技术不仅在军事领域中取得了巨大的成功,并且在商业以及其他社会领域展示出其强大的应用能力。当今人类的制造工艺使得RFID标签变得越来越小,而广泛的应用也进一步降低了它的成本,一个普通的标签可能只需要不足5美分,一个阅读器也只需100美元。同时,成本的降低也加快了RFID在各个领域中的应用。
2.2 优势
RFID的倡导者认为,它继承并发展了消费者熟知的光学条形码的功能,将在未来取代条形码,成为身份识别技术的主力军。与条形码相比,RFID具有两个独特的优势:
2.3 应用与前景
RFID的应用大致可以分为以下三类:
目前,RFID在社会中的应用非常广泛,包括:
以上这些应用,有的已经实现并非常普及,有的还处于试点阶段,有的或许只是一个概念和构想,但是相信在不久的将来,它们都会成为现实,并且衍生出更多更强大的应用。据预测,2016年全世界的RFID市场将超过2700亿元,其中包括了标签、设备以及相应的服务。同时,物联网也将逐渐成型,而人们的生活中将会充满网络,充满电子信息化。生活将会变得非常便捷,工作也会更加地高效。
3. RFID的工作原理
RFID阅读器根据使用的结构和技术的不同,可以分为读或读/写装置,是RFID系统信息控制和处理中心。标签是RFID系统的信息载体。阅读器通常由耦合模块、收发模块、控制模块和接口单元组成。阅读器和标签之间一般采用半双工通信方式进行信息交换,阅读器通过耦合给无源标签提供能量和时序。在实际应用中,可以进一步通过Ethernet或WLAN等实现对物体识别信息的采集、处理和远程传送等管理功能。
RFID的基本工作原理并不复杂:对于无源和半有源标签而言,当其进入阅读器的磁场范围后,可以接收阅读器发出的某一特定频率的射频信号,凭借感应电流所获得的能量将存储在芯片中的信息以电磁波的形式发送出去;有源标签则会主动发送某一频率的信号。阅读器接收标签发出的信号并进行解码,之后通过中间件送至应用软件系统进行数据处理。此外,部分阅读器具有读写功能,能够将产品信息写入标签中,同样是以射频信号的方式改变标签中存储的信息。从阅读器和标签之间的通讯及能量感应方式上来看,大致上可以分为感应偶合(Inductive Coupling)和后向散射偶合(Backscatter Coupling)两种,一般低频的RFID采用第一种方式,而较高频的大多采用第二种方式。
3.1 多标签的防碰撞算法
在现实生活中,如果有多个RFID标签接收到查询信号并同时发送信息,那么阅读器接收到的信号就会互相干扰,而阅读器在同一时间内只能完整处理一个电子编码,于是便会不可避免地出现标签阅读冲突现象。RFID技术必须能够快速高效地识别多个标签。目前,解决RFID标签阅读冲突问题的防冲突算法主要有两种:
3.2 基于时隙ALOHA的防冲突算法
时隙ALOHA算法(Framed Slotted ALOHA)简称FSA,是一种随机时分多址方式的用户信息通讯收发算法,它将信道用信息帧表示,把信息帧分成许多时隙(slot),每个标签随机选一个时隙来发送自己的识别码信息。在整个信息帧的时间内,每个标签只响应一次,如图表2 所示。
图表 2 时隙ALOHA算法的信息帧时分多址示意图
图表2中的每个圆圈代表一个标签发出的电子编码信息,这样阅读器在整个信息帧接收过程中遇到的标签回复有3种情况,即成功、空闲以及冲突,它们可能分别代表在某个时隙内有一个标签、没有标签或两个以上标签的应答。在实际情况中,由于各标签距阅读器距离不同,近距离标签发送的信息可能覆盖了远距离标签发出的信息,即使是时隙冲突,阅读器也可能正确识别近距离标签的信息。同样,由于其他环境噪声的影响,即使在一个时隙内只有一个标签应答,阅读器也可能无法阅读成功。在不考虑这两种不理想条件(即捕获效应和环境噪声)的情况下,若整个信息帧的时隙数设定为F,则阅读N个标签时每个信息帧内成功(a1)、空闲(a0)和冲突(ak)的时隙数分别为:
图表 3 式(1)
因此,RFID系统的阅读吞吐率(也称识别效率,即阅读器在一个信息帧长的时间内能成功识别标签数所占的比例)可以表示为:
图表 4 式(2)
通过Matlab的仿真实验,可发现当标签个数接近信息帧长时(即标签个数接近时隙数),系统的吞吐率比较高, 这与式2通过微分计算获得的结果相一致。在RFID系统应用时,阅读器读取的RFID标签数往往是未知的。根据上面RFID多标签阅读的防冲突算法的分析结果,要实现具有解决RFID防冲突算法功能的系统方案,系统需要先进行现场的标签数预测。通常可以通过以下几种预测方法来实现:
图表 5 式(3)
其中,c1、c0、ck为实际测得的成功、空闲、冲突时隙数值。在标签数N取值范围[C1+2×CK, ... , 2×(C1+2×CK)]内找到最小的ε值,所对应的N 值就是预测的标签数。
通过Matlab的仿真实验,结果表明,与FSA(即信息帧长度固定为256)相比,基于标签数预测的系统阅读的吞吐率具有明显的改善。但是总的来说,对于现场有大数量标签(特别是标签数大于500)时,采用式(2)由预测标签数来设置最佳信息帧长度的实现方案就显得不合适了。因此,有人提出了采用分组应答响应的方法来实现,即当标签数超过354个时,将标签进行分组,第1组的先应答,识别完第1组之后再识别第2组,以此类推。分组数和标签数目的关系如图表6所示。
图表 6 分组算法的标签和信息帧长的关系
通过Matlab的仿真实验,结果表明,采用分组算法的系统吞吐率在标签数大于500时可以达到很高,而其它几种预测方法则降得很快。因此,在大规模的标签识别中,使用分组算法可以有效地提高系统的识别效率。
3.3 基于树结构的防冲突算法
相对于ALOHA算法,二进制树算法具有良好的识别率,国内外对该算法都有比较多的研究。其中,二进制搜索算法BS(Binary Search)和动态二进制搜索算法DBS(Dynamic Binary Search)的系统开销较大。在这两种算法的基础上又产生了一种基于返回式的二进制搜索算法,该算法能有效减少系统的查询次数。此外,还有查询树算法QT(Query Tree)和对其进行改进的冲突跟踪树型算法CTT(Collision Tracking Tree)。后者利用阅读器检测到的冲突位来更新查询前缀,因而能有效避免查询树算法逐位增加查询前缀的弊端。与查询树算法相比,改进的算法能有效减少系统的运行时间和通信复杂度,降低系统的数据传输量。通过网上查阅资料,我主要了解了查询树算法和冲突跟踪树型算法的思想及其性能,其算法思想与老师提供的Tree-walking算法十分相似。
图表 7 Tree-walking算法思想
图表 8 Tree-walking算法流程
3.3.1 查询树算法
算法协议
查询树算法是一种无记忆的算法,它使用二进制序列,标签不必存储以前的查询情况,从而降低了标签成本。首先阅读器向标签发出一个查询指令(一个k位前缀),询问标签是否含有此次查询的前缀。如果有多个标签应答,阅读器能判断出至少有两个标签含有该前缀。于是,阅读器会在当前查询前缀后增加一个0或1,形成两个新的前缀后继续询问。当只有一个标签响应查询前缀时,该标签就会被识别。重复以上过程,直至所有标签都被识别为止。
具体的算法协议描述如下:令A表示长度不超过k的二进制序列集,阅读器的状态用P(Q,M )表示。其中,队列Q为A中的字符序列,寄存器M为一个二进制序列,存放成功查询到的标签ID。阅读器的某个查询前缀q为A中的二进制序列,标签的响应w表示长度不超过k的二进制序列。
阅读器
我们假设查询队列Q的初始值为空,寄存器M的初始值也为空。
标签
令序列w1w2w3…wk表示标签的ID,如果q为空或者q = w1w2w3…wq,即标签ID符合该查询前缀,标签将把序列wq+1wq+2…wk传送给阅读器。
算法性能
查询树算法的性能主要从时间复杂度和通信复杂度两个方面去衡量。我们通过计算阅读器完全识别n个标签所需的查询次数来表示时间复杂度。若用TS表示查询树协议中的识别次数,当标签个数n≥4时,根据统计关系式:
2.881n - 1 ≤ E [TS ] ≤ 2.887n – 1 (1)
式(1)中,E [TS ]表示识别次数的数学期望。在最坏的情况下,识别n个标签所需的查询次数为:
N ≤ n × (L + 2 − log n) (2)
式(2)中,L表示标签ID长度。
阅读器的通信复杂度是指识别n个标签,阅读器发送的总比特数。假设标签ID长度为L,故阅读器每次发送的比特数不超过L bit,而E [TS ] ≤ 2.887n – 1。因此,阅读器的通信复杂度有近似关系式:
Lr ≤ 2.89Ln (3)
3.3.2 冲突跟踪树型算法
算法核心思想
对于查询树算法,当阅读器广播一个查询前缀而有多个标签响应时,标签将各自剩余的ID传给阅读器。假设各个标签发送的ID中前n −1位都相同,第n位冲突,那么对于QT算法,在检测到第n位冲突位前,阅读器至少要再经过n −1位的重复查询。这在某种程度上增加了系统的时间复杂度和通信复杂度。那么,能不能通过减少这种情况下的查询次数来减少系统的开销呢? 于是就产生了QT算法的改进算法。
改进算法建立在查询树算法的基础上,所不同的是该算法采用冲突跟踪。其核心思想在于:阅读器发送一个k位查询前缀,如果标签ID的前k位与阅读器发送的前缀相同,则标签发送k位以后的ID。阅读器接收标签发出的ID,若无冲突,则阅读器继续接收ID;若检测出第n位产生冲突,则向标签发送一个指令,使标签停止向阅读器发送ID号。与查询树算法每次只增加一位查询前缀不同,改进算法仅当阅读器检测到冲突位时才更新查询前缀,更新的查询前缀为当前的查询前缀后加上新接收到的冲突位之前的所有位,并在末尾添加0或1。我们称这种改进的算法为冲突跟踪树型算法CTT(Collision Tracking Tree)。
算法流程
冲突跟踪树型算法的流程如图表9所示。
图表 9 冲突跟踪树型算法流程
算法性能
与查询树算法相比,冲突跟踪树型算法减少了系统运算量和通讯流量,因而在一定程度上降低了系统的时间复杂度和通信复杂度。
未完待续......