embedded - 如何在 XBee PRO 系列 2 上设置 channel ?

标签 embedded xbee

我有三个 XBees。 2x PRO 和一个标准,所有系列 2。 我已将一个 PRO 和一个标准配置为 channel 0 和 PAN 234 上的路由器/端点(这是选择“XBP24-B”/“XB24-B”“ZNET2.5 ROUTER/END”时的默认 channel 和 PAN ID) DEVICE AT”配置文件(两者的版本 1247)。

但是,我使用“ZNET 2.5 COORDINATOR AT”配置文件设置的一台 PRO 的 channel 为 E(不过,如果我继续使用相同的配置文件刷新设备,则该 channel 会从 12-F 更改)。

显然,如果协调器没有相同的 channel ,则什么都不会起作用,但我看不到任何手动设置 channel 的方法..?

X-CTU 中的 CH 设置是只读的,我可以看到任何其他 UI 元素来更改 channel :readonly CH setting! AHH!

我什至已经进入终端并输入(括号中的单词是终端返回的内容):

+++(好的) 附加 (E) ATCH0(错误) ATCH 0(错误) ATCH00(错误) ATCH 00(错误) 注意 E(错误) ATCHE(错误)

我用谷歌搜索了又谷歌,但没有结果。非常令人沮丧,有人可以帮忙吗?! 我之前让它们工作只是侥幸,因为我一直刷新硬件直到 channel 号匹配,但这显然是荒谬的!

最佳答案

XBee ZB(S2、S2B、S2C)系列模块的 channel 选择工作方式与 XBee 802.15.4 (S1) 模块不同。 ZB 的信道选择是自动的(与 802.15.4 模块的手动选择相反)。

您通常永远不需要使用 ZB 操作 channel 选择参数。模块可以相互查找并相互关联(如果可以的话)。

如果您的模块似乎无法找到彼此,通常会归结为协调器 (NJ) 上的 PAN 设置 (ID)、安全设置 (LK) 或网络加入权限设置不匹配。

除了 Digi 的 XBee ZB OEM 手册之外,网络上没有太多信息。作为引用,ZB 的 channel 选择工作原理如下:

  1. XBee ZB 协调器已启动
  2. XBee ZB 协调器读取其 SC 参数并构建要扫描的候选 channel 列表
  3. 然后,XBee ZB 协调器对每个候选 channel 执行能量扫描
  4. 然后,XBee ZB 协调器选择能量最少的 channel

此过程的目的是选择一个噪声最少的信道,无论是来自微波炉、WiFi 网络还是任何其他可能在 2.4GHz 频段上传输的信道。

任何加入网络的路由器或终端设备都会首先查阅其 SC 参数,然后它们将尝试搜索可以加入的与其 PAN 和安全参数相匹配的网络。他们将加入并保持加入他们能够加入的第一个网络,但有一些小的异常(exception)(例如,请参阅 JV 和 NW 参数)。

如果您想强制选择 channel ,则必须将 SC 参数设置为仅启用单个 channel 。 SC 参数是位掩码 1 。掩码中设置的每一位将启用一个额外的 channel 。该参数的棘手之处在于第一位(位 0)不是 channel 0,而是 channel 11 (0x0B)。为了便于使用,如果您想将 XBee ZB 锁定到单个 channel ,请使用以下值:

+---------------+---------------+------------------+-------------------------+
| Channel (Dec) | Channel (Hex) | XBee ZB SC Value |    XBee Availability    |
+---------------+---------------+------------------+-------------------------+
|            11 | 0xB           | 0x1              | All                     |
|            12 | 0xC           | 0x2              | All                     |
|            13 | 0xD           | 0x4              | All                     |
|            14 | 0xE           | 0x8              | All                     |
|            15 | 0xF           | 0x10             | All                     |
|            16 | 0x10          | 0x20             | All                     |
|            17 | 0x11          | 0x40             | All                     |
|            18 | 0x12          | 0x80             | All                     |
|            19 | 0x13          | 0x100            | All                     |
|            20 | 0x14          | 0x200            | All                     |
|            21 | 0x15          | 0x400            | All                     |
|            22 | 0x16          | 0x800            | All                     |
|            23 | 0x17          | 0x1000           | All                     |
|            24 | 0x18          | 0x2000           | All                     |
|            25 | 0x19          | 0x4000           | S1, S2B, S2C (not S2)   |
|            26 | 0x1A          | 0x8000           | S1 only                 |
+---------------+---------------+------------------+-------------------------+

关于embedded - 如何在 XBee PRO 系列 2 上设置 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5382666/

相关文章:

algorithm - 优化 2D 游戏中的游戏对象放置

caching - 在哪些应用程序中缓存没有任何优势?

python - 从 XBee 接收的 pySerial 数据未正确显示

node.js - 使用node-xbee发送数据包时出现校验和不匹配错误

linux - 通过 Xbee S1 模块发送的数据之间的回车 (0X0D)

c - 理想的跨平台库

c - Green Hills Sw小数据区溢出

c - 你怎么知道微 Controller 何时复位?

c - 使用 C 在 Linux COM 上进行 XBee 串行通信