CN101324916B - 用于rfid系统的标签识别防碰撞方法 - Google Patents
用于rfid系统的标签识别防碰撞方法 Download PDFInfo
- Publication number
- CN101324916B CN101324916B CN2008100295159A CN200810029515A CN101324916B CN 101324916 B CN101324916 B CN 101324916B CN 2008100295159 A CN2008100295159 A CN 2008100295159A CN 200810029515 A CN200810029515 A CN 200810029515A CN 101324916 B CN101324916 B CN 101324916B
- Authority
- CN
- China
- Prior art keywords
- request
- reader
- collision
- label
- prefix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Near-Field Transmission Systems (AREA)
Abstract
本发明公开了一种用于RFID系统的标签识别防碰撞方法。该方法提出了一种新的查询循环——查询循环II来获取请求前缀,大量地减少总查询次数和总传输比特数。首先,通过查询循环II来获取请求前缀,并压入堆栈中;其次,从堆栈中弹出一个请求前缀,执行查询循环I,若没有产生碰撞,则识别一个标签,若产生碰撞,则获取另外两个请求前缀,压入堆栈中。随后,再从堆栈中弹出另外一个请求前缀,执行查询循环I,如此反复执行,直至堆栈为空,识别完所有标签。本发明简单易行,降低能耗,系统识别效率最高可达87.0%,非常适合在RFID系统中应用。
Description
技术领域
本发明涉及一种RFID系统的搜索防碰撞方法,具体涉及一种用于RFID系统的标签识别防碰撞方法。
背景技术
无线射频识别系统(RFID)是从上世纪80年代走向成熟的一项自动识别技术,近年来发展十分迅速。射频识别技术可以用来识别和跟踪几乎所有物理对象,并由此可以构建一个容纳和连结世界上所有物品的广泛的智能网络。RFID是一种非接触式的自动识别技术,其基本原理是利用射频信号和空间耦合(电感或电磁耦合)的传输特性,实现对被特定物体的自动识别。
目前RFID技术还没有形成一个统一的国际标准。RFID的标准化包括标识编码规范、操作协议及应用系统接口规范等多个部分的标准化。当前主要的RFID相关规范有欧美的EPC(Electronic Product Code)规范、日本的UID(UbiquitousID)规范和国际标准化组织ISO基于物品管理的射频识别标准ISO18000系列规范。其中,欧美的EPC标准和ISO 18000标准,由于应用较广泛,成为当前主流的RFID标准。
RFID系统一般由阅读器和标签两个部分组成,阅读器具有同时读取多个标签的功能。在多个标签对一个阅读器的RFID系统中,多个标签经常会同时向阅读器传输数据,这就要求RFID系统建立一种仲裁机制来避免数据发生碰撞。考虑到标签本身尺寸、能耗的限制等,防碰撞机制在保障功能的同时还要求简单易行。
对RFID冲撞问题的解决一般有4种方式:空分多路法、时分多路法、码分多路法、频分多路法。其中,时分多路方式由于应用简单,容易实现大量标签的读写,所以被多数防冲撞方法采用。现有防冲撞方法主要包括ALOHA方法和二进制树搜索方法两种。其中,ALOHA方法随机性大,当大量标签并存时,帧碰撞严重,引起性能急剧恶化,不适宜大规模标签读取。所以主要采用二进制搜索方法。
发明内容
本发明的目的在于克服现有技术存在的上述不足,提供一种用于RFID系统的标签识别防碰撞方法。该方法提出了一种新的查询循环,有效的减少查询次数和传输比特总数,并较大程度的降低了能耗和提高识别效率。
本发明的目的通过如下技术方案实现:
用于RFID系统的标签识别防碰撞方法,其包括如下步骤:
(1)阅读器初始化系统,所有标签都处于活动状态,所述标签的识别码ID为qL-1...q1q0,其中,qL-1,...,q1,q0的每位取0或者1,L为ID长度;
(2)阅读器发出标签识别请求,所有标签返回整个识别码,阅读器接收返回数据,记录其中碰撞位的位置和保存没有发生碰撞的位数据;
(3)阅读器预先确定请求碰撞位长度l,执行查询循环II,获取请求前缀;
查询循环II:结合步骤(2)中的碰撞位的位置信息,阅读器向标签发送请求的碰撞位位置Req[qL-1...q1q0],若第i位是所要请求的碰撞位位置,则qi=1,否则qi=0,其中0≤i≤L-1;阅读器请求的碰撞位长度为l,由此得到标签返回的二进制数的长度N=2l,标签返回二进制码[qN-1...q1q0],其中,标签根据阅读器发送的请求碰撞位位置,从自身识别码ID中获取相应位置上的l位二进制数,并转化为十进制数j,则取qj=1,而其余N-1位均为0,其中0≤j≤N-1;
假设阅读器要获取碰撞位长度为l的请求前缀qL-1...qi+1qi(0≤i≤L-1),就需要知道l个碰撞位有哪些值。执行查询循环II,接收返回数据qN-1...q1q0:若qj(0≤j≤N-1)发生碰撞,将j转化为l位二进制码,结合步骤(2)中没有发生碰撞的位数据信息,可获取请求前缀,并压入堆栈中;
(4)阅读器从堆栈中弹出一个请求前缀qL-1...qi+1qi(0≤i≤L-1),并执行查询循环I:请求前缀Req(qL-1...qi+1qi),阅读器发出带有前缀qL-1...qi+1qi(0≤i≤L-1)的请求,标签检查自身ID的前L-i位是否与阅读器发出的前缀相同,若是,则返回识别码的剩余位qi-1...q1q0,若不是,则不回应;如果没有发生碰撞,则可以识别一个标签;如果发生碰撞且碰撞位中的最高位为k(0≤k<i),则将qL-1...qk+10和qL-1...qk+11压入堆栈中。
(5)当堆栈不为空时,执行步骤(4);当堆栈为空时,识别完所有标签。
上述方法中,步骤(3)中的请求碰撞位长度l为预先设定的长度或者根据估算标签的个数,选择识别性能最高的请求碰撞位长度。
上述方法中,是从识别码ID的最高位开始执行的,但是也可以从最低位开始执行。
与现有技术相比,本发明具有如下优点和有益效果:
(1)系统识别效率高:本发明提出了一种新的查询循环,获取标签前缀,大大减少了查询次数,提高了系统识别效率,可快速的识别标签。
(2)降低能耗、实行难度低:本发明大量的减少了查询次数和传输比特数,降低能耗,节省识别时间。两种查询循环都比较简单,实行难度低。
总体来说,本发明充分发挥了二进制树搜索方法的优点,并利用提出的查询循环大量的减少查询次数和传输比特总数;结构简单易行,速度快,能耗低,非常适合在RFID系统中应用。
附图说明
图1是本发明用于RFID系统的标签识别防碰撞方法的流程图。
图2是本发明用于RFID系统的标签识别防碰撞方法识别五个标签例子的方框图。
图3是本发明用于RFID系统的标签识别防碰撞方法识别五个标签例子中阅读器与标签通信图。
图4是本发明用于RFID系统的标签识别防碰撞方法的系统性能图。其中,横坐标为标签数,纵坐标为平均识别一个标签所需要的查询次数。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明,但本发明要求保护的范围并不局限于实施例表述的范围。
RFID系统一般由阅读器和标签两个部分组成,阅读器具有同时读取多个标签的功能。在RFID系统工作时,经常有一个以上的标签处于阅读器的作用范围内。这些标签的数据同时传送到阅读器时出现冲突即数据碰撞,致阅读器的接收器不能读出数据。本发明采用时分多路法,按二进制树搜索仲裁方式,使阅读器有效的识别多个标签。
在RFID系统中,标签ID是指标签自己唯一的识别码。ID长度依据标准的不同而不同(设为L),则标签ID可设为qL-1...q1q0,其中,qL-1,...,q1,q0的每位取0或者取1。Req为Request(请求)的缩写。
在RFID系统中,本发明包括两种查询循环:
查询循环I:请求Req(qL-1...qi+1qi),阅读器发出带有前缀qL-1...qi+1qi(0≤i≤L-1)的请求,标签检察自身ID的前L-i位是否与阅读器发出的前缀相同,若是则返回ID的剩余位qi-1...q1q0,若不是则不作回应。
查询循环II:请求Req[qL-1...q1q0],阅读器向标签发送请求的碰撞位位置,若第i(0≤i≤L-1)位是所要请求的碰撞位位置,qi=1,否则qi=0。假定阅读器请求的碰撞位长度为l,由此得到标签返回的二进制数的长度N=2l,标签返回[qN-1...q1q0]。其中,标签根据阅读器发送的请求碰撞位位置,从自身ID中获取相应位置上的l位二进制数,并转化为十进制数j(0≤j≤N-1),则取qj=1,而其余N-1位均为0。
假设阅读器要获取碰撞位长度为l的请求前缀qL-1...qi+1qi(0≤i≤L-1),就需要知道l个碰撞位有哪些值。执行查询循环II,接收返回数据qN-1...q1q0:若qj(0≤j≤N-1)发生碰撞,将j转化为l位二进制码,可获取请求前缀。
如图1所示,本发明适用于RFID系统的多标签二进制搜索防碰撞方法,包括步骤:
(1)阅读器初始化系统,所有标签都处于活动状态(步骤00);
(2)阅读器发出请求Req(null),所有标签返回整个ID(步骤10);
(3)阅读器预先确定请求碰撞位长度l,执行查询循环II,获取请求前缀并压入堆栈P中(步骤11);
(4)阅读器从堆栈P中弹出一个请求前缀qL-1...qi+1qi(0≤i≤L-1,L为ID长度),并执行查询循环I(步骤12):如果没有发生碰撞,则可以识别一个标签(步骤14)。如果发生碰撞且碰撞位中的最高位为k,则将qL-1...qk+10和qL-1...qk+11压入堆栈P中(步骤13、15)。
(5)当P不为空时,执行步骤(4)(步骤16、17);当P为空时,本方法识别完所有标签,方法执行结束(步骤20)。
根据分析和实际的结果,表1中给出了本发明方法对应于标签数的最优请求碰撞位长度。一般的,系统初始时,请求碰撞位长度可选定某一长度,如9或10。系统也可以估算标签数,根据表1对应的最优请求碰撞位长度,更快的识别标签。
下面,将参照一个具体实例并结合图2、图3来更详尽的说明本发明的执行步骤。本实例中,RFID系统包含一个阅读器和五个标签。五个标签ID分别为
‘00111010’、‘01001011’、‘10000101’、‘10011001’和‘10011100’。其中,‘X’代表相应位发生碰撞。
1、阅读器发出请求Req(null),所有标签返回整个ID,阅读器收到‘XXXXXXXX’,产生碰撞。
2、由于标签数为5,ID长度为8,阅读器确定请求碰撞位长度l=3。执行查询循环II,发送Req[11100000];标签‘00111010’返回数据‘00000010’,标签‘01001011’返回数据‘00000100’,其余标签返回‘00010000’。阅读器收到‘000X0XX0’,可获取三个请求前缀‘001’,‘010’,‘100’,压入堆栈P中。
3、阅读器从堆栈P中弹出请求前缀‘001’,发送请求Req(001),收到数据‘11010’,识别00111010’。
4、阅读器从堆栈P中弹出请求前缀‘010’,发送请求Req(010),收到数据‘01011’,识别‘01001011’。
5、阅读器从堆栈P中弹出请求前缀‘100’,发送请求Req(100),收到数据‘XXX0X’,产生碰撞。阅读器分别将‘1000’和‘1001’压入堆栈P中。
6、阅读器从堆栈P中弹出请求前缀‘1000’,发送请求Req(1000),收到数据‘0101’,识别‘10000101’。
7、阅读器从堆栈P中弹出请求前缀‘1001’,发送请求Req(1001),收到数据‘1X0X’,产生碰撞。阅读器分别将‘100110’和‘100111’压入堆栈P中。
8、阅读器从堆栈P中弹出请求前缀‘100110’,发送请求Req(100110),收到数据‘01’,识别‘1001100l’。
9、阅读器从堆栈P中弹出请求前缀‘100111’,发送请求Req(100111),收到数据‘00’,识别‘10011100’。
本实例中,阅读器只需要9次查询,就可识别全部五个标签,随着标签格式增加,这种方法优势越明显。
本发明由于利用了新的查询循环,简化了电路,减少了阅读器的查询次数和传输比特数,较大程度的降低了能耗。如图4,本发明平均识别一个标签所需要的查询次数约为1.15,系统识别效率最高可达87.0%。本技术方案简单易行,非常适合在RFID系统中应用。
表1
标签数 | 4-17 | 18-24 | 25-59 | 60-106 | 107-224 | 225-437 |
最优初始碰撞位长度 | 6 | 7 | 8 | 9 | 10 | 11 |
Claims (3)
1. 用于RFID系统的标签识别防碰撞方法,其特征在于包括如下步骤:
(1)阅读器初始化系统,所有标签都处于活动状态,所述标签的识别码ID为qL-1...q1q0,其中,qL-1,...,q1,q0的每位取0或者1,L为ID长度;
(2)阅读器发出标签识别请求,所有标签返回整个识别码,阅读器接收返回数据,记录其中碰撞位的位置和保存没有发生碰撞的位数据;
(3)阅读器预先确定请求碰撞位长度l,执行查询循环II,获取请求前缀;
查询循环II:结合步骤(2)中的碰撞位的位置信息,阅读器向标签发送请求的碰撞位位置Req[qL-1...q1q0],若第i位是所要请求的碰撞位位置,则qi=1,否则qi=0,其中0≤i≤L-1;阅读器请求的碰撞位长度为l,由此得到标签返回的二进制数的长度N=2l,标签返回二进制码qN-1...q1q0,其中,标签根据阅读器发送的请求碰撞位位置,从自身识别码ID中获取相应位置上的l位二进制数,并转化为十进制数j,则取qj=1,而其余N-1位均为0,其中0≤j≤N-1;
当阅读器要获取碰撞位长度为l的请求前缀qL-1...qi+1qi,就需要知道l个碰撞位的值;执行查询循环II,接收返回数据qN-1...q1q0:若qj发生碰撞,将j转化为l位二进制码,结合步骤(2)中没有发生碰撞的位数据信息,可获取请求前缀,并压入堆栈中;
(4)阅读器从堆栈中弹出一个请求前缀qL-1...qi+1qi,并执行查询循环I:请求前缀Req(qL-1...qi+1qi),阅读器发出带有前缀qL-1...qi+1qi的请求,标签检查自身ID的前L-i位是否与阅读器发出的前缀相同,若是,则返回识别码的剩余位qi-1...q1q0,若不是,则不回应;如果没有发生碰撞,则可以识别一个标签;如果发生碰撞且碰撞位中的最高位为k,则将qL-1...qk+10和qL-1...qk+11压入堆栈中,0≤k<i,0≤i≤L-1;
(5)当堆栈不为空时,执行步骤(4),当堆栈为空时,识别完所有标签。
2. 根据权利1所述的方法,其特征在于步骤(3)中的请求碰撞位长度l为预先设定的长度或者根据估算标签的个数,选择识别性能最高的请求碰撞位长度。
3. 根据权利1所述的方法,其特征在于该方法从标签识别码ID的最高位开始执行或从最低位开始执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100295159A CN101324916B (zh) | 2008-07-16 | 2008-07-16 | 用于rfid系统的标签识别防碰撞方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100295159A CN101324916B (zh) | 2008-07-16 | 2008-07-16 | 用于rfid系统的标签识别防碰撞方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101324916A CN101324916A (zh) | 2008-12-17 |
CN101324916B true CN101324916B (zh) | 2011-03-09 |
Family
ID=40188453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100295159A Expired - Fee Related CN101324916B (zh) | 2008-07-16 | 2008-07-16 | 用于rfid系统的标签识别防碰撞方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101324916B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840489A (zh) * | 2010-06-02 | 2010-09-22 | 西南交通大学 | 一种基于碰撞树的多标签识别防碰撞方法 |
CN103902944A (zh) * | 2014-03-31 | 2014-07-02 | 上海电机学院 | 一种物联网的多标签防冲突方法 |
CN105956506A (zh) * | 2016-04-27 | 2016-09-21 | 蓝盾信息安全技术有限公司 | 一种改进的rfid防碰撞方法 |
CN106650530B (zh) * | 2016-10-13 | 2019-05-21 | 广西大学 | 适用于rfid系统的增强型四叉树防碰撞算法 |
CN109241802B (zh) * | 2018-09-25 | 2021-08-27 | 西南科技大学 | 一种用于移动rfid系统的多标签识别方法 |
CN112380884B (zh) * | 2020-11-13 | 2024-02-23 | 成都航空职业技术学院 | 一种减少通信复杂度的树形搜索rfid防碰撞方法 |
-
2008
- 2008-07-16 CN CN2008100295159A patent/CN101324916B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101324916A (zh) | 2008-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100495424C (zh) | 用于rfid系统的多标签动态比特仲裁防碰撞方法 | |
US8477016B2 (en) | Method for identifying tags using adaptive binary tree splitting technique in RFID system and RFID system therefore | |
CN101324916B (zh) | 用于rfid系统的标签识别防碰撞方法 | |
CN102024163B (zh) | 一种带有分组预览机制的防碰撞方法 | |
CN102004895B (zh) | 基于碰撞预检的时隙扫描防碰撞方法 | |
CN101840489A (zh) | 一种基于碰撞树的多标签识别防碰撞方法 | |
CN108491741B (zh) | 一种基于四叉树的位仲裁查询树防碰撞方法 | |
CN103473524A (zh) | Rfid多标签识别方法、阅读器和标签 | |
CN102708341A (zh) | 一种rfid系统标签防碰撞方法 | |
CN105046181B (zh) | 一种基于查询树方法的多前缀匹配的确定性防碰撞算法 | |
CN101369305A (zh) | 一种射频识别标签芯片防冲突功能的验证电路及其模型 | |
CN107895130B (zh) | 一种基于碰撞树的自适应多叉树防碰撞方法 | |
CN101650770A (zh) | 具有未知标签数估算功能的二进制搜索防碰撞方法 | |
CN104680104A (zh) | 一种动态高效的rfid标签识别机制 | |
CN102073890B (zh) | 基于标签随机分组的动态帧时隙防碰撞方法 | |
CN102663332B (zh) | 一种用于rfid系统中的多标签防碰撞引导式识别方法 | |
CN103679096A (zh) | 一种优化的rfid防碰撞方法 | |
CN107526986A (zh) | 一种rfid标签防碰撞方法及系统 | |
CN101231686A (zh) | 一种融合数据库的查询树射频标签反碰撞识别方法 | |
CN110210266A (zh) | 一种五叉树搜索rfid防碰撞方法 | |
CN102682314A (zh) | 一种判断盘点结束的方法 | |
CN101414345B (zh) | 射频识别信号应答方法及系统、标签和阅读器 | |
CN102332081A (zh) | 基于阅读器的无线射频识别中的载波监听多路访问协议 | |
CN101493880A (zh) | 一种利用cpld与单片机的跳跃式二进制搜索反碰撞的方法 | |
Yaacob et al. | A review of deterministic anti-collision algorithm of passive RFID systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110309 Termination date: 20130716 |