Static RFID systems have a wide range of uses in warehouses, libraries, parking cars, and some areas of the agriculture industry (Ali et al., 2017; Krebs and Liard, 2001; Mekala et al., 2017). In some cases, they can be combined to wireless sensor networks to complete their sensing and computation capabilities, the work in Nagpurkar and Jaiswal (2015) presents the four possible combination forms, which are integrated tags with sensor, integrated tags with wireless sensor nodes, integrated readers with wireless sensor nodes, and the mixed architecture.
An RFID system consists of RFID tags and networked RFID readers. The tags may be active equipped with a battery, or passive with no explicit power supply (Finkenzeller, 2010). To query the stored information from a passive tag, the reader transmits a high-power continuous wave to energize the tag. The tag receives the energy and transmits the stored information by backscattering communication with the reader. Passive tags are mainly used because they are economically affordable. The readers have two different ranges, namely the interrogation range and the interference range (Engels and Sarma, 2002). The interrogation range can be defined by the maximum distance from which a reader can read surrounding tags and the interference range can be defined by the maximum distance from which the emitted signal of a reader interferes with the one of another reader. Since the signal from a passive tag to the reader is a reflected signal, the reader interrogation zone is very limited. Therefore, in some applications, several readers' aggregation in the RFID system comes to be necessary to cover a target area.
In such dense environments, the RFID readers must be arranged such that all tags, regardless of where they are within the target area, can communicate with at least one reader, and therefore the interrogation and interference range of adjacent readers intersect, causing collisions in the system. These collisions imply failure in recognizing tags and inevitably decrease the performance of the system. Thus, one of the main goals of research works in the field of RFID is to find a solution for the collision problem. There exist two types of reader collisions, which are discussed below:
Reader-to-tag collision: occurs when two or more readers interrogate the same tag simultaneously as their read ranges intersect, as shown in Figure 1(a).
Reader-to-reader collision: occurs when the signal emitted by one reader interferes with the reception system of the others, as shown in Figure 1(b).

Figure 1:
(a) The readers-to-tag collision: the collision happens when R1 and R2 interrogate T simultaneously. (b) The Reader-to-reader collision: R1 interference range affects R2 reading range and hence R2 cannot read T.
Standard multiple access schemes such as Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), Currier Sense Multiple Access (CSMA), and Code Division Multiple Access (CDMA) cannot be directly applied to RFID systems (Joshi and Kim, 2008) because of the following problems as mentioned below:
In FDMA, the interfering readers use different frequencies to communicate with the tags. As RFID tags cannot choose a particular frequency, they cannot choose a particular reader to establish a communication link.
In TDMA, the interfering readers are allocated different time slots, to avoid simultaneous transmissions. However, the system needs a tight time synchronization to determine the start time slot of all readers.
In the CSMA scheme, before transmitting, the readers listen to the channel to detect whether it is busy or idle to avoid collisions. However, carrier sensing is not very effective especially in dense environments as it cannot avoid collisions when more than one reader wants to transmit at the same time, also constantly sending beacons to avoid the collisions is poor energy efficiency (Mbacke et al., 2018). Furthermore, when using different channels, reader-to-tag collisions will occur, because the readers cannot detect the received signal from its neighbors.
On the basis of the pseudo-random codes, the CDMA scheme requires extra circuitry at the tags, which is not cost-effective for low-cost practical RFID tags. It would also complicate the deployment phase by assigning the codes to all tags.
In this paper, we particularly address the reader-to-tag collision problem in a static RFID-WSN system dedicated to the stocktaking process. We propose a decentralized mechanism that uses the TDMA scheme and the clustering approach to permit communications between interfering readers. In so doing, we developed a communication protocol to be implemented in the network’s cluster heads to provide the readers’ synchronization and coordinate their communications. To avoid collisions between adjacent clusters, we added collaboration functionality to the designed protocol that allows scan synchronization between adjacent clusters.
The rest of the paper is organized as follows. In the second section, we present prior works; we describe then the proposed protocol in the third section, while in the fourth section, we show the protocol validation using the SPIN model checker. Finally, the last section provides a short overview of our proposal and an outlook for future work to progress toward a full solution.
Related work
In the work of Joshi and Kim (2008), a classification of the reader collision solutions was presented; it describes three different categories: control-based, coverage-based, and schedule-based solutions. The control-based solutions mitigate the problem of collisions between readers, by transmitting notification control packets such as beacon signals. After receiving a beacon signal, the interfering readers interrupt their ongoing communication and wait for the next cycle. However, this kind of solution cannot avoid the collision as beacons of competitor readers may collide.
The coverage-based solutions consist of dynamically adapting the read ranges to reduce the overlapped areas between adjacent readers. It relies on two different approaches: the clustering approach, where a cluster head is elected to adjust the read ranges, and an adapted transmission approach, which usually needs a central node to calculate the distance between each pair of readers and adjust their reading ranges. However, reducing the read range in dense tag environments increases the likelihood of uncovered tags. While the schedule-based solutions consist of allocating the available system resources such as the frequencies and time among the readers to prevent them from colliding. Colorwave (Waldrop et al., 2003), the Neighbor Friendly Reader Anti-Collision algorithm (NFRA) (Eom et al., 2009), the Distance-based Reader Collision Avoidance algorithm (DRCA) (Golsorkhtabaramiri and Issazadehkojidi, 2017), and the Fair Reader Collision Avoidance Algorithm (FRCA 1&2) (Rezaie and Golsorkhtabaramiri, 2018) are examples of the scheduling-based approach.
More broadly, authors in Mbacke et al. (2018) have divided the reader collision solutions into two main categories: namely distributed and centralized mechanisms. In distributed mechanism, the readers communicate with each other; usually wirelessly, to share the resources and maintain the synchronization. However, this type of mechanism requires the system to establish and maintain information over the network, which is time and energy-consuming. Colorwave (Waldrop et al., 2003), the Distributed Tag Access with Collision-Avoidance algorithm (DiCa) (Hwang et al., 2006), Pulse (Birari and Iyer, 2005), the Multi-Channel MAC algorithm (MCMAC) (Dai et al., 2007), the algorithm proposed in the paper (Golsorkhtabaramiri et al., 2015), the Distributed Multi-Channel Collision Avoidance algorithm (DIMCA) (Safa et al., 2015) and the Efficient Multichannel Reader Collision Avoidance algorithm (EMRCA) (Jiang et al., 2016) are examples of distributed protocols.
Whereas in a centralized mechanism, a central server is in charge of reader coordination, it may communicate to the readers either in a wired or wireless way to synchronize them and share the available resources among them. Pulse Protocol (Birari and Iyer, 2005) is a distributed protocol that comes under the control-based category, based on a beaconing mechanism, while reading a tag the reader broadcasts periodic beacon messages on a separate control channel. Before a competitor reader can scan a tag, it first senses the control channel for a beacon. If it does not receive any beacon for a specified amount of time, it transmits a beacon and starts the scan. Pulse protocol spends so much energy for information transmission over the control channel; its periodic transmission of beacons increases the overhead. Furthermore, it cannot solve the hidden terminal problem (Joshi and Kim, 2008). Colorwave (Waldrop et al., 2003) is a distributed algorithm and comes under the scheduling-based category, in this algorithm, each timeslot is allocated with a different color, where readers randomly select a timeslot among a dynamic range of available colors. The range of colors varies according to the network situation; each reader monitors its number of successful interrogations and accordingly modifies its local value of maximum available colors. As such, if more than one reader selects the same color, a collision occurs. In this case, involved readers randomly choose a new color and reserve it for the following interrogation round by sending a kick message to the neighbors. All readers on the corresponding color have to switch to a different timeslot for the following round. The readers maintain synchronization among each other by continuously tracking the current time slot. Hence, the system overhead is significantly impacted.
In centralized NFRA protocol (Eom et al., 2009), the readers randomly choose a time slot from the available ones broadcasted in the first place by the server. The readers elected for communication are the ones whose time slot corresponds to the single time slot broadcasted by the server at a second place. Before tag scanning, the readers send a beacon message to detect collisions between elected readers. If no collision occurs the reader sends a message to prevent the competitor readers from election until the next round. NFRA has a major drawback; it is unfair on sharing the available time slots among the readers since in each round only readers having fewer neighbors are selected (Rezaie and Golsorkhtabaramiri, 2018). FRCA (Rezaie and Golsorkhtabaramiri, 2018) came to address the lacuna observed in NFRA, it also brings the FDMA mechanism. The authors proposed two versions of their algorithm. In FRCA1, the same scheme of NFRA is followed having a central server broadcasting commands and the readers randomly choosing timeslots and channels and sending beacons. In case of a beacon collision, instead of both readers getting disabled as in NFRA, they compare their number of successful transmissions, as the reader with the lowest success rate will start tag interrogation and the other reader will wait for the next round. This approach adds fairness between readers for getting access to the medium. However, the algorithm raises the reader-to-tag collisions, as readers operating in different frequencies, can communicate at the same time. To address this kind of collision, the authors also proposed FRCA2 where involved readers will not only compete upon their reading success rate but also according to the distance between them. If the distance between the two readers is less than two times the reading range, the loser reader having a larger success rate will choose another channel and wait for the next round. While it will get access to the medium on the next time slot and using a different channel if the distance between them is larger than two times the reading range.
DRCA (Golsorkhtabaramiri and Issazadehkojidi, 2017) protocol is yet another centralized protocol that aims to avoid the reader collisions based on the measured distance between readers. A polling server that broadcasts an AC packet at the starting point of each round arranges the read rounds. The AC packet determines the number of available time slots. The readers randomly choose a time slot and select one of the four suggested channels by ETSIEN 302 208, randomly. After choosing a time slot, readers decide according to the channel situation in the previous time slot. By listening to the channel the reader knows if it was busy or not, if the channel was free in the previous time slot, the reader will broadcast a beacon packet if no collision occurs the reader can start communication with the tag. Conversely, if the reader detects that the channel was busy in the previous slot, it will decide according to the distance between itself and the other reader. If the distance is more than two times the read range, the reader chooses another channel and competes in the next time slot, while if the distance is less than two times the read range, the reader also chooses another channel but competes in the next round. DiCa (Hwang et al., 2006) is a distributed collision avoidance algorithm. As Pulse protocol, it also has a data channel and a control channel. Each reader contends for the use of the data channel through the control channel. The winner reads the tags through the data channel, while the others wait until the channel is idle. The readers exchange the following packets for collision avoidance:
BRD_WHO: Packet used for identifying whether a reader reading tags exists in the same network or not.
BUSY: Used for indicating whether the reader is reading tags.
BRD_END: Packet used for indicating that the channel is idle after the tags have been read.
DiCa considers the hidden and exposed terminal problems by adjusting the control channel range at twice the radius from the first reader. However, DiCa has some shortcomings. It causes a delay in the system by exchanging the contention messages. Also, it tries to solve the collision problem after it takes place, rather than acting preemptively. Thus, it cannot solve the collision problem completely. MCMAC (Dai et al., 2007) is yet another contention-based MAC protocol for RFID systems. Similar to the Pulse protocol, MCMAC reserves a control channel as a sub-band of the RFID spectrum for reader-to-reader communication. The readers can communicate simultaneously with the data channel and control channel.
MCMAC works similarly to the conventional LBT. MCMAC broadcasts a control message after it wins contention in a control channel and gains access to the data channel. The control message informs other neighboring readers within the interrogation zone that the particular channel is occupied for a certain time. At the reception of a control packet from a neighboring reader, the other readers will not use that channel for a certain period and try to gain access to another channel.
Even though this approach can mitigate the reader-to-reader problem, it cannot solve the reader-to-tag problem. Passive RFID tags are unable to differentiate between two data channels. Therefore, multiple data channels are not applicable in a passive tag environment. DiMCA (Safa et al., 2015) is another distributed protocol, it aims to avoid reader collisions based on a notification mechanism. For that, it uses two different control channels operating at different ranges. The first one covers the reading range of the reader and carries messages containing the ID of the reader, and the second channel covers the interference range and carries messages containing the reader’s ID and its chosen channel. The two types of messages are kept in two different queues, the first one holds the IDs of neighbors susceptible to cause reader-to-tag collisions and the second one holds the IDs and chosen channel of neighbors that may cause reader-to-reader collisions.
A reader waits for a random time before interrogating tags. When its waiting time expires, the reader checks its queues and decides accordingly. If the first queue is empty, the reader chooses a different channel to operate on and broadcasts it to its neighbors beforehand, otherwise, it waits for an END signal from its neighbors to operate at a different time.
Despite the improvement of both the throughput and efficiency of the RFID system, this solution relies on an overhead created by the exchanged messages, which can affect the delay. Furthermore, the authors did not address collisions among exchanged messages.
EMRCA (Jiang et al., 2016) protocol comes to improve the pulse protocol, it takes into account the multichannel aspect by identifying two types of collisions caused by the interrogation and interference range of readers. Readers sense first the common control channel used by all nodes to communicate. If the channel is idle during a given period, the reader begins the contending phase. Otherwise, depending on the neighbor on activity, it either starts a new listening session at the end of the current activity or, pursues the timer before contending. During contention, readers wait for a random delay time. If a reader receives a beacon during this time, it re-senses the control channel, otherwise, if the delay time runs out without any reception of the beacon, the reader moves into tag interrogation. It then gets access to the selected interrogation channel and periodically sends out a beacon to advertise on the common control channel. While this protocol improves the overall fairness and efficiency of Pulse, it still suffers from some shortcomings as readers' mobility and high density of readers’ deployment.
To the best of our knowledge, only Golsorkhtabaramiri et al. (2015) has addressed the reader collision problem in RFID–WSN integrated systems. It adapted Pulse protocol to the RFID enhanced wireless sensor network to consume less network bandwidth. A reader in communication with a tag periodically sends beacon packets on the common control channel. The beacon message contains the ID of the read tag. To avoid the same tag readings by multiple readers, each reader who receives the beacon message buffers a list of reading tags in each round. Before sending a beacon message, the reader starts by sensing the control channel. If it is busy, the reader pursues the sensing, if the channel is empty the reader waits for a time before sending the beacon message. However, this protocol generates a high overhead caused by the periodically broadcasted beacons.
To summarize, the previously proposed solutions for the general use of RFID technology are not best suited for a stocktaking use case. None of them has succeeded to register no collisions and no missed tags as depicted in Mbacke et al. (2018), while the stocktaking process is intolerant to such problems. Therefore, we came with a personalized solution for the stocktaking process to guaranty that all tags within the warehouse area will be read. It can also serve other applications having the same system topology. Our protocol comes under a decentralized mechanism in which distributed coordinators are in charge of arranging the operation of readers. As the coordinators are aware of the readers’ positions, they will provide an efficient resource allocation capable of avoiding all possible collisions.
The proposed protocol
The proposed protocol was designed to avoid the reader-to-tag collisions in a warehouse equipped with an RFID network where each rack of a shelf is mounted with an RFID reader forming a square grid topology. Our system consists of four types of devices: WSN cluster heads, where each cluster head communicates to its directly connected neighbors, integrated readers with sensor nodes (IRs), ordinary RFID tags, and the base station (Nagpurkar and Jaiswal, 2015). The integrated readers are arranged in clusters where the cluster heads (CHs) dynamically allocate the available time slots among their cluster members, so when they receive the scan request from the base station, they will sequentially relay it to the corresponding readers.
In a square grid topology, the IRs are lined up in rows and in columns such that IRs within a column are a distance x apart and the IRs in the position I within adjacent columns are a distance x apart as shown in Figure 2. Let us assume that the potential collision may occur between readers that are at most distance √2x apart (i.e. R1, R2, R3 and, R4 of each cluster in Figure 2), four time slots will be needed to avoid the collision (Engels, 2002). As the CHs are aware of the IRs locations, they will activate them in a way to avoid collisions. When R1 is activated, readers R2, R3, and R4 are disabled. The time slot ends when a reader has scanned all tags within range. This method guaranty to avoid all possible collisions and hence an efficient stocktaking.

Figure 2:
Deployed RFID architecture of the stocktaking use case.
The default order of the four time-slots allocation of each CH (Hereafter called scan sequence) will be S1, S2, S3, and S4. To avoid the collisions among adjacent clusters during a selective scan, this order may change. The involved CHs of a selective scan are responsible for readjusting their scan sequence order according to their need; this will be detailed in section “Cluster head behavior” below.
Protocol’s exchanged messages
The proposed protocol allows CH collaboration through a set of exchanged messages which are presented in Table 1. We acknowledge almost all requests by a simple response “OK”.
Table 1.
Set of the Protocol’s messages.
| Message | Semantic | Response |
|---|---|---|
| scnState | Inform the neighbors of start of scan | Ok |
| snsState | Inform the neighbors of end of scan | Ok |
| remScan | Ask the neighbor for his list of remaining scans | scanRep |
| continue_scan | Ask the neighbor to continue its regular scan | Ok |
| continue_scan_newSeq | Send the neighbor it’s updated scan sequence and ask him to continue the next scan | Ok |
| start_double_scan | Ask the neighbor to start synchronized double scan | Ok |
| continue_double_scan | Ask the neighbor to continue next synchronized double scan | Ok |
| start_triple_scan_newSeq_sesMem | Send the neighbor it’s updated scan sequence and the other neighbor’s address, and ask him to start the synchronized triple scan | Ok |
| start_triple_scan_sesMem | Send the neighbor the other neighbor’s address and ask him to start the synchronized triple scan | Ok |
| continue_triple_scan | Ask the neighbor to continue next synchronized triple scan | Ok |
| EOCS | Inform the neighbors of end of current scan | Ok |







