基于ARM和nRF24L01的无线数据传输系统_第1页
基于ARM和nRF24L01的无线数据传输系统_第2页
基于ARM和nRF24L01的无线数据传输系统_第3页
基于ARM和nRF24L01的无线数据传输系统_第4页
基于ARM和nRF24L01的无线数据传输系统_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、,速率高,传 输可靠等优点。2 nRF24L01简介图l给出nRF24L0l的引脚排列。nRF24L01工作于2425 GHz ISM频段,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了Enhanced ShoekBurst技术。其中,输出功率、通信频道、自动重发次数等参数可通过编程设置。内置的SPI接口,其速率为08Mbs,MCU通过SPI 接口控制nRF 24L0l。nRF24L01的特点如下:功耗低。能够在以一6 dBm的功率发射时,工作电流只有9 mA;在以0 dBm的功率发射时,工作电流仅113 mA;而在接收时,工作电流仅123 mA,因此具有掉电和空闲多种低功

3、率工作模式。体积小,采用QFN20封装。供电电压为1936 V,可方便集成到各种电子器件。3 LPC214x简介IPC214x系 列是Philips公司的基于ARM7内核的 高性能器件,与LPC213x系列器件相兼容,并增加了一些新功能,性能得到了大大的提升。LPC214x系列器件最大特色是内置2kB终端RAM的 USB 20全速控制器,1个(LPC214142)或2个(LPC2144/46/48)10位A/D转换器,多个串行接口,包括2个UART、2个高速I2C总线、SPI和 具有缓冲作用及可变数据长度的SSP。LPC214x系列器件采用单电源供电,具有上电复位(POR)和掉电检测(BOD)

4、电路。相对于普通ARM7来 说,LPC214x还提升了IO端口的速度,并且内置840 KB的静态RAM和32512 KB的高速Flash存储器;工作频率高达60MHz;采用超小型LQFP64封装。4 系统硬件设计该系统采用模块化设计,主要由LPC2144、nRF24L01、射频功放和 天线模块组成。其中,射频功放采用台湾K一BEST公司的2.4 G双向功放模块。图2是系统总体设计图。上位机为PC机,LPC2144与nRF24L01连接,根据需要配置24 G功放和增益天线模块。如果配置05 W功放和高增益天线,则传输距离可达510 km。下位机为嵌入式平台,该嵌入式平台可以是单片机、ARM、DS

5、P和FPGA,nRF24L0l可通过SPI接口直接与嵌入式平台连 接。点击看原图图3给出LPC2144与nRF24L0l的硬件接口设计。配置LPC2144的P02、P119作为GPIO端口分别与nRF24L0l 的CE和CSN连接;配置LPC2144的P04、P05、P06作为SPIO端口分别与nRF24L0l的SCK、MISO、MOSI连接:配置 LPC2144的P016作为EINT0端口与nRF24L0l的IRQ连接。点击看原图5 系统软件设计发送端LPC214x完成初始化后,把nRF24L01配置成PTX工作模式。若从上位机接收到数据,则启动nRF24L01发送数据。若发送 成功,则产生

6、TX_DS中断;若重发超限,则产生MAX_RT中断;若发送成功,则继续发送,否则进行出错处理。接收端LPC214x完成初始化后,把 nRF24L0l配置成PRX工作模式。当正确接收数据时,nRF24L0l产生接收中断标志,LPC214x从nRF24L01读取数据并向下位机发 送。图4给出软件流程图。软件开发环境为ADSl2。点击看原图51 nRF24L01的初始化nRF24L01通过SPI接口和外部控制器件如MCU、ARM、DSP进行数据交换,其SPI协议是MSB在前,LSB在后。如果要读写多个 字节,先读写低字节。如果外部控制器件没有SPI接口,可用普通IO接口模拟。 这里选用带SPI接口且

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

8、符和CRC数据,并将这些数据地址和地址信息、发送数据缓冲区的数据等组成一个数据包发送出去。图5给出 两种模式的数据包格式。 点击看原图现按后一种模式初始化。在配置为接收数据时,nRF24L01接收到数据包后,由硬件解析地址数据和信息数据,当接收到有效信息数据后,在 IRQ引脚产生中断,并通知外部处理器读取数据。在配置为发送数据时,nRF24L0l发送数据包后,自动切换到接收模式已接收返回的确认信号,当收到确 认信号后,IRQ引脚产生数据发送完成中断,如果没有握手信号返回,则表示发送失败,器件自动重新发送,如果重新发送的次数超过在ARC_CNT寄存器中 的设定值时,会在IRQ引脚产生重发次数超限

9、中断。MCU查询STATUS寄存器的值,即可判断是发送完成中断,还是重发次数超限中断。当发送端nRF24L0l配置成PTX模式时,配置nRF24L01工作在后一种发送模式下,重新发送的等待时间为250s,重新发送次数为 10次,地址是TX_AW,输出功率为0 dBm,速度为2 Mbs,并且使能发送完成和重发送次数超限两种中断,CRC校验位为2字节,nRF24L01处于Power_UP状态。函数中WRITE_REG为写命令基地址0x20。 程序如下:点击看原图当接收端nRF24L01模块配置成PRX模式时,配置nRF24L0l工作在接收模式下,地址是RX_AW,负载数据宽度是TX_PL_W, 使能接收完数据中断,CRC校验位为2字节,nRF24L01处于POWER_UP状态。程序如下:点击看原图52 nRF24L01的数据收发(1)发送数据 当nRF24L0l模块配置成发送模式后,向发送FIFO输入数据即可启动传输。发送8 Byte的程序如下:点击看原图(2)接收数据 当nRF24L0l模块配置成接收模式后,在接收到数据中断发生时,从接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论