RFID Tag Reader with Advanced Collision AvoidanceBruno Fernando Espinoza Amaya.Supervisor: Konstanty Bialowski.
ITEE Computer Research Project Seminar
Introduction to RFID RFID (Radio Frequency Identification) is a
technology that allow little chips to be interrogated from distance.
Consist on a reader and transducers (tags). Tags can be active or passive. (Need of energy source).
Features depend on the frequency used. UHF RFID is a standardized RFID used for toll
collection, warehouse management, etc. UHF RFID for Australia is in the 918 – 926 MHz
frequency range.
EPC Standard for RFID RFID is just a physical layer, but the information
that is stored in the tag also needs standardization.
A group of companies developed an own standard for both the physical and data inside the tags, specially for UHF RFID tags, as they aimed to replace bar codes.
Now that standard is managed by EPCglobal which propose it as an ISO standard.
For this project we will focus on the EPC Class2 Standard, also know as the ISO 18000-6C standard.
UHF RFID - EPC ClassesEPC Class 01: Passive tags with the minimal
functionality for identification. (No internal memory)
EPC Class 02: Passive tags with support of a read/write memory.
EPC Class 03: Semi passive tags that only work with a reader energy signal.
EPC Class 04: Active tags that can communicate with readers or other tags.
EPC Class 05: Active tags that can communicate with all the other 4 types.
EPC Class 2 Gen Standard
Approved as a global standard by ISO as ISO 1800-6C.
Based on “reader talk first” architecture, where the reader issue commands to the tags.
Developed with the idea of warehouse inventory control.
Tags can be passive or active, depending on the EPC Class.
Tags can have an internal memory with permission management and can be interrogated up to 4 readers.
Tag Collision Problem for RFID
In cluttered environments, there can be the case of multiple tags being irradiated by the reader and reply at the same time, so the reader cannot decode the resulting signal. This is know as Tag Collision.
Reader
Tag
Tag
Tag
Tag
Collision Avoidance in ISO 1800-6C
• ISO 1800-6C uses the ALOHA algorithm to avoid collisions.
• When the QUERY command is send, the tags generate a random number based on a slot size, and when the reader broadcast the number, if a tag has the same number, it will reply.
• Collisions happens if more than 2 tags generate the same random number. (It can happen when the slot size of the reader is low or in heavy tag scenarios).
Previous Research L. Zhu has a thesis about the theory and a model for
Anti-Collision schemes in RFID. Y. Lei, et. Al have a model in which they substitute the
CRC of ISO 18000-6C packets with Boolean operations to detect collisions quickly.
S. Duangsuwan proposes using of Blind Source Separation to separate the 2 or more signals present in a collision.
Y. Sun proposes the use of ICA for resolving the collision problem in ISO 18000-6C using a FPGA implementation.
M. Buettner develop a complete SDR RFID Gen2 Reader that can interact with tags.
M. Alotabi has a thesis that analyses the different anti-collision algorithms of RFID. He uses the SDR approach.
Blind Source Separation Given a single signal that is suspected to be the
mixture of various other signals, we want using as little information as possible to determine how many signals are mixed and isolate them from each other.
The only assumption we can made is that signals are independent and linearly mixed. (Additive Model).
We will use a transform, but opposed to FFT which is based on Frequency, we will focus on Statistical Independence.
Independent Component Analysis - ICA A Blind Source Separation technique mostly used to
remove independent sources which are linearly mixed on sensors. (Such as EEG, EKG and so on).
Can only separate linearly mixed sources. Gaussian Sources cannot be separated.
We need to provide as many inputs as many mixed signals there are for ICA to work.
Even with the sources are not completely independent, ICA will find an space where they are maximum independent.
FastICA implementation exists for Matlab. (And for other languages: http://research.ics.aalto.fi/ica/fastica/)
RFID Inventory Process
RFID Bits Signalling
PIE Encoding used by the Reader.
Miller Encoding M=2, used by the tags.
RFID and SDR Commercial RFID readers does not allow us to access
all the parameters and development platforms for RFID are very expensive. (> $ 1000.00 USS)
One way solve this problem is by using the SDR approach, and doing all RFID processing in software, so we can control all the stages.
For this project we are using the EPC Gen2 decoder developed by Michael Buettner for GNU Radio.
As for the SDR device, we are using the USRP1 with the RFX900 Daughterboard. (750 – 1050 MHz).
Project Road Map
• Select a device to capture RFID signals.
• Interface the internal options of the RFID device.
• Capture Signals• Decode signals.
• Analyse the RFID decoder implementation.
• Develop a mini RFID decoder.
• Be able to interface the internal options of the decoder.
• Port the RFID decoder to the latest GNU Radio.
• Evaluate performance with real tags.
• Develop an ICA block for GNU Radio.
• Identify where in the RFID decoding process is suitable to put an ICA block.
• Evaluate the system with and without the ICA block.
Milestone 01:RFID
Interfacing
Milestone 02: SDR
Implementation
Milestone 03: ICA
Implementation
Project Road Map: Done so Far
Milestone 01:RFID
Interfacing
Milestone 02: SDR
Implementation
Milestone 03: ICA
Implementation
• Select a device to capture RFID signals.
• Interface the internal options of the RFID device.
• Capture Signals• Decode signals.
• Analyse the RFID decoder implementation.
• Develop a mini RFID decoder.
• Be able to interface the internal options of the decoder.
• Port the RFID decoder to the latest GNU Radio.
• Evaluate performance with real tags.
• Develop an ICA block for GNU Radio.
• Identify where in the RFID decoding process is suitable to put an ICA block.
• Evaluate the system with and without the ICA block.
SDR Gen2 Reader Diagram
Gen2 Reader available at: https://www.cgran.org/wiki/Gen2
Lab Experiments The following items were used:
◦ USRP1 with RFX900 Daughterboard◦ 2 UHF Antennas◦ 1 cardboard box◦ 5 UHF proximity tags◦ 2 UHF high gain tags◦ Debian Wheezy with GNU Radio 3.7.4◦ Gen2 Reader by Michael Buettner ported to last GNU
Radio. (Originally this code run in GNU Radio 3.2.2) About the reader, we use the following configuration:
◦ Q value of 0. (We want to produce collisions!).◦ 4 inventory rounds with 10 QUERY commands per round.◦ Modulation set to Miller M=2 for the tags.
Lab Experiments – Physical Arrangement
Signals Obtained – Inventory Rounds
1 Inventory Round
Signals captured after the Matched Filter at 800 KS/sec.
Lab Experiments - Results
Notice how the RN16 is acknowledged by the reader and then the EPC code is returned. (Rest of errors are collisions).
Signals Obtained – Reader/Tag
Reader Command
Tag Response
Signals captured after the Matched Filter at 800 KS/sec.
Signals Obtained – Reader QUERY Command
PIE Preamble QUERY command
Signals captured after the Matched Filter at 800 KS/sec.
0 1 1 1 1 1
1 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0 0
1 110 0
• First bits are the PIE Preamble.• QUERY packet always begin with [1 0 0 0] bits.• Last 5 bits are the CRC-5 of the packet:
Signals Obtained – Tag RN16 Backscatter
Pilot ToneRN16 (In Miller
Encoding)
Miller M=2
Preamble
Signals captured after the Matched Filter at 800 KS/sec.
End of Signal
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0010001010
1
010100101010101010100101001 0010
1
• The End of the signal must always be 1.• Pilot tone is present according to the QUERY packet
send by the reader. (16 [0] bits).• The RN16 is Miller Encoded. If the symbol is not
valid, the QUERY packet will be resent.
Signals Obtained – Reader ACK
PIE Preambl
e
ACK Preambl
e
Echoed RN16
Signals captured after the Matched Filter at 800 KS/sec.
• ACK begins with [0 1] bits.• Notice that in here, the RN16 number is no longer
encoded with Miller, but instead is the raw bits with PIE Modulation.
10 0 0 0
1 1 1 1 1 1 01 1 1 10 11 1
0
Signals Obtained – Collision
Signals captured after the Matched Filter at 800 KS/sec.
• This a collision, because the red squared symbols does not follow the Miller encoding waveforms, but instead seems to be like the sum of 2 different Miller symbols.
• The decoder will not be able to read those symbols and will fail reissuing the QUERY command.
Pilot Tone
Miller M=2
Preamble
Collision Bits
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 ? 0 0 0 ? ? ? ?
0 ? 0 ? 0 ? ? 0 ? ? ? 0 ? 0 0 ?
Signals Obtained - Collision
Signals captured after the Matched Filter at 800 KS/sec.
0 0 0 0 0 0 0 0 00 1?
1?
1 0 1?
0 0? 1 0 1?
1?
Notice how we cannot tell the value of these bits due to the collision with other symbols. Consider the 1? Marks in where the most probable value will be a 1+ 0 in a collision. Or the 101? Symbol which seems to be 101, colluded with 010.
Next Steps – What is next?Milestone 01:
RFID Interfacing
Milestone 02: SDR
Implementation
Milestone 03: ICA
Implementation
• Already done. • Develop a mini RFID decoder in Matlab / GNU Radio.
• Be able to interface the internal options of the decoder.
• Perform evaluation with tags and recorded data.
• Develop an ICA block for GNU Radio / Matlab.
• Evaluate the performance of ICA with tags and recorded data.
• Introduce the ICA block into the mini decoder.
• Evaluate the block with tags and data.
(Possibly extend the Buettner reader to work with other SDR devices.)