!!! Overview 
[{$pagename}] is a [proprietary Protocol] [wireless] [communications] [protocol] and designed for home [Building Automation], specifically to remote control [applications] in [Home Automation] and light commercial environments.


[{$pagename}] is a [Constrained-Node Network] [Protocol]

The technology uses a [low-power] RF radio embedded or retrofitted into home electronics devices and systems, such as lighting, home [Access Control], entertainment systems and household appliances.[3]

[Z-Wave] [Mesh Network] is a medium for 2-way communication between devices on the [Z-Wave Network]. Instead of a central controller commanding devices around the house, each [Z-Wave Node] is capable of sending and receiving commands from other devices and controllers. Commands can be routed from one [Z-Wave Node] to another throughout the house, around common household obstacles that would block other wireless systems. 

!! [{$pagename}] [Protocol]
The [{$pagename}] [protocol] is a low bandwidth half duplex [protocol] designed for reliable [wireless] [communication] in a low cost control network. The [protocols] main purpose is to communicate short control messages in a reliable manner from a control unit to one or more nodes in the network.

The [protocol] is not designed to transfer large amounts of [data] or to transfer any kind of streaming or timing critical data.

The protocol consist of 4 layers, the MAC layer that controls the [Wireless] media, the Transfer Layer that controls the transmitting and receiving of frames, the Routing Layer that controls the routing of frames in the network, and finally the application layer controls the payload in the transmitted and received frames.

A node is addressed by using two IDs: 
* [Z-Wave Home ID]
* [Z-Wave Node ID]

A node is addressed by using two IDs: a [Z-Wave Home ID] and a [Z-Wave Node ID]. The [Z-Wave Home ID] is like a network address and the node ID is the node on the newtork address. 

The [Z-Wave Home ID] is 32-bits wide and is unique to the network. The node ID is 8 bits wide. Both are assigned by the [Z-Wave Primary Controller] when it joins the node to the network.

There are four types of frames in [{$pagename}]: [Unicast], [Multicast], [Broadcast], and [ACK]. 


!! [Physical Layer]
The [Physical Layer] defines the way a signal is exchanged between a transmitter and a receiver. This includes issues like frequency, encoding, hardware access, etc.

The [Physical Layer] consists of radio technology that is proprietary to Zensys. It uses either 868 MHz (Europe) or 908 MHZ (US) frequencies, both of which are ISM bands and are free for public usage. In both of these frequencies, the data rate is 40 kbps using a single channel with FSK (frequency shift keying) modulation. In their next generation chips, Zensys mentioned that they will also be supporting 2.4 [GHz] operation, although the details are not yet public.

!! [Media Access Control] [Communication Layers]
The MAC layer supports [Acknowledgement] and retransmissions, however they seem to be application level [ACKs] and retries versus [MAC Address] level. 

The Z-Wave MAC layer controls the [radio Interface Layer] frequency medium. The data stream is [Manchester code]d and consists of a preamble, start of frame ([SOF]), frame data and an end of frame ([EOF]) symbol. The [frame] [data] is the part of the frame that is passed on to the [Transport Layer].

All [data] is transmissted in
* [Little-Endian] format.
* [blocks] of 8-[bit]
* [data] is [Manchester code] in order to have a DC free signal.

All frames use a similar structure, consisting of header, payload, and checksum. They are sent using a simple collision avoidance mechanism that just listens for traffic. If traffic is detected, then it will do a random backoff and try again similar to [Ethernet].

!! [Network Layer]
The [Z-Wave Primary Controller] controls the routing table and builds it based on the devices that it joins to the [network]. Upon being joined to the network, the [Z-Wave Primary Controller] will request the node's neighbor list which consist of all node's within broadcast range. The [Z-Wave Primary Controller] uses this information to build the routing table.

The routing table is maintained as a binary bitmap. This means that it is a table with all joined device IDs on the row and column header. If a device A is part of device B's neighbor list, then there will be a 1 in row A, column B. Otherwise it will be a zero. 

The good thing about a [binary] bitmap is that it is simple and also easily compressible. Thus it requires little RAM to hold the routing table. Even if the maximum table size of 232 x 232 nodes is reached, the routing table will be what's called a sparse matrix so various methods of compression can be used on it to make it small.

To send the frame, the [Z-Wave Controller] accesses its routing table and calculates a path from it to the destination. The [Z-Wave Controller] then embeds this path into the frame and sends out the frame to the first hop in the path. The [Z-Wave Node] then successively forward the frame based on the path embedded inside it. This method of routing is called source routing, as opposed to table-based routing methods.

!! [Transport Layer]
The Transport Layer function is to make sure that a message can be exchanged free of error between two wireless nodes. The end user cannot influence functions of this layer but the results of this layer are visible.

!! [Application Layer]
The [Application Layer] is responsible for decoding and executing commands in a network. 

The [Application Layer] accomplishes this using command classes and application frames. They are a group of related commands for a certain application. 

Some examples are: advanced light control, thermostat, or garage control. They mostly consist of GET/SET/REPORT functions.

Application frames are embedded inside the [Z-Wave] frames and are decoded to send commands to the application layer. These frames carry information about the command class, the command, and the command parameters.

There is also a special frame called the node information frame. It carries all the information about the node and is used for the node discovery process.

!! More Information
There might be more information for this subject on one of the following:
[{ReferringPagesPlugin before='*' after='\n' }]

----
* [#1] - [http://www.eetimes.com/design/embedded/4025721/Catching-the-Z-Wave] 2012-09-02
* [#2] - [http://en.wikipedia.org/wiki/OSI_model] 2012-09-02
* [#3] - [http://en.wikipedia.org/wiki/Z-Wave|http://en.wikipedia.org/wiki/Z-Wave] 2012-09-02