c++串口多线程存数据_第五章、Zigbee模块的数据传输

本文详细介绍了Zigbee模块的两种数据传输方式:透明传输和点对点传输,包括各种传输指令格式、数据长度限制以及如何通过设置不同传输模式来解决数据来源问题。同时,还讨论了Zigbee模块的自动路由功能和串口调试助手的使用注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.1,Zigbee模块数据传输概述

Zigbee模块有2种数据传输方法:

1,透明传输(不会改变数据,模块之间相当于串口线):

(1),Coordinator从串口收到的数据,会原封不动的发送到所有的Router,并从Router串口输出;

(2),Router从串口收到的数据,会原封不动的发送到Coordinator,并从Coordinator串口输出;

2,点对点传输:

(1),可在一个Zigbee网络内点对点发送到任何节点;可使用短地址作为目标地址,可使用自定义地址作为目标地址

,或在Zigbee网络内广播发送到所有节点;

5.2,透明传输

(1),Coordinator从串口收到的数据,会原封不动的发送到所有的Router,并从Router串口输出;

(2),Router从串口收到的数据,会原封不动的发送到Coordinator,并从Coordinator串口输出;

在这个传输过程中,Router会自动找出最佳路由路径,为数据传输自动提供中继(不需要用户设置,按需求放置即可),透明传输的Coordinator与Router之间,相当于一条串口线,即,用户完全不需要修改设备或上位机软件,可以将有线传输改造成无线传输(且自动路由)

bdb2d497c089191e61949c3fecdda41c.png

9e75b33d6503435e267951e0afa8d0d9.png

7ef4f03e8ce15bff5279365f384bd78c.png

e9a9e06b1a97bc95e662657d9c74d4f9.png

5.3,点对点传输(短地址作为目标地址)

点对点一般适合于Router与Router之间的数据传输,可发送给任意节点或广播发送给全部节点

发送指令格式:

数据传送指令(0xFD)+ 数据长度 + 目标地址(短地址) + 数据(最多92 Bytes)

数据长度在92 字节内支持变长。

例:数据从0x50F5传送至0x143E (以下为16进制数字)

发送:FD 0A 14 3E 01 02 03 04 05 06 07 08 09 10

FD:数据传输指令

0A:数据区数据长度,共10 个字节

14 3E:目标地址

01 02 03 04 05 06 07 08 09 10:数据

收到的数据为:FD 0A 14 3E 01 02 03 04 05 06 07 08 09 10 50 F5

5.4,点对点传输(自定义地址作为目标地址)

发送指令格式:

数据传送指令(0xED)+ 数据长度 + 目标地址(自定义地址) + 数据(最多92 Bytes)

数据长度在92 字节内支持变长。

例:数据从0x50F5传送至0x143E (以下为16进制数字)

发送:ED 0A 14 3E 01 02 03 04 05 06 07 08 09 10

ED:数据传输指令

0A:数据区数据长度,共10 个字节

14 3E:目标地址

01 02 03 04 05 06 07 08 09 10:数据

收到的数据为:ED 0A 14 3E 01 02 03 04 05 06 07 08 09 10 50 F5

5.5,点对点传输(自定义地址作为目标地址,去掉包头包尾)

发送指令格式:

数据传送指令(0xEC)+ 数据长度 + 目标地址(自定义地址) + 数据(最多92 Bytes)

数据长度在92 字节内支持变长。

例:数据从0x50F5传送至0x143E (以下为16进制数字)

发送:EC 0A 14 3E 01 02 03 04 05 06 07 08 09 10

EC:数据传输指令

0A:数据区数据长度,共10 个字节

14 3E:目标地址

01 02 03 04 05 06 07 08 09 10:数据

收到的数据为:01 02 03 04 05 06 07 08 09 10

5.6,透明传输+自定义地址(这是透明传输的一种)

这是透明传输的变种,主要解决数据从哪里来的问题。

将某个模块的传输方式设置为:透明传输 + 自定义地址

则这个模块在数据透明传输时,会在数据的最后加上自己的自定义地址(2个字节),一起发送。接收方收到的数据为:数据 + 来源节点的自定义地址(2个字节)。

例:发送:01 02 03 04 05 06 07 08 09 10

收到的数据为:01 02 03 04 05 06 07 08 09 10 11 33

数据 + 来源节点的自定义地址(2个字节)

发送的数据最长为259个字节(加自定义地址为261字节)

5.7,透明传输+短地址(这是透明传输的一种)

这是透明传输的变种,主要解决数据从哪里来的问题。

将某个模块的传输方式设置为:透明传输 + 短地址

则这个模块在数据透明传输时,会在数据的最后加上自己的短地址(2个字节),一起发送。接收方收到的数据为:数据 + 来源节点的短地址(2个字节)。

例:发送:01 02 03 04 05 06 07 08 09 10

收到的数据为:01 02 03 04 05 06 07 08 09 10 C7 64

数据 + 来源节点的短地址(2个字节)

发送的数据最长为259个字节(加短地址为261字节)

5.8,透明传输+MAC地址(这是透明传输的一种)

这是透明传输的变种,主要解决数据从哪里来的问题。

将某个模块的传输方式设置为:透明传输 + MAC地址

则这个模块在数据透明传输时,会在数据的最后加上自己的MAC地址(8个字节),一起发送。接收方收到的数据为:数据 + 来源节点的MAC地址(8个字节)。

例:发送:01 02 03 04 05 06 07 08 09 10

收到的数据为:01 02 03 04 05 06 07 08 09 10 00 12 4B 00 07 FC C6 B0

数据 + 来源节点的MAC地址(8个字节)

发送的数据最长为259个字节(加MAC地址为267字节)

5.9,Zigbee模块的路由

Zigbee模块的路由是完全自动的,适合于透明传输、点对点传输。

假设:A、B模块之间的距离较远,导致A,B不能通讯,这时只要在A、B之间增加一个模块C,如果A、C,B、C之间均能通讯,则C可以自动充当A、B之间的路由。

C不需要特别设置,只需要加入网络。

cebbc02eb84d4e078e2db39dae62adad.png

e2783e02c2c7ac3b6e6fd2129ab96269.png

5.10,串口调试助手注意事项

1,如果是16进制(Hex)发送,则选择16进制接收(勾选Hex显示);

   如果字符方式发送(不勾选Hex发送),则接收也不勾选

2,串口调试助手的波特率、串口格式要与所连接的Zigbee模块一致;

f5aa94e50188f46cb16570e67a0849bb.png

5.11,关于波特率(非常重要)

波特率指的是:2个硬件设备直接连接时,它们之间的通讯速率;

用户不需要关心所谓的“Zigbee空中波特率”

所以:一个Zigbee模块与一个设备连接,它们之间的波特率(及串口格式)要一致,而不是要求一个Zigbee网络内所有的Zigbee模块波特率要一致。

e96c61c6a30e2d06713eb6f3f03d6ea9.png

喜欢我们,记得点赞订阅哦

2b7447ce722cf7e3f9d99f600122086f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值