4

I setup a NonBeacon (w/Coordinator) network with three XBee Series 1 modules. One is configured as coordinator. The other two are configured as end devices. The firmware version and configuration are as below.

Firmare

Modem:  XBEE    Function Set    Version
XB24    XB24    802.15.4        10CD

Coordinator

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.

End device

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.

When end device 1 sends out the data, the coordinator can receive the data, but the end device 2 can't. I want end device 2 to receive data from end device 1 in this network. My current solution is to let the coordinator broadcasts the data, so end device 2 can receive it. I'm not sure if this is good solution to resolve the communication issue among end devices. Is there any other solution?

4

1 回答 1

5

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

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

  1. 通过将 MY 参数设置为唯一值,在每个节点上设置地址
  2. 将协调器的 DL 参数设置为您希望与之交谈的 *end device 节点的 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 语言

于 2012-05-31T19:05:30.427 回答