Designing a Network Protocol
When requirements are tight and unforgiving, it's sometimes easier to design your own protocol.
In this article, I look at constructing the communication protocol for a personal area network. The network consists of low-power nodes that capture physiological data from sensors and condition it before sending it to a central node for processing. In this system, each node is connected to different sensors, which collect various physiological data. The collected data depends on where the sensor node is located on the body. Some of the information collected in this system includes electroencephalography (EEG), electrocardiogram (EKG/ECG), and body temperature. Each node retrieves the sensor data at a specific rate, stores the data locally, and then transmits its data to a central processing node (CPN). The CPN has the responsibility of storing the node's data, performing algorithmic processing on it, if necessary, and then transmitting the results to a remote device.
One of the key concerns for the individual sensor nodes is to keep power requirements to an absolute minimum. This requirement decreases the battery size, thereby reducing node size, and it extends the battery life. Having local data storage at the node level ensures integrity of the data if a node is temporarily unable to communicate its data to the CPN.
Standard TCP/IP vs. Proprietary Protocol
One of the first design decisions for our communication protocol was to determine whether an off-the-shelf or open-source, TCP/IP network stack could be used for each node. There are several options available for TCP/IP network stacks that are specifically tailored for embedded systems.
In this design case, the main determining factor in deciding whether to use a TCP/IP stack was the packet overhead. The transmission of data off the node is the most costly operation in terms of power consumption, therefore, it is important to limit the time it takes to send the data as well as the power consumed to send that data. In our network sensor system, optimizing battery life is a key to extending the operational life of the system.... Read full story on Dr.Dobb's
Post a comment to the original version of this story on Dr.Dobb's