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.