Monday, March 14, 2011

Software Architecture of a Sensor Node

An Operating System, Sensor Module, Antenna Module, Communication Module, Applications, Mobilizer Module, and Location and navigation module make the software of a senor node. Some sensor nodes may have all of modules and some may have only few modules according to the necessity. The naming and classification of these modules may be different in other literature's but let us stick to the above module names in this article and get to know about them. The following figure gives the overall software architecture of sensor node.

Overall Software Architecture of a Sensor Node

Operating System: This is hardware common micro code which will be used by all other high level node resident modules. As is generally the case the purpose of operating system is to shield the higher level modules from machine level functionality of the microprocessor. We can have Tiny-OS, which is open source software designed particularly targeting WSNs. It is written using Nesc. Nesc is made up of modules and configuration files, these are called as components. Tiny-OS is made up of components, components provide and use interfaces. The modules contain the actual implementation and configuration files wire the modules. There are tasks and hardware events for execution, tasks can be postponed but hardware events cannot be postponed.

Sensor Module: This module is responsible, to provide drivers to sensors present in the sensor node, to collect data from sensor when they are generated, to switch on and off the sensors, configure the sensors, and any other function that is related to sensors is done by this module.

Mobilizer Module: This module is responsible for the mobilizer’s driver, controlling of the mobilizer, this module comes into picture only if the sensor has a mobilizer in it.

Location and Navigation Module: This module is responsible for finding location of the sensor node and providing drivers for the location finding instruments if they are present on the sensor node.

Antenna Module: This module is responsible for the driver of the transceivers like CC2420. Any driver’s main function is to shield the software modules from the machine level functionality of the hardware.

Communication Module: This module is responsible for the route set up, channel allocation, new node detection, route table maintenance, encryption, decryption of the data , providing other security features required, providing good QoS, error checking and correction, data buffering, data forwarding many others.

Applications: This module is responsible for data aggregation, in node processing, and other application specific functions.