| |
吴海锋,张智勇,蒋俊,彭志光
Wu-Haifeng Zhang-zhiyong Jiang-jun Peng-zhiguang
(云南昆船设计研究院,昆明 云南 650051)
(Kunming Shipbuilding Design & Research Institute, Kunmming 650051,
摘 要:为减少读取RFID标签时间,本文在二进制树形算法的基础上提出一种具有自动优先级分配的RFID标签冲突算法,在该算法中,每个标签被初始分配一个优先级号,经过一次读周期,将被自动按大小顺序分配新的自动优先级号,这使得在以后的读周期内减少了冲突和空的时间。从理论证明和仿真结果看,本文提出的新算法在读取标签的时间上要少于传统二进制树形算法。
关键词:RFID;防冲突;自动优先级;
Abstract: This paper proposes a new RFID tag collision resolution to reduce the time for reading tag. Based on the binary tree algorithm, this resolution initially assigns each tag a PRI number. After a reading cycle, each tag is automatically assigned a new PRI number which can reduce the collision and idle slot. The computer simulation shows that the proposed resolution works better than the conventional binary tree collision resolution.
Keywords: RFID; Collision resolution; PRI
未来战争将以信息化特征为主,战场物资消耗猛增剧涨,军事物流保障的任务更加繁重、责任更加重大。信息化战场环境要求军事物流必须适时、适地、适量地为作战部队提供物资保障,这给军事物流保障的快速性、机动性和准确性等提出了更高要求。RFID(Radio Frequency Identification)是一种基于射频原理实现的非接触式自动识别技术,随着其技术可靠性和可用性的提高,已被逐渐应用于军事物流领域,它使军事物流信息能够准确、可靠、快速、高效的传输、采集、处理和交换。具体对于RFID读写器而言,快速准确的采集信息就要求读写器能在较短的时间读取较多的标签。
然而,读写器和每个标签通信都是通过共同的信道,当多个标签和读写器通信时,传输的信号必然会发生冲突,这将使得读写器无法读出标签[1]。通常地,解决这类问题是采用防冲突算法,目前的防冲突的RFID标签算法按照系统模型种类可以分为两大类:随机型的和确定型的算法[2]。ALOHA类算法是随机型算法中最主要的一类算法,它基于概率论和时分多址的原理,将多个标签的信号在多个时隙内发送[3]。但是,当标签数量增多时,某些标签会在很长时间内也无法被读出,出现了标签漏读现象。确定型算法中有代表性的是二进制树[4]和询问树算法[5]。其中二进制树算法最早由Capetanakis[6]提出,用来解决随机多址问题,后来由Hush和Wood[4]将其有效地运用于RFID标签防冲突。二进制树算法把所有发生冲突的标签随机地分解为两个子集,一个子集为发送,另一个子集为等待,反复分解直到读到所有标签。虽然二进制树形算法读取标签的时间会有所增加,但是它基于分裂的原理,可以有效解决标签漏读问题,特别当标签数量增多时。
本文从减少标签读取时间出发,在二进制树算法的基础上,提出一种具有自动优先级分配的标签防冲突算法。该算法与传统二进制树形算法所不同的是,它可以自动地为发生冲突的每个标签分配一个优先级,而所有被分配优先级的标签将在时间上依顺序与读写器通信。因此,本算法可以有效地避免标签的冲突和空闲次数,从而减少了标签读取时间。从理论证明及仿真结果来看,本文提出的防冲突算法的读取时间要少于于传统的二进制树形算法。本文的剩余部分安排如下,第二部分介绍具有自动优先级分配的防冲突算法,第三部分对该算法的性能进行分析,第四部分分析仿真结果,最后一部分给出结论。
在本文中,系统由读写器和若干个标签构成,首先读写器发出命令,标签接收到命令后发送数据,若读写器成功接收到标签发送的数据,则读取标签信息结束。
一个读周期由三个阶段构成
1) 初始阶段,该阶段,读写器发出查询命令,在读写器覆盖范围内,所有接收到命令的标签准备发送数据。
2) 数据发送阶段,在该阶段,接收到查询命令的标签将发送数据,发送数据的顺序依初始的优先级号而定,若发生冲突,则执行自动优先级分配的算法,重新分配数据发送顺序。
3) 结束阶段,所有标签的数据均已发送完毕,一个读周期结束。
标签从开始发送数据到结束,定义为一个时隙,用
1) 空时隙 在该时隙内没有数据发送,用
2) 可读时隙 在该时隙内有且仅有一个标签数据发送,用
3) 冲突时隙 在该时隙内有二个以上的标签数据进行发送,用
在该算法中,规定四种数字号
1) 优先级号,每个标签都拥有一个并不唯一的优先级号,初始优先级号为一个随机整数,该优先级规定了标签在一个读周期内何时发送数据,优先级越大表明在越靠后的时隙内发送数据。优先级号用
2) 指针号,指针号随着成功发送数据的标签数目变化而变化,在每个读周期的初始时,指针号均为0,以后每成功发送一个标签数据,顺序加1。指针号用
3) 3)
4) 结束标识号,只要指针号超过结束标识号,那么就表明所有标签均已被读取完毕,一个读写周期结束。结束标识号用
根据每个标签是否发送数据的状态,将每个标签定义为以下三种状态
1) 激活,当某个标签的优先级号等于指针号时,该标签处于激活状态,在该状态下,标签可以发送数据,用
2) 等待,当某个标签的优先级号小于指针号时,该标签处于等待被激活状态,在该状态下,标签不发送数据,用
3) 休眠,当某个标签的优先级号大于指针号时,该标签处于休眠状态,该状态表明该标签已发送过数据,直到下个读周期来临都不再发送数据,用
以上的系统各参数的表示符及含义见表1
表1 系统参数的表示符及含义
系统参数 |
表示符 |
含义 |
时隙 |
|
标签从发送数据到结束的时间 |
空时隙 |
|
时隙内无数据发送 |
可读时隙 |
|
时隙内仅有一个数据发送 |
冲突时隙 |
|
时隙内有二个以上的数据同时发送 |
标签数 |
|
读写器范围内所有标签的总数 |
优先级号 |
|
规定在一个读周期内何时发送数据 |
指针号 |
|
成功发送标签的数目 |
标签身份号 |
|
代表标签身份 |
激活状态 |
|
该状态下,标签可以发送数据 |
等待状态 |
|
该状态下,标签等待被激活 |
休眠 |
|
该状态下,标签已发送过数据 |
1初始时,系统的
2时隙开始时,若
3所有
4此时为
5 此时为
6此时为
7一个读周期结束
从以上的算法步骤可以看出,读写器根据标签的PN大小来先后读取标签的,由于标签的初始
在首个读周期内,标签的初始
点赞