打印
[资料分享]

基于ARM和nRF24L01的无线数据传输系统

[复制链接]
1418|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Flower1|  楼主 | 2019-5-22 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于ARM和nRF24L01的无线数据传输系统

       1 引言

  由于无线数据通信不用布线,快速布局,因此具有有线数据通信无法比拟的便捷性,在特殊场合具有不可替代性。然而,传统的由基本射频集成电路搭建的无线数据通信系统存在电路复杂,成本高,传输速率低,可靠性差等缺点。为此,Nordic公司推出一款工业级内置硬件链路层协议的低成本单芯片nRF24L01型无线收发器件。该器件采用GFSK调制,128个频点自动跳频,片内自动生成报头和CRC校验码,具有出错自动重发功能,这些特性使得由nRF24L0l构建的无线数据传输系统具有成本低,速率高,传输可靠等优点。


  2 nRF24L01简介

  图l给出nRF24L0l的引脚排列。nRF24L01工作于2.4~2.5 GHz ISM频段,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了Enhanced ShoekBurst技术。其中,输出功率、通信频道、自动重发次数等参数可通过编程设置。内置的SPI接口,其速率为0~8Mb/s,MCU通过SPI接口控制nRF 24L0l。nRF24L01的特点如下:①功耗低。能够在以一6 dBm的功率发射时,工作电流只有9 mA;在以0 dBm的功率发射时,工作电流仅11.3 mA;而在接收时,工作电流仅12.3 mA,因此具有掉电和空闲多种低功率工作模式。②体积小,采用QFN20封装。③供电电压为1.9~3.6 V,可方便集成到各种电子器件。



  3 LPC214x简介

  IPC214x系列是基于ARM7内核的高性能器件,与LPC213x系列器件相兼容,并增加了一些新功能,性能得到了大大的提升。LPC214x系列器件最大特色是内置2kB终端RAM的USB 2.0全速控制器,1个(LPC2141/42)或2个(LPC2144/46/48)10位A/D转换器,多个串行接口,包括2个UART、2个高速I2C总线、SPI和具有缓冲作用及可变数据长度的SSP。LPC214x系列器件采用单电源供电,具有上电复位(POR)和掉电检测(BOD)电路。相对于普通ARM7来说,LPC214x还提升了I/O端口的速度,并且内置8—40 KB的静态RAM和32~512 KB的高速Flash存储器;工作频率高达60MHz;采用超小型LQFP64封装。


  4 系统硬件设计

  该系统采用模块化设计,主要由LPC2144、nRF24L01、射频功放和天线模块组成。其中,射频功放采用2.4 G双向功放模块。图2是系统总体设计图。上位机为PC机,LPC2144与nRF24L01连接,根据需要配置2.4 G功放和增益天线模块。如果配置0.5 W功放和高增益天线,则传输距离可达5~10 km。下位机为嵌入式平台,该嵌入式平台可以是单片机、ARM、DSP和FPGA,nRF24L0l可通过SPI接口直接与嵌入式平台连接。


  图3给出LPC2144与nRF24L0l的硬件接口设计。配置LPC2144的P0.2、P1.19作为GPIO端口分别与nRF24L0l的CE和CSN连接;配置LPC2144的P0.4、P0.5、P0.6作为SPIO端口分别与nRF24L0l的SCK、MISO、MOSI连接:配置LPC2144的P0.16作为EINT0端口与nRF24L0l的IRQ连接。


  5 系统软件设计

  发送端LPC214x完成初始化后,把nRF24L01配置成PTX工作模式。若从上位机接收到数据,则启动nRF24L01发送数据。若发送成功,则产生TX_DS中断;若重发超限,则产生MAX_RT中断;若发送成功,则继续发送,否则进行出错处理。接收端LPC214x完成初始化后,把nRF24L0l配置成PRX工作模式。当正确接收数据时,nRF24L0l产生接收中断标志,LPC214x从nRF24L01读取数据并向下位机发送。图4给出软件流程图。软件开发环境为ADSl.2。


  5.1 nRF24L01的初始化

  nRF24L01通过SPI接口和外部控制器件如MCU、ARM、DSP进行数据交换,其SPI协议是MSB在前,LSB在后。如果要读写多个字节,先读写低字节。如果外部控制器件没有SPI接口,可用普通I/O接口模拟。这里选用带SPI接口且可方便地与nRF24L0l连接的LPC21440表l给出nRF24L0l的命令表。


  由表可见,通过SPI接口传入nRF24L01的第一个字节是命令字,nRF24L0l的各种命令字都只有一个字节,分为读寄存器、写寄存器、读数据接收缓冲区、写发送数据缓冲区等。在输入任意命令字的同时,MISO输出的都是STATUS寄存器的内容。nRF24L0l的数据传输模式有ShockBurst和Enhanced ShockBurst两种数据包。后者比前者多了一个确认数据传输的信号,保证数据传输的可靠性。该器件内部完成需要高速处理的RF协议,发送数据时只需将数据放入发送数据缓冲区,器件会自行产生前导字符和CRC数据,并将这些数据地址和地址信息、发送数据缓冲区的数据等组成一个数据包发送出去。图5给出两种模式的数据包格式。


  现按后一种模式初始化。在配置为接收数据时,nRF24L01接收到数据包后,由硬件解析地址数据和信息数据,当接收到有效信息数据后,在IRQ引脚产生中断,并通知外部处理器读取数据。在配置为发送数据时,nRF24L0l发送数据包后,自动切换到接收模式已接收返回的确认信号,当收到确认信号后,IRQ引脚产生数据发送完成中断,如果没有握手信号返回,则表示发送失败,器件自动重新发送,如果重新发送的次数超过在ARC_CNT寄存器中的设定值时,会在IRQ引脚产生重发次数超限中断。MCU查询STATUS寄存器的值,即可判断是发送完成中断,还是重发次数超限中断。

  当发送端nRF24L0l配置成PTX模式时,配置nRF24L01工作在后一种发送模式下,重新发送的等待时间为250μs,重新发送次数为10次,地址是TX_AW,输出功率为0 dBm,速度为2 Mb/s,并且使能发送完成和重发送次数超限两种中断,CRC校验位为2字节,nRF24L01处于POWER_UP状态。函数中WRITE_REG为写命令基地址0x20。程序如下:


  当接收端nRF24L01模块配置成PRX模式时,配置nRF24L0l工作在接收模式下,地址是RX_AW,负载数据宽度是TX_PL_W,使能接收完数据中断,CRC校验位为2字节,nRF24L01处于POWER_UP状态。程序如下:


  5.2 nRF24L01的数据收发

  (1)发送数据 当nRF24L0l模块配置成发送模式后,向发送FIFO输入数据即可启动传输。发送8 Byte的程序如下:

  (2)接收数据 当nRF24L0l模块配置成接收模式后,在接收到数据中断发生时,从接收FIFO读取数据。接收8字节的程序如下:


  6 结语

  介绍了基于ARM和nRF24L0l的无线数字传输系统的硬软件设计。该系统已应用于微型飞行器的实时图像传输和遥测中。在实际应用中,可根据需要,将nRF24LOl组成一对一、一对多、多对多的结构。该系统还可广泛应用于无线测控、文件传输等领域。



使用特权

评论回复

相关帖子

沙发
Flower1|  楼主 | 2019-5-22 10:45 | 只看该作者
基于ARM和nRF24L01的无线数据传输系统

文档1.pdf

319.68 KB

使用特权

评论回复
板凳
kxsi| | 2019-5-22 15:45 | 只看该作者
这个射频模块是哪个厂家的啊

使用特权

评论回复
地板
dirtwillfly| | 2019-5-22 21:58 | 只看该作者
kxsi 发表于 2019-5-22 15:45
这个射频模块是哪个厂家的啊

隔壁厂家的

使用特权

评论回复
5
10299823| | 2019-8-7 22:16 | 只看该作者
无线数据传输方式的类型有几种?     

使用特权

评论回复
6
jimmhu| | 2019-8-7 22:16 | 只看该作者
NRF24L01与NRF24L01+有什么区别  

使用特权

评论回复
7
lihuami| | 2019-8-7 22:16 | 只看该作者
基于nRF24l01模块的无线通信   

使用特权

评论回复
8
xiaoyaozt| | 2019-8-7 22:16 | 只看该作者
NRF24L01价格便宜,对于短距离比较合适,编程不难  

使用特权

评论回复
9
uptown| | 2019-8-7 22:17 | 只看该作者
nrf24l01电源要加电容吗?  

使用特权

评论回复
10
cehuafan| | 2019-8-7 22:17 | 只看该作者
NRF24L01能一对多组网吗?  

使用特权

评论回复
11
usysm| | 2019-8-7 22:18 | 只看该作者
nRF24L01无线模块 无线传输能穿透玻璃吗,能穿透墙吗?  

使用特权

评论回复
12
typeof| | 2019-8-7 22:18 | 只看该作者
NRF24L01是一款工作在2.4G的无线收发芯片  

使用特权

评论回复
13
yujielun| | 2019-8-7 22:18 | 只看该作者
NRF24L01如何使用双通道通信

使用特权

评论回复
14
pl202| | 2019-8-7 22:19 | 只看该作者
无线传输模块NRF905 和 NRF24L01。  

使用特权

评论回复
15
yujielun| | 2019-8-7 22:19 | 只看该作者
在发射端程序中设置通道一和通道二的初始化程序

使用特权

评论回复
16
10299823| | 2019-8-7 22:19 | 只看该作者
wifi无线网络数据传输的格式是什么  

使用特权

评论回复
17
typeof| | 2019-8-7 22:19 | 只看该作者
可用于无线鼠标 ,无线门禁,无线数据通讯等。   

使用特权

评论回复
18
jimmhu| | 2019-8-7 22:19 | 只看该作者
nrf24l01传输距离好短,怎么回事?  

使用特权

评论回复
19
usysm| | 2019-8-7 22:19 | 只看该作者
nrf24l01寄存器怎么操作  

使用特权

评论回复
20
lihuami| | 2019-8-7 22:19 | 只看该作者
nRF24l01射频芯片自身没有集成任何协议  

使用特权

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

本版积分规则

623

主题

887

帖子

6

粉丝