STM32
登录
直播中
低调de炫耀爱
11年用户
762经验值
私信
关注
[问答]
如何去实现一对一无线通信的简单定时跳频呢
开启该帖子的消息推送
无线通信
跳频
函数
如何去实现一对一无线
通信
的简单定时跳频呢?怎样去验证呢?
回帖
(1)
李一钰
2021-12-20 15:00:22
2.4g无线跳频(一)
这里是针对一对一无线通信的简单定时跳频。
一、随机种子与序列
无线跳频首选要生成一个随机的频道序列,让通信的双方按照这个序列跳频。利用C语言库函数rand()与srand(SEED)可实现伪随机数的生成。实际上我们只需要库中固有序列,而随机种子才是我们要注意的。一般随机种子可以用单片机AD脚悬空值,像STM32F4系列本身自带硬件随机数生成器,更方便。
只要有了随机种子SEED,无线通信的双方只需交流种子,便可算出一个序列,这个序列可以是无限,也可以是有限长度的。如果使用有限长度的序列进行跳频,需要在上个周期通知对方下个周期的随机种子,以使通信能够维持。
二、代码
void BuildRandomSequence(unsigned char * data,const unsigned int len,const unsigned int seed)
{
unsigned char temp,xr;
unsigned int i=0;
for(i=0; i
{
data
= i;
}
srand(seed);
for(i=0; i
{
xr=rand()%len;
temp=data
;
data
=data[xr];
data[xr]=temp;
}
}
BuildRandomSequence()函数可生成一个长度为len,由[0, len-1]的整数组成的不重复序列,序列由种子参数seed决定。
1.在一对一通信开始之前,应避免大量机器开机时同时使用一个通道,所以从机应该随机选择一个规定范围内的频道,因此主机并不知道从机的所在频道。MCU需生成一个真随机数作为种子,利用以上函数再生成随机序列。用序列对应的频道去轮询从机,一旦有回应,则可找到从机的频道。通信就是这样开始。
2.如果使用有限长度的序列,那么此函数可以生成一个周期内的跳频序列,通信中,每一周期,主机负责生成序列,并且需要提前通知从机随机种子SEED。
三、验证:
在电脑上使用DEV-C++验证
可见种子相同,则生成相同的序列,例子程序中排序是为了方便观察对比。
2.4g无线跳频(一)
这里是针对一对一无线通信的简单定时跳频。
一、随机种子与序列
无线跳频首选要生成一个随机的频道序列,让通信的双方按照这个序列跳频。利用C语言库函数rand()与srand(SEED)可实现伪随机数的生成。实际上我们只需要库中固有序列,而随机种子才是我们要注意的。一般随机种子可以用单片机AD脚悬空值,像STM32F4系列本身自带硬件随机数生成器,更方便。
只要有了随机种子SEED,无线通信的双方只需交流种子,便可算出一个序列,这个序列可以是无限,也可以是有限长度的。如果使用有限长度的序列进行跳频,需要在上个周期通知对方下个周期的随机种子,以使通信能够维持。
二、代码
void BuildRandomSequence(unsigned char * data,const unsigned int len,const unsigned int seed)
{
unsigned char temp,xr;
unsigned int i=0;
for(i=0; i
{
data
= i;
}
srand(seed);
for(i=0; i
{
xr=rand()%len;
temp=data
;
data
=data[xr];
data[xr]=temp;
}
}
BuildRandomSequence()函数可生成一个长度为len,由[0, len-1]的整数组成的不重复序列,序列由种子参数seed决定。
1.在一对一通信开始之前,应避免大量机器开机时同时使用一个通道,所以从机应该随机选择一个规定范围内的频道,因此主机并不知道从机的所在频道。MCU需生成一个真随机数作为种子,利用以上函数再生成随机序列。用序列对应的频道去轮询从机,一旦有回应,则可找到从机的频道。通信就是这样开始。
2.如果使用有限长度的序列,那么此函数可以生成一个周期内的跳频序列,通信中,每一周期,主机负责生成序列,并且需要提前通知从机随机种子SEED。
三、验证:
在电脑上使用DEV-C++验证
可见种子相同,则生成相同的序列,例子程序中排序是为了方便观察对比。
举报
更多回帖
rotate(-90deg);
回复
相关问答
无线通信
跳频
函数
用NRF24L01 51单片机
实现
跳
频
无线通信
2014-06-17
10196
跳
频
通信
技术
2013-04-06
2138
如何
实现
无tmos的2.4g
无线
一对
N
通信
?
2022-08-29
351
nrf24l01进行多对
一
和
一对
多
通信
怎么
实现
?
2020-05-18
1943
请问蓝牙
一对一
配对链接时,多组蓝牙同时
一
起
一对一
配对连接行的通吗?
2019-04-28
2950
如何
实现
NRF24
无线通信
一对
多
通信
?
2021-12-17
788
如何
去
实现
USB串口
无线
模块与STM32间的
无线通信
呢
2021-12-17
1873
为什么要使用
无线
跳
频
技术?
2019-08-16
1878
不是ARM但是希望能得到解决的问题!关于nRF905和C8051f020之间的
无线通信
问题!
2016-05-03
2127
蓝牙
一对
多怎么
实现
2019-05-28
5389
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分