Blink is a link layer protocol designed for a single hop backscatter sensor networks. Blink is
- fast, because it reduces channel probe time by exploiting sharp channel transition.
- accurate, because its classifier follows optimal bitrate closely.
- simple, because it obviates frequent channel probe by exploiting sensor mobility patterns.
For more in-depth information please look at the included copy of our MobiSys 2012 paper on Blink.
Blink consists of four main components:
- backscatter sensor mobility detector.
- channel prober to estimate link quality.
- bit rate selection module.
- channel selection module.
Please have a look at the section 4 of the enclosed paper for the details on each of these components.
Blink runs on a Window XP SP 3 platform. It has the following requirements:
- A Impinj Speedway RFID reader.
- Our implementation uses LLRP and Impinj Speedway RFID reader hooks to adjust RFID reader physical layer configurations.
- Microsoft Visual Studio 2008 or higher.
- Blink source code is compiled with Microsoft Visual Studio 2008.
- A ethernet router.
- A ethernet router is needed to connect Impinj Speedway RFID reader to your computer.
The default reader connection IP is
10.0.0.200
. You need to change this configuration based on the DHCP of your ethernet router.
To compile Blink, run WISP GUI.sln
in root directory and set WispDemo as the Startup project.
The default rate adaptation algorithm (AutoSet) on Impinj Speedway RFID reader can be run via web interface. Here is a tutorial on how to run Impinj Speedway RFID reader via web interface: http://wisp.wikispaces.com/UsingImpinjWebInterface. You can compare the throughput achieved by AutoSet and Blink.
Blink is written as a C# userspace code. Its implementation can be found in ReaderLibrary/ directory.
It runs as a single thread and timeouts to switch among mobility detection mode,
channel probe mode and transmission mode. loss_fast_probe.dat
and rssi_fast_probe.dat
contain
the trained link metrics used in classification.
The details of the functions in each mode are shown below:
ProbeMobilityPatterns()
: record the link signatures in the first sensor scanRecordMobilityPatterns()
: record the link signatures in the second sensor scanCheckTagMobility()
: identify stationary or mobile sensors
RateAdaptation_SlowMovingTag()
: bit-rate selection for stationary sensor. If sensor is still in the same location, bit-rate does not change.SlowMovingTag()
: stationary sensor inventory.SlowMovingTag_MobilityCheck()
: check whether stationary sensor becomes mobile sensor.
RateAdaptation_FastMovingTag()
: bit-rate selection for mobile sensor. A new bit-rate is selected every 5s.FastMovingTag_MobilityCheck()
: check whether mobile sensor becomes stationary sensor.
Pengyu Zhang (pyzhang@cs.umass.edu)