当前位置:文档之家› 第六章 zigbee协议栈详解

第六章 zigbee协议栈详解


ZigBee回顾
ZigBee协议栈建立在IEEE802.15.4的PHY层和MAC子层规范之 上。
它实现了网络层(networklayer,NWK)和应用层( applicationlayer,APL)。
在应用层内提供了应用支持子层(applicationsupportsub-layer, APS)和 ZigBee 设备对象(ZigBee Device Object,ZDO)。
学时:4
ZigBee协议栈详解
目标: 本章在向学员介绍物联网体系中传输层所使用 的相关技术,通过本课的学习,学员应该掌握 如下知识: IP协议栈的应用 WLAN无线网络应用
大纲
协议栈内部结构 IEEE802.15.4 标准和 ZigBee 协议 协议栈软件总体设计 网络层(NWK)设计 应用层 MAC 层设计 物理层(PHY)设计
ZigBee协议栈的实时性要求并不高,因此在设计任务调度程序时 ,OSAL只采用了轮询任务调度队列的方法来进行任务调度管理。
这个轮询就存在于osal_start_system( )函数中 重视优先级的调度方式
do { if (tasksEvents[idx]) // Task is highest priority that is ready. { break; }
目前 TinyOS 系统支持的平台只有 ATMEL 公司的 AVR 系列、TI 公司的 MSP430系列。由于TinyOS操作系统还没有对Chipcon公司提供CC2430开发平 台提供支持,因此,要在 CC2530 开发平台上使用 TinyOS 系统来开发 ZigBee 协议栈软件,就必须首先对 TinyOS 进行移植。
协议栈主要流程
见Zmain.c中的main函数
初始化后调用函数osal_start_system(); //no return from here 开始对任务进行轮询
用户开发程序所需修改的文件
任务
协议栈中的每一层都设计了一个事件处理函数,用来处理与这 一层操作相关的各种事件。将这些事件处理函数看成是与协议 栈每一层相对应的任务,由 ZigBee 协议栈中调度程序 OSAL 来 进行管理。
因为各层的处理任务已经添加好了,应用程序只需更新 SampleApp_ProcessEvent即可。
nwk_event_loop、macEventLoop等是非开源的,用户不需要改。
读代码
任务调度
对于协议栈来说,无论何时发生了何种事件,我们都可以通过调 度协议栈相应层的任务,即事件处理函数来进行处理。这样,整 个协议栈便会按照时间顺序有条不紊的运行。
Zigbee绑定操作
ZigBee协议栈各层帧结构之间的关系
在 ZigBee 协议栈中,任何通信数据都是利用帧的格式来组织的 。协议栈的每一层都有特定的帧结构。当应用程序需要发送数 据时,它将通过 APS 数据实体发送数据请求到 APS。随后在它 下面的每一层都会为数据附加相应的帧头,组成要发送的帧信 息。
OSAL时钟由定时器来实现,当定时器中断产生时会更新 tasksEvents[],告诉系统那些任务需要执行。
设备初始化:SampleApp_Init
初始化函数主要完成,硬件的初始化,表初始化,上电等 原形: void SampleApp_Init( uint8 task_id )
函数中SampleApp_NwkState = DEV_INIT; 表明设备状态,如果是DEV_INIT,那么它就要去检测整个环 境,看是否能重新建立或者加入存在的网络。
ZigBee协议栈操作系统
TinyOS 操作系统
为了解决缺少系统软件的问题,加州大学的伯利克分校为无线传感器网络专 门开发了 TinyOS(Tiny Micro Threading Operating System)。它是一个开源的 嵌入式操作系统。目前在全世界的范围内,有超过 500 个研究小组或者公司正 在Berkeley/Crossbow的节点上使用TinyOS。它的特点是体积小、结构高度模块 化、基于组件的架构方式、低功耗等,这使得它能够突破传感器节点各种苛刻 的限制,可快速实现各种应用,非常适合无线传感器网络(WSN)的特点和应 用需求,因而被广泛应用于 WSN 中,并成为很多系统的参考设计。
ZigBee协议套件的基本需求
• 8位处理器 • 协议栈简介紧凑 4K-
32k • 网络主节点容纳网络
内所有节点的设备信 息、数据包转发表、 设备关联表、与安全 有关的密钥存储等。
协议栈结构图
ZigBee协议栈软件
ZigBee协议栈软件目录结构
各个目录的含义
APP: 应用层目录,一般就在此目录中创建项目 HAL: 硬件抽象层目录,对硬件的变动需修改该目录的内部文件 MAC: MAC层目录,包含MAC层的参数配置文件和MAC的LIB库
Profile & Cluster
Profile 是对逻辑设备及其接口描述的集合,是面向某个具体应 用类别的公约、准则。
Profile ID 由ZigBee 联盟管理 目前 ZigBee 制定的标准规范只有家庭照明控制灯的规范,其他
规范正在完善
ZigBee绑定(binding)操作
在 ZigBee 协议中定义了一种特殊的操作,叫做绑定(binding) 操作。它能够通过使用 ClusterID 为不同节点上的独立端点建立 一个逻辑上的连接。
模式的定义及地址处理函数。 Tools: 工程配置目录,包含空间划分及Z-Stack相关配置信息。 Zmain: Zmain目录,包含整个项目的入口函数main()。
ZigBee协议栈操作系统
μC/OS-II操作系统
μC/OS-II 操作系统是一种性能优良、源码公开且被广泛应用的免费嵌入式操 作系统[30]。2002 年 7 月,μC/OS-II 在一个航空项目中得到了美国联邦航空管 理局对于商用飞机的、符合 RTCA DO2178B 标准的认证。它是一种结构小巧、 具有可剥夺实时内核的实时操作系统,内核提供任务调度与管理、时间管理、 任务间同步与通信、内存管理和中断服务等功能[31],具有可移植性、可裁减、 可剥夺性、可确定性等特点。
} while (++idx < tasksCnt);
读代码
OSAL的“心跳”
在OSAL的死循环中,各个事件只是在某些特定的情况下发生, 如果OSAL一刻不停去轮询去处理这些应用程序,迟早会累死( 热量,功耗,寿命…),这样做是完全没有必要的。所以这里 就引入了心跳的概念,也就是OS的时钟节奏。
原语的概念
层与层之间的原语一般情况下可以分为 4 种类型: 请求:请求原语从 N1 用户发送到它的 N 层,请求发起一个服
务。 指示:指示原语从 N 层到 N2 用户,指示一个对 N2 用户有重要
意义外部 N层事件。这个事件可能与一个远程的服务请求有关 ,或者由内部事件产生。 响应:响应原语由 N2 用户向它的 N 层传递,用来响应上一个 由指示原语引起的过程。 确认:确认原语由 N 层向 N1 用户传递,用来传递与前面一个 或多个服务请求相关的执行结果。
应用框架中则加入了用户自定义的应用对象。
ZigBee协议栈的不同层与802.15.4MAC通过服务接入点(SAP) 进行通信。SAP是某一特定层提供的服务与上层之间的接口。
协议栈层(APL)
APL是整个协议栈的最高层,包含 应用支持子层(applicationsupportsub-layer,APS) ZigBee 设备对象(ZigBeeDeviceObject,ZDO) 厂商自定义的应用对象。
厂商自定义的应用对象实际上就是运行在 ZigBee 协议 栈上的应用程序。这些应用程序使用ZigBee联盟给出的 并且批准的规范(profile)进行开发并且运行在端点 1240 上。
NWK层
NWK层是协议栈实现的核心层 负责
网络的建立 设备的加入 路由搜索 消息传递
这些功能将通过网络层数据服务访问点 NLDE-SAP 和网络层管理服务访问点 NLME-SAP 向协议栈的应用层 提供相应的服务。
原语的概念
ZigBee 协议按照开放系统互联的 7 层模型将协议分成了一系列的层结 构,各层之间通过相应的服务访问点来提供服务。这样使得处于协议中 的不同层能够根据各自的功能进行独立的运作,从而使整个协议栈的结 构变得清晰明朗。另一方面,由于 ZigBee 协议栈是一个有机的整体, 任何 ZigBee 设备要能够正确无误的工作,就要求协议栈各层之间共同 协作。因此,层与层之间的信息交互就显得十分重要。ZigBee 协议为 了实现层与层之间的关联,采用了称为服务“原语”的操作。
ZigBee协议基本术语
端点(EndPoint) 在ZigBee网络中每个设备都是一个节点,每个节点具有唯一 的一个IEEE地址(64位)和一个网络地址(16位)。 网络中的其他节点发送数据时必须指定目标节点的短地址, 数据才能被接收。 每个节点有241个端点,其中端点0由ZDO层使用,它是不可 缺少的。 端点1~240由应用程序分配使用,在ZigBee网络中应用程序必 须登记注册一个或多个端点,这样才能发送和接收数据。
挪威半导体公司 Chipcon(已经被 TI 公司收购)
ZigBee协议栈操作系统
OSAL
Z-Stack 协议栈中提供了一个名为操作系统抽象层 OSAL 的协议栈调度程序。
OSAL(Operating System Abstraction Layer),翻译为“操作系统抽象层”,OSAL 就是以实现多任务为核心的系统资源管理机制。所以OSAL与标准的操作系统 还是有很大的区别的。简单而言,OSAL实现了类似操作系统的某些功能,但 并不能称之为真正意义上的操作系统。
应用支持子层 APS
APS提供了两个接口 应用支持子层数据实体服务访问点(APSDE-SAP) 应用支持子层管理实体服务访问点(APSME-SAP)
相关主题