Article Preview
TopIntroduction
A Wireless Sensor Network (WSN) consists of autonomous sensor nodes (Akyildiz, Weilian, Sankarasubramaniam, & Cayirci, 2002). The goal of sensor node hardware development is to create tiny battery-powered low-cost disposable nodes. Increasing the performance or memory capacity increases the physical size, energy consumption and manufacturing costs. Thus, nodes are limited in computation, storage, communication and energy resources. These limitations must be addressed when designing and implementing protocols in WSNs.
It is not always possible to physically access the nodes in the field once they are deployed. Yet, adding new features, applications and program error fixes necessitates updating the program image that contains the software and protocols running on a node. The solution is a WSN reprogramming protocol, which is used to inject new software into a WSN.
Five general challenges affecting reprogramming in WSNs can be identified (Wang, Zhu, & Cheng, 2006). First, large program images must be transferred reliably through an error prone medium. Thus, the receiver should be able to detect errors and request the corrupted segments again. Second, processing speed and memory capacity in nodes set limits to the time and space complexity of designed protocols. Third, battery powered WSN nodes inherently require the reprogramming protocols to be energy efficient. Fourth, the reprogramming protocol must be scalable enough to handle WSNs that consist of hundreds or thousands of nodes deployed in varying densities. And fifth, the operating system, which is used in nodes, can set limits on the program image format and the reprogramming protocol.
Several protocols (Wang, Zhu, & Cheng, 2006) have been proposed for reprogramming a WSN. A common approach is to equip each node with external memory storage where the new program image is stored. Once the image has been received and verified, a dedicated image transfer program copies the new program image over the old image. This approach allows uninterrupted operation as the new image is transferred in the background. However, the additional memory increases hardware price and takes place on the circuit board, therefore necessitating expensive or energy consuming platforms that prohibit the vision of long term, disposable nodes. Furthermore, many protocols (Hui & Culler, 2004; Levis, Patel, Culler, & Shenker, 2004; Levis & Culler, 2002) support a particular operating system only.
In this paper we present the design, implementation and experimental results of a Program Image Dissemination Protocol (PIDP) for autonomous adhoc multihop WSNs. PIDP consists of firmware version handshakes between nodes, periodic firmware version advertisements and a reliable program image transfer, as shown in Figure 1. Firmware version advertisements are used between neighboring nodes to advertise and compare firmware versions and check for compatibility. The reliable image transfer is used to transfer program images between nodes and to rewrite the program memory. A small bootloader program locates and executes the loaded program image. PIDP is lightweight, energy efficient, reliable and, unlike other reprogramming protocols, does not require external memory for temporary storage of program images. A PIDP update in one part of the WSN does not disturb the whole network, thus, allowing a continuous operation of the non-affected nodes. Furthermore, PIDP is not restricted to a particular operating system or WSN protocol.
Figure 1. The logical structure and the memory layout of PIDP and the WSN stack. PIDP is a separate protocol stack. Firmware version advertisements and handshaking co-operate with the WSN stack to disseminate version information and to begin reliable program image transfer.