Electronic – arduino – Low latency passive RFID solution

arduinonfcrfid

I'm an embedded software developer working on a personal project using RFID. I'm attempting to read a passive 13.56 MHz tag moving at 100ft/sec. Given the limited range of passive tags, I'm looking for something that can read a tag in under 10ms. Is this possible? If so, would it be possible to reduce the latency further? I've worked with the MFRC522 reader module hooked up to an arduino uno and couldn't get anything better than ~15ms.

Any advice here would be greatly appreciated.

Best Answer

It is very unlikely that a communication under 10 is even possible. If a tag (PICC) enters the field of the reader (PCD) the communication must first be established. Part of this for ISO/IEC 14443 is initialization, anti-collision and protocol activation. PCD is always the master and PICC the slave.

First, an unmodulated field of at least 5 ms is required so that the PICC switches on and changes to the IDLE state. After this die PCD sends a command in order to probe the field for PICCs of Type A. Then an anticollision loop is carried out. This is followed by a select sequence to receive the UID of the PICC. After each response from the PICC the PCD has to wait a certain amount of time (the frame delay time, FDT) before sending a new command. This FDT is around 90 us long.

Initialization and anticollision takes in summary around 1 ms. The time of the select sequence depends on the length of the UID but is probably 1-2 ms long. As you can see the minimum time to establish a communication is around 8 ms. Depending on the specific implementation of the protocol this time can be much longer.

After the communication has been established, you still have to send your own read command and wait for the response. Furthermore the bytes have to be sent serially to the arduino via SPI or I2C.

Unfortunately, you haven't described exactly what you want to read a PICC at 100 ft/sec for. But at 100 ft/s (which translates to 3 cm/ms) you might only have 2ms time to read the tag before it moves out of the readers range. For this reason it seems impossible to use ISO/IEC 14443 which needs at least 5 ms of unmodulated field.

Related Topic