· 3 min read · RFI3 Team
Anti-collision explained: how one reader talks to hundreds of tags
When dozens of RFID tags answer at once, their replies collide. Here is how UHF readers sort them out — and what you can do to help.
Point a UHF RFID reader at a pallet of 200 tagged cartons and every tag in the field powers up at the same moment. If they all replied at once, the reader would hear noise, not data. Getting a clean read of every tag is the job of the anti-collision protocol.
Why tags collide
Passive UHF tags have no battery. They harvest energy from the reader’s signal and answer by reflecting part of it back, which is called backscatter. A tag can’t hear other tags, so it has no idea whether someone else is already talking. Two tags replying in the same instant overlap, and the reader can’t decode either one.
Taking turns: slotted ALOHA and the Q algorithm
Most UHF systems today follow the EPC Gen2 standard (also published as ISO/IEC 18000-63). Its anti-collision scheme is a form of slotted ALOHA: instead of everyone speaking at once, each tag picks a random time slot to answer in.
- The reader opens an inventory round and announces a number called Q. Each tag picks a random slot between 0 and 2Q − 1.
- The reader steps through the slots. A tag answers when its slot comes up.
- If exactly one tag answers, the reader acknowledges it and reads its ID. That tag is then set aside for the rest of the round.
- If no tag answers, the slot was empty. If several answer, they collided and will try again later.
The clever part is that Q adapts. Lots of collisions mean too few slots for the crowd, so the reader raises Q. Lots of empty slots mean too many, so it lowers Q. A well-tuned reader settles on a slot count close to the number of tags still unread. That keeps both kinds of wasted time to a minimum.
Sessions and flags: not reading the same tag twice
Each Gen2 tag keeps a small inventoried flag in one of four sessions (S0–S3). Once a tag has been read, it flips its flag and stays quiet for the rest of the round. Quieter tags give the remaining ones more airtime.
The sessions differ in how long a tag “remembers” it has been read. That lets you choose between counting a static population once (for example, a cycle count) and re-reading tags continuously (for example, a dock door watching goods move).
What helps in the real world
Anti-collision works best when the radio link itself is clean. In practice:
- Give every tag a fair signal. Tags facing away from the antenna, shadowed by other items or sitting near metal may never wake up, so no protocol can count them. Antenna placement and tag choice matter as much as firmware.
- Match the session to the job. Use a session that holds the read flag for counting a fixed population. Use one that resets quickly for tracking movement.
- Don’t max out power by reflex. More power reaches more tags, including ones you didn’t mean to read in the next aisle. The goal is the right field, not the biggest one.
- Allow enough dwell time. Large, dense populations need several inventory rounds. A pallet moving fast through a portal may need a slower belt or more antennas.
Every tag needs a turn, and every turn needs a clean signal. Anti-collision handles the first; good system design handles the second.
How RFI3 approaches it
Dense populations are one of the three problems we design for, alongside reading near metal and near liquid. If you have a tag population that today’s setup keeps under-counting, tell us about it and we’ll look at it with you.