Sensing Subsystem
The sensing subsystem in a sensor node includes one or more sensors. For example, a node may be capable of sensing three parameters from the environment such as temperature, humidity and light if these three sensors are embedded in it. In the case of analog sensors, an analog-to-digital converter (ADC) is used to convert the analog output signal of a sensor into a digital signal.
Processing Subsystem
The processor subsystem interconnects all the other subsystems and some additional peripherals. Its main purpose is to execute instructions pertaining to sensing, communication and self-organization. This subsystem consists of a processor chip, a nonvolatile memory which stores program instructions, an active memory which temporarily stores the sensed data and sometimes processed data and an internal clock.
As a processing element, a mote (sensor node) often uses a microcontroller. A microcontroller contains a CPU core, a volatile memory (RAM) for data storage, a ROM, EPROM, EEPROM or flash memory, parallel I/O interfaces, discrete input and output bits, a clock generator, one or more internal analog-to-digital converters and serial communications interfaces.
Microcontrollers are of small size, low cost and their power consumption is low. Hence they are suitable for building computationally less intensive applications. However, microcontrollers are less powerful and less efficient in comparison with custom-made processors. The other options are digital signal processors (DSPs), application-specific integrated circuits (ASICs) and field programmable gate arrays (FPGAs).
DSPs process discrete signals with simple electronic circuits like adders, multipliers and delay circuits. Digital filters are used for reducing the noise effect and enhancing or modifying spectral characteristics. DSPs usually are based on Harvard architecture and are powerful and efficient. They can be used for applications where nodes are deployed in harsh physical settings and signal transmission may be affected by noise. However, DSPs are not suitable for tasks requiring periodic upgradation and modification.
An ASIC is actually an integrated circuit which can be customized for a specific application. Sometimes, a half-customized ASIC is built with logic cells that are available in the standard library. Whether an ASIC is fully customized or half-customized, the final logic structure is configured by the user. An ASIC can be optimized to meet the requirements of an application. However, its development cost is high and re-configuration is difficult. ASICs are used not to replace microcontrollers or DSPs but to complement them.
In comparison with ASICs, FPGAs are more complex in design and more flexible to program. FPGAs are programmed by modifying a packaged part. Programming is done with the support of circuit diagrams and hardware description languages, such as VHDL and Verilog. Although, FPGAs are complex and undergo an expensive design and realization process, there are some advantages of using them. FPGAs have higher bandwidth compared to DSPs, support parallel processing, can work with floating point representations and provide greater flexibility of control.
Communication Subsystem
In a wireless sensor network, fast and energy-efficient data transfer between the sensor nodes is important. However, the sensor node sizes are made small, so that they can be deployed on a large scale over a large geographical area. The size of sensor nodes puts restrictions on system buses and parallel transmission cannot be supported. Usually a high speed, full duplex, synchronous serial bus is ...