一、信息管理API
信息管理为任务间的信息交换或者外部处理事件(例如:中断服务程序或一个控制循环内的函数调用等)提供一种管理机制。包括允许任务分配或不分配信息缓存、发送命令信息到其他任务、接受应答信息等API函数。
二、同步任务API
该API允许一个任务等待某个事件的发生并返回等待期间的控制。该API的功能是为某个任务设置事件,一旦任何一个事件被设置就修改该任务。
三、时间管理API
该API允许定时器被内部(Z-Stack)任务和外部任务使用。该API提供开始和停止一个定时器的功能,这些定时器能用毫秒(ms)设置。
四、中断管理API
这些API是外部中断和任务的接口。这些API函数允许一个任务为每个中断分配指定服务程序。这些中断能被允许或禁止。在服务程序内,可为其他的任务设置事件。
五、任务管理API
该API用在管理OSAL中的任务,包括系统任务和用户自定义任务的创建、管理和信息处理等。
六、内存管理API
该API描绘了简单的存储分配系统。这些函数允许动态存储分配。
七、电源管理API
这里描写了OSAL的电源管理系统。当OSAL安全地关闭接收器与外部硬件并使处理器进入休眠模式时,该系统提供向应用/任务通告该事务的方式。
2.6 ZigBee协议规范分析
IEEE802.15.4标准
随着通信技术的迅速发展,人们提出了在自身附近几米范围内通信的要求,这样就出现了个人区域网络PAN(Personal Area Network)和无线个人区域网络WPAN(Wireless Personal Area Network)的概念。WPAN网络为近距离范围内的设备建立无线连接,把几米到几十米范围内的多个设备通过无线方式连接在一起,使他们可以相互通信甚至接入LAN或者Internet。
2001年8月成立的ZigBee联盟就是一个针对WPAN网络而成立的产业联盟。该联盟致力于近距离、低复杂度、低数据速率、低成本的无线网络技术。他们开发的技术被称为ZigBee技术,该技术希望被部署到商用电子、住宅及建筑自动化、工业设备监测、PC外设、医疗传感设备、玩具以及游戏等其他无线传感和控制领域当中。
ZigBee联盟已于2005年6月27日公布了第一份ZigBee规范“ZigBee Specification
第 11 页 共 107 页
V1.0”。这标准定义了在IEEE 802.15.4-2003物理层和标准媒体接入控制层上的网络层及支持的应用服务。ZigBee联盟的长期目标是能够建立基于互操作平台和配置文件的可伸缩、低成本嵌入式基础架构。
图1-1 IEEE802.15.4/ZigBee协议框架
Figure 1-1. IEEE802.15.4/ZigBee Protocol Framework
1.1.1 IEEE802.15.4协议框架
IEEE802.15.4标准采用分层结构。每一层为上层提供一系列特殊的服务:数据实体提供数据传输服务,管理实体则提供所有其他的服务。所有的服务实体都通过服务接入点SAP(Service Access Point)为上层提供一个接口,每个SAP都支持一定数量的服务原语来实现所需的功能。
IEEE 802.15.4标准堆栈架构是在OSI七层模型的基础上根据市场和应用的实际需要定义了,如图2-1。其中,IEEE 802.15.4标准定义了底层:物理层PHY(Physical Layer)和媒体访问控制子层MAC(Medium Access Control Sub-Layer)层。ZigBee联盟在此基础上定义了网络层NWK(Network Layer),应用层APL(Application Layer)架构。其中应用层包括应用支持子层APS(Application Support Sub-Layer),应用框架AF(Application Framework),ZigBee设备对象ZDO(Zigbee Device Objects)以及用户定义应用对象(Manufacturer-Defined Application Objects )。[16]
IEEE 802.15.4工作在工业科学医疗ISM(Industrial、Scientific and Medical)频段,定义了两个物理层PHY,分别工作在两个频段上:868/915 MHz和2.4GHz。其中低频段物理层覆盖了868MHz的欧洲频段和915MHz的美国与澳大利亚等国的频段。高频段2.4GHz则全球通用。
IEEE 802.15.4 MAC层采用避免冲突多载波信道接入CSMA-CA(Carrier Sense Multiple Access with Collision Avoidance)方式,主要负责传输信标帧,同步以及提供可信赖的传输机制。[17]
1.1.2 网络节点类型
第 12 页 共 107 页
图1-2 ZigBee网络拓扑
Figure 1-2. ZigBee Network Topology
在W-PAN中有三种网络角色:PAN网络协调器、协调器和设备。这三种角色在IEEE 802.15.4规范中分别对应ZigBee协调器ZC(ZigBee Coordinator)、ZigBee路由器ZR(ZigBee Router)和终端设备ZED(ZigBee End Device)。
协调器和路由器只能是全功能器件FFD。一个PAN的网络中,至少要有一个全功能器件成网络的协调器,它可以看作是一个PAN的网关节点(SINK节点),它是网络建立的起点,负责PAN网络的初始化,确定PAN的ID号和PAN操作的物理信道并统筹短地址分配,充当信任中心和储存安全密钥,与其他网络的连接等。协调器在加入网络之后获得一定的短地址空间。这个空间内,他有能力允许其他节点加入网络,并分配短地址。当然协调器还具备路由和数据转发的功能。在任何一个拓扑网络上,所有设备都有一个唯一的64位IEEE长地址,该地址可以在PAN中用于直接通信。或者当所有设备之间都已经存在连接时,可以将其转变为16位的网络短地址分配给PAN设备。因此在设备发起连接时采用的是64位的长地址,只有连接成功后,系统分配了PAN的标志符后,才能采用16位的短地址来通信。路由器可以只运行一个存放有路由协议的精简协议栈,负责网络数据的路由,实现数据中转功能。[19]
在网络中最基本的节点就是终端节点ZED,一个终端节点可以是全功能器件FFD或者是精简功能器件RFD。
1.2.1 IEEE 802.15.4
IEEE802.15.4包括用于低速无线个人域网LR-WPAN的物理层PHY和媒体接入控制层MAC两个规范。图2-4给出了IEEE 802.15.4的分层参考模型。
1.2.1.1 IEEE 802.15.4 PHY层
物理层的作用主要是利用物理介质为数据链路层提供物理连接,负责处理数
第 13 页 共 107 页
据传输率并架空数据出错率,以便透明低传送比特流。Zigbee协议的物理层主要负责以下任务:
(1)启动和关闭RF收发器。 (2)信道能量检测。
(3)对接收到的数据报进行链路质量指示LQI(Link Quality Indication)。 (4)为CSMA/CA算法提供空闲信道评估CCA(Clear Channel Assessment)。 (5)对通信信道频率进行选择。 (6)数据包的传输和接收
IEEE 802.15.4的物理层定义了物理信道和MAC子层间的接口,提供数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据,物理层管理服务维护一个物理层相关数据组成的数据库。
1.2.1.2 IEEE 802.15.4 MAC层
IEEE 802.15.4媒体介入控制层的沿用了传统无线局域网中的带冲突避免的载波多路侦听访问技术CSMA/CA方式,以提高系统的兼容性。这种设计,不但使多种拓扑结构网络的应用变得简单,还可以实现非常有效的功耗管理。
MAC层完成的具体任务如下:
(1)协调器产生并发送信标帧(Beacon)。
(2)普通设备根据协调器的信标帧与协调器同步。
(3)支持PAN网络的关联(Association)和取消关联(Disassociation)操作。 (4)为设备的安全性提供支持。
(5)使用CSMA-CA机制共享物理信道。
(6)处理和维护时隙保障GTS(Guaranteed Time Slot)机制。 (7)在两个对等的MAC实体之间提供一个可靠的数据链路。
在IEEE 802.15.4的MAC层中引入了超帧结构和信标帧的概念。这两个概念的引入极大了方便了网络管理,我们可以选用以超帧为周期组织LR-WPAN网络内设备间的通信。每个超帧都以网络协调器发出信标帧为始,在这个信标帧中包含了超帧将持续的时间以及对这段时间的分配等信息。网络中的普通设备接收到超帧开始时的信标帧后,就可以根据其中的内容安排自己的任务,例如进入休眠状态直到这个超帧结束。
MAC子层提供两种服务:MAC层数据服务和MAC层管理服务(MAC sub-layer management entity,MLME)。前者保证MAC协议数据单元在物理层数据服务中正确收发,后者维护一个存储MAC子层协议相关信息的数据库[20]。
1.3 ZigBee协议分析
1.3.1 ZigBee协议
Zigbee的协议栈结构是由一系列称为层的协议块所组成的。每个层为上一层提供一系列特定的服务。数据入口提供数据传输的服务,管理入口提供其余的所有服务。每个服务接
第 14 页 共 107 页
口都通过SAP(Service Access Point)接口与上一层进行数据交换,每个SAP都支持一系列的服务原语。
Zigbee协议栈是基于OSI(Open Systems Interconnection)标准的,但只定义了所需要的那些层。主要由物理层PHY,媒体接入层MAC,网络层以及应用框架层组成,框架图如图所示。其中,PHY层和MAC层采用了IEEE 802.15.4协议标准。
ZigBee网络层主要用于Zigbee的无线个人区域网WPAN网的组网连接,数据管理以及网络安全等。
ZigBee应用框架层主要为Zigbee技术的实际应用提供一些应用框架模型等,以便对Zigbee技术的开发应用,在不同的应用场合,其开发应用框架不同,从目前来看,不同厂商提供的应用框架是有差异的。
1.3.2 ZigBee网络层
网络层需要在功能上保证与IEEE 802.15.4标准兼容,同时也需要上层提供合适的功能接口。
对于网络层,其完成和提供的主要功能如下[22]:
(1)产生网络层的数据包:当网络层接受到来自应用子层的数据包,网络层对数据包进行解析,然后加上适当的网络层包头向MAC传输。
(2)网络拓扑的路由功能:网络层提供路由数据包的功能,如果包的目的节点是本节点的话,将该数据包向应用子层发送。如果不是,则将该数据包转发给路由表中下一结点。
(3)配置新的器件参数:网络层能够配置合适的协议,比如建立新的协调器并发起建立网络或者加入一个已有的网络。
(4)建立PAN网络
(5)连入或脱离PAN网络:网络层能提供加入或脱离网络的功能,如果节点是协调器或者是路由器,还可以要求子节点脱离网络。
(6)分配网络地址:如果本节点是协调器或者是路由器,则接入该节点的字节点的网络地址由网络层控制。
(7)邻居节点的发现:网络层能发现维护网络邻居信息。 (8)建立路由:网络层提供路由功能。
(9)控制接收:网络层能控制接收器的接受时间和状态。
Zigbee网络层的结构如图2-8所示:
为了向应用层提供接口,网络层提供了两个功能服务实体,分别为数据服务实体NLDE和管理服务实体NLME。NLDE通过NLDE-SAP为应用层提供数据传输服务,NLME通过NLME-SAP为应用层提供网络管理服务,并且,NLME还完成对网络信息库NIB的维护和管理。
1.3.3 ZigBee应用层
Zigbee应用层包括应用支持子层APS、应用框架AF、Zigbee设备对象ZDO。它们共同为各应用开发者提供统一的接口。
1.3.3.1 应用支持子层APS
第 15 页 共 107 页