Zigbee协议栈
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MAC地址:MAC address 扩展地址:Extended address
网络地址
16-bit
逻辑地址:Logical Address 短地址:Short Address
ZigBee协议栈已经实现了ZigBee协议,用户可以使 用协议栈提供的API进行应用程序的开发,在开发过 程中完全不必关心ZigBee协议的具体实现细节,要 关心的问题是:应用层的数据是使用哪些函数通过 什么方式把数据发送出去或者把数据接收过来的。 所以最重要的是我们要学会使用ZigBee协议栈
举例
ZigBee协议栈网络管理 对于无线传感器网络来说,网络管理的作用也是很 明显的。可以查询网络中相关节点有关的地址信息
ZigBee协议栈实现的网络管理函数
1、uint16 NLME_GetShortAddr(void) 返回该节点的网络地址 2、bye *NLME_GetExtAddr(void) 返回指向该节点的MAC地址的指针 3、uint16 NLME_GetCoordShortAddr(void) 返回父节点的网络地址 4、void NLME_GetCoordExtAddr(byte *buf) 该函数的参数是指向存放父节点MAC地址的缓冲区 的指针
技能拓展
将接受到得信息改成0123456789I get data
任务2 点播和广播
单播、组播与广播
在ZigBee网络中进行数据通信主要有三种类型:广播 (Broadcast)、单播(Unicast)和组播(Multicast)。 广播(如图1所示)描述的是一个节点发送的数据包,网络 中的所有节点都可以收到。这类似于开会时,领导讲话,每 个与会者都可以听到。 单播(如图2所示)描述的是网络中两个节点之间进行 数据包的收发过程。这就类似于任意两个与会者之间进行的 讨论。
网络管理基础实验 路由器(编号1)、终端设备(编号2)发送自己的定 义的设备号给协调器,协调器通过接收到的设备号判 断设备类型,并且获取设备的短地址,通过串口打印 出来。 网络管理实验原理如图所示。
广播和单播通信实验原理图
EndDevice 1
Coordinator ZigBee 网络 EndDevice 2
PC机
EndDevice 3
组播通信
组播通信实验原理图如图所示。
Router1
Coordinator ZigBee 网络 Router2
PC机
Router3
需要注意的几条语句
1.my_DstAddr.addrMode=(afAddrMode_t)AddrBroad cast; 2.my_DstAddr.addrMode=(afAddrMode_t)Addr16Bit; 3.my_DstAddr.addrMode=(afAddrMode_t)AddrGrou p; 4.my_DstAddr.addr.shortAddr=0x0000; 5.my_DstAddr.addr.shortAddr=0xFFFF
Zigbee协议栈简要流程
任务1:数据传输
任务现象
终端节点将数据0123456789无线发送到协调器,协 调器通过串口发送给PC上位机显示出来。实验基于 SampleApp工程进行。
任务步骤
第一步:串口初始化
修改串口函数中的参数:uartConfig.flowContrห้องสมุดไป่ตู้l = MT_UART_DEFAULT_OVERFLOW; 语句是配置流控的, 我们进入定义可以看到: #define MT_UART_DEFAULT_OVERFLOW TRUE,其 中将TRUE改为FALSE
第二步:登记任务号
1、打开SampleApp.C文件,需要在SampleApp.c这 个文件里加入头文件语句: #include “MT_UART.h”;
发送函数
接受函数
ZigBee协议栈中提供的与串口操作有关的三个函 数为(可在zmain.c和hal_uart.c中查看相关函数) uint8 HalUARTOpen(uint8 halUARTCfg_t *config); uint16 HalUARTRead(uint8 port,uint8 *buf,uint16 len); Uint16 HalUARTWrite(uint8 prot,uint *buf,uint16 len);
1. ZigBee网络中只能有一个协调器,可以有多个路由器和多个终端设备。 如图所示,黑色节点为协调器,灰色节点路由器,白色节点为终端设备。
(1)协调器的作用 ① 协调器是每个独立的Zigbee网络中的核心设备,负责选择一个信道和 一个网络ID(也称PAN ID),启动整个ZigBee网络。 ② 协调器的主要角色是负责建立和配置网络。由于Zigbee网络本身的分 布特性,一旦Zigbee网络建立完成后,整个网络的操作就不再依赖协调 器是否存在,与普通的路由器没有什么区别。
ZigBee网络中的设备地址 讲述ZigBee网络中的地址类型之前,需要了解一 下ZigBee网络中设备类型,在ZigBee无线网络中, 主要有三种类型的设备,设备类型的选择是在编 译时根据不同的编译选项来确定的。 1.协调器(Coordinator) 2.路由器(Router) 3.终端节点(End-device)
(3)终端设备(终端节点)的作用 ① 终端设备是Zigbee实现低功耗的核心,它的入网 过程和路由器是一样的。终端设备没有维持网络结 构的职责,所以它并不是时刻都处在接收状态的, 大部分情况下它都将处于IDLE或者低功耗休眠模式。 因此,它可以由电池供电。 ② 终端设备会定时同自己的父节点进行通信,询问 是否有发给自己的消息,
ZigBee网络中的设备地址
在网络中进行通信,需要标识每个设备的地址,在ZigBee 无线网络中,设备地址有以下两种。 1)64-bit的IEEE地址(64-bit IEEE address) 2)16-bit的网络地址(16-bit network address)
地址类型
位数
别称
IEEE地址
64-bit
任务3 Zigbee协议网络管理
内容回顾( zigbee网络拓扑结构)
ZigBee无线网络中的地址分配机制
下面讲解一下ZigBee无线网络中的地址分配机制: 分布式分配机制(Distributed Addressing Scheme)。 前文提到,ZigBee无线网络中,协调器 (Coordinator)在建立网络以后使用0x0000作为自 己的网络地址(即协调器的默认网络地址是 0x0000)。在路由器(Router)和终端(Enddevice) 加入网络以后,父设备会自动给它分配16位的网络地 址。 网络地址是16位的,因此最多可以分配给65536 个节点,地址的分配取决于整个网络的架构。
-----Zigbee协议栈
主讲:黄煌
2018/7/19
本单元的教学目标 1、能力目标: 基本实操能力 2、知识目标: 掌握ZigBee协议栈的安装、编译与下载 掌握协调器、路由器、终端节点的编程方法及步骤 3、素质目标:交流合作能力,自学能力
教学内容
任务1:数据传输 任务2:点播和广播 任务3:Zigbee协议栈网络管理
单播、组播与广播
组播(如图3所示)又称作多播,描述的是一个节点 发送的数据包,只有和该节点属于同一组的节点才能 收到该数据包。这类似于领导讲完后,各小组进行讨 论,只有本小组的成员才能听到相关的讨论内容,不 属于该小组的成员不需要听取相关的内容
网络通信实验
上面了解了网络通信的三种模式,下面结合具体 实验,向读者展示一下如何在具体的项目开发中实现 上述通信模式,只有在实验中真正的去体会各种通信 模式的区别与联系,才能更好的掌握Zigbee网络数据 传输的基本原理。