为什么两个XBee设备不能通信?

问题描述 投票:1回答:5

我遵循了XBee Series 2点对点通信中概述的步骤,一切似乎都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
5个回答
2
投票

您可以通过定义(SC - 扫描通道)值(默认为FFFF 来更改或找出操作通道,标记的每个位都会添加更多要扫描的通道。
在此处查看XBee教程中的更多内容
如果您有不同的设备(协调器和路由器),固件版本不会生效。
在X-CTU软件中有一个终端,您可以使用它而不是putty。


1
投票

这还不是答案。 基于我自己与XBee的战斗,我会尽力引导你。

好的,我看过你在问题中提到的“这里概述的步骤”, 只有在我输入以下所有内容之后 。 说明看起来很完整,所以也许再仔细检查一遍。 看起来路由器和协调器都在AT模式下运行,这将是一对一的通信。

虽然我的XBee型号与您的型号略有不同(我的是XB24-Z7WIT 004(Zigbee)),您可以检查或确认以下(使用X-CTU)作为开始。

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

在此输入图像描述

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

您可以通过使用X-CTU读取设备来查看固件版本。 见上图。 'version'(在我的情况下为23A7)是适用于XB24ZB ZigBee Router API的固件。

另请告诉我们您的设置。 什么连接到两个XBees? 什么操作系统? 什么是XBee模块底部的确切XBee型号 - 我的例子是XB24-Z7WIT 004。


1
投票

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

你需要设置JV


0
投票

我能够弄清楚问题是什么。 这就是我做的事情。

我导航到协调员的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终端输入内容时,它出现在路由器终端中。 我在协调器终端中显示的路由器终端中输入的内容。 因此,如果我理解正确,证明数据现在通过无线正确传递。


0
投票

我意识到这是一个老帖子,但对后人来说......

首先,请注意您正在使用的部件(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所示。 否则,如果协调器在加电时选择不同的信道,则路由器将永远不会离开“最后已知的良好信道”以尝试在另一个信道上找到协调器。 在这种情况下,您的路由器固件必须实施网络重置才能启动搜索。

© www.soinside.com 2019 - 2024. All rights reserved.