现在我的项目应用中C1101需要一对多的通信方式,只有一个主节点,从节点数量大于50个。通信过程是这样的:由于从节点对功耗有严格要求,所以从节点平时处于sleep态,当10秒定时时间到,从节点被唤醒,给主节点发送心跳包。发完数据后立即转入RX状态等待100ms,如果没有接收到数据,再次进入SLEEP态。主节点处于RX态,只有接收到从节点数据后,如果需要回复数据给从节点,才会转入TX态。发完数据后,再次进入RX态。主节点和从节点发送都采用了TX-if-CCA的空闲信道检测机制,只有当信道空闲时,才发送数据包。若信道忙,则随机延时一个时间,然后再次发送(CCA数据防碰撞和退避机制按照 TI 的Simplici-TI中的代码来实现,并且测试过 CCA机制是有效的)。频段用的是433MHZ,数据速率10KBPS,寄存器的配置按照smart RF的参考值来配置的。目前在应用测试中发现如下问题:
Nutcracker:
组网协议都是比较复杂的,特别是需要省电的时候。我对你描述的机制有以下疑问和建议。
1. 这个从节点10秒醒来的定时如何保证精确度?你有时钟同步机制吗?
2. 主节点会在收到心跳包的情况下收不到数据包吗?
3. 你有没有做重传机制?
楼主是做什么应用啊?这样的应用TI有很多做模块的客户已经实现了比较稳定的通讯协议。
haiyang zhang:
你好,我现在在研究cc1101多点对一问题,加个QQ,一起讨论一下吧。我的qq是975437585
user4205522:
回复 haiyang zhang:
感觉你可以:
1. 用一个接收机和一个发射机,在干净的环境,如屏蔽箱之类的,距离近一些,将发射机的发射间隔改为200ms,测试5000.看看通讯成功率有多少。
2. 把发射机上报数据的间隔拉长,比如50s之类的。看看成功率如何。
3. 尽量减少数据包长度,适当提高通讯速率,延长发射间隔,如果距离要求不远的话。