主题中讨论的其他部件: TIDC-ZNP-HOST-SW3、 Z-STACK、 SMARTRF06EBK、 TM4C123GH6PM、 EK-TM4C1294XL、 SIMPLELINK-CC13X2-26X2-SDK、 TM4C123、 SMARTRFTM-Studio
您好!
我正在尝试使用 TM2C123GXL 板让两个 CC2538板相互通信、我对此有一些疑问:
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我正在尝试使用 TM2C123GXL 板让两个 CC2538板相互通信、我对此有一些疑问:
尊敬的 Tessa:
我想如果您的研究基于 Zigbee 协议、那么您应该已经尝试采用 Zigbee 3.0规范解决方案、因为您目前正在使用过时的 Zigbee HA 1.2.2规范解决方案。 Mac_*命令可以手动添加到 TM4C 主机应用程序中,但如果不向 ZNP 项目添加 MT_MAC_FUNC 和 MT_MAC_CB_FUNC 定义,则不允许这样做。 我建议您按照 YK 的说明将 LQI 转换为 RSSI。
此致、
Ryan
您好、Ryan!
我对使用 Zigbee 和德州仪器器件进行编程非常陌生、因此 我根据此 E2E 论坛主题中的建议和您及黄金选择了 ZNP_HOST_framework。 我没有意识到它是折旧的。 由于我已经修改了 Booster Pack 板、很遗憾、我不知道此时是否可以使用另一个选项。 我想我可能会一直在使用这种方法、除非你有其他建议。 我将使用 YK 的指令将 LQI 转换为 RSSI (感谢您的 YK!)。
我还有其他一些问题:
-命令字段中是否有选项指南或说明? 例如、我尝试运行"ZB_SEND_DATA_REQ"命令、并要求输入以下命令:destination、CommandId:、handle、Ack、Radius、 Len 和 Data。 是否有指南可帮助您处理哪些控标、CommandID 等 我可以从以下选项中进行选择?
-是否有关于如何添加所需命令的指南或说明? 具体而言、AF_incomming_MSG_CMD 和所需的定义是什么? 我对如何实现这一点有点失落。
-我找到了命令"ZDO_Mgmt_LQI_REQ"、我能够在协调器上运行它、并得到以下结果:
命令:ZDO_Mgmt_LQI_REQ
输入 DstAddr:(2B)
0x18E702D500124B00
输入 startIndex:(1B)
问题7
mtZdoMgmtLqiRspCb
SrcAddr:0x7156
状态:0x00
睦邻友好:0x01
起始索引:0xE7
0:0:0:0:0:0
我不确定 LQI 值在这里的位置、或者我是否选择了正确的"开始索引"。
非常感谢、
-Tessa
您可以参阅 监视和测试 API 和 ZNP 代码以更好地了解命令参数、此外 、还有其他 E2E 博文 和 YK's 博客中提供的几个 AF_DATA_REQUEST 和其他 MT 命令示例。 MT 接口通常通过 Tools/znp.cfg 文件启用。 0的"睦邻计数"表示没有邻居信息可供提供。 我希望 ZDO_Mgmt_LQI_REQ 的 startIndex 为0x00。
此致、
Ryan
您好、Ryan!
我将介绍您为我提供的资源。 谢谢!
我重新运行了"ZDO_Mgmt_LQI_REQ"命令并获得了以下结果:
命令:ZDO_Mgmt_LQI_REQ
输入 DstAddr:(2B)
0x18E702D500124B
输入 startIndex:(1B)
0
mtZdoMgmtLqiRspCb
SrcAddr:0x7156
状态:0x00
睦邻友好:0x01
起始索引:0x00
0:睦邻计数:0x01
mtZdoSremosborLqiListItem[0]:
扩展 PanID:0x18E7033600124B00
扩展地址:0x18E7033600124B00
网络地址:0x0000
DevTyp_RxOnWhenIdle_Relat:0x08
PermitJoining:0x02
深度:0x00
LQI:0x4D
当我使用 YK 公式将 LQI 转换为 RSSI 时、我得到了以下结果
0x4D = 77 (十进制)。
0x4D = 77 (十进制)
使用:RSSI = MIN_ED+LinkQuality*(MAX_ED-MIN_ED)/255
RSSI = MIN_ED+77*(MAX_ED-MIN_ED)/255
假设 MIN_ED 和 MAX_ED 的默认值:RSSI =-87+77*(10-(-87))/255
RSSI =-57.7
这两个器件的间隔约为1米、我之前对 SmartRF06板进行的测试表明、1米应约为-35dBm。 我的转换是否错误? MAX_ED 和 MIN_ED 是什么值? 或者、从该公式获得的 RSSI 值是否不是以 dBm 为单位?
谢谢、
-Tessa
"LinkQuality =[255*(RSSI-MIN_ED)]/[MAX_ED-MIN_ED]"来自"ed =(MAC_SPEC_ED_MAX *(rsisDbm - ED_RF_POWER_MIN_DBM)/(ED_RF_POWER_MAX_DBM - ED_RF_POWER_MIN_DBM)(在 Mac 中为无线电)
#define ED_RF_POWER_MIN_DBM (MAC_RADIO_RECEIVER_DBM + MAC_SPEC_ED_MIN_DBM_OUT_RECEIVER_敏感度)
#define ED_RF_POWER_MAX_DBM MAC_RADIO_RECEIVER_saturation_DBM
#define MAC_RADIO_RECEIVE_DBM -97 /* dBm */
#define MAC_RADIO_RECEIVER_saturation_DBM 10 /* dBm */
对于以 dBm 为单位的最小能量检测、/*阈值高于接收器灵敏度(请参阅6..7)*/
#define MAC_SPEC_ED_MIN_DBM_BOARD_RECEIVER_10
您可以研究 Z-Stack 源代码以了解详细信息
您好,YK!
0x4D = 77 (十进制)
使用:RSSI = MIN_ED+LinkQuality*(MAX_ED-MIN_ED)/255
RSSI = MIN_ED+77*(MAX_ED-MIN_ED)/255
假设 MIN_ED 和 MAX_ED 的默认值:RSSI =-87+77*(10-(-87))/255
RSSI =-57.7
您发送给我的代码确认 MAX_ED 应为+10dBm、MIN_ED 应为-87dBm、这意味着我使用该公式进行的转换是正确的、我得到-57.7dBm。 如果器件距离只有1米、这对于 RSSI 测量来说仍然是不正确的、因为它应该在-35dBm 标记附近。 我之前已经对 CC2538板和 SmartRF06板进行了多次测试、以确认这一点。
运行 "ZDO_Mgmt_LQI_REQ"命令时、路由器的串行终端上也看不到任何内容。 我应该在这一侧看到什么吗?
谢谢、
-Tessa
大家好、再说一次!
我的网络中有三个节点(一个协调器和两个路由器)。 一台路由器就在协调器旁边(大约2英寸),另一台路由器距离协调器大约1.4米。 我对 每个节点的地址在协调器上运行了"ZDO_Mgmt_LQI_REQ"命令。 我已将路由器的结果附加到协调器旁边。 我对这些结果有几个问题:
我想知道实际值是多少 LQI 值? 看起来"ZDO_Mgmt_LQI_REQ"命令会生成四个 LQI 值。
-我重新运行了每个节点的结果,我注意到 LQI 值是不同的。 由于 LQI 值基于两个节点之间的距离、因此我不理解如果没有移动节点、为什么这些值会如此不同。
谢谢!
您好、Ryan!
感谢您提供的信息! 哪个条目用于路由器,哪个条目用于协调器? 对于哪个条目用于哪个条目、我仍然有点困惑? 总共有四个条目、我知道每台路由器有两个条目(一台路由器、一个协调器)、但我仍然不能完全理解哪一个。 在所有情况下、扩展 PAN ID 看起来都是相同的。
我还应该提到的是、我将在第二天或第二天内尝试使用五个节点、因此我想确保我了解哪一个节点。 )
谢谢!
-Tessa
您好、Ryan!
感谢您提供的信息! 我一直在进行三项测试、使用通过"ZDO_Mgmt_LQI_REQ"获得的 LQI 值、然后使用 YK's 公式将其转换为 RSSI。 我会得到非常不准确的结果、例如、我预计 RSSI 结果大约为-30dBm、我收到的值介于-35dBm 和-82dBm 之间。 我是否可以通过任何方法提高此精度? 或者、命令"ZDO_Mgmt_LQI_REQ"是否不会生成两个节点之间距离的数值?
谢谢!
-Tessa
您好、Ryan!
我的结果不精确或不准确。 对于1米距离、我的数据会出现很大的变化(大约-35dBm 至-82dBm)、这会导致我的定位不准确。 我的初始测试实际上是在几个月前使用 SmartRF Studio 完成的、距离为1米时、我始终得到-30dBm 和-35dBm 左右的功率、这非常精确和准确。 这就是为什么我决定继续学习 CC2538、因为它最初取得了很好的效果。 你有其他建议吗? )
谢谢!
-Tessa
我运行了10次 ZDO_Mgmt_LQI_REQ 命令、并收到节点0、1、2和3的以下 LQI 结果:
LQI0 LQI1 LQI2 LQI3
135. 29. 66 29.
21. 37. 96 68
75 37. 17. 92
74. 17. 17. 51.
63. 76. 28. 20.
21. 74. 82. 34
46. 11. 86 76.
72. 79 16. 39.
71. 37. 83. 22.
11. 45. 84 68
您可以看到、遗憾的是、这些值根本不一致。 :(
TM4C1294XL 是否会引入错误? 如果是、这是怎么可能的? 我认为它根本不应该引入任何错误。 如果值已经发生变化、我不确定添加平均值计算或滤波器是否会改善这些值。 如果是这样、您是否对如何使用一个命令多次运行此命令有任何建议? 这是我可以实现的、以便更轻松地保存结果吗? 我希望 SmartRF Studio 能够通过一条命令运行多个数据包。 我知道 SmartRF Studio 和 Code Composer Studio 不是真正可比的程序,我只是在寻找类似的程序:)
谢谢、
-Tessa
您正在寻找的是 MT 操作范围之外的内容。 假设您已正确解释数据、您可能需要找到另一种方法来获取所需的 RSSI 数据。 这可能包括修改 ZNP 固件以从 MT_AfIncomingMsg 内的 afIncomingMSGPacket_t 传递 RSSI 值、并相应地更改主机固件以正确处理它。 也可以启用 MT_MAC 以接收 MAC_DATA_IND 内部的 RSSI。 如果这些结果也不一致、则您将确认硬件设置有问题。
此致、
Ryan
您好、Ryan!
我已经能够获得 LQI 结果、我只需根据哪个节点对结果进行排序。 我注意到命令 ZDO_END_DEVICE_ANNCE_IND 包含 IEEE 地址(永久分配给器件)和源地址(启动时更改)。 我一直在使用此函数来获取源地址、以确定哪个 RSSI 值对应于哪个节点、但它突然停止工作。 未将源地址正确分配给要用于对 RSSI 值进行排序的全局变量、我对这种情况的发生原因感到困惑。 不会在每次相同的节点上发生这种情况(例如、有时发生在节点1和3上、有时仅发生在节点0上、有时根本没有节点等)。 我是否可以通过另一种方法将源地址与 IEEE 地址关联起来? 或者、您是否对这种情况的发生有任何想法?
谢谢、
Tessa
您好、Ryan!
我注意到 IEEE 地址从未改变、因此它始终可以与特定节点相关联。 我还注意到、加入网络后、源地址始终会更改、并用于在 ZDO_Mgmt_LQI_REQ 命令中的节点之间进行通信、我将使用该命令来获取 LQI 值。 当我查看命令 ZDO_IEEE_ADDR_REQ 和 ZDO_NWK_ADDR_REQ 时、它们不包括源地址、仅包括网络地址和 IEEE 地址。 是否有办法将 IEEE 地址或网络地址与源地址关联?
谢谢! )
-Tessa
您好、Ryan!
感谢您提供相关信息。 基本上、我想知道哪个节点对应于哪个 LQI 值、那么网络地址是否是用于此目的的正确选择? 还是源地址更适用? 我在我的协调器上运行这些命令、希望从周围的路由器获取信息。
此外、我查看 了命令 ZDO_IEEE_ADDR_REQ 和 ZDO_NWK_ADDR_REQ、我不确定它们的工作原理。 我在协调器节点上输入了路由器的地址、然后对 ReqType 使用0或1、对 startIndex 使用0。 我查看了 Z_Stack 监视和测试 API 第 3.12.1.1和3.12.1.2节( http://dev.ti.com/tirex/explore/node?node=AEEJ0Z3BgvagEoglvx9r1g__pTTHBmu__LATEST ),但我找不到任何其他有用的信息。
IEEE /网络地址、ReqType 和 startIndex 应该使用什么?
谢谢! )
-Tessa
您好、Ryan 和 YK!
我已附加我的监听器数据。 只有三个路由器节点在工作(节点0、1和3正在工作)、一个路由器节点不工作(节点2)。 我已将问题与路由器节点和协调器节点之间的通信隔离开来。 我一直在测试办公室内的节点彼此相邻(我的空间有限)、然后在能够测试时进行外部测试(这里一直在下雨、所以我现在已经在办公室进行了更多测试)。 我将尝试将节点彼此移开、我将看到这是否修复了问题。 )
谢谢!e2e.ti.com/.../Test_5F00_Packet_5F00_Data_5F00_4_5F00_ThreeNodesOnly.psd
-Tessa
您好 Ryan!
我附加了一个数据包监听器文件、其中所有四台路由器都能够与协调器通信。 我不确定如何更改起始索引。 我目前正在使用0作为起始索引(我想你或黄总有一段时间之前向我推荐了这个,我从那时起就一直在使用它)。 我尝试使用来自 ZNP 主机框架的命令行项目(我根本没有更改此副本)、我遇到了相同的问题。 我不知道为什么会发生这种情况、因为在本周开始这种情况之前、它已经运行了很长时间了。
谢谢!
-Tessa