当前位置:文档之家› RFID二进制树防碰撞算法的研究与实现修改123

RFID二进制树防碰撞算法的研究与实现修改123

RFID二进制树防碰撞算法的研究与实现修改123
RFID二进制树防碰撞算法的研究与实现修改123

南阳理工学院本科生毕业设计(论文)

学院(系):计算机与信息工程学院

专业:通信工程

学生:乔军惠

指导教师:路新华

完成日期 2012 年 4 月

南阳理工学院本科毕业设计(论文)RFID二进制树防碰撞算法设计

学院(系):计算机与信息工程学院

专业:通信工程

学生姓名:乔军惠

学号:104060820064

指导教师(职称):路新华(讲师)

评阅教师:

完成日期:2012年4月

南阳理工学院

Nanyang Institute of Technology

RFID二进制树防碰撞算法设计

【摘要】射频识别技术RFID是目前正快速发展的一项新技术,它通过射频信号进行非接触式的双向数据通信,从而达到自动识别的目的。随着RFID技术的发展,如何实现同时与多个目标之间的正确的数据交换,即解决RFID系统中多个读写器和应答器之间的数据碰撞,成为了限制RFID技术发展的难题,采用合理的算法来有效的解决该问题,称为RFID系统的防碰撞算法。在各种算法当中,二进制树算法因为它识别应答器的确定性,成为了应用最广泛的一种,多个国际标准均对其进行了规定,这推动了防碰撞算法的发展,但是也带来了解决思路不统一的矛盾。在传统思路中,一般是通过单片机来进行算法处理,随着RFID技术的发展,未来的一个重要方向是现场可编程门阵列FPGA,做为一种现场可编程的专用集成电路,FPGA拥有高速度,可编程等多个适应于算法处理的优点,从而为RFID防碰撞算法问题开辟了新的有效途径根据上述分析,全文针对RFID 系统二进制树防碰撞算法,进行了理论与实践方面的探讨,主要分为三个方面,首先是二进制树算法的理论研究,将现有的二进制树算法进行了归纳,汇总为基本算法,动态算法,退避式算法三类,阐述了各个算法的思路,对其进行了性能评价;其次,在现有的三类防碰撞算法的基础上,提出了一种新的改进型二进制树算法,该算法识别速度快,执行效率高,极大的改进了识别效果。

【关键词】:射频识别;防碰撞算法;读写器;应答器;现场可编程门阵列

Abstract

RFID is anewly developedtechnologywhich communicates through the—contact RF signal,so asto achieve objective automatic identification.Along with the development of RFID technology,how to realize Data Exchange accurately amongMultiple Targets at the same time becomes the key problem of RFID technology.RFID anti-collision algorithm is the solution to the above mentioned problems.In all the algorithms,binary algorithm is most widely used as an international standard fbr its exactness ofidentincation.International standards have put forward manyregulations on binary algorithm.It not onlypromotes the development of anti.coUision algorithm,but also b“ngs the conflict to a unilFied solution.Traditionalideas in general are handled byMCU.Along with the development ofRFID technology,an imponant direction in the f.uture is the field programmable gates arrayFPGA.As kindof integrated circuitsthatcanbe programmed in the field,FPGA is fast and programmable.All these adVantagesopenup anewef active way ofRFIDanti.collisionarithmetic.In viewof the above problems,this paperprobes into the RFID systembinary prevent collisionf.rom the perspectives ofboth theory and practice.It canbediVided into three aspects:6rstly,theoretical researchon binary algorithm.It sums up all thebinary algorithms in being and gather to three categorys suchas Basic algorithm,Dynamic algorithm and Backoff algorithm.MoreoVer,it Expounds the idea of the various algorithms and evalues their perf6rmance;secondary,it introduces an improved version of algorithm onthe basis of specinc standard.This algorithm has f.ast recognition,high efnciency and greatly improved the identification results.

Key Words:RFID;Anticollision;Read/Write DeVices;Transponders;FPGA

目录

1 引言 (6)

1.1RFID技术简介 (6)

1.2RFID系统 (6)

1.2.1 RFID系统组成 (6)

1.2.2 RFID系统分类 (7)

1.2.3 RFID系统工作原理 (8)

1.3RFID技术现状及其发展 (8)

1.3.1RFID技术应用 (8)

1.3.2 RFID标准统一化 (9)

1.3.3 RFID防碰撞算法 (9)

1.4课题提出的背景及其意义 (9)

1.5本文的主要工作 (10)

2 现有RFID二进制树防碰撞算法 (11)

2.1RFID防碰撞算法概述 (11)

2.2RFID二进制树防碰撞算法概述 (11)

2.2.1基本概念 (11)

2.2.2性能指标 (12)

2.2.3算法分类 (13)

2.3基本二进制树防碰撞算法 (14)

2.3.1算法思路 (14)

2.3.2实例演示 (15)

2.3.3性能评价 (17)

2.4动态二进制树防碰撞算法 (19)

2.4.1算法思路 (19)

2.4.2实例演示 (21)

2.4.3性能评价 (22)

2.5退避式二进制树防碰撞算法 (22)

2.5.1算法思路 (22)

2.5.2实例演示 (24)

2.5.3性能评价 (25)

2.6本章小结 (25)

3 改进型二进制树防碰撞算法 (25)

3.1涉及二进制树算法的国际标准 (25)

3.1.1 IS0 15693 (25)

3.1.2 IS014443 (26)

3.2IS014443标准二进制树防碰撞算法 (27)

3.2.1基本概念 (27)

3.2.2算法思路 (28)

3.3改进型二进制树防碰撞算法 (32)

3.3.1改进方向 (32)

3.3.2基本概念 (32)

3.3.4实例演示 (37)

3.4本章小结 (39)

4 FPGA实现改进型二进制树防碰撞算法 (40)

4.1FPGA技术 (40)

4.1.1 FPGA简介 (40)

4.1.2 FPGA设计流程 (40)

4.1.3 FPGA设计工具 (42)

4.1.4 FPGA设计语言 (45)

4.1.5 TestBench验证平台 (45)

4.2RFID系统中的防碰撞模块 (46)

4.3FPGA实现算法流程 (46)

4.4曼彻斯特解码模块 (47)

4.5命令处理模块 (50)

4.5.1请求命令处理 (50)

4.5.2防碰撞命令处理 (51)

4.5.3选择命令处理 (53)

4.5.4去选择命令处理 (53)

4.6命令选择模块 (53)

4.7数据存储模块 (55)

4.8密勒编码模块 (56)

4.9模块连接 (57)

4.10本章小结 (58)

结论 (58)

致谢 (62)

1 引言

1.1 RFID技术简介

自动设备识别技术是目前国际上发展很快的一项新技术,英文名称为Automatic Equipment Identif ication,简称AEI,它通过一些先进的技术手段,实现人们对各种设备在不同状态下的自动识别和管理【ll】。

目前,应用最广泛的自动识别技术大致可以分为光学技术和无线电技术两种,其中光学技术普遍应用于条形码和摄像两大类,而无线电技术在自动识别领域的应用更具体的名称为射频识别,英文名为Radio Frequency Identification,简写为RFIDI21。RFID技术通过射频方式进行非接触的双向通信,达到自动识别的目的,它源起于上世纪四五十年代,最初是基于雷达与微波理论的发展,自从上世纪九十年代以来,RFID技术快速发展,得到了广泛的应用,进入新世纪后,各个国家,组织还有企业都加大了对RFID技术的投入,生产了大批相应的产品,在多个领域有了成功的应用案例。RFID被誉为二十一世纪的十大战略性产业之一,可以预想,未来RFID技术的发展空间是无限广阔的。

1.2 RFID系统

1.2.1 RFID系统组成

根据实际应用环境,RFID系统结构有多种不同分法,一般来说,一个典型RFID系统包括三个部分:前端信息载体,数据交换环节,后端应用环境【3】。在具体应用中,前端信息载体有多个名称,如标签(Tag),智能标签(Smart Labels),射频卡(RF Card)等,本文建议采用应答器(Transponder)这种更具普遍意义的说法。在RFID系统中,应答器放置在待识别的物体上,它内部存储的信息表征着该物品的独一性。通常来说,应答器由耦合元件和微电子芯片组成,主要电气性能为工作频率,读写能力,数据传输率,信息数据存储量,防碰撞能力,信息安全性能等,应答器的分类也是以这些性能为依据的,例如根据存储器可将应答器分为EEPROM,FROM(铁电存储器),SRAM(静态随机存储器),根据信息注入方式可分为集成电路固化,现场线改写,现场无线改写,根据电源供给方式分为无源,半无源,有源。一般来说,应用最广泛的是无源+集成电路固化+静态随机存储的应答器。由于在RFID系统中,应答器是大规模生产的。应答器的典型产品有TI公司的6000系列,Philips公司的I·CODE等。数据交换环节即RFID系统中的读出写入设备,它是系统的核心部件,是后端应用环境和前端信息载体的数据通道,在实际应用中,往往被称为查询器,扫描器,阅读器,编程器等,本文建议采用读写器(Read/Write Device)这种更具普遍意义的说法,这样既包括了从应答器中读出信息,同时也包括了向应答器中写入信息。根据天线与读写器模块的分离与否,读写器可以分为分离式和集成式,但无论哪种读写器,其基本结构都是类似的,从硬件部分来说,典型的读写器由三块组成:射频通道模块,控制处理模块,天线。后端应用环境主要完成数据信息的存储及处理,

它实质上就是一个数据管理系统,也是一个全局控制系统,一般由PC机或者工作站组成,同时也包括了应用软件在内,整个后端应用环境负责接收来自读写器的数据,并进行存储以及相应的处理,协同调节多个读写器的工作,该部分在应用中常称为中间件(Savant),它扩展了RFID系统的应用范围和应用能力,是未来RFID系统智能化,大型化发展的有力技术支撑,是RFID技术发展的重要方式。微软公司近年来也介入了

RFID技术领域,所瞄准的就是RFID系统后端应用的相关软件和服务。

综上所述,一个典型的RFID系统的组成如图所示:

图1.1 RFID 系统组成

1.2.2 RFID系统分类

RFID系统依据不同的标准,可以分为很多类别,各个不同的RFID系统,在工作方式和应用范围上,有着各自不同的特点,在应用时要根据实际需要来选择。几种典型的分类方式如下所示:

根据作用距离的远近,RFID系统可以分为如下三个方面:

(1)密耦合:典型的作用范围为0~lcm。

(2)遥耦合:典型的作用范围为lcm~1m。

(3)远距离系统:典型的作用范围为l~10m。

根据工作频率的大小,RFID系统可以分为如下四个方面:

(1)低频:30~300KHz,典型应用为134KHz。

(2)高频:3~30MHz,典型应用为13.56MHz.

(3)超高频:300MHz~5.8GHz,典型应用为2.4G。

(4)混频:多个频率的混合使用,典型应用为134KHz+430MHz。

根据应答器供电方式,RFID系统可以分为三个方面:

(1)无源系统:由读写器负责给应答器供电。

(2)半无源系统:应答器内的电池仅做辅助作用。

(3)有源系统:应答器内置电池负责供给工作电压。

1.2.3 RFID系统工作原理

RFID是一门多学科综合技术,涉及到电磁场理论,数字电路,模拟电路,无线电广播,通信原理等多方面知识RFlD系统中,读写器将要发送的信号调制到载波上,经由射频通道,通过天线发送出去,应答器上的电压根据载波的变化而变化,将该电压信号进行整流和滤波后,得到解调后的数据,这是下行链路的过程,应答器传输的数据的变化控制应答器天线上负载电阻的通断,从而促使读写器天线上电压的变化,从而实现了数据的上行链路传输。在数据的双向传输过程中,是通过电磁场的相互感应来实现的,该过程也可以用变压器的模型来予以参考。同时,根据RFID系统的不同,在供电方式上有无源或者有源,调制方式上有幅度调制或者相位调制,数据读取上有电感耦合或者反向散射等区别【5】。

1.3 RFID技术现状及其发展

1.3.1 RFID技术应用

做为一种新兴的自动识别技术,RFID近年来发展很快,在国内国外都取得了广泛的应用,主要体现在以下几个领域【6】。

(1)物流管理.

物流管理是RFID技术最具应用前景的领域,近年来提出了一个物联网的概念,意在将全球所有的物品信息都用唯一的电子代码来表示,从而将这些物品都联系在一起,可以随时随地的识别,追踪,管理这些物品,最终在产品,用户,企业和政府之间建立但是该应用涉及到的方面太广,技术难度很大,目前还在研究当中。

(2)身份识别

利用RFID技术,将应答器嵌入到身份证,护照等各种证件当中,甚至植入动物皮毛,用来跟踪和识别目标。这方面应用的典型例子是我国目前实行的二代身份证,它基于ISO/IEC14443标准定义的TYPE B类型卡。RFID在身份识别方面的主要问题是频段的局限性,一般使用的是l35KHz和13.56MHz的工作频率,这是因为过高的频段容易带来对人体有害的电磁辐射。

(3)防伪应用

应答器在防伪应用中有识别快速,伪造难,成本低等优点,再加上安全认证和加密功能,就可以大大提高伪造的难度和成本,同时,在识别的时刻,可以通过读写器的快速阅读功能,在瞬间得出所有物品的信息,并加以记录和处理。目前在日本和欧洲已经有了类似的应用。

(4)交通管理

交通管理是RFID最先应用的领域,目前已经拥有了成熟的技术,它利用了应答器便捷快速识别,可靠性高,安全性强的特点,目前主要应用范围是电子车票,高速公路收费等方面,在我国深圳,基于RFID技术的高速公路收费系统已经得到了成功的应用。RFID技术的应用远不止以上提及的四个方面,它在诸如生产线自动化管理,门禁系统,新生婴儿防错管理,地理信息标识等多个方面都有着广泛应用,可以毫不夸张的说,RFID技术有着良好的发展前景,它孕育的

经济效益将是超乎想像的。

1.3.2 RFID标准统一化

RFID最初是各个厂家在各自的独立标准下开发出来的,缺乏统一的规范,因此制约了该项技术在大规模系统中的应用,随着RFID技术的发展,参与到其中的国家,组织,企业也越来越多,目前形成了国际标准化组织ISO,泛在ID 中心UID,全球电子产品代码管理中心EPC三大标准体系,这些标准涉及到RFID 系统的物理结构,通信协议,防碰撞算法,应用系统接口协议等等多个方面的内容,它们针对不同的频率,基于不同的工作原理,甚至在同样的应用背景下也有着巨大的协议上的区别。而要建立一个全球互联的RFID产品网络,实现RFID 技术的飞跃发展,就必须解决标准不统一的难题,近年来,随着RFID技术的应用越发广泛,有识之士都意识到并着手解决这个问题,目前主要有两种思路,一是生产出适应于不同标准,多制式兼容的RFID产品,二是制定一个统一的RFID 硕十学位论技术标准。但是RFID本身的技术难度,以及标准带来的经济利益的冲突,使得该目标实施起来非常困难。由此可见,标准统一化问题的重要性与困难性是并存的,这将是一个任重而道远的过程。

1.3.3 RFID防碰撞算法

随着RFID技术的发展,多目标识别成为了一个很重要的应用方向,特别在目标跟踪,物品识别,访问控制等操作中,利用RFID技术,对附着在不同目标上的应答器快速可靠的进行识别,从而大大提高了定位的精确度,管理的自动化促进了整个产业链的发展。因此,如何保证迅速快捷,又安全可靠的同时识别多个目标,就成为了RFID技术发展的关键性技术。在RFID系统中,当工作范围内同时出现了多个读写器和多个应答器时,读写器与读写器之间,应答器与应答器之间的相互干扰,称RFID系统发生了碰撞【7】,从而导致数据不能正确的传输,信息无法得到正确的读取,一方面影响了产品的识别,另一方面还可能导致信息的泄露。在全球信息安全意识广泛普及的背景下,可靠的安全机制成为了RFID 技术发展的关键性制约因素,如何有效的解决RFID系统的碰撞问题,成为了技术的关键,对此就需要采用一定的防碰撞算法来对其进行处理。目前关于防碰撞算法的研究还在进行当中,理论成果已经得出了很多,许多国际标准也对一些成熟的算法进行了规定,但是无论在理论效率还是实际应用上,都还存在很大的改进空间。

1.4课题提出的背景及其意义

早期的RFID技术很少涉及到防碰撞问题,而在近年来,随着RFID技术的发展,应用范围的扩大,使得防碰撞问题日益成为制约RFID发展的关键技术,原因有两个,首先,早期的RFID一般是近距离感应耦合式系统,其操作频率功率普遍较低,读取的速度慢,范围小,所以也较少有发生碰撞的可能,而目前RFID 应用中多目标识别成为了主流方向,这就要求实现在多个物品中正确的识别出单个目标;其次,早期的RFID应用没有统一的规范,各个厂家的RFID产品也仅是

应用在单个的系统当中,不存在碰撞的可能,而近年来RFID应用迅速发展,各个不同RFID制造商的产品之间的不兼容,也带来了碰撞问题。总之,由于多目标识别应用的需要,RFID系统防碰撞问题成为了关键技术,为了解决碰撞,可以从硬件和软件两方面着手,由于RFID系统的大规模应用限制了成本,所以,硬件实现是不实际的,因此就需要采用一定的防碰撞算法来予以解决。依前所述,RFID系统碰撞主要有两种情况,读写器碰撞和应答器碰撞,读写器碰撞是一个应答器同时收到不同读写器发出的命令,应答器碰撞是一个读写器同时给不同应答器发送命令。在实际的应用当中,应答器由于其低成本的优越,从而得到大量的生产,而读写器往往是固定在系统的某处,来识别多个应答器,所以碰撞的主要情况是应答器碰撞,即一个读写器的工作范围内同时出现了多个应答器,并且对该读写器发出的命令同时予以响应,从而导致读写器无法正确的识别出一个应答器,称该现象为发生了应答器碰撞。解决碰撞的过程相应的被称为防碰撞,如前所述,该防碰撞过程主要从软件的角度来予以解决,称为防碰撞算法【8】。

在上述前提下,基于应答器的确定型二进制树防碰撞算法是目前最好的一种选择,对其进行研究,是最有实际应用价值的,所以,本文将对其进行理论分析与具体实现,在研究过程中,注重与新一代智能RFID系统的结合,应用拥有强大功能的FPGA(FieldProgrammable

GateArray)做为算法运行的微处理器,这种思路将是未来RFID技术发展的重要方向,RFID技术中的关键算法与先进的电子技术FPGA的结合,将为RFID技术的应用拓开广阔的前景。

1.5本文的主要工作

本文将在RFID技术的前提下,结合当前数字电路设计的主流思路,重点研究RFID的关键技术防碰撞算法,并主要着眼于其中基于应答器的确定性算法,即二进制树防碰撞算法,在理论分析的基础上,对其进行具体实现。基于上述考虑,论文将分四章来予以讲述,文章结构与内容安排如下:

第1章:绪论。系统的介绍了RFID技术,描述了典型RFID系统的结构组成,提出了RFID系统的分类思想,讲述了RFID系统的工作原理,以及其应用范围,重点强调了RFID技术的现状和所面临的主要问题,由此体现了研究RFID关键技术防碰撞算法的意义,明确了本文的主要研究内容。

第2章:现有RFID二进制树防碰撞算法。概要性的描述了RFID防碰撞算法,对其进行了分类,重点介绍其中的二进制树防碰撞算法,研究了三种最基本的二进制树算法,对其进行了原理阐述,性能分析,以及实例演示。

第3章:改进型二进制树防碰撞算法。二进制树防碰撞算法在多个国际标准中均有规定,基于IS014443标准的TYPEA是其中的一个典型例子,本章首先介绍了涉及到二进制树防碰撞算法的几个标准,其次详细研究了ISOl4443标准对二进制树防碰撞算法的规定,最后提出了在此基础上的改进算法,这也是本章的重点。

第4章:FPGA实现改进型二进制树防碰撞算法。FPGA技术是目前数字电路设计的主流思路,利用FPGA做主处理器,是RFID技术发展的方向,本章探讨了这一想法,介绍了FPGA技术的相关要点,并应用FPGA,实现了改进型二进制树防碰撞算法。

2 现有RFID二进制树防碰撞算法

2.1 RFID防碰撞算法概述

RFID系统的数据通信双方是读写器和应答器,在实际的RFID系统工作时,可能会出现同时多个读写器和多个应答器共存的情况,毫无疑问,此时系统的数据交换就会出现信道与时序上的重叠,也就是发生了碰撞,在多个读写器与多个应答器的射频识别系统中,存在着两种形式的冲突方式,一种是同一应答器同时收到不同读写器发出的命令,另一种是同一个读写器同时收到多个不同应答器返回的数据,前者我们称为读写器碰撞,后者称为应答器碰撞【9】,在实际应用当中,一般是读写器做为主设备,来识别多个应答器,所以发生读写器碰撞的应用场合是不多的,因此下文将着重研究应答器碰撞。

在上述前提下,有两种类型的通信方式,一种是读写器发送的数据同时被多个应答器接收,称为“无线广播”,另一种是多个应答器的数据同时传送给读写器,称为“多路存取”,两者都是无线电技术中长期面临的难题,同时也发展出一系列相应的解决思路,一般来说分为四种,即空分多路(SDMA),码分多路(CDMA),频分多路(FDMA),时分多路(TDMA),从RFID系统的通信形式、功耗、系统复杂性以及成本多方面综合考虑,时分多路法是最有实际应用价值的,它也是目前RFID防碰撞算法应用中最广泛的一类,时分多路法的基本思想是把整个可供使用的通路容量按时间分配给多个用户,从而达到在不同时隙将各个应答器一一识别出来的目的【11】。时分多路法按照能量的供给者可以分为两大类,一类是应答器驱动型,另一类是读写器驱动型,这也正是对应了第一章中RFID 系统分类思路中的有源系统和无源系统,根据实际应用情况,无源系统是应用最广泛的一类,所以下文重点研究读写器驱动型的时分多路法。在该类读写器驱动型时分多路法中,目前最常用的防碰撞算法有两种,一类是基于时隙ALOHA的统计型算法,另一类是基于二进制树的确定型算法,统计型算法的意义是在一定的时隙范围内,系统有可能识别出所有应答器,确定型算法的最大优点是,在一定的时隙范围内,系统一定可以将所有的应答器一一识别出来【13】。从应用的角度来说,正确有效的识别是实际所需要的,因此下文将着重于二进制树防碰撞算法的研究。

2.2 RFID二进制树防碰撞算法概述

2.2.1基本概念

在RFID防碰撞算法中,二进制树算法是目前应用最广泛的一种,之所以称为“二进制树”,是因为在算法执行过程中,读写器要多次发送命令给应答器,每次命令都把应答器分成两组,多次分组后最终得到唯一的一个应答器,在这个分组过程中,将对应的命令参数以节点的形式存储起来,就可以得到一个数据的分叉树,而所有的这些数据节点又是以二进制的形式出现的,所以称为“二进制树”。

为了便于描述算法,声明一些基本概念如下:首先,在RFID系统当中,每个应答器都是独一无二的,它们的独立性通过唯一的自身序列号来体现,该序列号在不同的标准中有不同的名称,如EPC标准中称其为电子产品代码EPC,即英文ElectronicProduct Code的缩写,IS014443标准中称其为唯一标识码UID,即英文Unique Identmer的缩写【15】。事实上,这些都是对应答器序列号的名称描述,因为下文涉及到的防碰撞算法是普遍意义上的,既包括了EPC标准中的规定,也包括了ISO标准中的规定,因此在本文对普遍意义上的防碰撞算法的描述过程中,统一用序列号SN(SerialNumber)来描述上述概念,同时,序列号的长度,格式,以及编码方式也是各个标准各自差异的,为了说明的便利,统一定义为8位长度的

二进制码。如图2.1所示。

图2.1 应答器序列号数据格式

读写器与应答器之间进行数据交换时,往往要传输序列号的部分或者全部位,此时的传输顺序定义为:先发送低位,再发送高位。在读写器或者应答器内部,对数据进行比较时,遵循这样的原则,即按位依次比较,先比较低位,再比较高位,约定0<1,根据这个比较顺序,在判断大小时,低位数据优先,即两数A,B相比较,从低位开始的第一个不相等位的大小决定了两数的大小,只有当两个数的全部位均相等时,两数才相等。

2.2.2性能指标

定义碰撞解决时期CRI,即Collision Resolution Interval【16】,即解决一个读写器工作范围内碰撞所需要的时隙数,对二进制树算法的评价,一些常用的性能指标如下所示【17】:

首先是算法执行效率,定义如下:在算法执行过程,一共个时隙,识别了n个应答器,则=n/表示算法的执行效率。

分析如下:n=l,显而易见,在第一个时隙内不发生碰撞,可以成功识别该应答器,=1。

n≥2,由于应答器序列号的唯一性,将有碰撞发生,在一个时隙内发生碰撞的概率p是一个随机事件,在n个应答器信息包中i个发生碰撞的概率为:

给出i个碰撞,则CRI的长度为:

其中1是n个信息包最初的一个时隙,是i个碰撞的顺利传输的时隙,

是n-i个无碰撞传输的时隙。

由上式可知,是逐渐递归的,通过递归可得:

根据式(2.3),上式可化为:

由此可见,是关于p的函数,则=n/也是关于p的函数,一般情况下,可以参考二项分布,将p取为1/2。

算法的第二个重要的性能指标是稳定性,显然,基于TDMA的二进制树防碰撞算法是沿着时间轴线来执行协议的,有一系列的碰撞解决时期CRI,定义一个随机变量,表示第k个CRI的长度,这些…………形成一个马尔可夫链(Markovchain),因为第个CRI的长度由它开始的第一个时隙传输的信息,也就是在k个CRI区间内到达的信息包决定的,所以,如果马尔可夫链满足遍历性分布,那么这个系统就可以说是稳定的。

马尔可夫链遍历性分布要满足下列两个条件【18】:

这里有:

也就是n个信息包从发生碰撞开始传输的CRI区间长度的数学期望,是

在一个时隙内到达这个系统信息包的期望值,该过程属于泊松过程【l9】。一般来说,

在二进制树防碰撞算法中,系统都能够满足马尔可夫链的两个遍历性分布条件,即作为一种确定型的算法,二进制树防碰撞算法是稳定的。算法的第三个重要性能是系统通信复杂度,显而易见,系统的通信双方是读写器与应答器,则通信复杂度也应该从这两方面着手考虑,即读写器与应答器各自发送的数据位的位数。该指标的评价标准是基于能量消耗的角度的,即发送的数据信息量越少,则整个系统消耗的能量也越少,这显然是一个理想的效果。

2.2.3算法分类

在基本的二进制树搜索算法的基础上,有多种形式的二进制树搜索算法,它

们之间主要的区别在于命令的数据形式,主要有两点。

(1)命令参数是1bit数据,还是多bit数据。

(2)命令参数长度是固定的,还是变化的。

图2.2是一个二进制树搜索算法的分类图,在基本二进制树的基础上,按照命令参数分为1bit和多bit,根据传输的命令参数的长度分为定长二进制树和动态二进制树两种,根据二进制树遍历时是一轮前进到底的还是退避返回的分为前进二进制树和退避二进制树两种。需要说明的是,这只是一个大略的分类法,主要目的在于说明二进制树分类的基本原则。事实上,分类所得的这些算法中也有互相重合的,如动态二进制树算法既可以采用前进思路,也可以采用退避思路。另外,在具体应用时,可能还存在多种不同的说法,如lbit长二进制树中还有修正二进制树MBBT,加强二进制树EBBT等区别【20】。

图2.2二进制树算法分类

2.3基本二进制树防碰撞算法

2.3.1算法思路

定义两个具有普遍意义的命令来描述算法:

(1)请求命令Request(SN):该命令携带一个参数SN,应答器接收到该命令,将自身的SN与接收到的SN比较,若小于或者等于,则该应答器回送其SN给读写器。注:Request(SN)初始值设为Request(11111111)。

(2)休眠命令Sleep(SN):该命令携带一个参数SN,应答器接收到该命令,将自身的SN与接收到的SN比较,若等于,则该应答器被选中,进入休眠状态,也即是不再响应Request命令,除非该应答器通过先离开读写器工作范围再进入的方式重新上电,才可以再次响应Request命令。

基本二进制树算法的流程图如图2.3所示:

图2.3基本二进制树算法流程

基本二进制树算法的步骤如下:

(1) 应答器进入读写器工作范围,读写器发出一个最大序列号,所有应答器的序列号均小于该最大序列号,所以在同一时刻将自身序列号返回给读写器。

(2) 由于应答器序列号的唯一性,当应答器数目不小于两个时,必然发生碰撞.发生碰撞时,将最大序列号中对应的碰撞起始位设置为O,低于该位者不变,高于该位者设置为l。

(3) 读写器将处理后的序列号发送给应答器,应答器序列号与该值比较,小于或等于该值者,将自身序列号返回给读写器。

(4) 循环这个过程,就可以选出一个最小序列号的应答器,与该应答器进行正常通信后,发出命令使该应答器进入休眠状态,即除非重新上电,否则不再响应读写器请求命令。也就是说,下一次读写器再发最大序列号时,该应答器不再响应。

(5)重复上述过程,即可按序列号从小到大依次识别出各个应答器。

注:第五步时,从步骤1开始重复,也就是说,读写器识别完一个应答器后,将重新发送原始的最大序列号。

2.3.2实例演示

根据上述分析,下面给出一个基本二进制树搜索算法的实例演示,如图2.4 所示。

假设RFID系统中有一个读写器R,四个应答器Tl(10100101),T2

(10l01101),T3(11010101),T4(11101101),在某一时刻,四个应答器

同时进入读写器的工作范围之内,读写器发出命令,四个应答器同时响应,由于其序列号SN的唯一性,将发生应答器碰撞,从而启动防碰撞循环,分析如下:

图2.4 基本二进制树算法实例

注:图中共有四轮循环,依次识别出四个应答器,分别以不同格式的线条表示,并加有循环轮次的数字标识。

(1)启动第一轮循环,读写器发送Request(1lll1111)命令,所有应答器响应该命令,将自身序列号与该SN(1l1l1111)比较,均小于该值,于是所有应答器均返回自身序列号给读写器,因为序列号的唯一性,应答器返回的序列号在读写器接收端发生碰撞,读写器检测到返回数据为lXXXXl0l,其中X表示该位发生了碰撞,读写器做如下处理:将碰撞起始位D4位置0,低于该位者不变,高于该位者置l,得到11ll0l01,作为下一次Request命令携带的参数值,即Request(11110l01)。

(2)读写器发送Request(11110101)命令,所有应答器响应该命令,将自身序列号与该SN(11110l01)比较,其中T1(10l00101),T3(1l010101)的序列号小于该值,则Tl,T3返回自身序列号给读写器,在读写器接收端发生碰撞,读写器检测到返回数据为1XXX0l01,读写器做如下处理:将碰撞起始位D5位置0,低于该位者不变,高于该位者置l,得到11l00l01,作为下一次Request命令携带的参数值,即Request(11100101)。

(3)读写器发送Request(11100101)命令,所有应答器响应该命令,将自身序列号与该SN(111 00l01)比较,其中Tl(10100l01)的序列号小于该值,则Tl 返回自身序列号给读写器,在读写器接收端不发生碰撞,读写器检测到返回数据为10100101,读写器做如下处理:将该数值作为下一次Sleep命令携带的参数值,即Sleep(10100101)。

(4)读写器发送Sleep(10100101)命令,所有应答器响应该命令,将自身序列号与该SN(10l00111)比较,其中T1(10l00101)的序列号等于该值,则T1执行该命令,进入休眠状态,即除非重新上电,否则不再响应Request命令。

(5)启动第二轮循环,读写器发送Request(111l1111)命令,除T1外所有应答器响应该命令,将自身序列号与该SN(11111l11)比较,均小于该值,于是所有应答器均返回自身序列号给读写器,因为序列号的唯一性,应答器返回的序列号在读写器接收端发生碰撞,读写器检测到返回数据为1XXXXl01,其中X表示该位发生了碰撞,读写器做如下处理:将碰撞起始位D4位置0,低于该位者不变,高于该位者置1,得到11110101,作为下一次Request命令携带的参数值,即Request(11110101)。

(6)读写器发送Request(11110101)命令,.除Tl外所有应答器响应该命令,将自身序列号与该SN(11l10101)比较,其中T3(1l010l01)的序列号小于该值,则T3返回自身序列号给读写器,在读写器接收端不发生碰撞,读写器检测到返回数据为110l0101,读写器做如下处理:将该数值作为下一次Sleep命令携带的参数值,即Sleep(11010101)。

(7)读写器发送Sleep(1l010101)命令,所有应答器响应该命令,将自身序列号与该SN(110l

0101)比较,其中T3(11010101)的序列号等于该值,则T3执行该命令,进入休眠状态,即除非重新上电,否则不再响应Request命令。

(8)启动第三轮循环,读写器发送Request(11111111)命令,除T1,T3外所有应答器响应该命令,将自身序列号与该SN(1111ll11)比较,均小于该值,于是所有应答器均返回自身序列号给读写器,因为序列号的唯一性,应答器返回的序列号在读写器接收端发生碰撞,读写器检测到返回数据为1X101101,其中x 表示该位发生了碰撞,读写器做如下处理:将碰撞起始位D7位置0,低于该位者不变,高于该位者置1,得到10101101,作为下一次Request命令携带的参数值,即Request(10101101)。

(9)读写器发送Request(10101101)命令,除Tl,T3外所有应答器响应该命令,将自身序列号与该SN(10101101)比较,其中T2(10101101)的序列号等于该值,则T2返回自身序列号给读写器,在读写器接收端不发生碰撞,读写器检测到返回数据为l0101101,读写器做如下处理:将该数值作为下一次Sleep命令携带的参数值,即Sleep(10101101)。

(10)读写器发送Sleep(10101101)命令,所有应答器响应,将自身序列号与该SN(10101101)比较,其中T2(10101101)的序列号等于该值,则T2执行该命令,进入休眠状态,即除非重新上电,否则不再响应Request命令。

(11)启动第四轮循环,读写器发送Request(1l111111)命令,除Tl,T3,T2外所有应答器响应该命令,将自身序列号与该SN(11l1l111)比较,均小于该值,则所有应答器均返回自身序列号给读写器,因为只有应答器T4返回数据,所以在读写器接收端不发生碰撞,读写器检测到返回数据为11101101,读写器做如下处理:将该数值作为下一次Sleep命令携带的参数值,即Sleep(1l1 01101)。

(12)读写器发送Sleep(1ll 01101)命令,所有应答器响应,将自身序列号与该SN(11101l01)比较,其中T4(1l1 01101)的序列号等于该值,则T4执行该命令,进入休眠状态,即除非重新上电,否则不再响应Request命令。

2.3.3性能评价

假设工作范围内有N个应答器存在,通过基本二进制树搜索算法进行防碰撞操作,依次识别出所有应答器。循环次数定义为在整个防碰撞循环过程中的循

环轮次,也即是二进制树的遍历次数。根据前面的分析可知,做为一种确定性的算法,基本二进制树一轮循环总能识别出一个应答器,所以在n个应答器的前提下,经过n次循环可以识别出N个应答器,所以整个过程中的循环次数为n.搜索次数定义为算法执行命令的次数。也即是二进制树的节点数目。该值可以用式子来表示【21】,其中Integ表示取整。

通信时间t定义为数据交换的时间,也即是命令执行的时间。假设有n个应答器,从读写器到应答器的传输时间为tl,反之为t2.总时间为t,则传输的总时间t可以用式2.8来表示【22】:

数学归纳法证明如下:

假设只有一个应答器,则读写器发送命令,应答器响应,无碰撞,识别出应答器。

假设有两个应答器,则读写器发送命令,两个应答器响应,发生碰撞,为第一次过程,该时间为:

读写器修改命令参数,发出命令,仅一个应答器响应,则识别出该应答器,这一次过程时间与前一次一致,读写器再发送命令,最后一个应答器响应,得到识别,时间也是一样的,则总时间为:

当有n个应答器时,假设识别总时间为:

则当n+1个应答器时,读写器首先发送命令,应答器全体响应,发生碰撞,这个过程时间为:

读写器修改命令参数,发出命令,k个应答器响应,余下p个不响应,k+p=n+l,则识别出该k个应答器需要时间为:

再识别余下p个需要时间为:

则这两者时间之和为:

加上前一次的.t1+t2,总时间为:

得证。

因为基本二进制树算法中每次传输的序列号SN长度相同,,所以有:

基本二进制树搜索算法是所有二进制树算法的基础,分析基本二进制树搜索算法的性能可知,对于固定数目的应答器,二进制树算法的性能主要取决于二进制树的节点数目和单次传输命令参数的时间,事实上,二进制树的节点数目与应答器分组的思路是直接相关的,而单次传输命令参数的时间则取决于该命令包含的数据位数。所以,要改善二进制树算法的性能,就必须从这两点着手,现有的二进制树搜索算法有很多种,它们都是在基本二进制树搜索算法的基础上加以改进得来的,根据前述分析,主要的改进思路有两个:

(1)减少每次通信过程中的数据传输位数。

(2)减少应答器分组的询问次数。

本文中,定义根据第一个思路得来的算法为动态二进制树,它的一个典型应用为ISOl4443 TYPE-A二进制树搜索算法。定义根据第二个思路得来的算法为退避式二进制树,它的一个典型应用为EPC二进制树搜索算法。

2.4动态二进制树防碰撞算法

2.4.1算法思路

定义两个具有普遍意义的命令来描述算法:

(1)请求命令Request(),该命令携带一个参数SN,长度为

,应答器接收到该命令,将自身的SN中的前1~x位与接收到的

比较,若两者相等,则该答器返回其SN的剩余位给读写器。注:Request()初始值设为Request(1l111111),约定当参数值为全1时,应答

器返回完整序列号。

(2)休眠命令Sleep(SN),该命令携带一个参数SN,应答器接收到该命令,将自身的SN与接收到的SN比较,若等于,则该应答器被选中,进入休眠状态,也即是不再响应Request命令,除非该应答器通过先离开读写器工作范围再进入的方式重新上电,才可以再次响应Request命令。动态二进制树算法的流程与基本二进制树算法是一致的,它们的区别在于:基本二进制树算法中,应答器返回完整序列号,而动态二进制树算法中,应答器只返回序列号的有效部分;同样,基本二进制树算法中,读写器生成新Request命令时,其命令参数长度是固定为8位的,而动态二进制树算法中,该命令参数长度是根据应答器返回的序列号来动态变化的。

动态二进制树算法的流程如图2.5所示:

图2.5动态二进制树算法流程

事实上,动态二进制树对基本二进制树的改进是基于如下考虑的,在基本二进制树的分析过程中可见,算法的核心部分即新命令参数的生成,是根据是否发生碰撞,以及碰撞位来决定的,特别是新Request命令参数的生成是由碰撞的起始位来确定的,而碰撞的起始位的得到只需要应答器序列号中包括碰撞起始位在内的部分位即可,把这些位称为序列号的有效位,同样,新Request命令参数也为包括碰撞起始位(设为0)在内的部分位,综合如下:若选择高位加碰撞起始位(设为0),则算法为应答器序列号对应位小于这些位的数值者,返回剩余低位,若选择碰撞起始位(设为0)加低位,则算法为应答器序列号对应位等于这些位的数值者,返回剩余高位,从而读写器的新Request命令参数与应答器返回的序列号有效部分组合起来,可以得到一个完整的应答器序列号。这两种选择方式并没有本质区别,在本文中,采取其中的一种,即:读写器检测到碰撞后,将碰撞起始位置0,低位不变,从而将碰撞起始位(置为O)加低位作为新Request命令参数,应答器响应,从低位开始比较,若对应位等于该参数,则返回剩余位给读写器,如果只有_个应答器响应,读写器检测到无碰撞发生,则将上一次发出的Request命令参数与应答器返回的剩余位组合起来,作为新的Sleep命令参,该参数也即是刚刚做出响应的这个应答器的序列号。

注:如果上一次发出的Request为全l,则表明读写器工作范围内只有一个应答器,此时应答器返回数据为完整序列号,以该序列号作为Sleep命令参数。

动态二进制树算法的步骤如下:

(1) 应答器进入读写器工作范围,读写器发出一个最大序列号,约定此时所有应答器均返回完整序列号,则同一时刻应答器将自身序列号发回给读写器。

(2) 由于应答器序列号的唯一性,当应答器数目不小于两个时,必然发生碰

相关主题
文本预览
相关文档 最新文档