12.4.1 Zigbee OTAU Firmware Architecture
ZigBee Over-the-Air Upgrade (OTAU) relies on existing ZigBee services for service discovery and data transmission across the network. The main components of the architecture are:
The OTAU client, which resides on one of the end points on every upgradeable device .
The OTAU server, which resides on whichever devices initiates the upgrade process
A NVM driver responsible for writing the transferred images to embedded flash Slot1 on every upgradeable device
An OTAU-capable bootloader for copying firmware image from Slot1 to Slot0 and does the image authentication.
Client Side Architecture
The high-level software architecture of the OTAU client side (that is, the upgradeable device) is illustrated in the below Figure. According to the Zigbee OTAU specification, the OTAU client part of the architecture is realized as a client side of the OTAU cluster. This implies that the ZigBee Cluster Library (ZCL) framework must be present whenever OTAU is to be enabled on a device.
Server Side Architecture
The server side of the OTAU cluster resides on what is commonly referred to as the upgrade access point (UAP). This may be a dedicated physical device which implements the server-side cluster or a multi-function in-network device which implements the OTAU service as an add-on piece of functionality. Regardless of how UAP is realized, there is always an implicit back channel, usually in the form of another network or serial connection outside of the ZigBee network, which is used to transfer the firmware images and control commands to the UAP. This guide considers an application scenario where an in- network device is used as a permanent access point on the network through which over-the-air upgrades can be initiated at some point in a network’s lifetime. In such case, UAP is a device joined to the network and supporting the server side of the OTAU cluster in addition to functionality of a common network device. In order to start and control upgrade process an in-network UAP is connected serially to a PC, and the OTA PC tool or a similar custom utility is used.