微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2530数据采集系统

CC2530数据采集系统

时间:10-02 整理:3721RD 点击:

您好,我在使用CC2530开发数据采集系统时,发现网络稳定性不好,经常出现网络运行一段时间后,有些节点就掉网的情况。我使用SampleApp例程和SensorDemo例程都进行过实验,发现无论是绑定方式还是非绑定方式的组网,终端节点都会出现掉网,效果都不是很好。我想问一下,有没有什么比较有效的改进手段?要做数据采集系统,是基于SampleApp例程合适还是SensorDemo例程更合适?非常感谢!

SampleApp和SensorDemo都可以,看你这个数据采集系统的拓扑结构,如果多点到一点的传输系统用SampleApp比较合适

谢谢您的回复!我想知道绑定和非绑定方式,哪一种适合构建mesh网络?SampleApp使用的是非绑定方式,SensorDemo使用的是绑定方式对吧,我不是很理解绑定和非绑定方式的区别(我理解的绑定实际就是在协调器的存储区中记录了固定的数据传输路径,不用 每次都要路由选择,不知道这么理解对不对?),感觉采取这两种方式对实际组网的稳定性的影响应该是一样的吧?

绑定是为了让节点记住目标节点的地址,跟构建mesh网络没有关系,如果你知道目标节点的地址,你也是可以直接对它发数据的而不需要绑定,不管绑不绑定对组网稳定性没有影响。

 

谢谢您的回复,我基本上懂了!还是那个问题,如果我组建一个Mesh网络的传感数据采集系统,是采用SampleApp例程进行修改合适,还是SensorDemo例程合适呢?感觉SensorDemo例程要比SampleApp例程复杂不少,理解起来不太容易。

此外,我也使用GenericApp进行了组网测试,发现也会出现终端节点掉网的现象,TI给的几个例程中,SampleApp,SensorDemo,GenericApp,SimpleApp,哪一种比较适合构建比如大概40个点左右的mesh网数据采集系统呢?非常期待您的回复!

首先,确认你是不是用了TI的最新协议栈Zstack2.5.1,如果版本太老可能会有很多Bug没有解决。

对于你的Mesh网络,如果是多点到一点,只有一个采集中心的话,用SampleApp比较合适,很容易上手,

如果有多个采集中心,用SensorDemo比较合适

哦,我使用的是ZStack-CC2530-2.3.0-1.4.0,那我使用最新版本的Zstack2.5.1a再试试吧。您说的多个采集中心是指什么?一个典型的zigbee网络中不是只允许有一个协调器节点吗?多个协调器节点可以同时 存在于一个zigbeemesh网络中吗?

多个采集中心 并不是指多个Coordinator,只是SensorDemo设计了一个Gateway的角色,适合多个采集中心的应用,在Zigbee网络中它是个Router

好的,非常感谢您的回复,我再研究研究!

您好,我现在也在做CC2530的数据采集系统,现在正在看SampleApp例程,但是不怎么懂。。能不能把你修改的SampleApp例程给我发一下?我的邮箱是495572041@qq.com。。迫切急用。。谢谢了大哥。给发一下吧

高人。麻烦把您修改的程序给发一份呗。。。谢谢

例程都在Zstack里面啊,Zstack你可以在TI官网下载,你想实现什么特别的功能吗

就是简单的终端节点采集温湿度等数据,无线传输给协调器然后通过串口上传到PC机上。。里面的例程不会修改

你先看一下Zstack里面的例子说明文件\ZStack-CC2530-2.5.1\Documents\Z-Stack Sample Applications.pdf,然后我推荐你可以用两种方法去完成这个应用,我手头也没有已经改好的代码:

1.选用最简单的例子SampleApp,自己在应用层打开串口去做RF通讯,你要先理解应用层代码文件SampleApp.c是如何操作的

2. 选用SerialApp,直接串口通讯,这个例子串口已经打开了,但这个例子比较复杂一些,因为节点需要做好绑定之后才能通讯,如果只是单向通讯结构,你也可以直接让传感节点对目标地址为0x0000(协调器)的节点直接通讯。

嗯,谢谢你的回复,我在看sampleapp.c。尝试的往里面添加下。。。遇到困难了我再问您。。谢谢

您好,我按照网蜂教程上的步骤操作,结果串口显示是

?H€Energy Level Scan Failed?
H€Energy Level Scan Failed?
H€Energy Level Scan Failed?
H€Energy Level Scan Failed?
H€ZigBee Coord Network ID: 76C9

这是什么原因呢?

这是正常的情况,最后的Zigbee Coord Network ID:76c9 表示coordinator已经正常建立了网络,网络的PAN ID为0x76C9.

之前的Energy Level Scan Failed可以忽略,是进行信道能量扫描时会打印的。

Kanjie

您好,谢谢你的回复。但是我怎样让它显示我的数据呢?而不是网络PANID

调用LCD相关API能显示你想要显示的东西。 hal_lcd.h中。

这是个常用API:void HalLcdWriteScreen( char *line1, char *line2 );

CZ你好,问两个问题

 1.我用serialapp例子,两块板子连PC串口收发数据,比如是一个TXT文件里面是数字1-1500, 收到的数据会丢掉一些,中间会有些乱的。你有什么建议吗,另外下面这句

具体意思是什么

/*uartConfig.flowControl = TRUE;*/
uartConfig.flowControl = FALSE;

2.我需要做一个串行网络,也就是一条直线,每个端点都采集数据最后都传到最后一个点。是不是用SampleApp这个例子比较好。我理解 最后一个端点设定为协调器,其它都设定为路由。 想问下路由的最大深度是多少。

你可以分包去发送,这样丢包概率会小些,如果一定要确保不丢包,那么需要对每个数据包做回发确认。

uartConfig.flowControl = FALSE; 表示关闭串口流控,这个是用于四线串口的。

可以用SampleApp的例子,路由的深度只有6级。

CZ,谢谢你的回复

路由的深度只有6级,这个是指例子中的设定只有6级,还是说最大只有6级,我看说是可以修改的。 比如我需要在1公里的长线上布20个点,是否可以?

再请教一个问题,当协调器开始建网时,PANID和信道需要人为固定吗, 如果是不固定的,本网络的路由和端点会不会加入临近的其他网络中。本网络中怎样阻止其它的ZIGBEE设备加入。

可以修改路由深度,但深度越高稳定性越差,具体性能需要实测。

PANID可以固定也可以随机生成,如果随机生成,加网节点默认是随机加入,加网节点可以在事件ZDO_NWK_DISC_CNF里对加网列表进行分析。

您好 我也想要做个串行网络  一条直线形式的  我也想问一下   路由的深度是多少?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top