基于单片机的无线射频收发系统.docx
《基于单片机的无线射频收发系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的无线射频收发系统.docx(38页珍藏版)》请在冰豆网上搜索。
基于单片机的无线射频收发系统
专业课程设计报告
题目:
基于单片机的射频无线收发系统
姓名:
晁州
专业:
通信工程
班级学号:
10042309
同组人:
朱丽洁
指导教师:
张小林
南昌航空大学信息工程学院
2013年07月05日
基于单片机的无线射频收发系统
摘 要:
随着现代电子技术的飞速发展,通信技术也取得了长足的进步。
在无线通信领域,越来越多的通信产品大量涌现出来。
但设计无线数据传输产品往往需要相当的无线电专业知识和价格高昂的专业设备,因而影响了用户的使用和新产品的开发。
nRF24L01是一个为433MHz ISM频段设计的无线收发芯片,它为短距离无线数据传输应用提供了较好的解决办法,使用nRF24L01降低了开发难度,缩短了开发周期,使产品能更快地推向市场。
本文提出了一种应用于无线数据收发系统的设计思路及实现方案,给出了基于无线射频芯片nRF24L01和STC89C52单片机的无线数据传输模块的设计方法,详细分析了各部分实现原理,并对系统的传输距离、传输数据的正确性进行了测试。
试验表明,该系统性能稳定,具有较强的抗干扰能力,有较强的实用价值。
关键词:
无线通信无线数据传输模块单片机射频
前言……………………………………………………………………………………1
1系统设计………………………………………………………………………1
1.1系统设计……………………………………………………………………………2
1.2实现过程……………………………………………………………………………2
2系统组成…………………………………………………………………………2
2.1射频收发控制模块……………………………………………………………3
2.1.1无线射频收发芯片nRF24L01介绍……………………………………………3
2.1.2稳压部分………………………………………………………………………5
2.2单片机控制部分……………………………………………………………………6
2.2.1STC89C52RC功能介绍…………………………………………………………6
2.2.2内部结构………………………………………………………………………6
2.2.3串口通信………………………………………………………………………8
2.3显示部分…………………………………………………………………………10
3软件设计………………………………………………………………………………11
3.1主程序流程图……………………………………………………………………11
3.2数据收发子程序流程图…………………………………………………………12
3.3键盘子程序流程图………………………………………………………………13
4测试结果及分析………………………………………………………………………13
4.1硬件电路测试……………………………………………………………………14
4.2系统测试…………………………………………………………………………14
4.2.1测试方法……………………………………………………………………14
4.2.2功能测试及分析……………………………………………………………14
5结论………………………………………………………………………………16
6参考文献……………………………………………………………………………17
致谢………………………………………………………………………………………18
附录1:
无线发射系统电路图…………………………………………………………19
附录2:
发送程序………………………………………………………………………20
前言
伴随着短距离、低功率无线数据传输技术的成熟,无线数据传输被越来越多地应用到新的领域。
与有线通信方式相比,无线通信以其不需铺设明线,使用便捷等一系列优点,在现代通信领域占重要地位。
但以往的无线产品存在范围和方向上的局限。
例如,一些无线产品在使用时,无法将信息反馈给控制者;还有一些无线产品不能很好地显示参数或状态信息,如果能在系统中增加一块小型液晶显示电路,产品不仅能向用户显示其状态或状态的改变,而且可以大大降低成本。
正如人们所发现的,只要建立双向无线通信-双工通信并且选无线数据传输模块基于微功耗单片射频收发器NRF24L01设计,采用89C52单片机完成数据的处理和控制择成本低的收发芯片,就会出现许多新应用。
本次设计主要是利用无线收发电路,加上单片机控制与液晶显示制成一套完整的数据收发系统。
考虑到目前市场上的一些需求,设计的主要要求是方案成本低,体积小,低功耗,集成度高,尽量无需调外部元件,传输时间短,接口简单。
。
第一章系统设计
1.1系统设计
无线数据传输系统有点对点,点对多点和多点对多点三种。
本系统由于实际应用的需要,接收器和数据终端之间的数据传输通过NRF24L01进行,构成点对点无线数据传输系统。
整个系统中,两数据终端之间的无线通信采用433MHz的频段作为载波频率,收发通过串口通信。
无线数据收发系统可以分为无线收发控制电路、单片机控制电路、显示电路和按键电路四部分组成,系统原理框如图1-1所示:
图1-1无线数据收发系统原理图
1.2实现过程
当我们需要发送数据时,使用按键来输入所需发送的信息。
按键与单片机的STC89C52RC的P3.2-P3.5口相接,单片机的P1.0口控制信息的发送与接收,并且TXD端与收发器输入端相连,通过TXD将数据传入收发器,收发器接收到数据后,通过FSK调制,将信号发送出去;接收端的收发器通过解调,将载波信号转换为数字信号,完成信息传输过程;收发器的输出端通过RXD端将数字信号输入到单片机;单片机将数据传送到显示器,这样就完成了一次数据发送与接收并显示的过程。
本系统采用的是半双工传送方式。
所谓半双工就是通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,但是,通信的任何一方都不能同时既发送信息又接收信息,即在指定的时刻,只能沿某一个方向传送信息。
所以上述实现过程只介绍了由一方传送到另一方的过程,而相反方向与其原理相同。
第二章系统组成
2.1射频收发控制模块
该模块主要由NRF24L01构成,RF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片。
无线收发器包括:
频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器调制器、解调器。
输出功率频道选择和协议的设置可以通过SPI接口进行设置。
2.1.1无线收发芯片nRF24L01介绍
1.主要引脚功能
图2-1NRF24L01引脚图
表2-1NRF24L01主要引脚说明表
接口电路管脚说明管脚
名称
管脚功能
说明
1
GND
接地电源
电源地
2
VCC
接电源正
电源正。
范围在1.9-3.6V。
3
CE
模块输入信号
由单片机给出信号控制NRF24L01模块内部射频电路工作与否
4
CSN
模块输入信号
模块的片选信号,单片机发出信号来控制允许向模块读或写数据
5
SCK
模块输入信号
串行时钟信号。
由单片机发出,来控制模块的读或写的运作节拍
6
MOSI
模块输入信号
是单片机向NRF24L01发送数据的接口
7
MISO
模块输出信号
是NRF24L01模块向单片机送数据的接口
8
IRQ
模块输出信号
是NRF24L01产生中断信号发送给单片机的接口
2.内部结构
图2-2NRF24L01无线收发芯片内部结构图
3.NRF24L01无线模块特点:
(1)GFSK调制:
(2)硬件集成OSI链路层;
(3)具有自动应答和自动再发射功能;
(4)片内自动生成报头和CRC校验码;
(5)数据传输率为lMb/s或2Mb/s;
(6)SPI速率为0Mb/s~10Mb/s;
(7)125个频道:
(8)与其他nRF24系列射频器件相兼容;
4.GFSK调制
本系统中的NRF24L01是具备GFSK调制的无线收发芯片。
GFSK高斯频移键控调制是把输入数据经高斯低通滤波器预调制滤波后,再进行FSK调制的数字调制方式。
它在保持恒定幅度的同时,能够通过改变高斯低通滤波器的3dB带宽对已调信号的频谱进行控制,具有恒幅包络、功率谱集中、频谱较窄等无线通信系统所希望的特性。
因此,GFSK调制解调技术被广泛地应用在移动通信、航空与航海通信等诸多领域中。
2.1.2稳压部分
由于NRF24L01的VCC脚接电压范围为3.3V~3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块,因此选用3.3V电压。
该稳压部分电路如下图所示:
图2-3稳压电路
该稳压部分主要由LM317和外围电路构成。
LM317作为输出电压可变的集成三端稳压块,是一种使用方便、应用广泛的集成稳压块。
稳压电源的输出电压可用下式计算:
Vo=1.25(1+R2/R1)(2-1)
因此选择R1为200欧姆,为了便于调试R2使用滑动变阻器。
在应用中,为了电路的稳定工作,需要接二极管作为保护电路,防止电路中的电容放电时的高压把LM317烧坏。
2.2单片机控制部分
控制电路主要组成部分为单片机STC89C52RC,通过STC89C52RC与nRF905进行串行通信,并用其控制NRF24L01的工作模式和SPI输入输出,从而调整收发状态。
STC89C52RC还控制液晶屏的显示和按键等系统工作。
2.2.1STC89C52RC功能介绍
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
2.2.2内部结构
STC89C52RC单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O口、串行I/O口和中断系统等几大单元以及数据总线、地址总线和控制总线三大总线构成。
图2-4STC89C52RC芯片引脚图
(1)电源和晶振
VCC:
供电电压。
GND:
接地。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
(2)I/O口
①P0口
P0口的字节地址为80H,位地址为80H~87H。
P0口既可以作为通用I/O口使用,也可以作为单片机系统的地址/数据线使用。
当作为输出口使用时,由于输出电路是漏极开路,必须外接上拉电阻才能有高电平输出。
②P1口
P1口的字节地址为90H,位地址为90H~97H。
P1口只能作为通用I/O口使用。
当作为输出口使用时,已能对外提供推拉电流负载,外电路无需再接上拉电阻;当作为输入口使用时,应先向其锁存器写入“1”,使输出驱动电路的FET截止。
③P2口
P2口的字节地址为0A0H,位地址为0A0H~0A7H。
P2口用于为系统提供高位地址,但只作为地址线使用而不作为数据线使用。
此外,P2口也可作为通用I/O口使用。
④P3口
P3口的字节地址为0B0H,位地址为0B0H~0B7H。
P3口可以作为通用I/O口使用,但在实际应用中它的第二功能信号更为重要。
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(计时器0外部输入)
P3.5T1(计时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
(3)4根控制线
①RST:
复位信号。
保持RST脚两个机器周期以上的高电平,就可以完成CPU系统复位操作,使系统的一些单元内容回到规定值。
②/PSEN:
外部程序存储器读选通信号。
在读外部ROM时,/PSEN有效(低电平),以实现外部ROM单元的读操作。
③/EA/VPP:
访问程序存储器控制信号。
当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当/EA为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。
④ALE/PROG:
地址锁存控制信号。
在系统扩展时,ALE用于控制P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。
此外由于ALE是以六分之一晶振频率的固定频率输出的正脉冲,因此也可作为外部时钟或外部定时脉冲使用。
2.2.3串口通信
通信主要有两种方式:
并行通信和串行通信。
并行通信是在传送数据过程中每个字节的各位同时进行传送的通信方式,而串行通信[14]是指每个字节的各位分别进行传送的通信方式。
1串口通信方式
STC89C52串行口可设置四种工作方式,可有8位、10位和11位帧格式。
本系统中,STC89C52RC采用串行口工作于方式1,即每帧10位的异步通信格式:
1位起始位,8位数据位(低位在前),1位停止位。
当SM0=0,SM1=1时,串行口选择方式1。
其帧格式为:
图2-5帧格式图
2串行通信控制寄存器
(1)串行控制寄存器(SCON)
SCON的地址为98H,用于选择串行口的工作方式和指示串行口的工作状态。
各位含义如下:
①SM0、SM1:
串行口工作方式选择位。
②SM2:
多机通信选择位。
③REN:
串行口允许接收位。
‘1’时允许接收,‘0’时禁止接收。
④TI:
串行口发送中断标志位。
在方式1中,于发送停止位之前,由硬件置位。
因此TI=1,表示帧发送结束。
⑤RI:
串行口接收中断标志位。
在方式1中,当接收到停止位时,该位由硬件置位。
RI=1,表示帧接收结束。
(2)串行数据缓冲器(SBUF)
串行数据缓冲器SBUF的地址为99H,用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,它们占用同一地址(99H)。
当执行写SBUF指令时,数据写入到串行口发送缓冲器中,读SBUF就是读串行口接收缓冲器。
(3)电源控制寄存器(PCON)
PCON的地址为87H,该寄存器的最高位(SMOD)是串行口波特率的倍增位,当SMOD=1时,串行口波特率加倍。
系统复位时,SMOD=0。
(4)中断允许寄存器(IE)
在IE中,ES位为串行中断允许控制位。
ES=0时禁止串行中断,ES=1时允许串行中断。
3数据发送与接收
(1)数据发送
在不发送数据时,TXD端保持高电平。
当执行写SBUF的指令时,便启动一次发送过程;发送数据时,先发送一个起始位,该位通知接收端开始接收,也使发送和接收过程同步。
接下来发送8位数据,先发送低位,最后发送的是高电平的停止位。
(2)数据接收
REN=1,CPU允许串行口接收数据,接收数据开始于检测到RXD(P3.0)端发生一个“1”到“0”的跳变。
先接收起始位,然后依次将采样RXD端并将数据移入移位寄存器中。
若满足条件RI=0且SM2=0或接收到停止位,则将前8位数据送入SBUF并置位RI;如果上述条件不满足,则数据丢失。
(3)波特率的设定
串口方式1的波特率是可变的,由定时器T1的溢出率决定:
(2.2)
其中,SMOD为PCON寄存器最高位的值。
溢出率为溢出周期的倒数,假定计数初值为X,则计数溢出周期为
(2.3)
其中,fosc为晶振频率。
则波特率计算公式为:
(2.4)
由波特率算出计数初值,以便进行定时器的初始化。
初值X确定如下:
(2.5)
2.3显示部分
该部分由锁存器74HC573与数码管构成,单片机通过两片74HC573分别对共阴极数码进行位选和段选。
第三章软件设计
无线数据传输主要由无线数据收发器NRF24L01、STC89C52RC单片机、显示器和按键组成,收发器与STC89C52RC间用串行口通信。
整个系统的各个部分都是服务于无线数据传输这个目的。
所以,在整个系统的软件设计中,无线数据的传输是最为重要的。
这里使用C语言编写单片机控制程序。
3.1主程序流程图
当单片机上电开始执行之后,对液晶和单片机寄存器进行初始化,同时设置串口控制字及波特率,接着进入键盘扫描程序和接收程序。
若有某个按键按下,则执行相应的键盘子程序;若单片机判断接收到数据,则开始进行CRC校验,如果数据正确就通过液晶显示传送的信息。
主程序流程图见图3-1。
图3-1主程序流程图
3.2数据收发子程序流程图
单片机STC89C52控制nRF2401的收发状态、完成编解码等工作。
nRF2401芯片“PWR-UP”端接高电平,“FREQ”端接低电平,分别表示系统在上电后始终处于“正常工作模式”和“工作频道为通道1”。
单片机STC89C52控制nRF2401,使其一直为接收状态。
当按键4按下时,STC89C52接收到输入的低电平信号,从脚送出高电平至P1.0脚,使nRF24L01进入发射状态。
数据收发子程序流程图见图3-2。
图3-2数据收发子程序流程图
3.3键盘子程序流程图
下图为键盘子程序流程图,此流程图的含义是:
当有按键按下时,程序开始进行判断是哪个按键按下,判断完毕后则转向相应的键处理子程序,进行字符的输入或命令的处理,并通过按键4把要发送的数据进行CRC校验编码,再把编码后的数据发送出去。
图3-4键盘子程序流程图
第四章测试结果及分析
4.1硬件电路测试
本设计中将控制模块和无线射频模式分开设计,控制模块通过一只单排7脚的接口控制射频模块,测试的步骤如下:
(1)将控制模块和无线射频模块焊好,检查确认无虚焊、粘焊;
(2)先对控制模块上电进行测试,主要是测试控制模块的串口能否收发数据,测试方法是将控制模块的串口与PC机的串口通过RS232标准相连接,并将串口的程序写到STC89C52上,然后用串口测试软件测试,如果串口能收发数据,便可开始对无线射频模块进行测试;
(3)将无线收发模块与控制模块连接起来,上电进行测试,按照程序,上电时处于接收状态,看是否与程序吻合;
(4)确认射频模块上电处于接收状态后,可测试nRF2401的第4管脚是否为1.1V左右,如果是,则说明VCO电感设计合理,否则要重新设计PCB板,此外,nRF401在没有数据接收时,仍会自动从DOUT发送随机数据,使用万用表进行测试时,该引脚电压应为2.5V左右。
4.2系统测试
4.2.1测试方法
(1)首先让电路正常工作,把接收器放在一定的位置,将发射器从远处逐渐靠近接收器,可测到传送的最远距离。
(2)在距离接收器一定的距离时,间隔一段时间就发送数据信息,可测出接收器的接收灵敏度。
(3)比较发射器和接收器的数据显示是否相同,以测试传输数据的正确性。
4.2.2功能测试及分析
由于无线通信环境的不确定性,各种环境下的传输效果是不尽相同的,路径损耗、建筑物影响、人体影响、外界干扰、多径现象和周围环境的吸收等都会对传输的距离产生一定的影响,只能在一个给定的条件下进行测试和评估。
因此,分别选择了不同的试验场地来进行实验。
(1)当建筑物很多的时候,数传模块两端均离地面1.5m(2.0m)高时,能够达到的最佳通信距离为5~10m;接收灵敏度为2~3秒;当发送端发送MESSAGE时,接收端能准确显示MESSAGE这段英文字符。
(2)在空旷场地,数传模块两端均离地面1.5m高时,最远的通信距离能够达到50m;接收灵敏度为3~5秒;当发送端发送字母A时,接收端能准确显示。
但测试中的通信距离与数据手册上的说明相差较大,原因可能源于调谐天线。
在实验中发现,当有人员走动或其它信号出现的时候,通信的距离会变得不稳定,这是由于天线是一个辐射器件,任何环境的改变都会影响天线的性能。
测试中还发现,在现场即使没有任何发送器,在nRF401的DOUT引脚上也会观察到微小的连续数字“噪声”。
后来通过研究发现,当接收器打开时,环境中的任何信号(数据或噪声)都会被天线捕捉到并被解调。
这就是所看到的系统中没有工作的发送器却存在“噪声”的原因。
通过对系统数据传输能力的测试,该系统发送和接收数据正确、可靠,各元件工作正常。
在硬件连接正确的基础上,利用nRF2401进行串行数据接收及发送,收到了较好效果。
结论
此次设计将应用于无线通信领域,并且针对当前市场上无线产品的不足进行了改进。
本文根据nRF2401的特点,提出了一种将其应用无线数据收发系统的实现方案。
此方案采用了较完善的软硬件设计和抗干扰措施,保证了系统工作的安全性和可靠性,是一种较好的设计思路,具有通用性,便于投入实际应用。
并且只要稍作改动就可以应用到小区传呼、工业数据采集、自动读表、警报和安全系统、无线键盘、无线操纵杆、家庭自动化、遥测和玩具等其他一些短距离无线通信领域,实现无线数据的双向传输,具有较好的市场应用价值。
参考文献
[1]黄智伟.无线数字收发电路设计,第2版,电子工业出版社,2004年,253-269.
[2]WUXunwei,HANGGuoqiang.LowpowerDCcircuitsemployingACpowersupply,SCIENCEINCHINA(INFORMATIONSCIENCES),2002,Vol.45No.3,232.
[3]苗长云,沈保锁,窦晋江等.现代通信原理,第1版,电子工业出版社,2005年,174-177.
[4]BehrouzForouzan.IntroductiontoDataCommunicationsandNetworking,FirstEdition,mechanicindustrybookconcern,1999,121-125.
[5]KavehPahlavan.NordicnRF401ProductSpecification,Nordiccorporation,2000,36.
[6]NigelBrooke.串行数据标准的选择与使用,电子产品世界,2000年,10月,31-32.
[7]RichardG.lyons.UnderstandingDigitalSignalProcessing,BradfordUniversity,2001,36-37.
[8]Tugal.D.A,Tugal.0.