Lab 4 ZigBee & 802.15.4 with PICDEM Z Boards

42
Lab 4 Lab 4 ZigBee & 802.15.4 ZigBee & 802.15.4 with PICDEM Z Boards with PICDEM Z Boards 55:088 55:088 Spring 2007 Spring 2007

description

Lab 4 ZigBee & 802.15.4 with PICDEM Z Boards. 55:088 Spring 2007. Everyone has heard of 802.11 (Wi-Fi)…. IEEE 802.11 features: Ethernet matching speed Long range(30-90m) Complexity to handle seamless roaming Message forwarding Data throughput of 2-11Mbit/s. …so what is 802.15?. - PowerPoint PPT Presentation

Transcript of Lab 4 ZigBee & 802.15.4 with PICDEM Z Boards

Lab 4Lab 4ZigBee & 802.15.4 with ZigBee & 802.15.4 with

PICDEM Z BoardsPICDEM Z Boards55:08855:088

Spring 2007Spring 2007

Everyone has heard of 802.11 Everyone has heard of 802.11 (Wi-Fi)…(Wi-Fi)…

IEEE 802.11 features:Ethernet matching speed Long range(30-90m)Complexity to handle seamless

roamingMessage forwardingData throughput of 2-11Mbit/s

……so what is 802.15?so what is 802.15?

Specializes in Wireless PAN Specializes in Wireless PAN (Personal Area Network) standards (Personal Area Network) standards

802.15.1 – a.k.a. Bluetooth(1 Mbps)802.15.1 – a.k.a. Bluetooth(1 Mbps) 802.15.2 - Deals with coexistence of 802.15.2 - Deals with coexistence of

Wireless LAN (802.11) and Wireless Wireless LAN (802.11) and Wireless PANPAN

802.15.3 - High-rate WPAN 802.15.3 - High-rate WPAN standards (Wireless USB)standards (Wireless USB)

802.15.4 – a.k.a ZigBee, low-data 802.15.4 – a.k.a ZigBee, low-data rate, low-power networksrate, low-power networks

Technology ComparisonTechnology Comparison

What is ZigBee about?What is ZigBee about?

ZigBee can be found in embedded ZigBee can be found in embedded applications requiring low data rates applications requiring low data rates and low power consumptionand low power consumption

Fortunately, it is (relatively) low Fortunately, it is (relatively) low complexity as wellcomplexity as well

Applications include:Applications include: Embedded sensorsEmbedded sensors Medical devicesMedical devices Smoke and intruder alarmsSmoke and intruder alarms Home automationHome automation PC peripheralsPC peripherals

ZigBee/802.15.4 featuresZigBee/802.15.4 features Transmission range:Transmission range:

10m – 75m10m – 75m Three operating bands:Three operating bands:

868 MHz (20kbps) (ch. 0)868 MHz (20kbps) (ch. 0) 915 MHz (40kbps)915 MHz (40kbps) (ch. 1-10) (ch. 1-10) 2.4 GHz (250kbps) (ch. 11-26) *2.4 GHz (250kbps) (ch. 11-26) *

Three types of networks:Three types of networks: Star *Star * ClusterCluster MeshMesh

Channel SpacingChannel Spacing

In the 2.4GHz band, each channel is about 3MHz wide

Types of IEEE 802.15.4 nodesTypes of IEEE 802.15.4 nodes

Full Function Devices (FFDs)Full Function Devices (FFDs) Every network needs to have at Every network needs to have at

least one FFD that acts as a least one FFD that acts as a CoordinatorCoordinator

FFDs are always powered onFFDs are always powered on Maintain the state of the network Maintain the state of the network

so that RFDs can save battery so that RFDs can save battery powerpower

Require more system resources Require more system resources (memory especially) in order to (memory especially) in order to keep track of network state, keep track of network state, addresses, routes, messagesaddresses, routes, messages

Types of IEEE 802.15.4 nodesTypes of IEEE 802.15.4 nodes

Reduced Function Devices Reduced Function Devices (RFDs)(RFDs) Can only talk with FFDsCan only talk with FFDs Spend most of time powered Spend most of time powered

down, will not receive messages down, will not receive messages when offwhen off

Wake up occasionally and ask to Wake up occasionally and ask to see if they have a packet(s) see if they have a packet(s) waiting for them from their parent waiting for them from their parent node (FFD)node (FFD)

Types of ZigBee nodesTypes of ZigBee nodes

CoordinatorCoordinator This is an FFDThis is an FFD Only one per network, is in charge of Only one per network, is in charge of

forming itforming it RouterRouter

This is an FFDThis is an FFD Optional node that extends the range of Optional node that extends the range of

the networkthe network EndEnd

This is an RFD (usually) that performs This is an RFD (usually) that performs monitoring and/or control functionsmonitoring and/or control functions

How does ZigBee form How does ZigBee form networks?networks? Basic Type: Star NetworksBasic Type: Star Networks

How does ZigBee form How does ZigBee form networks?networks? More Complex: Cluster NetworkMore Complex: Cluster Network

How does ZigBee form How does ZigBee form networks?networks?

Very Complex: Mesh NetworksVery Complex: Mesh Networks

What does this have to do What does this have to do with 55:088?with 55:088? Lab 4 will be using 802.15.4 Lab 4 will be using 802.15.4

radios to create a wireless serial radios to create a wireless serial link between two nodeslink between two nodes

Each group will be provided with Each group will be provided with the pair of wireless radios on the pair of wireless radios on development boards from development boards from MicrochipMicrochip

These kits are NOT to be These kits are NOT to be removed from the labremoved from the lab

PICDEM Z BoardsPICDEM Z Boards

PICDEM Z BoardsPICDEM Z Boards

CC2420 Radio ICCC2420 Radio IC

2.4 GHz RF Transceiver2.4 GHz RF Transceiver Connect to microcontrollers via Connect to microcontrollers via

SPISPI Comes on a daughter board with Comes on a daughter board with

the PICDEM Z kitthe PICDEM Z kit 250 kbps data rate250 kbps data rate 2.1V – 3.6V2.1V – 3.6V 19.7 mA (RX)19.7 mA (RX) 17.4 mA (TX)17.4 mA (TX)

18LF462018LF4620

18LF462018LF4620 Microcontroller found with the Microcontroller found with the

PICDEM Z kitsPICDEM Z kits Overall, very similar to the Overall, very similar to the

18F45218F452 Biggest difference that will Biggest difference that will

matter to you is that these matter to you is that these operate at 3.3V, instead of 5Voperate at 3.3V, instead of 5V

Use the MPLAB and C18 Use the MPLAB and C18 compiler to write code for the compiler to write code for the PICPIC

18LF4620 on the PICDEMZ18LF4620 on the PICDEMZ

Pin 1 = Reset ButtonPin 1 = Reset Button Pin 2-3 = LEDsPin 2-3 = LEDs Pin 11-12 = PowerPin 11-12 = Power Pin 13-14 = 4 MHz XTLPin 13-14 = 4 MHz XTL Pin 15-18 = CC2420Pin 15-18 = CC2420 Pin 23-24 = CC2420Pin 23-24 = CC2420 Pin 25-26 = USARTPin 25-26 = USART Pin 31-32 = PowerPin 31-32 = Power Pin 33-36 = CC2420Pin 33-36 = CC2420 Pin 37-38 = Interrupt ButtonsPin 37-38 = Interrupt Buttons Pin 39-40 = ICD 2Pin 39-40 = ICD 2

Profiles and EndpointsProfiles and Endpoints

You will need to select a profile or You will need to select a profile or create your own to detail how create your own to detail how components interface with one components interface with one anotheranother

A functional block of code that A functional block of code that supports a component is called an supports a component is called an endpointendpoint

For the lab, best option is to look at For the lab, best option is to look at the Demo Coordinator and RFD the Demo Coordinator and RFD code to see how endpoints are used code to see how endpoints are used (profile: zHCLighting.h)(profile: zHCLighting.h)

EndpointsEndpoints

The ZigBee Device Object is The ZigBee Device Object is found on every ZigBee device found on every ZigBee device and reserves the endpoint 0and reserves the endpoint 0

Endpoint number 1 – 240 are Endpoint number 1 – 240 are available for the developer to available for the developer to use as they see fituse as they see fit

Endpoints act as a sub-address Endpoints act as a sub-address to allow individual components to allow individual components on a node to be accessedon a node to be accessed

EndpointsEndpoints

Here, flipping Switch 2 will send a message to the other node. How does the other node know that the message is for Lamp 4?

Endpoints!

Assign Switch 1 to endpoint 3

Assign Switch 2 to endpoint 21

Assign Lamp 4 to endpoint 39

BindingBinding

If a node knows the network address If a node knows the network address of the destination it wishes to send of the destination it wishes to send to, this is called to, this is called directdirect messaging messaging

For large networks, a table of known For large networks, a table of known addresses could become very largeaddresses could become very large

Instead of every node knowing the Instead of every node knowing the address of all participating network address of all participating network nodes, the ZigBee coordinator could nodes, the ZigBee coordinator could be left in charge of that taskbe left in charge of that task

BindingBinding

A node could become “bound” A node could become “bound” to another node through a table to another node through a table on the coordinatoron the coordinator

When a message is sent to When a message is sent to another node it goes through the another node it goes through the coordinator to match the coordinator to match the destination from the tabledestination from the table

This is called This is called indirectindirect messaging messaging

Lab 4 OverviewLab 4 Overview

A text-input GUI on a computer will A text-input GUI on a computer will connect via RS-232 to one of the connect via RS-232 to one of the PICDEM Z boards (we’ll call this the PICDEM Z boards (we’ll call this the Base Station)Base Station)

The other PICDEM Z board will be The other PICDEM Z board will be connected to a Liquid Crystal Display connected to a Liquid Crystal Display (LCD) that will display the text (LCD) that will display the text messages from the base station messages from the base station (we’ll call this the Remote Station)(we’ll call this the Remote Station)

Lab 4 OverviewLab 4 Overview

The remote station will have a The remote station will have a couple of “switches” which will couple of “switches” which will either indicate an “on” or “off” either indicate an “on” or “off” statestate

The switch states need to be The switch states need to be sent back to the base station sent back to the base station and displayed on the base and displayed on the base station GUIstation GUI

Example LayoutExample Layout

PICDEM Z with LCDPICDEM Z with LCD

GUI Layout on Base StationGUI Layout on Base Station

Use whatever language you Use whatever language you wish to create the GUI…wish to create the GUI…

Tools that you will use…Tools that you will use… Microchip has developed code Microchip has developed code

that makes interfacing with the that makes interfacing with the 802.15.4 radios vastly easier802.15.4 radios vastly easier

This is called the “stack”This is called the “stack”

IEEE 802.15.4

ZigBee

Template &

Your Code

Tools that you will use…Tools that you will use… In order to utilize the stack:In order to utilize the stack:

MPLAB v 7.41MPLAB v 7.41 C18 CompilerC18 Compiler Microchip ZigBee stack v 3.5Microchip ZigBee stack v 3.5 ZENA Stack Configuration ToolZENA Stack Configuration Tool

Look at example files:Look at example files: C:\MpZBee\DemoCoordinator\C:\MpZBee\DemoCoordinator\ C:\MpZBee\DemoRFD\C:\MpZBee\DemoRFD\

Do NOT alter files in the Stack Do NOT alter files in the Stack directory as this could cause the directory as this could cause the computer (or worse, the TA) to computer (or worse, the TA) to explodeexplode ““Look, but don’t touch”Look, but don’t touch”

ZENAZENAFound in the MpZBee directory

ZENAZENA

ZENAZENA

Zigbee.defZigbee.def

Created by ZENACreated by ZENA It selects many key parameters that It selects many key parameters that

will define how a particular node will will define how a particular node will operate:operate: Specify Coordinator, Router, or End Specify Coordinator, Router, or End

DeviceDevice Frequencies (channels) to operate onFrequencies (channels) to operate on Power modePower mode Node addressNode address As well as many other network factors…As well as many other network factors…

zLink.lkrzLink.lkr

Created by ZENACreated by ZENA Allocates RAM and ROMAllocates RAM and ROM Reserves space on the PIC for Reserves space on the PIC for

the stack (differs for RFD and the stack (differs for RFD and FFD)FFD)

Reserves space on the PIC for Reserves space on the PIC for received messages and received messages and messages to be sentmessages to be sent

Don’t modify what ZENA Don’t modify what ZENA generatedgenerated

myZigBee.cmyZigBee.c

Defines ZigBee Endpoints and Defines ZigBee Endpoints and the inputs and outputsthe inputs and outputs

ZigBee Device Object EndpointZigBee Device Object Endpoint References Zigbee.def to fill out References Zigbee.def to fill out

some of the parameterssome of the parameters Suggestion: Compare to the Suggestion: Compare to the

myZigBee.c files found in the myZigBee.c files found in the demo programs to help demo programs to help understand the formatunderstand the format

Additional NotesAdditional Notes

How is a message formatted?How is a message formatted?

Key points about TX and RXKey points about TX and RX

TX: Fill bytes into TxBuffer one TX: Fill bytes into TxBuffer one byte at a time using:byte at a time using: TxBuffer[TxData++] = a;TxBuffer[TxData++] = a; Then setThen set

currentPrimitive = currentPrimitive = APSDE_DATA_request;APSDE_DATA_request;

RX: Retrieve one byte at a time RX: Retrieve one byte at a time using:using: b = APLGet();b = APLGet();

LCDLCD

The LCD can run off of the 3.3V The LCD can run off of the 3.3V from the PICDEM Z boardsfrom the PICDEM Z boards

Contrast is much better if the Contrast is much better if the LCD is powered by 5V from the LCD is powered by 5V from the regulators used in labregulators used in lab