基于单片机的无线温湿度采集系统设计有protel源图ppt软件中英文翻译开题报告任务书docWord文档下载推荐.docx
《基于单片机的无线温湿度采集系统设计有protel源图ppt软件中英文翻译开题报告任务书docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的无线温湿度采集系统设计有protel源图ppt软件中英文翻译开题报告任务书docWord文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
通常,要实现温湿度测量和自动控制,监控室与现场之间必须敷设大量的电缆,这是一个麻烦的问题。
本文提
出采用无线温湿度测量的方案,不必敷设电缆,可以节省费用和时间。
该采集系统是以AT89S52芯片为主要,利用数字式温湿度传感器SHT10进行收集,将收集数据传给单片机AT89S52,经过处理从无线发送模块nRF905发射出去,单片机通过模拟SPI口实现与nRF905之间的通信,因为nRF905兼具发射和接收功能,经过一定距离的通信,接受模块通过NRF905将数据传给AT89S52,单片机经处理后,将数据传给显示屏LCD1602.完成无线数据采集与发送。
关键词:
nRF905AT89S52AHT10
1引言
温度、湿度是工农业生产的主要环境数据,在工农业生产实践中占有重要地位,比如湿度大温度高的话会使粮食发芽,腐败,有可能还会导致二氧化碳的增加,使进入的工人窒息如果粮食发芽,会导致温度升高,从而发生火灾等。
所以对其进行适时准确的测量具有重要意义。
而传统的温湿度传感器需通过较复杂的电路才能将温度信号转化为数字信号,且远距离传输会引起较大的误差。
本系统采用单总线数字温湿度传感器芯片SHT10,直接将温湿度变为数字信号,配合单片机及无线通信模块nRF905进行无线数据传输,达到实时采集的目的。
利用单片机对温、湿度控制具有控温、湿精度高、功能强、体积小、价格低,简单灵活等优点,很好的满足了工艺要求。
本文介绍了利用AT89S52对温湿度进行智能化采集的过程。
2设计要求
温湿度的测量在仓库管理,生产制造,科学研究以及日常生活中被广泛应用。
传统的温湿度测量采用有线测控系统,实施网络布线工程,大大增加了系统成本,降低了系统灵活性,可维护性与可扩展性。
把无线通信技术应用到温湿度测量系统中,由传感器实时采集各节点处温湿度的信息,经处理后通过无线数据采集系统将温湿度信息传输到监控终端,从而实现集成化,低成本和易操作的目的。
本设计是实现温度和湿度的测量和实时监控,通过单片机AT89S52直接连接传感器,将测量得到的温度和湿度数据显示在液晶屏上。
上位机的数据经过无线传输及显示后再被传输至接受端的AT89S52,由单片机将数据转化为可以由液晶显示板1602显示的数据。
3系统总体方案
无线温湿度采集系统是一种基于射频技术的无线湿温度检测装置。
本系统由传感器和接收机,以及显示芯片组成。
传感器部分由数字温湿度度传感器芯片SHT10,单片机AT89S52,低功耗射频传输单元nRF905和天线等组成。
传感器采用电源供电,接收机接收来自传感器的温度数据,经过处理、保存后在LCD1602上显示,所存储的温度数据可以通过串行口连接射频装置与接收端进行交换。
单片机对nRF905的对外接口进行SPI读写操作,以此来控制nRF905的工作模式以及相关收发数据的操作,从而完成无线数据传输。
nRF905
温湿度M433MHZM
传感器C无线发射无线接收C液晶显示
电源UU
采集模块接收模块
Preamble
Address
Pay_Load
CRC
32bit
图1系统通讯方式及总体框图
4采集模块硬件电路设计
本系统采用AT89S52单片机作为主控制器,显示单元采用LCD1602液晶显示,通过温湿度度传感器SHT10实现温湿度的采集,通过射频芯片nRF905实现无线数据传输和接收。
采集模块框图2所示。
SHT10传感器M
C发送模块
电源U
图2采集模块框图
4.1电源模块的设计
输出+5V直流电源为设计中各个分电路、器件供电。
如图3所示。
图3电源模块电路图
4.2SHT10温湿度传感器
传统的温湿度传感器将温湿度转换成可以测量的电压或电容进行计算,虽然价格便宜,但精度不高,而且电路复杂,需要通过A/D转换器转换才能将电信号转换成数字信号。
而数字式传感器测量得到的是数字量,可以直接与单片机相连。
因此本设计传感器选择的是数字式温湿度传感器SHT10。
瑞士sensiron司推出了shtxx单片数字温湿度集成传感器,采用CMOS过程微加工专利技术,确保产品具有极高的可靠性和出色的长期稳定性,该传感器由两个电容式聚合体测湿元件和一个隙式测温元件组成,并与一个14位A/D转换器以及一个2-wire数字接口在单芯片中无缝结合,使得该产品具有功耗低,反应快,抗干扰能力强等优点。
图4温湿度采集模块
单片机与SHT10接口电路部分:
SHT10的SCK口和DATA口分别与单片机的P1.6口和P1.7口连接,DATA需要一个外部的上拉电阻(4.7kΩ)将信号提拉至高电平,只有当DATA为高电平时,SHT10才开始工作,如图4所示。
4.3AT89S52芯片介绍
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89S52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单、可靠。
用AT单片机构成最小系统时,只要将单片机接上时钟电路和复位电路即可,如图AT89S52单片机最小系统所示。
由于集成度的限制,单片机最小应用系统只能作一些小型的控制单元。
其应用特点:
①有可供用户使用的大量I/O口线;
②内部存储器容量有限;
③应用系统开发具有特殊性。
图5单片机引脚图
4.3.1时钟电路
AT89S52虽然有内部振荡电路,但要形成时钟,必须外部附加电路。
AT89S52单片机的时钟产生方法有两种,一种是内部方式,利用时钟内部的振荡电路产生时钟信号;
另一种是外部方式,时钟信号由外部引入。
本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。
本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振电路。
振荡晶体可以在1.2MHZ到24MHZ之间选择,常用的晶振频率有6MHZ、12MHZ和11.0592MHZ。
电容CX1和CX2主要是帮助起振,称为谐振电容,电容值无严格要求,但电容的取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到100pF之间取值,当时钟频率为12MHZ时典型值为30pF。
所以本设计中振荡晶体采用12MHZ,电容选择30pF。
4.3.2复位电路
AT89S52的复位是由外部的复位电路实现的。
复位引脚RST通过一个斯密特触发器来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
图6单片机最小系统
4.4nRF905功能的实现
nRF905单片无线收发器工作由一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体震荡器和一个调节器组成。
ShockBurst工作模式的特点是自动产生前导码和CRC,可以很容易通过SPI接口进行编程配置。
nRF905系统原理图见附录C。
4.4.1nRF905的接口
nRF905主要包括三种接口:
1)、模式控制接口:
该接口由PWR、TRX_CE、TX_EN组成控制由nRF905组成的高频头的四种工作模式:
掉电和SPI编程模式;
待机和SPI编程模式;
发射模式;
接收模式。
2)、SPI接口:
SPI接口由CSN、SCK、MOSI以及MISO组成。
在配置模式下单片机通过SPI接口配置高频头的工作参数;
在发射/接收模式下单片机SPI接口发送和接收数据。
3)、状态输出接口:
提供载波检测输出CD,地址匹配输出AM,数据就绪输出DR。
表1nRF905的引脚说明
管脚
名称
管脚功能
说明
1
VCC
电源
电源+3.3—3.6VDC
2
TX_EN
数字输入
TX_EN=1TX模式TX_EN=0RX模式
3
TRX_CE
使能芯片发射或接收
4
PWR_UP
芯片上电
5
uCLK
时钟输出
本模块该引脚废弃不用,向后兼容
6
CD
数字输出
载波检测
7
AM
地址匹配
8
DR
接收或发射数据完成
9
MISO
SPI接口
SPI输出
10
MOSI
SPI输入
11
SCK
SPI时钟
12
CSN
SPI使能
13
GND
地
接地
14
4.4.2nRF905的工作模式
nRF905有两种工作模式和两种节能模式。
两种工作模式分别是ShockBurstTM接收模式和ShockBurstTM发送模式,两种节能模式分别是关机模式和空闲模式。
nRF905的工作模式由TRX_CE、TX_EN、PWR_UP三个引脚决定。
表2nRF905的工作模式
工作模式
X
掉电和SPI编程
Standby和SPI编程
ShockBurstEX
ShockBurstTX
与射频数据包有关的高速信号处理都在nRF905片内进行,数据速率由微控制器配置的SPI接口决定,数据在微控制器中低速处理,但在nRF905中高速发送,因此中间有很长时间的空闲,这很有利于节能。
由于nRF905工作于ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。
在ShockBurstTM接收模式下,当一个包含正确地址和数据的数据包被接收到后,地址匹配(AM)和数据准备好(DR)两引脚通知微控制器。
在ShockBurstTM发送模式,nRF905自动产生字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。
由以上分析可知,nRF905的ShockBurstTM收发模式有利于节约存储器和微控制器资源,同时也减小了编写程序的时间。
(1)nRF905的发送流程
A.当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905,SPI接口的速率在通信协议和器件配置时确定;
B.微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurstTM发送模式;
C.nRF905的ShockBurstTM发送:
射频寄存器自动开启;
数据打包(加字头和CRC校验码);
发送数据包;
当数据发送完成,数据准备好引脚被置高;
D.AUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低;
E.当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。
ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。
只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。
(2)nRF905的节能模式
nRF905的节能模式包括关机模式和空闲模式。
在关机模式,nRF905的工作电流最小,一般为2.5uA。
进入关机模式后,nRF905保持配置字中的内容,但不会接收或发送任何数据。
空闲模式有利于减小工作电流,其从空闲模式到发送模式或接收模式的启动时间也比较短。
在空闲模式下,nRF905内部的部分晶体振荡器处于工作状态。
nRF905在空闲模式下的工作电流跟外部晶体振荡器的频率有关。
4.4.3器件配置
所有配置字都是通过SPI接口送给nRF905。
SIP接口的工作方式可通过SPI指令进行设置。
当nRF905处于空闲模式或关机模式时,SPI接口可以保持在工作状态。
(1)SPI接口配置
SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。
状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息;
射频配置寄存器包含收发器配置信息,如频率和输出功能等;
发送地址寄存器包含接收机的地址和数据的字节数;
发送数据寄存器包含待发送的数据包的信息,如字节数等;
接收数据寄存器包含要接收的数据的字节数等信息。
(2)射频配置
射频寄存器的各位的长度是固定的。
然而,在ShockBurstTM收发过程中,TX_PAYLOAD、RX_PAYLOAD、TX_ADDRESS和RX_ADDRESS4个寄存器使用字节数由配置字决定。
nRF905进入关机模式或空闲模式时,寄存器中的内容保持不变。
nRF905通过SPI接口和微控制器进行数据传送,通过ShockBurstTM收发模式进行无线数据发送,收发可靠,使用方便。
4.4.4nRF905供电电源
另外,单片机的工作电压为5V,本次设计提供的电源也为5V,而射频芯片nRF905的工作电压在3.3V到3.6V之间,因此必须要进行电压转换,需要用一个电压转换芯片AMS1117—3.3。
图7电压转换电路
5接收模块硬件电路设计
nRF905接收上位机发射的数据,将其传输至下位机的LCD1602显示温度和湿度,下面将主要介绍nRF905的接收过程和液晶显示电路。
M
无线接收模块C温湿度显示
U
图8接收模块电路框图
5.1nRF905的接收流程
A.当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模式;
B.650us后,nRF905不断监测,等待接收数据;
C.当nRF905检测到同一频段的载波时,载波检测引脚被置高;
D.当接收到一个相匹配的地址,地址匹配引脚被置高;
E.当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高;
F.微控制器把TRX_CE置低,nRF905进入空闲模式;
G.微控制器通过SPI口,以一定的速率把数据移到微控制器内;
H.当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低;
I.nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。
当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,nRF905立即把其工作模式改变,数据包则丢失。
当微处理器接到地址匹配引脚的信号之后,其就知道nRF905正在接收数据包,其可以决定是让nRF905继续接收该数据包还是进入另一个工作模式。
5.2LCD1602液晶显示
本设计可以采用的显示芯片包括:
数码管、点阵、LCD1602、LCD12864,其中数码管价格便宜,但是只能显示数字,点阵显示的精度不够,LCD1602和LCD12864都是既能显示文字又能显示数字,LCD12864的屏幕较大价格也较贵,由于本次设计只要求显示温度和湿度,考虑到成本、精度、美观等方面的因素,本设计采用LCD1602显示,经过无线传输后,温、湿度数据信息将在1602液晶显示芯片上进行显示,1602液晶显示芯片采用标准的16脚接口。
LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3所示。
表3LCD1602引脚说明
编号
符号
引脚说明
VSS
电源地
D2
数据
VDD
电源正极
D3
VL
液晶显示偏压
D4
RS
数据/命令选择
D5
R/W
读/写选择
D6
E
使能信号
D7
D0
15
BLA
背光源正极
D1
16
BLK
背光源负极
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
图9LCD1602模块电路图
为了能够判断无线温湿度传输的数据是否正确,我们在数据采集模块也设计了一个液晶显示电路,通过采集模块和接收模块显示的温湿度数据对比,来判断传输是否准确。
将以上设计的传感器电路,液晶显示电路,无线传输和接收电路,单片机最小系统等各单元电路进行接口连接,构成无线温湿度数据采集系统的总体电路图。
见附录A和附录B。
6软件设计
本设计的数据采集系统是由采集模块和显示模块构成,程序设计主要有单片微处理器数据采集程序,NRF905发送和接收程序,液晶显示程序构成。
6.1采集模块软件设计
首先初始化SHT10将采集到的温湿度数据传送至单片机,通过单片机的P1.6和P1.7脚控制SHT10的SCK和DATA。
主机通过SPI接口向905配置寄存器写入信息并通过天线发送,同时将数据显示在LCD1602上。
初始化
测温湿度
判断SHT10Y
是否出错
N
显示温湿度
无线发射
延时100ms
图10采集模块主程序
在进行采集模块软件设计时,要将nRF905设置为发送状态,TRX_CE=0,TX_EN=1,如图12所示。
开始
1602和SHT10初始化
延时0.2S
读取温湿度
读取成功否?
SHT10通信重启
线性拟合数据
1602显示数据
延时0.8S
图11液晶显示流程图
SPI配置寄存器,TRX_CE为低,TX_EN为高
装载数据和对方地址
TRX_CE为高吗?
Y
进入发送模式
数据发送完成N
DR为高吗?
置低TRX_CE进入空闲状态
图12nRF905发送流程图
6.2接收模块软件设计
接收模块主要包括nRF905接收程序和液晶显示程序。
判断是否
有数据
接收数据
判断数据格N丢失
式是否正确
显示
图13接收模块主程序
与发送模块相同,在接收模块软件设计中,同样要先将nRF905设置为接收状态,TRX_CE=1,TX_EN=0,这样主机才能从nRF905读取数据。
SPI配置寄存器,TRX_CE为高,TX_EN为低,进入接收状态
载波监测引起CD为高?
接收地址数据
N地址匹配引脚AM为高?
CRC校验正确?
DR引脚置高,TRX_CE置低,进入空闲状态
主单片机从SPI读取数据
Y读取完毕N
图14nRF905接收流程图
6.3模拟SPI口的实现
由于单片机不存在SPI口,为了实现单片机与nRF905的通讯,需要进行模拟SPI口,SPI口的工作方式可以通过SPI指令进行设置。
首先必须设置器件的发送/接收模式才能保证有效的数据发送接收。
SPI口外围串行接口包括:
MOSI(主机写操作)、MISO(主机读操作)、SCK(串行时钟信号,由主机控制)、CSN(片选信号,低电平有效)。
SPI口的读写操作如图15和图1