Z-Wave 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.
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:
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 Z-Wave: Unicast, Multicast, Broadcast, and ACK.
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.
The Z-Wave MAC layer controls the radio Interface Layer frequency medium. The data stream is Manchester coded 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
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.
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.
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.