Zigbee无线传输
- 地址的模式(广播、组播等)、端点、具体的模式(短地址、长地址)(广播是0xffff、0xfffc、0xfffd)
- 设备启动成功进入的第一个函数是ZDO_STATE_CHANGE()(设备状态改变事件),初始化就可以放在这个函数下面。
- 节点与端点:有完整的收发设备的是节点,没有则是端点。
- 数据的发送和接收:当一个设备发送数据时,必须指定发送目的节点的长地址或短地址以及端点来进行数据的发送和接收,并且发送方和接收方所使用的端点号必须一致。
- 绑定:如果设备之间需要绑定,那么在Zigbee的网络层必须注册一个或者多个端点来进行数据的发送和接收以及绑定表的建立。
- 绑定是第三种地址模式(查绑定表)
- 端点描述符:端点的实现由端点描述符来完成,每一个端点描述符由一个结构体来实现,在端点描述符中又包含了一个简单描述符。
- 在AF.c文件中定义
- 数据发送和接收
-
数据发送函数原型
-
afAddrMode_t成员定义了发送信息的四种地址模式
- 间接寻址:间接寻址多用于绑定。当应用程序不知道数据包的目标地址时,将寻址模式设定为AddrNotPresent。Zstack底层将自动从堆栈的绑定表中查找目标设备的具体网络地址,这称为源绑定。如果在绑定表中找到多个设备,则向每个设备都发送一个数据包的拷贝。
- 单点寻址:两种设置方式,Addr16Bit(短地址)和Addr64Bit(长地址)
- 组寻址:目标地址addr应设置为组ID
- 广播寻址:
- 0xffff(默认值)数据包将被传送到网络上的所有设备,包括睡眠中的设备;
- 0xfffd数据包将被传送到网络上所有空闲时打开接收的设备,即除了睡眠中的所有设备;
- 0xfffc数据包发送给所有的路由器,其中也包括协调器;
- 0xfffe应用层将不指定目标设备,而是通过协议栈读取绑定表获得相应额度目标设备的短地址。
- 单点寻址和组寻址的区别在于短地址和地址模式
- 数据接收
-
数据接收格式
- ZDO层分析
- ZDO(The Zigbee Device Objects,即Zigbee设备对象)
- 提供了Zigbee设备管理功能,包括:网络建立,发现网络、加入网络、应用端点的绑定和安全管理服务。
- ZDP(Zigbee Device Profile,即Zigbee设备规范)
- 描述了ZDO内部一般性的Zigbee设备功能是如何实现的。其定义了相关的命令和相应的函数。
基于协议栈的广播组网实验
-
SampleApp.c中,修改SampleApp_Init()函数为广播
-
修改SampleApp_MessageMSGCB()函数
-
修改SampleApp_SendPeriodicMessage()函数
基于协议栈的点播组网实验
- 在广播组网实验基础上修改
- SampleApp.c中,修改SampleApp_Init()函数为点播、0x0000
————————————————
版权声明:本文为CSDN博主「路灯谣」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lululumiao/article/details/118691270