Alberto Savioli and Emanuele Goldoni
University of Pavia
Dept. of Electronics
Via Ferrata, 1 - 27100 Pavia Italy
The IEEE 802.15.4 standard for wireless personal area networks (WPANs) specifies the physical (PHY) and medium access control (MAC) layers to guarantee interoperability between devices of different vendors and systems compliant to the standard.
However, IEEE 802.15.4 is quite recent: the first standard was released in 2003 and most of currently available RF modules are based on the -2006 version. Nevertheless, we strongly believe that it is necessary to guarantee effective compliance and interoperability from the early beginning, since these are and will be key feature for the success of this technology on the market.
We tested in our lab the interoperability between two widespread 802.15.4 radio modules: the Digi XBee Series 1 based on the Freescale MC13193 chip and the EasyBee RF module by FlexiPanel, which uses che Chipcon CC2420.
Results obtained on the field show that the two modules can interoperate smoothly.
EasyBee is a radio module for low-power wireless communication: therefore it allows an effective control of transmissions but it also has the drawback of needing a complete stack implementation inside the application starting from layer 2 (MAC). Moreover, it has an SPI interface and hence requires 4 wires to be connected to the main board. On the other hand, the Digi XBee module is actually a modem which requires on 2 wires for UART connection. However, it is a “black-box” approch to the stack, resulting in less code required but also less control on the communication. Some additional information about these two modules follows.
The EasyBee has been mounted on the top of a Flex board and connected using SPI (Serial Peripheral Interface Bus). The functions used to read from and write data to the SPI bus are provided by the ERIKA Real-Time Operating System running on the Flex board. We initially reset the device to default configuration and then we set the two registers
SHORTADR to 0x1001 and PANID = 0x3233 (beware MSt and LSB positions). We also set the channel to 12 using the
The XBee module is used in combination with an Arduino and the XBee Shield. The serial data interface (TTL 3.3V CMOS UART) of the RF module is connected directly to the pins of the ATMega168. We set the module in Transparent mode (
AP = 0 and the MAC Mode to plain 802.15.4 without ACK (
MM = 1). Finally we configure the following parameters:
DL= 0x1001 (or 0xFFFF)
We created a simple point-to-point network (no mesh or tree) with the two motes and we managed to run a simple program on both boards sending dummy characters every 100 ms (baud rate set to 115.200) to the other.
We tested bi-directional transmissions between the two RF 802.15.4 modules. Even if they can interoperate, it is important to keep in mind that their “user interfaces” operate at different levels: the XBee provides a simple and transparent interface for the underlying layer-2 802.15.4 MAC. On the other hand, the CC2420 is a RF transceiver and the user is provisioned an interface which hide only the PHYsical layer. As a result, the EasyBee is not responsibile for MAC frame generation.
Sending one ore more characters from the XBee to the EasyBee results in a correct transmission. For example, if we send
A (0x61 in ASCII), the PDU is received and the buffer is filled with a sequence like:
| 41 | 88 | A9 | 32 | 33 | 01 | 10 | 34 | 12 | 61 |
This is exactly the MPDU defined in the IEEE 802.15.4-2006 Standard except the 2-byte frame check sequence (FCS) which follows the last MAC payload byte. However this value is not written to the RXFIFO since in receive mode the FCS is verified by hardware when
MODEMCTRL0.AUTOCRC control bit is set (and this is the default configuration).
| FCF | Seq | PAN ID | Dst_16 | Src_16 | ... PAYLOAD ... | 0 2 3 5 8 10 10+n
Sending the same packet in broadcast would output something like
| 41 | 88 | 59 | 32 | 33 | FF | FF | 34 | 12 | 61 |
while changing MAC mode to 2 (802.15.4 with ACK) results in
| 61 | 88 | 59 | 32 | 33 | FF | FF | 34 | 12 | 61 |
Putting directly the payload in the TX buffer will not result in a correct packet received by the XBee. However, if we assemble correctly the MPDU (except the 2-byte FCS, which is calculated and append to the payload by the hardware), the XBee will receive the packet without errors.
For example, sending
| 41 | 88 | A9 | 32 | 33 | 01 | 10 | 00 | 10 | 61 |
from the EasyBee will output an ”
A” on the XBee side.
Results obtained in our tests shows that the two studied modules can interoperate smoothly in a 802.15.4-based Wireless Sensor Network.
We plan to test XBee and EasyBee in a larger network and to investigate the interoperability between the two modules and other commercially-available chipsets.