打印

用GD32E103+2.4无线模块,实现无线模块对传不丢帧

[复制链接]
1358|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenbagan|  楼主 | 2021-12-22 20:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chenbagan 于 2021-12-25 12:18 编辑

看到题目,100个人有99个人不相信,可确实是实现了,这对于搞无线物联的同学可能特别有用,
下面我尽量用3至5次,逐步将谜底揭开。
我们用GD32E103TBU6做为控制主机,使用其U口连接PC机,使用其SPI接口连接2.4G无线模块(Si24R1)
组成了一个USB转无线模块装置,用这样两个模块进行密集的数据对传,没有丢帧现象。
我们会将电路图、PCB图和装载固件上传,也请感兴趣的同学,DIY后进行实测验证!

USB转24G.png (660.49 KB )

模块组成

模块组成

USB转24G逻辑图PCB图装载固件和对传文件.zip

462.79 KB

使用特权

评论回复
沙发
LIQIJJ| | 2021-12-24 22:45 | 只看该作者
大佬您好,我想问一下我用正点原子改的程序为啥检测不到。nrf24l01请问您之前遇到过这个问题吗

使用特权

评论回复
板凳
chenbagan|  楼主 | 2021-12-25 11:02 | 只看该作者
LIQIJJ 发表于 2021-12-24 22:45
大佬您好,我想问一下我用正点原子改的程序为啥检测不到。nrf24l01请问您之前遇到过这个问题吗 ...

不好意思,我们没有使用过正点原子,所以不了解,无法给出相关建议。不过就nf24l01和国产的一些兼容的2.4G模块,还是很好用的。要想用好,首先是调好单片机与无线模块的SPI接口。虽然手册上说其SPI接口支持10M速率,我们控制在8M以下,可能更好。另外,就说要仔细读懂那十几个寄存器的用途。做好收发接口函数。这些都不是太困难的事。单收和单发也是比较容易实现的。比较困难的地方在收发转换上。要有一个合理有续的规则。这是我们重点解决的问题。另外,在研发过程中,感觉比较**肋的是RSSI信号的利用。我能提供的也就这些了。
另外,我们也在市面购买了一些USB转无线模块做比对,发现市面上很难找到好的模块可用。我们将把我们的电路图,PCB图和装载固件提供出来,供同学们DIY验证比对。

使用特权

评论回复
地板
chenbagan|  楼主 | 2021-12-25 12:41 | 只看该作者
本帖最后由 chenbagan 于 2021-12-25 12:54 编辑

注意:
测试无线模块对传时,两台电脑上都要使用AccessPort1.37串口调试工具,
使用文件发送方式,且需要关闭实时数据显示功能。等对传结束后再观察数据。


另外,还需要注意的是,我们重新了串口配置参数的内容。
波特率:是模块频道设置,范围是2401至2520MHz
奇偶校验:NOEN:是普通收发方式, ODD:是可靠收发方式
                 (制作两种方式,是让同学有个对比验证)
数据长度: 是发送速率,8:代表2M, 7:代表1M, 6:代表250K
停止位:  1:   是有应答发送,最大重发次数是3
               1.5: 是有应答发送,最大重发次数是9
                2:   无应答发送


(收发地址:默认是“11111”)


这样同学就可以通过简单的配置串口,就可以达到配置无线模块的主要参数了。
哈哈哈!好奇葩的想法。。。。。。


验证不丢帧的串口配置举例:2422,ODD,8,(停止位,一台选1,另一台选1.5)

使用特权

评论回复
5
dxfshsh| | 2022-1-4 10:38 | 只看该作者
我们继续。。。。。。
2.4G无线模块支持两种通讯方式,一种是无应答方式,一种是有应答方式。
无应答方式,发送方,只要有数据就会一帧接一帧的发送,不管接收方是否正确接收了。
有应答方式,是方送方,发送一帧数据后,会等待接收方的接收正确应答,如果超时会自动进行重发,直到达到设定的最大重发次数。
显然,有应答方式更具可靠性,但其牺牲的是效率,粗略估计,由于应答和重发,其效率几乎牺牲了接近50%。
这也是很正常的事情,通讯可靠性的获得,都是要有所付出的。
我们的设计采用了有应答方式,在后面的提高可靠性的设计中,可能还需要牺牲部分的通讯效率。大概是10%到20%。
但无论如何,这种付出是必须的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

50

帖子

2

粉丝