81
Rabbit Product Overview Derek Dippert Product Manager – Digi International

Rabbit Product Overview Derek Dippert Product Manager – Digi International

Embed Size (px)

Citation preview

Rabbit Product Overview

Derek Dippert

Product Manager – Digi International

Agenda• Rabbit Product Family Overview

– Chips, Modules, SBC’s• Application Examples• Overview of Dynamic C• Wireless Initiative and overview • Utilizing the Wireless Web Server

– Using the Wi-Fi library, Rabbit Web Overview– Yahoo User Interface – Live Demo

• Creating an Ethernet to ZigBee Gateway– Overview of ZigBee– Live Demo

Rabbit Ideaology1. …Making it easy for customers to

develop and produce their systems – at a reasonable cost. It’s our commitment to providing “low cost application controls”.

2. …Improving time-to-market via ‘well-thought’ modular logic solutions. “Core Modules for lower development risk and fast product introductions.”

3. …Improving ‘systems solution’ for the customer, based on developing technology offered by Z-World. “Dynamic C, TCP/IP, and SSL software provides wide-integration with our board-level solutions.”

4. … Enhancing features constantly; internet compatibility, multi-tasking, responsiveness, installation, security, etc. “add-on solutions like WiFi and GPRS Modems to maximize application control while keeping costs down.”

Low Cost Kits for Fast

Application Development

Operator Interfaces

Network Enabled Core Modules SBCs

Wireless Modules

Complete Hardware and Software-based Solutions

Integrated Solution

Rabbit 5000• First Rabbit chip to integrate Digi technologies

– 10/100 Ethernet– 802.11 Wi-Fi

Features• 208 ball BGA package• Full 16-bit microprocessor• 10/100 Ethernet implementation• 802.11 b/g implementation* • Internal 128KB of SRAM memory

Status• In use on RCM5400W and RCM5700• Due to on-chip 802.11 design complexity, not available like other

Rabbit processors for chip level development .• Exception is for high-volume applications (>100K units)

Rabbit® RIO™Key Features

– General Purpose I/O– PWM and variable-phase PWM– Quadrature Decoding channels– Input Capture channels– RabbitNet ports

General Specifications– 64 pin TQFP Package – -40C to +85C– Up to 40MHz clock speed– 8 independent channels, each with 4 ports

RIO™ Features• Parallel Bus Interface

• Serial Interface(s)• 4 pin SPI

• 3 pin bi-directionalclocked serial

• RabbitNet (Rabbit Expansion Protocol)

• 32 GPIO or• 32 PWM channels

• 8 input capture channels• 8 event counters

• 8 quadrature decoder channels

New MiniCore Series

• New family of small, low-cost modules• Streamlined for cost-effective connectivity

– Designed to support high-volume applications– Cost reduced with

• Higher integration Rabbit 5000 microprocessor• Small internal SRAM utilization• Edge connector instead of pin headers• Ethernet signals only (no RJ-45) • Small mini PCI Express form factor

MiniCore Series

• An All New Family of Wired and Wireless Networking Modules

• Socket compatibility • 10/100 Ethernet (RCM5700)• 802.11b/g (RCM5600W)• XBee Wireless (RCM5800W in planning)• Programmable Digital I/O • Multiple serial ports• Proven design for reliability• Production ready• Ultra-small form factor• Low-cost

Offering Flexible Connectivity

RCM5600W RCM5700

78 MHz Rabbit 5000 50 MHz Rabbit 5000

On-chip 802.11b/g Wi-Fi On-chip 10/100 Ethernet

512KB FSRAM for code (via boot from 1MB serial flash) 1MB Parallel Flash for code

128KB SRAM (internal) for data

128KB SRAM (internal) for data

36 digital I/O, 5 serial ports

30mm x 51mm x 3mm (1.18” x 2.0” x 0.11”)

Target MSRP of $50 Qty 2,500 MSRP of $25 - Qty 2,500

Q1 2009 September 2008

• Low-profile mini PCI Express form factor• Socket compatible modules

o Design motherboard for RCM5700o The RCM5700 is pin compatible with the

RCM5600W(Wi-Fi)

Applications for Rabbit MiniCore

• Energy/Utility Markets– Energy Management Systems (EMS)– Automatic Meter Reading (AMR) – Green Power Energy Production

• Solar• Wind• Hydro

• Building Automation Markets– Alarm Systems

– Surveillance Systems– Access Control

– Heating, Ventilation, Air Conditioning (HVAC) Systems

Design Benefits of Rabbit MiniCore

• Ultra-small form factor opens new design possibilities• 10/100 signals on RCM5700 allows user to place RJ45

connector on their product for best location.– RCM5710 MiniCore w/RJ45 in development

• Programmable I/O on MiniCore enables network communication plus local control capability– Various memory options available

• Multiple serial ports allow multiple device connections to Wired or Wireless network

• Ability to design one socket onto product and purchase either wired or wireless networking versions of MiniCore depending on application requirements.

• RCM5600W and RCM5700 will be socket compatible with future MiniCore module products.

MiniCore vs. RabbitCore• MiniCore: streamlined for cost-effective

connectivity– Smaller data SRAM– Not for compute-intensive apps– Target low-cost web server, energy management,

and building automation applications

• RabbitCore: optimized for compute-intensive connectivity– Data acquisition– Supports security standards: AES, SSL/TLS– Target instrumentation and AMR applications

New Product

RCM5400W SeriesPositioning/Features• 2nd Generation Wi-Fi product• Chip integration of 802.11b/g circuitry• Debut of Rabbit 5000 product• Fastest Wi-Fi product offered

Design Advantages• Addition of 802.11g (more of a standard in market)• 25% faster performance compared to RCM4400W

(for the same price)• MegaByte Code Support (MCS) with RCM5450W• Pin-compatible with other RCM4xxxx modules

Status• Now Available

Volume Considerations

SBC

RCM

Microprocessor

• Road Signs control

• Utility management

• Industrial/automation control

• Elevator auxiliary system

• Rail Monitoring

• Asset Management

• Cell site monitoring

• SmartCard reader

• Serial to Ethernet for

legacy

• Remote monitoring and control

• Weigh scales

• RFID reading system

• POS • Commercial medical device

• Handheld terminals

• Auxiliary control

Time to Market

• Machinery Control

Qu

anti

ties

• M2M Applications

SBC1 – 500 Units/year

RCM250 – 10k Units/year

Microprocessor10k – 100k+ Units/year

New Rabbit 4000 SBCs

BL4S100 Series BL4S200 Series

Low cost single board computer

Mid-range functions using base board + RabbitCore module

~$100 qty 500 ~$300 qty 500

10Base-T + XBee ZB connectivity

Ethernet, Wi-Fi, XBee options based on module

12 fixed inputs/8 fixed outputs 32 I/O/8 fixed outputs

8 channel A/D 8 channel A/D,

1 RS-232 2 RS-232

1 Dallas 1-Wire (mfg. opt.) 1 RS-485

1 RabbitNet port 2 RabbitNet ports

Optional robust plastic enclosure Optional robust plastic enclosure

BL4S100 SBC Series• New Family of Single Board Computer

– True single-board design, targeting lower product cost– 4 Planned Versions (512K/Ethernet/XBee Zigbee,

512K/Ethernet only, 1MB/Ethernet/XBee Zigbee, 1MB/Ethernet Only)

• Cost Effective Design for Control/Monitoring– Moderate I/O Count– Analog I/O– Screw terminal connections– Optional Robust Plastic Enclosure

• Launch October, 2008

BL4S100: Low Cost Wireless-To-Ethernet Gateway with Mesh

• ZB on-board offers mesh and interoperability with ZigBee Pro feature set

• BL4S100/150: Low cost & mesh networking– Use mesh peer-to-peer architecture– Easy-to-use protocol that simplifies mesh

networking – No need to define and organize coordinators,

routers or end-nodes

• Message: Rabbit makes mesh networking and control easy to deploy

BL4S200 SBC Series

• New Family of Single Board Computer– RabbitCore Module based for Flexible Communications– 4 Networking Versions (10BaseT,

10/100Base-T, Wi-Fi, Zigbee)

• Robust Design for Industrial Applications– Generous I/O count, High-Current Outputs– Analog I/O– Molex Pluggable Connectors– Optional Rugged Plastic Enclosure

• Launch October, 2008

BL4S200High Performance Connectivity

• Drop in control and connectivity for industrial apps– 40 GPIO– 6 Serial ports– ADC inputs and DAC outputs

• Networking choice– BL4S230 ZigBee connectivity and mesh networking– BL5S220 WiFi 802.11b/g networking

• Rabbit makes wireless connectivity and control easy to deploy for instrumentation, motion control, vision systems, meter reading, machine control

Single Board Computers with Display

OP7200 OP7500

XG5000 Series • 10.4", 8.4", 6.4" VGA Color TFT screen (640x480)

supporting 256 colors• 5.7" QVGA Color TFT screen supporting 64k colors• 5.7" QVGA Color STN screen supporting 8 colors• 3.6" and 5.7" QVGA B/W and Blue/White STN screen

(same as XG1000)• Character LCD interface (16x1 up to 40x4)• A new advanced X-Graph LCD hardware interface:

– 512kByte zero-waitstate Video-RAM• Rabbit 3000 running up to 58.8MHz• 2Mbyte local memory: 512kByte Flash program memory

Flash, 512kByte Fast-SRAM, 512kByte battery backup SRAM, 512kByte Video SRAM

• 10/100 Ethernet Interface• USB Interface• Dual RS485 drivers (two channels)• 10-pin PC-like RS232C header and 4-channel RS232C

level-shifter• DC 2.1mm power input jack• SDCard interface• 24 channel ADC and 1 DAC channel• 3.3Volt SMPS• Dallas 1-Wire Interface• Fits a low-cost compact plastic X-Graph enclosure

XG4000 Series

• A multi-purpose LCD interface design which supports: – 5.7" QVGA Color TFT screen supporting 256 colors – 5.7" QVGA Color STN screen supporting 8 colors – 4.3” Screen available– Character LCD interface (16x1 up to 40x4)

• Rabbit 4000 running up to 60MHz • 1.5Mbyte local memory: 512kByte Flash program memory

Flash and 1MByte Fast-SRAM • Ethernet Interface • Two 10-bit ADC channels • Analog touchscreen interface • Optional USB plug-in board • 10-pin XGBUS connector • 10-pin PC-like RS232C header and 4-channel RS232C level-

shifter • 12-pin internal I/O header (available on non-LCD versions) • DC 2.1mm power input jack • SDCard interface • Power supply on-board • Fits a very low-cost compact plastic X-Graph enclosure

Gateways Ethernet Wireless

Rabbit SBC Characteristics• More flexible software programming compared to

heavy operating systems• I/O and analog expansion boards provide non

standard features compared to PC based designs • Zigbee Gateway ability provides unique offering

compared to the market– Integrated AT and API commands drastically reduces

development time• Integrated touch screens quick time to market

and rapid deployment

Customer Applications

Vehicle TrackingFrance

• RCM2300 is used to interface with GPRS equipment located in trucks

• A sensor is triggered when the truck passes through tolls and will send out ID through GPRS

GamingAdvansys d.o.o

• Advansys d.o.o. – Based in Slovenia

• RCM2100 communicates with slot machine to send data back to a host PC to monitor player tracking

TC

P/I

P

RCM2100

Energy ManagementEnergy ICT

• Company is based in Belgium

• Energy usage is sent back to host computer via Ethernet or GPRS

Energy ManagementFlagsol GMBH

• Company is based in Germany.• The RCM3200 sends back information and controls the

movement of the panels to optimize sun exposure

Dynamic C

Software Overview

• Complete development environment– C Compiler– Advanced Editor– Debugger– Many libraries provided– Separate software

modules available for purchase

– Many sample programs provided

Philosophy• Easy to use

– Simple installation (both software and hardware)

– “Hello, world” in 15 minutes– Gentle development process– Allows customers to be successful– Simple progression from prototype to

complete application• Provided with all development kits

Debugging Features

Editor with syntax

highlighting

Breakpoints

Single-stepping program execution

Variable tooltips

Stdio window

Watch expressions

Disassembled code

Register window

Stack window

Debugging Features (cont’d)

Function help system

Execution tracing

Memory dump

Stack trace

Libraries• Standard libraries

– Many standard C functions are provided• Processor features

– E.g., serial ports, quadrature decoder, etc.• TCP/IP and networking

– TCP, UDP, DNS, FTP, HTTP, SMTP, POP3…

• Extended memory support• Board-specific libraries

Sample Programs

• Samples range from very simple to complex

• Over 800 samples total – Over 10 board-specific samples for

product.– Over 200 TCP/IP Sample Programs– About 70 Module Samples

TCP/IP Support

• TCP/IP stack is included royalty-free– Includes web server, email support, FTP,

and socket-level programming• API is not BSD sockets-based

– Our API is generally considered simpler• TCP Performance (44 MHz, 100BaseT)

– Up to ~470 Kbyte/s reading– Up to ~600 Kbyte/s writing

Additional Software Modules• These software modules with Dynamic C increase

functionality with select Rabbit Core modules

• FAT File System – File Allocation Tables

• PPP – Point to Point Protocol

• SNMP – Simple Network Management Protocol

• RabbitWeb – HTML interface with embedded applications

• AES - Advanced Encryption Standard

• SSL – Secure Sockets Layer

• Library Encryption – For Development PC

• RFU – Rabbit Field Utility allows binary image files generated by Dynamic C to be loaded to Rabbit targets without Dynamic C.

• µC/OS-II Real-Time Kernel - Jean LaBrosse's popular real time kernel. This is a preemptive, prioritized kernel that allows 63 different tasks, flags, semaphores, mutex semaphores, queues, and message mail boxes.

Dynamic C Updates• Dynamic C is now online for free

– Includes previous versions to support customer development

– Downloads require customer registration

• Dynamic C is now split into 2 development trees– DC 9.xx supports Rabbit 2000 and Rabbit 3000– DC 10.xx supports Rabbit 4000 and Rabbit 5000

• Dynamic C has integrated most of the separate modules– Includes FAT, Library Encryption, uC/OS-II (no

book), PPP, RabbitWeb, SNMP, ModbusTCP– AES & SSL/TLS are now available for free download

Wireless Overview

RF Basics

Basic Communication System– Transmitter and Receiver– Transmitting Antenna– Receiving Antenna– Environment

Transmitter ReceiverAntenna 1 Antenna 2

Environment

RF Essentials

Maximizing Range– Increase Transmitter (TX) Power– Increase Receiver (RX) Sensitivity

• Specified in dBm• Every 6 dB doubles the range LOS• Every 12 dB doubles range indoors / urban environments

IncreasePower

ImproveRX Sensitivity

IncreaseGain

IncreaseGain

RF Basics

Maximizing Range– Increase Transmitter (TX) Power– Increase Receiver (RX) Sensitivity– Increase Antenna Gain

• More gain equates with more focusing of energy• Antenna cables should be as short as possible

IncreasePower

ImproveRX Sensitivity

IncreaseGain

IncreaseGain

RF Basics

Basic Communication System– Transmitter and Receiver– Transmitting Antenna

• Focused energy

RF Basics

Basic Communication System– Transmitter and Receiver– Transmitting Antenna– Receiving Antenna

• Focused energy

RF Basics

Maximizing Range– Increase Transmitter (TX) Power– Improve Receiver (RX) Sensitivity– Increase Antenna Gain– Clear the Environment of obstructions

• Visual (Linear) line-of-sight vs. RF (Radio) line-of-sight

IncreasePower

ImproveRX Sensitivity

IncreaseGain

IncreaseGain

Clear theEnvironment

RF BasicsFresnel Zone

– Football-shaped path– Acceptable = 60% of Zone 1 + 3 meters– Raise antennas to help clear the zone

MiniCore Wireless Web Server

RCM5600W Feature Overview

• Microprocessor Rabbit® 5000 at 74MHz• Upgradeable over the air w RPU• Full Wi-Fi Authentication 802.11i• Serial Flash Memory (program) 1MB

– SRAM 1MB• General-Purpose I/O up to 32 parallel digital I/0 lines • 6 high-speed, CMOS-compatible Serial Ports

– all 6 configurable as asynchronous (with IrDA), 4 as clocked serial (SPI), and 2 as SDLC/HDLC– 1 clocked serial port shared with programming port

• Pulse-Width Modulators– 4 channels synchronized PWM with 10-bit counter or 4 channels variable-phase or synchronized PWM

with 16-bit counter• Power

– 3.15 V DC (min.) – 3.45 V DC (max.)– 625 mA @ 3.3 V while transmitting/receiving– 85 mA @ 3.3 V while not transmitting/receiving– Operating Temperature –30°C to +55°C

• 52-pin mini PCI Express socket

Security Terminology

• WEP - This is the name given to the encryption scheme originally specified for 802.11. 64-bit and 128-bit encryption– WEP is being replaced due to the following flaws: – Changing keys is a nuisance. – Very easy to crack. There are several free programs available on the Internet.

• WPA - The protocol implements the majority of the IEEE 802.11i standard, and was intended as an intermediate measure to take the place of WEP while 802.11i was prepared. Specifically, (TKIP), was brought into WPA.

• WPA2 - Replaced WPA and implements the mandatory elements of 802.11i. In particular, it introduces a new AES-based algorithm, CCMP, which is considered fully secure. WPA2 certification is mandatory for all new devices to bear the Wi-Fi trademark.

• WPA- and WPA2- Enterprise - The Wi-Fi alliance recognizes EAP (Extensible Authentication Protocol) types to its certification programs for WPA- and WPA2- Enterprise certification programs. This was to ensure that WPA-Enterprise certified products can interoperate with one another. Previously, only EAP-TLS (Transport Layer Security) was certified by the Wi-Fi alliance.

• The EAP types now included in the certification program are:– EAP-TLS– EAP-TTLS/MSCHAPv2 – PEAPv0/EAP-MSCHAPv2 – PEAPv1/EAP-GTC – EAP-SIM

Wireless Network Modes

• Ad-hoc mode - Wireless devices communicate directly with each other. Also referred to as peer-to-peer mode.

• Infrastructure mode - Wireless devices• communicate with each other by first

going through an access point. This framework is most commonly used when provided access to a wired network.

Web development Simplified

• Develop feature rich web applications on a Rabbit Core Module by utilizing proprietary RabbitWeb scripting extensions as well as the Yahoo! User Interface libraries.

• Utilize the Model-View-Controller (MVC) design pattern to simplify development and to illustrate building a richly interactive web application as seen below.

Libraries Needed

• #memmap xmem compiles all functions to xmem– Good for TCP/IP programs– Large TCP/IP functions can fill root code area

• #use “http.lib” includes the web server• #use “dcrtcp.lib” Includes main TCP/IP libraries

– Must be present in all TCP/IP programs– Configuration macros (TCP buffer sizes,etc.) must occur before this statement

• #use “xbee.lib” includes customized library from Application Kit

#memmap xmem#use "dcrtcp.lib"#use "http.lib"#use "xbee.lib"

#memmap xmem#use "dcrtcp.lib"#use "http.lib"#use "xbee.lib"

HTTP Server Library• HTTP/1.0 Implementation

– Works with all major browsers• Serves both static and dynamic content

– CGI functions and RabbitWeb assist with

dynamic content• Filesystem support• Authentication (basic, digest) supported• HTTPS support with added module

HTTP Server Library• Static content is defined in compile-time data

structures– Resource table– MIME types table

• Content can also be added and removed at run-time

• ZServer.lib manages resources for the HTTP and FTP servers– Provides abstraction layer

Yahoo! User Interface Library

• The YUI library is a set of utilities and controls, written in JavaScript, for building feature rich web interfaces.

• http://developer.yahoo.com/yui

CGI Support

• For dynamic content, Common Gateway Interface (CGI) functions can be used

• When a CGI resource is loaded by the browser, the server gives control to a callback function

• The callback function has complete control of the HTTP socket

• Very flexible, but difficult to code• RabbitWeb provides a simpler model

CGI Basics

• CGI functions. CGI stands for “Common Gateway Interface,” however this acronym has a more specific use in Dynamic C—

• Refers to a C function that is called by the HTTP server to generate some dynamic content for the browser. This is the only truly optional block.

• Many applications can be written without resorting to CGI functions; however, there are some cases where the power and flexibility of a CGI will be required.

CGI Functions

• Use of the HttpState structure is necessary for CGI functions

• CGI is a standard for interfacing external applications with HTTP servers. Each time a client requests an URL corresponding to a CGI program, the server will execute the CGI program in real-time.

int nodeDiscover_cgi(HttpState* s);int terminal_cgi(HttpState* s);int dioRead_cgi(HttpState* s);int dioWrite_cgi(HttpState* s);

int nodeDiscover_cgi(HttpState* s);int terminal_cgi(HttpState* s);int dioRead_cgi(HttpState* s);int dioWrite_cgi(HttpState* s);

RabbitWeb Goals

• Ease the chore of creating web interfaces• Enable choices about presentation tobe

made in the HTML files, not code• Retain flexibility of web page design• Leverage web designers’ existing knowledge• Take ideas from server-oriented realm (e.g.,

PHP, ASP) and refashion to be appropriate to small embedded systems

Solution

• Develop light HTML scripting language (ZHTML)

• Link variables in ZHTML with C variables• Enable simple error-checking of user input• Use ZHTML to report errors in user input• Restrict updates to specific users• Allow callbacks to be executed on user input

Bringing in Rabbit Web

• RabbitWeb can reduce weeks or months of complex Common Gateway Interface (CGI) programming down to hours. Using RabbitWeb eliminates the need for CGI programming by handling the association of web variables to C variables and even allows for callback functions to be triggered when web variables are changed.

• RabbitWeb is an ideal tool for simplifying the development of dynamic web interfaces.

{"myIO":[<?z for($A=0; $A < count($myIO,0); $A++) { ?> <?z if($A > 0) { ?>,<?z } ?> {"index":<?z echo($A) ?>, "port":"<?z printf("0x%02X",$myIO[$A].port) ?>", "bit":<?z echo($myIO[$A].bit) ?>, "type":<?z echo($myIO[$A].type) ?>, "value":<?z echo($myIO[$A].value) ?>, "name":"<?z echo($myIO[$A].name) ?> } <?z } ?>]}

RabbitWeb Compiler Extensions

• #web directive registers variables• C variable must have been previously declared• Optional error-checking expression (guard)• Optional “groups=” parameter imposes security limits

{ struct struct // AT COMMAND OPTIONS { int ct,gt,cc; // txtBox int on,off; // button (writeOnly) }at; // AT Command Options}xb_type;

void atCallBack(); // callback function for at option changes#web xB.at.ct (((2 <= $xB.at.ct) && ($xB.at.ct <= 0x028F))?1:ERR(NULL))#web xB.at.gt (((1 <= $xB.at.gt) && ($xB.at.gt <= 0x0CE4))?1:ERR(NULL))#web xB.at.cc // text box (0-0xFF)#web xB.at.on (xb_atModeOn(xB.at.gt)>0?1:WEB_ERROR("on"))#web_update xB.at.ct,xB.at.gt,xB.at.cc atCallBack

{ struct struct // AT COMMAND OPTIONS { int ct,gt,cc; // txtBox int on,off; // button (writeOnly) }at; // AT Command Options}xb_type;

void atCallBack(); // callback function for at option changes#web xB.at.ct (((2 <= $xB.at.ct) && ($xB.at.ct <= 0x028F))?1:ERR(NULL))#web xB.at.gt (((1 <= $xB.at.gt) && ($xB.at.gt <= 0x0CE4))?1:ERR(NULL))#web xB.at.cc // text box (0-0xFF)#web xB.at.on (xb_atModeOn(xB.at.gt)>0?1:WEB_ERROR("on"))#web_update xB.at.ct,xB.at.gt,xB.at.cc atCallBack

Creating an Ethernet to Zigbee Gateway

Ethernet to Zigbee Gateway

Fundamentals of ZigBee• Low Cost

• Low Power

• Security-enabled

• Reliable

• Initial Target Markets were AMR, Building Automation, and Industrial Automation (M2M Comms)

ZigBee Protocol• Where Does ZigBee Fit?

– Data Rate vs. Range vs. Battery Life (not shown)

Range

Pe

ak

Da

ta R

ate

Closer Farther

Slo

wer

Fas

ter

UWB Wireless Data Applications

Wireless Video

Applications

IrDA

802.11g

802.11b

802.11a

2.5G/3G

Bluetooth™

ZigBee™Data

Transfer

Wireless Networking

Wi-Fi®

Cellular

Wireless Standards Comparison

Feature(s) IEEE 802.11b Bluetooth ZigBeeBattery Life Hours Days YearsComplexity Very Complex Complex Simple

Nodes/Master 32 7 64000

Latency Enumeration up to 3 seconds

Enumeration up to 10 seconds

Enumeration up to 30 milliseconds

Range 100m-1000m 10m70m-300m (ETSI), 1600m

(FCC)Extendability Roaming possible No YesRF Data Rate 11Mbps 1Mbps 250Kbps

SecurityAuthentication Service Set

ID (SSID)64-bit, 128-bit

128-bit AES and Application Layer user defined

ZigBee Protocol

• How Does ZigBee Work?– ZigBee is a Networking Protocol that Rides on

Top of the IEEE 802.15.4 Radio Protocol

802.15.4 PHY

802.15.4 MAC

ZigBee Network

ZigBee APS

ZigBee AF

ZigBee ZDO

802.15.4 Protocol

• 802.15.4 Specifications– Supported Networks

• Point-Point• Point-Multipoint/Star

– Types of Nodes• Coordinator• End Node

– Reliable Delivery• CSMA/CA• MAC-level (pt-pt) Retries/Acknowledgments

– 64-bit IEEE and 16-bit short Addressing– 16 DSSS RF Channels

802.15.4 PHY

802.15.4 MAC

ZigBee Network

ZigBee APS

ZigBee AFZigBee

ZDO

ZigBee Protocol

• ZigBee Specifications– Supported Networks

• Point-Point• Point-Multipoint/Star• MESH

– Types of Nodes• Coordinator• End Node• ROUTER

– Reliable Delivery• CSMA/CA• MAC-level (pt-pt) Retries/Acknowledgments• MESH NETWORK-level (multi-hop) Retries/ACKs

– 16 DSSS RF Channels

802.15.4 PHY

802.15.4 MAC

ZigBee Network

ZigBee APS

ZigBee AFZigBee

ZDO

ZigBee Protocol

• ZigBee Specifications– Addressing

• 64-bit IEEE Address– Unique to every 802.15.4 device in the world– Permanent, assigned during mfg

• 16-bit Network Addressing– Unique to each module within a PAN– Used in Routing Tables– Used for data transmissions, etc.– Volatile Address - Can Change

802.15.4 PHY

802.15.4 MAC

ZigBee Network

ZigBee APS

ZigBee AFZigBee

ZDO

ZigBee Protocol

• ZigBee Nodes in a PAN (Personal Area Network)

End DeviceSeveral can be in a PANLow power

RouterOptional

Several can be in a PANMains-powered

CoordinatorOne per PAN

Establishes/Organizes a PANMains-powered

• Data Transmission terms–Unicast Mode – Guaranteed Delivery

• 64-bit IEEE Addressing– Destination 64-bit Address to match 64-bit

source address of intended receiver.• 16-bit Network Addressing

– Destination 16-bit Address to match 16-bit source address of intended receiver

ZigBee Protocol

PAN Network Formation– Coordinator must select an unused operating

channel and PAN ID• Energy scan on all channels • Sends Beacon request (Broadcast PAN ID)• Listens to all responses and logs the results

– After the Coordinator has started, it will allow nodes to join to it for a time based on the specified Node Join Time

C

ZigBee Protocol

• Router Startup– A new Router must locate a Router that has

already joined a PAN or a Coordinator• Sends a Broadcast PAN ID on each channel• Returns sent via unicast

– Router will then try to join to a Router or Coordinator that is allowing joining

ZigBee Protocol

• End node: Low-power Sleep Modes• End Node Startup

– A new End node must locate a Router that has already joined a PAN or a Coordinator• Sends a Broadcast PAN ID on each channel• Returns sent via unicast

– End node will then try to join to a parent (Router or Coordinator) that is allowing joining

ZigBee Protocol

Details of the Demo

• Overview– ZigBee & 802.15.4

• Using Dynamic C XBee API– Utilizes the BL4S100 to act as the gateway – Web interface to a ZigBee Network

• Using RabbitWeb • Using Yahoo! User Interface Library• 3rd party tools for debugging

BL4S100 ZigBee Network Monitor

• In order to determine if a router has been powered off, routers will send a heartbeat every ~4 seconds.

• When the Coordinator receives the heartbeat it updates a time-to-live variable for that router.– This TTL is checked by the

coordinator every 12 seconds and if it has been expired the router or end device image is removed.

• The web interface will automatically and seamlessly update every 1 second.

BL4S100 ZigBee Control

• Web interface is used to control I/O of routers and end devices

• Can also monitor if routers are on and whether a button has been pressed

Questions!