create new tag
, view all tags

WSRNLab Ad Hoc Network Testbed



The ad hoc network testbed consists of our own design packet radio boards (we call the current ones "smart packet radio (SPR) boards" for historical reasons as they are more capable than our older generation designs). They operate at 433 MHz ISM Band, and can transmit data up to 150 Kbits/second speed. Main components of the packet radio boards are the Atmel AT90USB1286 Microcontroller, RFM22B 'Hope' transceiver, and DS18B20 Temperature Sensor.

Hardware design files, circuit diagrams and parts list of the packet radio boards can be found under the Appendix heading below.



The software architecture of the system consists of two main blocs:

Firmware runs on the packet radio boards, it can be configured in three ways:

  • In the direct mode, only the physical layer of the protocol stack is active. In this mode, any packet received is directly broadcast and no error checking or recovery operations are performed. So, the remaining higher protocol layers, including the link layer functionality should be implemented in an application running on a Linux PC.
  • In the second and third operational modes, a user can activate either the ALOHA or the CSMA MAC sublayers of the protocol stack that exist on the board. Consequently, the user only needs to implement the network layer and other higher-layer protocol functionality in their application program. These modes take the advantage of Atmega AT90USB1268 and RFM22B chips on the packet radio boards to delegate complex operations to be handled by the board with tight timing constraints. The board itself takes care of retransmissions and ACKs and gathers a number of important statistics.
Linux PC based higher-layer user program does the protocol implementation for experimenting with logical link sublayer, network and transport layers. There are two choices (an OMNeT++ based sophisticated one or easy-to-use, C or C++ based one):
  • Direct C/C++ implementation approach is very easy to start with, I think this is the best way to introduce the use of packet radios and ad hoc networking experiments.
  • OMNeT++ Stack allows us to create hardware-in-the-loop type simulations. We can have half-real half-simulated models that physical and MAC layers are real, and the rest of the protocol stack is simulated. We can also have simulated networks running on separate PCs, connected via packet radio links. OMNeT++ Stack is very flexible but it needs some fairly significant knowledge on OMNeT++ concepts.

Physical and MAC Layers: On Firmware

Higher Layers: On PC

  • First, Copy these udev rules file into the directory /etc/udev/rules.d/. This way, we will be able to map each packet radio board to a device name radioXXX where XXX is a three-digit number written on each board. See the comments at the top of the file for further details.
  • We have two versions of the higher-layer protocol implementations:
    • Direct C/C++ Implementation is easier to start experimentation
    • OMNeT++ Stack requires some learning effort (This section is not ready yet)

Packet Formats

There are three types of packet formats:
  • Data packet is for exchanging between the user programs running on Linux PCs. In general, its format is user defined, but for our experiments we have standardized its structure.
  • USB packet is for exchanging information between the Linux PC and the attached Monash packet radio board over the USB cable. It has a dual purpose:
    1. For configuring the operational modes or controlling the LEDs of the connected Monash packet radio board, and receiving information such as temperature sensor readings, or statistics, and
    2. Carrying the data packet between the board and the user program running on the Linux PC.
  • Radio packet format is dictated by the RFM22B transceiver chip. The chip has extended capabilities such as its own CRC checks etc, in direct mode operation, we don't use them. The radio packet is managed by the firmware.
Packet formats are shown on this page.




Topic revision: r30 - 2014-05-04 - AhmetSekercioglu
This site is powered by the TWiki collaboration platformCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback