Page 195 - 智慧园区物联网平台应用与行业分析
P. 195

» 第三章  物联网的认识




               TELNET、DNS、EMAIL 等),运输层(TCP、UDP),网络层(IP)和链路层(Wi-Fi、
               以太网、令牌环、FDDI 等)。
                   2007 年 1 月,TI 公司宣布推出 ZigBee 协议栈(ZStack),并于 2007 年 4 月提
               供免费下载版本 V1.4.1。ZStack 符合 ZigBee 2006 规范,支持多平台,包括面向 IEEE

               802.15.4 和 ZigBee 的 CC2430 片上系统解决方案,基于 CC2420 收发器的新平台,以
               及 TI 公司的 MSP430 超低功耗微控制器(MCU)。
                   除了全面符合 ZigBee 2006 规范外,ZStack 还支持丰富的新特性,例如,无线
               下载可以通过 ZigBee 网状网络无线下载节点更新。除此之外,7Stack 还支持具备定

               位感知特性的 CC2431。上述特性使用户能够设计出根据节点当前改变行为的新型
               ZigBee 应用。
                   (一)学习目标
                   ①学习基于 ZStack 控制 LED 的操作。

                   ②学习 OSAL 系统 API 接口函数使用。
                   (二)开发环境
                   ①硬件:实验箱一台,CC Debugger 仿真器一套。

                   ②软件:IAR Embedded WorkBench,ZStack 协议栈。
                   (三)原理学习
                   该任务是体验性的实验,用来体验基于 OSAL 系统的 CC2530 外设的驱动和相关
               API 函数的使用。
                   OSAL 是协议栈的核心,Z-Stack 的任何一个子系统都作为 OSAL 的一个任

               务,因此,在开发应用层的时候,必须通过创建 OSAL 任务来运行应用程序。通过
               osalnitTasks()函数创建 OSAL 任务,其中,TaskID 为每个任务的唯一标识号。任何
               OSAL任务必须分为两步,即任务初始化和任务事件处理。任务初始化的主要步骤如下。

                   1. 初始化应用服务变量
                   const pTaskEventHandlerFn tasksArr[] 数组定义了系统提供的应用服务和用户服务
               变量,例 MAC 层服务 macEventLoop、用户服务 controlEpProcess、functionEpProcess 等。
                   2. 分配任务 ID 和分配堆栈内存

                   void osalInitTasks()函数通过调用 osal_mem_alloc()函数为各个任务分配内存
               空间,并为已定义任务指定唯一的标识号。
                   3. 在 AF 层注册应用对象
                   通过填入 endPointDesc_t 数据格式的 EndPoint 变量,调用 afRegister()函数

               在 AF 层注册 EndPoint 应用对象。通过在 AF 层注册应用对象的信息,告知系统
               afAddrType_t 地址类型数据包的路由端点,例如,用于发送周期信息的 SampleApp_


                                                                                           183
   190   191   192   193   194   195   196   197   198   199   200