Zigbee协议栈简介

1、Zigbee 协议栈简介

        什么是 ZigBee 协议栈呢?它和 ZigBee 协议有什么关系呢?

        协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。

        图1 展示了 ZigBee 无线网络协议层的架构图。ZigBee 的协议分为两部分,IEEE 802.15.4 定义了 PHY(物理层)和 MAC(介质访问层)技术规范;ZigBee 联盟定义了 NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。ZigBee 协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供 API(应用层),用户可以直接调用。


Zigbee协议栈简介_第1张图片
图1  ZigBee 无线网络协议层

        在开发一个应用时,协议较底下的层与应用是相互独立的,它们可以从第三方来获得,因此我们需要做的就只是在应用层进行相应的改动。介绍到这里,大家应该清楚协议和协议栈的关系了吧,是不是会想着怎么样才能用协议栈来开发自己的项目呢?技术总是不断地在发展地,我们可以用ZigBee 厂商提供的协议栈软件来方便地使用 ZigBee 协议栈(注意:不同厂商提供的协议栈是有区别的,此处介绍 TI 推出的 ZigBee 2007 协议栈也称 Z-Stack)。

        Z-stack 是挪威半导体公司 Chipcon(目前已经被 TI 公司收购)推出其CC2430 开发平台时,推出的一款业界领先的商业级协议栈软件,由于这个协议栈软件的出现,用户可以很容易地开发出具体的应用程序来,也就是大家说的掌握 10 个函数就能使用 ZigBee 通讯的原因。它使用瑞典公司 IAR 开发的 IAREmbedded Workbench for MCS-51 作为它的集成开发环境。Chipcon 公司为自己设计的 Z-Stack 协议栈中提供了一个名为操作系统抽象层 OSAL 的协议栈调度程序。对于用户来说,除了能够看到这个调度程序外,其它任何协议栈操作的具体实现细节都被封装在库代码中。用户在进行具体的应用开发时只能够通过调用API 接口来进行,而无权知道 ZigBee 协议栈实现的具体细节,也没必要去知道。因此在这里提醒各位开发者,在使用 ZigBee 协议栈进行实际项目开发时,不需要关心协议栈是具体怎么实现的,当然有兴趣的也可以深入分析。

        图2 是 TI 公司的基于 ZigBee2007 的协议栈 Z-Stack-CC2530-2.3.0,所有文件目录如红色框所示,我们可以把它看做一个庞大的工程。或者是一个小型的操作系统。采用任务轮询的方法运行。


Zigbee协议栈简介_第2张图片
图2  TI Z-stack TI Z-Stack-CC2530-2.3.0

        来个小总结:ZigBee 协议栈已经实现了 ZigBee 协议,用户可以使用协议栈提供的 API 进行应用程序的开发,在开发过程中完全不必关心 ZigBee 协议的具体实现细节,要关心的问题是:应用层的数据是使用哪些函数通过什么方式把数据发送出去或者把数据接收过来的。所以最重要的是我们要学会使用 ZigBee协议栈。

        举个例子,用户实现一个简单的无线数据通信时的一般步骤:

        1、组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入。

        2、发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送。

        3、接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收。

        看起来是不是很简单呢,是不是有动手试试的冲动。具体的例程讲解在这里就不说先了,在接下来的教程里面会详细地和大家一起讨论 ZigBee 协议栈架构中每个层所包含的内容和功能及 Z-stack 的软件架构。

你可能感兴趣的:(Zigbee协议栈简介)