zigbee的系统结构和组网方式

zigbee的系统结构和组网方式
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)层、网络/安全层以及应用框架层构成,如下图所示:

图 1 ZigBee 的体系结构

由上图可知:IEEE802.15.4标准定义了ZigBee协议的PHY层和MAC层,而ZigBee联盟

对其网络层协议和API进行了标准化,还开发了安全层,这才真正形成了ZigBee协议栈。其中PHY层的特征是启动和关闭无线收发器,能量检测,链路质量,信道选择,清除信道

评估(CCA),以及通过物理媒体对数据包进行发送和接受。

MAC层的特征是:信标管理,信道接入,时隙管理,发送确认帧,发送连接及断开连接请求。除此之外,MAC层为应用合适的安全机制提供了一些方法。

网络/安全层主要用于ZigBee的LR WPAN网的组网连接、数据管理以及网络安全等。

应用框架层主要为ZigBee技术的实际应用提供一些应用框架模型,不同应用场合,不同厂商提供的应用框架是有差异的。

3.ZigBee的网络拓扑结构

根据应用需求,ZigBee技术网络有两种网络拓扑结构:星型的拓扑结构和对等的拓扑结构,其中对等拓扑结构又包括簇状拓扑结构和网状拓扑结构。如下图所示:

图2ZigBee的拓扑结构

星型拓扑网络结构由一个叫做 PAN 主协调器的中央控制器和多个从设备组成,主协调器必须为全功能设备(FFD),从设备既可为全功能设备(FFD)也可为缩简功能设备(RFD)。

在网络通信中,通常将这些设备分为起始设备或者终端设备,PAN 主协调器既可作为起始

设备、终端设备,也可作为路由器,它是 PAN 网络的主要控制器。在任何一个拓扑网络上,所有设备都有唯一的 64 位的长地址码,该地址码可以在 PAN 中用于直接通信,或者当各

设备之间已经存在连接时,可以将其转变为 16 位的短地址码分配给 PAN 设备。因此在设

备发起连接时,采用 64 位的长地址码,只有连接成功后,系统分配了 PAN 的标识符后,

才能采用 16 位的短地址码进行连接。因此短地址码是一个相对地址码,长地址码是一个绝对地址码。在 Zigbee 技术应用中,PAN 主协调器是主要的耗能设备,而其他从设备均采用

电池供电。当一个全功能设备(FFD)第一次被激活后,它就会建立一个自己的网络,将自身

设置成为一个 PAN 主协调器。所有星型网络的操作独立于当前其他星型网络的操作,也就

是说在星型网络结构中只有一个唯一的 PAN 主协调器,通过选择一个 PAN 标识符确保网络的唯一性。目前,其他无线通信技术的星型网络没有采用这种方式。因此一旦选定了一个PAN 标识符,PAN 主协调器就会允许其他从设备加入到它的网络中,无论是全功能设备,

还是缩减功能设备都可以加入到这个网络中。

在对等的拓扑网络结构中,同样也存在一个PAN主设备,但该网络不同于星型拓扑网

络结构,在该网络中的任何一个设备只要是在它的通信范围之内,就可以和其他设备进行

通信。对等拓扑网络结构能够构成较为复杂的网络结构,例如网状网拓扑结构,这种对等

拓扑网络结构在工业监测和控制、无线传感器网络、供应物资跟踪、农业智能化以及安全

监控等方面都有广泛的应用。一个对等网络的路由协议可以是基于A d·hoc技术的,也可

以是自组织式的和自恢复式的。并且在网络中各个设备之间发送消息时,可通过多个中间

设备中继的传输方式进行传输,即通常称为多跳的传输方式,以增大网络的覆盖范围。

在对等拓扑结构中,每一个设备都可以与在无线通信范围内的其它任何设备进行通信。任何一个设备都可定义为PAN主协调器。例如,可将信道中第一个通信的设备定义成PAN主协调器。

簇树拓扑结构其实是对等网络拓扑结构的一种应用形式,它的另一种典型的应用形式

也即为网状网络(Mesh)拓扑结构。在对等网络中的设备可以为全功能设备,也可以为简化

功能设备。而在簇树中的大部分设备为FFD,RFD只能作为树枝末尾处的叶节点,这主要是由于RFD一次只能连接一个FFD。任何一个FFD都可以作为主协调器,并且可为其它从设备或主设备提供同步服务。在整个PAN中,只要该设备相对于PAN中的其他设备具有更多计算资源,比如具有更快的计算处理能力、更大的存储空间以及更多的供电能力等等。这样的

设备都可以成为该PAN的主协调器,通常称该设备为PAN主协调器。

在建立一个PAN时,首先PAN主协调器将其自身设置成一个簇标识符(CID)为0的簇头(CLH)。然后选择一个没有使用的PAN标识符,并向邻近的其他设备以广播的方式发送信标帧,从而形成第一簇网络。接收到信标帧的候选设备可以在簇头中请求加入该网络,如果PAN主协调器允许设备加入,那么主协调器会将该设备作为子节点加到它的邻居表中。同时,请求加入的设备将PAN主协调器作为它的父节点加到邻居表中,成为该网络的一个从

设备,其他的所有侯选设备都按照同样的方式,可请求加入到该网络中,作为网络的从设备。如果候选设备不能加入该网络中,那么它将寻找其他的父节点。

在簇树网络中,最简单的网络结构是只有一个簇的网络,但是多数网络结构由多个相

邻的网络构成。一旦第一簇网络满足预定的应用或网络需求时,PAN主协调器将会按下一

个从设备为另一簇新网络的簇头,使得该从设备成为另一个PAN的协调器,随后其他的从

设备将逐个加入,并形成一个多簇网络。

无论是星型拓扑结构,还是对等拓扑网络结构,每个独立的PAN都有一个唯一的标识符,利用该PAN标识符,可采用16位的短地址码进行网络设备间的通信,并且可激活PAN网络设备之间的通信。

网状网(Mesh)可以看成是簇树网络的一种改进型的对等网络。从数据路由来看,簇树

网络结构很容易导致非均匀流量分配。如图3所示,根节点A承担的数据流量明显比其它次级根节点承担的数据流量要大,由此可见,通常具有较小路径深度的树结构承担更大流量

处理。由此将导致处于较小路径深度树结构中的节点其电池能量消耗将比其它较大路径深

度树结构中的节点电池能量消耗要快[12],因而处于较小路径深度中的节点因能量的快速耗

尽而更容易失效,其单点失败(SPF)和网络分离的现象[13]就更容易发生。因此,为了克服网

络流量分配不均,在簇树网络的基础上形成如图4所示的网络结构即Mesh网络结构。

图3簇树网络结构

图4 Mesh网络结构

与簇树网络相比,网状网络传递数据包将会选择一个更短的路径,从而减少根节点的

数据流量。比如,当数据包从节点M向节点I传递的时候,簇树网络中正常的数据包传递路

径是M-L-K-J-A-B-H-I这条路线,而在网状网络中,数据包可能直接从节点M传递到节点I。这样一方面减少了数据传递的延时,另一方面起到数据分流的作用,从而减轻了根节点的负担,提高了网络运行的稳定性。

4.ZigBee的组网流程

节点组网流程如图 5 所示,当第一个 FFD 设备被激活后,首先进行对物理层所默认的

有效信道进行能量扫描,以检测可能的干扰,并对检测到的信道按能量值大小进行信道排序,然后执行主动扫描过程以选择一个最佳信道作为当前工作信道。第一个成功建立网络

的节点也即协调器节点(在 MSSTATE_LRWPAN 协议栈中,协调器节点在网络建立过程中不

进行信道扫描,直接根据天线的设计频点采用指定的信道进行通信,以达到最佳通信效果)。网络建立之后,所有其它节点(FFD 或 RFD)均作为网络中的子节点发送入网请求,寻找其通

信范围内的网络,如果找到网络,节点根据所获取的网络信息选择一个父节点提出入网申请。并等待父节点的请求响应。父节点收到一个入网申请后,将根据请求信息作出是否允

许加入网络的判断,若允许加入,父节点将发出请求响应,告知子节点。子节点收到请求

响应后,将获得一个父节点分配给它的一个网络地址(也叫短地址)作为在网络内的唯一

身份标识。至此节点成功加入网络。首个 FFD 激活节点将作为协调器广播信标帧,同时接

受新节点的入网请求。

节点上电激活

信道扫描

(主动模式)

收到信标帧

信道扫描

监听信标帧

(被动模式)建立网络选择父节点入网

发送入网请求

收到入网请求地址空间满

否收到入网回复

新子节点

有未申请的父节

是入网成功入网失败,作为

网成功冗余节点进入休

分配地址

眠模式无地址空间,

加入

新子节点失

回复入网请求

回复成功允许子

节点入网

图 5 ZigBee 的组网流程

5.ZigBee信息交流方式

IEEE802.15.4使用一种简单的方法来让多个设备使用同一个频率信道,它使用的访问机制是载波检测多路访问碰撞避免(CSMA-CA)。在CSMA-CA中,任何时候一个设备想要

发送信息,都要先执行一条空闲信道评估(CCA)指令来确保该信道没有被其他设备所使用,然后它才开始发送信号。判定一个信道是否空闲可以通过测量频带中的频谱能量或者检测

工作中信号的类型。

信道访问的方式有两种:基于竞争和免于竞争。在基于竞争的信道访问中,所有想在

同一频率信道传输信息的设备都使用CSMA-CA机制,谁先发现信道空闲谁就先进行传输。在免于竞争方式中,PAN协调器为特殊设备留出一个时隙,这个时隙叫做GTS(Guarantee Time Slot),因此,有GTS的设备可以在GTS期间开始发送信息,而不需要使用CSMA-CA

机制。

为了提供一个GTS,PAN协调器需要确保所有的设备都是同步的,信标(Beacon)有具体的格式,是一个用来同步网络中节点时钟的消息。Beacon的帧格式在后面小节有具体的讨论。协调器可以选择发送Beacon信号来同步与其相连的设备。这就叫做beacon-enabled PAN。使用beacon的一个缺点就是所有网络中的设备必须定期唤醒,确定beacon、同步它们的时钟、继续休眠。这就意味着网络中的一些设备被唤醒过来只是为了进行同步,而不执行任何其他任务。因此,在一个beacon-enabled网络中,设备的电池寿命通常少于nonbeacon的网络。

PAN协调器不传输beacon的网络被称作nonbeacon网络,而nonbeacon网络没有GTS 和免于竞争时段,因为其设备不能相互同步。nonbeacon网络中电池的寿命要明显优于beacon-enabled网络,因为在nonbeacon网络中,设备被唤醒的次数较少。

设备之间通信分为(1)设备向主协调器发送数据(2)主协调器向设备发送信息(3)设备之间通信。对于星型拓扑结构只有前两种通信方式,而对于对等拓扑结构则存在 3 种通信方式。

对于前两种通信方式又存在两种网络环境:beacon-enabled网络和nonbeacon网络。

在beacon-enabled网络环境下

1)从设备向主协调器发送信息

1>从设备监听信标

2>监听到信标之后进行超帧同步,在适当时候使用有GTS时隙的 CSMA-CA 向主协调器

发送数据帧

3>主协调器收到数据帧,发送确认帧

2)主协调器向从设备发送信息

1>主协调器更改信标,表明有数据要传输

2>从设备监听到有信息要传输给自己后,使用有GTS时隙的 CSMA-CA 机制发送一个数

据请求命令

3>主协调器收到请求,返回一个确认帧,并通过有GTS时隙的 CSMA-CA 发送数据帧

4>从设备收到数据帧,返回确认帧

5>主协调器收到确认帧,恢复信标。

在非信标通信的网络环境下

1)从设备向主协调器发送信息

1>从设备使用非GTS时隙的 CSMA-CA 发送数据帧

2>主协调器收到数据帧,返回确认帧

2)主协调器向从设备发送信息

1>从设备使用非GTS时隙的 CSMA-CA 发送请求数据命令。

2>主协调器收到请求,返回确认帧,若有数据则使用非GTS时隙的 CSMA-CA 发送数据

帧,若无数据要发送则发送一个长度为 0 的数据帧。

3.从设备接受到数据帧,返回确认帧。

在对等网络中,除了上述两种通讯情况外,还有从设备和从设备之间的通信,为了保持这种通信(1)设备始终处于接受状态(2)设备间保持互相同步。而对于第一种情况采用非GTS时隙的 CSMA CA 机制来传输信息,第二种采用其他一些措施来保证设备间的相互同步。

用户需求分析

1. 用户需求

1) 需要一个小范围内的无线网,用来传输传感器收集到的信息。 2) 需要一个能够能延伸的无线网,来实现远距离采集传感器信息。 2.解决方法

第一个需求使用最简单的星型网络拓扑结构即能实现。

第二个需求使用网型拓扑结构和簇型拓扑结构均能实现,后续根据实际情况决定采用 何种方案。

功能需求对硬件影响

由前面的分析可以得出,ZigBee 网络设备按功能分类可分为 FFD 和 RFD ,结合到此次设计 分以下两种情况: 1) 星型网络拓扑结构

在此网络中需要一个 FFD 作为主协调器,若干 RFD 作为传感器收集终端。

传感器收集终端只需收集传感器信息并通过 CC2530 发送到主协调器即可,同时需保留 串口供电脑直接读取数据;主协调器除了收集信息外还必须实现与用户交互功能:LCD 显示器,键盘以及与 PC 机的通信等。 2) 对等网络拓扑结构

设备要实现的功能与上面类似,但是由于是对等的拓扑结构,传感器信息收集设备可 能需要用 FFD 来代替 RFD 。

传感器模块和协调器模块最基本的结构如图 6 所示:

图 6_1 传感器信息收集模块 图 6_2 协调器模块

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组网实验之Sample App

Zigbee组网实验之Sample App https://www.360docs.net/doc/133795601.html,/ 佳杰科技开发套件,最便宜、最详细、最好的Zigbee开发套件。 1.实验设备: Q2530SB开发底板(V1.1以上版本)2块 RF2530N射频板2块 天线(非必要,影响传输距离)2根 SmartRF04EB仿真器带USB线和仿真器接头线1个 电池盒有电池一个(负责供电) 2.硬件连接说明 射频板RF2530N分别连接底板Q2530SB 仿真器USB线连接电脑和其中一块底板 电池盒连接另外一块底板、保证系统都正常供电 3.实验步骤及效果 1.打开实验代码:在路径Texas Instruments\ZStack-CC2530- 2. 3.0-1. 4.0\Projects\zstack\ Samples\SampleApp\CC2530DB下鼠标双击打开文件SampleApp.eww 2.在应用层APP文件夹中找到SampleApp.c文件,找到函数SampleApp_HandleKeys并双 击打开。 3.将函数中的代码做以下修改 if ( keys & HAL_KEY_SW_1 ) { /* This key sends the Flash Command is sent to Group 1. * This device will not receive the Flash Command from this * device (even if it belongs to group 1). */ SampleApp_SendFlashMessage( SAMPLEAPP_FLASH_DURATION ); } 改为 if ( keys==0x20 ) { /* This key sends the Flash Command is sent to Group 1. * This device will not receive the Flash Command from this * device (even if it belongs to group 1).

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组网流程

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的工作原理

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组网程序

SappleApp.c #include "OSAL.h" #include "ZGlobals.h" #include "AF.h" #include "aps_groups.h" #include "ZDApp.h" #include "SampleApp.h" #include "SampleAppHw.h" #include "OnBoard.h" /* HAL */ #include "hal_lcd.h" #include "hal_led.h" #include "hal_key.h" #include "string.h" #include "MT_UART.h" //#include "Lcd128X64.h" #include "UtOled.h" #include "sensor.h" #include "HAL_ADC.h" #include "exsensor.h" #include "lcd128_64.h" const cId_t SampleApp_ClusterList[SAMPLEAPP_MAX_CLUSTERS] = { SAMPLEAPP_PERIODIC_CLUSTERID, SAMPLEAPP_FLASH_CLUSTERID }; const SimpleDescriptionFormat_t SampleApp_SimpleDesc = { SAMPLEAPP_ENDPOINT, // int Endpoint; SAMPLEAPP_PROFID, // uint16 AppProfId[2]; SAMPLEAPP_DEVICEID, // uint16 AppDeviceId[2]; SAMPLEAPP_DEVICE_VERSION, // int AppDevVer:4; SAMPLEAPP_FLAGS, // int AppFlags:4; SAMPLEAPP_MAX_CLUSTERS, // uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList, // uint8 *pAppInClusterList; SAMPLEAPP_MAX_CLUSTERS, // uint8 AppNumInClusters; (cId_t *)SampleApp_ClusterList // uint8 *pAppInClusterList; };

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源码程序及解释

协议栈无线透传编程原理: 第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络 //第一步:Z-Stack 由 main()函数开始执行,main()函数共做了 2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统 int main( void ) { ....... // Initialize the operating system osal_init_system(); //第二步,操作系统初始化...... osal_start_system(); //初始化完系统任务事件后,正式开始执行操作系统 ...... } //第二步,进入 osal_init_system()函数,执行操作系统初始化 uint8 osal_init_system( void ) //初始化操作系统,其中最重要的是,初始化操作系统的任务 { // Initialize the Memory Allocation System osal_mem_init(); // Initialize the message queue osal_qHead = NULL; // Initialize the timers osalTimerInit(); // Initialize the Power Management System osal_pwrmgr_init(); // Initialize the system tasks. osalInitTasks(); //第三步,执行操作系统任务初始化函数 // Setup efficient search for the first free block of heap. osal_mem_kick(); return ( SUCCESS ); } //第三步,进入osalInitTasks()函数,执行操作系统任务初始化 void osalInitTasks( void ) //第三步,初始化操作系统任务 { uint8 taskID = 0; tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt); osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));

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->reprocessor->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 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 ); }

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组网实验 一.实验目的 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整理培训资料

第一章 1. Zigbee的定义: Zigbee是一种近距离、低复杂度、低功耗、低成本的双向无线通信技术。 2. Zigbee的基础是IEEE802.15.4,但是IEEE802.15.4仅处理低级的MAC(媒体接入控制协议)层和物理层协议,Zigbee联盟对网络层协议和应用层协议进行了标准化。 3. Zigbee芯片为CC243X系列、MC1322X系列和CC253X系列 常见的CC2420、CC2430、CC2431、CC2530 4.无线传感器网络与Zigbee的关系 *从协议标准来讲,目前大多数无线传感器网络的物理层和MAC层都采用IEEE802.15.4的协议标准. IEEE802.15.4描述了低速率无线个人局域网的物理层和媒体接入控制(MAC)层协议,属于 IEEE802.15.4工作组,而Zigbee技术是基于IEEE802.15.4标准的无线技术。 *从应用上来讲,Zigbee适用于通信数据量不大、数据传输速率相对较低,成本较低的携带或移动设备。这些设备只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另外一个传感器,并能实现传感器之间的组网,实现无线传感器网络分布式、自组织和低功耗的特点。 5. Zigbee的技术特点:低功耗、低成本、大容量、可靠、延时短、灵活的网络拓扑结构 6. Zigbee支持星型、树型和网状型拓扑结构,既可以单跳,又可以通过路由实现多跳的数据传输。 7. CC253X系列芯片大致由三部分组成:CPU和内存相关模块、外设、时钟和电源管理相关模块,无线电相关模块。 8.32/64/125/256KB闪存块 9.常见的Zigbee协议栈分为3种:非开源的协议栈、半开源的协议栈和开源的协议栈。第二章

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

ZigBee协议栈初始化网络启动流程 ZigBee的基本流程:由协调器的组网(创建PAN ID),终端设备和路由设备发现网络以及加入网络。 基本流程:main()->osal_init_system()->osalInitTasks()->ZDApp_Init(),进协议栈初始化函数ZDApp_Init()。 进入程序入口main()。 中 C++ Code int main( void ) { */ WatchDogEnable( WDTIMX ); #endif osal_start_system(); } ZDO_Init(); afRegister( (endPointDesc_t *)&ZDApp_epDesc ); #if defined( ZDO_USERDESC_RESPONSE ) ZDApp_InitUserDesc(); #endif zgInitItems( FALSE ); } ZDConfig_InitDescriptors(); zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE );

} #if defined ( NV_RESTORE ) if ( HalKeyRead() == SW_BYPASS_NV ) networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE; else { On these devices or routers that have If the zgDefaultChannelList = MAX_CHANNELS_24GHZ; } #endif If the PAN is not found, an scan should be completed // When devices rejoin the network and the PAN is not found from zgDefaultChannelList = MAX_CHANNELS_24GHZ; } #endif // ZIGBEE_COMMISSIONING #endif } else if ( startMode == MODE_RESUME ) { if ( logicalType == NODETYPE_ROUTER )

第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冲突。

zigbee网络建立过程

芦苇地带 https://www.360docs.net/doc/133795601.html,/ Blog Subject - 分 类 首页 相册 标签 FPGA 学习(12) 个人生活(16) C 语言(0) 网络转载(6) PCB(6) Verilog(1) ZigBee(18) STM32(2) New Log - 日 志 师兄毕业了,工作一帆风顺~ 为什么51系列单片机常用11.059 项目日志——ZigBee 通信模块测试 项目日志——ZigBee 天线研究【转 闲话生活——2011年开始了 闲话生活——平安夜不平安 项目日志——ZigBee 测试结果 闲话生活——年底了,该做总结了 STM32学习——Q-OS 的画图板应闲话生活——记录俺调试的CCD 板子和 Log Reply - 回 复 Re:闲话生活——年底了,该做总结了 Re:自学单片机四个月感想 Re:【转】FPGA 学习的一些误区 Re:【转】FPGA 学习的一些误区 Re:【转】FPGA 学习的一些误区 请教几个问题 Re:闲话生活——最近很喜欢的一 首歌 Re:闲话生活——最近很喜欢的一首歌 Re:[转]对FPGA 认识、学习和进 Re:[转]对FPGA 认识、学习和进 Blog Links - 链 接 项目日志——Z-STACK 网络建立过程 芦苇 发表于 - 2010-10-13 12:11:00 先看看Packet Sniffer 抓取的网络建立过程的图片,这里有一个Coordinator 和一个Router 。 从上面可以看到建立网络的整个过程如下 1.Coordinator 首先上电,完成网络的初始化,选择一个合适的信道,并且为自择一个PAN_ID(网络标识符),然后周期的向周围发生beacon request 的包。 2.这时间将Router 上电,这样Router 会首先向周围的环境做一个信道能量扫描选量比较合适的信道进行网络搜寻。这里需要注意的是信道能量是有一个等级的K 里面会有一个门限值,当这个能量低于这个门限会被认为没有网络,在这不我久。当信道选择好之后,Router 也会周期性的向周围发送beacon request 的包来dinator 的回复。 3.当Coordinator 接受到Router 的beacon request 包之后会发送一个包含自己IE 址的超帧。主要目的是为了将自己的MAC 地址(64位)交给Router ,以便后续的 4.Router 接受到超帧之后,将Coordinator 的MAC 地址保存,并利用这个地址向C 发生 个A i ti R t 的包 这个包目的是寻求加入网络 收到 C

ZigBee组网小实验1

ZigBee组网小实验1 (实验所用程序在SampleApp基础上修改) 终端经路由器入网: 首先把协调器和两个终端的天线拔掉,以大幅减小传输距离,把两个终端放到稍远或障碍物多的地方,使协调器数据传输不到终端。测试,两个终端入不了网。 然后把路由器放到协调器和终端中间某一处。启动协调器,启动路由器,最后再启动两终端,测试,两个终端入网成功,网络地址分别为0x1430和0x1431,路由器网络地址为0x0001,协调器串口广播发送数据,路由器和两个终端成功接收到。 最后,再把路由器关闭,数据发送不成功,并且两终端的灯已经一闪一闪,与网络断开了。 各串口依次为:协调器/路由器/其中一个终端(路由器执行两次扫描入网) 左那只:路由器右边两只:终端协调器:天线拔掉

终端未经路由器入网: 节点保持原来位置,但把协调器和两个终端的天线重新安上,以增加传输距离。 启动协调器,启动路由器,最后再启动两终端,测试,两终端入网成功,网络地址分别为0x796F和0x79 70,路由器网络地址为0x0001,协调器串口广播发送数据,路由器和两个终端成功接收到。 把路由器关闭,协调器串口广播发送数据,两终端同样成功接收。 各串口依次为:协调器/路由器/其中一个终端(路由器执行两次扫描入网)

用无线龙的网络监控软件来查看拓扑图,不过因为电脑上串口的原因,监控软件只有com1~com9,而我这小电脑上经常是com10+,因此调整下相应模块的节点类型,然后下载与其配套的的SampleApp例子再次组网,以下拓扑图不代表上面两种网络。协调器和绿色网络线连接的那个路由器都是无线龙的两块老板子,明显很扛的!~ 图1:两个终端经过路由器入网(把模块的天线拔了,信号强度明显下降,网络线呈红色)

ZigBee组网实验

ZigBee组网实验 修订记录 版本修订说明修订者修订日期V1.0 初稿xux 2014-03-26 南京未来星传感技术有限公司 2014年3月

实验二十一节点无线聊天实验 前言:节点无线聊天即传统的串口透传,这个名词相信大家在看ZigBee相关资料时经常会看到,透传到底是什么呢?电脑A和电脑B通过串口相连,相互发送信息,现在我们将电脑A和B连接Zigbee模块,再用串口收发信息,ZigBee的作用就相当于把有线信号转化成无线信号。这样我们电脑前面操作一样的,但是已经变成无线传输了,这就是串口透传!如图所示: 实验平台:未来星CC2530模块及功能底板个两块(一个协调器,一个终端) 实验现象:两台不同的PC机通过串口连接到未来星开发板,打开串口调试助手,设置好波特率等参数。相互收发信息。没有2台电脑也可以同一台电脑的不同串口进行试验。 实验讲解:试验使用我们熟悉的SampleApp.eww工行来进行。在前面我们曾做过串口实验和数据无线传输,这次试验是这两个试验的一个结合。不过协议栈的串口接收有特定的格式,我们得了解一下它的传输机制。先理清我们要实现这个功能的流程:由于2台PC机所带的模块地位是相等的,所以两个模块的程序流程也一样: 1、zigBee模块接收到从PC机发送信息,然后无线发送出去 2、ZigBee模块接收到其它ZigBee模块发来的信息,然后发送给PC机 我们打开Z-stack目录Projects\zstack\Samples\SampleApp\CC2530DB 里面的SampleApp.eww工程。这次试验我们基于协议栈的SampleApp来进行。

zigbee组网过程

int main( void ) { // Initialize the operating system osal_init_system(); //初始化操作系统 ... } OSAL.c uint8 osal_init_system( void ) { // Initialize the system tasks. osalInitTasks(); // 初始化任务 } OSAL_SampleLight.c void osalInitTasks( void ) { uint8 taskID = 0; ZDApp_Init( taskID++ ); zcl_Init( taskID++ ); zclSampleLight_Init( taskID++ ); } ZDApp.c void ZDApp_Init( uint8 task_id ) { ZDAppTaskID = task_id; ZDAppNwkAddr.addrMode = Addr16Bit;//地址模式为16bit短地址 ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR;//短地址=0xFFFE (void)NLME_GetExtAddr(); //API函数,用于得到64bit IEEE地址 afRegister( (endPointDesc_t *)&ZDApp_epDesc ); //为设备注册端点0描述符 ZDO_Init(); //初始化ZDO 物件,并且设置设备 if ( devState != DEV_HOLD ) // 无HOLD_AUTO_START此项预编译,所以devState = DEV_INIT { ZDOInitDevice( 0 ); } ZDApp_RegisterCBs(); //注册ZDO 消息,只有注册了的消息才能以ZDO_CB_MSG 消息的形式发送给指定的任务}

相关文档
最新文档