1.1 ZigBee 协议栈简介
本节内容仅仅是对 ZigBee 协议栈的一些大家必须理解清楚的概念进行简单的讲解,并没有对 ZigBee 协议栈的构成及工作原理进行详细的讨论。让刚接触 ZigBee 协议栈的朋友们对它有个初步的感性认识,有助于后面使用 ZigBee 协议栈进行真正的项目开发。
什么是 ZigBee 协议栈呢?它和 ZigBee 协议有什么关系呢协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。
图 1展示了 ZigBee无线网络协议层的架构图。ZigBee的协议分为两部分,IEEE 802.15.4 定义了 PHY(物理层)和 MAC(介质访问层)技术规范; ZigBee联盟定义了 NWK(网络层)、 APS(应用程序支持子层)、 APL(应用层)技术规范。 ZigBee 协议栈就是将各个层定义的协议都集合在一直,以函数的形式实现,并给用户提供 API(应用层),用户可以直接调用。
图 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 协议栈进行实际项目开发时,不需要关心协议栈是具体怎么实现的,当然有兴趣的也可以深入分析。
TI 公司的基于 ZigBee2007 的协议栈 Z-Stack-CC2530-2.3.0,所有文件目录如红色框所示,我们可以把它看做一个庞大的工程。或者是一个小型的操作系统。采用任务轮询的方法运行来个小总结: ZigBee 协议栈已经实现了 ZigBee 协议,用户可以使用协议栈提供的 API 进行应用程序的开发,在开发过程中完全不必关心 ZigBee 协议的具体实现细节,要关心的问题是:应用层的数据是使用哪些函数通过什么方式把数据发送出去或者把数据接收过来的。所以最重要的是我们要学会使用 ZigBee协议栈。具体的例程讲解在这里就不说先了,在接下来的教程里面会详细地和大家一起讨论 ZigBee 协议栈架构中每个层所包含的内容和功能及 Z-stack 的软件架构。
|