|
楼主 |
发表于 2011-4-28 15:11:22
|
显示全部楼层
上午编程测试,用两对收发来实验,效果不错。
跳频的主要思路还是如一楼所说,即以发射端扫描为主,接收端只响应跳频。但具体操作做了很大程度的精简。
精简后,接收端(已对频或者是等待对频)不回发任何指令,只进行自动ACK响应。这样做的好处是,对已获取频道的模块几乎无影响。
具体步骤如下:
一、模块配置
1、允许自动ACK。就是接收到正确的频道、数据长度、校验码后,由2.4G模块自动回发一个确认信息。
2、初始化发射端频道为0,接收端39。共0-39四十个频道。
二、发射端跳频流程
1、自频道0发射数据(所发射数据应不同于正常工作时的数据)。每2ms发射一次,若收到ACK,说明此频道已被占用;
若200ms内仍未收到ACK,则认为此频道空闲。
2、收到ACK后,发射端切换至下一频道。继续执行流程1。
3、200ms内未收到ACK,标记当前通道为空闲。遥控器跳至频道39(接收端的初始化频道),将空闲通道号发送至接收端。
4、当收到接收端的ACK后,遥控器切换至空闲通道。完成跳频。
三、接收端跳频流程
1、配置为接收模式(频道=39),等待接收数据。
2、收到数据后,检测是否为跳频指令,若不是,继续接收。若是,提取目的频道,切换至目的频道。完成跳频。 |
|