如何在XBee PRO系列2上设置频道?

时间:2011-03-21 19:35:58

标签: embedded xbee

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

然而,我使用“ZNET 2.5 COORDINATOR AT”配置文件设置的PRO有一个E通道(尽管如果我一直使用相同的配置文件闪烁设备,则会从12-F更改)。

显然,如果协调员没有相同的频道,没有什么可行的,但是我看不到任何手动设置频道的方法..?

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

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

+++(好的) ATCH(E) ATCH0(错误) ATCH 0(错误) ATCH00(错误) ATCH 00(错误) ATCH E(错误) ATCHE(错误)

我用Google搜索并用Google搜索无效。难以置信的沮丧,任何人都可以帮忙吗?! 我让他们以前的工作作为一个侥幸的事情,因为我一直闪烁硬件,直到频道号码匹配,但这显然是荒谬的!

4 个答案:

答案 0 :(得分:9)

使用XBee ZB(S2,S2B,S2C)系列模块进行的通道选择与使用XBee 802.15.4(S1)模块的通道选择不同。使用ZB自动选择通道(而不是使用802.15.4模块进行手动)。

您通常从不需要使用ZB操纵通道选择参数。如果可以,模块会相互发现并相互关联。

如果您的模块似乎无法找到对方,则通常会导致协调员(NJ)上的PAN设置(ID),安全设置(LK)或网络加入权限设置不匹配。

在Digi的XBee ZB OEM手册之外,网上不存在大量信息。为了便于参考,ZB的通道选择如下:

  1. XBee ZB协调员已启动
  2. XBee ZB协调器读取其SC参数并构建要扫描的候选通道列表
  3. 然后,XBee ZB协调员对每个候选频道执行能量扫描
  4. 然后XBee ZB协调员选择能量最少的频道
  5. 此程序旨在从微波炉,WiFi网络或可能在2.4GHz频段上传输的任何其他信号中选择噪声最小的信道。

    任何加入网络的路由器或终端设备首先查询其SC参数,然后他们将尝试搜索他们可以加入的网络,这些网络匹配其PAN和安全参数。他们将加入并保持联系到他们可以使用的第一个网络 - 除了一些小的例外(例如,参见JV和NW参数)。

    如果要强制选择通道,则必须将SC参数设置为仅启用单个通道。 SC参数是位掩码1。掩码中设置的每个位将启用一个附加通道。这个参数的棘手之处在于第一位(位0)不是通道0,它是通道11(0x0B)。为了便于使用,如果您想将XBee ZB锁定到单个通道,那么这里的值将是:

    +---------------+---------------+------------------+-------------------------+
    | 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                 |
    +---------------+---------------+------------------+-------------------------+
    

答案 1 :(得分:1)

  

显然协调员不这样做   有相同的渠道,什么都不会   工作,但我看不到任何方式   手动设置频道..?

我不确定你上面说的是对的。从http://ftp1.digi.com/support/documentation/90000976_C.pdf(您应该查看硬件的正确版本),看起来协调器的目的是自动确定频道:

  

协调员操作

     

形成网络

     

协调员负责   选择通道,PAN ID(16位   和64位),安全策略和   网络的堆栈配置文件。既然一个   协调器是唯一的设备类型   可以启动网络,每个ZigBee   网络必须有一个协调员。   协调员开始后   网络,它可以允许新设备   加入网络。它也可以路由   数据包和通信   网络上的其他设备。至   确保协调员从a开始   好的频道和未使用的PAN ID,   协调员执行一系列扫描   发现任何RF活动   不同的渠道(能量扫描)和   发现附近的任何操作PAN   (PAN扫描)。选择的过程   描述了频道和PAN ID   在以下部分中。

     

频道选择

     

开始时   网络,协调员必须选择一个   网络的“好”渠道   操作。为此,它执行一个   多个通道的能量扫描   (频率)检测能量水平   在每个频道上。频道与   过度的能量水平被删除   从其潜在渠道清单到   开始吧。

我实际上从未使用过Digi XBee无线电(只是其他一些无线电),所以我对协调员的了解不多。我认为他们的用户界面通常会公开所有有效命令,因此尝试手动发送它们可能无效(如您所发现的那样)。

您可以在Digi forums找到更多专家。

答案 2 :(得分:1)

嗯。奇怪的是,再次继续设置,最后让它与双向通信一起工作?! :S

  1. 设置一个协调员
  2. 将其他两个设置为路由器/终端设备
  3. 将设备高(DH)设置为0,设备低(DL)设置为FFFF(这意味着每个人都应该收到从该模块发送的所有内容)
  4. 将Negotiate Channel设置为1(启用),这意味着路由器/终端设备唯一可以设置自己的频道的时间是在同一频道上找到协调器(这在我的情况下显然没有发生)
  5. 其他所有内容都是默认设置。

    配置路由器/终端设备时,请将协调器保持开启状态,以便检查它们是否正确配对。

    正如我所说,我以前使用过这种配置而且它没有用,所以我不知道这次是什么让它生效了,但它有用吗?!

答案 3 :(得分:0)

要考虑的一件事是ZigBee频道从11 to 26延伸,零不是有效选项。

既然如此,你能尝试命令ATCH11吗?

如果该命令成功,那么ATCH命令可能需要11到26之间的小数输入?