什么是 ZigBee 协议栈呢?它和 ZigBee 协议有什么关系呢?
协议是一系列的通信标准,通信双方需要共同 按照这一标准进行正常的数据发射和接收。协议 栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。
图 1 展示了 ZigBee 无线网络协议层的架构图。 ZigBee 的协议分为两部分, IEEE 802.15.4定义了 PHY(物理层)和 MAC(介质访问层)技术规范;ZigBee 联盟定义了 NW K(网络层) 、APS(应用程序支持子层) 、APL(应 用层)技术规范。ZigBee 协议栈就是将各个层定义的协议都集合在一直,以函数的形式实现,并给用户提供 API(应用层),用户可以直接调用。
协议栈 是协议的实现,可以理解为代码、函数库、供上层应 用调用,协议较底下的层与应用是相互独立的。商业化的协议栈就是给你写好了底层的代码,符合协议标准,提供给你一个功能模块给你调用。你需要关心的就是你的应用逻辑,数据从哪里到哪里,怎么存储,处理;还有系 统里的设备之间的通信顺序什么的,当你的应用 需要数据通信时,调用组网函数给你组建你 想要的网络;当你想从一个设备发数据到另一个 设备时,调用无线数据发送函数;当然,接 收端就调用接收函数;当你的设备没事干的时候 ,你就调用睡眠函数;要干活的时候就调用 唤醒函数。所以当你做具体应用时,不需要关心 协议栈是怎么写的,里面的每条代码是什么 意思。除非你要做协议研究。每个厂商的协议栈有区别,也就是函数名称和参数可能有区别,这个要看具体的例子、说明文档。
用户实现一个简单的无线数据通信时的一般步骤:
1、组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入。
2、发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送。
3、接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收。