datasheets.com EBN.com EDN.com EETimes.com Embedded.com PlanetAnalog.com TechOnline.com  
Events
UBM Tech
UBM Tech

Design Article

ZigBee applications - Part 4: ZigBee addressing

Drew Gislason

7/27/2010 4:48 AM EDT

ZigBee Node Types
Before going into more ZigBee addressing, I'd like to address a concept I've been skirting but need to define formally: ZigBee node types.

Every node in a ZigBee network is one of three types: a ZigBee Coordinator (ZC), a ZigBee Router (ZR), or a ZigBee End-Device (ZED). In IEEE 802.15.4-speak, both ZCs and ZRs are full-function devices, and a ZED is a reduced-function device (see Table 4.5).

Table 4.5: ZigBee Node Types

Use a ZigBee Coordinator to form a network. This is the only device type that can. If the network is secure, the ZC must be present to add nodes to the network. Otherwise, once the network starts, it's just a router. The ZC is also the root of the tree when using tree routing in stack profile 0x01, so if the ZC is gone, only mesh routing is available across branches of the tree. Tree routing is explained in-depth in Chapter 7, "The ZigBee Networking Layer."

The ZigBee Coordinator is not needed for normal operation of the network, but is required to allow nodes to join or leave the network, as it contains the Trust Center. Only the Trust Center can decide whether to allow a node on a ZigBee network, or to deny it access.

Use a ZigBee Router to enhance the mesh in the network. ZigBee Routers can extend the range of the network and increase its reliability. ZRs like the ZigBee Coordinator route packets, and also allow other nodes to join the network.

Use a ZigBee End-Device if the node must be battery-operated and sleep during network inactivity. A ZED may be RxOnIde or not. When RxOnIdle is false, ZEDs may sleep for long periods of time. There is no ZigBee-imposed limit on sleeping, but some Application Profiles define a maximum, such as one hour in the Home Automation profile.

When an RxOnIdle is false, ZED wakes up. It may transmit immediately, poll its parent to see if any messages are waiting for it, then go back to sleep. When RxOnIdle is true, ZEDs receive messages immediately. In either case, a ZED may transmit any time it wishes. Use an RxOnIdle ZED when an application needs more RAM or flash memory because ZEDs make the smallest code image.

Any application can reside in any ZigBee node type. For example, a ZC, ZR, or ZED could contain a light, switch, temperature sensor, thermostat, gateway, or whatever is appropriate for the physical device.

The following example, Example 4-5 ZigBee Node Types, contains one ZigBee node of each type: a ZC, a ZR, and a ZED. In this case, the ZC will be the switch, the ZR and ZED will be lights.

This example can be followed using the three-node Freescale Network Starter Kit. The BeeKit Solution file, capture file, and source code to the application can be found in the usual place: http://www.zigbookexamples.com. To follow the example, download the following three projects to the respective boards:

• Chapter04\Example4-5ZigBeeNodeTypes\ZcNcbSwitch.mcp
• Chapter04\Example4-5ZigBeeNodeTypes\ZrSrbLight.mcp
•  Chapter04\Example4-5ZigBeeNodeTypes\ZedSrbLight.mcp

After they are all programmed, turn the nodes on, in any order. Once the ZigBee Coordinator forms the network the other devices will join, in this case on channel 25, PAN ID 0x0f00. Now press SW1 on the ZcNcbOnOffSwitch to toggle the lights.

Notice the delay on the ZED! Over-the-air, you can see the reason for the delay: the ZED doesn't receive the message until it polls its parent for the message. By default, this occurs once every three seconds. I've included time in the following capture so you can see how often the ZED polls its parent for messages. The ZigBee polling command looks like an 802.15.4 Command: Data Request in the captures:

Notice that the broadcast toggle command, initiated by the ZC (address 0x0000) in packet 21, is repeated by the router (address 0x0001) in packet 22. Then, three seconds later, the polling ZED asks node 0x0000 (its parent) if there are any messages waiting for it. The parent responds, "Why, yes, there are," and promptly sends down the broadcast to the child:

Frame 25 (Length = 30 bytes)
IEEE 802.15.4
    Frame Control: 0x8861
    Sequence Number: 254
    Destination PAN Identifier: 0x0f00
    Destination Address: 0x796f
    Source Address: 0x0000
    Frame Check Sequence: Correct
ZigBee NWK
    Frame Control: 0x0048
    Destination Address: 0xffff
    Source Address: 0x0000
    Radius = 10
    Sequence Number = 217
ZigBee APS
    Frame Control: 0x08
    Destination Endpoint: 0x08
    Cluster Identifier: On/off (0x0006)
    Profile Identifier: HA (0x0104)
    Source Endpoint: 0x08
    Counter: 0x13
ZigBee ZCL
    Frame Control: 0x01
    Transaction Sequence Number: 0x42
    Command Identifier: Toggle (0x02)

Note how the 802.15.4 (MAC) frame indicates a unicast from the parent to the child, but the NWK frame indicates that it's a broadcast (destination 0xffff) from node 0x0000, the ZcNcbOnOffSwitch.

Any application may reside in any ZigBee node type: ZC, ZR, or ZED.





Tim.Gillman

8/30/2010 1:38 AM EDT

To find out more about ZigBee and Wireless Sensor Networking, go to Drew's website: www.sanjuansw.com

Sign in to Reply



strawbot

9/25/2010 1:37 PM EDT

In table 4.5 column 1 you have your ZED and ZR swapped.

Sign in to Reply



jiki

10/31/2012 3:12 AM EDT

i downloaded the example but i am unable to open the file because i am not familiar with the extension of the file. please help me out. how to see the examples.

Sign in to Reply



Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)