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,

6. uint8 *transID,

7.

uint8 *transID, 7. uint8 options, 8.

uint8 options, 8. uint8 radius )

用户调用该函数即可实现数据的无线数据的发送,此函数中有8个参数,用户需要将每个参数的含义理解以后,才能熟练使用该函数进行无线数据通信的目的。现在只讲其中最重要的两个参数,其它参数不需要死记硬背,以后用多了自然就记住了。 4. uint16 len, //发送数据的长度; 5. uint8 *buf,

5. uint8 *buf, //指向存放发送数据的缓冲区的指针。

至于调用该函数后,如何初始化硬件进行数据发送等工作,用户不需要关心,ZigBee协议栈己经将所需要的工作做好了,我们只需要调用相应的API函数即可,而不必关心具体实现细节。

看起来是不是很简单呢,是不是有动手试试的冲动。先别急还要先安装ZigBee协议栈才能进行开发调试呢,下面就动手安装ZigBee协议栈吧。

3. ZigBee 协议栈的安装、编译与下载

解压..\相关资料与软件\Zigbee 开发软件\ZStack-CC2530-2.3.0-1.4.0 协议栈安装文

件.rar ;解压得到.exe 文件,双击进行安装,路径你可以选择默认,同样你也可以选择你想要安装的位置。也许有人就困惑了,装完之后不是应该有个桌面图标的么?其实所谓的安装协议栈只是把一些文件解压到你安装的目录下。怎么用它呢?我们先来看看这个协议栈的目录

Components,顾名思义这个是放我们的库的文件夹,里面放了一些我们用到的 ZDO,driver, hal,zcl 等库的代码Documents,这个不用说大家都知道是放 TI 的开发文档的,里面很多都是讲述协议栈的 API 的有空时可以看看

Projects,这个文件夹放的是 TI 协议栈的例子程序,一个个例子程序都是以一个个 project 的形式给我们的,学好这些例子程序里面的一两个,基本你能做事情了。

Tools,这个文件夹是放 TI 的例子程序的一些上位机之类的程序,作为工具使用。

好了,基本明白了基本架构之后,我们以一个简单的实验开始。先掌握一点必要的理论

再实验效果比较好。

4. 协议栈无线收发控制 LED

打开工程:..\EB2530\5.zigbee 协议栈应用与组网\1.协议栈工作流程和无线收发控制 LED\ZStack-CC2530-2.3.0-

1.4.0\Projects\zstack\Samples\SampleApp\CC2530DB\

SampleApp.eww ,从软件开发专业角度讲建议大家复制工程到非中文目录,因为有些开发环境对中文路径支持的不好,虽然IAR 支持但在实际工作中你想别人看到你的工程,认为你很专业就照着上面做吧。我们演示就不修改,容易引起大家误会,打开工程如下图: App:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容。 HAL:硬件层目录,包含有与硬件相关的配置和驱动及操作函数。

MAC:MAC 层目录,包含了 MAC 层的参数配置文件及其 MAC 的 LIB 库的函数接口文件。 MT:

实现通过串口可控制各层,

并与各层进行直接交互

NWK:网络层目录,包含网络层配置参数文件网络层库的函数接口文件及 APS层库的函数接口。

OSAL:协议栈的操作系统。

Profile: Application framework 应用框架层目录,包含AF 层处理函数文件。应用框架层是应用程序和 APS 层的无线数据接口。

Security:安全层目录,包含安全层处理函数,比如加密函数等

Services:地址处理函数目录,包括地址模式的定义及地址处理函数。 Tools:工程配置目录,包括空间划分及 Z-Stack 相关配置信息。 ZDO:ZDO 目录

ZMac:MAC 层目录,包括 MAC 层参数配置及 MAC 层 LIB 库函数回调处理函数。 ZMain:主函数目录,包括入口函数及硬件配置文件。 Output:输出文件目录,由 IAR IDE 自动生成。

带协议栈的工程怎么这么多文件夹和文件,都有什么用啊?后面实验接触多了自然就懂了。 1. 编译协议器的程序,在Workspace 下拉框中选择“CoordinatorEB-Pro”,在工程名上点右键选择”Rebuild All”,没错误提示再下载到开发板当中。尽量教大家用一些快捷方法。 2.编译终端设备的程序选择“EndDeviceEB-Pro”编译下载即可。

两个 zigbee 节点都下载好后,分别上电看效果吧。协调器、终端上电,组网成功后 D1 灯闪烁。看完后是不是在想怎么实

现的?下面我就带着大家分析协议栈工作流程: 1) zigbee

工作流程

2)

看源码推荐大家使用 Source_Insight,十分强大的工具,从

事软件必备软件,除非你想做菜鸟,具体使用请参考相关资

料与软件\Zigbee 参考资料\ Source Insight 使用教

程.pdf。下面列出实验中涉及到比较重要的函数进行详解,

由于是带协议栈第一个实验,我们对源码也进行注释,方便

习惯看源码的同志学习。我建议大家先看看下面的文章,再阅读一次源码加深印象,后面的例子结构基本相同,所以学好

此实验,再做后面的实验就得心应手了。用户自己添加的应

用任务程序在 Zstack 中的调用过程:

main()---> osal_init_system()---> osalInitTasks()---> SampleApp_Init() 下面我们就先从 main()函数开始吧。提示:如果你第一次接触 ZStack,第一个实验的代码看注释只

须大概知道它们是做什么的,有点印象就行了,后面实验会

徐徐渐进,慢慢带领大家搞懂整个流程和代码的。如果刚开始

就啃代码,不但效率低而且信心受损。 2) 打开 ZMain.c 找

到 main 函数 int main( void ) {

osal_int_disable( INTS_ALL ); //关闭所有中断

HAL_BOARD_INIT(); //初始化系统时钟

zmain_vdd_check(); //检查芯片电压是否正常

InitBoard( OB_COLD ); //初始化 I/O ,LED 、Timer 等HalDriverInit(); //初始化芯片各硬件模块

osal_nv_init( NULL ); //初始化 Flash 存储器 ZMacInit(); //初始化 MAC 层

zmain_ext_addr(); //确定 IEEE 64 位地址 zgInit(); //初始化非易失变量 #ifndef NONWK

// Since the AF isn't a task, call it's initialization routine afInit(); #endif

osal_init_system(); //初始化操作系统

osal_int_enable( INTS_ALL );

//使能全部中断

InitBoard( OB_READY ); //最终板载初始化

zmain_dev_info(); //显示设备信息 #ifdef LCD_SUPPORTED

zmain_lcd_init(); //初始化 LCD #endif

#ifdef WDT_IN_PM1

/* If WDT is used, this is a good place to enable it. */ WatchDogEnable( WDTIMX ); #endif

osal_start_system();// No Return from here 执行操作系统,进去后不会返回 return 0; // Shouldn't get here. } // main()

看了上面的代码后,可能感觉很多函数不认识。没关系刚开始大概了解流程即可,main 函数先执行初始化工作,包括硬件、网络层、任务等的初始化。然后执行

osal_start_system(); 操作系统。进去后可不会回来了。在这里,我们重点了解 2 个函数: ? 初始化操作系统

osal_init_system(); ? 运行操作系统 osal_start_system();

3) 先来看osal_init_system();系统初始化函数,进入函

数。如果用IAR看代码可在函数名上单击右键——go to

definition of?,便可以进入函数。发现里面有6个初始化函数,这里我们只关心 osalInitTasks();任务初始化函数,继续由该函数进入。

篇二:zigbee协议栈各层分析

一PHY:物理层通过射频固件和硬件提供MAC层与物理无线信道之间的接口。

两个物理层:一868/915MHZ频带:20kb/s 40kb/s

二2.4GHZ频带:250kb/s

三个频带被分为27个频率信道,868MHZ支持0信道。915MZH 支持10个信道2.4GHZ支持16个信道。

二,MAC:MAC模块实现IEEE 802.15.4标准的MAC层服务,包括信标帧的产生与同步、设备的关联与解除关联、实现CSMA/CD的介质访问方法等,使得在两个MAC实体间建立一个可靠的通信链路。

它的核心是信道接入技术,MAC层采用了CSMA/CA(带有冲突避免的载波侦听多路访问)的技术,简单来说,就是节点在发送数据之前先监听信道,如果信道空闲则可以发送数据,否则就要进行随机的退避,即延迟一段随机时间,然后再进行监听,通过这种信道接入技术,所有节点竞争共享同一个信道。

三,NWK:ZigBee网络层提供安全管理,信息代理,路由管理,网络管理。其主要功能是路由,路由算法是它的核心。

四,应用层包括包括了APS、AF和ZDO几部分,主要规定了一些和应用相关的功能,包括端点(endpoint)的规定,还有绑定(binding)、服务发现和设备发现

APS:1.维护绑定表,即根据服务和需求同时匹配两个

设备的功能。

2.绑定设备之间转发信息。

3.组地址定义,删除和过滤组地址信息

4.从64位IEEE地址到16位网络地址的地址映射

5分割,重组和可靠的数据传输

ZDO:1.定义网络中的设备的角色(协调器或终端设备)

2.发现网络上的设备,决定他们提供哪种应用服务

3.初始化、响应绑定请求

4.建立网络设备之间的一个安全关系。

五,zigbee设备

(1)协调器:负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID,随后启动整个网络。协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器。具有建立网络,串口通信能力,只能全速运行,不能工作在休眠方式。

(2)路由器:允许其他设备加入网络,多跳路由和协助它自己的终端设备的通讯。一般路由器希望是一直处于活动状态,因此它必须使用主电源供电。在协调器建立网络后,Router 能维持这个网络。

(3)终端设备:没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以可以是一个电池供电设备。工作在休眠方式可以降低功耗。

(4)各个设备的程序对应的是CoordinatorEB、RouterEB、EndDeviceEB三个程序文件,分别进行编译。

六,HAL模块直接操作外设寄存器,完成外设的驱动程序

MT(监控测试)模块为上位机提供通过串口监测节点运行情况的方式。

篇三:Zigbee 协议栈各层分析

3.4.2 协议栈概况

本课题研究的系统ZigBee协议栈设计基于MSSTATE_LRWPAN。MSSTATE_LRWPAN是由美国密西西比州立大学的Robert B. Reese教授开发的一套ZigBee协议的简化实现。该协议栈可用于多种硬件平台,实现了协调器、路由器和精简功能节点之间的树路由、直接消息传输并用静态绑定方法实现了间接路由[[xxxix]]。课题在对该协议栈进行深入分析的基础上,根据本课题中使用硬件平台的实际情况进行修改,将其移植到MSP430 + CC2420的硬件平台上来。程序使用C语言编写,使用IAR公司的EW430工具作为集成开发环境,编译后下载到目标板的MSP430芯片中。

协议栈使用有限状态机(FSM,Finite State Machine)的编程方式,在协议的每一层实现单独的有限状态机来跟踪该层的工作状态,整个协议栈采用嵌套调用的方式,上层调用下层的有限状态机,实现完整协议栈的运行。最顶层的有限状态机是应用程序支持子层(APS)的apsFSM(),需要周期性的调用,以维持整个协议栈正常运行。

经过对MSSTATE_LRWPAN协议各层源程序的原理和实现方法进行分析后发现,在将协议栈从一种硬件平台移植到另外一种硬件平台时,需要修改的主要是物理层(PHY)和媒体接入控制层(MAC),这两层与硬件联系紧密,需要针对节点硬件的实

际连接方式作较大的修改,涉及的文件主要有cc2420.c、clockhal.c和

halStack.c等。PHY层和MAC层屏蔽了硬件的差异,上层协议通过服务接入点(SAP,Service Access Point)使用下层协议提供的服务,透明地完成对硬件的控制,所以网络层(NWK)和应用层(APS)等文件要作的改动较小。

3.4.3 物理层PHY

物理层是协议的最底层,承担着和外界直接作用的任务。该层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和管理服务。数据服务负责控制射频收发器的工作,从物理无线信道上收发数据,主要有以下几个方面的功能

[[xl],[xli]]:

(1)激活和休眠射频收发器;

(2)信道能量检测;

(3)检测接收到数据包的链路质量指示(LQI,Link Quality Indication);

(4)空闲信道评估(CCA,Clear Channel Assessment);

(5)收发数据。

为了提高协议栈的可移植性,让它可以灵活方便地应用于其它类型的硬件平台,从物理层中划分出一部分与硬件联系极为紧密的操作,形成硬件抽象层(HAL,Hardware Abstract Layer),这一层中的函数大多涉及到对硬件器件端口和寄存器的直接操作,包含对一部分硬件的初始化和一些中断函数入口定义。硬件抽象层中的主要函数有:

(1)halInit(void):对硬件抽象层的初始化。包含了对串口UART和计时器MACTimer的初始化。

(2)halInitUart(void):对串口UART的初始化。对连接UART的管脚设置I/O方向和功能,选择时钟信号源为SMCLK,设置波特率为57600,打开USART1的发送和接收使能并打开接收中断。

(3)halGetch(void):从接收缓存中读取数据。

(4)halGetchRdy(void):根据头指针和尾指针的位置判断是否接收到数据。

(5)halPutch(char c):等待发送缓存可用时,向其中写入一个字节的数据进行发送。

(6)halInitMACTimer(void):初始化计时器。

(7)halGetProcessorIEEEAddress(BYTE *buf):获取节点的64位IEEE长地址,存在buf指向的数组内。

(8)halWaitMs(UINT32 msecs):等待毫秒级的一段时间。

(9)halSleep(UINT32 msecs):在看门狗溢出时间内处于LPM1低功耗模式。

(10) uart1_intr(void):UART1中断处理函数,从接收缓存RXBUF1中读取接收到的数据。

(11) watchdog_timer(void):看门狗中断处理函数,从LPM1低功耗休眠模式中退出。

在物理层PHY中实现的主要是初始化函数和物理层有限状态机phyFSM。物理层的初始化函数phyInit(void )对存储区域进

行了初始化,将堆栈清空,并指示物理层有限状态机进入空闲状态。

物理层有限状态机设计如图3-10所示。

图3-10 物理层有限状态机phyFSM

物理层有限状态机接收上层指令,做初始化射频模块RF和向RF发送数据包的工作。数据包发送给RF模块后需要等待RF 模块返回的消息以确认数据被正确地发出,如果超时,将在RF模块空闲时,再次重发。

物理层的数据帧格式[1]如图3-11所示。首先是四个字节的前导序列符(Preamble),用于收发器从中提取时钟信号,完成片同步和符号同步;然后是帧定界符(SFD),其值固定为

0xA7,标识一个物理帧的开始,保证收发器与字节的同步;接着是负载长度域,由一个字节的低七位表示,因此物理帧的负载长度不能超过127个字节;最后是物理服务数据单元(PSDU,PHY Service Data Unit),也就是

物理层向RF发出的数据会由CC2420自动加上相应的同步头,故在程序中不再考虑帧头的计算与添加。

3.4.4 媒体接入控制层MAC

MAC层使用物理层提供的服务实现设备间的数据帧传输,负责设备间无线数据链路的建立、维护和终结,其提供的数据服务保证MAC协议数据单元(PDU,Protocol Data Unit)在物理层的数据服务中能够正确收发。

MAC层的主要有以下几个方面的功能[38]:

(1)协调器产生并发送信标帧,普通设备根据信标帧与进行协调器同步;

(2)支持无线信道通信安全机制;

(3)提供CSMA-CA信道访问机制;

(4)提供时隙保障(GTS,Guaranteed Time Slot)机制;

(5)提供不同设备MAC层间的可靠传输。

在MAC层中,设备有两种地址格式:16位的短地址(short address)和64位的扩展地址(extended address)。16位短地址是设备加入PAN网络时,由协调器为其分配的网内局部地址,随着网络拓扑和设备在PAN网络中所处层次的不同会有所变化。64位扩展地址是由IEEE分配的全球唯一地址,在设备制造时即已确定且不可改变。

MAC层工作时的很多特性由一些特定的数据决定[[xlii]]。这些数据有的是由协议和硬件决定的常量,有的是可以由上层软件根据需要通过相应的服务原语来设置或改变的。这些可以改变的数据称为属性,把它们集中在一起管理,称之为PIB (PAN Information Base)。可以通过服务原语实现对这些属性的操作。

MAC层的主要函数有:

(1)macInit(void):MAC层的初始化函数,初始化

MAC_PIB,清空节点间的连接。

(2)macWarmStartRadio(void):初始化RF射频模块,设置使用的信道、PANID和当前节点短地址。

(3)macTxData(void):发送MAC层数据包。首先格式化数据帧头,然后格式化信息来源地址和来源PANID,再格式化信息目的地址和目的PANID,并格式化数据帧的序列号(DSN,Data Serial Number),最后格式化MSB和LSB,写入数据帧的长度,并交给下层进行发送。

(4)macParseHdr(void):分析获取接收到的数据帧的帧头所包含的信息。从中读取目的PANID,目的地址和来源地址等。

(5)macFormatBeacon(void):格式化信标帧。依次填入魔术数,当前节点的深度,网络层协议版本号,协议栈配置,ZigBee协议ID和超帧。

(6)macParseBeacon(void):处理收到的信标帧。从信标帧中读取超帧、协议的ID和版本号等,如果有与本设备不兼容的地方,则丢弃。如果检验通过,条件符合,则以发出信标帧的传感器节点作为父节点。设置完成之后发出接收到信标帧的确认信息。

(7)macParseAssocResponse(void):处理协调器对加入请求的返回。如果协调器同意加入,则从中获取分配给自已的短地址,并将自已的PANID设置成和协调器相同。记录父节点的长地址并发送加入成功的确认信息。

(8)macCheckDataRejection(void):判断是否对接收到的信息进行处理。对RFD来说,只有由父节点发出的数据帧才会被接受;对路由器来说,只接受来自与自已关联的传感器节点的数据帧。

MAC的有限状态机设计为主状态机macFSM、发送状态机TxFSM 和接收状态机

RxFSM三个。发送状态机TxFSM和接收状态机RxFSM完成对数据包的提交和下发,并完成一些应答等一般请求。

接收状态机RxFSM的设计如图3-12所示。如果物理层没有数据提交上来,则保持空闲状态。物理层提交的数据包有三种形式:应答帧、数据帧和请求帧。对于应答帧,RxFSM可直接处理,不需要交给主状态机macFSM;对于数据帧,如果通过验证确信是发送给本节点的,刚提交给网络层处理,并在MAC层

将数据包释放,等待处理下一个数据包(注意:不能释放数据包的存储区域,因为网络层处理时会从此区域中读取数据);对于请求帧,RxFSM没有办法处理,将交由主状态机macFSM 决定,如果macFSM已处理,则释放该数据包,清除存储区域。

图3-12 MAC层接收状态机RxFSM

发送状态机TxFSM的设计如图3-13所示。每次只允许一个数据包处一在发送状态,当之前发出的数据包返回状态不为成功时,或者物理层协议栈处于忙碌状态,TxFSM会保持空闲状态;如果启动时发生错误,会尝试重发数据,直至超过设定的最大重试次数,则不再处理,进入空闲状态;在启动正常的情况下,如果收到应答帧或数据帧不要求应答,则直接进入空闲状态,如果超时后尚未收到应答帧,则返回相应指示后进入空闲状态。

图3-13 MAC层发送状态机TxFSM

主状态机macFSM的设计如图3-14所示,主要是对命令和一些请求作出响应。该状态机负责发出各种类型的命令帧和数据帧。

接收到命令后,状态机进入命令启动状态,如果是上层要求发送普通的数据帧,则交给底层等待发送,确定发送完成后,回到空闲状态;如果收到的是错误的服务请求,也即虚拟服务,则不作处理,直接回到空闲状态。

接收到的其它类型信令帧主要分为三种:信标帧、孤儿节点请求加入帧和网络请求加入帧。

如果网络中有节点由于掉电等原因而重启,子节点将会断开与之前绑定的父节点之间的连接,成为孤儿节点,这时需要重新与父节点进行绑定,发出的信令帧即孤儿请求。收到孤儿请求

后,状态机进入处理孤儿请求状态,如果该孤儿节点的地址不在父节点的邻居表中,说明这不是该父节点的孤儿,父节点不予处理,进入空闲状态;如果是该父节点的孤儿,则记录该孤儿节点的地址,发出应答,等待孤儿节点的回应。不论是收到孤儿节点成功加入的回应或者超时后仍没收到孤儿节点的应答,状态机均进入空闲状态。

如果收到的是信标帧,说明有RFD希望加入网络。RFD由于不能作为父节点,对收到的消息不予处理。FFD和Router收到信标帧后从MAC_PIB中查找

macAssociationPermit参数,这个参数决定了该节点是否允许其它节点加入,如果可以有节点加入,就进入发送信标响应的状态,然后将自已的PANID和短地址等信息发送给请求加入的节点。

另外一种信令帧是网络请求加入帧,用于从星形网络建立树簇网络的过程中。RFD不具有建立网络间连接的能力,收到这种信令帧后不作处理。FFD和Router收到加入请求后,从

MAC_PIB中查找控制本节点是否可以加入其它网络的

macAssociationPermit参数,若参数设置为允许加入,则进入发送加入响应的状态。然后以信令帧的来源长地址为目标地址,将自己的PANID发送给请求加入的节点,并进入等待加入请求回应的状态。这时不论在限定时间内收到了应答或者由于超时等因素致使加入失败,状态机都会进入空闲状态,等待下一个任务。

图3-14 MAC层主状态机macFSM

MAC层使用CSMA-CA机制解决信道访问时的冲突,需要做信道选择和连接建立等工作,同时还要处理和维护保护时隙

(GTS,Guaranteed Time Slot),检测冲突和解决,任务繁重,是协议栈中很关键的一层。

3.4.5 网络层NWK

网络层NWK通过使用MAC层提供的各种功能,保证正确完成建立和维护网络的任务,实现路由功能,完成数据帧的多跳传输。

NWK层的主要函数有:

(1)nwkInit(void):网络层初始化函数。使网络层进入空闲状态,等待接收任务。

(2)nwkTxData(BOOL fwdFlag):发送数据包函数,有一个fwdFlag参数,用于标识该数据包是否为单纯的转发数据。如果不是转发数据,就加上网络层的帧头交给MAC层进行发送;如果是单纯的转发数据,则已经有正确的网络层帧头,不作附加处理,直接发送。

(3)nwkParseHdr(BYTE *ptr):从接收到的数据包中读取网络层帧头信息。获得数据包的来源地址和目标地址。

(4)nwkCopyFwdPkt(void):对需要转发的数据包进行拷贝。从栈存储区拷贝到发送缓存中。

(5)nwkRxBuffFull(void):判断网络层的接收缓存是否已经填满。

(6)nwkGetRxPacket(void):获取接收到的数据包,返回数据包的起始地址供读取。

(7)nwkFindParentSADDR(SADDR childSADDR):根据一个路由器的子节点短地址,找出其父节点的短地址。网络中各节点的短地址按照其所在的层次深度进行分配,每个FFD可以拥有

的子节点数是一定的,同一层次的FFD短地址以这个数目为公差形成等差数列。因此,根据子节点的短地址所落在的区间范围就可以确定它的父节点短地址。

(8)nwkGetHopsToDest(SADDR dstSADDR):计算以dstSADDR 为目标地址的消息进行间接转发时需要的跳数。该值与当前节点和目标节点所处的网络深度有关。网络层NWK的有限状态机设计为接收有限状态机nwkRxFSM和主状态机nwkFSM两个。因为接收到的数据包有多种形式,需要进行不同的处理,相对而言,要发送的数据包无须进行附加处理,所以没有为发送设计有限状态机。

接收有限状态机nwkRxFSM的设计如图3-15所示。有上层应用调用网络层服务时,进入命令开始状态,由于目前的设计还不支持对命令帧的处理,所以在接收到命令帧后将其丢弃,回到空闲状态。接收到的数据帧分为两种:一种是发给自已的数据包,一种是可能需要转发的数据包。如果数据帧的目标地址是当前节点,则提交至上层的应用层进行处理,提交成功后进入空闲状态;如果是需要路由的节点,在当前节点的转发缓存已经为满的情况下没有办法存储新的数据帧,将其丢弃,对于可转发的数据帧还要查看其半径域,如果为零或者超过了规定的最大跳数,都将被丢弃,只有符合条件的数据帧会被主状态机nwkFSM转发出去。

图3-15 网络层接收有限状态机nwkRxFSM

网络层主状态机nwkFSM的设计如图3-16所示。网络层的主要任务分为数据转发和执行网络建立和维护命令两大类。对于收到的数据包,如果发现是一般性数据帧,则交给MAC层进行发送。命令帧又主要分为一般性命令、建立网络命令和加入网络命令三种。

加入网络的命令要进行区分,与第一次加入网络相比,重新加入网络省去了初始化的步骤,并向MAC发出孤儿节点发现原语,等待MAC层进行处理。

对于组建网络的命令,不同角色的节点将有不同的处理过程。对于协调器来说,它是网络中的第一个节点,经过简单的设置之后,即可成功建立网络,进入空闲状态。对于非协调器,将向各信道中发出信标进行扫描,收到其它节点的回应后即使用这个信道进行通信,回到空闲状态。协议中还设定了一种强行加入的方式,在这种方式下,不发送信标请求,直接选择信道加入。加入信道后,不论是否在设定时间内收到应答,都会回到空闲状态,等待接受新的任务。

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是基于IEEE802.15.4标准的低功耗个域网协议。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。 1概述 ZigBee是一种低速短距离传输的无线网络协议。ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中物理层和媒体访问控制层遵循IEEE 802.15.4标准的规定。 ZigBee网络主要特点是低功耗、低成本、低速率、支持大量节点、支持多种网络拓扑、低复杂度、快速、可靠、安全。ZigBee网络中设备的可分为协调器(Coordinator)、汇聚节点(Router)、传感器节点(EndDevice)等三种角色。[1] 才茂Zigbee 典型组网方式 与此同时,中国物联网校企联盟认为:zigbee作为一种短距离无线通信技术,由于其网络可以便捷的为用户提供无线数据传输功能,因此在物联网领域具有非常强的可应用性。

2起源 ZigBee译为"紫蜂",它与蓝牙相类似。是一种新兴的短距离无线通信技术,用于传感控制应用(Sensor and Control)。由IEEE 802.15工作组中提出,并由其TG4工作组制定规范。 2001年8月,ZigBee Alliance成立。 2004年,ZigBee V1.0诞生。它是Zigbee规范的第一个版本。由于推出仓促,存在一些错误。 2006年,推出ZigBee 2006,比较完善。 2007年底,ZigBee PRO推出。 2009年3月,Zigbee RF4CE推出,具备更强的灵活性和远程控制能力。 2009年开始,Zigbee采用了IETF的IPv6 6Lowpan标准作为新一代智能电网Smart Energy(SEP 2.0)的标准,致力于形成全球统一的易于与互联网集成的网络,实现端到端的网络通信。随着美国及全球智能电网的建设,Zigbee将逐渐被IPv6/6Lowpan标准所取代。 ZigBee的底层技术基于IEEE 802.15.4,即其物理层和媒体访问控制层直接使用了IEEE 802.15.4的定义。 在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷。对工业,家庭自动化控制和工业遥测遥控领域而言,蓝牙技术太复杂,功耗大,距离近,组网规模太小等。而工业自动化,对无线数据通信的需求越来越强烈,而且,对于工业现场,这种无线传输必须是高可靠的,并能抵抗工业现场的各种电磁干扰。因此,经过人们长期努力,ZigBee协议在2003年正式问世。另外,Zigbee使用了在它之前所研究过的面向家庭网络的通信协议Home RF Lite。 长期以来,低价位、低速率、短距离、低功率的无线通讯市场一直存在着。蓝牙的出现,曾让工业控制、家用自动控制、玩具制造商等业者雀跃不已,

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协议

ZigBee协议 协议名称:ZigBee协议 协议背景: ZigBee是一种低功耗、短距离、低速率的无线通信协议,主要用于物联网设备之间的通信。它基于IEEE 802.15.4标准,并由ZigBee联盟制定和管理。ZigBee协议广泛应用于家庭自动化、智能能源管理、工业控制等领域。 协议目的: 本协议旨在规范ZigBee协议的使用和实施,确保不同厂商生产的ZigBee设备之间能够互联互通,实现无缝的物联网通信。 协议内容: 1. ZigBee网络拓扑结构 1.1 网络类型:支持星型、网状和混合型网络结构。 1.2 网络节点:定义协调器、路由器和终端设备三种类型的节点,并规定它们的功能和特性。 1.3 网络层次:定义网络的层次结构,包括协调器级别、路由器级别和终端设备级别。 2. ZigBee协议栈 2.1 物理层:定义ZigBee的物理层规范,包括频率、调制方式和传输速率等参数。 2.2 MAC层:定义ZigBee的媒体访问控制层规范,包括帧格式、帧类型和帧交互过程等。

2.3 网络层:定义ZigBee的网络层规范,包括路由选择算法、网络拓扑管理和地址分配等。 2.4 应用层:定义ZigBee的应用层规范,包括应用对象、应用框架和应用服务等。 3. ZigBee设备和服务 3.1 设备标识:定义ZigBee设备的唯一标识符,包括设备类型、设备ID和设备描述等信息。 3.2 服务接口:定义ZigBee设备的服务接口规范,包括服务对象、服务操作和服务参数等。 3.3 设备发现:定义ZigBee设备之间的发现机制,包括主动发现和被动发现两种方式。 3.4 设备配置:定义ZigBee设备的配置过程,包括设备加入网络、设备离开网络和设备重置等。 4. ZigBee安全机制 4.1 认证和加密:定义ZigBee设备之间的认证和加密机制,保护通信数据的机密性和完整性。 4.2 密钥管理:定义ZigBee设备的密钥管理规范,包括密钥生成、密钥分发和密钥更新等。 4.3 访问控制:定义ZigBee设备的访问控制规范,限制非授权设备的接入和操作权限。 5. ZigBee网络管理

ZigBee

1.ZigBee简介 1.1.概述 zigbee协议栈结构由一些层构成,每个层都有一套特定的服务方法和上一层连接,称为协议。数据实体(data entity)提供数据的传输服务,而管理实体(management entity)提供所有的服务类型。每个层的服务实体通过服务接入点(service access point SAP)和上一层相接,每个SAP提供大量服务方法来完成相应的操作。zigbee协议栈基于标准的OSI七层模型,但只是在相关范围来定义一些相应层来完成特定的任务。IEEE802.15.4-2003标准定义了下面的两个层:物理层(PHY层)和媒介层(MAC层)。zigbee联盟在此基础上建立了网络层(NWK层)以及应用层(APL层)的框架(framework)。APL层又包括应用支持子层(application support sub-layer APS),zigbee的设备对象(zigbee device object ZDO)以及制造商定义的应用对象。 1.2.缩略语和简称 AIB 应用支持层的信息库 AF 应用框架 APDU 应用支持子层协议数据单元 APL 应用层

APS 应用支持子层 APSDE 应用支持子层数据实体 APSDE-SAP 应用支持子层数据实体-服务接入点 APSME 应用支持子层管理实体 APSME-SAP 应用支持子层管理实体-服务接入点 ASDU APS服务数据单元 MAC 媒体访问控制 MCPS-SAP 媒体访问控制公用部分子层-服务接入点 MLME-SAP 媒体访问控制子层管理实体-服务接入点 MSG 信息服务类型 NHLE 上层实体 NIB 网络层信息库 NWK 网络 OSI 开放式系统互连 PAN 个人区域网络 PDU 协议数据单元 PHY 物理层 QOS 服务质量 RREP 路由应答 RREQ 路由请求 SAP 服务接入点 ZB ZigBee ZDO ZigBee设备对象 1.3.ZDO ZigBee设备对象(ZDO)描述了一个基本的功能函数类,在应用对象、设备profile和APS之间提供了一个接口。ZDO位于应用框架和应用支持子层之间,它满足zigBee协议栈所有应用操作的一般要求。ZDO还有以下作用: (1)初始化应用支持子层(APS)、网络层(NWK)和安全服务文档(SSS); (2)从终端应用中集合配置信息来确定和执行发现、安全管理、网络管理、以及绑定管理。 ZDO描述了应用框架层的应用对象的公用接口,控制设备和应用对象的网络功能。在终端节点0,ZDO提供了与协议栈中下一层相接的接口。 1.4.AF ZigBee应用层框架是应用设备和ZigBee设备连接的环境。在应用层框架中,应用对象发送和接收数据通过APSDE.SAP,而对应用对象的控制和管理则通过ZDO公用接口来实现。APSDE.SAP提供的数据服务包括请求、确认、响应以及数据传输的指示信息。有240个不同的应用对象能够被定义,每个终端节点的接口标识从l到240,还有两个附加的终端节点为了APSDE.SAP的使用。标识0被用于ZDO的数据接口,255则用于所有应用对象的广播数据接口,而241.254予以保留。使用APSDE-SAP提供的服务,应用层框架提供了应用对象的两种数据服务类型:主值对服务(Key Value Pair service,KVP)和通用信息服务

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

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

第三章 zigbee

第三章ZigBee 无线网络技术 研究ZigBee 网络的拓扑结构、网络层协议对定位系统的性能的影响。 3.1 ZigBee无线网络技术的特点 ZigBee技术主要用于无线个域网(WPAN),是基于IEEE802.15.4无线标准研制开发的。IEEE802.15.4定义了两个底层,即物理层和媒体接入控制(Media Access Control,MAC)层;ZigBee联盟则在IEEE 802.15.4的基础上定义了网络层和应用层。ZigBee联盟成立于2001年8月,该联盟由Invensys、三菱、摩托罗拉、飞利浦等公司组成,如今已经吸引了上百家芯片公司、无线设备公司和开发商的加入,其目标市场是工业、家庭以及医学等需要低功耗、低成本、对数据速率和QoS(服务质量)要求不高的无线通信应用场合。 ZigBee这个名字来源于蜂群的通信方式:蜜蜂之间通过跳Zigzag形状的舞蹈来交互消息,以便共享食物源的方向、位置和距离等信息。与其它无线通信协议相比,ZigBee无线协议复杂性低、对资源要求少,主要有以下特点: (1)低功耗:这是ZigBee的一个显著特点。由于工作周期短、传输速率低,发射功率仅为lmw,以及采用了休眠机制,因此ZigBee设备功耗很低,非常省电。据估算,ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间,这是其它无线设备望尘莫及的。 (2)低成本:协议简单且所需的存储空间小,这极大降低了ZigBee的成本,每块芯片的价格仅2美元,而且ZigBee协议是免专利费的。低成本对于ZigBee也是一个关键的因素。(3)时延短:通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延为30ms,休眠激活的时延是15ms,活动设备信道接入的时延为15ms。这样一方面节省了能量消耗,另一方面更适用于对时延敏感的场合,例如一些应用在工业上的传感器就需要以毫秒的速度获取信息,以及安装在厨房内的烟雾探测器也需要在尽量短的时间内获取信息并传输给网络控制者,从而阻止火灾的发生。 (4)传输范围小:在不使用功率放大器的前提下,ZigBee节点的有效传输范围一般为10-75m,能覆盖普通的家庭和办公场所。 (5)网络容量大:根据ZigBee协议的16位短地址定义,一个ZigBee网络最多可以容纳65535个节点,而且还可以通过64位的IEEE地址进行扩展,因此ZigBee网络的容量是相当大的。 (6)数据传输速率低:2.4GHz频段为250kb/s,915MHz频段为40kb/s,868MHz频段只有20kb/s。 (7)可靠:采取了免冲撞机制,同时为需要固定带宽的通信业务预留了专用时隙,避开了发送数据的竞争和冲突。媒体接入控制子层采用了完全确认的数据传输模式,每个发送的数据包

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 传输协议 zigbee 通信协议 PAN ID:56 34 并在LCD1602上实时显示 短地址在LCD1602上实时显示 节点类型:coordinator 和 router 必须可由按键控制 频道:22(2460mhz)可以由按键控制选择频道 点对点数据传输方式:0xfd+数据长度+目的地址(短地址)+数据限定:每个数据包为8字节间隔250ms左右传输 透明传输数据接收:数据+短地址 篇二:Zigbee协议 基于Zigbee协议的RF收发QPSK编码调制实现多路开关控制 一、Zigbee:全新无线网络数据通信技术 Zigbee技术是随着工业自动化对于无线通信和数据传输的需求而产生的,Zigbee网络省电、可靠、成本低、容量大、安全,可广泛应用于各种自动控制领域。 Zigbee的由来:在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷。对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,......而工业自动化对无线通信的需

求越来越强烈。正因此,经过人们长期努力,Zigbee协议在2003年中通过后,于2004正式问世了。 二、Zigbee是什么: Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,十分类似现有的移动通信的CDMA网或GSM 网,每一个Zigbee网络数传模块类似移动网络的一个基站,在整个网络范围内,它们之间可以进行相互通信;每个网络节点间的距离可以从标准的75米,到扩展后的几百米,甚至几公里;另外整个Zigbee网络还可以与现有的其它的各种网络连接。例如,你可以通过互联网在北京监控云南某地的一个Zigbee控制网络。不同的是,Zigbee网络主要是为自动化控制数据传输而建立,而移动通信网主要是为语音通信而建立;每个移动基站价值一般都在百万元人民币以上,而每个Zigbee"基站"却不到1000元人民币;每个Zigbee 网络节点不仅本身可以与监控对对象,例如传感器连接直接进行数据采集和监控,它还可以自动中转别的网络节点传过来的数据资料; 除此之外,每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。每个Zigbee网络节点(FFD和RFD)可以可支持多到31个的传感器和受控设备,每一个传感器和受控设备终可以有8种不同的接口方式。可以采集和传输数字量和模拟量。 三、Zigbee技术的应用领域: Zigbee技术的目标就是针对工业,家庭自动化,遥测遥控,汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制,传感器的无线数据采集和监控,油田,电力,矿山和物流管理等应用领域。另外它还可以对局部区域内移动目标例如城市中的车辆进行定位。(成都西谷曙光数字技术公司的专利技

智能家居Zigbee无线通信技术应用

智能家居Zigbee无线通信技术应用 提纲: 1. Zigbee通信技术的概述和应用 2. Zigbee无线通信技术在智能家居中的应用 3. Zigbee协议栈和通信模型分析 4. Zigbee无线通信技术的优点和缺点 5. 基于Zigbee的智能家居案例分析 1. Zigbee通信技术的概述和应用 在智能家居领域,无线通信技术是关键技术之一,而Zigbee 协议则是一种常见的低功率消耗、低带宽、低数据速率、无线网络通信协议。Zigbee技术协议可以应用于各种各样的场景,不同的设备,例如:智能家居、智能楼宇、智慧城市、物联网等。 2. Zigbee无线通信技术在智能家居中的应用 Zigbee技术的低功耗和低复杂性使其成为智能家居应用中的主要通信技术之一。Zigbee技术在智能家居应用中的使用可以包括安全系统、照明系统、智能门锁、温度控制系统等。 3. Zigbee协议栈和通信模型分析 Zigbee协议包括物理层、MAC层、网络层和应用层。Zigbee 协议的通信模型和协议栈都非常具体,并采用高效的应用程序

接口,可通过网络层按需路由进行数据的分发。网络层路由器在Zigbee网络中起到重要作用,它们允许数据流动的方向和 路径通过网络管理器进行控制,以保持网络高效率和可靠性。 4. Zigbee无线通信技术的优点和缺点 Zigbee无线通信技术的主要优点是低功耗、低复杂性、低成本。其通信范围可达30到100米。不过,Zigbee技术的主要缺点 是其带宽较低,最高速度仅为250 kbit / s,且不太适合高质量 的数据和高带宽应用。Y不过Zigbee技术与其它无线通信技 术相结合可增加其通信功能和应用范围。 5. 基于Zigbee的智能家居案例分析 (1)照明系统 Zigbee技术被广泛用于智能家居的室内和室外照明控制系统中。例如:Zigbee 网络路灯系列,可以根据天气以及交通流量调 节来实现智能路灯网络供电和监控。 (2)温度控制和能源管理 Zigbee技术可与温度传感器和热控制器等设备一起使用,并提供电量计量功能,以实现智能能源管理。例如:使用Zigbee 技术工作的温度调节器和电力计量器组成一个智能家居节能系统,可以实现远程控制温度和节约能源。 (3)安全系统

ZIGBEE技术及协议

ZIGBEE技术及协议 2.121GBEE技术概述 Bee是蜜蜂的意思,而219则是蜜蜂在空中飞舞时的一个大体轨迹,从而互相交流并传递信息。蜜蜂的特点就是体积小、数量多、能量消耗少、蜂群所形成的网络庞大而且非常灵活,它正好吻合了ZigBee无线传感器网络得一些基本特征,这也是ZigBee这个名词的来源。ZigBee联盟成立于2001年8月,其主要目标是以通过融入无线传感器网络功能,为消费者提供更富弹性、更方便使用的电子产品,建立初期主要成员有美国摩托罗拉公司、日本三菱公司、荷兰飞利浦公司和英国Invensys公司。目前在这四大公司的倡导下,全球已超过160家公司加入该联盟,中国华为公司也在其中。近些年,中国也成立了自己的ZigBee联盟,目前正处在蓬勃的发展当中。ZigBee技术的工作频段分为3个;美国主要使用915MHz,欧洲是865MHz,而2.4GHz频段在全球都可以使用。三个频段都是免费频段,其传输速率分别为4Okbit/s、20kbit/s和250kbit/s。单个节点理论传输距离可达100米,但是可以通过多跳来实现远距离信息传输。理论上一个协调器可连接255个节点,而整个网络按三级网络结构拓扑的话,最多可以连接65000个网络节点。在通讯网络中,zigBee技术定义了编号从0到26的27个信道,其中欧洲标准的865MHz频段只占用一个0号信道,美国流行的915MHz频段占用从1到10号的1个信道,

从902MHz到928MHz,平均每两个信道之间相差ZMHz,而剩下的16个信道全被2.4GHz频段占用,平均每两个信道之间相差SMHz。 2.1.1zigBee技术的基本特点 ZigBee技术实现的是低成本、短距离、小吞吐量、低功耗、低速率、高安全性的传输方式,在远程监控等领域有着广泛的应用,同时终端节点可以搭载各类传感器,并可实现远程定位功能。根据实际情况既可以人为控制网络结构,也可以自由灵活组网,网络形式多样,结构简单,加上造价成本低廉,非常适合在环境恶劣,无人进入的环境中工作。同时,ZigBee技术的出现也填补了低速率的无线传感器网络的空白,丰富了无线传输技术的内容。 (1)低功耗。网络节点全部采用干电池供电,一般情况下两节五号电池就可以让一个节点工作数月,如果节点是精简功能节点,定时休眠与唤醒,则两年时间可以不用更换电池。相比其他现有无线传感器的功耗,如蓝牙一次充电可以工作几周,而Wi-Fi只有数小时,ZigBee技术的这个特点尤为突出。 (2)低速率。根据协议规定的三个无线频段,ZigBee技术也有三个传输速率,分别是Zokbit/s、40kbit/S和250kbit/S,适合在小吞吐量的网络中工作,同时也为低功耗的特性奠定了基础。

ZigBee协议解析低功耗无线传感器网络的协议

ZigBee协议解析低功耗无线传感器网络的协 议 ZigBee协议是一种专门为低功耗无线传感器网络设计的协议。它提 供了一种可靠且高效的通信方式,适用于各种物联网应用。本文将对ZigBee协议进行详细解析,并探讨其在低功耗无线传感器网络中的应用。 一、ZigBee协议的概述 ZigBee协议是一种基于IEEE 802.15.4标准的无线通信协议,主要 面向低功耗无线传感器网络。它采用短距离无线传输技术,支持低速、低功耗的设备间通信。ZigBee协议提供了一个自组织的网络结构,可 以连接数百个设备,形成一个完整的传感器网络。 ZigBee协议具有以下特点: 1. 低功耗:ZigBee设备的电池寿命长,通信过程中的能量消耗极低,适用于长期运行的无线传感器网络; 2. 低速率:ZigBee协议的数据传输速率较低,适合传输小量的数据,如温度、湿度等传感器数据; 3. 自组织:ZigBee网络能够自动进行网络拓扑结构的组织和调整, 无需人工干预; 4. 网络容量大:一个ZigBee网络可以支持数百个设备,覆盖范围广,适用于大规模传感器部署;

5. 低成本:由于ZigBee设备的成本较低,使得它在物联网领域得 到广泛应用。 二、ZigBee协议栈 ZigBee协议栈是ZigBee协议的软件实现,由不同层次的协议组成。ZigBee协议栈分为物理层、数据链路层、网络层和应用层。 1. 物理层:物理层是ZigBee协议栈的最底层,负责实现无线通信 的物理传输。它定义了无线信道的参数设置、频率选择以及信号调制 等功能。 2. 数据链路层:数据链路层负责数据的传输和错误检测等功能。它 将数据分成小的数据帧,并通过可靠的无线信道传输。 3. 网络层:网络层负责发送和路由数据。它使用一种分层的网络拓 扑结构,将网络划分为不同的区域,通过路由表选择最佳路径进行数 据传输。 4. 应用层:应用层是ZigBee协议栈的最高层,负责定义应用数据 的格式和传输方式。它可以根据不同的应用需求,定义相应的数据协议。 三、ZigBee协议的应用 ZigBee协议在低功耗无线传感器网络中有广泛的应用,涵盖了各个 领域。以下是一些常见的应用场景:

Zigbee的协议栈结构和技术特点的详细介绍

Zigbee的协议栈结构和技术特点的详细介绍

Zigbee网络是近几年比较火热的焦点之一,对于Zigbee网络,大家可能也有所了解。为增进大家对Zigbee的了解,本文将对Zigbee的协议栈结构、Zigbee适用之处以及Zigbee的技术特点加以介绍。如果你对Zigbee,抑或是本文内容具有兴趣,不妨继续往下阅读哦。 一、ZigBee ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。这一名称(又称紫蜂协议)来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。ZigBee是一种低速短距离传输的无线网络协议。ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中物理层和媒体访问控制层遵循IEEE802.15.4标准的规定。 二、Zigbee的协议栈结构 接下来我们再了解一下Zigbee的协议栈,如下图所示。

从上图可以看出,协议层结构分为硬件与软件,硬件层包括IEEE802.15.4定义的PHY(物理层)和MAC(介质访问层),软件层为Zigbee联盟定义的NWK(网络层)、APS(应用程序支持层)、APL(应用层)。对于Zigbee协议栈的使用者而言,无非就是利用协议栈实现Zigbee设备组网、数据发送和数据接收功能。智能家居开发工程师在采用Zigbee技术上一般可以通过以下两种方式实现。 一为直接采用Zigbee模块,模块与系统控制MCU通信,将要组网和数据收发功能通过Zigbee模块去实现。这样做的优点是系统开发周期短、技术难度小、回避射频设计,缺点是成本高,体积大。 另一种为采用带有Zigbee功能的SoC,将系统应用与Zigbee系统融合为一体。优点为集成度高、成本低;缺点为技术难度高,需要具有一定的射频设计能力。 三、Zigbee适用于何处 需要无线通信交换信息的低成本装置; 数据的交换量较小、传输的速率要求不高; 功耗要求极低,采用电池供电且需要维持较长时间; 需要多个(尤其是大量)设备组成无线通信网络,主要进行监测和控制的场合。 Zigbee传输距离为数十米,使用频段为免费的2.4GHz与900MHz频段,传输速率为20kbps 至250kbps。BobHeile认为,相对于现有的各种无线通信技术,ZigBee技术的低功耗、低速率是最适合作为传感器网络的标准,这将成为未来Zigbee技术主要的发展方向。此外,Zigbee成本低、结构简单、耗电量小等特点,使得利用Zigbee技术组成的网络具备省电、可靠、成本低、容量大、安全、自愈性强等诸多优势,基于Zigbee技术的网状网结构在组网和选择网络路径时更加灵活、自由。 四、zigbee技术特点 1、数据传输率低。只有10kb/s~250kb/s,专注于低传输应用。 2、功耗低。在低耗电待机模式下,两节普通5号干电池可使用6个月以上。这也是zigbee 的支持者所一直引以为豪的独特优势。 3、低成本。因为zigbee数据传输速率低,协议简单,所以大大降低了成本;积极投入zigbee开发的Motorola以及Philips,均已在2003年正式推出芯片,飞利浦预估,应用于主机端的芯片成本和其它终端产品的成本比蓝牙更具有价格竞争力。

ZigBee基础知识

ZigBee基础知识 一、ZigBee特点 ZigBee技术是一种新兴的短距离、低功耗、低成本、低数据传输率的无线通信技术。它的主要特点如下: 1)低功耗:在低功耗待机模式下,两节普通5号干电池可使用6~24个月。 2)低速率:数据传输速率只有10kb/s〜250kb/s,专注于低速数据传输应用。 3)低成本:因为ZigBee数据传输速率低,协议简单,降低了对通信控制器的要求,所以大大降低了成本。 4)短距离:传输距离一般介于10〜100m之间,在增加RF发射功率后,亦可增加到1〜3km。这指的是相邻节点间的距离,如果通过路由和节点间通信的接力,传输距离将可以更远。 5)短时延:Zigbee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。 6)容量大:Zigbee可采用星状、簇状和网状网络结构,一个主节点可管理254个子节点,同时主节点还可由上一层网络节点管理,这样可组成65000多个节点。 7)安全:ZigBee提供了数据完整性检查和鉴权功能,采用AES-128加密算法,各个应用可灵活确定其安全属性。 8)工作频段灵活:使用的频段分别为全球的2.4GHzISM频段(16个信道)、欧洲的868MHz频段(1个信道),以及美国的915MHz频段(10个信道),均为免执照频段。 二、ZigBee工作频率 三、ZigBee的设备类型

ZigBee网络支持两种功能类型的网络节点:全功能器件(FullFunctionDevice, FFD)和精简功能器件(ReduceFunctionDevice,RFD)。 全功能器件拥有完整的协议功能,在网络中可以作为协调器(Coordinator),路由器(Router)和普通节点(Device);而精简功能器件旨在实现最简单的协议功能而设计,只能作为普通节点存在于网络中。全功能器件可以与精简功能器件或其他的全功能器件通信,而精简功能器件只能与全功能器件通信,精简功能器件之间不能直接通信。 四、ZigBee网络节点类型 ZigBee网络包含三种节点类型:ZigBee协调器(ZigBeeCoordinator,ZC)、ZigBee路由器(ZigBeeRouter,ZR)和终端设备(ZigBeeEndDevice,ZED)。 协调器只能是全功能器件FFD。一个PAN的网络中,至少要有一个全功能器件作为网络的协调器,它可以看作是一个PAN的网关节点(SINK节点)。它是网络建立的起点,负责PAN网络的初始化,确定PAN的ID号和PAN操作的物理信道并统筹短地址分配,充当信任中心和储存安全密钥,与其他网络的连接等。 在任何一个拓扑网络上,所有设备都有一个唯一的64位IEEE长地址,该地址可以在PAN中用于直接通信。协调器在加入网络之后获得一定的短地址空间,在这个空间内,他有能力允许其他节点加入网络,并分配16位短地址给节点。因此在设备发起连接时采用的是64位IEEE长地址,只有连接成功后,系统分配了PAN的标志符后,才能采用16位的短地址来通信。 路由器可以只运行一个存放有路由协议的精简协议栈,负责网络数据的路由,实现数据中转功能。在网络中最基本的节点就是终端节点ZED,一个终端节点可以是全功能器件FFD或者是精简功能器件RFD。 Zigbee网络拓扑结构比较流行的有三种:星型网络(Star)、簇状型网络(Cluster)、网状型网络(Mesh)。 五、ZigBee协议通信原语 在分层的通信协议中,层与层之间是通过服务接入点(ServiceAccessPoint,SAP)相连接的。每一层都可以通过本层与下一层的SAP调用下层所提供的服务,同时通过与上一层的SAP为上层提供相应服务。SAP是层与层之间的唯一接口,而具体的服务是以通信原语的形式供上层调用的。在调用下层服务时,只需要遵

Zigbee协议栈原理基础

Zigbee协议栈原理基础

1Zigbee协议栈相关概念 1.1近距离通信技术比较: 近距离无线通信技术有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.4标准概述 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)。

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