1. Open Source
Implementation of ZigBee
Arina Rudakova
(Saint-Petersburg Elelectrotechnical University «LETI»,
Open Source Linux Lab)
4th FRUCT seminar
Tampere
29 November 2008
2. 2
Agenda
• Introduction in Home Automation
• ZigBee overview
• Problem definition
• Implementation design
• Tools
• Current situation and future plans
3. 3
Applications
Where
Home Entertainment and Control
Home Awareness
Mobile Services
Commercial Building
How
Smart lighting
Temperature/Humidity control
Water sensors, smoke/fire detectors
Mobile (payment, monitoring and control, healthcare)
Energy monitoring and control
Access control
4. 4
History and standards
• 1998 ZigBee-style networks began to be conceived
• May 2003 The IEEE 802.15.4 standard was completed
• 14 December 2004 ZigBee specifications were ratified
• 13 June 2005 The ZigBee 2004 Specification
• September 2006 The ZigBee 2006 Specification
• End of 2007, ZigBee PRO was finalized
5. 5
ZigBee nodes and topologies
• Nodes type
− ZigBee coordinator(ZC)
− ZigBee Router (ZR)
− ZigBee End Device (ZED)
• Topologies
− Star network
− Mesh network
− Mesh-Tree network
Hello and good day to all of you. I am Arina Rudakova from Saint-Petersburg Electrotechnical University "LETI". I also belong to Open Source Linux Lab which takes part in open source implementation of ZigBee. This is a research project. It consists of such parts as investigation, analysis, modelling and implementation.
Here's the agenda of our talk. First of all there will be an introduction in home automation and an overview of ZigBee protocol standard. Then I'll define the problem, describe the implementation design and the developed tools. The last part will consist of description of present situation and future plans.
ZigBee is the name of a specification for a suite of communication protocols using small, low-power digital radios based on the IEEE 802.15.4-2006 standard for wireless personal area networks (WPANs). ZigBee network is low-cost, low-power consumption and low-data-rate network. Such networks can be used for many purposes. The first one is Home Entertainment and Control. To make home really convenient you can use smart lighting, advanced temperature control, safety and security providing and easy media-control like movies and music management. Second important way of using ZigBee is Home Awareness done with the help of water and power sensors, smoke and fire detectors, access sensors and so on. ZigBee can provide mobile services such as mobile-payment, mobile-monitoring and control, mobile security and access control, mobile-healthcare. And the last of presented possible usages is employing ZigBee networks in commercial buildings for energy monitoring, constructing of Heating, Ventilation and Air Conditioning systems, for light and access control.
ZigBee-style networks began to be conceived about 1998, when many engineers saw a need for self-organizing ad-hoc digital radio networks as both WiFi and Bluetooth turned out to be unsuitable for many applications. ZigBee specification has been developed by the Zigbee Alliance with the membership of over 200 companies by now. During the last quarter of 2007, ZigBee PRO, the enhanced ZigBee specification was finalized.
Here you can see ZigBee nodes and topologies. The first type of nodes is ZigBee coordinator (ZC). It is the most capable device that forms the root of the network tree and might bridge to other networks. There is exactly one ZigBee coordinator in each network since it is the device that starts a network. It is able to store information about the network, to act as the Trust Centre & repository for security keys. A ZigBee Router (ZR) can both run an application function and act as an intermediate router, passing data from other devices. ZigBee End Device (ZED) contains just enough functionality to talk to the parent node (either a coordinator or a router); it cannot relay data from other devices. The node can be asleep a significant amount of the time thereby giving long battery life. The ZigBee protocol includes three network topologies. A star network is the simpliest, a mesh network is the most reliable and a mesh-tree network is a large scale network.
On this slide you can see the ZigBee stack architecture. Each ZigBee device should adhere to a specific public or private profile which is a set of options. Public profiles guarantee the interoperability of different vendors for the same application space. Devices are defined by their profiles and are implemented as application objects. Each application object is connected to the rest of the ZigBee stack by an endpoint, which is an addressable component of the device. There are 256 endpoints, and two of them are special. Endpoint 0 is used for the configuration and management of the entire ZigBee device. ZigBee Device Object (ZDO) is attached to endpoint 0. Endpoint 255 is used to broadcast to all endpoints.
On this slide you can see modules implementing network layer of ZigBee stack. Mac and physical layers are based on the IEEE 802.15.4 standard.
There is a plan of work at open source ZigBee imlementation where OSLL takes part. The main tasks are to add a wireshark dissector, to make protocol layers independent, to define and implement socket interfaces on IEEE 802.15.4 and ZigBee Network layers and finally to implement a ZigBee APL user-space library which should define Application Profiles (Home Automation, Smart Energy) and ZigBee Data Objects.
There is a detailed scheme of implemented and being worked at parts of the ZigBee stack. At the moment the IEEE802.15.4 layers and ZigBee Network layers are implemented as well as their interfaces. The next goal is to implement ZigBee Application Support layer with its interfaces: an Application Data Entity-Service Access Point and Application Management Entity-Service Access Point and to implement the ZigBee Device Object Public Interface.
The imlementation of wireshark dissector consisted of two parts. First of all a driver was made able to report transient packets from PHY layer. Then a wireshark dissector was made able to capture reported packets and to dissect them up from the PHY layer.
The next step of realizaion is socket interfaces implementation for IEEE802.15.4 and ZigBee layers. This task supposes an introduction of ZigBee socket address familly for 802.15.4 layer, a definition of socket interface primitives and their mapping to socket control codes.