TI中文支持网
TI专业的中文技术问题搜集分享网站

zigbee 开发过程中几点疑问汇总:

Zigbee版本:2.5.1a    协议栈版本:Zigbee PRO

1、zigbee协调器启用MTO发起路由请求,之后终端设备上报数据时会发送route record,若不启用MTO则上报数据不会发送route record,这一部分是如何处理的。

2、协调器启用MTO,如果使能CONCENTRATOR_ROUTE_CACHE和不使能CONCENTRATOR_ROUTE_CACHE有啥区别呢,说是协调器有内存的时候启用,但具体存储哪些信息,存储在什么位置,如何查看。

3、协调器如何获取终端设备网络地址和IEEE地址的匹配关系,如果通过设备入网后的device announce申明去获取匹配,那加入设备申明的时候协调器没有收到怎么办。

4、如何让多个处于同一个区域内的协调器可以拥有相同的PANID,目前协议栈会自动检测网络冲突,如果冲突会在默认的PANID上+1。

5、通过RSSI和LQI可以判断信号强度和链路质量,但其强弱的标准是什么,处于多少值可以判断终端设备可以与其他节点正常通信。

6、通过抓包工具和软件抓取的数据包,是不是都可以映射到应用层处理呢,具体怎么操作。

7、分布式地址分配和随机地址分配除地址分配方式的区别外是否还有其他区别,分布式地址分配有nwkMaxDepth(Lm)和nwkMaxRouters(Rm)等概念定义了网络的深度和路由节点的数量限制了网络中节点的数量和跳转次数,那随机地址分配中跳转次数和节点数量是如何限制呢。

8、Zigbee协议栈中的AODV算法是否需要配置相应参数,还是路由节点本身会启用该功能不需要任何配置。

9、户外使用中存在信号传输距离受限制(实测单播120m正常使用,组网测试的时候每两个设备间隔30-50m最多只能接4个设备)和丢包现象,应该从哪几个方面分析和处理。

10、cc2530的RAM只有8K,协议栈本身就占用了6K多,可以从哪几个方面优化RAM,协议栈本身分配的堆占用了3072,如何减少会造成具体哪些影响。

11、如何确认最优路径算法是否正确。

12、如何确认设备是否收到周围节点网络维护包。

Viki Shi:

1、请查看dev.ti.com/…/z-stack-overview.html
2、For concentrator with no memory constraints, it can store all route record entries it receives and use them to send packets to the source devices in the future. Therefore, devices only need to send route record command once.
However, for concentrator without source route caching capability, devices always need to send route record commands along with data packets. The concentrator will store the source route temporarily in the memory and then discard it after usage.
3、一般不会收不到,收不到也会重发,另外入网后也可以用API读取ZDP_IEEEAddrReq
4、同一区域的不同网络不能有相同的PANID
5、通常来说不低于-70dbm,但是也看具体情况
6、提问太笼统了,哪个数据包?
7&8&11、建议看一下zigbee user guide
9、我们有个用zigbee实现400+节点的组网例程,参考:www.ti.com/…/swra427d.pdf
10、CC2530资源本身有限,如果要求高,建议更新到CC2652上
12、抓包可见

user5102263:

回复 Viki Shi:

关于第一个问题:协议栈我使用MTO是配置了下面的选项,
uint8 zgConcentratorEnable = CONCENTRATOR_ENABLE;
uint8 zgConcentratorDiscoveryTime = CONCENTRATOR_DISCOVERY_TIME;
uint8 zgConcentratorRadius = CONCENTRATOR_RADIUS;
uint8 zgConcentratorRC = CONCENTRATOR_ROUTE_CACHE;是否还需要调用NLME_RouteDiscoveryRequest
第2个问题:
route record不是获取到转发列表调用AF_DataRequestSrcRtg添加转发列表然后发送数据,还是仍然使用AF_DataRequest协议栈会自己添加转发列表
第4个问题:
如何我同一个项目有3个网关想用同一个panid是否可行,我想的是每次上电之后网关先查询是否有该PANID的网络,有的话改模式为路由器,没有的话作为协调器创建网络,能否按照这种思路做,但每次panid查询一次之后就变为+1啦,如果可以应该怎么处理。
第6个问题
我抓到的包有link status 包、data request包,associatetion request 包、association respons 包、route request包、route respons 包、route record 包、device announce 包,后两个我都能找到处理的地方,其他几个包都不清楚在哪处理的。
9、400个节点组网例程我看过,主要是优化一下表大小和一些配置参数来做的,像这种优化网络容量对于我们使用者只能通过这些来做吗,像算法和流程之类的能否优化和优化方向。
10、如果网关改为cc2652,节点用cc2530是否可行
11、我们户外测试的时候出现宏观上的舍近求远,是否和最优路径选择的不是最好的,或其他可能的原因有哪些?

YiKai Chen:

回复 user5102263:

1. 不用

2. 仍然使用AF_DataRequest

4. 除非用不同信道,否則不能用同一个panid

6. Z-Stack library內处理的

9. 主要就是照400个节点组网appliation note

10. CC2530已經不建議使用,但是堅持要用還是可以

11. 可能是路径建立當下是最好的,一旦路径建立除非出現問題,不然不會再重建路径

user5102263:

回复 YiKai Chen:

1、那就是NLME_RouteDiscoveryRequest和zgConcentratorEnable = CONCENTRATOR_ENABLE是两种并列的使用方式啦,可以使能底层处理,也可以不使能程序用NLME_RouteDiscoveryRequest主动发送啦?还有就是CONCENTRATOR_ROUTE_CACHE使能和不使能我看不到区别,抓包看到使能不使能数据上报时都发送route record,另外不明白使能的时候转发信息存储在哪里,怎么使用的能看到吗? 2、我之前看到一个人写的文档是说协议栈本身不会添加到发送函数AF_DataRequest,需要获取后添加到AF_DataRequestSrcRtg中发送,如果不用添加到AF_DataRequestSrcRtg中发送仍使用AF_DataRequest,那么转发列表从哪获取呢,能否宏观上看到? 4、不知道是TI芯片的限制还是所有zigbee 都是这样,我们之前用过一件的zigbee灯控器,人家的网关出厂panid都一样,不过不是ti的芯片 6、我想的是能映射到应用层处理,在library里是咋处理的,能否映射到应用层调试程序时分析? 10、cc2530如果应用到户外能带多少节点呢,我咨询的有50个的,70个的,200个的,我们想做到150个做路灯控制器(至少100)也不知道可行性多少?协议栈本身的 #define INT_HEAP_LEN 3072,因为RAM不够用,我改为了 #define INT_HEAP_LEN 2048,说是影响动态内存的分配,但实际的影响也不是很清楚,我理解的限制带节点大小的主要因素是路由表,路由发现表,邻居表等表的大小,这个值对节点数据的影响是在哪呢,或者其他影响?

11、device announce 是以其父节点收到后不重发,收不到重复发送,还是协调器收到后不重发。收到后不重发?

以上问题能用户处理的希望给出解决方案,不能用户处理的给予不能修改确切答案,很多不知道哪些用户可以处理哪些处理不了。

user5102263:

回复 Viki Shi:

cc2530的最大跳数是4吗?,我看zigbee实现400+节点的组网的文档中写的:在测试网络中观察到的最大跳数= 4

YiKai Chen:

回复 user5102263:

最大跳数是我記得是5,一般建議也不要超過5

赞(0)
未经允许不得转载:TI中文支持网 » zigbee 开发过程中几点疑问汇总:
分享到: 更多 (0)