ZigBee单播通信
一、单播通信理论
(1)Zigbee网络通信方式有4种:单播,广播,组播,绑定(MAC)。
(2)单播通信的特点:在Zigbee网络里,模块之间要进行通信,发射模块要明确知道接收模块的网络地址。
(3)Zigbee模块的地址特点:模块在加入网络的时候,父节点随机分配网络地址给子节点。但是协调器模块在)网络里的地址永远都是0x00。
单播发送数据需要明确的信息:
(1)目标地址
(2)目标端点与簇
(3)要发送的数据大小
应用任务层数据发送函数
该函数在GenericApp.c里的GenericApp_SendTheMessage函数里:
AF_DataRequest(&GenericApp_DstAddr, //目标的网络地址指针&GenericApp_epDesc,//端点描述符指针GENERICAPP_CLUSTERID,//目标簇(byte)osal_strlen( theMessageData ) + 1,//发送数据的大小(byte *)&theMessageData,//发送数据缓冲区的地址&GenericApp_TransID,//这是个全局变量,用来保存发送的次数AF_DISCV_ROUTE, AF_DEFAULT_RADIUS );//发送路径,don't care
网络地址结构体
网络地址结构体就是定义在GenericApp.c前面的一个结构体变量,该类型为afAddrType_t,系统已经默认定义了一个网络地址结构体变量GenericApp_DstAddr,我们可以在GenericApp_Init()函数中,对网络地址结构体变量的成员进行赋值。
//网络地址结构体:
typedef struct
{union{uint16 shortAddr;//网络地址ZLongAddr_t extAddr; //MAC地址} addr;afAddrMode_t addrMode;//通信模式byte endPoint; //指定的端点uint16 panId; //don't care
} afAddrType_t;
//通信模式枚举类型:
typedef enum
{afAddrNotPresent = AddrNotPresent,//当前不确定afAddr16Bit = Addr16Bit,//单播通信模式afAddr64Bit = Addr64Bit,//MAC通信模式afAddrGroup = AddrGroup,//组播通信模式afAddrBroadcast = AddrBroadcast//广播通信模式
} afAddrMode_t;
二、端点与簇
1.端点
(1)通常发送的数据要明确该数据是给接收模块的哪个任务层用的,而这个就是用端点来指定的
(2)端点是一个字节的编号,通常为定义在GenericApp.h中的一个宏。端点必须要与任务层绑定,而这个就是用端点描述符来实现的。
(3)端点描述符是一个结构体变量,该变量定义在GenericApp.c开头,我们也可以定义新的端点描述符。该结构体的类型为 endPointDesc_t,系统也默认定义了一个端点描述符GenericApp_epDesc。
(4)我们可以在 GenericApp_Init()函数中,把新的端点描述符变量赋值,使新的端点与某个任务层绑定。
//端点结构体类型:
typedef struct
{byte endPoint;//端点的值byte *task_id; //与端点绑定的任务层IDSimpleDescriptionFormat_t *simpleDesc;//端点的描述信息,don’t careafNetworkLatencyReq_t latencyReq;//don’t care
} endPointDesc_t;
2.簇
(1)在接收模块中,每个任务层可以对不同种类的数据采取不同的处理方式,这里的数据种类就是簇(CLUSTER)
(2)在发送模块中,簇是定义在GenericApp.h中的一个宏,我们也可以定义新的簇。
(3) 系统也默认定义了一个簇 GenericApp_CLUSTERID,在GenericApp.h中
三、 应用任务层数据发送接收API
(1)该函数为GenericApp.c中的void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
(2)在switch语句中可以定义对不同的簇采用不同的方式处理数据
(3)该函数中的pkt->cmd.Data就是接收数据的首地址
ZigBee单播通信相关推荐
- ZStack通信(Zigbee协议栈通信)
ZStack通信-Zigbee协议栈通信 一.注册端点 二.发送数据函数 三.接收数据 一.注册端点 应用都是建立在端点ZDO(Zigbee Device Object)之上的, 所以要实现通信首先要 ...
- zigbee单播丢包测试(CC2530,ZSTACK)
之前写过一个zigbee数据测试,由于当时对zigbee理解的很浅,所以写的代码丢包严重.最近为了提高数据传输的可靠性,改进了一下通信的方式,结果还不错. 之前:协调器+普通终端节点,协调器广播,节点 ...
- 单播通信、主播通信和广播通信
单播 简介 单播(unicast)是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式.每次只有两个实体相互通信,发送端和接收端都是唯一确定的.它是现今网络应用最为广泛,通常所使用的网络协议 ...
- ZigBee串口通信
一.串口通信原理 1.什么是UART UART : Universal Asynchronous Receiver/Transmitter 通用异步收发器 一种常用也是最简单的串行数据传输协议 ...
- ZigBee TI ZStack CC2530 4.14 广播通信
[配套源码.文档.软件.硬件等资源,入口见文末] 前面两节中,我们详细介绍了ZigBee的第一种无线通信方式--单播:本节中,我们将介绍ZigBee的第二种无线通信方式--广播. (仅描述与单播通信不 ...
- 关于arduino和zigbee串口16进制通信问题
2019独角兽企业重金招聘Python工程师标准>>> 这几天我做毕业设计遇到的问题.这个问题就是我的uno板子怎样和zigbee通信起来.先说说我的思路,把uno做成一个网关,从而 ...
- contiki学习笔记(四)、contiki系统UDP通信原理(单播、多播、RPL介绍)
(1).simple_udp_register()函数 contiki\core\net\ip /*该函数简化contiki系统中基于UDP协议的Socknet接口操作,函数体中包含了udp_new( ...
- Zigbee安全概述
一.Zigbee概述 随着物联网(IoT)行业的发展,越来越多的无线技术应运而生. 众所周知,在物联网行业中,我们有两种典型的网络.一个是WAN(广域网),另一个是PAN(个人区域网). 对于LoRa ...
- zigbee学习参考(1~42 )
[原创]ZigBee学习之1--SPI&LCD - 小组 - EDN China [原创]ZigBee学习之2--SPI&LCD - 小组 - EDN China ZigBee学习之3 ...
- Zigbee安全漏洞分析
1. 摘要 ZigBee被认为是一种安全的通信协议.它的安全体系结构是对IEEE 802.15.4标准提供的安全服务的补充.ZigBee提供的安全服务范围包括:安全密钥建立.安全密钥传输.通过对称加密 ...
最新文章
- python 终止、结束、退出 代码
- java多递归调用_java – 递归调用方法
- 敏捷个人:激励 2011-11-26期
- 解决:Sublime Text3 packagecontrol.io 无法访问的问题
- 开工大吉!送你一份「远程工作约定」
- MySQL进阶之索引
- jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式
- mysql数据表最高速迁移,mysql的存储引擎为:myisam
- 浅谈智能电能表的远程预付费 系统设计
- 计算机连接不上网络交换机,解决某些计算机在连接到路由器(交换机)后无法访问互联网的问题...
- 2021年中国驴行业存栏量延续下降走势,存栏基数降低使得驴肉供应减少,价格持续走强[图]
- autojs联众识图
- x64dbg 基本使用技巧
- Fedora的U盘无法格式化
- java实现将多个word文档合并
- python星座属相查询_python的生肖和星座计算函数
- Ubuntu 18.04 LTS 命令行方式安装中文语言包
- postgresql 通过制作函数实现16进制转换为10进制
- Java的jdk配置成功,但是输入java -version等,命令行没有任何反应
- JCJC错别字检测系统API接口使用文档-添加黑名单、白名单词汇
热门文章
- 苹果手机怎么连接不了无线网络连接服务器,苹果手机连接wifi显示无互联网连接怎么办?...
- html5这什么意思,html5是什么意思?html5和html的区别介绍
- 6. ROS编程入门--路径跟随(Trajectory following)
- Python爬取有道词典
- 6.3深度优先遍历和广度优先遍历
- Fins源代码欧姆龙通讯 OneApiConnect
- 3D建模就业前景如何?
- linux 关机 日志记录,linux查看开关机记录
- python多项式求导_OO博客作业1:多项式求导作业总结
- 调用微信扫一扫接口---实现二维码扫描(微信浏览器)