关于对无线模块连续发送数据时的一点问题请教
最近搞了几块无线RF模块+MSP430F4152做低功耗温度检测无线RF模块用的是利尔达的cc1101模块,spi接口的。
考虑到cc1101官方推荐的低功耗休眠wor模式不大看的懂,自己便做了手动唤醒和休眠模式。
基本原理如下:
从机 (电池供电) 以2秒为周期,2s内唤醒50ms,其余时间处于休眠模式。
主机 (电源供电) 以3s为周期,3s内不间断向从机发送采集数据指令,以唤醒从机达到采集数据目的。
从机和主机通过cc1101/ 433M频段通讯,主机和电脑通过485/232形式连接。
以上述思路,现在能实现低功耗目的,
但是在测试距离的时候,发现近距离(一个办公室)通讯良好,长时间运行无无码和丢包。但是一旦距离稍微过远,比如主机和从机隔1个房间,测试就发现主机经常收不到从机回复的数据。
通过排查,排除无线模块本身的信号问题,因为自己又做了个小程序,也是在原先的房间位置,让主机和从机按1s时间间隔来收发,发现通讯正常。
因此个人判断应该是主机连续发送无线数据时导致这种问题的产生,因为主从机按(如1s)长时间间隔收发数据时并没产生通讯失败这种现象。
但问题关键是为什么近距离主机连续发送,从机唤醒,返回数据给主机 这过程没问题,稍远距离传输时就出现主机收不到数据的情况??
期待帮忙解释下,好解决这个问题。
补充一点:
主机的工作方式是以3s为一个周期,3s内向从机连续发送采集协议指令。
比如说采集协议指令长度为30个字节,那么主机应该是以每包30个字节长度连续向从机发送,以达到唤醒从机目的。
后来考虑到可能发送过密,我特意在每包之间加了发送间隔,试过也是稍远距离通讯就不行。
其实我的问题就是主从机连续发送时,近距离通讯正常,稍远距离就有问题;但是模块本身是可以达到此通讯距离的(做过单包缓慢收发测试) 直接点对多点就可以了 回复【1楼】HadesHe
-----------------------------------------------------------------------
我现在的方案就是一点对多点的方案,一个主机对多个从机,只不过现在是一个主机对一个从机在实验而已 从机发送数据给主机时,是否要考虑从机发送数据的时候主机也在发送数据?这样会发生冲突,主机自然收不到数据了 回复【3楼】my_avr
-----------------------------------------------------------------------
这个情况我之前已经考虑到了。为了测试,特意在主机连续发3s后,主机停止发送;从机被主机唤醒后,过5s才返回给主机数据,不存在冲突问题 mark 再顶
有没谁有这方面的经验呢?
我想确认下这问题到底出在哪里了 刚又仔细思考分析了下:
主机连续发送,从机被唤醒,然后从机回复 这种机制,近距离通讯测试毫无压力(一个办公室内),不存在丢包,误码情况。
但稍远距离测试就出现问题。
个人觉得程序应该不存在大问题,特别是接受和发送的寄存器操作应该没大问题,因为近距离是可以的,只有稍远距离才存在这种情况。
排除cc1101模块本身的距离问题,觉得可能和程序种初始化时对cc1101寄存器配置会不会有点关系? 再顶
页:
[1]