天天看点

Zigbee通信协议~!

1、 IEEE 802.15.4MAC数据包

            IEEE 802.15.4MAC数据包的最大长度为127字节,每个数据包都由头字节和16位CRC值组成,16位CRC值验证帧的完整性。此外,IEEE 802.15.4还可以选择使用应答数据传输机制,使用这种方法,所有特殊ACK标志位置1的帧均会被它们的接收器应答。如果发送帧的时候置位了ACK标志位而且在一定的超时期限内没有收到应答,发送器将重复进行固定次数的发送,如仍无应答就宣布发生错误。

2 、网络配置与网络关联

         Zigbee无线网络可采用多种类型的网络配置。若使用星型网络培植,星型网络配置由一个协调器节点(主设备)和一个或多个终端设备(从设备)组成。在星型网络中,所有的终端设备都只与协调器通信。根据系统需求,协调器会在非易失性存储器中存储所有网络关联,称为邻接表。为了连接到网络,终端设备可能执行孤立通知过程来查找先前与之关联的网络或者执行关联过程来加入一个新网络。在执行孤立通知过程的情况下,协调器将通过查找其邻接表来识别先前与之关联的终端设备。

3、 端点、接口及端点绑定

         典型的Zigbee节点可支持多种特性和功能,为了便于在I/O节点和两个控制器节点之间进行数据传输,所有节点中的应用程序必须保存多个数据链路。为了减少成本,ZigBee节点仅使用一个无线信道来和多个端点/接口来创建多条虚拟链路或信道,每个端点总共有8个接口。在星型网络中的终端设备总是只与协调器通信,协调器负责将端点发送的数据包从一个节点转发到接收终端设备的相应端点。所以,当建立一个新的网络时,必须告知协调器如何创建源端点和目标端点之间的链路,Zigbee协议使用了一个称为端点绑定的特殊过程来实现链路的连接。

4 、数据传输机制

        传输数据到终端设备和从终端设备传输数据的确切机制随网络类型的不同而有所不同。在无信标的星型网络中,当终端设备想要发送数据帧时,它只需等待信道变为空闲。在检测到空闲信道条件时,它将帧发送到协调器。如果协调器想要将此数据发送到终端设备,它会将数据帧保存在其发送缓冲器中,直到目标终端设备明确地来查询该数据为止。

5、协议栈架构

          假设协议栈是使用C语言编写的,协议栈使用内部闪存程序存储器来存储可配置的MAC地址、网络表和绑定表,因此,必须使用可自编程的闪存存储器单片机。 

         协议栈根据ZigBee规范的定义将其逻辑分为多个层。实现每个层的代码位于一个独立的源文件中,而服务和应用程序接口(API)则在头文件中定义。要实现抽象性和模块性,顶层总是通过定义完善的API和紧接着API的下一层进行交互,该层的C头文件定义该层所支持的所有API。用户应用程序总是与应用支持子层(APS)和应用层(APL)交互。典型的应用程序总是与应用层(APL)和应用支持子层(APS)接口,APL模块提供高级协议栈管理功能,用户应用程序使用此模块来管理协议栈功能。APS层主要提供ZigBee端点接口。应用程序将使用该层打开或关闭一个或多个端点并且获取或发送数据。它还为键值对(KVP)和报文(MSG)数据传输提供了原语。当首次对协调器编程时绑定表为空,主应用程序必须调用正确的绑定API来创建新的绑定项。APS还有一个间接发送缓冲器 RAM,用来存储间接帧,直到目标接收者请求这些帧为止。MAC_MAX_DATA_REQ_PERIOD 编译时间选项定义了确切的请求时间。节点请求数据时间越长,数据包需要保存在间接发送缓冲器里的时间也越长,数据请求时间越长需要的间接缓冲空间越大。网络层(NWK)负责建立和维护网络连接,它独立处理传入数据请求、关联、解除关联和孤立通知请求。ZigBee设备对象(ZDO)负责接收和处理远程设备的不同请求。介质访问控制(MAC)层实现了IEEE 802.15.4规范所要求的功能,并负责同物理(PHY)层进行交互。

继续阅读