|
最近搞了几块无线RF模块+MSP430F4152做低功耗温度检测
无线RF模块用的是利尔达的cc1101模块,spi接口的。
考虑到cc1101官方推荐的低功耗休眠wor模式不大看的懂,自己便做了手动唤醒和休眠模式。
基本原理如下:
从机 (电池供电) 以2秒为周期,2s内唤醒50ms,其余时间处于休眠模式。
主机 (电源供电) 以3s为周期,3s内不间断向从机发送采集数据指令,以唤醒从机达到采集数据目的。
从机和主机通过cc1101/ 433M频段通讯,主机和电脑通过485/232形式连接。
以上述思路,现在能实现低功耗目的,
但是在测试距离的时候,发现近距离(一个办公室)通讯良好,长时间运行无无码和丢包。但是一旦距离稍微过远,比如主机和从机隔1个房间,测试就发现主机经常收不到从机回复的数据。
通过排查,排除无线模块本身的信号问题,因为自己又做了个小程序,也是在原先的房间位置,让主机和从机按1s时间间隔来收发,发现通讯正常。
因此个人判断应该是主机连续发送无线数据时导致这种问题的产生,因为主从机按(如1s)长时间间隔收发数据时并没产生通讯失败这种现象。
但问题关键是为什么近距离主机连续发送,从机唤醒,返回数据给主机 这过程没问题,稍远距离传输时就出现主机收不到数据的情况??
期待帮忙解释下,好解决这个问题。
补充一点:
主机的工作方式是以3s为一个周期,3s内向从机连续发送采集协议指令。
比如说采集协议指令长度为30个字节,那么主机应该是以每包30个字节长度连续向从机发送,以达到唤醒从机目的。
后来考虑到可能发送过密,我特意在每包之间加了发送间隔,试过也是稍远距离通讯就不行。
其实我的问题就是主从机连续发送时,近距离通讯正常,稍远距离就有问题;但是模块本身是可以达到此通讯距离的(做过单包缓慢收发测试) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981
|