The University of Southern California
is the home of Tenet, a tiered wireless
sensor network project. The architectures
combine PC-class network masters with a
horde of wireless micro motes that are typically
802.15.4 nodes. Generally, these are
very low-power devices.
Version 2.0 is available for download
from the Tenet project’s Web site. The
master tier runs on Linux or Windows
(courtesy of Cygwin). The applications
that run on this tier utilize a linear dataflow
language to access data and control the
motes. An emulation framework enables
developers to test the system without an
array of real motes. This tier of the network
normally runs on Wi-Fi wireless or
Ethernet wired networks.
The mote tier runs TinyOS, a compact,
non-preemptive operating system.
TinyOS is programmed in nesC, which is
a superset of C with task and interprocess
extensions to handle the non-preemptive
aspects of TinyOS.
TinyOS tasks run to completion. The
system only requires a single stack and a
minimal amount of memory, making it
ideal for compact platforms often found
on wireless nodes. The lack of preemption
leads to different programming methodologies
such as components that are wired
together. This is akin to a state machine
implementation. System response time is
usually more than an interrupt-driven OS.
Designers can use nesC to wire components
together (see the figure). The example
creates the structure that’s executed
later. Programming using this technique
requires a different mindset than programming
on Linux or other preemptive operating
systems. The system may seem simplistic,
but it can handle a TCP/IP stack.
The system is also applicable to a range of
embedded control applications, not just
wireless applications.
Check out my Crossbow TinyOS report
at www.electronicdesign.com, ED Online
12927, for more about TinyOS, and wireless
sensor networks. Crossbow Technology
recently announced TinyOS 2.0 support
for its IRIS motes, which can be part
of a Tenet environment.
CROSSBOW TECHNOLOGY • www.xbow.com
TENET • tenet.usc.edu
TINYOS • www.tinyos.net