【问题标题】:Why cannot two XBee units communicate?为什么两个 XBee 单元不能通信?
【发布时间】:2013-06-22 23:11:31
【问题描述】:

我已按照 XBee Series 2 Point to Point Communication 中列出的步骤进行操作,一切似乎都 100% 正常工作。但是,当我打开X-CTU 并单击“Digi Device Discovery”时,两个 XBee 设备找不到彼此。

我的怀疑是因为协调节点在通道上,路由器有一个工作通道“12”,而协调节点有一个工作通道“11”。

但我无法通过 X-CTU GUI 更改其中任何一个。

如何更改频道或诊断此问题?

我在某处在线阅读过,这两个 XBee 单元可能具有不同版本的固件。如果这是问题所在,我如何确定两个设备上安装了哪个版本的固件?

协调器单元的版本为 20A7,路由器节点的版本为 22A7。

这可能是问题吗?

更新:

协调员简介:

XB24-ZB_20A7.mxi
80
0
251
20A7
0
[A]ID=100
[A]SC=FFFF
[A]SD=3
[A]ZS=0
[A]NJ=FF
[A]DH=13A200
[A]DL=408B81EE
[A]NI=COORDINATOR1
[A]NH=1E
[A]BH=0
[A]AR=FF
[A]DD=30000
[A]NT=3C
[A]NO=0
[A]CR=3
[A]SE=E8
[A]DE=E8
[A]CI=11
[A]PL=4
[A]PM=1
[A]EE=0
[A]EO=0
[A]BD=3
[A]NB=0
[A]SB=0
[A]RO=3
[A]D7=1
[A]D6=0
[A]CT=64
[A]GT=3E8
[A]CC=2B
[A]SP=20
[A]SN=1
[A]D0=1
[A]D1=0
[A]D2=0
[A]D3=0
[A]D4=0
[A]D5=1
[A]P0=1
[A]P1=0
[A]P2=0
[A]PR=1FFF
[A]LT=0
[A]RP=28
[A]DO=1
[A]IR=0
[A]IC=0
[A]V+=0

路由器配置文件:

XB24-ZB_22A7.mxi
80
0
251
22A7
0
[A]ID=100
[A]SC=FFFF
[A]SD=3
[A]ZS=0
[A]NJ=FF
[A]NW=0
[A]JV=0
[A]JN=0
[A]DH=13A200
[A]DL=408B820C
[A]NI=ROUTER1
[A]NH=1E
[A]BH=0
[A]AR=FF
[A]DD=30000
[A]NT=3C
[A]NO=0
[A]CR=3
[A]SE=E8
[A]DE=E8
[A]CI=11
[A]PL=4
[A]PM=1
[A]EE=0
[A]EO=0
[A]BD=3
[A]NB=0
[A]SB=0
[A]RO=3
[A]D7=1
[A]D6=0
[A]CT=64
[A]GT=3E8
[A]CC=2B
[A]SM=0
[A]SN=1
[A]SO=0
[A]SP=20
[A]ST=1388
[A]PO=0
[A]D0=1
[A]D1=0
[A]D2=0
[A]D3=0
[A]D4=0
[A]D5=1
[A]P0=1
[A]P1=0
[A]P2=0
[A]PR=1FFF
[A]LT=0
[A]RP=28
[A]DO=1
[A]IR=0
[A]IC=0
[A]V+=0

【问题讨论】:

    标签: xbee


    【解决方案1】:

    您可以通过定义 (SC - Scan Channel) 值(默认为 FFFF)来更改或找出操作通道,您标记的每个位都会添加更多待扫描频道。
    Find more in XBee Tutorial here
    如果您有不同的设备(协调器和路由器),固件版本不会影响。
    X-CTU 中有一个终端软件,你可以用它来代替 putty。

    【讨论】:

      【解决方案2】:

      这还不是答案。我会根据我自己与 XBee 的战斗,尽力为您提供指导。

      好的,我查看了您在您的文章中提到的“此处概述的步骤” 问题只有在我在下面输入了所有这些。指示似乎 相当完整,所以也许再仔细检查一遍。它也会 似乎Router和Coordinator都在AT模式下运行,这 将是一对一的交流。

      虽然我的 XBee 的模型看起来和你的有点不同(我的是 XB24-Z7WIT 004 (Zigbee)),但您能否检查或确认以下内容(使用 X-CTU)作为开始。

      您是否在 XCTU 中选择了正确的调制解调器? 两者都需要相同的 PAN 地址。 在 Router 目标地址设置中,您需要有 co-ordinator Xbee 的 High 和 Low 地址。 在您的情况下,协调器自己的目标地址字段必须指向路由器的地址(高位和低位)。

      此外,API 或 AT 模式的组合会在不影响性能的情况下显示固件差异,除非您设置了不兼容的设置/硬件。例如,如果您将相同的硬件(X-CTU 中的调制解调器选择)设置为 AT 或 API,或协调器、路由器、终端设备等,则会显示不同的固件。

      您可以通过使用 X-CTU 读取设备来查看固件版本。见上图。 “版本”(在我的例子中是 23A7)是适用于 XB24ZB ZigBee 路由器 API 的固件。

      还请告诉我们有关您的设置的更多信息。两个 XBees 有什么联系?什么操作系统? XBee 模块底部的确切 XBee 型号是多少 - 例如,我的是 XB24-Z7WIT 004。

      【讨论】:

      • 我发现了问题所在。请参阅下面的帖子。
      【解决方案3】:

      设置/读取通道验证设置。如果启用,路由器将在加入或重启后验证同一通道上是否存在协调器,以确保其在有效通道上运行,如果找不到协调器(如果 NJ=0xFF)则离开。如果禁用,路由器将通过电源循环保持在同一通道上。

      您需要启用 JV

      【讨论】:

        【解决方案4】:

        我能够找出问题所在。这是我为解决这个问题所做的。

        我导航到协调员的 X-CTU 配置文件。我通过单击“读取”按钮加载了配置文件。然后我单击“保存”按钮将协调器的配置文件保存到我的文件系统上名为“coordinator.profile”的文件中。

        我导航回 X-CTU 屏幕,但这次是路由器。我通过单击“读取”按钮加载了路由器的配置文件。然后我单击“保存”按钮将路由器的配置文件保存到我的文件系统上名为“router.profile”的文件中。

        拥有两个文件后,我使用“WinMerge”差异实用程序来扫描两个文件之间的所有差异。我注意到以下额外字段:

        [A]SO=0
        [A]SP=20
        [A]ST=1388
        [A]PO=0
        

        由于某种原因,路由器有这些字段,但协调器没有。我所做的只是将它们归零。所以我改变了 ST=0 和 SP = 0;

        然后我单击路由器的“写入”按钮以在 xbee 上加载更改。

        我这样做后,打开了两个 putty 终端,一个用于协调器,一个用于路由器。

        当我在 coordinator putty 终端中输入内容时,它会显示在路由器终端中。我在路由器终端中输入的内容显示在协调终端中。因此,如果我理解正确,证明数据现在通过无线正确传递。

        【讨论】:

        • 这些设置与睡眠有关,不应影响网络加入。 ATAI 命令将告诉您是否已加入(如果为 0,则表示您在网络上)。您也可以尝试在路由器上使用 ATNR 进行网络重置并重新加入您的协调器。
        【解决方案5】:

        我知道这是一篇旧帖子,但为了后代......

        首先,请注意您正在使用的部件 (XB24-ZB) 现已报废,并由 XB24CZB 部件替换。较旧的系列使用 Ember EM250 MCU,较新的“S2C”模块使用 EM357 MCU。新模块具有显着更多的内存,因此包含在所有六种“模式”(协调器、路由器和端点,具有 AT 和 API 接口)下运行的固件。我不清楚我在下面记录的错误(/问题)是否已在新模块的固件中修复。

        在 EM250 中有一个(非常糟糕的)记录错误,它导致路由器(可能是端点)在距离它占用的实际通道 12 个通道的通道上“找到”协调器。 Digi 建议的“修复”是使用 SC 掩码仅允许 12 个通道(即 SC = 0x1FFE,而不是默认的 0xFFFF)。这似乎是导致某种串扰/调制的硬件错误。

        此问题的“文档”隐藏在 ZB 固件的固件发行说明中(即,在日期为 2012-10-15 的 XCTU 包中,文件“c:\Program Files (x86)\Digi\XCTU \update\93009373_G1.txt' 描述了问题):

        ### Known Issues / Errata:
        * EM250 channel crosstalk problem 
        - Data can be received +/- 12 channels from the operating channel if the data is 
        received within a tight power level range (-20 to -35dBm). This typically occurs
        when the modules are placed within a few feet of each other. Possible work
        around is to only use an SC of only 12 channels (i.e. 0x1FFE).
        

        这个问题特别隐蔽,因为无线电可以在短距离内正确通信(在我的测试中大约 10 英尺),然后突然“失去信号”。 Digi 甚至在数据表中提到设置 SC=0x1FFE 以将可用通道限制为 12,但没有提到这是修复硬件错误所必需的。在不清楚为什么您可能只想使用 12 个通道的情况下,有谁会选择使用少于默认的 16 个通道?

        您指出您的频道是 11 和 12,它们是相邻的,但请注意协调器在开机时会选择一个新频道,因此如果您重启协调器以获取您的寄存器转储,无线电很可能处于不同的状态渠道比您遇到原始通信问题时的渠道。路由器会记住它找到协调器的最后一个通道。

        您还应该在路由器上设置 JV=1,如@Fahmy 所示。否则,如果协调器在上电时选择了不同的通道,路由器将永远不会离开“最后一个已知的良好通道”来尝试在另一个通道上找到协调器。在这种情况下,您的路由器固件必须实施网络重置才能启动搜索。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-11-29
          • 2016-10-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多