首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >终端设备如何在XBee (系列1) NonBeacon (W/协调员)网络中相互通信

终端设备如何在XBee (系列1) NonBeacon (W/协调员)网络中相互通信
EN

Stack Overflow用户
提问于 2012-05-26 03:19:47
回答 1查看 10.3K关注 0票数 4

我用三个NonBeacon系列1模块建立了一个XBee (W/协调员)网络。其中一个被配置为协调器。另外两个设备被配置为终端设备。固件版本和配置如下所示。

Firmare

代码语言:javascript
运行
复制
Modem:  XBEE    Function Set    Version
XB24    XB24    802.15.4        10CD

协调员

代码语言:javascript
运行
复制
Parameter            Value   Comments
CH (Channel)         0x0F    Identical
ID (PAN ID)          0x5241  Identical
DH                   0x0
DL                   0x0
MY (Source Address)  0xFF01  Unique
CE (Coord. Enable)   1  
A2 (Coord. Assoc.)   0x04    allow end devices to associate to it.

端设备

代码语言:javascript
运行
复制
Parameter            Value   Comments
CH (Channel)         0x0F    Identical
ID (PAN ID)          0x5241  Identical
DH                   0x0
DL                   0x0
MY (Source Address)  0xFF02  Unique
CE (Coord. Enable)   0  
A1 (End Dev Assoc.)  0x04    allow associate to coordinator.

当终端设备1发送数据时,协调器可以接收数据,而终端设备2不能接收数据,我希望终端设备2从这个网络中的终端设备1接收数据。我目前的解决方案是让协调程序广播数据,这样终端设备2就可以接收数据了。我不确定这是否是解决终端设备间通信问题的好办法。还有别的解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-31 19:05:30

使用Digi XBee 802.15.4模块(也称为Digi XBee系列1模块),使用坐标上的广播与终端设备通话是不受惩罚的。

另一方面,如果您希望能够在任何两个Digi XBee 802.15.4模块之间建立通信,则需要使用单播寻址。单播寻址以下列方式执行:

  1. 通过将MY参数设置为唯一值,在每个节点上设置一个地址
  2. 将协调器的DL参数设置为您希望与之交谈的*end设备节点的MY值。
  3. 请注意,每个终端设备都可以通过将DL设置为0来与协调器( CE设置为1的节点)说话。

如果必须更改协调器上的DL参数,以便能够依次与每个终端设备对话,则可能会非常笨拙。这就是为什么许多人以API模式使用Digi XBee收音机的原因。

如果您从Digi XBee 802.15.4支持页面的文档部分下载手册,您将发现一个名为"API操作“的部分。如果将AP参数设置为>1,则将启用此模式。

如果您在API模式下将一些数据从终端设备发送到协调器,您将看到RX帧(API类型为0x81)从收音机中出现。同样,如果使用API类型0x01发送类似格式的数据包,并指定终端设备的MY地址作为目的地,您将看到数据从终端设备XBee的串口中出现。

如果您搜索"XBee API库“,您将发现许多有用的库链接,它们可以使用您选择的语言(如这是Java语言的方便之处。 )与Digi XBee模块对话。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10763334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档