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层进行处理。

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

图3-16 网络层主状态机macFSM

网络层除了网络的建立和维护外,路由算法是其核心部分。路由器根据其自身建立的路由表对数据包进行转发,在保证连通性的情况下,最大限度地降低网络传输代价。在本课题中,鉴于节点规模较小,网络拓扑结构简单,整体复杂度不高,使用了较简单的路由方式,根据信息来源的方向,将数据包转发给父节点或子节点设备进行处理。

3.4.6 应用支持子层APS

应用支持子层(APS)通过一组通用的服务为网络层NWK和应用层APL之间提供接口。这一组服务维持器件的功能属性,发现工作空间中的其它ZigBee器件,根据用户服务和需求使多个器件间进行通信。

该层的函数分为两类:对协议栈内部数据进行存取和修改的函数以及关于数据包发送的一系列服务调用函数。主要函数有:

(1)apsInit(void):应用支持子层初始化函数。初始化本层的状态机,恢复aps_PIB的默认值,并调用底部各层的初始化函数。

(2)aplShutdown(void):关闭应用支持子层的服务。在协议栈没有任务运行时进入休眠状态,随后重启协议栈和无线模块。

(3)aplWarmstart(void):APL热启动,只重启了无线模块。

(4)aplFmtSendMSG ( ):格式化数据帧函数。该函数有一系统参数,根据传入的参数对数据帧的来源和目的地址、帧长、净负荷和其它的状态标志等进行格式化。

(5)apsTxData(BOOL copy_payload):建立应用支持子层的帧头部,并将形成的数据包发送给网络层进行处理。

(6)apsCheckAck(void):对接收到的应答帧进行分析,检验是否为所需的应答,对信息的地址等信息进行了匹配分析。

(7)apsParseHdr(BYTE *ptr):对应用支持子层的数据包进行解析,从中获取数据包的来源和目的地址以及长度等其它状态信息。

(8)apsFormatAck(void):格式化应答帧,对需要应答的消息给予回应。(9)apsGetRxPacket(void):获取APS层接收到的数据包的首地址,供读取使用。

(10) apsFreeRxPacket(BOOL freemem):对APS层接收缓存中的第一个数据包进行内存释放。主要用在不再使用的数据包的后续处理。

应用支持子层的状态机分为发送状态机apsTxFSM、接收状态机apsRxFSM和主状态机apsFSM三个分别进行设计。发送状态机apsTxFSM只负责对需要应答的数据帧在超时后重新发送,其结构较为简单,些处不画出其状态机原理图进行分析。接收状态机apsRxFSM的设计如图3-17所示。状态机在接收到数据包后进入开始工作状态,对于大部分的帧,状态机做简单处理后就回到空闲状态,只有收到间接消息或收到的消息要求给出应答时,才会有额外的处理工作。对于收到的未知帧,不作处理直接丢弃;收到命令帧后,由于目前尚未完成对命令帧的具体处理,也将被丢弃掉;收到的应答帧如果是需要的,则对PIB相应状态进行修改,不需要的应答帧不作处理。对于收到的间接消息,如果不是协调器,由于没有处理能力,将被丢弃,只有协调器会在接收缓存有足够空间的情况下进行存储转发,由主状态机处理完毕后,进入空闲状态。对于需要作出应答的数据帧,等待主状态机发出应答消息后,进入空闲状态。

图3-17 应用支持子层接收状态机apsRxFSM

主状态机的设计如图3-18所示。进入状态机后,必须先查看是否有消息需要应答,再查看是否有间接消息需要转发。如果有消息需要应答,则根据消息的来源和目的地址格式化应答帧,进入发送等待状态。服务原语引起状态机进入命令启动状态,为了简化设计,此处省略了其它形式的命令,只留下普通数据发送命令,数据发送后也进入发送等待状态。有间接消息需要处理时,进入获取地址状态,如果从绑定表中找不到与来源和目的地址相匹配的表项,则不予处理,进入空闲状态;如果找到匹配的绑定表项,则进入发送间接消息状态,用查找到的表项内容设置转发消息的下一跳目的地址等信息,进入转发等待状态。转发完成后,仍会继续进入获取地址状态,以查看是否有其它目的地址可以转发这条消息。

图3-18 应用支持层主状态机apsFSM

应用支持子层通过数据请求原语、确认原语和指示原语对上层提供服务,并通过网络层完成这些服务。只有已经成为了网络中的一员的节点才能实现APS数据传送。在已经实现了绑定的情况下,可以使用间接寻址。发起间接传送的节点只需直接向协调器发出请求,协调器就可根据绑定表将请求传送到目的地。应用程序使用APS的确认或者应用程序的响应确保信息可靠地传输到目的地。

ZigBee 协议架构

根据应用和市场需要定义了ZigBee 协议的分层架构,其协议的体系结构如图1 所示,其中物理层(physical layer,PHY)和媒介访问控制层(medium access control sub-layer,MAC)是由IEEE802.15.4-2003 标准定义的,在这个底层协议的基础上ZigBee 联盟定义了网络层(network layer,PHY)和应用层(application layer,APL)架构. 图1 zigbee协议栈体系结构 物理层规范 物理层定义了它与MAC 层之间的两个接口:数据服务接口PD-SAP 和管理服务接口PLME-SAP,其中PD-SAP 接口还为物理层提供了相应的数据服务,负责从无线物理信道上收发数据,而PLME-SAP 接口同时为物理层提供相应的管理服务,用于维护一个由物理层相关数据组成的数据库。物理层负责数据的调制、发送和接收、空闲信道评估(clear channel assessment,CCA)信道能量的监测(energy detect,ED)和链接质量指示(link quality indication,LQI)等。物理层帧结构由同步头、物理层帧头和物理层有效载荷三部分组成,如表1 所示。

同步头又包括32bit 的前同步码和8bit 的帧定界符,前同步码用来为数据收发提供码元或数据符号的同步;帧界定符用来标识同步域的结束及数据的开始。物理层帧头包括7bit 的帧长度和1bit 的预留位,帧长度定义了物理层净荷的字节数。物理层有效载荷就是MAC层的帧内容。 表一物理层帧格式 媒体接入控制层规范 MAC 层定义了它与网络层之间的接口,包括提供给网络层的数据服务接口MLDE-SAP 和管理服务接口MLME-SAP,同时提供了MAC 层数据服务和MAC 层管理服务。MAC层数据服务主要实现数据帧的传输;MAC 层管理服务主要负责媒介访问控制、差错控制等。 MAC 层主要功能包括以下几个方面: (1)ZigBee 协调器产生网络信标 (2)设备与信标同步 (3)支持节点加入或着退出操作 (4)信道接入方式采用免冲突载波检测多路访问(CSMA-CA)机制 (5)建立并维护保护时隙机制 (6)为设备提供安全支持 MAC 帧格式由三个基本部分组成:MAC 帧头、MAC 帧载荷和MAC 帧尾。不同类型的MAC 帧,其帧头和帧尾都是一样的,只是MAC 帧载荷有差别,通用MAC 帧格式如表2所示。 表二通用MAC帧格式 网络层规范 网络层定义了它与应用层之间的接口,包括提供给应用层的数据服务接口NLDE-SAP和管理服务接口NLME-SAP , 同时提供了网络层数据服务和网络层管理服务。网络层主要负责拓扑结构的建立和网络的维护,具体的功能如下:(1)初始化网络,即建立一个新的包含协调器、路由器和终端设备的网络(2)设备连接和断开时所采用的机制 (3)对一跳邻居节点的发现和相关节点信息的存储 (4)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)。 ◆链路质量指示(LinkQualityIndication,LQI)。 ◆在2.45GHz频带内定义了16个通道;在915MHz频带内定义了10个通道;在868MHz频带内定义了1个通道。 为了使供应商能够提供最低可能功耗的设备,IEEE(InstituteofElectricalandElectronicsEngineers,电气及电子工程师学会)定义了两种不同类型的设备:一种是完整功能设备(full.functionaldevice,FFD),另一种是简化功能设备

ZigBee测试与协议分析

ZigBee测试与协议分析 1 前言 ZigBee协议栈包括物理层协议(IEEE802.15.4)和上层软件协议(ZigBee 2007以及其他的ZigBee网络协议)。本文将从这两方面来了解这些协议,通过介绍如何捕获及如何理解关键参数,深层次剖析ZigBee技术。有了这些本质性的认识,对于分析解决无线产品应用问题,会有很大的帮助。 2 物理层分析 ZigBee的物理层为IEEE802.15.4标准所规定,定义了ZigBee底层的调制编码方式。这些规约大多是芯片设计者需要关心的,对于应用开发来说,更关心的是衡量一个芯片、一个射频系统性能的参数。在过去的文章中,已介绍了输出功率、接收灵敏度和链路预算等参数,这一讲将更深入地介绍一个调制质量的参数:EVM。EVM指的是误差向量(包括幅度和相位的矢量),表征在一个给定时刻理想无误差基准信号与实际发射信号的向量差,。从EVM参数中,可以了解到一个输出信号的幅度误差及相位误差。 EVM是衡量一个RF系统总体调制质量的指标,定义为信号星座图上测量信号与理想信号之间的误差,它用来表示发射器的调制精度,调制解调器、PA、混频器、收发器等对它都会有影响。EVM数据和眼图。 了解完这个参数之后,再看看实际测试中是如何获取EVM参数的。 ZigBee物理层的测试,在产品研发、生产和维护阶段,可以分别采用不同的仪器。 (1)产品研发阶段要测量EVM参数,需要使用带协议解析的频谱仪,最好是自带相应协议插件的仪器,可以使用安捷伦PXA N9030A频谱分析仪+8960B插件(选配了ZigBee分析插件)。这些仪器可以测试出ZigBee调制信号的星座图、实时数据和眼图等信息,在芯片级开发过程中,需要考量高频电容电感以及滤波器等的单个及组合性能,特别需要注意的是ZigBee信号的临道抑制参数,利用PXA N9030A的高分辨率,可以查看点频的带外信号,这些细节在更换射频器件供应商时,需要仔细测量,一般数字电路抄板比较容易,因为器件性能的影响不是很大,只要值和封装对了就可以,但是射频前端的设计上,即使原样的封装、容值和感值,供应商不一样,射频参数也是不一样的,板材的选用也极大地影响着阻抗匹配,因此复制和再开发都有较大难度。合格的测试工具,加上有质量保证的射频器件供应商资源,方能真正具备RF设计能力。安捷伦PXA N9030A频谱分析仪。 (2)批量生产阶段在批量生产中,不可能将实验室的研发测试仪器搬到工厂,因此,需要便携小巧的测试设备,这时可用罗德与斯瓦茨公司的热功率探头,如NRP-Z22,做一个2.4 GHz的输出功率测试,保证能够输出公差允许的功率信号即可,因为在生产中,射频器件的焊接不良、馈线连接头的接触不良,都会造成输出功率的下降甚至消失。需要注意的是,探头非常容易被静电损坏,必须要带上防静电手套进行操作,返修过程如需要经过德国,则时间长,经费也不便宜,不是很严重的损坏倒是可以在深圳维修中心处理。NRP-Z22。 (3)应用阶段在现场出现问题时,ZigBee节点已经安装到现场,不能逐一拆下来测试,并且周围的电磁环境也是没办法在单个节点上检测到,这时就需要手持式的频谱仪进行现场勘查了,例如安捷伦公司的N9912A手持式频谱仪。使用该频谱仪,可以完成无线系统设计初期的现场勘查工作,检测现场各个地点是否有异常电磁干扰,对于ZigBee来说,当然是检测是否有持续的WIFI信号干扰了。同时,更为详细的现场勘查,还包括在定点进行数据发送,预期覆盖点进行信号强度分析,以实地评估墙体等障碍物的信号衰减,在已经架设好的ZigBee网络中,也可以检测信号覆盖,数据通信是否正常等。N9912A。

ZigBee协议栈OSAL介绍

讨论ZigBee协议栈的构成以及内部OSAL的工作机理。 ZigBee协议栈OSAL介绍 操作系统抽象层 OSAL常用术语: 1.资源(Resource):任何任务所占用的实体都叫资源,如变量、数组、结构体 2.共享资源(Shared Resource):两个或两个以上任务使用的资源,为防止破坏资源,任务在操作共享资源时是独占状态。 3.任务(Task):即线程,简单的程序的执行过程。任务设计时将问题尽可能分成多个任务,每个任务独立完成某项功能,同时赋予优先级、CPU寄存器和堆栈空间。一般一个任务设计为一个无限循环。 4.多任务运行(Muti-task Running):其实同一时刻只有一个任务运行。 5.内核(Kernel):内核负责管理各个任务。包括:分配CPU时间;任务调度;任务间的通信。 6.互斥(Mutual Exclusion):多任务通信最常用方法是共享数据结构。 保护共享资源常用的方法: 关中断; 使用测试并置位指令(T&S指令); 禁止任务切换; 使用信号量; 7.消息队列(Message Queue):用于任务间传递消息。 OSAL提供如下功能: 任务注册、初始化和启动; 任务间的同步、互斥; 中断处理; 储存器分配和管理; OSAL运行机理: OSAL就是一种支持多任务运行的系统资源分配机制。 OSAL是一种基于事件驱动的轮询式操作系统。、 void osal_start_system(void)是ZigBee协议栈的灵魂,不断的查看事件列表,如果有事件发生就调用相应的事件处理函数。 SYS_EVENT_MSG是一个事件集合,是由协议栈定义的事件,即系统强制事件(Mandatory Events),它的定义为: #define SYS_EVENT_MSG 0x8000; 它包含如下事件: AF_INCOMING_MSG_CMD 收到一个新的无线数据

TI_zigbee协议栈结构分析应用

无线盛世《快速进入ZB世界》
Ver:1

进入Zigbee世界的准备工作
§ 首先,我们需具备一些硬件设备及平台。以下 我就罗列一下Zigbee开发基本工具: § 计算机:不管是设计电路还是编程开发都是离 不开它的。 § Zigbee开发板:对于初学者来说,Zigbee开发 板无疑是最佳选择。有了开发板,你可以在我 们成熟设计的基础上学习或者做自己的设计。 § Zigbee模块:集MCU,RF,天线设计于一体 的Zigbee模块。使用它,我们可省去设计天线 及IC周边电路设计的复杂工作。

进入Zigbee世界的准备工作
§ Zigbee仿真器:是集烧写程序、在线编程和在线仿真 功能于一身的开发过程工作中必不可少的开发工具。 编程器既能对CC243x芯片(其实包括TI产品中的CC 系列的大部分芯片)进行烧写程序(hex标准文件程序 ),也能对CC243x芯片进行在线编程和仿真,让我们 能方便地在线调试开发,从而大大地提高了开发效率 。 § Zigbee协议分析仪:ZigBee的设计开发者必不可少的 工具!ZigBee协议分析仪具有广泛的功能,包括:分 析以及解码在PHY、MAC、NETWORK/SECURITY、 APPLICATION FRAMEWORK、和APPLICATION PROFICES等各层协议上的信息包;显示出错的包以 及接入错误;指示触发包;在接收和登记过程中可连 续显示包。

进入Zigbee世界的准备工作
§ 再次,我们需要在将用于开发Zigbee的计 算机平台上安装这些软件: § Zigbee协议分析软件(sniffer) § 程序烧写软件(Flash Programmer) § IAR公司的EW8051 version 7.20I/W32 。

Zigbee协议栈学习总结教学提纲

典型的智能家居网络总体结构图 智能家居系统模块整体框图

ZigBee是一种标准,该标准定义了短距离、低速率传输速率无线通讯所需要的一系列通信协议。基于ZigBee的无线网络所使用的工作频段为868MHz、915MHz和2.4GHz,最大数据传输速率为250Kbps。 ZigBee无线网络共分为5层:物理层(PHY),介质访问控制层(MAC),网络层(NWK),应用程序支持子层(APS),应用层(APL)。 总体而言,ZigBee技术有如下特点:高可靠性,低成本,低功耗,高安全性,低数据速率

Zigbee网络中的设备主要分为三种: 1,协调器,协调器节点负责发起并维护一个无线网络,识别网络中的设备加入网络,一个ZigBee 网络只允许有一个ZigBee 协调器; 2,路由器,路由器节点支撑网络链路结构,完成数据包的转发;。ZigBee 网格或树 型网络可以有多个ZigBee 路由器。ZigBee 星型网络不支持ZigBee 路由器。 3,终端节点,负责数据采集和可执行的网络动作。 从功能上,zigbee节点应由微控制器模块、存储器、无线收发模块、电源模块和其它外设功能模块组成。 ZigBee/IEEE802.15.4定义了两种类型的设备:它们是全功能设备(FFD,Full Function Device)和精减功能设备(RFD,Reduced Function Device)。FFD可以当作一个网络协调器或者一个普通的传感器节点,它可以和任何其他的设备通讯,传递由RFD发来的数据到其他设备,即充当了路由的功能。而RFD只能是传感器节点,它只能和FFD进行通讯,经过FFD可以将自己测得数据传送出去。在ZigBee网络中大多是这两种设备,网络中结点数理论上最多可达65,536个,可以组成三种类型网络:星型、网状型和树型。 星状网络由一个PAN 协调器和多个终端设备组成,只存在PAN 协调器与终端的通讯,终端设备间的通讯都需通过PAN 协调器的转发。 树状网络由一个协调器和一个或多个星状结构连接而成,设备除了能与自己的父节点或子节点进行点对点直接通讯外,其他只能通过树状路由完成消息传输。 网状网络是树状网络基础上实现的,与树状网络不同的是,它允许网络中所有具有路由功能的节点直接互连,由路由器中的路由表实现消息的网状路由。 星型,如果用星型网络的话,在房间内的节点是否能够穿墙,与房间外的协调器进行正常通信。

2020年Zigbee协议栈中文说明免费

1.概述 1.1解析ZigBee堆栈架构 ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。图1-1给出了这些组件的概况。 1.1.1ZigBee堆栈层 每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。 设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。 图1-1 zigbe堆栈框架 从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。 端点之间的通信是通过称之为簇的数据结构实现的。这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。图1-1-2就是设备及其接口的一个例子:

图1-1-2 每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有二个特殊的端点,即端点0和端点255。端点0用于整个ZigBee设备的配置和管理。应用程序可以通过端点0与ZigBee 堆栈的其它层通信,从而实现对这些层的初始化和配置。附属在端点0的对象被称为ZigBee设备对象 (ZD0)。端点255用于向所有端点的广播。端点241到254是保留端点。 所有端点都使用应用支持子层(APS)提供的服务。APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。APS使用网络层(NWK)提供的服务。NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZD0)对网络层参数进行配置和访问。 1.1.2 80 2.15.4 MAC层 IEEE 802.15.4标准为低速率无线个人域网(LR-WPAN)定义了OSI模型开始的两层。PHY层定义了无线射频应该具备的特征,它支持二种不同的射频信号,分别位于2450MHz波段和868/915MHz 波段。2450MHz波段射频可以提供250kbps的数据速率和16个不同的信道。868 /915MHz波段中,868MHz支持1个数据速率为20kbps的信道,915MHz支持10个数据速率为40kbps的信道。MAC层负责相邻设备间的单跳数据通信。它负责建立与网络的同步,支持关联和去关联以及MAC 层安全:它能提供二个设备之间的可靠链接。 1.1.3 关于服务接入点 ZigBee堆栈的不同层与802.15.4 MAC通过服务接入点(SAP)进行通信。SAP是某一特定层提供的服务与上层之间的接口。 ZigBee堆栈的大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制。 1.1.4 ZigBee的安全性 安全机制由安全服务提供层提供。然而值得注意的是,系统的整体安全性是在模板级定义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。 每一层(MAC、网络或应用层)都能被保护,为了降低存储要求,它们可以分享安全钥匙。SSP是通过ZD0进行初始化和配置的,要求实现高级加密标准(AES)。ZigBee规范定义了信任中心的用

zigbee协议栈源码

竭诚为您提供优质文档/双击可除 zigbee协议栈源码 篇一:zigbeez-stack协议栈构架 zstack基础 1、zstack协议栈构架 zigbee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些应用层api,供用户调用。协议栈体系分层架构与协议栈代码文件夹对应表如下:整个协议栈的构架,如图所示 app:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。 hal:硬件层目录,包含有与硬件相关的配置和驱动及操作函数。 mac:mac层目录,包含了mac层的参数配置文件及其mac的lib库的函数接口文件。 mt:监控调试层,主要用于调试目的,即实现通过串口调试各层,与各层进行直接交互。nwk:网络层目录,含网络层配置参数文件及网络层库的函数接口文件,aps层库的

函数接口。 osal:协议栈的操作系统。 profile:aF层目录,包含aF层处理函数文件。 security:安全层目录,安全层处理函数接口文件,比如加密函数等。 services:地址处理函数目录,包括着地址模式的定义及地址处理函数。 tools:工程配置目录,包括空间划分及zstack相关配置信息。 zdo:zdo目录。 zmac:mac层目录,包括mac层参数配置及mac层lib 库函数回调处理函数。zmain:主函数目录,包括入口函数main()及硬件配置文件。 output:输出文件目录,这个ew8051ide自动生成的。 2、zigbee20xx协议栈源码库结构分析 了解了zigbee20xx协议栈整个构架后,再来看看协议栈源码库结构是什么样的,各层的具体文件是什么,建立不同的项目、添加自己的应用层任务及处理函数需要修改什么文件。zigbee20xx协议栈zstack-1.4.2文件目录及说明如下: 打开smapleapp项目工程 先看app层:

Zigbee协议栈中文说明免费

Zigbee协议栈中文说明 1.概述 1.1解析ZigBee堆栈架构 ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。图1-1给出了这些组件的概况。 1.1.1ZigBee堆栈层 每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。 设备是由模板定义的,并以应用对象(Application Objects)的形式实现(见图1-1)。每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。 图1-1 zigbe堆栈框架 从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。 端点之间的通信是通过称之为簇的数据结构实现的。这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义。图1-1-2就是设备及其接口的一个例子:

图1-1-2 每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有二个特殊的端点,即端点0和端点255。端点0用于整个ZigBee设备的配置和管理。应用程序可以通过端点0与ZigBee 堆栈的其它层通信,从而实现对这些层的初始化和配置。附属在端点0的对象被称为ZigBee 设备对象 (ZD0)。端点255用于向所有端点的广播。端点241到254是保留端点。 所有端点都使用应用支持子层(APS)提供的服务。APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。APS使用网络层(NWK)提供的服务。NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZD0)对网络层参数进行配置和访问。 1.1.2 80 2.15.4 MAC层 IEEE 802.15.4标准为低速率无线个人域网(LR-WPAN)定义了OSI模型开始的两层。PHY层定义了无线射频应该具备的特征,它支持二种不同的射频信号,分别位于2450MHz波段和868/915MHz 波段。2450MHz波段射频可以提供250kbps的数据速率和16个不同的信道。868 /915MHz波段中,868MHz支持1个数据速率为20kbps的信道,915MHz支持10个数据速率为40kbps的信道。MAC层负责相邻设备间的单跳数据通信。它负责建立与网络的同步,支持关联和去关联以及MAC 层安全:它能提供二个设备之间的可靠链接。 1.1.3 关于服务接入点 ZigBee堆栈的不同层与802.15.4 MAC通过服务接入点(SAP)进行通信。SAP是某一特定层提供的服务与上层之间的接口。 ZigBee堆栈的大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制。 1.1.4 ZigBee的安全性 安全机制由安全服务提供层提供。然而值得注意的是,系统的整体安全性是在模板级定义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安全。 每一层(MAC、网络或应用层)都能被保护,为了降低存储要求,它们可以分享安全钥匙。SSP是通过ZD0进行初始化和配置的,要求实现高级加密标准(AES)。ZigBee规范定义了信任中心的用途。信任中心是在网络中分配安全钥匙的一种令人信任的设备。 1.1.5 ZigBee堆栈容量和ZigBee设备 根据ZigBee堆栈规定的所有功能和支持,我们很容易推测ZigBee堆栈实现需要用到设备中的大量存储器资源。不过ZigBee规范定义了三种类型的设备,每种都有自己的功能要求:ZigBee

zigbee协议栈代码主要名词解释

zigbee协议重要名词解释及英文缩写(转载)网络层功能: 1. 加入和退出网络 2. 申请安全结构 3. 路由管理 4. 在设备之间发现和维护路由 5. 发现邻设备 6. 储存邻设备信息 当适当的重新分配地址联合其他设备,ZIGBEE2006可以依赖于网络协调者建立一个新网络. ZIGBEE应用层由APS(应用支持)、AF(应用结构)、ZDO(ZIGBEE设备对象)和厂商自定义应用对象组成。 APS功能 1. 绑定维持工作台,定义一个两个合拢的设备进行比较建立他们的需要和服务。 2. 促进信息在设备之间的限制 3. 组地址定义,移除和过滤组地址消息 4. 地址映射来自于64位IEEE地址和16位网络地址 5. 分裂、重新组装和可靠数据传输 ZDO功能 1. 定义设备内部网络(ZigBee协调者和终端接点) 2. 开始和/或回答绑定请求 3. 在网络设备中建立一个网络安全关系 4. 在网络中发现设备和决定供给哪个应用服务 ZDO同样有责任在网络中发现设备和为他们提供应用服务。 1.1.4 网络拓扑 ZIGBEE网络层支持星状、树状和网状拓扑。在星状拓扑中网络受约束与单个设备,呼叫COORD。COORD有责任建立和维持在网络中发现的设备和其他所有设备,都知道的终端接点直接和COORD 通信。在网状和树状拓扑中,COORD有责任建立一个网络和选择几个关键网络参数,但是网络有有可能直接应用于ZigBee路由器。在树状网络中,利用分等级路由策略完成路由传输数据和控制消息直通网络。树状网络在802.15.4-2003中可以采用信标引导通信。网状网络将允许所有对等网络通信。ZIGBEE 路又将不能在网状网络中发射规则的IEEE802.15.4-2003信标。

从Zigbee协议栈底层添加自己的按键配置

本实验是基于ZStack-CC2530-2.5.1a版本的协议栈来进行实验的,整个实验需要改动 hal_board_cfg.h、hal_board_cfg.h、hal_key.c、hal_key.h和自己定义的Coordinator.c这5个文件。 注意:添加自己的按键时尽量不要修改协议栈里面的按键程序,自己另行添加即可。 1、hal_key.h 在/* Switches (keys) */下面添加自己的按键定义 #define HAL_KEY_SW_8 0x80 图1: ---------------------------------------------------------------------------------------- 2、hal_board_cfg.h 在/* S6 */ #define PUSH1_BV BV(1) #define PUSH1_SBIT P0_1 #if defined (HAL_BOARD_CC2530EB_REV17) #define PUSH1_POLARITY ACTIVE_LOW #elif defined (HAL_BOARD_CC2530EB_REV13) #define PUSH1_POLARITY ACTIVE_LOW #else #error Unknown Board Indentifier #endif 下面模仿/* S6 */下的程序定义自己的按键值: /* S8 */ #define PUSH8_BV BV(4)//修改 #define PUSH8_SBIT P0_4//修改 #if defined (HAL_BOARD_CC2530EB_REV17)

ZigBee测试与协议分析

无线通信在嵌入式系统中的应用讲座(28) ZigBee 测试与协议分析 1.1 前言 ZigBee 协议栈包括物理层协议[IEEE802.15.4]和上层软件协议[ZigBee 2007(以及其他的ZigBee 网络协议)],本文将从这两方面来了解这些协议,通过介绍如何捕获,如何理解关键参数,使得我们得以深层次剖析ZigBee 技术,有了这些本质性的认识,对于分析解决无线产品应用问题,会有很大的帮助。 1.2 物理层分析 ZigBee 的物理层为IEEE802.15.4标准所规定,定义了ZigBee 底层的调制编码方式,这些规约大多是芯片设计者需要关心的,对于应用开发来说,我们更关心的是衡量一个芯片一个射频系统好坏的一个参数,在过去的文章中,我们了解过了输出功率,接收灵敏度和链路预算等参数,这一次我们更深入的去了解一个调制质量的参数:EVM 。 EVM 指的是误差向量(包括幅度和相位的失量),表征在一个给定时刻理想无误差基准信号与实际发射信号的向量差,如图 1所示,从EVM 参数中,我们可以了解到一个输出信号的: ? 幅度误差; ? 相位误差。 图 1 矢量误差EVM 示意图 EVM 是衡量一个RF 系统总体调制质量指标,定义为信号星座图上测量信号与理想信号之间的误差,它用来表示发射器的调制精度,调制解调器、PA 、混频器、收发器等对它都会有影响。

图 2 EVM数据和眼图 了解完这个参数之后,我们看看实际测试中,是如何获取EVM参数的。 ZigBee物理层的测试,在产品研发、生产和维护阶段,分别使用以下三种仪器测试:1.产品研发阶段 要测量EVM参数,需要使用带协议解析的频谱仪,最好是自带相应协议插件的仪器i,可以使用安捷伦PXA N9030A频谱分析仪+8960B插件[选配了ZigBee分析插件]。这些仪器可以测试出ZigBee调制信号的星座图,实时数据和眼图等信息,在芯片级开发过程中,需要考量高频电容电感以及滤波器等的单个及组合性能,特别需要注意的是ZigBee信号的临道抑制参数,利用PXA N9030A的高分辨率,可以查看点频的带外信号,这些细节在更换射频器件供应商时,需要仔细测量,一般数字电路抄板比较容易,因为器件性能的影响不是很大,只要值和封装对了就可以,但是射频前端的设计上,即使原样的封装、容值和感值,供应商不一样,射频参数也是不一样的,板材的选用也极大的影响着阻抗匹配,因此复制和再开发都有较大难度。合格的测试工具,加上有质量保证的射频器件供应商资源,方能真正具备RF设计能力。 图 3 安捷伦PXA N9030A 2.批量生产阶段 在批量生产中,不可能将实验室的研发测试仪器搬到工厂,因此,需要便携小巧的测试设备,这时可用罗德与斯瓦茨公司的热功率探头,如NRP-Z22,做一个2.4Ghz的输出功率测试,保证能够输出公差允许的功率信号即可,因为在生产中,射频器件的焊接不良、馈线连接头的接触不良,都会造成输出功率的下降甚至消失。需要注意的是,探头非常容易被静电损坏,必须要带上防静电手套进行操作,返修过程如需要经过德国,则时间长,经费也不便宜,不是很严重的损坏倒是可以在深圳维修中心处理。

1.ZigBee协议栈简介

1、ZigBee协议栈简介 本节内容仅仅是对ZigBee协议栈的一些大家必须理解清楚的概念进行简单的讲解,并没有对ZigBee协议栈的构成及工作原理进行详细的讨论。让刚接触ZigBee协议栈的朋友们对它有个初步的感性认识,有助于后面使用ZigBee协议栈进行真正的项目开发。 什么是ZigBee协议栈呢?它和ZigBee协议有什么关系呢 协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无线数据收发。 图1展示了ZigBee无线网络协议层的架构图。ZigBee的协议分为两部分,IEEE 802.15.4定义了PHY(物理层)和MAC(介质访问层)技术规范;ZigBee 联盟定义了NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。ZigBee协议栈就是将各个层定义的协议都集合在一直,以函数的形式实现,并给用户提供API(应用层),用户可以直接调用。 图1 ZigBee无线网络协议层 在开发一个应用时,协议较底下的层与应用是相互独立的,它们可以从第三方来获得,因此我们需要做的就只是在应用层进行相应的改动。 介绍到这里,大家应该清楚协议和协议栈的关系了吧,是不是会想着怎么样才能用协议栈来开发自己的项目呢?技术总是不断地在发展地,我们可以用ZigBee厂商提供的协议栈软件来方便地使用ZigBee协议栈(注意:不同厂商提供的协议栈是有区别的,此处介绍TI推出的ZigBee 2007协议栈也称Z-Stack)。 Z-stack是挪威半导体公司Chipcon(目前已经被TI公司收购)推出其CC2430开发平台时,推出的一款业界领先的商业级协议栈软件,由于这个协议栈软件的出现,用户可以很容易地开发出具体的应用程序来,也就是大家说的掌

ZigBee协议架构

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 ZigBee协议架构 甲方:___________________ 乙方:___________________ 日期:___________________

(application layer,APL )架构. 图1 zigbee协议栈体系结构 物理层规范 物理层定义了它与MAC层之间的两个接口:数据服务接口PD-SAP和管理服务接口PLME-SAP其中PD-SAP接口还为物理层提供了相应的数据服务,负责从无线物理信道上收发数据,而PLME-SAPg口同时为物理层提供相应的管理服务,用丁维护一个由物理层相关数据组成的数据库。物理层负责数据的调制、发送和接收、空闲信道评估(clear channel assessment,CCA)信道能量的监测(energy detect,ED )和链接质量指示(link quality indication , LQI)等。物理层帧结构由同步头、物理层帧头和物理层*效载荷三部分组成,如表1所示。 同步头乂包括32bit的前同步码和8bit的帧定界符,前同步码用来为数据收发提供码元或数据符号的同步;帧界定符用来标识同步域的结束及数据的开始。物理层帧头包括7bit的帧长度和1bit的预留位,帧长度定义了物理层净荷的字节数。物理层有效载荷就是MAC层的帧内容。 表一物理层帧格式

媒体接入控制层规范 MAC层定义了它与网络层之间的接口,包括提供给网络层的数据服务接口MLDE-SAFffi管理服务接口MLME-SAP同时提供了MAC层数据服务和MAC层管理服务。MA@数据服务主要实现数据帧的传输;MAC层管理服务主要负责媒介访问控制、差错控制等。 MAC层主要功能包括以下几个方面: (1) ZigBee协调器产生网络信标 (2) 设备与信标同步 (3) 支持节点加入或着退出操作 (4) 信道接入方式采用免冲突载波检测多路访问(CSMA-CA机制 (5) 建立并维护保护时隙机制 (6) 为设备提供安全支持 MAC帧格式由三个基本部分组成:MAC帧头、MAC帧载荷和MAC帧尾。不同类型的MAC帧,其帧头和帧尾都是一样的,只是MAC帧载荷有差别,通用MAC帧格式如表2所小。 表二通用MA#格式 网络层规范 网络层定义了它与应用层之间的接口 ,包括提供给应用层的数据服务接口 NLDE-SAP管理服务接口NLME-SAP,同时提供了网络层数据服务和网络层管理 服务。网络层主要负责拓扑结构的建立和网络的维护,具体的功能如下: (1) 初始化网络,即建立一个新的包含协调器、路由器和终端设备的网络 (2) 设备连接和断开时所采用的机制 (3) 对一跳邻居节点的发现和相关节点信息的存储 (4) ZigBee协调器和路由器为新加入节点分配短地址 (5)确保MAC正常工作,并且为应用层提供合适的服务接口 网络层帧结构包括网络层帧头(Network header, NHR和网络层载荷(Network payload,NPL)两部分,其中网络层帧头域由帧控制域、目的设备地址、源设备地址、广播半径和广播序列号等部分组成,通用网络帧的结构如表3所示。 表3通用网络层帧结构

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)。 ◆链路质量指示(LinkQualityIndication,LQI)。

相关文档
最新文档