An Enhanced Anti-collision Algorithm in RFID ... - Semantic Scholar

1 downloads 119 Views 110KB Size Report
Algorithm) which is based on ABS (Adaptive Binary ... Binary search (BS) is a classical anti-collision ... identify tags, there are additional conditions (prefix of.
An Enhanced Anti-collision Algorithm in RFID Based on Counter and Stack Wei-Chih Chen1, Shi-Jinn Horng1,2, and Pingzhi Fan3 1

Department of Computer Science & Information Engineering, National Taiwan University of Science and Technology, 106, Taipei 2 Department of Electronic Engineering, National United University, 36003, Miao-Li 3 Institute of Mobile Communications, Southwest Jiaotong University, 610031, Chengdu

Anti-collision algorithms which are used in RFID systems will affect its overall cost and speed. There are different types of ant-collision algorithms which are used in RFID system such as binary search tree [1], [8], [9], query tree [1], [6], [9], [10] and etc. The existing methods although they are very simple are unable to provide better reading results. In general, how to judge an RFID anti-collision algorithm is mainly dependent on how many timeslots are consumed for identifying all tags, the complexity of the algorithm, and how much data is transmitted. Therefore a good anti-collision algorithm should consist of the following factors: lower timeslots, simple in calculation, low cost, lower power, and fast reading speed. ABS algorithm proposed by Myung et al. [5], [6] provides a quite good idea, using counter to achieve branching and further achieve anti-collision effect. However ABS consists of some disadvantages which are unable to achieve the best results. The proposed algorithm in this paper will base on the ABS algorithm, and use Manchester Code, stack, Tstring and with substantial amendment to achieve better reading results.

Abstract Radio Frequency Identification has been developed for many years and it got much attention from researchers recently as there are lots of applications being used practically in the real world. Owing to the shared wireless channel between tags and reader during communication, the tag collision arbitration is a significant issue for reducing the communication overhead. This paper presents a novel anti-collision algorithm named as EAA (Enhanced Anti-collision Algorithm) which is based on ABS (Adaptive Binary Splitting) algorithm proposed by Myung et al. [5], [6]. We improve the ABS algorithm, and inherit the advantages of the ABS algorithm. EAA uses counter, stack, and Manchester code [2], [3], [9] to reduce the probability of collision efficiently. Compared to the methods proposed by other researchers [1], [5] the performance evaluation shows that the proposed scheme in this paper uses fewer timeslots for indentifying tags.

1. Introduction

2. Analysis of existing anti-collision algorithms based on binary tree in RFID

Radio Frequency Identification (RFID) is a contactless, low power, and low cost wireless communication technology. In an RFID system, every tag has a unique identification code (ID). The length of ID may be different in different RFID standards; the tags in EPC class1 gen2 [4], [7] have 96 bits ID, but those of ISO-18000-6B [3] are 64 bit ID. Collisions will occur, when lots of tags reply to reader in the same timeslot. In this moment, reader cannot identify the response which was generated by which tags. So, how to reduce the collision rate is the key point that can influence the performance of an RFID system. Therefore, a good anti-collision algorithm plays an important role for an efficient RFID system.

ABS is described in [5], [6]. ABS uses counter to reach the goal of anti-collision, but the splitting of sets depends on the random binary number. So, it cannot get the best splitting result. Let Sk={S0, S1, …,Sn} be a binary sequence, where Si belongs to {0,1}, 0≦i≦ n. We can easily find that the probability of occurrence of 1 or 0 is not 50% (001, for an instance). When the length of Sk is short, there may be all 0 or 1 in Sk. For example: 111, for |Sk|=3. In this moment, there won’t be any splitting result, and may cause the next timeslot to be an idle timeslot or collided timeslot. Because ABS doesn’t deal with tag’s response, so the tag ID

1

Assume there are n tags, and tag(i) means the ith tag; 1 ≦ i ≦ n. Every tag(i) has an Ac(i) (Allocatd-slot counter), a pointer(i), and a Pc (progressed-slot counter). Reader shall maintain a Pc, Rc, stack, and a Tstring. The process will be terminated, when Rc is equal to Pc. Tag(i) replies to reader depending on Ac(i), pointer(i), and Pc. For example, assume Tk is timeslot k, and n is the length of tag ID. When Pc=Ac(i) and pointer is k, tag(i) shall reply its ID from kth bit to nth bit to reader. At initial state, pointer(i)=0, Ac(i)=0, Pc = 0, stack = Tstring = empty, and Rc = 1. The definitions of each kinds of timeslot are as follow: 1. Collision: If there are more than two tags whose Ac(i) are equal to Pc in Tk and the number of collided bit is larger than 2, then we call Tk is a collided timeslot. 2. Identified: If there is only one tag reply in Tk, then we call Tk is an identified timeslot. 3. OBCT: If there are more than two tags whose Ac(i) are equal to Pc in Tk and the number of collided bit is equal to 1, then we call Tk is a one bit collided timeslot(OBCT). We use the characteristic of Manchester code to identify two tags in a timeslot (OBCT). So, it can improve the performance very well. For example, assume Tk is timeslot k; the IDs of tags A and B are “1011” and “1010”, respectively. By the rules of Manchester code, collision will occur. Obviously, response “101x” will be generated by tags “1011” and “1010” in timeslot k, so Tk is OBCT. Reader shall determine what kind of timeslot is and make a feedback to all tags after it has received the response from all tags. The purpose of feedbacks is to inform all tags what kind of timeslot is in this moment and reader is ready to receive the response of tags whose Ac(i) = Pc in next timeslot. When collision occurs, reader shall inform the tags where the first collided bit is, and use stack and Tstring to keep the part of IDs. If collision doesn’t occur, reader can identify tag IDs by Tstring and response from tags. Feedbacks are just like instructions, and include operating code and some other information. We define the operating code in 3bit; 000, 001, and 010 mean collision, identified, and OBCT, respectively. Define R(i:j) to mean the response from tags ranging from bit i to bit j. ID(k) is the kth bit of tag ID. length(response) is the length of the response from tags. We use || as a concatenation operation in the proposed algorithm. The operations of reader for each kind of timeslots and structure of each kind of feedback are shown as follows. Reader operations:

transmitting time is too long. Consumption of timeslots and longer timeslot are the main defects of ABS. Binary search (BS) is a classical anti-collision algorithm in RFID. It was described in [1], [4], [8], [9] in details. The content of this algorithm is simple, but it spends too many timeslots to identify tags, and the length of a timeslot is longer. Query tree algorithm (QT) was described in [1], [9] in details. Although it spends fewer timeslots to identify tags, there are additional conditions (prefix of tag ID) in the instructions. It causes the length of a timeslot to become longer. ID-Binary Tree Stack Anti-collision Algorithm (IDS) [1] was describe in [1] in details. The main advantage of this algorithm is that the author uses stack to record the paths which are traversed. So, every tag just replies one bit in a timeslot. Although it deals with tags’ responses, there are two instructions in a timeslot. And there are some conditions in query instruction. So, it will cause the length of a timeslot much longer.

3. The proposed algorithm Manchester code is used in binary search algorithm, and it’s described in [8], [9]. The purpose of using Manchester code is to find where the collision bit is. Reader can determine where the collided bits are easily. For example, Assume the IDs of tags A and B are “1001021314151617” and “1001120314150617”, respectively. Because tag A and tag B reply in the same timeslot, so the response generated by tags A, and B is 10xx11x1 (x means the signals which aren’t changed). Then, the collision bits are 2th, 3th, and 6th bit. Therefore, reader can easily determine where the collided bits are. In order to reduce tag response time, the characteristics of Manchester code are used in the proposed algorithm. Then, reader can analyze the response of tags clearly. Reader can truncate unnecessary data bits to reduce the receiving time. It means that reader does not need to receive any data after it receives the second collided bit. And reader shall determine that this timeslot is a collided timeslot. For example, assume the response is 10x1x213 in timeslot k. It means that reader just needs to receive 3 data bits. Then reader can determine timeslot k is a collided timeslot, when it receives the 2th bit. Following this rule, reader can reduce the receiving time significantly. We use stack and Tstring to record the response which has received by reader from tags. So, tag just needs to reply the part of tag ID in each timeslot. Thus, it can reduce a lot of time by using stack and Tstring.

2

 Collision: If the first collided bit of the response is located at s-bit then Push R(0:s-1) || ”1” into stack; Feedback: “000” || (length(Tstring)+s). Tstring=Tstring ||R(0:s-1) ||”0”; Rc=Rc+1;  Identified: Identified tag ID=Tstring || R(0:m), where m is the length of the response from a tag;; Tstring=pop(stack), Pc=Pc+1, Feedback: 001.  OBCT: If length(response) is equal to m and the collision is located at s-bit then Tag ID 1=Tstring || R(0:s-1) ||”0” || R(s+1:m). Tag ID 2=Tstring || R(0:s-1) ||”1” || R(s+1:m). Tstring=pop(stack) , Pc=Pc+1, Feedback: 010. When tags receive the feedbacks from reader, tags will respond in terms of the following operations. Tags operations:  Collision: Assume the collided bit informed by reader is k. If the kth bit of tag(i) is ‘1’ and Ac(i)=Pc then Ac(i)=Ac(i)+1, pointer(i)=k+1; else if the kth bit of tag(i) is ‘0’ and Ac(i)=Pc then Ac(i)=Ac(i)+0, pointer(i)=k+1; else if Ac(i)>Pc then Ac(i)=Ac(i)+1.  Identified: Pc=Pc+1.  OBCT: Pc=Pc+1.

(a) Counter timeslot (1) Collision (2) Collision (3) Identified (4) Identified (5) OBCT Terminated

Fig.1 shows the process of the proposed algorithm. We use EAA tree to denote the binary tree created during the running of the algorithm. Assume Ti represents timeslot i, and there are 4 tags A, B, C, D in the reading zone. In T1, because of all tags’ Ac(i)=Pc, and the response is “x0x1”, which is a two-bit collision. So, reader just receives bits from 0 to 1. Follow the rules, reader pushes “1” into stack, and assign “0” to Tstring, feedback=”000”||”00”. Tags act the corresponding operation, when they receive the feedback, and ready to reply their IDs in next timeslot. The other timeslots will follow the rules of EAA. Five timeslots are consumed by identifying four tags by using the proposed algorithm. The total number of data bits which are transmitted between tags and reader is 19+11=30. The total number of bits of feedbacks and response which is received by reader are 19 and 11, respectively.

4. Analysis Lemma 1: There is no internal node with degree-1 in EAA tree. Proof: By the rules of EAA, the splitting process in the tree is according to the collided bit. The parent node will generate child nodes, when collision occurs; the left child node is for those tags with the collided bit being 0 and the right child node is for those tags with the collided bit being 1. Therefore, all of internal nodes have two children. So, there is no internal node with degree-1 in EAA tree. Theorem 1: let Q(N) be the number of timeslots for identifying N tags. Therefore, Q(N)=2N-2k-1, k≧1 (1) where k is the number of OBCT. Proof : An EAA tree can be represented by a full binary tree because it splits only the set of collided tags (parent node) into two subsets (child nodes). Therefore, all the internal nodes in the tree correspond to collisions and all the leaf nodes correspond to either identified or OBCT timeslots. So, the number of nodes in EAA tree equal to the number of timeslots. Hence, Q(N)=N0+N1+N2+k (2) Where ni is the number of degree-i nodes except OBCT. Reader can identify two tags in OBCT. Hence, it can reduce two timeslots and leaves in EAA tree, when OBCT occurs. If there are k OBCTs, it can reduce 2k timeslots for identifying all tags. Since, N=N0+2k, and N2=N0+k-1 (3) This leads to, Q(N)=2N-2k-1 ■

(b) Pc 0 0 0=>1 1=>2 2=>3 3

A 0 0 0 0 0 0

Ac(i) B C 0 0 0 1 1 2 1 2 1 2 1 2

D 0 1 2 2 2 2

Rc Reader 1=>2 2=>3 3 3 3 3

Tag reply x0x1 x1x2 0203 1203 1112x3 Null

(c) Fig1: (a). An EAA tree shows the process of EAA. A number in parentheses denotes the number of the timeslot. (b). It shows the result of stack in each timeslot. E means empty (c). It shows the process of EAA for identifying tags A, B, C, D.

3

(a) Total timeslots.

(b) Collision.

(c) Average identifying time.

Fig. 2: The simulation results with the varying m.

5. Experiment

Reference

Define the identification delay is the number of timeslots required for all tags, and the average identifying time is the time-consuming for identifying a tags. The length of a tag ID is 12bit, and the tag IDs are randomized. Then we simulate identification delay and average identifying time at the proposed algorithm compared to the binary search, query tree, IDS, and ABS. Define m is equal to the number of tags ÷2n, where n is the length of tag ID. Fig.2 (a) and (b) show the number of timeslots and collisions comparison between reader and tags with the varying number of tags. We can easily find that our algorithm has the smallest identification delay among the others. Assume the length of transmitting one bit is 5µs, and an idle timeslot consumes 10µs. Fig.2 (c) shows the total identification delay of each algorithm. We can easily find that EAA has the best performance. The number of tags gets larger; the probability of OBCT gets higher. It can reduce a lot of timeslot and the length of a timeslot by using OBCT, stack, and Tstring. Because of the collision rate and the length of a timeslot are the main factors affecting the performance, our algorithm can reduce a lot of time and get much better performance for identifying a large amount of tags.

[1] Bo Feng, Jin-Tao Li, Jun-Bo Guo, and Zhen-Hua Ding, “ID-binary tree stack anticollision algorithm for RFID,” Proc. Computers and Communications, ISCC '06, Page(s): 207 -212, June 2006. [2] Bo. Chen, “ Design of FPGA to Radio Frequency Ident Bo Chen ”Design of FPGA to radio frequency identification system based on international standard ISO/IEC18000-6 and its practice,” Chinese Journal of Electron Devices, Vol. 28 No. 4, Page(s): 921-924, Dec. 2005. [3] “EPCTM radio-frequency identification protocols class-1 generation-2 UHF RFID protocol for communications at 860MHz-960MHz Version 1.0.9,” EPCglobal, Dec. 2005. [4] “Information technology automatic identification and data capture techniques- radio frequency identification for item management air interface- part 6: parameters for air interface communications at 860-960 MHz” ISO/IEC FDIS 18000-6, Nov. 2003. [5] Jihoon Myung, Wonjun Lee, Jaideep Srivastava, “Adaptive binary splitting for efficient RFID tag anticollision,” Communications Letters, IEEE, Vol. 10, Issue 3, Page(s):144-146, Mar. 2006. [6] Jihoon Myung, Wonjun Lee, Jaideep Srivastava, and Timothy K. Shih, “Tag-splitting: adaptive collision arbitration protocols for RFID tag identification, ” to appear in IEEE Transactions on Parallel and Distributed Systems, 2007. [7] Kawakita. Y, Mitsugi. J,” Anti-collision performance of Gen2 air protocol in random error communication link,” Proc. Applications and the Internet Workshops, Page(s):68-71, Jan 2006. [8] K. Finkenzeller “RFID handbook: radio-frequency identification fundamentals and applications,” John Wiley and Sons Ltd, second edition, 2003. [9] Leian. Liu, Zhenhua Xie, and Jingtian Xi, “An improved anti-collision algorithm in RFID system,” Proc. Mobile Technology, Applications and Systems, 2005 2nd International Conference, Page(s): 67-71, Nov. 2005. [10] J. Myung, W. Lee, T. K. Shih, “An adaptive memoryless protocol for RFID tag collision arbitration,” Multimedia, IEEE Transactions on Vol. 8, Issue 5, Page(s): 10961101, Oct. 2006.

6. Conclusion For improving the performance, collision resolution becomes the major problem in an RFID system. We use OBCT, Manchester code, and counter to make it impossible identify two tags in a timeslot. We reduce not only the number of timeslots, but also the length of a timeslot. Owing to the cost to implement a counter in a tag being very low, it is valuable and feasible to get a better performance for the proposed method in this paper.

4