终端设备如何在 XBee(系列 1)非信标(带协调器)网络中相互通信



我设置了一个带有三个XBee系列1模块的非信标(带协调器)网络。一个配置为协调器。另外两个配置为终端设备。固件版本和配置如下。

菲尔马雷

Modem:  XBEE    Function Set    Version
XB24    XB24    802.15.4        10CD

协调者

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.

终端设备

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 可以接收它。我不确定这是否是解决终端设备之间通信问题的好解决方案。还有其他解决方案吗?

使用 Digi XBee

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

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

  1. 通过将 MY 参数设置为唯一值来设置每个节点上的地址
  2. 将协调器的 DL 参数设置为要与之通信的 *终端设备节点的 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库",你会发现很多有用的库链接,这些库可以使用你选择的语言与Digi XBee模块对话,比如这个方便的Java语言。

最新更新