基于NRF24L01的无线通信系统_第1页
基于NRF24L01的无线通信系统_第2页
基于NRF24L01的无线通信系统_第3页
基于NRF24L01的无线通信系统_第4页
基于NRF24L01的无线通信系统_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、 滨江学院滨江学院 课程论文课程论文 题题 目目 基于 NRF24L01 的无线通信系统设计 专专 业业_ 通通 信信 工工 程程_ 学生姓名学生姓名_金金 建建 超超_ 学学 号号_20092334022_ 二二 一二一二 年年 十二十二 月月 二二十九十九 日日 基于基于 nRF24L01nRF24L01 的的 2 24 GHz4 GHz 无线通信系统设计无线通信系统设计 摘要摘要:提出一种基于NORDIC公司生产的24 GHz无线收发芯片nRF24L01的短距离无线数据传输系统设计方法。介绍了系统的实现方案和硬件选型,该系统以ATmega8L为控制核心,PTR6000为无线传输模块;详细

2、描述了硬件电路和软件程序设计方法,其中软件设计包括单片机主程序设计和PTR6000通信程序设计等;在硬件和软件设计的基础上,通过实验仿真验证了系统的正确性和可靠性,为系统实际应用提供了依据,最终达到了设计的要求。 关键词关键词:nRF24L01;ATmega8L;无线通信 引言引言 2 4 GHz频段是全球开放的ISM频段, 使用者无需申请许可证, 给开发者和用户带来了很大方便; 同时2 4 GHz无线射频技术采用专用的数据通道,并且搭载有跳频技术和数据加密,出现相似频段的可能性大大降低,从而减少了信号之间的干扰,保证了传输的稳定性。因为具有这些优点,蓝牙,ZigBee,WiFi等短距离无线数

3、据通信均工作在24 GHz ISM频段。在一般应用场合,以上这些技术显得过于复杂,其成本也过高,很难满足快速开发和低成本的要求。因此,目前迫切需要一种低成本、低功耗、能够快速开发应用的方案,来实现设备的无线连接。该文提出一种利用工作频率为24 GHz的无线收发芯片nRF24L01,进行短距离的点对点的无线通信系统设计方案。 1 1实现方案及硬件选型实现方案及硬件选型 1 11 1系统实现方案系统实现方案 系统的目的是在单片机的控制下实现数据的无线传输,硬件电路结构如图1所示。 图1硬件电路结构 该系统主要以单片机为控制处理核心,由它完成对数据的采集处理以及控制数据的无线传输;电源电路提供系统所

4、需各种电压;复位电路提供单片机所需的复位信号;晶振电路提供单片机的时钟信号;指示电路用来指示无线传输模块的工作状态;键盘电路用来发送各种类型的指令和数据;显示电路用来显示系统接收到的指令和数据。 1 12 2硬件选型硬件选型 设计采用低成本、性能好的NORDIC公司生产的nRF24I_I)l芯片来完成。nRF24L01是单片射频收发芯片,工作在全球开放的24 GHz频段,有多达125个频道可供选择;可通过SH写人数据,并且有自动应答和自动再发射功能;芯片功耗非常低,以一6 dBm的功率发射时,工作电流只有9 mA,接收时工作电流只有123 mA;多种低功率工作模式使节能设计更方便,并且市场上有

5、不少以它为核心的模块,便于购买。PTR6000就是以nRF24I)l为核心的无线收发模块,它可以通过软件设定地址,同时设置6路接收通道地址,特别方便点对多点无线通信。其内部全面的寄存器配置,能够更全面地对无线数据传输的细节进行控制。所以本次的无线数传模块选用了PTR6000,它的硬件接口如图2所示。 在待机或掉电模式下,单片机通过SPI接口配置PTR6000的工作参数;在发射接收模式下,单片机通过SP接口发送和接收数据;中断输出接I=IIRQAM可提供如下3种中断输出:发送完成中断TXDR、接收完成中断RX DR、最大发送次数到MAXRT。由于PTR6000的工作电压为1936 V,AVR系列

6、单片机也工作在低电压,并且具有SPI接口,正好满足了这一点要求;考虑到显示部分使用串行方式,所使用的IO口不是很多,ATmega8L足以满足要求,为了降低设计成本,控制芯片选择ATmega8L。 2.2.硬件电路设计硬件电路设计 2 21 1电源、复位和晶振电路设计电源、复位和晶振电路设计 为了缩短开发周期,设计中由交流220 V转直流12 V的部分由市场上的电源模块来代替。虽然ATmega8L可工作在2755 V宽电压,但是由于PTR6000工作在1936 V,超出这个电压范围就有被烧坏的可能,因此在用三端稳压管7805将12 v转换为5 V后,还要用1117将5 V的直流电转换到33 V,

7、这样PTR6000和Atmega8L都能正常工作。此外,为了适应移动测试的需要,设计的电路上还配备了电池槽,以便用2节干电池为系统提供3 V直流电压。设计采用简单的阻容复位电路,由于ATmega8L是低电平复位,电源经1 K电阻和22心电解电容接地,复位线从电阻和电容之间引出,接到ATmega8L的复位引脚。为了获得较高的振荡频率,设计采用了外接8 MHz晶体振荡器。由于AVR单片机独特的熔丝位设置,很容易造成单片机的锁死现象,因此在设置有关时钟的相关位时要格外小心。当然,即便是锁死了一般情况下还是可以通过外接有源晶振来解锁,并重新烧写正确的熔丝位。 2 22 2键盘和显示电路设计键盘和显示电

8、路设计 设计的键盘采用3 X 3的矩阵式键盘,3条行线接到ATmega8L的PC3、PCA、PC5,3条列线分别接到PC0、PCI、PC2,并且3条列线带有上拉电阻。在每个上拉电阻的下面引出一条线,接到三输入与门74HCll的输人口,然后输出口接到单片机的外中断1引脚,这样设置的目的是用中断的方法来进行键盘的扫描读取。这一功能的实现主要还依靠软件的设计,使得在有按键按下时,能够通过74HCll产生一个中断信号,通知单片机现在有键按下。然后单片机会进入预先编写好的键盘处理程序进行键盘扫描,判断键值,并执行相应的操作。显示电路使用2个8段数码管,通过串转并的动态显示来实现,并且通过2个IO口控制2

9、个三极管来分别进行驱动和控制。用SPI口进行显示数据的串行输出是一个比较方便的方法,但是考虑到PTR6000通过单片机SPI口接收数据,有与显示冲突的可能。因此,设计时利用了PDl、PD4两个普通的IO口来分别作为数据线和时钟线,模拟时序来实现数据的串转并显示。 3 3 软件设计软件设计 3 31 1主程序设计主程序设计 设计采用的是汇编语言,内存不能自动分配,在主程序的开始,首先对ATmega8L的堆栈指针进行设置。在IO空间,地址为$3E($005E)和$3D($005D)的2个8位寄存器构成了一个16位宽的堆栈指针寄存器sP,单片机上电复位后,堆栈寄存器的初始值为SPH=$00、SPL=

10、$00。AVR的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数值将减小。所以系统程序一开始就对堆栈指针寄存器进行了初始化,将sP的值设在数据存储器(sRAM)空间的最高处。设置堆栈指针后的程序中,对各I0口的存储器进行配置,包括数据寄存器 PORTx、数据方向寄存器DDRx。随后的初始化设置中,对外中断的触发方式进行相应的设置。最初设计采用的是低电平触发方式,但是由于低电平容易造成重复触发,造成键值读取错误,因此在后续的程序设计中将其改成了下跳沿触发,这样只要键盘消抖工作做好,就能解决重复触发的问题。在点对点和点对多点的短距离通信中,每一方随时都有发送数据的可能,所以在主程序的PTR600

11、0初始化部分中设置为接收方式,并对其相关地址通道进行了开通和自动应答设置,并配置了其地址的的长度且按指定长度对地址进行了配置。在主程序中还设置了PTR6000的中断允许标志位,当有数据接收中断、发送完成中断、最大发送次数中断产生时,在PTR6000的IRQ引脚产生一个低电平,触发单片机外中断0,进行相应的处理。 3 32 2键盘程序设计键盘程序设计 由硬件电路设计可知,键盘程序是放在中断服务程序中的,而且是下降沿触发中断,这一点有关的IO口设置和寄存器有关位设置在主程序中完成,在此不再作具体说明。在外中断1服务程序的开始,首先对键盘延时消抖,判断是否真的有键按下,如果判断确实有键按下则向下执行

12、键值判断程序,否则,判定为错误中断,中断返回。该部分键盘判断程序是通过线反转法完成的,首先3行送高电平,3列送低电平,延时一个时钟周期后,读取管脚电平(PINC),并且对读取的数据进行保存;然后3列送高电平,3行送低电平,延时一个时钟周期后,读取管脚电平(PINC),并且对读取的数据进行保存。然后两次读到的数据只保留低6位,高位全部清零,因为键盘只用到了低6位。然后再把2个键进行位或,得到一个数值,通过对这个数值的判断来判定是哪一个键按下了。 3 33 3显示程序设计显示程序设计 显示程序设计总的思想是首先串行传送转换后的十位显示数码,然后选通十位,再进行适当延时后关闭。再串行传送转换后的个位

13、显示数码,然后选通个位,进行适当延时后关闭。具体串行显示是这样实现的:首先把要显示码寄存器进行带进位移位,然后判断进位标志位C来向串行数据输出口送0或1,进行适当延时后,向串行时钟口送低电平,适当延时后送高电平,目的是产生一个上跳沿,把串行数据口的电平状态移入74HCl64。这样连续传送8次,就将8位显示码送出 3 34 4 PTPTR6000R6000通信程序设计通信程序设计 由于与RF协议相关的高速信号处理部分已经嵌入在模块内部,PTR6000可与各种低成本单片机配合使用,也可以与DSP等高速处理器配合使用。此系统中PTR6000可以进行半双工通信,所有通信基点都初始化为接收模式,等待命令

14、。当收到数据后,进行相应的操作。并且同样可以进行数据的发送,在数据发送完成后又立即转换成接收状态,等待再次有数据的到来。PTR6000有6种工作模式如表1所示,其中PWRUP和PRIMRX是模块寄存器参数。 3 34 41 1接收程序设计接收程序设计 接收程序编写流程主要是在初始化的过程中,把本机设置成接收状态,这部分主要是在主程序的初始化配置的过程中完成的。具体的程序流程如下:设置PTR6000的配置寄存器,把门R6000配置成允许数据接收完成中断、数据发送完成中断和最大发送次数到中断3个中断,当有以上3种中断中的任何一个产生时PTR6000的IRQAM引脚都产生一个低电平;给EN RXAD

15、DR接收地址允许寄存器送数$01只开通数据通道0;并且通过给EN从送数$01允许数据通道0自动应答允许;通过对SETUP AW配置,设置地址的长度为3个字节;并且在对数据通道0的地址寄存器RX ADDR P0的配置过程中把地址配置为$000000,在随后的设置中把数据速率设置为2 Mbps;对接收缓冲寄存器清空,确保其能进入接收状态。最后CE送高电平,进入接收状态。 3 34 42 2发送程序设计发送程序设计 当有键按下时就要启动相应的发送程序,发送子程序是在外中断0中被调用的。具体的程序流程如下:PTR6000的发送缓冲寄存器进行清空操作;程序中接收结点地址(RX ADDR)、最大发送次数(

16、ARC)和有效数据(TXP皿)通过SPI接口写入PTR6000,在写入过程中对SPI中断标志位进行 监测,如果数据传送没有完成保持CSN为低;配置寄存器PRIMRX位设为低,把标志寄存器rl和数据寄存器r19的数据不断写入PTR6000的发送缓冲寄存器;设置CE为高,启动发射。CE高电平持续时间最小为10肚s。若启用了自动应答模式,模块立即进入接收模式。 3 35 PTR60005 PTR6000中断服务程序设计中断服务程序设计 PTR6000的3种类型的中断都是通过INT0触发的, 所以在程序的开始要对中断的具体来源进行判断。 PTR6000中有一个状态寄存器(STATUS),其中包括3种中

17、断的标志位。在中断服务程序的开始首先向FrR6000发送一个空操作指令,此时返回单片机SPI数据寄存器SPDR的数据就是当前状态寄存器的数值。接下来对其3个中断标志位进行判断,判断是接收完成中断、发送完成中断还是最大发 送次数到中断,然后跳转到相应的服务程序部分。 4 4实验仿真实验仿真 基于以上设计方案, 对系统进行了实验仿真。 在搭建相关硬件平台的基础上, 通过对相关软件程序的调试,系统很好地实现了点对点的无线通信,实验证实,基于nRF24L01的24 GHz无线通信系统解决方案,可以实现小于10 m的短距离通信。此外还在2台计算机之间进行了不同格式、不同大小的文件的传输实验,其传输速率约为512 kBS,具体结果如表2所示。通过提高单片机的晶振还可以加快文件的传输速度,最快可以达到2 Mbs。 表2 24 GI-Iz无线通信系统文件传输速率对照表 5 5结束语结束语 24 GHz无线通信是一项新兴的短距离无线通信解决方案,主要面向的应用领域是低速率无线个人区域网,典型特征是近距离、 低功耗、 低成本, 主要适用于小型廉价设备的

温馨提示

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

最新文档

评论

0/150

提交评论