网站首页 | 技术文章 | 解决方案 | 电子书籍 | 下载中心 | 电子商城 | 技术论坛 | 电子博客 | 商务信息  
联系站长
加入收藏
会员登陆
交易首页 最新信息 - 推荐信息 - 热门信息 - 免费发布 - 行业新闻 - 行业资讯 - 行业知识 - 积分说明 - 信息分类 - 企业展示 - 帮助
 您的位置: 中国电子设计 >> 技术文章 >> 微控制器 >> 正文 商务信息栏目开通公告  [2008-05-19 11:47:00]
   □  利用PIC16F877和nRF24L01芯片设计的无线数据传输系统   
利用PIC16F877和nRF24L01芯片设计的无线数据传输系统
[作者:荚 庆 王代华 张志杰    转贴自:现代电子技术    点击数:    更新时间:2008-6-26
【字体:

摘 要:介绍了一种利用无线数字传输芯片和单片机构成的无线数据传输系统,讨论了系统的硬件电路设计和软件编程,以及无线数字传输芯片在增强式突发传递模式下通过单片机的控制进行无线数据传输的原理,设计了在增强式突发传递模式下可实现半双工通信的通用电路,并讨论了无线数字传输芯片初始配置和数据发送程序开发的关键技术。运行表明,该系统控制方便、工作稳定,能实现可靠的无线数据传输。

关键词:无线数据传输系统;单片机;nrf24l01芯片;spi

1 nRF24L01芯片的介绍

nRF24L01是单片射频收发芯片,工作于2.4~2.5 GHz ISM频段。工作电压为1.9~3.6 V,有多达125个频道可供选择。可通过SPI写入数据,最高可达10 Mb/s,数据传输率最快可达2 Mb/s,并且有自动应答和自动再发射功能。和上一代nRF2401相比,nRF2401数据传输率更快,数据写入速度更高,内嵌的功能更完备。

芯片内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融进了增强式ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-6 dBm的功率发射时,工作电流只有9 mA,接收时工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。

1.1 nRF24L01引脚介绍

芯片引脚排列见图1。

各引脚具体功能如下:CE为发射和接收的使能端;CSN为SPI的使能端;SCK为SPI时钟输入;MOSI为SPI数据主输从人端;MISO为SPI数据主人从输端;IRQ为中断输出;VDD为电源端,接3 V直流电源;VSS为参考接地端;XC1,XC2为晶振端;VDD_PA给功率放大器供电1.8 V;ANT1,ANT2为天线接口端;IREF为参考电流端。

1.2 nRF24L01的指令结构

nRF24L01所有的配置字都由配置寄存器来定义,这些配置寄存器可通过SPI口访问。

1.2.1 SPI接口设置

SPI接口由SCK,MOSI,MISO及CSN组成。

(1)在配置模式下单片机通过SPI接口配置nRF24L01的工作参数。
(2)在发射或接收模式下单片机SPI接口发送或接收数据。

和SPI接口的指令共有8个,使用每个指令时必须使CSN变低,用完后将其变高。单片机的控制指令从nRF24L01的MOSI引脚输入,而nRF24L01的状态信息和数据信息是从其MISO引脚输出并送给单片机的。利用SPI传数时,他是先传低位字节,再传高位字节,并且在传每个字节时是从高位字节传起的。指令分别是;读寄存器指令,格式是000A AAAA;写寄存器指令,格式是001AAAAA(A AAAA代表寄存器在内存中的地址;读Payload指令;写Payload指令;清发射堆栈指令;清接收堆栈指令;发射数据再利用;空操作。

1.2.2 中断 当nRF24L01的中断源(TX_DS,RX_DR,MAX_RT)被置高时(TX_DS为发送成功标志位,RX_DR为接收数据成功标志位,MAX_RT为自动重发超上限标志位),就会使IRQ引脚置低。可以向状态寄存器写1来清这些中断标志位。通过设置CONFIG寄存器的某些位来屏蔽掉这些中断源,默认情况下,这三个中断源都是允许的。

1.2.3 内存区

下面介绍nRF24L01的内存区,一共24个寄存器,以下选取几个重要的加以介绍。

0号寄存器:第7位是保留位;第6位到第4位分别是TX_DS,RX_DR,MAX_RT屏蔽位,置高能屏蔽相应的中断源;第3位是CRC使能位;第2位是选择CRC长度;第1位是PWR_UP位,高电平为使芯片上电;第0位是发射、接收选择位,高电平是发射,低电平是接收。

1号寄存器:第7和第6位是保留位,第5到第0位是使能通道5到通道0的自动应答,高电平有效。

2号寄存器:第7和第6位是保留位,第5到第0位是使能接收通道地址5到地址0,高电平有效。

4号寄存器:第7位到第4位是设置自动重发的时间,第3位到第0位是设置自动重发的次数。

7号寄存器是状态寄存器,第7位是保留位,第6位是RX_DR位(1:接收堆栈中有了数据),第5位是TX_DS位(1:数据成功发送到接收方),第4位是MAX_RT位(1:达到重发射上限,产生超时中断),第3到第1位是标志哪个通道接收数据,第0位是发射堆栈状态位。

1.3 nRF24L01的功能描述

nRF24L01可以通过设置CE和状态寄存器来选择他的工作状态,如表1所示。

配置为发射模式的nRF24L01将会利用增强式ShockBurst技术来发射数据包。发送设备在发完数据后将自动转为接收状态来等待接收方的应答信号。若发送设备未接收到应答信号,他将自动重发这包数据(自动重发开启的情况下)直到接收这包数据或者重发次数超过了在寄存器SETUP_RETR_ARC设置的所允许的最大重发次数。如果是第二种情况,他将在STATUS寄存器里的MAX_RT位反映出来,并且给出中断。

当nRF24L01收到应答信号时,他将认为该包数据成功发送到接收方,并把这包数据从发射堆栈中清除,同时IRQ变低,STATUS寄存器里的中断标志位TX_DS置高。

用增强式ShockBurst技术来发射数据可以有以下好处:极大地降低了电流损耗;系统开销低;极大地降低了数据在空气中的碰撞率。

2 系统设计

2.1 硬件设计

本系统采用的单片机是PIC16F877,将单片机的PORTC的0~5配置成通用I/O引脚,分别与nRF24L01的IRQ,CE,CSN,SCK,MOSI,MISO连接,控制nRF24L01的工作方式,采用单片机标准的SPI接口。系统上电时,PIC16F877首先对nRF24L01进行写配置寄存器操作,然后使nRF24L01进入发射状态,将要发送的数据写入nRF24L01,激活无线发射。然后检测nRF24L01的IRQ引脚,由于关闭了自动重发射功能,因此如果引脚电平变低,即说明产生发送成功中断,数据发送成功,然后从接收端读出数据即可。

2.2软件设计

程序流程图如图3所示。程序编程的基本思路是,系统上电首先配置nRF24L01的寄存器,本系统只对其中几个寄存器进行了重新配置,关闭自动重发射功能是想对发送失败次数进行统计,其他的均采用默认值,如:通信速率2 Mb/s,输出功率0 dBm等。

nRF24L01写配置子程序如下:



3 结 语

本文介绍了利用PIC16F877和nRF24L01芯片设计的无线数据传输系统,成本低,体积小,传输速率高,具有良好的通用性和可靠性,可供监测和工业控制系统电路设计参考使用。

  • 上一篇文章:基于TLC5510的数据采集系统设计
  • 下一篇文章:没有了
  • Google
     
    Web www.cediy.com
    发表评论 □告诉好友 □打印此文 □关闭窗口
     最新热点文章
     基于单片机和串行总线技术的热量表...
     数字温度传感器详解
     用AD8302实现RF/IF幅度和相位测量系...
     一种简单的10MHz频率源兼分配放大器...
     维氏电桥振荡器
     检验液晶显示器的简易测试仪
     
     最新推荐文章
     基于TMS320C6713与PC机的PCI总线高...
     基于TMS320VC5409和Cygnal单片机构...
     基于ARM控制器S3C44B0x的给煤机控制...
     基于USB 2.0的高速数据采集卡在虚拟...
     大功率谐振过渡软开关技术变频器研...
     大功率谐振过渡软开关技术变频器研...
     
     相 关 文 章
      ◇  网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
     设为首页  加入收藏  关于本站  版权申明   联系站长   宣传赚点   友情链接
    如果我在线,不用加为好友,立刻与我交谈。 业务咨询QQ:342488946
    Copyright© 2004-2010 CEDIY.COM .All Rights Reserved
    粤ICP备05119258号