基于nRF24L01模块的无线通信系统设计文档格式.docx
《基于nRF24L01模块的无线通信系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于nRF24L01模块的无线通信系统设计文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
图短距离无线通信的应用
在工业现场,由于生产环境恶劣,工作人员不能长时间停留在现场观察设备是否运行正常,就需要采集数据并传输数据到一个环境相对好的操控室内,这样就会产生数据传输问题。
由于厂房大、需要传输数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性差,出现错误换线困难。
而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。
在农业生产上,不论是温室大棚的温度监测,还是粮仓的管理,传统上都是采取分区取样的人工方法,工作量大,可靠性差。
而且大棚和粮仓占地面积大,检测目标分散,测点较多,传统的方法已经不能满足当前农业发展的需要。
当前的科技水平下,无线通信技术的发展使得温度采集测量精确,简便易行。
在日常生活中,随着人们生活水平的提高,居住条件也逐渐变得智能化。
如今很多家庭都会安装室内温度采集控制系统,其原理就是利用无线通信技术采集室内温度数据,并根据室内温度情况进行遥控通风等操作,自动调节室内温度湿度,可以更好地改善人们的居住环境。
以上只是简单列举几个现实的例子,在现实生活中,这种无线温度采集系统已经被成功应用于工农业、环境监测、军事国防、机器人控制等许多重要领域,而且类似于这种温度采集系统的无线通信网络已经被广泛的应用到民用和军事领域。
凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。
为此,需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信,这样的研究也变得更加有意义了。
本系统的设计采用了Nordic公司新推出的工作于频段NRF24L01射频芯片,由AT89S52单片机控制实现短距离无线数据通信。
该接口设计具有成本低、传输速率高、软件设计简单以及通信稳定可靠等特点。
整个系统有发送和接收二部分,通过无线数据通信收发模块来实现无线数据传输。
发送部分以单片机AT89S52为核心,使用温度转换芯片DS18B20实时采集温度并通过nRF24l01将采集的温度无线传送给接收部分,然后在LCD1602上显示,并通过串口发送到PC机上显示,通过蜂鸣器实现对温度过高或过低进行报警。
1系统方案分析与选择论证
系统方案设计
1.1.1主控芯片方案
方案一:
采用传统的AT89S52单片机作为主控芯片。
此芯片价格便宜、操作简便,低功耗,比较经济实惠。
方案二:
采用TI公司生产的MSP430F149系列单片机作为主控芯片。
此单片机是一款高性能的低功耗的16位单片机,具有非常强大的功能,且内置高速12位ADC。
但其价格比较昂贵,而且是TPFQ贴片封装,不利于焊接,需要PCB制板,大大增加了成本和开发周期。
方案三:
采用宏晶科技有限公司的STC12C5A60S2增强型51单片机作为主控芯片。
此芯片内置ADC和SPI总线接口,且内部时钟不分频,可达到1MPS。
而且价格适中。
考虑到此系统需要不用到ADC,从性能和价格上综合考虑我们选择方案一,即用AT89S52作为本系统的主控芯片。
1.1.2无线通信模块方案
采用GSM模块进行通信,GSM模块需要借助移动卫星或者手机卡,虽说能够远距离传输,但是其成本较大、且需要内置SIM卡,通信过程中需要收费,后期成本较高。
采用TI公司CC2430无线通信模块,此模块采用Zigbee总线模式,传输速率可达250kbps,且内部集成高性能8051内核。
但是此模块价格较贵,且Zigbee协议相对较为复杂。
采用NRF24L01无线射频模块进行通信,NRF24L01是一款高速低功耗的无线通信模块。
他能传输上千米的距离(加PA),而且价格较便宜、,采用SPI总线通信模式电路简单,操作方便。
考虑到系统的复杂性和程序的复杂度,我们采用方案三作为本系统的通信模块。
1.1.3温度传感方案
采用AD590是美国ANALOGDEVICES公司的单片集成两端感温电流源。
AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。
但其需要用到差分放大器放大和A/D转换,需要原件多。
采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
经济,方便。
使用DS18B20线路简单,编程容易,但是比AD590精度低。
AD590还需要其它辅助电路,线路复杂,编程难度大,但是温度精确。
考虑到电路的设计,成本,还有多点通信,我们选择方案二,即用DS18B20作为本系统的温度传感器。
1.1.4显示模块方案
选择主控为ST7920的带字库的LCD12864来显示信息。
12864是一款通用的液晶显示屏,能够显示多数常用的汉字及ASCII码,而且能够绘制图片,描点画线,设计成比较理想的结果。
采用字符液晶LCD1602显示信息,1602是一款比较通用的字符液晶模块,能显示字符和数字等信息,且价格便宜,容易控制。
采用LED7段数码显示管显示,其成本低,容易显示控制,但不能显示字符。
综合以上方案,我们选择了经济实惠的字符液晶LCD1602来作为接收端的显示。
发送端用7段数码管显示。
1.1.5单片机与PC机通信模块
采用RS-232串口与PC机通信。
系统最终方案
发送端:
发送端由温度传感器DS18B20,AT89S52单片机,nRF24L01无线射频模块,数码管显示模块和外设继电器组成。
图发送端系统方框图
接收端:
接收端由AT89S52单片机,nRF24L01无线射频模块,LCD1602显示模块,报警电路和串口组成。
图接收端系统方框图
2主要芯片介绍和系统模块硬件设计
AT89S52
单片机是一种集成的电路芯块采用了超大规模技术把具有运算能力(如算术运算、逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换及A/D转换器等电路集成到一块单片机上,构成一个最小然而很完善的计算机系统。
这些电路能在软件的控制下准确快速的完成程序设计者事先规定的任务。
总的而言单片机的特点可以归纳为以下几个方面:
集成度高、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格比高、可靠性高这几个方面。
单片机有着微处理器所不具备的功能,它可以独立地完成现代工业控制所要求的智能化控制功能这就是单片机的最大特点。
然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微机控制系统。
它与单板机或个人电脑有着本质的区别,单片机属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使芯片具备特定的智能
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
AT89S51具有如下特点:
40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
引脚图如图
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
图单片机管脚图
(1)主要功能特性:
·
兼容MCS-51指令系统
8k可反复擦写(>
1000次)ISPFlashROM
32个双向I/O口
工作电压
2个16位可编程定时/计数器
时钟频率0-33MHz
全双工UART串行中断口线
256x8bit内部RAM
2个外部中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
(2)AT89S52单片机引脚介绍:
引脚如图所示,以下是各引脚的说明。
VCC:
AT89S52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反向放大器输入端。
XTAL2:
系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统皆可以工作了,此外可以在两个引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
AT89S52的重置引脚,高电平工作,当要对晶片重置时,只要对此引脚点评提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
“EA”为英文“ExternalAccess”的缩写,表示存取外部程序代码之意,低电平动作,也就是说当引脚为低电平后,系统会调用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果使用8751内部程序空间时,引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
PORT0(―):
端口0是一个8位宽的开路电极(OpenDrain)双向输出入端口,共有8个位,表示位0,表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0―A7)及数据总线(D0―D7)。
设计者必须外加一个锁存器将端口0送出的地址锁住成为A0―A7,再配合端口2所送出的A8―A15合成一个完整的16位地址总线,而定位地址到64K的外部存储器空间。
PORT1―:
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,若将端口1的输出设为高电平,使是由此端口来输入数据。
如果是使用8052或是8032的话,又当作定时器2的外部缓冲输入脚,而P。
1可以有T2EX功能,可以做外部中断输入的触发引脚。
PORT2―:
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,同样地,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8―A15,这个时候P2便不能当做I/O来使用了。
PORT3(―):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
:
RXD,串行通信输入。
TXD,串行通信输出。
INT0,外部中断0输入。
INT1,外部中断1输入。
T0,计时计数器0输入。
T1,计时计数器1输入。
WR,外部数据存储器的写入信号。
RD,外部数据存储器的读取信号。
2.1.1单片机控制模块
单片机控制模块由AT89S52最小系统组成,其中包括单片机,晶振电路和复位电路。
(1)、晶振电路
晶振电路由两个30pF电容和一个12MHz晶体振荡器构成,接入单片机的X1、X2引脚。
(2)、复位电路
单片复位端低电平有效。
单片机最小系统如图:
图单片机最小系统
单片nRF24L01无线模块
2.2.1nRF24L01芯片概述
nRF24L01是一款新型单片射频收发器件,工作于GHz~GHzISM频段。
内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。
nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;
接收时,工作电流只有mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
nRF24L01主要特性如下:
GFSK调制;
硬件集成OSI链路层;
具有自动应答和自动再发射功能;
片内自动生成报头和CRC校验码;
数据传输率为lMb/s或2Mb/s;
SPI速率为0Mb/s~10Mb/s;
125个频道;
与其他nRF24系列射频器件相兼容;
QFN20引脚4mm×
4mm封装;
供电电压为V~V。
2.2.2引脚功能及描述
nRF24L01的封装及引脚排列如图所示。
各引脚功能如下:
图nRF24L01封装图
CE:
使能发射或接收;
CSN,SCK,MOSI,MISO:
SPI引脚端,微处理器可通过此引脚配置nRF24L01:
IRQ:
中断标志位;
VDD:
电源输入端;
电源地;
XC2,XC1:
晶体振荡器引脚;
VDD_PA:
为功率放大器供电,输出为V;
ANT1,ANT2:
天线接口;
IREF:
参考电流输入。
2.2.3工作模式
通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式,如表所示。
待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;
待机模式2则是在当FIFO寄存器为空且CE=1时进入此模式;
待机模式下,所有配置字仍然保留。
在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。
表1:
nRF24L01四种工作模式
模式
PWR_UP
PRIM_RX
CE
FIFO寄存器状态
接收模式
1
-
发射模式
数据在TX
FIFO
寄存器中
1→0
停留在发送模式,直至数据发送完
待机模式2
TX
为空
待机模式1
无数据传输
掉电
2.2.4工作原理
发射数据时,首先将nRF24L01配置为发射模式:
接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;
若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。
如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX
FIFO中清除;
若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX
FIFO中数据保留以便在次重发;
MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。
最后发射成功时,若CE为低则nRF24L01进入空闲模式1;
若发送堆栈中有数据且CE为高,则进入下一次发射;
若发送堆栈中无数据且CE为高,则进入空闲模式2。
接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。
当接收方检测到有效的地址和CRC时,就将数据包存储在RX
FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。
若此时自动应答开启,接收方则同时进入发射状态回传应答信号。
最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。
在写寄存器之前一定要进入待机模式或掉电模式。
如下图,给出SPI操作及时序图:
图SPI读操作
图SPI写操作
2.2.5配置字
SPI口为同步串行通信接口,最大传输速率为10Mb/s,传输时先传送低位字节,再传送高位字节。
但针对单个字节而言,要先送高位再送低位。
与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。
相应的状态和数据信息是从MISO输出给MCU。
nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。
nRF24L01的配置寄存器共有25个,常用的配置寄存器如表2所示。
表2:
常用配置寄存器
地址(H)
寄存器名称
功能
00
CONFIG
设置24L01工作模式
01
EN_AA
设置接收通道及自动应答
02
EN_RXADDR
使能接收通道地址
03
SETUP_AW
设置地址宽度
04
SETUP_RETR
设置自动重发数据时间和次数
07
STATUS
状态寄存器,用来判定工作状态
0A~0F
RX_ADDR_P0~P5
设置接收通道地址
10
TX_ADDR
设置接收接点地址
11~16
RX_PW_P0~P5
设置接收通道的有效数据宽度
2.2.6nRF24L01模块原理图
nRF24L01单端匹配网络:
晶振,偏置电阻,去耦电容。
图nRF24L01单端50Ω射频输出电路原理图
温度传感器DS18B20
DALLAS最新单线数字温度传感器DS18B20简介新的"
一线器件"
体积更小、适用电压更宽、更经济Dallas半导体公司的数字化温度传感器DS1820是世界上第一片