Zigbee协议栈原理基础

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载

Zigbee协议栈原理基础

甲方:___________________

乙方:___________________

日期:___________________

IZigbee协议栈相关概念

i.i近距离通信技术比较:

近距离无线通信技术有wifi、蓝牙、红外、zigbee,在无线传感网络中需求的网络通信恰是近距离需求的,故,四者均可用做无线传感网络的通信技术。而,其中(1)红外(infrared ):能够包含的信息过少;频率低波衍射性不好只

能视距通信;要求位置固定;点对点传输无法组网。(2)蓝牙(bluetooth ):可移动,手机支持;通信距离10m;芯片价格贵;高功耗(3) wifi :高带宽;覆盖半径100m ;高功耗;不能自组网;(4) zigbee:价格便宜;低功耗;自组网规模大。

WSN中zigbee通信技术是最佳方案,但它连接公网需要有专门的网关转换进一步学习stm32。

1.2协议栈

协议栈是网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。

1.2.1Zigbee协议规范与zigbee协议栈

Zigbee各层协议中物理层(phy)、介质控制层(mac)规范由IEEE802.15.4规定,网络层(NWK)、应用层(apl)规范由zigbee 联盟推出。Zigbee 联盟推出的整套zigbee 规范:2005 年第一版ZigBeeSpecificationV1.0 , zigbee2006, zigbee2007、zigbeepro zigbee协议栈:很多公司都有自主研发的协议栈,如TI公司的:RemoTI, Z-Stack, SimpliciTI、freakz、msstatePAN 等。

1.2.2z-stack协议栈与zigbee协议栈

z-stack协议栈与zigbee协议栈的关系:z-stack是zigbee协议栈的一种具体实现,或者说是TI公司读懂了zigbee 协议栈,自己用C语言编写了一个软件一---z-stack,是由全球几千名工程师共同开发的。ZStack-CC2530-2.3.1-1.4.0软件可与TI的SmartRF05平台协同工作,该平台包括MSP430超低功耗微控制器(MCU)、CC2520RF收发器以及CC2591 距离扩展器,通信连接距离可达数公里。

Z-Stack中的很多关键的代码是以库文件的形式给出来,也就是我们只能用它们,而看不到它们的具体的实现。其中核心部分的代码都是编译好的,以库文件的形式给出的,比如安全模块,路由模块,和Mesh自组网模块。与z-stack

相比msstatePAN、freakz协议栈都是全部真正的开源的,它们的所有源代码我们都可以看到。但是由于它们没有大的商业公司的支持,开发升级方面,性能方面和z-stack相比差距很大,并没有实现商业应用,只是作为学术研究而已。

还可以配备TI的一个标准兼容或专有的网络协议栈(RemoTI, Z-StacK或SimpliciTI)来简化开发,当网络节点要求不多在30个以内,通信距离500m-1000m时用simpliciti。

1.2.3IEEE802.15.堀准概述

IEEE802.15.4 是一个低速率无线个人局域网(LowRateWirelessPersonalAreaNetworks , LR-WPAN标准。定义了物理层(PHY刖介质访问控制层(MAC)。

LR-WPAN网络具有如下特点:

♦实现250kb/s , 40kb/s , 20kb/s三种传输速率。

♦支持星型或者点对点两种网络拓扑结构。

♦具有16位短地址或者64位扩展地址。

♦支持冲突避免载波多路侦听技术(carriersensemultipleaccesswithcollisionavoidance , CSMA/CA)。(mac层)♦用于可靠传输的全应答协议。(RTS-CTS)

♦低功耗。

♦能量检测(EnergyDetection , ED)。

♦链路质量指示(LinkQualityIndication , LQI)。

♦在2.45GHz 频带内定义了 16个通道;在915MHz 频带内定义了 10个通道;在868MHz 频带内定义了 1个通道。 为了使供应商能够提供最低可能功耗的设备, IEEE (InstituteofElectricalandElectronicsEngineers ,电气及电子工程师

学会)定义了两种不同类型的设备:一种是完整功能设备

(full . functionaldevice , FFD ),另一种是简化功能设备

(reduced . functionaldevice , RFD )。

1.2.4ZigBee 协议体系结构

IEEE802.15.4定义物理层、介质访问控制层

ZigBee 联盟定义网络层(networklayer , NWK )、应用层(applicationlayer , APL )。

应用层内定义:应用支持子层

(applicationsupportsub — layer, APS ) ZigBee 设备对象(ZigBeeDeviceObject, ZDO )

(端点号0)、应用框架中用户自定义应用对象(端点号 1-240,可以定义0-240个应用)。

每一层为其上层提供特定的服务

--数据服务实体

数据传输服务;管理实体提供

管理服务。每个服务实体通过

相应的服务接入点(SAP )为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。

心蜒m 定

血螭协议体系结构

PV-SAF )

飞 PLHE-5AF : I 、 _ J

X _________ J

|

物理度(PIR)

1.2.4.1物理层:

物理层定义了物理无线信道和

MAC 子层之间的接口 , 1) ZigBee 的激活; 2) 当前信道的能量检测; 3) 接收链路服务质量信息; 4) Z igBee 信道接入方式; 5) 信道频率选择;

(MLDt-SAP 丁

( MDE-SAP -

鼻体介扇访阿展〔邮)

IEEE 802. 1$. 4 第定

提供物理层数据服务和物理层管理服务。具体内容:

6)数据传输和接收。

1.2.4.2介质接入控制子层(MAC)

MAC层负责处理所有的物理无线信道访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。具体功能:

1)网络协调器产生信标;

2)与信标同步;

3)支持PAN(个域网)链路的建立和断开;

4)为设备的安全性提供支持(加密解密功能);

5)信道接入方式采用免冲突载波检测多址接入(CSMA-CA机机制;

6)处理和维护保护时隙(GTS凯制;

7)在两个对等的MAC实体之间提供一个可靠的通信链路。

1.2.4.3 网络层(NWKO

ZigBee协议栈的核心部分在网络层。网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能。具体功能:

1)网络发现;(路由器、终端)

2)网络形成;(协调器)

3)允许设备连接;

4)路由器初始化;

5)设备同网络连接;

6)直接将设备同网络连接;

7)断开网络连接;

8)重新复位设备;

9)接收机同步;

10)信息库维护。

1.2.4.4 应用层(APD

应用层包括:应用支持层(APS> ZigBee设备对象(ZDO)、制造商所定义的应用对象(AF)。

(1) APS功能:维持绑定表、在绑定的设备之间传送消息。

(2) ZDO功能:定义设备在网络中的角色(如物理实体节点被定义为协调器、路由器还是终端设备),发起和响应绑定请求,

在网络设备之间建立安全机制(加解密),发现网络中的设备并且决定向他们提供何种应用服务。

ZDO使用APS层的APSDE-SAP^网络层的NLME-SAP ZDO是特殊的应用对象,它在端点(entire)0上实现。

远程设备通过ZDO请求描述符信息,接收到这些请求时,ZDO会调用配置对象获取相应描述符值(eg

备什么时候出厂的、需不需要电池、传输距离多少、使用什么规范)。

(3) AF (应用程序框架):用户自定义的应用对象,并且遵循规范( profile )运行在端点1~240上。在ZigBee应用中,提供2种标准服务类型:键值对(KVP)或报文(MSG)。

2ZigBee基本概念

2.1设备类型

三种逻辑设备类型:协调器、路由器、终端设备。

协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器(或者消失goaway)。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。

路由器一直活跃,须使用主电源供电。但当树状拓扑结构时,允许其间隔一定的周期操作一次,可使用电池。

终端设备没有特定的维持网络结构的责任,可以睡眠或者唤醒,可用电池供电。对存储空间(特别是RAM的需

要)比较小。

2.2协议规范

协议栈规范由ZigBee联盟定义指定。在同一个网络中的设备必须符合同一个协议栈规范(同一个网络中所有设备

的协议栈规范必须一致)。

ZigBee联盟为ZigBee协议栈2007定义了2个规范:ZigBee和ZigBeePRQ所有的设备只要遵循该规范,即使在不同厂商买的不同设备同样可以形成网络。

如果应用开发者改变了规范,那么他的产品将不能与遵循ZigBee联盟定义规范的产品组成网络,也就是说该开发者开发的产品具有特殊性,我们称之为“关闭的网络”,也就是说它的设备只有在自己的产品中使用,不能与其他产品

通信。更改后的规范可以称之为“特定网络”规范。

协议栈规范的ID号可以通过查询设备发送的beacon帧获得。在设备加入网络之前,首先需要确认协议栈规范的

ID。“特定网络”规范ID号为0; ZigBee协议栈规范的ID号为1; ZigBeePRO协议栈规范的ID号为2。协议栈规范的ID

( STACK_PROFILE_ID在nwk_globals.h 中定义:

#defineNETWORK_SPECIFIC0

#defineHOME_CONTROLS1//zigbee首先应用于智能家居,故直接把zigbee协议栈规范定义为home_control

#defineZIGBEEPRO_PROFILE2

#defineGENERIC_STAR3

#defineGENERIC_TREE4

#ifdefined(ZIGBEEPRO)

#defineSTACK_PROFILE_IDZIGBEEPRO_PROFILE

#else

#defineSTACK_PROFILE_IDHOME_CONTROLS

#endif

2.3拓扑结构

星型、树状、网状

#defineNWK_MODE_STAR0

#defineNWK_MODE_TREE1

#defineNWK_MODE_MESH2

#if(STACK_PROFILE_ID==ZIGBEEPRO_PROFILE)

#defineNWK_MODENWK_MODE_MESH

#elif(STACK_PROFILE_ID==HOME_CONTROLS)

#defineNWK_MODENWK_MODE_MESH

#elif(STACK_PROFILE_ID==GENERIC_STAR)

#defineNWK_MODENWK_MODE_STAR

#elif(STACK_PROFILE_ID==NETWORK_SPECIFIC)

#defineNWK_MODENWK_MODE_MESH

#endif

一般拓扑结构定义为网状网络

2.4信标与非信标模式

Zigbee网络的工作模式可以分为信标(Beaeon)和非信标(Non-beaeon )两种模式。信标:所有设备同步工作、休眠。

协调器负责以一定的间隔时间(一般在15ms-4mins之间)向网络广播信标帧,两个信标帧发送间隔之间

有16个相同的时槽,这些时槽分为网络休眠区和网络活动区两个部分,消息只能在网络活动区的各时槽内发送。

非信标:终端可休眠,路由器、协调器一直工作。

父节点为终端缓存数据,终端主动向父节点提取数据,故,终端大多处于休眠状态,周期性醒来与父节点握手以确认自己仍处于

网络中,醒来一般需要15mso

实际使用中非信标模式使用更多,因为路由器、协调器往往还要担任一些其他功能,且常常加入功放扩大传输距

离,一般加主电源供电。

2.5地址

两种地址:64位IEEE地址,即MAC地址,16位网络地址(协调器网络地址为0x00)。

#defineNWK_PAN_COORD_ADDR0x0000

2.5.1网络地址分配

分布式寻址方案:ZigBee2006、ZigBee2007使用分布式寻址方案来分配网络地址,保证唯一。

设备只能从父设备接受网络地址,不需要全网通讯分配,有助于测量。

随机地址分配机制:ZigBee2007PRO采用。

新节点加入时,父节点为其随机分配地址,然后产生“设备声明”(包含分配到的网络地址和IEEE地址)发送至

网络。若有冲突,则通过路由器广播“网络状态-地址冲突”至网络中的所有节点。所有发生冲突的节点更改自己的网

络地址,然后再发起“设备声明”直到无冲突。

在每个路由加入网络之前,寻址方案需要知道和配置一些参数:MAX_DEPTH(最大网络深度)、MAX_ROUTERS最

多路由数)和MAX_CHILDREN (最多子节点数)。这些参数是栈配置的一部分,ZigBee2007协议栈已经规定了这些参数

的值:

如果要改动,首先要确保整个地址空间不能超过216,这就限制了参数能够设置的最大值。可以使用

projects\ZStack\tools文件夹下的CSkip.xls文件来确认这些值是否合法。当在表格中输入了这些数据后,如果你的数据不合法的话就会出现错误信息。

当选择了合法的数据后,开发人员还要保证不再使用标准的栈配置,取而代之的是网络自定义栈配置(例如:在

nwk_globals.h 文件中将STACK_PROFILE_I改为NETWORK_SPECIFIC)

然后nwk_globals.h文件中的MAX_DEPTH参数将被设置为合适的值。

此外,还必须设置nwk_globals.c文件中的Cskipchldrn数组和CskipRtrs数组。这些数组的值由MAX_CHILDREN和

MAX_ROUTER 构成。

2.5.2寻址

应用程序通常使用AF_DataRequest()函数发送数据,给一个afAddrType_t(在ZComDef.h中定义)类型的目标设备。

typed ef struct

{

union

f I

uirU16 shortAddn ZLongAddrj extAddr;

} addr:

afAddrMode t addrMode;

byte endPoint;

uml16 panld; 〃 used for the INTER_PAN feature

} mfAdd「Type t;

目标设备网络地址

(1) 单点传送(Unicast):发给已知网

络地址的网络设备。将afAddrMode设置为Addr16Bit并且在数据包中携带目标设备地址。

(2) 间接传送(Indirect):应用程序不知道目标设备位置时。将模式设置为AddrNotPresent ,目标地址没有指

定,而是从发送设备的栈的绑定表中查找目标设备。这种特点称之为源绑定。数据到达栈中后,从绑定

表中查找并使用目标设备地址,这样,数据包将被处理成为一个标准的单点传送数据包。如果在绑定表中找到多个设备,则向

每个设备都发送一个数据包的拷贝。【ZigBee2004中有一个选项可以讲绑定表保存

在协调器(Coordinator)当中。发送设备将数据包发送给协调器,协调器查找它栈中的绑定表,然后将数据

发送给最终的目标设备。这个附加的特性叫做协调器绑定(CoordinatorBinding)。2004中绑定表只能在协

调器,2006和2007中可以将绑定表放在任意节点】

(3) 广播传送(broadcast):应用程序将数据包发给每一个设备。地址模式设置为AddrBroadcast。目标地址

可以设置为下面广播地址的一种:NWK_BROADCAST_SHORTADDR_DEVALL(0xFFFF)发给所有设

备,包括睡眠中的设备。对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超

时(NWK_INDIRECT_MSG_TIMEOU雁f8wConifg.cfg 中)。

NWK_BROADCAST_SHORTADDR_DEVRXON(0xFF 吟发给所有除睡眠之外的所有设备。

NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC发给所有路由器、协调器。

(4) 组寻址(GroupAddressing):发送给网络上的一组设备。地址模式设置为afAddrGroup并且

addr.shortAddr设置为组ID。使用这个功能,必须先定义组。(参见Z-stackAPI文档中的aps_AddGroup()

函数)。

2.5.3 重要设备地址(ImportantDeviceAddresses)

应用程序可能需要知道它的设备地址和父亲地址。使用下面的函数获取设备地址(在ZStackAPI中定义):

NLME_GetShortAddr()——返回本设备的16位网络地址

NLME_GetExtAddr()——返回本设备的64位扩展地址

使用下面的函数获取该设备的父亲设备的地址:

NLME_GetCoordShortAddr()——返回本设备的父亲设备的16位网络地址

NLME_GetCoordExtAddr() ——返回本设备的父亲设备的64位扩展地址

2.6zigbee 术语

一个节点:一个射频收发器、多个设备(最常见的为仅一个) ,

一个设备中包含端点 0 (ZDO),端点1-端点240 一个端点中包含群集(按功能分为输入群集、输出群集) 一个群集中包含多个属性

(1) 属性Attribute :是一个反映物理数量或状态的数据值,比如开关值( On/Off),温度值、百分比等。 (2)

群集Cluster :是包含一个或多个属性(attribute )的集合。每个群集都被分配一个唯一的群集 ID 且每个

群集最多有65536个属性。

(3) 端点EndPoint :是协议栈应用层的入口,也可以理解应用对象( Applicationobject )存在的地方,它是为 实现一个设备描述而定义的一组群集。

每个ZigBee 设备可以最多支持240这样的端点,这也意味着在每

个设备上可以定义 240个应用对象。端点 0被保留用于与 ZDO 接口,这是每个 ZigBee 设备必须使用的 端点,而端点255被保留用于广播,端点 241-254则被保留用于将来做扩展使用

(4) 设备描述 DeviceDescription :是指一个大型目标应用的一部分,包括一个或多个群集,并且指定群集是 输入还是输出。描述符有:节点描述符、电源描述符、简单描述符、端点描述符

诜应描企若:

struct

(

endTant. byte

'ta 虬id;

SimplsDuscjip

3”,祖HENELate }

8nd 3cinlEeac_

tl Pointer to locatton of the Appibcstton task ID L orFornialt_t

ncyReq_l

-

r

b 网

EndPoint ulntlS Ap 驴 rofld; ulntTG ^□Deviojld; b 网

AppDevVer :4;

&颈 vud 4

11 AF_V 1_SUProRT For AppFlaQfiA

by 宙 AppNumfnC us.lers. ddU

*pAppl n Cluster List. AppNu mOutClustiafs..

*pAppOulC lusterLi 就

} Simplrf] ftscripkerForrnat t.

(5)

节点Node:也可以理解为一个容器,包含一组 ZigBee 设备,分享一个无

线信道。每个节点有且只有一个

无线信道使用。

2.7绑定

通过使用ClusterlD 为不同节点上的独立端点建立一个逻辑上的连接

要实现绑定操作,端点必须向协调器发送绑定请求,协调器在有限的时间间隔内接收到两个端点的绑定请求 后,便通过建立端点之间的绑定表在这两个不同的端点之间形成了一个逻辑链路。

因此,在绑定后的两个端点之间进行消息传送的过程属于消息的间接传送。其中一个端点首先会将信息发送到 ZigBee 协调器中,ZigBee 协调器在接收到消息后会通过查找绑定表,将消息发送到与这个端点相绑定的所有端点 中,从而实现了绑定端点之间的间接通信。

也可以不在协调器中建立绑定表,而在任意一个路由器中建立。

2.8路由

Zstack 协议栈的路由代码我们不需要写,也无法写(已被封装) 。整个路由功能如何实现的需要了解,有助于对

zigbee 协议栈进行整体的把握。

zigbee路由还能够自愈网络,如果某个无线连接断开了,路由功能又能自动寻找一条新的路径避开那个断开的网络连接。这就极大的提高了网络的可靠性,同时也是ZigBee网络的一个关键特性。

2.8.1 路由协议(Routing Protocol

ZigBee执行基于用于AODV专用网络的路由协议。简化后用于传感器网络。ZigBee路由议有助于网络环境有能

力支持移动节点,连接失败和数据包丢失。

当路由器从他自身的应用程序或者别的设备那里收到一个单点发送的数据包,则网络层NWK Layer)根据一下程序

将它继续传递下去。如果目标节点是它相邻路由器中的一个,则数据包直接被传送给目标设备。否则,路由器将要检索它的路由表中与所要传送的数据包的目标地址相符合的记录。如果存在与目标地址相符合的活动路由记录,则数据包将被发送到存储在记录中的下一级地址中去。如果没有发现任何相关的路由记录,则路由器发起路径寻找,数据包存储在缓冲区中知道路径寻找结束。

ZigBee终端节点不执行任何路由功能。终端节点要向任何一个设备传送数据包,它只需简单的将数据向上发送给它的父亲设备,由它的父亲设备以它自己的名义执行路由。同样的,任何一个设备要给终端节点发送数据,发起路由寻找,终端节的的父亲节点都已它的名义来回应。

注意ZigBee地址分配方案使得对于任何一个目标设备,根据它的地址都可以得到一条路径。在Z-Stack中,如

果万一正常的路径寻找过程不能启动的话(通常由于缺少路由表空间),那么Z-Stack拥有自动回退机制。

此外,在Z-Stack中,执行的路由已经优化了路由表记录。通常,每一个目标设备都需要一条路由表记录。但是,

通过把一定父亲节点记录与其子所有子结点的记录合并,这样既可以优化路径也可以不丧失任何功能。

ZigBee路由器,包括协调器执行下面的路由函数:

(i) 路径发现和选择;

(ii) 路径保持维护;

(iii) 路径期满。

2.8.2 路径的发现和选择(Route Discovery and Selection)

路径发现是网络设备凭借网络相互协作发现和建立路径的一个过程。路由发现可以由任意一个路由设备发起,并且对于某个特定的目标

设备一直执行。路径发现机制寻找源地址和目标地址之间的所有路径,并且试图选择可能的最好的路径。

路径选择就是选择出可能的最小成本的路径。每一个结点通常持有跟它所有邻接点的“连接成本(link costs) 通

常,连接成本的典型函数是接收到的信号的强度。沿着路径,求出所有连接的连接成本总和,便可以得到整个路径的

“路径成本"。路由算法试图寻找到拥有最小路径成本的路径。

路径通过一系列的请求和回复数据包被发现。源设备通过向它的所有邻接节点广播一个路由请求数据包,来请求

一个目标地址的路径。当一个节点接收到RREQ数据包,它依次转发REQ数据包。但是在转发之前,它要加上最新的连接成本,然后

更新RREQ数据包中的成本值。这样,沿着所有它通过的连接,RREQ数据包携带着连接成本的总和。这个过程一直持续到RREQ数据

包到达目标设备。通过不同的路由器,许多RREQ副本都将到达目标设备。目标设备选择最好的RREQ数据包,然后发回一个路径答复

数据包(a Route Reply)RREP合源设备.RREP数据包是一个单点发送数据包,它沿着中间节点的相反路径传送直到它到达原来发送请求

的节点为止。

一旦一条路径被创建,数据包就可以发送了。当一个结点与它的下一级相邻节点失去了连接(当它发送数据时,没

有收到MAC ACK),该节点向所有等待接收它的RREQ数据包的节点发送一个RERR数据包,将它的路径设为无效。各个结点根据收到

的数据包RREQ RREP或者RERR来更新它的路由表。

2.8.3 路径保持维护(Route maintenance)

网状网提供路径维护和网络自愈功能。中间节点沿着连接跟踪传送失败,如果一个连接被认定是坏链,那么上游节点将针对所有使用这

条连接的路径启动路径修复。节点发起重新发现直到下一次数据包到达该节点,标志路径修复完成。如果不能够启动路径发现或者由于某种

原因失败了,节点则向数据包的源节点发送一个路径错误包(RERR)它

将负责启动新路径的发现。这两种方法,路径都自动重建。

2.8.4 路径期满(Route expiry)

路由表为已经建立连接路径的节点维护路径记录。如果在一定的时间周期内,没有数据通过沿着这条路径发送,这条路径将被表示为期满。期满的路径一直保留到它所占用的空间要被使用为止。这样,路径在绝对不使用之前不会被删除掉的。

在配置文件f8wConfig.cfg文件中配置自动路径期满时间。设置ROUTE_EXPIRY_TIME^J期满时间,单位为秒。如果设置为0,则

表示关闭自动期满功能。

2.9zigbee 原语

ZigBee协议按照开放系统互联的7层模型将协议分成了一系列的层结构,各层之间通过相应的服务访问点来提供服务。这样使得处于

协议中的不同层能够根据各自的功能进行独立的运作,从而使整个协议栈的结构变得清晰明朗。

另一方面,由于ZigBee协议栈是一个有机的整体,任何ZigBee设备要能够正确无误的工作,就要求协议栈各层之间共同协作。因此,

层与层之问的信息交互就显得十分重要。ZigBee协议为了实现层与层之间的关联,采用了称为服务

“原语"的操作。利用下图来说明原语操作的概念。

服务阿户

请求—

偷认 --------

3Z-Stack 协议栈总

体设计

Chipcon 公司为自己设计的

Z-Stack 协议栈中提供了一个名为操作系统抽象层

户来说,除了能够看到这个调度程序外,其它任何协议栈操作的具体实现细节都被封装在库代码中。用户在进行具体 的应用开发时只能够通过调用

API 接口来进行,而无权知道 Zig,Bee 协议栈实现的具体细节。(即物理层、mac 层、网

络层封装到库函数中,无法查看;应用层的

aps 、zdo 代码完全开源)

Z-Stack 由main ()函数开始执行,

main ()函数共做了 2件事:一是系统初始化,一是轮转查询式操作系统,

如下图所示:

Osal 初始化完成后,一经进入操作系统则永远无休止执行下去,除非板子坏掉

服多提供肴

(N^hyor)

服务用户

(N2-Ufl«r|

----- 指示 I ------------ 瞄

服务由N 用户和N 层之问信息流的描述来指定。这个信息流由离散瞬时事件构成,以提供服务的特征。每个事 件由服务原语组成,它将在一个用户的某一 同层之 问传送。层与层之间的原语一般情况下可以分为 4种类型: ♦请求:请求原语从 NI 用户发送到它的 N 层,请求发起一个服务。

♦指示:指示原语从 N 层到N2用户,指示一个对 N2用户有重要意义外部 远程的服务请求有关,或者由内部事件产生。 ♦响应:响应原语由 N2用户向它的 N 层传递,用来响应上一个由指示原语引 ♦确认:确认原语由 N 层向Nl 用户传递,用来传递与前面一个或多个服务请

层,通过与该层相关联的层服务访问

A(SAP 与建立对等连接的用户的相

N 层事件。这个事件可能与一个

起的过程。 求相关的执行结果。

OSAL 的协议栈调度程序。对于用

3.1osal初始化:--------------------------------------- void osalInitTasks( void )

(

uint8 taskID = 0;

tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);

osal_memset( tasksEvents, 0, (sizeof( uint16 )

* tasksCnt));

macTaskInit( taskID++ );

nwk_init( taskID++ );

Hal_Init( taskID++ );

#if defined( MT_TASK )// 通过串口调试的一个任务

MT_TaskInit( taskID++ );

#endif

APS_Init( taskID++ );

#if defined ( ZIGBEE_FRAGMENTATION )// 如果定义了数据分割的分包,则执行分包初始化

APSF_Init( taskID++);

#endif

ZDApp_Init( taskID++ );

#if defined ( ZIGBEE_FREQ_AGILITY || defined (ZIGBEE_PANID_CONFLICT )放口果定义了调频初始化,和

个域网id冲突初始化,则执行网络管理层初始化

3.2任务调度

ZigBee协议栈中的每一层都有很多原语操作要执行,因此对于整个协议栈来说,就会有很多并发操作要执行。协议栈中的每一层都设计了一个事件处理函数,用来处理与这一层操作相关的各种事件。将这些事件处理函数看成是与协议栈每一层相对应的任务,由ZigBee协议栈中调度程序OSAL来进行管理。这样,对于协议栈来说,无论何时发

生了何种事件,我们都可以通过调度协议栈相应层的任务,即事件处理函数来进行处理。这样,整个协议栈便会按照

时间顺序有条不紊的运行。

ZigBee协议栈的实时性要求并不高,因此在设计任务调度程序时,OSAL只采用了轮询任务调度队列的方法来进

行任务调度管理

任务列表:

任务调度主循环

设置事情发生标志

当协议栈中有任何事件发生时,我们可以通过设路event_flag来标记有事件发生,以便主循环函数能够及时加以处理。其函数说明如下:3.3时间管理

假设A事件发生后要求10秒之后执行,B事件在A事件发生1秒后产生,且B事件要求5秒后执行。为了按照合理的时间顺序来处理不同

事件的执行,这就需要对各种不同的事件进行时间管理。OSAL调度程序设计了与时

间管理相关的函数,用来管理各种不同的要被处理的事件。

对事件进行时间管理,OSAL也采用了链表的方式进行,每当发生一个要被处理的事件后,就启动一个逻辑上的

定时器,并将此定时器添加到链表之中。利用硬件定时器作为时间操作的基本单元。设路时间操作的最小精度为1ms,

每lms硬件定时器便产生一个时间中断,在时间中断处理程序中去更新定时器链表。每次更新,就将链表中的每一项

时间计数减l,如果发现定时器链表中有某一表项时间计数已经减到0,则将这个定时器从链表中删除,并设路相应

的事件标志。这样任务调度程序便可以根据事件标志进行相应的事件处理。根据这种思路,来自协议栈中的任何事件都可以按照时间顺序得到处理。从而提高了协议栈设计的灵活性。

在设计过程中需要经常使用这样一个时间管理函数,其函数说明如下:

3.4原语通信

请求(Request)、响应(Response)原语分别由协议栈中处于较高位谿的层向较低层发起;可直接使用函数调用实现确认(Confirm) >指示(Indication)原语则从较低层向较高层返回结果或信息;需要间接处理的机制来完成。

在设计与请求、响应原语操作相对应的函数时,一旦调用了下层相关函数后,就立即返回。下层处理函数在操作结束后,将结果以消息的形式发送到上层并产生一个系统事件,调度程序发现这个事件后就会调用相应的事件处理函数对它进行处理。OSA L调度程序设计了两个相关的函数来完成这个过程。

3.4.1向目标任务发送消息的函数

这个函数主要用来将原语操作的结果以消息的形式向上层任务发送,并产生一个系统事件来通知调度程序。其函数说明如下:

uintfi a&al_msg_5iafic!( uintfi ds^linaticn^Lask, uinl8 *msg_plr )

{

if ( msgLPtr == NULL )

relum (INVALID MSG POINTER);

rf ( destination J ask >= tasksCnt)

{

Mal_nns g_d ea I loc rrsg_plr):

return ( INVALID_TASK );

il Check the message header

if ( OSAL_MSG_NEXT( tri5

npgg Ptr X

3.4.2消息提取函数

这个函数用来从内存空间中提取相应的消息

uin(8 'osal_rrsg_receive( umt8 taskjd )

( - -

os8l_msg_hdr_l •listHdr;

osal_msg_hdr_l e prevHdr = NULL;

osal_msg_hdrj •foundHdr = NULL; hallntSta te_t intState;

II Hold off interrupts

HAL_ENTER_CRITICAL_SECTION(mlSlale);

II Point to the top of the queue listHdr = osal_qHoad;

II Look through the queue for a message that belongs to the asking task while (listHdr !• NULL ) (

if ((listHdr - 1 )->destJd == taskjd )

( - -

if (fcxjndHdr == NULL )

(

IJ Save the first one

found Hdr = listHdr

zigbee 协议栈

zigbee 协议栈 Zigbee 协议栈。 Zigbee 是一种无线通信协议,它被设计用于低数据速率、低功耗的应用场景,如智能家居、工业自动化、传感器网络等。Zigbee 协议栈是指在 Zigbee 网络中的协议层,它定义了 Zigbee 网络中各个节点之间的通信规则和协议。 Zigbee 协议栈主要包括物理层、MAC 层、网络层和应用层。物理层定义了无线通信的调制解调方式、频率和功率控制等;MAC 层负责数据的传输和接收,以及网络中节点的管理;网络层则负责路由和数据包转发;应用层则定义了具体的应用协议和数据格式。 在 Zigbee 协议栈中,物理层使用了 IEEE 802.15.4 标准,它定义了无线通信的物理层和 MAC 层规范,包括频率、调制方式、数据帧格式等。MAC 层定义了数据的传输方式,包括信道访问方式、数据帧格式、数据重传机制等。网络层则定义了路由协议和数据包转发规则,以实现多跳网络的数据传输。应用层则定义了具体的应用协议,如 Zigbee Home Automation(ZHA)、Zigbee Light Link(ZLL)等。 Zigbee 协议栈的设计遵循了低功耗、低成本、可靠性和安全性的原则。它采用了分层的设计,使得各个层之间的功能清晰明了,易于实现和维护。同时,Zigbee 协议栈还支持多种网络拓扑结构,包括星型、网状和混合型网络,以满足不同应用场景的需求。 在实际的应用中,开发人员可以使用 Zigbee 协议栈来快速构建 Zigbee 网络应用。通过使用 Zigbee 协议栈,开发人员可以方便地实现节点之间的数据通信、网络管理和安全保护,从而加速产品的开发周期和降低开发成本。 总的来说,Zigbee 协议栈是 Zigbee 网络中的核心部分,它定义了 Zigbee 网络中节点之间的通信规则和协议。通过使用 Zigbee 协议栈,开发人员可以快速构建

zigbee通信协议

Zigbee通信协议 1. 概述 Zigbee是一种低功耗、低数据速率的无线通信协议,用于物联网设备之间的通信。它基于IEEE 802.15.4标准,适用于各种不同的应用领域,如智能家居、工业 自动化和智能农业等。 2. Zigbee网络拓扑结构 Zigbee网络采用了星型和网状拓扑结构。在星型拓扑结构中,设备直接连接到 一个中心节点,而在网状拓扑结构中,设备可以直接连接到其他设备,从而形成一个多层次的网络。 3. Zigbee网络协议栈 Zigbee网络协议栈由物理层、MAC层、网络层和应用层组成。 •物理层:负责无线信号的传输和接收,定义了无线通信的频率、数据速率和功耗等参数。 •MAC层:提供对物理层的抽象,负责设备之间的无线通信和网络管理。 •网络层:负责设备之间的路由选择和数据包转发。 •应用层:提供各种应用程序所需的服务和功能,如设备发现、数据传输和网络配置等。 4. Zigbee通信机制 Zigbee使用CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)机 制来进行通信。每个设备在发送数据之前会先进行信道侦听,如果信道空闲,则设备可以发送数据;如果信道被占用,则设备需要等待一段时间后再次侦听,以避免数据碰撞。 5. Zigbee安全性 Zigbee提供了多种安全机制来保护通信过程中的数据安全性和隐私性。其中包括: •认证:通过设备之间的互相认证,确保只有合法的设备可以加入网络。 •加密:使用对称加密算法对数据进行加密,防止数据被窃取或篡改。 •密钥管理:为每个设备生成唯一的密钥,并定期更新密钥以提高安全性。

zigbee 协议栈

zigbee 协议栈 Zigbee是一种基于IEEE 802.15.4标准的无线通信协议,它是一种低功耗、短距离的无线网络协议,可以用于物联网中各种设备的通信。Zigbee协议栈是指一套软件的层次结构,用于实现Zigbee协议的功能和特性。 Zigbee协议栈由四个层次组成:应用层,网络层,MAC层和物理层。 应用层是Zigbee协议栈的最高层,它提供了应用程序与其他网络层之间的接口。应用层负责处理数据的收发,以及定义数据的格式和协议。应用层也负责处理设备与设备之间的通信,例如传感器与控制器之间的通信。 网络层是Zigbee协议栈的中间层,它负责网络的发现和路由选择。网络层的主要功能是将数据传输到目标设备,以及维护网络拓扑结构。网络层使用一种叫做AODV(Ad-hoc On-Demand Distance Vector)的路由选择算法来决定数据的传输路径。 MAC层是Zigbee协议栈的第二层,它负责实现对数据的传输和控制。MAC层的主要功能包括数据的处理、帧的编码和解码、对信道的管理等。MAC层使用CSMA-CA(Carrier Sense Multiple Access with Collision Avoidance)协议来控制数据的传输,并通过BEACON帧来管理设备之间的通信。 物理层是Zigbee协议栈的最底层,它负责将数据从电子信号

转换为无线信号,并传输到接收设备。物理层的主要功能包括信号的调制和解调、信道编码和解码、信号的传输和接收等。 Zigbee协议栈还支持一种叫做ZDO(Zigbee Device Object)的设备对象。ZDO是一个与设备相关的软件模块,提供了设备的管理和控制功能。ZDO负责设备的发现、加入网络、离开网络、重置等操作,并通过指定的应用程序接口来与设备进行通信。 总的来说,Zigbee协议栈是一个非常复杂的系统,包含了多个层次和各种功能。它通过不同的层次和模块来实现Zigbee协议的各种特性和功能,从而使得物联网设备之间可以方便地进行通信和控制。通过使用Zigbee协议栈,可以实现低功耗、短距离和互联互通的物联网应用。

ZIGBEE技术规范与协议栈分析

ZIGBEE技术规范与协议栈分析 篇一:ZigBee知识无线龙 1.协议栈工作流程和无线收发控制 LED 实验内容: 1. ZigBee 协议栈简介 2. 如何使用 ZigBee 协议栈 3. ZigBee 协议栈的安装、编译与下载 4. 协议栈无线收发控制 LED 5. 协议栈工作流程实现现象: 协调器、终端上电,组网成功后 D1 灯闪烁 1. ZigBee 协议栈简介 什么是 ZigBee 协议栈呢?它和 ZigBee 协议有什么关系呢?协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。图 1 展示了 ZigBee 无线网络协议层的架构图。ZigBee 的协议分为两部分,IEEE 802.15.4 定义了 PHY(物理层)和 MAC(介质访问层)技术规范;ZigBee联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。ZigBee协议栈就是将各个层定义的协议都集合在一直,以函数的形式实现,并给用户提供 API(应用层),用户可以直接调用。 图 1 ZigBee 无线网络协议层 2. 如何使用 ZigBee 协议栈 协议栈是协议的实现,可以理解为代码,函数库,供上层应用调用,协议较底下的层与应用是相互独立的。商业化的协议

栈就是给你写好了底层的代码,符合协议标准,提供给你一个功能模块给你调用。你需要关心的就是你的应用逻辑,数据从哪里到哪里,怎么存储,处理;还有系统里的设备之间的通信顺序什么的,当你的应用需要数据通信时,调用组网函数给你组建你想要的网络;当你想从一个设备发数据到另一个设备时,调用无线数据发送函数;当然,接收端就调用接收函数;当你的设备没事干的时候,你就调用睡眠函数;要干活的时候就调用唤醒函数。所以当你做具体应用时,不需要关心协议栈是怎么写的,里面的每条代码是什么意思。除非你要做协议研究。每个厂商的协议栈有区别,也就是函数名称和参数可能有区别,这个要看具体的例子、说明文档。 怎么使用 ZigBee 协议栈?举个例子,用户实现一个简单的无线数据通信时的一般步骤: 1、组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点的加入。 2、发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送。 3、接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收。 是不是看上去很简单啊,其实协议栈很多都封装好了,下面我们大概看看无线发送函数: 1. afStatus_t AF_DataRequest( afAddrType_t *dstAddr, 2. afStatus_t AF_DataRequest( afAddrType_t *dstAddr, 2. endPointDesc_t *srcEP, 3. endPointDesc_t *srcEP, 3. uint16 cID, 4. uint16 cID, 4. uint16 len, 5. uint16 len, 5. uint8 *buf, 6. uint8 *buf,

zigbee协议体系结构

竭诚为您提供优质文档/双击可除zigbee协议体系结构 篇一:zigbee协议架构 根据应用和市场需要定义了zigbee协议的分层架构,其协议的体系结构如图1所示,其中物理层(physicallayer,phy)和媒介访问控制层 (mediumaccesscontrolsub-layer,mac)是由 ieee802.15.4-20xx标准定义的,在这个底层协议的基础上zigbee联盟定义了网络层(networklayer,phy)和应用层(applicationlayer,apl)架构. 图1zigbee协议栈体系结构 物理层规范 物理层定义了它与mac层之间的两个接口:数据服务接口pd-sap和管理服务接口plme-sap,其中pd-sap接口还为物理层提供了相应的数据服务,负责从无线物理信道上收发数据,而plme-sap接口同时为物理层提供相应的管理服务,用于维护一个由物理层相关数据组成的数据库。物理层负责

数据的调制、发送和接收、空闲信道评估(clearchannelassessment,cca)信道能量的监测(energydetect,ed)和链接质量指示(linkqualityindication,lqi)等。物理层帧结构由同步头、物理层帧头和物理层有效载荷三部分组成,如表1所示。 同步头又包括32bit的前同步码和8bit的帧定界符,前同步码用来为数据收发提供码元或数据符号的同步;帧界定符用来标识同步域的结束及数据的开始。物理层帧头包括7bit的帧长度和1bit的预留位,帧长度定义了物理层净荷的字节数。物理层有效载荷就是mac层的帧内容。 表一物理层帧格式 媒体接入控制层规范 mac层定义了它与网络层之间的接口,包括提供给网络层的数据服务接口mlde-sap和管理服务接口mlme-sap,同时提供了mac层数据服务和mac层管理服务。mac层数据服务主要实现数据帧的传输;mac层管理服务主要负责媒介访问控制、差错控制等。 mac层主要功能包括以下几个方面: (1)zigbee协调器产生网络信标 (2)设备与信标同步 (3)支持节点加入或着退出操作 (4)信道接入方式采用免冲突载波检测多路访问

ZigBee协议栈原理简介

第1章ZigBee协议栈原理 2007 年4 月,德州仪器推出业界领先的ZigBee 协议栈(Z-Stack)。Z-Stack 符合ZigBee2006 规范,支持多种平台,包括基于CC2420 收发器以及TI MSP430 超低功耗单片机的平台、CC2530 SOC 平台等。Z-Stack 包含了网状网络拓扑的几近于全功能的协议栈,在竞争激烈的ZigBee 领域占有很重要地位。 4.1 Zigbee 设备类型 在 ZigBee 网络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和End-Device(终端设备)。ZigBee 网络由一个Coordinator 以及多个Router 和多个End_Device组成。 下图是一个简单的ZigBee 网络示意图。其中黑色节点为Coordinator,红色节点为Router, 白色节点为End-Device。 1、Coordinator(协调器) 协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID(也称之为PAN ID,即Personal Area Network ID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。 注意,协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器。 2、Router(路由器) 路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的子终端设备的通讯。通常,路由器希望是一直处于活动状态,因此它必须使用主电

源供电。但是当使用树型网络模式时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电。 3、End-Device(终端设备) 终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以是一个电池供电设备。通常,终端设备对存储空间(特别是RAM)的需要比较小。 注意:在Z-Stack 1.4.1 中一个设备的类型通常在编译的时候通过编译选项 (ZDO_COORDINATOR 和RTR_NWK)确定。所有的应用例子都提供独立的项目文件来 编译每一种设备类型。 栈配置(Stack Profile) 栈参数的集合需要被配置为一定的值,连同这些值在一起被称之为栈配置。ZigBee 联盟定义了这些由栈配置组成的栈参数。网络中的所有设备必须遵循同样的栈配置。为了促进互用性这个目标,ZigBee 联盟为ZigBee2006 规范定义了栈配置。所有遵循此栈配置的设备可以在其它开发商开发的遵循同样栈配置的网络中使用。

zigbee协议栈深入详解

zigbee协议栈 2010-03-10 15:11 zigbee协议栈结构由一些层构成,每个层都有一套特定的服务方法和上一层连接。数据实体(data entity)提供数据的传输服务,而管理实体(managenmententity)提供所有的服务类型。每个层的服务实体通过服务接入点(Service Access Point.SAP)和上一层相接,每个SAP提供大量服务方法来完成相应的操作。 ZigBee协议栈基于标准的OSI七层模型,但只是在相关的范围来定义一些相应层来完成特定的任务。IEEE 802.15.4—2003标准定义了下面的两个层:物理层(PHY层)和媒介层(MAC层)。ZigBee联盟在此基础上建立了网络层(NWK 层)以及应用层(APL层)的框架(framework)。APL层又包括应用支持子层(Application Support Sub—layer,APS)、ZigBee的设备对象(ZigBee Device 0bjects。ZD0)以及制造商定义的应用对象。 1物理层(PHY) IEEE802.15.4协议的物理层是协议的最底层,承担着和外界直接作用的任务。它采用扩频通信的调制方式,控制RF收发器工作,信号传输距离约为 50m(室内)或150m(室外)。 IEEE802.15.4.2003有两个PHY层,提供两个独立的频率段:868/915MHz 和2.4GHz。868/915MHz频段包括欧洲使用的868MHz频段以及美国和澳大利亚使用的915MHz频段,2.4GHz频段世界通用。 2媒体访问控制层(MAC) MAC层遵循IEEE802.15.4协议,负责设备间无线数据链路的建立、维护和结束,确认模式的数据传送和接收,可选时隙,实现低延迟传输,支持各种网络拓扑结构,网络中每个设备为16位地址寻址。它可完成对无线物理信道的接入过程管理,包括以下几方面:网络协调器(coordinator)产生网络信标、网络中设备与网络信标同步、完成PAN的入网和脱离网络过程、网络安全控制、利用CSMA—CA机制进行信道接入控制、处理和维持GTS(Guaranteed Time Slot)机制、在两个对等的MAC实体间提供可靠的链路连接。 数据传输模型: MAC规范定义了三种数据传输模型:数据从设备到网络协调器、从网络协调器到设备、点对点对等传输模型。对于每一种传输模型,又分为信标同步模型和无信标同步模型两种情况。 在数据传输过程中,ZigBee采用了CSMA/CA碰撞避免机制和完全确认的数据传输机制,保证了数据的可靠传输。同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突。 帧结构定义: MAC规范定义了四种帧结构:信标帧、数据帧、确认帧和MAC命令帧。

Zigbee协议栈原理基础

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 Zigbee协议栈原理基础 甲方:___________________ 乙方:___________________ 日期:___________________

IZigbee协议栈相关概念 i.i近距离通信技术比较: 近距离无线通信技术有wifi、蓝牙、红外、zigbee,在无线传感网络中需求的网络通信恰是近距离需求的,故,四者均可用做无线传感网络的通信技术。而,其中(1)红外(infrared ):能够包含的信息过少;频率低波衍射性不好只 能视距通信;要求位置固定;点对点传输无法组网。(2)蓝牙(bluetooth ):可移动,手机支持;通信距离10m;芯片价格贵;高功耗(3) wifi :高带宽;覆盖半径100m ;高功耗;不能自组网;(4) zigbee:价格便宜;低功耗;自组网规模大。 WSN中zigbee通信技术是最佳方案,但它连接公网需要有专门的网关转换进一步学习stm32。 1.2协议栈 协议栈是网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。 1.2.1Zigbee协议规范与zigbee协议栈 Zigbee各层协议中物理层(phy)、介质控制层(mac)规范由IEEE802.15.4规定,网络层(NWK)、应用层(apl)规范由zigbee 联盟推出。Zigbee 联盟推出的整套zigbee 规范:2005 年第一版ZigBeeSpecificationV1.0 , zigbee2006, zigbee2007、zigbeepro zigbee协议栈:很多公司都有自主研发的协议栈,如TI公司的:RemoTI, Z-Stack, SimpliciTI、freakz、msstatePAN 等。 1.2.2z-stack协议栈与zigbee协议栈 z-stack协议栈与zigbee协议栈的关系:z-stack是zigbee协议栈的一种具体实现,或者说是TI公司读懂了zigbee 协议栈,自己用C语言编写了一个软件一---z-stack,是由全球几千名工程师共同开发的。ZStack-CC2530-2.3.1-1.4.0软件可与TI的SmartRF05平台协同工作,该平台包括MSP430超低功耗微控制器(MCU)、CC2520RF收发器以及CC2591 距离扩展器,通信连接距离可达数公里。 Z-Stack中的很多关键的代码是以库文件的形式给出来,也就是我们只能用它们,而看不到它们的具体的实现。其中核心部分的代码都是编译好的,以库文件的形式给出的,比如安全模块,路由模块,和Mesh自组网模块。与z-stack 相比msstatePAN、freakz协议栈都是全部真正的开源的,它们的所有源代码我们都可以看到。但是由于它们没有大的商业公司的支持,开发升级方面,性能方面和z-stack相比差距很大,并没有实现商业应用,只是作为学术研究而已。 还可以配备TI的一个标准兼容或专有的网络协议栈(RemoTI, Z-StacK或SimpliciTI)来简化开发,当网络节点要求不多在30个以内,通信距离500m-1000m时用simpliciti。 1.2.3IEEE802.15.堀准概述 IEEE802.15.4 是一个低速率无线个人局域网(LowRateWirelessPersonalAreaNetworks , LR-WPAN标准。定义了物理层(PHY刖介质访问控制层(MAC)。 LR-WPAN网络具有如下特点: ♦实现250kb/s , 40kb/s , 20kb/s三种传输速率。 ♦支持星型或者点对点两种网络拓扑结构。 ♦具有16位短地址或者64位扩展地址。 ♦支持冲突避免载波多路侦听技术(carriersensemultipleaccesswithcollisionavoidance , CSMA/CA)。(mac层)♦用于可靠传输的全应答协议。(RTS-CTS) ♦低功耗。 ♦能量检测(EnergyDetection , ED)。 ♦链路质量指示(LinkQualityIndication , LQI)。

ZigBee协议简介

ZigBee协议简介 一、ZigBee协议体系结构 ZigBee协议基于IEEE802.15.4标准,由IEEE802.15.4和ZigBee联盟共同制定。ZigBee协议栈由物理层(PHY)、媒体介质访问层(MAC)、网络层(NWK)和应用层(APL)共4层构成,其中PHY层和MAC层由IEEE802.15.4标准工作组制订,而NWK层和APL层由ZigBee联盟自行制订。每一层都完成其各自特定的任务并且向上一层提供服务,数据服务实体主要负责数据传输服务,管理服务实体则主要负责所有的其他管理服务。每个服务实体为其上层提供需要的接口都是通过其相应的服务接入点(SAP)实现的,每个SAP所对应的功能通过服务原语来完成,且每个SAP支持许多种不同的服务原语。ZigBee协议体系结构如图2.1所示:

IEEE802.15.4制定终端制造商制定ZigBee联盟制定各层接口 图2.1 ZigBee协议体系结构图 1物理层(PHY) 物理层定义了物理无线信道和MAC 层之间的接口,提供三种不同的通信频段:868MHz-868.6MHz、902MHz-928MHz和2400MHz-24835MHz,以及1个、10个以及16个不同的信道。 物理层提供两种服务:物理层数据服务(PD)和物理层管理服务(PLME)。通过无线信道的发送和接收以及物理层协议数据单元(PPDU)来实现物理层数据服务。PLME主要通过调用物理层管理功能函数来提供管理和服务,其中物理层数据服务接入点(PD-SAP)给MAC层提供数据服务接口,而物理层管理实体服务接入点(PLME-SAP)给MAC层提供管理服务接口。驱动程序为物理层提供的接口是无线射频服务接入点(RF-SAP),从外界接收到数据包后,从物理

zigbee协议栈

zigbee协议栈 Zigbee协议栈是一种基于IEEE 802.15.4无线技术的低功耗通 信协议,用于构建无线传感器网络和物联网设备。它由几个层次的协议组成,包括物理层、MAC层、网络层和应用层。 物理层是Zigbee协议栈的最底层,负责无线信号传输和接收。它定义了无线模块和设备的硬件要求,包括频率、调制方式、传输速率等。 在物理层之上是MAC层,负责网络节点之间的数据传输和管理。它提供了一系列函数,用于数据包的发送和接收,以及网络节点的寻址和路由。 网络层位于MAC层之上,负责整个网络的拓扑结构和数据路由。每个节点都有一个唯一的网络地址,用于标识和寻址。网络层使用路由算法决定最佳的数据传输路径,以确保数据的可靠传输。 最上层是应用层,这是开发人员编写应用程序的层次。它提供了一系列应用程序程序接口(API),用于数据的发送和接收。开发人员可以利用这些API实现各种应用程序,如传感器数 据采集、远程控制等。 Zigbee协议栈具有以下几个特点。 第一,低功耗。由于无线传感器网络和物联网设备通常是由电池供电,因此低功耗是一个非常重要的设计考虑。Zigbee协议

栈通过最小化数据传输以及使用睡眠和唤醒机制来实现低功耗。 第二,短距离通信。Zigbee协议栈的设计目标是用于部署在短距离范围内的网络,通常不超过100米。这使得它非常适用于家庭自动化、智能电网等场景。 第三,高可靠性。Zigbee协议栈支持多路径数据传输,以确保数据能够在网络中快速可靠地传输。此外,它还支持自动路由和包重传机制,以应对网络中节点的故障或丢失。 第四,安全性。Zigbee协议栈支持数据加密和身份验证功能,确保数据在传输过程中的保密性和完整性。这对于保护物联网设备和网络免受黑客攻击非常重要。 总的来说,Zigbee协议栈是一种可靠、低功耗、安全的通信协议,适用于构建无线传感器网络和物联网设备。它的设计目标是满足家庭自动化、智能电网等应用场景中的通信需求。随着物联网的快速发展,Zigbee协议栈将继续扮演重要的角色,并为智能家居、工业控制等应用领域带来更多的创新。

zigbee基本知识点分享

Zigbee知识分享 1.zigbee概念 ZigBee→IEEE 802.15.4协议的代名词,是一种短距离、低功耗的无线通信技术。特点:近距离、低复杂度、自组织、低功耗、低数据速率、低成本 近距离:“近”是相对而言的,与蓝牙相比,ZigBee属于远距离低速率。(见图1)自组织:无需人工干预,网络节点能够感知其他节点的存在,并确定连接关系,组成结构化的网络; 低功耗:在低功耗待机模式下,两节普通5号电池可使用6-24个月; 低数据速率:基于ZigBee的无线网络所使用的工作频段为868MHz、915MHz和2.4GHz,最大数据传输速率为250kbps; 低成本:ZigBee数据传输率低,协议简单,大大降低了成本; 各种无线数据传输协议对比,如图所示: 传输视频数据 传输大量数据 传输音频数据率 速 输 传 据 数 值 峰 传输距离 图1:各种无线数据传输协议对比图 解释: 蓝牙数据传输速率小于3Mbps,典型数据传输距离为2-10米,蓝牙技术的典型应用是在两部手机之间进行小量数据的传输。 IEEE 802.11b最高数据传输速率可达11Mbps,典型数据传输距离在30-100米,IEEE 802.11b技术提供了一种Internet的无线接入技术,如很多笔记本电脑可以使用自带的WiFi功能实现上网。

ZigBee协议可以理解为一种短距离无线传感器网络与控制协议,主要用于传输控制信息,数据量相对来说比较小,特别适用于电池供电的系统。此外,相对于上述两种标准,ZigBee协议更容易实现(或者说实现成本较低)。 2.zigbee技术应用领域 zigbee适用范围包括自动控制领域、远程控制领域,同时在相关领域中可以嵌入各种设备。 例如:家庭自动化(Home Automation)、商业楼宇自动化(Building Automation)、自动读表系统(Automatic Meter Reading)。 在智能家居和商业楼宇自动化方面,将空调、电视、窗帘控制器等通过ZigBee技术来组成一个无线网络,通过一个遥控器就可以实现各种家电的控制,这种应用非常方便。同时,可以方便人们随时了解家里的电子设备状态。应用于医疗监控,可以观察病人状态是否正常以便作出反应等等。 Zigbee的堆栈架构 物理层:协议的最底层,承付着和外界直接作用的任务。主要目的是控制RF收发器工作 MAC层:负责设备间无线数据链路的建立、维护和结束,确认模式的数据传送和接收。 网络层:建立新网络,保证数据的传输。对数据进行加密,保证数据的完整性。应用支持子层/应用层:应用支持层根据服务和需求使多个器件之间进行通信。应用层主要根据具体应用由用户开发。 3.zigbee协议栈 协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发; 协议栈是协议的具体实现形式,通俗的理解为用代码实现的函数库,以便于开发人员调用;

Zigbee组网原理与应用剖析

摘要:ZigBee技术是基于IEEE802.15.4的一种新兴的短距离、低功耗、低成本和低速率的无线传感器网络技术。网络节点作为无线传感器网络的物理载体,如何实现众多网络节点的智能化接入成为关键问题之一。本文提出了LM3S9B96+CC2520平台上无线通信节点的智能化设计,分析了ZigBee无线组网与数据通信技术,并实现了智能泊车引导系统的应用。 引言 基于IEEE802.15.4标准的ZigBee短距离低速无线个域网(LR-WPAN)协议将低速率、低功耗、低成本作为主要研究目标,是目前无线传感器网络的重要支撑协议之一。针对ZigBee无线短距离低功耗解决方案,虽然目前已经有好几家大半导体公司设计、生产了相应的无线芯片并提供了对应的支持协议栈,但是目前的ZigBee网络多是采用性能较低、存储容量较小的8/16位微控制器来实现的。然而,ZigBee无线网络的中心控制节点往往要分析、处理网络中通信的大量数据,在一些对实时及高效率有严格要求的应用场合,有必要采用高性能的微处理器作为节点的数据处理单元。TI公司Stellaris MCU内部拥有一个32位ARM Cortex-M3处理器核,ARM Cortex-M3核具有高速的处理速度且支持芯片厂商自己扩展丰富的外设,比如网口、USB口、LCD等。同时,Stellaris系列微控制器包含了100多种可以向全球供货的32位ARM核的MCU。本文选用基于32位ARM Cottex-M3核的微控制器LM3S9B96作为无线芯片CC2520的微控制器单元构成协调器节点,另将8051核的SoC CC2530芯片模块作为终端采集节点。通过配置节点设备环境,实现了ZigBee协议下的终端数据采集及星型、树型下的无线组网通信功能,验证了不同规格的ZigBee无线模块在同一协议栈环境下能够正常组网通信,厂商提供的不同ZigBee设备可进行互操作。 1 ZigBee应用体系结构 本平台采用ZigBee标准技术,其具体应用体系结构如图1所示。其中,硬件实体层主要由处理器模块、无线通信模块构成,区别于协调器或路由器的全功能设备,作为精简功能设备的终端节点一般还需再配上传感器硬件模块以实现数据采集;OSAL软件功能模块作为TIZ-Stack协议栈中的操作系统抽象层,统一管理协议栈的运行以及各种任务事件的响应;ZigBee协议栈运行于OSAL抽象系统之上,该协议栈是由层来量化表示其整个协议标准的,每一层负责完成所规定的任务,并且向上层提供相应的数据接口及服务;ZigBee技术体系结构主要由物理(PHY)层、媒体访问控制(MAC)层、ZigBee网络(NWK)层以及应用(APL)层构成,其中物理层与媒体访问控制层协议为IEEE 802.15.4协议标准,网络层由ZigBee技术联盟制定,而应用层的应用则根据用户自己的应用需求进行开发利用。

zigbee协议栈各层的功能

竭诚为您提供优质文档/双击可除zigbee协议栈各层的功能 篇一:zigbee协议栈各层分析 3.4.2协议栈概况 本课题研究的系统zigbee协议栈设计基于 msstate_lRwpan。msstate_lRwpan是由美国密西西比州立大学的Robertb.Reese教授开发的一套zigbee协议的简化实现。该协议栈可用于多种硬件平台,实现了协调器、路由器和精简功能节点之间的树路由、直接消息传输并用静态绑定方法实现了间接路由[[xxxix]]。课题在对该协议栈进行深入分析的基础上,根据本课题中使用硬件平台的实际情况进行修改,将其移植到msp430+cc2420的硬件平台上来。程序使用c语言编写,使用iaR公司的ew430工具作为集成开发环境,编译后下载到目标板的msp430芯片中。 协议栈使用有限状态机(Fsm,Finitestatemachine)的编程方式,在协议的每一层实现单独的有限状态机来跟踪该层的工作状态,整个协议栈采用嵌套调用的方式,上层调

用下层的有限状态机,实现完整协议栈的运行。最顶层的有限状态机是应用程序支持子层(aps)的apsFsm(),需要周期性的调用,以维持整个协议栈正常运行。 经过对msstate_lRwpan协议各层源程序的原理和实现 方法进行分析后发现,在将协议栈从一种硬件平台移植到另外一种硬件平台时,需要修改的主要是物理层(phy)和媒 体接入控制层(mac),这两层与硬件联系紧密,需要针对节点硬件的实际连接方式作较大的修改,涉及的文件主要有 cc2420.c、clockhal.c和 halstack.c等。phy层和mac层屏蔽了硬件的差异,上层协议通过服务接入点(sap,serviceaccesspoint)使用 下层协议提供的服务,透明地完成对硬件的控制,所以网络层(nwk)和应用层(aps)等文件要作的改动较小。 3.4.3物理层phy 物理层是协议的最底层,承担着和外界直接作用的任务。该层定义了物理无线信道和mac子层之间的接口,提供物理层数据服务和管理服务。数据服务负责控制射频收发器的工作,从物理无线信道上收发数据,主要有以下几个方面的功能 [[xl],[xli]]: (1)激活和休眠射频收发器; (2)信道能量检测;

ZigBee协议栈学习总结

ZigBee协议栈学习笔记 1、CC2530的Flash为非易失性存储器,能保存必要数据,以便在设备重启后直接使用,使 用此功能可以保存具体的网络参数。 2、CC2530协议栈例程模板中,SampleAPP.c文件相当于CC2430模板中sapi.c文件。 3、CC2530引脚的寄存器介绍(即PxDIR、PxSEL、PxINP等语句的意思)

P0和P1 是完全的8 位端口,而P2 仅有5 位可用,作为缺省的情况,每当复位之后,所有的数字输入/输出引脚都设置为通用输入引脚。在任何时候,要改变一个端口引脚的方向,就使用寄存器PxDIR 来设置每个端口引脚为输入或输出。因此只要设置PxDIR 中的指定位为1,其对应的引脚口就被设置为输出了。用作输入时,通用I/O 端口引脚可以设置为上拉、下拉或三态操作模式,作为缺省的情况,复位之后,所有的端口均设置为带上拉的输入,。要取消输入的上拉或下拉功能,就要将PxINP 中的对应位设置为1。普通I/O就是作为输入输出接口,外设功能时就是将io作为外设与外部链接得接口,具体用什么,要根据实际需要,比如你要控制继电器,io作为普通功能输出就可以。要是使用串口,io就要作为外设接口与外通讯。GPIO-P0,P1,P2,P0-P1是8个,P2为5位,逻辑电平高低1,0,外设IO,就是定时器1,3,4和USART0 ,USART1,和ADC (P0口)。外设IO位置是固定的管脚。 例子:设置P1.0、P1.1、P1.4引脚输出代码。(写成P1DIR = 0x13也行) 4、LED灯、按键等一些基础硬件引脚定义在HAL-Target-CC2530EB -Config-hal_board_cfg.h 头文件中,如下图所示要修改预定义的三个地方,BV(0)为该引脚所在的位,在第几位BV后面数字为几(可查看该变量定义,为0x01向左移动n位,该变量用于后面运算),后面两个变量一个控制引脚的端口号,一个为引脚端口号的方向选择。 5、按下按键启动协调器设备并且开启网络,他的代码初始化的时候代码是跟自动启动的设 备并开启网络的代码初始化是一样的,但是为什么他没有在初始化的时候启动:因为按

基于ZigBee的无线通信组网设计

基于ZigBee的无线通信组网设计 一、ZigBee协议栈 ZigBee协议栈是ZigBee通信协议的基础,由物理层、MAC层、网络层和应用层组成。物理层定义了无线信道的调制、频率和功率等参数;MAC层负责数据的传输和接收,实现了信道共享和帧格式的定义;网络层处理路由选择和网络拓扑结构的管理;应用层实现了不同应用的数据处理和交互。这些层次的协议组成了整个ZigBee协议栈,为ZigBee的无线通信提供了可靠的基础。 二、网络拓扑结构 ZigBee的网络拓扑结构包括星型、网状和混合型等几种形式。星型拓扑结构适用于简单的小范围通信,一个集中控制器连接多个设备;网状拓扑结构适用于大范围通信和设备密集的场景,任意两个设备之间都可以通过中继节点进行通信;混合型拓扑结构将星型和网状结合起来,适用于较大规模和多样化的应用场景。不同的网络拓扑结构适用于不同的场景和需求,设计者可以根据实际情况选择合适的网络结构。 三、节点类型 ZigBee网络中的节点主要分为协调器、路由器和终端设备三种类型。协调器是网络中的主节点,负责网络的组建和管理;路由器用于数据的中继和转发,拥有一定的计算和存储能力;终端设备是网络中的终端节点,通常功耗较低,只负责数据的采集和传输。这三种节点类型相互配合,形成了稳定的通信网络。 四、通信机制 ZigBee的通信机制主要包括数据传输、路由选择和能耗管理等方面。数据传输采用了低功耗的无线通信技术,使用低频率和短数据包进行数据的传输;路由选择采用了基于跳数的路由协议,实现了快速且稳定的数据传输;能耗管理采用了低功耗的设计,通过睡眠模式和功耗优化实现了长时间的运行。这些通信机制使得ZigBee具有了良好的稳定性和低功耗的特点。 基于ZigBee的无线通信组网设计是一项复杂而重要的工作。设计者需要根据实际应用场景和需求,选取合适的ZigBee协议栈、网络拓扑结构、节点类型和通信机制,才能设计出稳定、高效、低功耗的无线通信系统。随着物联网技术的不断发展和普及,基于ZigBee 的无线通信组网设计将会得到更广泛的应用和发展。

ZigBee的工作原理

ZigBee的工作原理_ZigBee组网技术ZigBee是一种高可靠的无线数传网络,类似于CDMA和GSM网络。ZigBee数传模块类似于移动网络基站。通讯距离从标准的75m到几百米、几公里,并且支持无限扩展。Zigbee 技术特点主要有低功耗、低成本、时延短、网络容量大、工作频段灵活、低速率、安全的数据传输等。其中低功耗是Zigbee技术最重要的特点。由于 Zigbee的传输速率相对较低发射功率较小,使得 Zig bee设备很省电,这是 Zigbee技术能够广泛应用的基石。 ZigBee协议适应无线传感器的低花费、低能量、高容错性等的要求。Zigbee的基础是IEEE 802.15.4。但IEEE仅处理低级MAC层和物理层协议,因此Zigbee联盟扩展了IEEE,对其网络层协议和API进行了标准化。Zigbee是一种新兴的短距离、低速率的无线网络技术。主要用于近距离无线连接。它有自己的协议标准,在数千个微小的传感器之间相互协调实现通信。 ZigBee组网概述 组建一个完整的zigbee网状网络包括两个步骤:网络初始化、节点加入网络。其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。 ZigBee网络初始化预备 Zigbee网络的建立是由网络协调器发起的,任何一个zigbee节点要组建一个网络必须要满足以下两点要求: (1)节点是FFD节点,具备zigbee协调器的能力; (2)节点还没有与其他网络连接,当节点已经与其他网络连接时,此节点只能作为该网络的子节点,因为一个zigbee网络中有且只有一个网络协调器。 FFD:Full Funcon Device 全功能节点 RFD:Reduced FunconDevice 半功能节点

ZigBee协议栈的分析与设计

ZigBee协议栈的分析与设计 ZigBee协议栈的分析与设计 引言 随着物联网的不断发展,无线传感器网络(WSN)得到了 广泛的应用。ZigBee作为一种低功耗、短距离、低带宽的无 线通信协议,逐渐成为物联网中最受欢迎的通信协议之一。本文将对ZigBee协议栈进行深入的分析与设计,以期更好地理 解其工作原理并提供一种优化方案。 一、ZigBee协议栈的结构与功能 1. ZigBee协议栈结构 ZigBee协议栈由两部分组成:上层和下层。上层包括应 用层(Application Layer)、网络层(Network Layer)和安全层(Security Layer)。下层包括物理层(Physical Layer)和介质访问控制层(Media Access Control Layer)。 2. ZigBee协议栈功能 - 物理层(Physical Layer):负责将数据转换为无线信号,通过无线传输介质进行通信。ZigBee协议栈支持多种物 理层标准,例如2.4GHz、900MHz和868MHz等。 - 介质访问控制层(Media Access Control Layer):负责数据帧的分发和接收,同时处理多跳中继和协议转发。 - 网络层(Network Layer):提供网络拓扑管理、路由 选择、数据包传输和安全性等功能。ZigBee协议栈使用了Ad-hoc On-Demand Distance Vector(AODV)路由协议来实现自 组网和动态路由选择。 - 应用层(Application Layer):定义应用程序的协议 和接口,包括设备发现、网络配置、设备控制等功能。

Zigbee学习知识重点

Zigbee学习知识重点 第一章Zigbee概述 1、Zigbee是一种新兴的短距离、低速率无线网络技术,主要用于近距离无线连接。 2、Zigbee的特点是功耗低、成本低、时延短、网络容量大、可靠安全。 3、常见的Zigbee芯片有CC243X系列、MC1322X系列和CC253X系列。 4、常见的Zigbee协议栈有非开源(msstatePAN)协议栈、开源(freakz)协议栈和半开源(Zstack)协议栈。 5、Zigbee软件开发平台包括IAR、Zigbee Sniffer、物理地址修改软件以及其它辅助软件。 6、Zigbee硬件开发平台采用Altium Designer进行设计。 7、简述Zigbee的定义。 答:Zigbee是一种近距离、低复杂度、低功耗、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间,进行数据传输(包括典型的周期性数据、间歇性数据和低反应时间数据)的应用。 (Zigbee的基础是IEEE802.15.4,但是IEEE802.15.4仅处理低级的MAC(媒体接入控制协议)层和物理层协议,Zigbee联盟对网络层协议和应用层进行了标准化。) 8、简述无线传感器网络与Zigbee之间的关系。 答:从协议标准来讲:目前大多数无线传感器网络的物理层和MAC层都采用IEEE802.15.4协议标准。IEEE802.15.4描述了低速率无线个人局域网的物理层和媒体接入控制协议(MAC 层),属于IEEE802.15.4工作组。而Zigbee技术是基于IEEE802.15.4标准的无线技术。 从应用上来讲:Zigbee适用于通信数据量不大,数据传输速率相对较低,成本较低的便携或移动设备。这些设备只需要很少的能量,

相关主题
相关文档
最新文档