打印
[MCU]

振南 ★NRF24L01射频模块(加天线)自动应答通信测试(ZN-X开发板)

[复制链接]
2079|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
znmcu|  楼主 | 2016-1-7 15:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
振南的技术交流QQ群 198521880
============================
http://www.znmcu.cn/mod_nrf_com_speed_test_AA.html

振南的 NRF24L01无线射频通信模块(带高增益鞭状天线)自动应模式测试实验
【基于51STM32平台】
关于NRF24L01无线射频,在振南的ZN-X开发板上一直都有。但是振南只是对它进行了简单的测试,并没有深入地去研究。我一直认识NRF24L01是一种比较低端的无线射频方案,它的数据带宽和数据准确性都不高。但是现在我发现,其实它比较强大。集成的自动应答模式可以实现高准确率的数据通信,省去了我在应用层上设计传输协议和重传机制。它的最大数据带宽比较小,只有2Mbps,即256KBps(每秒可传输256K字节的数据量)。这样的数据带宽,传输一般的音频、控制信号或小尺寸的视频数据等应该是可以的。所以有些人使用它来作对讲机。振南后面会发布实用项目的实现方案和测试(比如对讲机、无线数传、遥控等)。
NRF24L01基本的通信方式有两种,1是普通方式,无自动应答,不能保证数据收发一定可靠;2是自动应答方式,发方发射,收方应答,失败重发,直到成功,它可以保证数据收发的可靠性,但是它限制了通信距离和速率(有应答重发机制,必然要牺牲一部分性能)。
此实验对自动应答方式进行测试。
实验方案很简单:发方发射32个字节(031),收方接收后判断数据是否正确,如果正确则将数据从串口打印输出。
实验基于振南的ZN-X开发板,当然此实验需要两块开发板,一发一收。
实验效果如下图:
自动应答模式可以作到:只要收到数据,就一定是正确的。发射方在成功发出数据之后,会立即自动转为接收模式,等待接收方的回应。如果在规定的时间内没有收到回应,则认为此次发射失败。将启动重发,一直到收到回应为止。除非重发次数到达了设定的最大重发次数,此时NRF24L01会将状态寄存器的MAX_TX位置为1CPU通过它可以知道发射是否成功,进而决定是继续发送同一包数据,还是放弃。而当数据被成功发射,即发方成功接收到收方的回应后,NRF24L01则会将状态寄存器的TX_OK位置为1
振南还对NRF24L01的通信速率进行了初步的测试:
测试时长
数据通信次数
每次通信数据量
核算通信速率
10s
832
32字节
25KBps(200Kbps)
基于振南ZN-X 51平台,采用IO模拟SPISPI时钟频率约500KHz
10s
10602
32字节
330KBps(2640Kbps)
基于振南ZN-X 51平台,采用硬件SPISPI时钟频率约5MHz
10s
xx
32字节
xx
基于振南ZN-X STM32平台,采用IO模拟SPI
10s
xx
32字节
xx
基于振南ZN-X STM32平台,采用硬件SPI
注:未整理,后期补充
可以看到NRF24L01的数据通信速率与SPI时钟频率有较大关系。实验基于STC51芯片(振南ZN-X上的STC15L2K60S2芯片),它的晶振使用22.1184MHzSPI最快为Fosc/4,即大约5MHz。在这种情况下,NRF24L01的数据通信速率达到330Kbps。甚至超过了NRF24L01的标称速率。经过振南核查,收发数据也没有问题。(发方发送32字节,0~31,收方接到后,判断是否为0~31。发方发送成功后,向串口打印输出一个“.”,收方接收并确认数据无误之后,也向串口打印一个“.”,如果发送失败或接收数据有误,则向串口打印输出“X”。经过长时间的测试,振南没有看到一个“X”。这也许归功于高增益鞭状天线,因为我有意将天线取下,数据收发便表现不稳定了。)
结论:NRF24L01实际数据通信速率可能会比2Mbps要高,但这是不稳定的。
振南在程序中,在两次数据通信之间并没有留出一定延时,但实际上,可能加上一些延时会更可靠一些。NORDIC官方所发布的2Mbps,应该是一个保守值。
另外,振南还发现,无线通信与有线通信在通信速率上的配置并不一样。振南测试了发方设置通信速率为250K,而将收方通信速率设置为2M1M,它们之间仍然可以成功进行通信。只不过通信和应答的过程被拉长了。它并不像有线通信,比如串口一样,必须保证收发双方严格的通信速率的一致(所谓的波特率)。
振南通过此实验发现,NRF24L01无线射频通信,数据通信质量和稳定性比较好,速度上也能够了达到预定要求。但只是在收发双方相距较近的情况下,振南需要进一步测试它们相隔较远时表现如何。通信质量和距离有怎样的关系。这是振南后面要作的实验,到时整理发布。
如果把自动应答方式关掉,使用普通方式进行通信,效果又会如何!?
此实验相关源代码(请进入振南电子网站下载)

相关帖子

沙发
老老实实| | 2016-1-7 16:00 | 只看该作者
振南出品,绝对是精品。提个小意见给老师,能否争对做这个做一个demo板,就不用单独还买一个开发板,因为我觉得这个应用应该很多朋友会需要学习
而单独买个开发板学习这个,有点浪费

使用特权

评论回复
板凳
znmcu|  楼主 | 2016-1-7 16:26 | 只看该作者
我的开发板是模块化的,你可以买基板+NRF模块就行了

使用特权

评论回复
地板
znmcu|  楼主 | 2016-1-7 16:27 | 只看该作者
我作模块化开发板,就是为了可裁剪。想学什么你就要什么模块,不想学什么就不买,以后想学了,再买。
如果我好几种基板,51 AVR STM32 M0/M3/M4,这些基板都可以插接模块。

使用特权

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

本版积分规则

个人签名:振南的znFAT -- 单片机上上的FAT32文件系统 www.znmcu.cn

4474

主题

5195

帖子

33

粉丝