当前位置:文档之家› Zigbee建网和入网过程实验

Zigbee建网和入网过程实验

Zigbee建网和入网过程实验
Zigbee建网和入网过程实验

6.2 Zigbee建网和入网过程实验

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

6.2.1 实验目的与器材

1)实验目的

◆熟悉zigbee协议的三种设备建网时所担任的角色;

◆学习Z-Stack2007/PRO协议栈中协调器如何建立网络;

◆学习Z-Stack2007/PRO协议栈中路由和终端如何加入网络;

◆学习TI官方提供的抓包工具(Sniffer)的应用及协议分析。

2)实验器材

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

6.2.2 实验原理与步骤

1)硬件介绍

CC2530开发套件如实验一中的硬件介绍,这里就不再陈述。

2)实验原理

1 设备的分类

ZigBee网络只支持两种设备:

1)全功能设备(FFD Full Function Device)

2)精简功能设备(也叫半功能设备 Reduced Function Device)

两者的比较:

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

ZigBee标准在此基础上定义了三种节点:

ZigBee协调器(Coordinator)、ZigBee路由器(Routers)、ZigBee终端(End Device)2 所使用的设备

所用的ZigBee设备都具有连接网络和断块网路的功能。

ZigBee协调器和路由器都具有以下附加功能:

1)允许设备以如下方式连接网路:

① MAC(Medium Access Control)层的连接命令。

②应用层的连接请求

2)允许设备以如下方式断开网络;

① MAC层的断开命令

②应用层的断开命令

③对逻辑网络地址的分配

④维护邻居设备

3 组建网络

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

1)网络的初始化

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

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

②节点还没有和其他网络连接(一个网络中只许有一个协调器)

网络初始化过程如图图6-2-1所示。

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

网络初始化流程如下:

1)确定网络协调器。

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

2)进行信道扫描。包括能量扫描和主动扫描。

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

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

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

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

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

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

4 节点通过协调器加入网络

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

图6-2-3 节点(FFD)与协调器连接加入网络的流程图

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

1)查找网络协调器。首先会主动扫描查找周围网络的协调器,如果在扫描期限内检测到信标,那么将获得协调器的有关信息,这时就向协调器发送连接请求,在选择合适的网络后,上层将请求MAC层对物理层和MAC层的phyCurrentChannel、macPANID等PIB(数据库)属性进行相应的设置。如果没有检测到,间隔一段时间后,节点重新发送扫描。

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

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

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

4)发送数据请求命令。如果协调器在响应时间内同意节点加入,那么将产生关联响应命令(Associate reponse command)并先存储这个命令。当响应时间过后,节点发送数据请求命令(Data request command)给协调器,协调器收到后立即回复ACK,然后将存储的关联响应命令发给节点。如果在响应时间到后,协议器还没有决定是否同意节点加入,那么节点将试图从协议器的信标帧中提取关联响应命令,成功的话就可以入网成功,否则重新发送请求信息直到入网成功。

5)回复。节点收到关联响应命令后,立即向协调器回复一个确认帧(ACK),以确认接收到连接响应命令,此时节点将保存协调器的短地址和扩展地址,并且节点的MLME向上层发送连接确认原语,通告关联加入成功的信息。

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

图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_t ZDP_NwkAddrReq( uint8 *IEEEAddress, byte ReqType,

byte StartIndex, byte SecurityEnable )

{

uint8 *pBuf = ZDP_TmpBuf;

byte len = Z_EXTADDR_LEN + 1 + 1; // IEEEAddress + ReqType + StartIndex.

zAddrType_t dstAddr;

(void)SecurityEnable; // Intentionally unreferenced parameter

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;

return fillAndSend( &ZDP_TransID, &dstAddr, NWK_addr_req, len );

}

6.2.3 实验结果

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

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

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

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

Profile,这里的sampleApp为0x0F08,可以在SampleApp.h文件中找到。APS Dest. Endpoint

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

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

图7 路由节点0x2B38加入网络

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

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

路由器接收到超帧之后,将协调器的IEEE地址保存起来,并利用这个地址向协调器发生一个Association request的包,这个包目的是寻求加入网络。收到协调器的MAC层的确认帧之后,紧接着发生一个Data Request的包来寻求协调器给其分配的16位网络短地址。上述工作做完网络就已经建立一大半了,当协调器接收到Data Request之后,首先经过NWK 层的算法为其分配一个唯一的网络短地址,然后向路由器发送一个包含其网络短地址的包,这个包是通过MAC地址发送的。因为MAC地址和网络地址都可以进行通信。

当路由器接收到这个包之后,配置自己的短地址为0x2B38,然后就可以利用这个短地址和协调器进行应用层的通信了,走到这步就表示路由器就已经成功加入到网络了。

图8 节点的网络连接状态

1个路由器加入网络之后,如图8所示,第一行,协调器的Nwk Link Status发生了变化,Count变为了1,连接的节点ADDR=0x2B38,路由器的Nwk Link Status也发生了变化,Count变为了1,连接的节点ADDR=0x0000。所以我们通过抓包分析器,可以大致的分析到网络的基本参数。

图9 路由节点0x51EB的加入

路由节点2的加入和路由节点1的加入方式是一样的,这里就不再陈述。加入成功时候,如图9所示,我们可以看到,NWK Link Status发生了变化,每个节点的连接表都发生了变化。第一行是路由节点(0x2B38)的连接表,第二行是协调器(0x000)的连接表,第8行是路由节点(0x51EB)的连接表。

Zigbee组网流程——理论

星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。 一、协调器初始化网络 协调器建立一个新网络的流程如图1所示。 图1 协调器建立一个新网络 1、检测协调器 建立一个新的网络是通过原语NLME_NETWORK_FORMATION.request发起的,但发起NLME_NETWORK_FORMATION.request原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的NLME_NETWORK_FORMATION.confirm的原语来通知上层这是一个非法请求。 2、信道扫描 协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。 信道扫描包括能量扫描和主动扫描两个过程。首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内

的信道等待进一步处理。接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。 3、配置网络参数 如果扫描到一个合适的信道,网络层管理实体将为新网络选择一个PAN描述符,该PAN 描述符可以是由设备随机选择的,也可以是在NLME_NETWORK_FORMATION.request里指定的,但必须满足PAN描述符小于或等于0x3fff,不等于0xffff,并且在所选信道内是唯一的PAN描述符,没有任何其它PAN描述符与之是重复的。如果没有符合条件的PAN 描述符可选择,进程将被终止,网络层管理实体通过参数值为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。确定好PAN 描述符后,网络层管理实体为协调器选择16位网络地址0x0000,MAC子层的macPANID 参数将被设置为PAN描述符的值,macShortAddress PIB参数设置为协调器的网络地址。 4、运行新网络 网络参数配置好后,网络层管理实体通过MLME_START.request原语通知MAC层启动并运行新网络,启动状态通过MLME_START.confirm原语通知网络层,网络层管理实体再通过NLME_NETWORK_FORMATION.confirm原语通知上层协调器初始化的状态。 5、允许设备加入网络 只有ZigBee协调器或路由器才能通过NLME_PERMIT_JOINING.request原语来设置节点处于允许设备加入网络的状态。当发起这个进程时,如果PermitDuration参数值为0x00,网络层管理实体将通过MLME_SET.request原语把MAC层的macAssociationPermit PIB 属性设置为FALSE,禁止节点处于允许设备加入网络的状态;如果PermitDuration参数值介于0x01和0xfe之间,网络层管理实体将通过MLME_SET.request原语把macAssociationPermit PIB属性设置为TRUE,并开启一个定时器,定时时间为PermitDuration,在这段时间内节点处于允许设备加入网络的状态,定时时间结束,网络层管理实体把MAC层的macAssociationPermit PIB属性设置为FALSE;如果PermitDuration参数的值为0xff,网络层管理实体将通过MLME_SET.request原语把macAssociationPermit PIB属性设置为TRUE,表示节点无限期处于允许设备加入网络的状态,除非有另外一个NLME_PERMIT_JOINING.request原语被发出。允许设备加入网络的流程如图2所示。

zigbee的系统结构和组网方式

简介 ZigBee是一种新兴的短距离、低功耗、低数据传输速率的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术方案。ZigBee是建立在IEEE802.15.4标准之上,它确定了可以在不同制造商之间共享的应用纲要。IEEE802.15.4标准定义了ZigBee协议的PHY层和MAC层。PHY层规范确定了在2.4GHz(全球通用的ISM频段)以250kb/s的基准传输率工作的低功耗展频无线电以及另有一些以更低数据传输率工作的915MHz(北美的ISM频段)和868MHz(欧洲的ISM频段)的实体层规范。MAC层规范定义了在同一区域工作的多个IEEE802.15.4无线电信号如何共享空中通道。 为了促进ZigBee技术的发展,2001年8月成立了ZigBee联盟,2002年下半年,英国Invensys公司、日本三菱电子公司、美国摩托罗拉公司以及荷兰飞利浦半导体公司四大巨头共同宣布,它们将加入“ZigBee联盟”,目前该联盟已经有150多家成员,以研发名为ZigBee的下一代无线通信标准。 正如前面所述,ZigBee不仅仅只是802.15.4的名字,IEEE802.15.4仅处理低级MAC层和PHY层协议,所以ZigBee联盟对其网络层协议和API进行了标准化,还开发了安全层,以保证这种便携设备不会意外泄漏其标识。 ZigBee的组成和构网方式 1.FFD和RFD 利用zigbee技术组件的无线个人区域网(WPAN)是一种低速率的无线个人区域网(LR WPAN),这种低速率个人区域网的网络结构简单、成本低廉,具有有限的功率和灵活的吞 吐量。 在一个LR WPAN网络中,可同时存在两种不同类型的设备,一种是具有完整功能的设备(FFD),另一种是简化功能的设备(RFD)。 在网络中,FFD通常有3中工作状态:(1)作为个人区域网络(PAN)的主协调器;(2) 作为一个普通协调器;(3)作为一个终端设备。FFD可以同时和多个RFD或其他FFD通信。 而RFD则只用一种工作状态即作为一个终端设备,并且一个RFD只能和一个FFD通信。2.ZigBee的体系结构 ZigBee体系结构主要有物理(PHY)层、媒体接入控制(MAC)层、网络/安全层以及应用框架层构成,如下图所示:

ZigBee技术发展及其特点

第2章 ZigBee技术及协议分析 ZigBee技术的发展及其特点]1[ 长期以来,低成本、短距离、低传输率、低功率的无线通讯市场一直存在着。蓝牙(Bluetooth)技术的出现曾让玩具制造商、家庭自动化控制以及工业控制等业界从业者兴奋不已,尽管蓝牙技术有很多优点,但是高昂的价格和其存在的技术缺陷严重影响了这些厂商的使用意愿。对于工业控制、家庭自动化控制等领域而言,蓝牙技术过于复杂、功耗过大、距离近、组网规模达不到应用要求等,而工业自动化等领域对无线通信的需求越来越大。因此,经过人们的努力,于2004年正式推出了ZigBee协议规范。 “HomeRF Lite” 2004年(又称ZigBee2004)诞生,它是ZigBee的第一个规范,这使得ZigBee有了自己的发展基本标准。但是由于推出仓促存在很多不完善的地方,因此在2006年进行了标准的修订,推出了(又称ZigBee2006),但是该协议与是不兼容的。相较于做了很多修改,但是仍无法达到最初的设想,于是在2007年再次修订(称为ZigBee2007/PRO),能够兼容之前的ZigBee2006,并且加入了ZigBee PRO部分,此时ZigBee联盟更专注于以下三种应用类型的拓展:家庭自动化(HA)、建筑/商业大楼自动化(BA)以及先进抄表基础建设(AMI)。 随着ZigBee标准的完善以及各软件以及硬件厂商的不断努力,用于ZigBee开发的软硬件正趋于完善,ZigBee技术的实用化不断推进,其使用领域不断拓展。使ZigBee 技术在2004年就被列为当今世界发展最快、市场前景最广阔的十大高新技术之一。 ZigBee技术有以下几个方面的特点: (1)短时延。通信时延以及休眠状态激活时延都很短,通常在15ms至30ms间。 (2)高可靠性。采用了CSMA/CA(碰撞避免)机制,而且为需要固定带宽的通信业务预留了专用的时隙,从而避免了发送数据时可能出现的竞争和冲突;节点模块间有自动动态组网功能,信息在整个ZigBee网络中是通过自动路由方式传输的,这样可以保证信息的可靠传输。 (3)低数据率。数据传输率在10kb/s到250kb/s之间。 (4)低功耗。两节五号电池即可使用6个月至2年,免去了经常更换电池或者是充电的麻烦。 (5)低成本。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 Func TIon Device 全功能节点 RFD:Reduced Func TI onDevice 半功能节点

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技术做无线传输:1.需要数据采集或监控的网点多; 2.要求传输的数据量不大,而要求设备成本低; 3.要求数据传输可性高,安全性高; 4.设备体积很小,不便放置较大的充电电池或者电源模块; 5.电池供电; 6.地形复杂,监测点多,需要较大的网络覆盖; 7.现有移动网络的覆盖盲区; 8.使用现存移动网络进行低数据量传输的遥测遥控系统。 9.使用GPS效果差,或成本太高的局部区域移动目标的定位应用。 Zigbee 技术的特点 省电:两节五号电池支持长达6个月到2年左右的使用时间。 可靠:采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用

Zigbee组网流程

1、网络形成 组网开始时,网络层首先向MAC层请求分配协议所规定的信道,或者由PHY层进行有效信道扫描,网络层管理实体等待信道扫描结果,然后根据扫描结果选择可允许能量水平的信道。找到合适的信道后,为这个新的网络选择一个个域网标识符(PANID)。PANID可由网络形成请求时指定,也可以随机选择一个PANID(除广播PANID固定为0xFFFF外),PANID 在所选信道中应该是唯一的。PANID一旦选定,无线网关将选择16位网络地址0x0000作为自身短地址,同时进行相关设置。完成设置后,通过MAC层发出网络启动请求,返回网络形成状态。 2、网络维护 网络维护网络维护主要包括设备加入网络和离开网络过程。当网络形成后,通过网络管理实体设定MAC层连接许可标志来判断是否允许其他设备加设备初始化为协调器入网络。加入方式有联合方式和直接方式,在协议实现中采取直接加入网络方式。这种方式下由待加入的设备发送请求加入信标帧,网关接收到后,网络管理实体首先判断这个设备是否已存在于网络。存在,则使其加入网络;若不存在,则向设备发送信标帧,为这个设备分配一个网络中唯一的16位的短地址。这里的信标帧是由网关无线协议MAC层生成作为PHY层载荷,它包含PANID、加入时隙分配等信息。网内设备也可以请求断开网络。当网关收到设备断

开连接请求后,MAC层向网络层发送报告,开始执行断开流程,从设备列表中删除该设备相关信息。 网络层上层请求网络层发现当前在运行的网络: NLME NETWORK DISCOVERY.request(ScanChannels,ScanDuration) ScanChannels:高5为保留(b27~b31),低27为分别表示27个有效信道,该位为1,表示扫描;为0不扫描。 ScanDuration:扫描时间,aBaseSuperframeDuration*(2^n+1),n为ScanDuration值。 网络层在家收到该原语后,将通过检查ScanChannels参数发现网络,如果该设备为一个FFD 设备,则执行主动的扫描。如果为一个RFD设备,倘若设备实现主动扫描,那么他会执行主动的扫描,否则 一个合适的父节点需要满足三个条件:匹配的PAN标志符、链路成本最大为3、允许连接,为了寻找合适的父节点,NLME_JOIN.request原语请求网络层搜索它的邻居表,如果邻居表中不存在这样的父节点则通知上层,如果存在多个合适的父节点则选择具有最小深度的父节点,如果存在多个具有最小深度的合适的父节点则随机选择一个父节点。

zigbee应用分析

初始化 因为Z-Stack是在OS下运行的,所以在之前必须调用osalAddTasks()初始化任务。 组织 关于OS的API函数介绍请看文档:Z-Stack OSAL API (F8W-2003-0002),应该说协议栈的每层或者说每部分都有相关的API说明文档。osalAddTasks()初始化任务, osalTaskAdd()函数添加任务,都可 以到API文档或程序中详细分析函数功能。 系统服务 OSAL和APL系统服务是唯一的,因为比如按键和串口类似事件处罚就只能用唯一的一个任务标识。 这两个硬件都留给了用户自己定义使用。 应用设计 用户可能为每一个应用对象都创建一个任务,或者为所有的应用对象只创建一个任务。当选择上述 的设计的时候,下面是一些设计思路: 为许多应用对象创建一个OSAL任务 下面是正面和反面(pros & cons)的一些叙述: - Pro:接受一个互斥任务事件(开关按下或串口)时,动作是单一的。 - Pro:需要堆栈空间保存一些OSAL任务结构。 - Con:接收一个AF信息或一个AF数据确认时,动作是复杂的-----在一个用户任务上,分支多路处 理应用对象的信息事件。 - Con:通过匹配描述符(如:自动匹配)去发现服务的处理过程更复杂-----为了适当的对ZDO_NEW_DSTADDR信息起作用,一个静态标志必须被维持。 为一个应用对象创建一个OSAL任务 :一对一设计的反面和正面(pros & cons)是与上面一对多设计相反的: - Pro:在应用对象试图自动匹配时,仅仅一个ZDO_NEW_DSTADDR被接收。 - Pro:已经被协议栈下层多元处理后的一个AF输入信息或一个AF数据确认。 - Con:需要堆栈空间保存一些OSAL任务结构。 - Con:如果两个或更多应用对象用同一个唯一的资源,接收一个互斥任务事件的动作就更复杂。 强制方法 任何一个OSAL任务必须用两种方法执行:一个是初始化,另一个是处理任务事件。 任务初始化 在例子中调用如下函数执行任务初始化: ―Application Name‖_Init(如SAPI_Init)。该任务初始化函数应该完成如下功能: 变量或相应应用对象特征初始化,为了使OSAL内存管理更有效,在这里应该分配永久堆栈存储区。

ZigBee的工作原理

ZigBee得工作原理_ZigBee组网技术ZigBee就是一种高可靠得无线数传网络,类似于CDMA与GSM网络。ZigBee数传模块类似于移动网络基站。通讯距离从标准得75m到几百米、几公里,并且支持无限扩展。Zig bee技术特点主要有低功耗、低成本、时延短、网络容量大、工作频段灵活、低速率、安全得数据传输等。其中低功耗就是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 Func TI on Device 全功能节点 RFD:Reduced FuncTI onDevice半功能节点

Zigbee市场分析

WiFi入侵无线传感网络,完胜Zigbee? Wi-Fi正在吹响全面取代其他无线通信协议的战斗号角,而Intel无疑则是这场战役的大后方。2006年9月从Intel分拆出来的初创公司GainSpan声称,他们已经拥有了在无线传感器网络(WSN)领域战胜Zigbee的技术方案。GainSpan总裁兼首席执行官Vijay Parmar不久前在上海接受采访时表示,采用这家公司的WSN解决方案,不仅能够享受到成熟的Wi-Fi技术带来的各种好处,还能确保在单节AA电池下维持长达5~10年的电池寿命。 Parmar此行的中国之行除了拜访已有的客户,还包括首次在中国大陆举行的小型记者见面会,意在为其已经拉开帷幕的中国业务造势。据介绍,这款在台积电采用0.18微米工艺制造的SoC芯片采用ARM7内核,可以支持IEEE 802.11b/g,并提供了802.11i、AES编码、EAP-FAST三种方式来保证数据和信息安全。另外,根据信号强弱与到达时间(TDOA)大小,还能够提供精确的定位功能。芯片外形尺寸为10mmx10mm。目前,该公司正在积极构建同大学和政府机构的合作关系,并已经同Metatech签署了分销协议。Parmar表示,他计划利用6个月时间在中国大陆建立代表处,北京、上海、深圳将是候选城市。“未来几个月内,我们将致力于提升公司在中国市场的认知度。” Intel不仅是GainSpan的孕育者,还先后在两轮融资中给了这家新兴公司巨大的财力支持。2006年9月,由于同母公司的主营业务相关度并不是非常大,当时尚属Intel新业务规划小组的一个WSN 技术开发团队被决定从Intel拆分出来,成立名为GainSpan的初创公司,专注于将Wi-Fi技术应用于工业领域的WSN网络。Intel Capital、New V enture Partners LLC、OVP Venture Partners、Sigma Partners 等四家投资公司为其提供了总额150万美金的启动资金。 2007年11月,Intel再次联合其他三家公司、并将设在加州Menlo Park市的另外一家风险投资公司Opus Capital拉了进来,对GainSpan进行了第二轮投资。此轮投资金额一跃提高到了2000万美金。 将Wi-Fi用于WSN网络,确实是个不错的主意。因为它能够享受到正在被大规模部署的Wi-Fi 网络所带来的成熟的技术、各种层出不穷的Wi-Fi设备、既有的网络设施、架构支持、丰富的网络知识,另外还有快速安装和减少了学习周期和与其他协议互操作而带来的各种麻烦,加快开发周期。 然而,将Wi-Fi用于WSN却又不是一件容易的事情。因为在这种应用中,最先需要解决的就是功耗问题——幸运的是,GainSpan已经将其轻松搞定。虽然没有透露更多的技术细节,但是Parmar 表示,有效的激活/待机状态转换以及系统的电源管理是完成这一指标的关键所在。“我们的方案可以实现一节AA电池工作5~10年的寿命,我们是唯一能够做到这一点的公司。”Parmar的自豪溢于言表。 在2006年带队成立GainSpan之前,Parmar曾在Intel公司工作4年左右。稍早的工作经历是在VxTel(一家VoIP解决方案供应商)担任市场部副总裁,后者与2001年被Intel收购。而更早些时候,他供职于AMD公司,曾经担任AMD亚太地区微处理器方面的区域市场总经理一职。这令他对中国市场相当熟悉。

zigBee实验报告

ZIgBee学习心得 实验报告 项目名称基于无线传感器网络的采温实验专业班级软件1105 学号 姓名

目录 《计算机网络》............................................................................................. 错误!未定义书签。实验报告. (1) 一、实验目的 (3) 二、实验内容和报告简介 (3) 三、实验相关设备环境 (3) 四、实验内容 (7) 4.1.内容简介 (7) 4.2. 无线传感器网络采温系统实验 (7) 4.2.1实验简介 (7) 4.2.2 工程结构简介 (8) 4.2.3 设备功能及网络拓扑结构介绍 (10) 4.2.4 main()函数和OSAL (10) 4.2.5 设备相关功能主要函数介绍 (14) 4.3 ZigBee协议和ZStack分析 (26) 4.3.1 ZigBee协议和ZStack简介 (27) 4.3.2 OSAL原理分析和实现 (28) 4.3.3IEEE 802.15.规定的PHY层 (35) 4.3.4IEEE 802.15.规定的MAC层 (37) 4.3.5 ZigBee2007的网络层。 (40) 4.3.6 ZigBee2007的应用层 (45) 五、实验结果 (46) 六、实验结论 (47) 七、实验小结 (47) 7.1 短距离无线通信网络的现状和发展 (47) 7.2 ZigBee通信技术的应用 (48) 7.3 学习ZigBee开发的心得体会 (48) 7.4 下一步可能的学习计划 (49)

ZigBee协议栈初始化网络启动流程图

ZigBee协议栈初始化网络启动流程 ZigBee的基本流程:由协调器的组网(创建PAN ID),终端设备和路由设备发现网络以及加入网络。 基本流程:main()->osal_init_system()->osalInitTasks()->ZDApp_Init(),进协议栈初始化函数ZDApp_Init()。 1.1 进入程序入口main()。 ZMain.c中 C++ Code int main( void ) { // Turn off interrupts osal_int_disable( INTS_ALL ); // Initialization for board related stuff such as LEDs HAL_BOARD_INIT(); // Make sure supply voltage is high enough to run zmain_vdd_check(); // Initialize board I/O InitBoard( OB_COLD ); // Initialze HAL drivers HalDriverInit(); // Initialize NV System osal_nv_init( NULL ); // Initialize the MAC ZMacInit();

// Determine the extended address zmain_ext_addr(); // Initialize basic NV items zgInit(); #ifndef NONWK // Since the AF isn't a task, call it's initialization routine afInit(); #endif // Initialize the operating system osal_init_system(); // Allow interrupts osal_int_enable( INTS_ALL ); // Final board initialization InitBoard( OB_READY ); // Display information about this device zmain_dev_info(); /* Display the device info on the LCD */ #ifdef LCD_SUPPORTED zmain_lcd_init(); #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

zigbee网络建立过程简介(G1)知识讲解

z i g b e e网络建立过程 简介(G1)

星形网络和树型网络可以看成是网状网络的一个特殊子集,所以接下来分析如何组建一个Zigbee网状网络。组建一个完整的Zigbee网络分为两步:第一步是协调器初始化一个网络;第二步是路由器或终端加入网络。加入网络又有两种方法,一种是子设备通过使用MAC层的连接进程加入网络,另一种是子设备通过与一个先前指定的父设备直接加入网络。 一、协调器初始化网络 协调器建立一个新网络的流程如图1所示。 图1 协调器建立一个新网络 1、检测协调器 建立一个新的网络是通过原语NLME_NETWORK_FORMATION.request发起的,但发起 NLME_NETWORK_FORMATION.request原语的节点必须具备两个条件,一是这个节点具有ZigBee协调器功能,二是这个节点没有加入到其它网络中。任何不满足这两个条件的节点发起建立一个新网络的进程都会被网络层管理实体终止,网络层管理实体将通过参数值为INVALID_REQUEST的 NLME_NETWORK_FORMATION.confirm的原语来通知上层这是一个非法请求。 2、信道扫描 协调器发起建立一个新网络的进程后,网络层管理实体将请求MAC子层对信道进行扫描。信道扫描包括能量扫描和主动扫描两个过程。首先对用户指定的信道或物理层所有默认的信道进行一个能量扫描,以排除干扰。网络层管理实体将根据信道能量测量值对信道进行一个递增排序,并且抛弃能量值超过了可允许能量值的信道,保留可允许能量值内的信道等待进一步处理。接着在可允许能量值内的信道执行主动扫描,网络层管理实体通过审查返回的PAN描述符列表,确定一个用于建立新网络的信道,该信道中现有的网络数目是最少的,网络层管理实体将优先选择没有网络的信道。如果没有扫描到一个合适的信道,进程将被终止,网络层管理实体通过参数仠为STARTUP_FAILURE的NLME_NETWORK_FORMATION.confirm的原语来通知上层初始化启动网络失败。 3、配置网络参数

【标准】基于Zigbee技术的智能家居系统设计方案

基于Zigbee技术的智能家居系统设计方 家居设备通过Zigbee 进行无线组网,把家居设备的信息和数字视频传输到因特网网络上, 进行实时的显示并进行后续的利用和控制;同时将收集各处传输进来的数字视频信息进行后续的处理和识别。如入侵检测,人脸检测和识别等。 智能家居又称为智能住宅,在国外常用Smart Home 表示。与智能家居含义近似的有家庭自动化(Home Automation)、电子家庭(Electr ON ic Home、E-home)、数字家园(Digital Family)、家庭网络(Home Net/Networks for Home)、网络家居(NetworkHome)、智能家庭/建筑(Intel ligent Home/Building)等。 智能家居系统利用先进的计算机技术、网络通讯技术、综合布线技术将与家居生活有关的各种子系统有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全。智能家居可以提供全方位的信息交换功能,帮助家庭与外部保持信息交流通畅,优化人们的生活方式,增强家居生活的安全性,甚至为各种能源费用节约资金。 1 项目概述 1.1 智能家居发展概况 智能家居是利用先进的计算机技术、嵌入式系统和网络通讯技术,将家庭中的各种设备(如照明系统、环境控制、安防系统、网络家电)通过家庭网络连接到一起的,自从美国在1984 真正的智能建筑出现以来,国外已经有将近30 年的研究历史,而国内在这方面的研究相对较晚,从2003 年才逐步应用于高端市场,而且标准不统一,如海信、海尔、清华大学等大家各自为营。由于智能家居系统具有安全、方便、高效、快捷、智能化和个性化的独特魅力,使得智能家居的开发与建设成为21 世纪科技发展的必然趋势。随着全球对能源和环境的要求越来越高,而智能家居在节能方面的效果优势非常明显,因此具有非常广阔的市场前景。 1.2 开发板主要参数 本项目所使用开发板为Real6410 开发板,采用三星公司的ARM11 内核的处理器 S3C6410.开发板上还集成了123 M的DDR 内存以及1 GB NandFlash, 同时预留了

Zigbee组网实验报告

Zigbee组网实验 一.实验目的 1.了解zigbee网络 2.掌握zigbee节点程序下载方式 3.掌握如何组建zigbee星状网络 二.实验意义 通过实验了解zibee网络的特点,体会其组网及通信过程 三.实验环境 PC机一台(内安装IAR环境) 智能网关一个 ZigBee节点 ZigBee仿真器一套 四.实验原理 每一个星状网络中只有一个协调器,当协调器被激活后,它就会建立一个自己的网络。其它位于协调器附近的zigbee节点,如果与该协调器处于同一信道,则会自动加入到该网络当中。 五.实验步骤 一、认识实验设备以及下载设备连接 连接线路如图所示: 二、Zigbee网络组建

1、协调器下载 协调器在本套智能家居系统中担任信息收集与传输的工作,它和每个ZigBee模块进行无线通讯,并将信息传送给智能网关,同时也将网关的控制指令发送给各个模块。 我们首先将一个ZigBee模块下载成协调器,具体步骤如下: (1)打开“\实验程序\协调器\Projects\zstack\Samples\collector SimpleApp 1.25\ CC2430DB\SimpleApp.eww”。如图1-6所示: (2)不同的实验小组选择自己所分配的信道。点击左侧的文件导航栏,找到tools文件夹,打开其中的文件f8wConfig.cfg,找到自己小组的信道,将行的注释去掉,并且确认其他各个信道代码均为注释状态。 更改完信道之后,在菜单栏中选择Project\Rebuild All进行编译,编译完成后生成的HEX 文件保存在\实验程序\协调器 \Projects\zstack\Samples\collectorSimpleApp1.25\CC2430DB\SimpleCollectorEB\Exe 中。 (3)更改完信道之后,在菜单栏中选择Project\Rebuild All进行编译,编译完成后生成的HEX文件保存在\实验程序\协调器 \Projects\zstack\Samples\collectorSimpleApp1.25\CC2430DB\SimpleCollec torEB\Exe中; (4)打开smartRF下载软件,如图所示,按照图将下载设备的各个线连接好,之后按一下下载器(也就是白色盒子)上面的黑色按钮,则下载界面中将会识别到要与下载器相连接的zigbee模块芯片,如图所示,对相关条件进行勾选; 2.其它zigbee终端节点的下载 Zigbee终端节点在上电后自动加入到处于同一信道的zigbee协调器所组建的zigbee网络当中。

ZIGBEE协调器启动

【转自小峰博客】协调器的启动【自动模式】 使用的协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1 Zigbee网络设备启动流程—协调器(自启动模式)—以SampleApp的协调器为例. 1、协调器预编译信息 通过project->options->c/c++compiler->extraOptions可以看到协调器所带的配置文件为:-f $PROJ_DIR$\..\..\..\Tools\CC2430DB\f8wCoord.cfg -f $PROJ_DIR$\..\..\..\Tools\CC2430DB\f8wConfig.cfg 即编译了ZDO_COORDINATOR和RTR_NWK. 通过project->options->c/c++compiler->Preprocessor->Defined symbols可以看到协调器预编译包含了: CC2430EB; ZTOOL_P1; MT_TASK; LCD_SUPPORTED=DEBUG; MANAGED_SCAN 没有编译HOLD_AUTO_START和SOFT_START. 2、具体流程 main()->osal_init_system()->osalInitTasks()->ZDApp_Init() 进入ZDApp_Init()函数: ************************************** void ZDApp_Init( byte task_id ) { uint8 capabilities; // Save the task ID ZDAppTaskID = task_id; // Initialize the ZDO global device short address storage

zigbee网络设备启动

Zigbee网络设备启动—主要函数说明 2010-07-09 20:32:17| 分类:Zigbee|字号订阅 使用的协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1 1、ZDApp_Init()及其中几个函数的说明. (1)ZDApp_Init()**************************************** void ZDApp_Init( byte task_id ) { uint8 capabilities; // Save the task ID ZDAppTaskID = task_id; // Initialize the ZDO global device short address storage ZDAppNwkAddr.addrMode = Addr16Bit; ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR; //0xFFFE(void)NLME_GetExtAddr(); // Load the saveExtAddr pointer. // Check for manual"Hold Auto Start" //检测到有手动设置SW_1则会设置devState = DEV_HOLD,从而避开网络初始化

ZDAppCheckForHoldKey(); // Initialize ZDO items and setup the device - type of device to create.ZDO_Init(); //通过预编译来初始化一些功能函数. // Register the endpoint description with the AF // This task doesn't have a Simple description, but we still need // to register the endpoint. afRegister( (endPointDesc_t *)&ZDApp_epDesc ); #if defined( ZDO_USERDESC_RESPONSE ) ZDApp_InitUserDesc(); #endif // ZDO_USERDESC_RESPONSE // set broadcast address mask to support broadcast filtering NLME_GetRequest(nwkCapabilityInfo, 0, &capabilities); NLME_SetBroadcastFilter( capabilities ); // Start the device? if ( devState != DEV_HOLD ) { ZDOInitDevice( 0 ); } /*如果devState=DEV_HOLD,则不会调用ZDOInitDevice()来初始化网络

第8讲 ZigBee组网流程报告

ZigBee网络关键技术研究 0 引言 20世纪六七十年代,计算资源放在计算中心,计算机的体积庞大;80年代,个人计算机普及,借助网络通信,实现资源共享、信息互通;90年代随着无线电话的普及,无线通信技术得到发展。现在常见的几种近距离无线通信技术: (1)WiFi:即IEEE802.11x,提供无线局域网的接入 (2)蓝牙:工作在2.4GHz的频段 (3)红外线数据通信IrDA:利用红外线进行点对点通信 (4)ZigBee:近距离无线通信技术,以2.4GHz为主要频段,采用扩频技术 Zigbee是IEEE 802.15.4协议的代名词,是一种短距离、低功耗的无线通信技术。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。 Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,十分类似现有的移动通信的CDMA网或GSM网,每一个Zigbee网络数传模块类似移动网络的一个基站,在整个网络范围内,它们之间可以进行相互通信;每个网络节点间的距离可以从标准的75米,到扩展后的几百米,甚至几公里。 1 ZigBee网络拓扑结构 Zigbee协议标准中定义了三种网络拓扑结构形式:星状结构,树状结构,网状结构。星形网络和树型网络可以看成是网状网络的一个特殊子集,网络拓扑结构是最常用的结构形式。如图1所示,

图1 ZigBee网络拓扑结构图 Zigbee网络只支持2种物理设备;全功能设备(FFD,Full Function Device)和精简功能设备(RFD,Reduced FunctionDevice), 其中FFD设备可提供全部服务,可充当任何Zigbee节点,不仅可以发送和接收数据,还具有路由功能,因此可以接收子节点;而RFD设备只提供部分服务,只能充当终端节点,不能充当协调器和路由节点,它只负责将采集的数据信息发送给协调器和路由节点,并不具备路由功能,因此不能接收子节点,并且RFD之间的通信必须通过FFD才能完成。Z igbee 标准在此基础上定义了三种节点:Zigbee协调点(Coordinator)、路由节点(Router)和终端节点(EndDevice)。 总结起来,可为协调点、路由节点必须为FFD设备,终端节点可为FFD设备也可为RFD 设备。 2 ZigBee模块的组网 Zigbee网络具有三种网络形态节点:Coordinator(中心协调器),Router(路由器),End Device(终端节点)。 Coordinator(中心协调器),用来创建一个Zigbee网络,当有节点加入时,分配地址给子节点,Coordinator通常定义为不能掉电的设备,没有低功耗状。每个Zigbee网络需要且仅需要一个Coordinator,不同网络的PAN ID(网络ID号)应该不一样,如果在同一空间存在二个Coordinator,如果它们初始的PAN ID一样,则后上电的Coordinator的PAN ID会自动加一,以免引起PAN ID冲突。

相关主题
文本预览
相关文档 最新文档