14.2.1.2 Features

BitCloud internal architecture follows IEEE 802.15.4 Standard, Zigbee-defined separation of the networking stack into logical layers. Besides the core stack containing protocol implementation, the stack contains additional layers implementing shared services (e.g. task manager, security and power manager) and hardware abstractions (e.g. hardware abstraction layer HAL ). The APIs contributed by these layers are outside the scope of core stack functionality. However, these essential additions to the set of APIs significantly help reduce application complexity and simplify integration.

The topmost of the core stack layers, BDB, provides the highest level of initilization, commissioning and operating related APIs visible to the application. Also, some generic APIs to access and configure parameters which are part of BDB information base.

ZDO provides a set of fully compliant Zigbee Device Object APIs which enable main network management functionality (start, reset, formation, join) which are in turn used by BDB layer. ZDO also defines Zigbee Device Profile types,device and service discovery, binding commands implemented by the stack, and provides APIs for unicast, multicast, and broadcast data transmission and acknowledgment. Also, ZDO provides notifications/indications to the application on occurence of various network events.

ZCL provides set of APIs to send and receive various cluster specific/generic commands (e.g ON, OFF, Read attribute, Write attribute etc.,) to operate on attributes of the clusters on various Zigbee 3.0 application devices.

There are few system resources including: task manager, configuration server and hardware abstraction which are utilized by stack layers.

Task manager is the propreitary scheduler implemented within Bitcloud stack, which mediates the use of the MCU among internal stack layers. The task manager utilizes a proprietary priority queue-based algorithm specifically tuned for multi-layer stack environment and demands of time-critical network protocols. Bitcloud itself is operated as a RTOS task along with application as another task in a system. More details on using Bitcloud with FreeRTOS can be found in below sections.

Hardware Abstraction Layer includes a set of APIs for using software timer, which is based on microcontrollers' hardware timer resource. Also, APIs for using underlying hardware AES engine for encryption and decryption. Bitcloud security module uses these AES APIs for Network and APS level security.

Configuration server is a component of the stack that stores key stack configuration parameters and allows users to change them without recompiling the core stack layers. Users can configure the stack and specify key parameters (e.g. channel, table sizes, Network depth , no of children, sleep period etc .) all without managing multiple versions of the stack libraries.