(http://www.bitconn.com/form_1/ 登记后,购买XBee模块,送USB评估底板及相关中文资料,或者免费申请借用评估套件)
目录
无线数据传输
本节说明数据传输,并引导您通过一个示例来说明其工作方式。
传输方式
XBee模块可以与多个设备或仅与一个设备通信:
- 广播传输被发送到网络中的许多或所有模块。
- 单播传输将无线数据从一个XBee路由到一个目标模块。
广播传输
广播是指将相同的数据传输到网络上的所有节点。这些传输在整个网络中传播,以便所有可能的节点都接收到传输。
为此,协调器和所有接收广播传输的路由器将数据重新传输三遍。当路由器或协调器将广播传输传递给终端设备子节点时,它仅在终端设备唤醒并轮询父节点以获取新数据后立即发送一次传输。
您可以使用64位广播地址或16位广播地址处理广播传输:
- 如果使用64位广播地址(000000000000FFFF),则将16位地址设置为未知地址(FFFE)。
- 如果使用16位广播地址(FFFF)形式,请将64位地址设置为未知地址(FFFFFFFFFFFFFFFF)。
注意 由于XBee模块重新传输网络中每个设备都会广播传输,因此应谨慎使用广播消息。
单播传输
单播传输由将消息发送到由唯一的地址所标识的网络上的单个节点的。目标XBee可以是发送方的直接邻居,也可以是几跳远。
可以使用64位地址或16位地址(网络地址)寻址无线数据:
- 如果使用64位地址,请将网络地址设置为未知地址(FFFE)。
- 如果使用16位地址,则必须将64位地址设置为未知地址(FFFFFFFFFFFFFFFF)。
- 16位地址0000和64位地址0000000000000000保留给协调器。
Zigbee网络层在每个跃点上使用目标的16位地址来路由数据。
如果您使用无效的16位地址作为目标地址,而64位地址未知(FFFFFFFFFFFFFFFF),则“传输状态(0x8B)”消息将显示传递状态代码为0x21(网络ACK失败)和发现状态为0x00(无发现开销)。
如果您使用不存在的64位地址作为目标地址,并且16位地址未知(FFFE),则设备将尝试地址发现,并且“传输状态(0x8B)”消息将显示传递状态码0x24(地址未找到)和发现状态代码0x01(尝试地址发现)。

地址表
XBee设备使用目标网络地址以单播传输方式发送数据。由于只能使用目标的64位地址发送数据,因此所有Zigbee设备都维护一个地址表,以将64位地址映射到相应的16位地址。XBee模块最多可以存储10个地址表条目。
如果目标的16位地址未知:
- Zigbee堆栈使用其地址表来查找具有匹配的64位地址的条目,该地址确定目标的16位地址。
- 如果未找到,XBee会在发送数据之前自动启动发现过程以找到该地址:
- 首先,发送设备广播地址发现消息。该消息包括正在请求其16位地址的远程XBee模块的64位地址。
- 接收此传输的所有节点都将自己的64位地址与消息中包含的地址进行比较。
- 如果地址匹配,则远程XBee将响应发送回请求者模块。该响应包括远程设备的16位地址。
- 当请求模块接收到具有目的地的16位地址的发现响应时,它将发送数据。
示例:传输数据
在该工具包的第一个示例中,您使用透明模式将数据传输到其他节点。透明模式下的XBee模块仅在接收信息时就传递信息。此模式是XBees入门的简单方法,但有一些限制:
- 您必须在发送器模块中配置接收器的地址。如果要将数据传输到其他XBees,则必须重新配置发送者。
- 接收方模块不知道谁发送了消息。
您可以使用API模式来避免这些限制,并在数据传输中具有更大的灵活性和可靠性。在API模式下,您仍将消息发送到模块。但是,您还发送了其他必要的信息,例如目标地址或校验和值,这些信息全部包装在具有定义为API帧的结构的数据包中。这意味着在API模式下,您无需在模块中设置目标地址(DH + DL)。类似地,接收器模块接收的信息比消息本身多,例如源地址,信号强度或校验和值。
在此示例中,您将使用Java编程语言创建一个应用程序,以在网络节点之间传输数据。为了简化该应用程序,您将使用XBee Java库,这是一个易于

本文详细介绍XBee模块的无线数据传输原理,包括广播和单播传输方式,以及如何使用API模式提高数据传输的灵活性和可靠性。通过示例,演示如何配置XBee模块并使用Java编程实现数据传输。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



