Project Proposal for Dan
SUPERB Summer 2001
Background:
The
PicoRadio project is a research effort exploring dense networks of very small
low-power System-On-Chip (SOC) devices.
The application space for PicoRadio includes numerous types of sensor networks
and anything else that requires large numbers of inexpensive devices producing
relatively low-bandwidth data in a decentralized way.
The
PicoRadio Test Bed is a general-purpose platform for evaluation of PicoRadio
algorithms. The Test Bed system is
comprised of a number of processing units (PicoNodes) communicating with erach
other over radio channels. The primary
difference between Test Bed nodes and SOC PicoNodes is that a PRTB node is
constructed from COTS (Commercial Off-The-Shelf) hardware and uses standard
programming methodologies e.g. compiled 'C' code and commercial FPGA
technologies. The Test Bed provides an
intermediate step between concept and the ultimate goal where algorithms such
as network protocols, Media Access Control (MAC), and applications can be
evaluated. In other words, it's a place
to run PicoRadio code in a real system before the actual PicoRadio nodes are
available.
Currently,
we have something like 18 working PicoNodes (number varies with type of
use). For demonstrations and as a test
case for the system we've developed a sensor application where multiple nodes
equipped with sensors communicate with a central basestation. The basestation collects, processes, and logs the samples sent by the sensor
nodes. This network has been deployed
twice - once at BWRC for about a week (last week) and at the recent BWRC
retreat in Tahoe for about half a day.
The system performed OK under the circumstances, but as with any
brand-new system there's a lot we don't understand about the dynamics of the
system as a whole. Even though portions
have been tested in isolation and with a small subset of other components,
interactions between components in the complete system produce unexpected results,
generally showing up as errors in data reporting.
At
first glance, the sensor network is application-specific. However, it's based on the basic underlying
functionality of the generic Test Bed.
For instance, many low-level support mechanisms such as interrupt
control will be used in most if not all future Test Bed applications, so it's
critical that these basic mechanisms be free of implementation errors so that
the Test Bed system doesn't "contaminate" the algorithms under
evaluation.
Project
Outline:
An
important near-term task is to analyze the sensor application from end to end
to identify and correct sources of error.
This project will be to perform the analysis and, if time permits, to
design and implement fixes to any problems.
There are likely to be a variety of error sources, such as bad data
encoding (a bug or bad choice of method), corruption on the wireless link, or
data lost in processing. We hope to
eliminate errors everywhere except on the link, which is inherently
error-prone.
The
project will follow roughly these steps:
1)
Learn
about the Test Bed to the point where you can create a simple application
(write and compile 'C' code and generate a simple FPGA design in the TestBed
workspace) and run the application on a single node.
2)
Study
the sensor application until you understand it inside-out.
3)
Learn
about the kernel resoures used by the application.
4)
Deploy
and operate the sensor network in the BWRC facility.
5)
Analyze,
or "profile" the network from end-to-end. For this you will need to understand how the sensors themselves
work, how a sample is taken, and what happens to the sample between the time it
is generated and the time the basestation has logged it to a file.
By
the time the project is done, you will have detailed knowledge of:
1)
The
sensor application, of course.
2)
The
system resources used by the app, including software kernel and FPGA circuit
blocks.
3)
How
the sensor network operates, including the basic communication
"protocol" (in our case a Media Access Control, or MAC) and how the
basestation and sensor nodes communicate with each other: when to send, when to
listen, which radio frequency to use, when samples are taken and why.
4)
End-to-end
"data semantics".
The
ultimate goal will be to compile a report (separate from your SUPERB report) on
actual or likely error sources and recommend solutions. A secondary (but less important) will be to
fix the errors yourself.