The next phase of the Internet is on its way: a world of networked embedded devices equipped with sensors and radio, connected to the Internet, all sharing information with each other without human intervention.
But, some of these networked embedded devices have computer power limitations and scarce memory resources. These devices require communication protocols to join a network. Communication protocols executing on these devices should be implemented respecting these limitations.
Being able to execute IPv6 routing protocol in devices with very low RAM memory has the potential for a great impact since it enables interconnecting many lower cost devices to the Internet.Networks composed of wireless sensors, which are also referred as LLN (Low-Power and Lossy Networks), are characterized by having wireless links that have low throughput and unreliable links.
This reinforces the need for routing protocols that are robust to failure. RPL is a protocol designed for LLN. RPL organizes the network topology into Destination Oriented Directed Acyclic Graphs (DODAGs), where each node has one or more parents, which is useful to repair the network in case one of its parent fails.
Our main contribution in this article is that we show that it is possible to implement an IPv6 routing protocol in devices with very low (< 1 KB) RAM memory. We also project a hardware platform and present results with realistic experiments. To handle the hard RAM constraint, we develop a circular queue and a swap content mechanism from RAM to Flash memory.
We can find RPL implementation on Contiki and TinyOS operating systems, but they requires thousand of RAM bytes to install. Our implementation requires only 370 bytes of RAM and is generic to be incorporated in many applications. In our implementation, the aim is to implement a routing algorithm for devices with RAM limitations.
In our design, we opted for the MSP430 micro-controller family. The MSP430 has 16 bits, being computationally more powerful than 8-bit micro-controllers. MSP430 family also consumes less energy than other families. For instance, on active mode, it consumes 230 µA and on off mode, it consumes 0.1 µA.
The MSP430G2553 device which contains only 16KB ROM and 512 bytes RAM. We integrated the MSP430 with the ZigBee serial S1. This serial only implements the 802.15.4 and it does not have a routing protocol. We developed an IC to integrate the microcontroller to the radio. They communicate with other through a USART protocol.
Program memory (ROM) and data memory (RAM) are scarce resources on embedded devices. For example, our platform contains only 512 bytes RAM. Our implementation uses 7160 bytes of ROM and 370 bytes of RAM. Network packets are inherently dynamic content that needs to be stored in the RAM. We need two blocks of 127 bytes (size of 802.15.4 MTU) of RAM to process messages. We implement a message buffer over Flash memory to overcome RAM memory device limitation and also to allow devices to process many received messages.
To read this external content in full, download the complete paper from the open author archives at the Federal University of Minas Gerais.