无线温度采集系统设计.docx
《无线温度采集系统设计.docx》由会员分享,可在线阅读,更多相关《无线温度采集系统设计.docx(16页珍藏版)》请在冰豆网上搜索。
无线温度采集系统设计
无线温度采集系统设计
1原理
无线温度采集系统是一种基于射频技术的无线温度检测装置。
本系统由传感
器和接收机,以及显示芯片组成。
传感器部分由数字温度传感器芯片18B20,
单片机89S52,低功耗射频传输单元NRF905和天线等组成,传感器采用电源
供电;接收机无线接收来自传感器的温度数据,经过处理、保存后在LCD1602
上显示,所存储的温度数据可以通过串行口连接射频装置与接收端进行交换。
无线温度的采集主要基于单线数字温度传感器DS18B20芯片。
Dallas半导
体公司的单线数字温度传感器DS18B20是世界上第一片支持“一线总线”接口
的温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,
为测量系统的构建引入全新概念。
DS18B20支持“一线总线”接口,测量温度范
围为-55C~+125℃,在-10~+85℃范围内,精度为±0.5(。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场
温度测量,支持3V~5.5V的电压范围,DS18B20可以程序设定9~12位的分
辨率,精度为±0.5°C。
数字单总线温度传感器是目前最新的测温器件,它集温度测量,A/D转换于
一体,具有单总线结构,数字量输出,直接与微机接口等优点。
既可用它组成单
路温度测量装置,也可用它组成多路温度测量装置,文章介绍的单路温度测量装
置已研制成产品,产品经测试在-10C-70c间测得误差为0.25C,80c勺得05c
时误差为0.5℃,当T>105℃误差为增大到1℃左右。
温度数据的无线传输主要是基于低功耗射频传输单元NRF905芯片。
nRF905是挪威NordicVLSI公司推出的单片射频收发器,工作电压为1.9〜3.6V,32弓I脚QFN封装(5X5mm),工作于433/868/915MHz三个ISM(工业、科学和医学)
频道,频道之间的转换时间小于650us。
nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器,ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。
此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。
nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率放大器等模块。
经过无线传输后,温度数据信息将在1602液晶显示芯片上进行显示,1602液晶显示芯片采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影’;使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
RW为读
写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
D0~D7为8位双向数据线。
本系统的温度采集与显示,无线的传输与对比均由单片机89S52来控制完成。
相比较而言ATMEL公司的89S51更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为ATMELAT89xx做的编程器均带有这些功能。
显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。
写入单片机内的程序还可以进行加密,这又很好地保护了我们的劳动成果。
系统原理框图(略)。
系统工作原理及详细流程。
首先,打开电源后,本系统由单片机89S52向单线数字温度传感器DS18B20
芯片发出指令进行测温,DS18B20内部结构主要由四部分组成:
64位光亥ijROM、
温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器
DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
DS18B20高速暂存器共9个存存单元,如表所示:
序号
寄存器名称
作用
序号
寄存器名称
作用
0
「温度低字节[
以16位补码形式存放
4、5
保留字节1、2
1
[温困IN]
6
计数器余值
2
IH/用户字节1
存放温度上限
7
计数器/C
3
HL/用户字节2
存放温度卜-限
8
CRC
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的
地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码
(CRC=X8+X5+X4+1)。
DS18B20中的温度传
感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进
制补码读数形式提供,以0.0625C/LSB形式表达,其中S为符号位。
12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于
0.0625即可得到实际温度
高8
S
S
S
S
S
26
25
24
[立
低8
位
23
22
21
20
2-1
2-2
2-3
2-4
DS18B20温度传感器的存储器:
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易
失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。
第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
第六、七、八个字节用于内部计算。
第九个字节是冗余检验字节。
低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为00R1和R0用来
设置分辨率,如下表所示:
(DS18B20出厂时被设置为12位)
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16〜60微秒左右,后发出60〜240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,
GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、
GND接地,I/O接单片机I/O。
无论是内部寄生电源还是外部供电,I/O口线要接
5KQ左右的上拉电阻。
DS18B20有六条控制命令,如表所示:
指令
约定代码
操作说
明
温度转换
44H
启动DS18B20进行温度转换
读暂存器
BEH
读暂存器9个字节内容
写暂存器
4EH
将数据写入暂存器的TH、TL字节
复制暂存器
48H
把暂存器的TH、TL字节写到E2RAM中
重新调
E2RAM
B8H
把E2RAM中的TH、TL字节写暂存器
TH、TL字节
读电源供电方式
B4H
启动DS18B20发送电源供电方式的信号
给主CPU
单片机对DS18B20的访问流程是:
先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。
DS18B20每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
然后数据被传输至单片机89S52,八位数据分两次传输,再由单片机编程为可以由数码管显示的四位数据,头一位为正负温度数据,后三位为带小数点的当前温度。
数据也被送至低功耗射频传输单元NRF905进行无线传输。
应注意一点,51单片机有一个全双工的串行通讯口,所以单片机和NRF905之间进行串口通讯。
进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,
但是还是用专用芯片更简单可靠。
我们采用了三线制连接串口,也就是说和
NRF905的9针串口只连接其中的3根线:
第5脚的GND、第2脚的RXD、第3脚的TXD。
这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所
示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15
脚和单片机的20脚连接。
nRF905有两种工作模式和两种节能模式。
两种工作模式分别是
ShockBurstTM接收模式和ShockBurstTM发送模式,两种节能模式分别是关机
模式和空闲模式。
nRF905的工作模式由TRX_CE、TX_EWR_P三个引脚决定。
与射频数据包有关的高速信号处理都在nRF905片内进行,数据速率由微控
制器配置的SPI接口决定,数据在微控制器中低速处理,但在nRF905中高速发
送,因此中间有很长时间的空闲,这很有利于节能。
由于nRF905工作于
ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。
在ShockBurstTM接收模式下,当一个包含正确地址和数据的数据包被接收
到后,地址匹配(AM)和数据准备好(DR)两引脚通知微控制器。
在ShockBurstTM发送模式,nRF905自动产生字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。
由以上分析可知,nRF905的ShockBurstTM
收发模式有利于节约存储器和微控制器资源,同时也减小了编写程序的时间。
下
面具体详细分析nRF905的发送流程和接收流程。
典型的nRF905发送流程分以下几步:
A.当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905,SPI接口的速率在通信协议和器件配置时确定;
B.微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurstTM发送模式;
C.nRF905的ShockBurstTM发送:
l射频寄存器自动开启;
l数据打包(加字头和CRC校验码);
l发送数据包;
l当数据发送完成,数据准备好引脚被置高;
D.AUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低;
E.当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。
ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和
TX_EN引脚是高或低,发送过程都会被处理完。
只有在前一个数据包被发送完
毕,nRF905才能接受下一个发送数据包。
接收流程
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继续接收该数
据包还是进入另一个工作模式。
节能模式
nRF905的节能模式包括关机模式和节能模式。
在关机模式,nRF905的工作电流最小,一般为2.5uA。
进入关机模式后,nRF905保持配置字中的内容,但不会接收或发送任何数据。
空闲模式有利于减小工作电流,其从空闲模式到发送模式或接收模式的启动时
间也比较短。
在空闲模式下,nRF905内部的部分晶体振荡器处于工作状态。
nRF905在空闲模式下的工作电流跟外部晶体振荡器的频率有关。
器件配置
所有配置字都是通过SPI接口送给nRF905。
SIP接口的工作方式可通过SPI指令进行设置。
当nRF905处于空闲模式或关机模式时,SPI接口可以保持在工作状态。
SPI接口配置
SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器
和接收数据寄存器5个寄存器组成。
状态寄存器包含数据准备好引脚状态信息和
地址匹配引脚状态信息;射频配置寄存器包含收发器配置信息,如频率和输出功
能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含
待发送的数据包的信息,如字节数等;接收数据寄存器包含要接收的数据的字节
数等信息。
射频配置
射频寄存器的各位的长度是固定的。
然而,在ShockBurstTM收发过程中,
TX_PAYLOAD、RX_PAYLOAD、TX_ADDRESS和RX_ADDRESS4个寄存器
使用字节数由配置字决定。
nRF905进入关机模式或空闲模式时,寄存器中的内
容保持不变。
nRF905通过SPI接口和微控制器进行数据传送,通过ShockBurstTM收发模式进行无线数据发送,收发可靠,使用方便。
数据经过无线传输及接收后再被传输至接受端的89S52单片机中,然后再由单
片机将数据转化为可以由液晶显示板1602显示的数据。
数据被传至1602液晶显示芯片,进行显示。
1602采用标准的16脚接口,其中:
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS
和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7〜14脚:
D0〜D7为8位双向数据线。
第15脚:
接+5V
第16脚:
接GND
1602液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模
块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示
字符地址,也就是告诉模块在哪里显示字符。
最后通过液晶显示屏和数码管的温度数据对比,判断是否可以进行无线的
温度传输数据是否正确。
2无线温度采集系统的软硬件设计
基于DS18B20的温度测量装置:
温度传感器DS18B20将被测环境温度
转化成带符号的数字信号(以十六位补码形式,占两个字节),输出脚I/O
直接与单片机的P1.1相连,R1为上拉电阻,传感器采用外部电源供电。
89S51
是整个装置的控制核心,89S51内带1K字节的FlashROM,用户程序存放
在这里。
显示器模块由四位一体的共阳数码管和4个9012组成。
系统程序
分传感器控制程序和显示器程序两部分,传感器控制程序是按照DS18B20
的通信协议编制。
系统的工作是在程序控制下,完成对传感器的读写和对温
度的显示。
具体的电路图如下:
显示模块
温度采集模块
的况
3系统调试与性能分析
我们在元器件的布局方面,把相互有关的元件放得比较近,例如:
晶振、
单片机的时钟输入端都易产生噪音,在放置元件时的时候把它们靠近些。
对于那
些易产生噪声的器件、小电流电路、大电流电路、开关电路等,我们尽量使其远
离单片机的逻辑控制电路和存储电路(ROM、RAM),更加有利于抗干扰,提高电路工作时的可靠性!
我们的地线应构成闭环形式,提高了电路的抗干扰能力。
我们也安装了三极管
7805进行稳压,是我们的电路有稳定的+5V电源。
我们在布置电源线方面根据电
流的大小尽是加粗直线宽度,在布线进还使电源线、地线的走线方向与数据线的
走线方向一致,在布线工作的,用地线将电路板的底层没有走线的地方铺满,因
为有助于增强电路的抗干扰能力。
我们选用11.0592MHZ的晶振,因为这样有利于得到没有误差的波特率。
特
别是当与单片机进行通信的话,选用这种晶振比较好。
由于单线数字温度传感器DS18B20,测温相当准确,我们主要时间花在了,
单片机软件程序的编辑和调试以及电路模块的制作方面。
在使用nRF905进行无线传输时,使用的程序就是模块自带的程序,我们所
要做的就是进行稍许修改,进行调用函数。
在进行串口转换时,要注意的就是与无线模块对接时,单片机的DB9的2,
3口所对应的是无线传输模块的3,2口,因此,在焊接单片机的DB9接口时,
与电路图的2,3脚要相互交换连接。
4总结
我们通过这次试验,更加深入的了解了温度传感器,无线传输模块,以及
51单片机的结构功能和具体应用,也使我们对电路PCB板有了更深的认识,开
阔了我们的眼界,丰富了我们的知识,增长了我们的见识。
在老师和同学们的帮助下,我们完成了本次试验,我们的无线温度采集系统,
可以实现温度的无线采集,并且相当精确。
我们的电路板虽然简单,没有运放等
元件,但可以基本上完成此系统的任务,在电源的稳定,二极管发光,和电路的
焊接方面,我们也相应的补充改进了我们的设计方案。
由于我们组的成员之前都没有学习过单片机,此次创新设计实验,能在这么
短的时间内完成,电路设计,焊接,程序设计,调试等工作,已属不易,为此,
很满意此次的成绩。
当然,我们的电路还有许多不足之处,在老师的帮助下,我们会在以后的学
习生活中多加改进。
感谢学校给我们这次宝贵的试验机会,感谢老师以及同学对
我们的帮助,我们以后会做得更好!
参考文献
[1]楼然苗李光飞《51系列单片机设计实例》北京航空航天大学出版社
[2]《nRF905使用手册》
[3]《18B20使用介绍》