RFIDSIM -- A Simulator for RFID Networks

Matthew J. Miller (matt@matthewjmiller.net)


RFIDSIM is intended to be an extensible simulator for RFID readers and tags as well as other types of wireless networks.

Right now, it is in the very early stages and has not been well-tested, but hopefully it can serve as a foundation for someone looking to develop a more complete and robust RFID simulator. It is released under the GNU General Public License (http://www.gnu.org/licenses/gpl.html).


Step 1

Install the Boost C++ libraries on your system (http://www.boost.org/). I used Boost version 1.33.1 in development. In Debian, there are packages available that can be installed using aptitude.

Step 2

Run make.

Step 3

Modify main.cpp as necessary to create new scenarios.

RFID Channel Model

Each PhysicalLayer can select on which channel it transmits and receives independently. We use this to model RFID networks as follows. There is one master channel on which all readers transmit (but not receive) and all tags receive (but not transmit). Then, each reader chooses a regular channel on which packets are both send and received. Whenever a tag successfully receives a packet on the master channel, it will transmit a packet on the regular channel of the reader that sent the packet.

Thus, tags are essentially listening on all channels concurrently and can experience collisions if multiple readers transmit simultaneously (even if the readers' regular channels are different). Once the tag receives a reader's packet, it locks on to that channel to transmit back the the reader. The tag's tranmission is only overheard by devices listening on the regular channel of the reader to which the packet is transmitted.

As we understand it, this is the correct channel model for RFIDs. It has the important implication that readers cannot use different channels for their transmissions in order to avoid interference at tags.

With respect to the transmit power, the tag is modelled as reflecting the reader's tranmit power. This is done by setting the transmit power of a tag to the received signal strength of the last packet that it received.

One thing that we are not currently modelling is the fact that tags must have a sufficiently strong culmulative received energy or else they "turn off".

Advantages Over ns-2

Most of my previous development was in ns-2 (http://nsnam.isi.edu/nsnam/), but developed this to give several advantages over ns-2 (of course, there are many disadvantages as well, see Future Work).

Future Work

This project is far from complete and should only be used if you are interested in developing it further. Some work that would benefit this project include:

GNU General Public License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Generated on Tue Dec 12 17:04:37 2006 for rfidsim by  doxygen 1.4.7