zjwzcc 发表于 2011-10-12 21:17:01

关于对无线模块连续发送数据时的一点问题请教

最近搞了几块无线RF模块+MSP430F4152做低功耗温度检测
无线RF模块用的是利尔达的cc1101模块,spi接口的。

考虑到cc1101官方推荐的低功耗休眠wor模式不大看的懂,自己便做了手动唤醒和休眠模式。

基本原理如下:

从机 (电池供电) 以2秒为周期,2s内唤醒50ms,其余时间处于休眠模式。
主机 (电源供电) 以3s为周期,3s内不间断向从机发送采集数据指令,以唤醒从机达到采集数据目的。

从机和主机通过cc1101/ 433M频段通讯,主机和电脑通过485/232形式连接。

以上述思路,现在能实现低功耗目的,

但是在测试距离的时候,发现近距离(一个办公室)通讯良好,长时间运行无无码和丢包。但是一旦距离稍微过远,比如主机和从机隔1个房间,测试就发现主机经常收不到从机回复的数据。

通过排查,排除无线模块本身的信号问题,因为自己又做了个小程序,也是在原先的房间位置,让主机和从机按1s时间间隔来收发,发现通讯正常。


因此个人判断应该是主机连续发送无线数据时导致这种问题的产生,因为主从机按(如1s)长时间间隔收发数据时并没产生通讯失败这种现象。

但问题关键是为什么近距离主机连续发送,从机唤醒,返回数据给主机 这过程没问题,稍远距离传输时就出现主机收不到数据的情况??

期待帮忙解释下,好解决这个问题。

补充一点:
      主机的工作方式是以3s为一个周期,3s内向从机连续发送采集协议指令。
      比如说采集协议指令长度为30个字节,那么主机应该是以每包30个字节长度连续向从机发送,以达到唤醒从机目的。

      后来考虑到可能发送过密,我特意在每包之间加了发送间隔,试过也是稍远距离通讯就不行。

其实我的问题就是主从机连续发送时,近距离通讯正常,稍远距离就有问题;但是模块本身是可以达到此通讯距离的(做过单包缓慢收发测试)

HadesHe 发表于 2011-10-12 21:49:59

直接点对多点就可以了

zjwzcc 发表于 2011-10-12 22:23:32

回复【1楼】HadesHe
-----------------------------------------------------------------------

我现在的方案就是一点对多点的方案,一个主机对多个从机,只不过现在是一个主机对一个从机在实验而已

my_avr 发表于 2011-10-12 22:42:58

从机发送数据给主机时,是否要考虑从机发送数据的时候主机也在发送数据?这样会发生冲突,主机自然收不到数据了

zjwzcc 发表于 2011-10-13 14:33:55

回复【3楼】my_avr
-----------------------------------------------------------------------

这个情况我之前已经考虑到了。为了测试,特意在主机连续发3s后,主机停止发送;从机被主机唤醒后,过5s才返回给主机数据,不存在冲突问题

yaya001 发表于 2011-10-13 17:53:09

mark

zjwzcc 发表于 2011-10-13 18:08:12

再顶
有没谁有这方面的经验呢?

我想确认下这问题到底出在哪里了

zjwzcc 发表于 2011-10-13 20:21:52

刚又仔细思考分析了下:
主机连续发送,从机被唤醒,然后从机回复 这种机制,近距离通讯测试毫无压力(一个办公室内),不存在丢包,误码情况。
但稍远距离测试就出现问题。

个人觉得程序应该不存在大问题,特别是接受和发送的寄存器操作应该没大问题,因为近距离是可以的,只有稍远距离才存在这种情况。

排除cc1101模块本身的距离问题,觉得可能和程序种初始化时对cc1101寄存器配置会不会有点关系?

zjwzcc 发表于 2011-10-14 10:21:39

再顶
页: [1]
查看完整版本: 关于对无线模块连续发送数据时的一点问题请教