[Part 1 reviews ZigBee data transmission along with an example that demonstrates how to initiate various data request mechanisms. Part 2 discusses
ZigBee's lack of a standard C API and looks at an API sampling from the four "Golden Unit" ZigBee vendors. Part 3 describes PAN IDs, extended PAN IDs, and channels, as well as application examples. Part 4 examines ZigBee node types, the network address, MAC addresses, groups and broadcasts. Part 5 covers concepts relating to ZigBee's application-level compatibility, including endpoints, clusters, commands and attributes. Part 6 looks at public and manufacturer-specific profiles, device IDs and the simple descriptor, as well as an example of an iPod controller application.]
4.7 ZigBee Application Support Sublayer (APS)
Okay. Don't ask me why the Application Support Sublayer uses the three-letter acronym APS. It's obvious, but don't ask me.
The Application Support Sublayer, or APS, sits above the NWK layer, and is the layer in ZigBee which understands applications. The APS frame over-the-air includes endpoints, clusters, profile IDs, and even groups.
APS is responsible for the following activities:
- Filtering out packets for non-registered endpoints, or profiles that don't match
- Generating end-to-end acknowledgment with retries
- Maintaining the local binding table
- Maintaining the local groups table
- Maintaining the local address map
APS has the job of filtering out packets for endpoints that don't exist in the node. APS filters packets that don't match profile IDs. APS also filters duplicate packets, which can happen in a network that supports automatic retries.
It's the job of APS to perform automatic retries, if acknowledgment is requested by the sender, to maximum the chance of successful transmission and to inform the sender whether or not the packet was delivered.
APS also maintains a variety of application-level tables. Binding is all about connecting an endpoint on this node to one or more endpoints on other nodes. Groups are all about an arbitrary collection of applications residing on an arbitrary set of nodes throughout the network. The address map associates a 64-bit MAC address with a ZigBee 16-bit NwkAddr.
APS and the Application Framework (AF) together form the ZigBee interface used by applications (see Figure 4.26). Lower layers are not called upon directly, but are used by APS and ZDO.
Figure 4.26: Application Support Sublayer (APS)
The Application Framework does not have an over-the-airframe of its own, but instead is the set of routines, or API, that the ZigBee stack vendor has chosen for applications to interact with ZigBee. This includes how endpoints are implemented, and how data requests, confirms, and indications are implemented for that particular vendor. In the Freescale solution, you've already seen the Application Framework at work with the functions:
And with the endPointList found in EndPointConfig.c.