Zigbee 协议软件的构成包括硬件抽象层( HAL), 应用库( CUL)和系统主程序。HAL是简单的建立和使用外部的单元(例如, 无线收发, 计时器, AD 变换等)。CUL 提供了一个简单的无线协议, 一个管理器管理DMA 通道和一个以软件方式实现处理安排的多任务计时器。而系统的主程序提供了一个程序调用的接口和中断。本软件实现一个简单的点对点数据传输, 因此只需要一个精简的数据包协议( SPP)。
简单的协议包提供了简单的数据包结构如表1, 其中Leng th(长度), 接收信号强度( RSSI)和链路质量LQ I区域由芯片设置, dest SRC address 和flags区域由SPP设置, Pay lOAd( length- 5bytes) 区域为有效的载荷由用户设置(最大125字节)。
表1 简单的数据包结构
数据包的字节长度不包括长度字节本身, 目的地址和源地址每一个为一个字节, 另外, 0x00是广播地址, 这一地址的数据包被所有的节点接收, 标志包括ACK 位, 一个ACK 请求( DO _ACK )。通过重传显示、序列号位、序列号及重传的位共同作用从而能够区分新的数据包和当前接收的数据包, RSSI和LQ I显示接收信号强度和链路的质量, LQ I的第8位显示是否CRC校验成功或失败。
Zigbee数据包发送的部分流程图如图2 所示,接收数据的部分流程图如图3所示。
图2 发送数据的部分流程图
图3 接收数据的部分流程图
2. 4 Z igBee无线网关关键技术研究
2. 4. 1 网络管理功能
( 1)网络形成。无线网关上电后, 无线协议栈各层首先进行初始化, 然后通过网络请求来启动一个新的网络(仅具有协调器能力且当前还没有与网络连接的网关设备才可以建立一个新的网络)。
组网开始时, 网络层首先向MAC层请求分配协议所规定的信道, 或者由PHY层进行有效信道扫描,网络层管理实体等待信道扫描结果, 然后根据扫描结果选择可允许能量水平的信道。找到合适的信道后,为这个新的网络选择一个域网标识符( PAN ID )。
PAN ID可由网络形成请求时指定, 也可以随机选择一个PAN ID (除广播PAN ID 固定为0xFFFF外) , PAN ID在所选信道中应该是唯一的。PAN ID一旦选定, 无线网关将选择16位网络地址0x0000作为自身短地址,同时进行相关设置。完成设置后, 通过MAC 层发出网络启动请求, 返回网络形成状态。
( 2)网络维护。网络维护主要包括设备加入网络和离开网络过程。当网络形成后, 通过网络管理实体设定MAC 层连接许可标志来判断是否允许其他设备加入网络。加入方式有联合方式和直接方式, 在协议实现中采取直接加入网络方式。这种方式下由待加入的设备发送请求加入信标帧, 网关接收到后, 网络管理实体首先判断这个设备是否已存在于网络。若存在, 则使其加入网络; 若不存在, 则向设备发送信标帧, 为这个设备分配一个网络中唯一的16位短地址。这里的信标帧是由网关无线协议MAC层生成作为PHY 层载荷, 它包含PAN ID、加入时隙分配等信息。网内设备也可以请求断开网络。当网关收到设备断开连接请求后, MAC 层向网络层发送报告, 开始执行断开流程, 从设备列表中删除该设备相关信息。