Zigbee建网和入网过程试验_第1页
Zigbee建网和入网过程试验_第2页
Zigbee建网和入网过程试验_第3页
Zigbee建网和入网过程试验_第4页
Zigbee建网和入网过程试验_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——Zigbee建网和入网过程试验6.2Zigbee建网和入网过程试验

本试验通过SampleApp这个例子实现数据在ZigBee网络中的简单传输。要求把握网络组建及协议分析仪的使用方法。

6.2.1试验目的与器材

1)试验目的

?熟悉zigbee协议的三种设备建网时所担任的角色;?学习Z-Stack2023/PRO协议栈中协调器如何建立网络;?学习Z-Stack2023/PRO协议栈中路由和终端如何参与网络;?学习TI官方提供的抓包工具(Sniffer)的应用及协议分析。2)试验器材

?3个CC2530开发套件(1个协调器模块,2个路由器模块);

6.2.2试验原理与步骤

1)硬件介绍

CC2530开发套件如试验一中的硬件介绍,这里就不再陈述。2)试验原理1设备的分类

ZigBee网络只支持两种设备:

1)全功能设备(FFDFullFunctionDevice)

2)精简功能设备(也叫半功能设备ReducedFunctionDevice)两者的比较:

其中FFD设备能够提供MAC层的所有服务,可充当任何ZigBee节点,不仅可以接收发送数据,还具有路由功能,因此可以接收子节点;而RFD只能提供部分的MAC层服务,只能充当子节点,只负责将采集到的数据发送给协调器和路由器节点,本身并不具有路由功能,因此不能接收子节点信息,RFD之间的通信只能通过FFD来完成。

ZigBee标准在此基础上定义了三种节点:ZigBee协调器(Coordinator)、ZigBee路由器(Routers)、ZigBee终端(EndDevice)2所使用的设备

所用的ZigBee设备都具有连接网络和断块网路的功能。ZigBee协调器和路由器都具有以下附加功能:1)允许设备以如下方式连接网路:

①MAC(MediumAccessControl)层的连接命令。②应用层的连接请求

2)允许设备以如下方式断开网络;①MAC层的断开命令②应用层的断开命令③对规律网络地址的分派

④维护邻居设备3组建网络

组建一个网状的ZigBee网络包括两个步骤:网络的初始化和节点参与网络;而节点参与网络又有两个步骤:通过协调器参与网络和通过已有节点入网。

1)网络的初始化

ZigBee网络的建立是由协调器(Coordinator)发起的,任何一个节点想建立一个网络必需满足两个条件:

①节点是FFD节点,具有协调器功能;

②节点还没有和其他网络连接(一个网络中只许有一个协调器)网络初始化过程如图图6-2-1所示。

节点上电激活是否FFD节点?否是是否建立网络?是否确定网络协调器失败启动并初始化ZigBee协议栈信道扫描无是否有适合信道?有选择适合信道设置PANID和协调器短地址网络初始化成功等待其他节点参与网络

图6-2-1网络初始化流程

网络初始化流程如下:

1)确定网络协调器。

首先判断节点是否是FFD节点,接着判断次节点是否是其他网络里的网络协调器(通过编程设定其节点属性)。通过主动扫描,发送一个信标请求命令(Beaconrequestcommand),然后还要设置一个扫描期限时间(T_scan_duration),假使在扫描期内没有检测到信标,那么此FFD即可建立自己ZigBee网络,并且作为这个网络的协调器不断产生信标并广播出去。

2)进行信道扫描。包括能量扫描和主动扫描。首先对指定的信道或默认的信道进行能量扫描,以避免可能的干扰。为实现能量检测扫描,设备网络层通过发送扫描类型(ScanType)参数设置为能量检测扫描的MLME-SCAN.request原语到MAC层进行信道能量检测扫描扫描结果通过MLME-SCAN.confirm原语返回。当网络层关联实体收到成功的能量检测扫描结果后,将以递增的方式对所测的能量值进行信道排序,并且抛弃那些能量值超出了可允许能量水平的信道,选择可允许能量水平的信道作下一步处理

然后,网络管理实体将通过发送MLME-SCAN.Request原语进行主动扫描,其中该原语的ScanType参数设置为主动扫描。探寻节点通信半径内的网络信息。这些信息以网络信标帧的形式在网络中广播,节点通过主动扫描形势接收这些信标帧,然后根据这些信息,找到一个较好的,相对恬静的信道,该信道存在最少的ZigBee网络(最好也没有ZigBee设备)。

3)设置网络ID。找到适合的网络后,协调器将为这个新网络选择一个PAN标识符(PANID,取值≦0x3FFF),这个ID在所使用的信道中必需是唯一的。PANID可以通过监听通道内其他网络的ID来选择一个不会冲突的ID的方式来获取,也可以人为的指定。

在ZigBee网络中有两种地址模式:扩展地址或叫做MAC地址(64位)和短地址(16位),其中扩展地址由IEEE组织分派,用于唯一的设备标识;短地址用于本地网络中的设备标识,在一个网络中,每个设备的短地址必需唯一,当节点参与网络时由其父节点分派并通过使用短地址进行通信。对于协调器来说,短地址寻常设定为0X0000;

网络初始化包括两方面的内容:确定初始化参数和选定参数配置到节点中。节点需要初始化的参数如下:操作信道LogicChannel、PANID、节点自身短地址macShorAddress、信标周期BeaconOrder、超帧激活周期SuperframeOrder等。在确定网络的初始化参数之后,将通过调用MAC层的MLNE-SAP接口的设置原语(MLME-SET)和开始原语(MLME-START)将选定的参数配置到节点的MAC中。如图6-2-2所对应的建立网络流程。

ZigBeeCoodAPLZigBeeCoodNWKZigBeeCoodMAC启动建立一个网络NLME-NETWORK-FORMATION.request信道扫描请求MLME-SCAN.request信道扫描完成完成后返回MLME-SCAN.request主动扫描MLME-SCAN.request完成后应答主动扫描完成MLME-SCAN.request选择信道、PANIDmacPANID设置和规律地址MLME-SET.requestMLME-SET.confirm应答PAN启动MLME-START.requestMLME-START.confirm启动后返回NLME-NETWORK-FORMATION.confirm

图6-2-2建立一个新网络

4节点通过协调器参与网络

当ZigBee协调器确定以后,节点首先需要和协调器建立连接参与网络。

FFD节点上电激活主动扫描查找范围内的协调器N检测到信标?Y向协调器发送关联参与命令N协调器资源足够YNaResponsetime时间内做出决定直接从协调器信标内提取关联相应命令向协调器发送数据请求命令提取成功?协调器将关联相应命令发送给节点NY参与成功,获得网络短地址图6-2-3节点(FFD)与协调器连接参与网络的流程图

为了建立连接,FFD节点需要向协调器提出连接请求,协调器接收到节点的连接请求后根据状况决定是否允许其连接,然后对请求连接的节点做出响应,节点与协调器建立连接以后,才能实现数据的收发。如图6-2-3所示,具体的流程可以分为以下几步:

1)查找网络协调器。首先会主动扫描查找周边网络的协调器,假使在扫描期限内检测到信

标,那么将获得协调器的有关信息,这时就向协调器发送连接请求,在选择适合的网络后,上层将请求MAC层对物理层和MAC层的phyCurrentChannel、macPANID等PIB(数据库)属性进行相应的设置。假使没有检测到,间隔一段时间后,节点重新发送扫描。2)发送关联请求命令(Associaterequestcommmand)。节点将关联请求命令发给协调器,

协调器收到后马上回复一个确认帧(ACK),同时向它的上层发送连接指示原语,表示已经收到节点的连接请求。但这并不意味着已经建立连接,只表示协调器已经收到节点的连接请求。当协调器的MAC层的上层接收到连接指示原语后,将根据自己的资源状况(存储空间和能量)决定是否同意此节点参与请求,然后给节点MAC层发送响应。

3)等待协调器处理。当节点收到协调器参与请求命令的ACK后,节点的MAC将等待一段时

间,接收协调器的连接响应。在预定的时间内,假使接收到连接响应,它将这个响应向它的上层通告。而协调器给节点的MAC层发送响应时会设置一个等待响应时间(T_ResponseWaitTime)来等待协调器对其参与请求命令的处理,若协调器资源足够,协调器会给节点分派一个16位的短地址,并产生包含新地址和连接成功状态的连接响

应命令,则此节点将成功的和协调器建立连接并可以开始通信。若协调器资源不够,待参与的节点将重新发送请求信息,直到入网成功。

4)发送数据请求命令。假使协调器在响应时间内同意节点参与,那么将产生关联响应命令

(Associatereponsecommand)并先存储这个命令。当响应时间过后,节点发送数据请求命令(Datarequestcommand)给协调器,协调器收到后马上回复ACK,然后将存储的关联响应命令发给节点。假使在响应时间到后,协议器还没有决定是否同意节点参与,那么节点将试图从协议器的信标帧中提取关联响应命令,成功的话就可以入网成功,否则重新发送请求信息直到入网成功。

5)回复。节点收到关联响应命令后,马上向协调器回复一个确认帧(ACK),以确认接收到

连接响应命令,此时节点将保存协调器的短地址和扩展地址,并且节点的MLME向上层发送连接确认原语,通告关联参与成功的信息。

上面的完成以后,等待参与网络的节点应当已经收到协调器的参与请求回复。假使该请求通过,该节点将成功和协调器建立连接并获得网络地址和其他节点进行通信。在上述连接过程中,请求建立连接的节点的上层生成连接请求原语发送给节点的MAC层。MAC层的MLME接收到这个原语后,先向物理层发送和原语更新phyCurrentchannel和macPANID的值,然后生成一个含有建立连接请求的命令帧发送给指定的协调器。节点在发送命令帧时使用CSMA-CA(载波侦听多址接入—冲突避免)。如图6-2-4所示为节点连接过程原语时序图。

节点上层MLME-SCAN.request选择适合的PANMLME-SCAN.confirmMLME-ASSOCIATE.request执行CSMAPD-DATA.request连接请求Association.requesrtPD-DATA.confirmt确认AcknowledgementPD-DATA.indicationT_AcWaitPD-DATA.confirmtT_ResponseWaitTimeMLME-ASSOCIATE-indicationPD-DATA.indicationPD-DATA.requestT_AS_SCAN执行主动扫描节点MAC节点PHYBeaconrequestBeacon...协调器PHY...协调器MAC协调器上层...SendACKMLME-ASSOCIATE-reponse执行CSMAPD-DATA.requestPD-DATA.confirmt...PD-DATA.indicationPD-DATA.indicationMLME-ASSOCIATE.confirmtPD-DATA.requestPD-DATA.confirmt连接响应Association.response数据请求DatarequestStoreAssociateresponsePD-DATA.indicationPD-DATA.requestPD-DATA.confirmt执行CSMAPD-DATA.requestPD-DATA.confirmtSendACK确认Acknowledgement确认AcknowledgementPD-DATA.indicationT_AcWaitSendACK图6-2-4节点与协调器连接原语时序图

5节点通过已有节点参与网络

当靠近协调器的FFD节点和协调器关联成功后,处于这个网络范围内的其他节点就以这些FFD节点作为父节点参与网络了,具体参与网络的方式有两种:

①通过关联(association)方式,就是待参与节点发起参与网络;也就是子设备用MAC连接程序来参与网络

②直接方式(direct)方式,子设备直接同一个预先所指定的父设备连接来参与网络。

其中关联方式是ZigBee网络中新节点参与网络的主要途径

对于一个节点来说,只有没有参与网络的才能进行参与网络。在这些节点中,有些是曾经参与过网络,但是却与父节点失去联系(这样的节点称为孤儿节点),而有些则是新节点。当是孤儿节点时,在它的相邻表中存有原父节点的信息,于是它可以直接给源父节点发送参与网络的请求信息。假使父节点有能量同意它参与,于是直接告知它的以前被分派的网络地址,它便入网成功;假使此时它原来的父节点的网络中,子节点数已经达到最大值,也就是说网络地址已经分派满,父节点便无法批准它参与,它只能以新节点身份重新寻觅并参与网络。

而对于新节点来说,它首先会在预先设定的一个或多个信道上通过主动或被动扫描周边它可找到的网络,寻觅有能批准自己参与网络的父节点,并把可以找到的所有父节点的资料存入自己的相邻表。存入相邻表的父节点的资料包括:ZigBee协议的版本、堆栈的规范、PANID和可以参与的信息。在相邻表中所有的父节点中选择一个发送请求。假使发送的请求被批准,那么父节点同时会被分派给它一个16为的网络地址,此时入网成功,子节点可以开始通信。假使请求失败,那么重新查找相邻表,继续发送请求信息,直到参与网络或者相邻表中没有了适合的父节点。3)试验步骤

第一步:开启协调器,蓝灯先亮,然后黄灯闪烁几下,既而一直保持亮。其次步:开启路由器,蓝灯先亮,然后黄灯闪烁几下,既而一直保持亮。第三步:按动一下协调器的上键,这时路由器的绿灯闪烁四下。第四步:按动一下路由器的上键,这时协调器的绿灯闪烁四下。4)程序清单

清单6.2.1管理协调器的孩子节点,并向这些节点发送关联消息

/*******************************************************************************函数名ZDP_NwkAddrReq

*描述构建并发送一个网络地址请求帧。利用广播的方式,利用IEEE地址来寻求

网络地址。

*参数IEEEAddress:获取的设备IEEE地址;ReqType:两种获取方式。一个是单

一获取(0x0001),一个是扩展获取(0x0002)。StartIndex:开始索引,默认为0;SecurityEnable:安全选项;

*返回值afStatus_t

*****************************************************************************/afStatus_tZDP_NwkAddrReq(uint8*IEEEAddress,byteReqType,

byteStartIndex,byteSecurityEnable){

uint8*pBuf=ZDP_TmpBuf;

bytelen=Z_EXTADDR_LEN+1+1;//IEEEAddress+ReqType+StartIndex.zAddrType_tdstAddr;

(void)SecurityEnable;//Intentionallyunreferencedparameter

if(osal_ExtAddrEqual(saveExtAddr,IEEEAddress)==FALSE){

dstAddr.addrMode=AddrBroadcast;

dstAddr.addr.shortAddr=NWK_BROADCAST_SHORTADDR_DEVRXON;}else{

dstAddr.addrMode=Addr16Bit;

dstAddr.addr.shortAddr=ZDAppNwkAddr.addr.shortAddr;}

pBuf=osal_cpyExtAddr(pBuf,IEEEAddress);

*pBuf++=ReqType;*pBuf++=StartIndex;

returnfillAndSend(}

6.2.3试验结果

我们可以通过协议分析仪分析ZigBee数据包来描述试验的结果。以下是利用协议分析仪分析建立ZigBee网络,节点参与及发送数据的试验过程。

图5协调器上电之后的广播包1

图6协调器上电之后的广播包2

如图5所示,第一行,协调器首先上电,完成网络的初始化,选择一个适合的信道,并且为自己的网络选择一个PAN_ID(0x2053),然后向周边发生beaconrequest的包。从其次行开始此协调器对信道进行扫描(主动扫描),然后不停的发送广播包(0xFFFF)。广播的内容可以根据APSCluster确定。此时的APSCluster为0x0001。它是的意思是将节点要参与网络的IEEE地址发送给协调器。具体实现方式如程序清单6.2.1所示,其中ReqType参数的请求方式类型有两种,一个为单一获取(0x0001),一个为扩展获取(0x0002)。这里的单一获取方式0x0001标识码即为APSClusterId。APSProfileId为不同的应用所定义的不同Profile,这里的sampleApp为0x0F08,可以在SampleApp.h文件中找到。APSDest.Endpoint

为设备的端口号,这里为0x14。关于端口号前面已经讲过,这里就不再陈述。

在第四行,协调器发送了一个网络层的命令帧,该帧的目的地址为0xFFFC,表示只是所有的协调器和路由器才能接收到该消息。该命令帧是路由请求命令,它允许发送该命令的设备请求其无线覆盖范围的其他设备针对一个特定的目的设备执行路由探寻,在网络中建立状态信息以使得消息能够更便利快捷地传递到目的设备。由于目前没有开启路由设备,所以Count为0,List_status_list也为空。每个路由请求命令帧间隔15秒,利用#defineNWK_LINK_STATUS_PERIOD15进行的设置,该宏定义在nwk_globals.h文件中。接下来协调器广播3条地址请求信息,广播一条路由请求命令帧,直到新的节点参与。

图7路由节点0x2B38参与网络

将一个路由节点上电,这样路由节点会首先向周边的环境做一个信道能量扫描选择一个能量比较适合的信道进行网络搜寻。这里需要注意的是信道能量是有一个等级的,在Z-Stack里面会有一个门限值,当这个能量低于这个门限会被认为没有网络。当信道选择好之后,路由节点也会周期性的向周边发送Beaconrequest的包来寻求协调器的回复,如图7所示。

当协调器接收到路由节点的Beaconrequest包之后会发送一个包含自己IEEEMAC地址的超帧。主要目的是为了将自己的MAC地址(64位)交给路由器,以便后续的通信。

路由器接收到超帧之后,将协调器的IEEE地址保存起来,并利用这个地址向协调器发生一个Associationrequest的包,这个包目的是寻求参与网络。收到协调器的MAC层的确认帧之后,紧接着发生一个DataRequest的包来寻求协调器给其分派的16位网络短

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论