完整版基于nRF2401模块的无线温度监测系统设计毕业论文Word格式.docx
《完整版基于nRF2401模块的无线温度监测系统设计毕业论文Word格式.docx》由会员分享,可在线阅读,更多相关《完整版基于nRF2401模块的无线温度监测系统设计毕业论文Word格式.docx(33页珍藏版)》请在冰豆网上搜索。
1.1.3温度传感方案4
1.1.4显示模块方案4
1.1.5单片机与PC机通信模块5
1.2系统最终方案5
2主要芯片介绍和系统模块硬件设计7
2.1AT89S527
2.1.1单片机控制模块11
2.2单片2.4GHznRF24L01无线模块12
2.2.1nRF24L01芯片概述12
2.2.2引脚功能及描述12
2.2.3工作模式13
2.2.4工作原理14
2.2.5配置字15
2.2.6nRF24L01模块原理图17
2.3温度传感器DS18B2017
2.3.1DS18B20管脚配置和内部结构18
2.3.2DS18B20的工作原理20
2.3.3DS18B20的硬件设计22
2.4显示模块23
2.4.1接收端显示模块23
2.4.2发送端显示模块24
2.5报警电路25
2.6接收端与PC机通信25
2.7电源电路设计26
2.8其他外围电路27
3系统软件设计28
3.1单片机软件设计28
3.1.1发送端软件设计28
3.1.2接收端软件设计29
4系统仿真30
4.1电源电路的仿真30
4.1.1+5V电源电路仿真30
4.2发送端温度采集与显示仿真30
4.3接收端LCD1602显示温度仿真31
5硬件电路板设计33
5.1系统硬件原理图33
5.1.1发送端原理图33
5.1.2接收端原理图34
5.2系统PCB图36
5.2.1发送端PCB图36
5.2.2接收端PCB图37
5.3硬件制作37
5.4硬件调试39
5.5硬件调试结果39
6nRF24L01应用于无线组网41
6.1无线组网的意义及研究价值41
6.2通信模型及协议设计41
总结43
致谢45
参考文献46
前言
随着社会的进步和生产的需要,利用无线通信进行温度数据采集的方式应用已经渗透到生活各个方面。
图1.1短距离无线通信的应用
在工业现场,由于生产环境恶劣,工作人员不能长时间停留在现场观察设备是否运行正常,就需要采集数据并传输数据到一个环境相对好的操控室内,这样就会产生数据传输问题。
由于厂房大、需要传输数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性差,出现错误换线困难。
而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。
在农业生产上,不论是温室大棚的温度监测,还是粮仓的管理,传统上都是采取分区取样的人工方法,工作量大,可靠性差。
而且大棚和粮仓占地面积大,检测目标分散,测点较多,传统的方法已经不能满足当前农业发展的需要。
当前的科技水平下,无线通信技术的发展使得温度采集测量精确,简便易行。
在日常生活中,随着人们生活水平的提高,居住条件也逐渐变得智能化。
如今很多家庭都会安装室内温度采集控制系统,其原理就是利用无线通信技术采集室内温度数据,并根据室内温度情况进行遥控通风等操作,自动调节室内温度湿度,可以更好地改善人们的居住环境。
以上只是简单列举几个现实的例子,在现实生活中,这种无线温度采集系统已经被成功应用于工农业、环境监测、军事国防、机器人控制等许多重要领域,而且类似于这种温度采集系统的无线通信网络已经被广泛的应用到民用和军事领域。
凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。
为此,需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信,这样的研究也变得更加有意义了。
本系统的设计采用了Nordic公司新推出的工作于2.4GHz频段NRF24L01射频芯片,由AT89S52单片机控制实现短距离无线数据通信。
该接口设计具有成本低、传输速率高、软件设计简单以及通信稳定可靠等特点。
整个系统有发送和接收二部分,通过NRF24L01无线数据通信收发模块来实现无线数据传输。
发送部分以单片机AT89S52为核心,使用温度转换芯片DS18B20实时采集温度并通过nRF24l01将采集的温度无线传送给接收部分,然后在LCD1602上显示,并通过串口发送到PC机上显示,通过蜂鸣器实现对温度过高或过低进行报警。
1系统方案分析与选择论证
1.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精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。
但其需要用到差分放大器放大和AD转换,需要原件多。
采用美国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机通信。
1.2系统最终方案
发送端:
发送端由温度传感器DS18B20,AT89S52单片机,nRF24L01无线射频模块,数码管显示模块和外设继电器组成。
图1.2发送端系统方框图
接收端:
接收端由AT89S52单片机,nRF24L01无线射频模块,LCD1602显示模块,报警电路和串口组成。
图1.3接收端系统方框图
2主要芯片介绍和系统模块硬件设计
2.1AT89S52
单片机是一种集成的电路芯块采用了超大规模技术把具有运算能力(如算术运算、逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(IO口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换及AD转换器等电路集成到一块单片机上,构成一个最小然而很完善的计算机系统。
这些电路能在软件的控制下准确快速的完成程序设计者事先规定的任务。
总的而言单片机的特点可以归纳为以下几个方面:
集成度高、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格比高、可靠性高这几个方面。
单片机有着微处理器所不具备的功能,它可以独立地完成现代工业控制所要求的智能化控制功能这就是单片机的最大特点。
然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微机控制系统。
它与单板机或个人电脑有着本质的区别,单片机属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使芯片具备特定的智能
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
AT89S51具有如下特点:
40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入输出(IO)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
引脚图如图2.1
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
图2.1单片机管脚图
(1)主要功能特性:
·
兼容MCS-51指令系统
8k可反复擦写(>
1000次)ISPFlashROM
32个双向IO口
4.5-5.5V工作电压
2个16位可编程定时计数器
时钟频率0-33MHz
全双工UART串行中断口线
256x8bit内部RAM
2个外部中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
(2)AT89S52单片机引脚介绍:
引脚如图2.1所示,以下是各引脚的说明。
VCC:
AT89S52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反向放大器输入端。
XTAL2:
系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统皆可以工作了,此外可以在两个引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
AT89S52的重置引脚,高电平工作,当要对晶片重置时,只要对此引脚点评提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EAVpp:
“EA”为英文“ExternalAccess”的缩写,表示存取外部程序代码之意,低电平动作,也就是说当引脚为低电平后,系统会调用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果使用8751内部程序空间时,引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
PORT0(P0.0―P0.7):
端口0是一个8位宽的开路电极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个IO端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做IO用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0―A7)及数据总线(D0―D7)。
设计者必须外加一个锁存器将端口0送出的地址锁住成为A0―A7,再配合端口2所送出的A8―A15合成一个完整的16位地址总线,而定位地址到64K的外部存储器空间。
PORT1(P1.0―P1.7):
端口1也是具有内部提升电路的双向IO端口,其输出缓冲器可以推动4个LSTTL负载,若将端口1的输出设为高电平,使是由此端口来输入数据。
如果是使用8052或是8032的话,P1.0又当作定时器2的外部缓冲输入脚,而P。
1可以有T2EX功能,可以做外部中断输入的触发引脚。
PORT2(P2.0―P2.7):
端口2是具有内部提升电路的双向IO端口,每一个引脚可以推动4个LS的TTL负载,同样地,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般IO端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8―A15,这个时候P2便不能当做IO来使用了。
PORT3(P3.0―P3.7):
端口3也具有内部提升电路的双向IO端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR,外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
2.1.1单片机控制模块
单片机控制模块由AT89S52最小系统组成,其中包括单片机,晶振电路和复位电路。
(1)、晶振电路
晶振电路由两个30pF电容和一个12MHz晶体振荡器构成,接入单片机的X1、X2引脚。
(2)、复位电路
单片复位端低电平有效。
单片机最小系统如图2.2:
图2.2单片机最小系统
2.2单片2.4GHznRF24L01无线模块
2.2.1nRF24L01芯片概述
nRF24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。
内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。
nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;
接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
nRF24L01主要特性如下:
GFSK调制;
硬件集成OSI链路层;
具有自动应答和自动再发射功能;
片内自动生成报头和CRC校验码;
数据传输率为lMbs或2Mbs;
SPI速率为0Mbs~10Mbs;
125个频道;
与其他nRF24系列射频器件相兼容;
QFN20引脚4mm×
4mm封装;
供电电压为1.9V~3.6V。
2.2.2引脚功能及描述
nRF24L01的封装及引脚排列如图所示。
各引脚功能如下:
图2.3nRF24L01封装图
CE:
使能发射或接收;
CSN,SCK,MOSI,MISO:
SPI引脚端,微处理器可通过此引脚配置nRF24L01:
IRQ:
中断标志位;
VDD:
电源输入端;
电源地;
XC2,XC1:
晶体振荡器引脚;
VDD_PA:
为功率放大器供电,输出为1.8V;
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为高