智能温度变送器.docx
- 文档编号:24154072
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:29
- 大小:294.36KB
智能温度变送器.docx
《智能温度变送器.docx》由会员分享,可在线阅读,更多相关《智能温度变送器.docx(29页珍藏版)》请在冰豆网上搜索。
智能温度变送器
1绪论
1.1课题的背景及现状
温度是表征物体冷热程度的物理量。
在工农业生产和日常生活中,对温度的测量及控制始终占据着重要地位。
温度传感器应用范围应用范围之广、使用数量之大,也高居各类传感器之首。
目前,温度传感器正向着单片集成化、智能化、网络化和单片系统化的方向发展。
同时,随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展,这给人带来的方便也是不可否定的。
智能温度变送器在对高、低频干扰信号的抑制方面均有着优异表现,即使在大功率变频控制系统中依然能够可靠应用,同时,数字化技术的应用彻底克服了传统温度变送器线性差的缺点,符合IEC61000-4-4:
1995中所规定的第四类(恶劣工业现场)环境对产品的抗电磁干扰要求。
智能温度变送器输入单路或双路热电偶、热电阻信号,变送输出隔离的单路或双路线性的电流或电压信号,并提高输入、输出、电源之间的电气隔离性能。
智能温度变送器可以与单元组合仪表及DCS、PLC等系统配套使用,在油田、石化、制造、电力、冶金等行业的重大工程中有着广泛应用。
1.2课题研究目的和意义
本文将介绍一种基于单片机控制的智能温度变送器,除了可以实现单片机与PC机的通信以实现数字信号的变送外,还可以实现单片机与键盘显示独立控制,可以设置上下报警温度,当温度不在设置范围内时,可以报警。
同时保留4-20mA直流电流、1-5V直流电压两种模拟信号,以便于和现场仪表的接口。
为了对温度量进行远距离监视,更至是对其进行控制,我们需要先将温度采集后,通过现场总线将其输送到远处的PC机中,在对其进行各方面的处理,这里的智能温度变送器是一个典型的工程应用题目,实现难度不大,但工作量大,涉及的知识点多,对学生软硬件知识的一个综合锻炼.
1.3课题研究的发展趋势
本设计所介绍的智能温度变送器与传统的温度变送器相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于远距离控温使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。
3设计方案及实现
3.1系统的组成结构与工作原理
该方案是利用单片机控制温度传感器采集温度、控制LED数码管实时显示温度值,并由单片机去把温度数据传至计算机进行存储、显示。
温度测控系统的网络拓扑结构如图所示。
其工作过程为:
下位机的单片机定时采集温度传感器所感应到的被测对象的表面温度,并将采集的温度数据显示到数码管上,同时通过串口经过RS-485总线传送到上位机。
上位机收到下位机传送来的温度数据,在显示屏上显示,同时与上位机软件设置的告警温度阀值相比较,若高出,则在屏幕上进行告警提示,同时通过串口向下位机的单片机发送告警指令,单片机收到该指令后,控制蜂鸣器发音,进行告警提示。
3.2硬件电路设计
1)器件选型
(1)单片机。
单片机种类很多,许多厂家有自己的单片机系列产品,本项目应用中只是定时对温度传感器的数据进行采样,在数码管显示,功能相对简单,实时性不大强,运算量不大,因此选用8位单片机。
该应用还涉及单片机与上位机的串口通信,因此选用的单片机及还应有一个串口。
满足这两个条件的单片机很多考虑到价格和实验室已有的单片机集成开发环境和仿真器等因素,选用美国ATMEL公司生产的AT89C2051单片机。
AT89C2051是一个低电压,高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读Flash程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可为您提供许多高性价比的应用场合。
AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器,工作温度为-55。
C到+125。
C。
引脚说明:
VCC电源电压
GND地
端口1(Port1)
端口1是一个8位双向I/O口。
端口引线P1.2到P1.7提供内部上拉电阻。
P1.0和P1.1需要外接上拉电阻。
P1.0和P1.1也分别作为芯片级精准模拟比较器的正输入(AIN0)和负输入(AIN1)。
端口1输出缓冲器可吸收20mA的电流,可以直接驱动LED显示器。
当向端口1写入1的时候,它们可以作为输入。
当引线P1.2到P1.7用作输入并被外部拉低时,由于内部上拉电阻,它们将输出电流(IIL)。
当对闪存编程和检验时,端口1也接收代码数据。
端口3(Port3)
端口3引线P3.0至P3.5,P3.7是7个双向I/O口,带内部上拉电阻。
P3.6是一个硬接线的输入,它接到芯片级比较器的输出端,不能当作通用的I/O口使用。
端口3的输出缓冲器能吸收20mA的电流。
当端口3的引线被写入1时,它们由内部上拉电阻拉为高电平,可以用作输入。
作为输入时,如果端口3的引线被外部拉低,由于内部上拉电阻的作用,它们将输出电流(IIL)。
端口3也为AT89C2051的许多特殊功能服务,如下表:
端口号替代功能
P3.0RXD(串行输入口);P3.1TXD(串行输出口);P3.2INT0(外部中断0);P3.3INT1(外部中断1);P3.4T0(定时器0外部输入);P3.5T1(定时器1外部输入)
当对闪存编程和检验时,端口3也接收一些控制信号。
RST
复位输入。
当RST引线被置为高电平时,所有的I/O口复位为1。
当振荡器工作的时候,保持RST引线的高电平两个机器周期,将使单片机复位。
每个机器周期为12个振荡器或时钟周期。
XTA1:
反向振荡放大器和内部时钟工作电路的输入。
XTA2:
内部反向振荡放大器的输出。
振荡器的特性
XTAL1和XTAL2分别是反向放大器的输入和输出,该放大器可设置用作芯片级的振荡器,如图1所示。
石英晶振和陶瓷谐振器均可使用。
要使用外部时钟源来驱动单片机,XTAL2应该被留空,而从XTA1接入时钟信号,如图2所示。
由于通过一个两分频触发器输入到内部时钟电路,所以对外部时钟的占空比不作要求,但是必须注意最小和最大电压的高低时间规格。
(2)温度传感器
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点;他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读取,可分别在93.75ms和750ms内完成9位和12位的温度数字量转换,从DS18B20读出信息或写入信息仅需要一根数据线;读写温度、变换功率可来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,实际应用中不需要外部任何元器件即可实现测温,十分方便。
测量温度范围在-55。
C到+125。
C之间,在-10~+85°C范围内,精度为±0.5°C。
数字温度计的分辨率用户可以从9位到12位选择。
内部有温度上、下限告警设置内置A/D转换,温度数字量转换时间200ms(典型值)。
性能可靠,价格低。
DS18B20其内部结构框图如图14-2所示,由64位光刻ROM及串行接口,温度传感器、高低温触发器、配置寄存器、8位CRC发生器、电源检测及寄生电容等各部分组成。
64位光刻ROM是出厂前被光刻好的,它由8位产品系列号,48位产品序号和8位CRC编码组成,DS18B20的产品系列号均为28H,每个器件的48位产品序号各不相同,利用产品序号可以识别一线上的挂载的不同DS18B20器件。
图14-1DS18B20引脚图图14-2DS18B20内部结构框图
DSl820工作过程中的协议如下:
①初始化:
单总线上的所有处理均从初始化开始
②ROM操作命令:
总线主机检测到DSl820的存在便可以发出ROM操作命令,ROM操作命令如表14-1所示。
表14-1DS18B20的ROM操作命令
指令
代码
ReadROM(读ROM)
[33H]
MatchROM(匹配ROM)
[55H]
SkipROM(跳过ROM]
[CCH]
SearchROM(搜索ROM)
[F0H]
Alarmsearch(告警搜索)
[ECH]
③存储器操作命令:
在执行ROM操作命令后执行存储器操作命令,存储器操作命令如表14-2所示。
表14-2DS18B20的存储器操作命令
指令
代码
WriteScratchpad(写暂存存储器)
[4EH]
ReadScratchpad(读暂存存储器)
[BEH]
CopyScratchpad(复制暂存存储器)
[48H]
ConvertTemperature(温度变换)
[44H]
RecallEPROM(重新调出)
[B8H]
ReadPowersupply(读电源)
[B4H]
DS18B20高速暂存器共9个存储单元,其中序号为0和1的两个存储单元以补码的形式存放温度数字量。
在12位转化情况下温度高低字节存放形式及如表14-3所示。
二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。
表14-3DS18B20温度的高低字节存放
低8位TL
23
22
21
20
2-1
2-2
2-3
2-4
高8位TH
S
S
S
S
S
26
25
24
0
R1
R0
1
1
1
1
1
表14-4DS18B20配置寄存器
DS18B20的转换精度为9位到12位可设定,必须通过暂存器序号为4的配置寄存器进行设置,配置寄存器的各位如表14-4所示。
当R1R0=11时最高转换精度为12位分辨率,这时完成一次温度数字转换需要750ms的时间。
在12位分辨率下温度-数字量输出的关系表如表14-5所示。
表14-5温度-数据关系表表温度数据输出(二进制)数据输出(十六进制)
14-6温度分辨率和最大转换时间关系表
DS18B20的温度转换时间与分辨率相关,当温度转换的分辨率越高,转换需要的时间越长,其关系表如表14-6所示。
在12位分辨率下,最大转换时间需要750ms,而在9位分辨率下,最大转换时间只需93.75ms。
(3)数模转换A/D芯片ADC0832
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
学习并使用ADC0832可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。
芯片接口说明:
CS_片选使能,低电平芯片使能。
CH0模拟输入通道0,或作为IN+/-使用。
CH1模拟输入通道1,或作为IN+/-使用。
GND芯片参考0电位(地)。
DI数据信号输入,选择通道控制。
DO数据信号输出,转换数据输出。
CLK芯片时钟输入。
Vcc/REF电源输入及参考电压输入(复用)。
(4)串口总线RS-232
目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。
RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。
RS-232采取不平衡传输方式,即所谓单端通讯。
收、发端的数据信号是相对于信号地。
典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。
当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。
接收器典型的工作电平在+3~+12V与-3~-12V。
由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20Kbps。
RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3kΩ~7kΩ。
所以RS-232适合本地设备之间的通信。
九针串口示意图见图5-1所示:
具体每个针脚的功能表如表5-2所示:
针脚
功能
1
载波检测
2
接收数据
3
发送数据
4
数据终端准备完成
5
信号地线
6
数据准备完成
7
发送请求
8
发送清除
9
振铃指示
(5)串口驱动芯片MAX232
MAX232芯片是美信(MAXIM)公司专门RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
主要特点:
只需要单一+5V电源供电;片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-;功耗低,典型供电电流5mA;内部集成2个RS-232C驱动器;高集成度,片外最低只需4个电容即可工作
其引脚图如下5-5所示:
(6)LED数码管
LED数码显示器是由发光二极管显示字段的显示器件,单片机系统中通常使用8段LED数码显示器,其外形及引脚如图所示,由图可见8段LED数码显示器是由8个发光二极管组成。
其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用。
通过不同组合来显示各种数字,包括A~F在内的部分英文字母和小数点"."等字样。
LED数码显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起的,称为共阳极LED数码显示器;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED数码显示器。
单片机系统扩展LED数码管时多用共阳LED:
共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。
八段LED数码管段代码编码表(连线不同可有多种表):
字形
0
1
2
3
4
5
6
7
8
9
黑
共阳
0C0
0F9
0A4
0B0
99
92
82
0F8
80
90
0FF
共阴
3F
06
5B
4F
66
6D
7D
07
7F
6F
00
2)单元电路设计
(1)电源电路。
本系统要设计+5V的直流电源,电源的稳定性和抗干扰技术,为抗击市电电源的波动,电源变压器次级绕组电压取9V,留有较大的余量。
由于系统的整机电源负载较轻,在电源稳压块7805两端有约5V的压降,即使市电跌落30%也可保证有稳定的+5V输出。
7805两端与地之间并联0.1微法的电容,可滤去由电源引入的高频杂散噪波。
直流电源设计图如所示:
图直流电源设计图
(2)单片机电路。
我们选用的单片机AT89C2051的引脚如图:
要使单片机工作起来,要给单片机增加上电复位电路和外接晶振。
给AT89C2051加电时,需要对其进行一次复位操作。
复位操作将单片机的工作环境置成初始状态,并从程序的开始进行运行。
上电的瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平将逐渐下降。
RST引脚上高电平只要能够保持足够的时间(2个机器周期),单片机就可以进行复位操作。
该电路典型的电阻电容参数为:
晶振为12MHz时,电容为10uF,,电阻R2为8.2K;晶振为6MHz时,电容为22uF,电阻R2为1K。
在单片机运行期间,可以通过按键完成复位操作,晶振为6MHz时,电阻R1为200欧。
外接晶振与单片机内部的时钟振荡器一起组成完整的时钟频率发生电路,XTAL1为AT89C2051内部时钟振荡器的输入端,XTAL2为AT89C2051内部时钟振荡器的输出端,图中CRYXTAL为晶振,起到选择振荡频率的作用。
这里使用的时钟频率为11.0592MHz。
电容C1、C2为振荡补偿电容,起到放宽振荡频率,让时钟容易起振的作用。
(3)温度传感器电路设计
单线数字温度传感器DS18B20与单片机连接电路非常简单,引脚1(GND)接地,引脚3(VCC)接+5V电源,引脚2(DQ)接单片机输入/输出一个端口,电源+5V和信号线DQ之间接有一个4.7K的电阻。
这里DS18B20采集被控对象的实时温度并从单片机的P3.7口输入,R7为上拉电阻。
电路采用数字信号输出可提高信号抗干扰能力和温度测量精度。
电路工作电压使用范围为3.0~5.5V,采用外部供电方式。
温度传感器程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序等。
读出温度子程序:
程序主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
温度转换命令子程序:
主要是发温度转换开始命令,当采用12位分辨率时转换时间为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
计算温度子程序:
程序将RAM中读取进行BCD码的转换运算,并进行温度值正负的判定。
(4)数码温度显示电路设计
单片机驱动LED数码管有很多方法,按显示方法分为静态显示和动态显示。
静态显示方式的各数码管在显示过程中持续得到送显信号,与各数码管接口的I/O口线是专用的。
其特点是显示稳定,无闪烁,用元器件多,占I/O线多,无须扫描。
系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,节省CPU时间,提高CPU的工作效率,编程简单。
动态显示方式是指一位一位地轮流点亮每位显示器,与各数码管接口的I/O口线是共用的。
其特点是有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂。
动态扫描显示接口是单片机中应用最广泛的一种显示方式,其接口是把所有LED数码管的8个笔画段a~g、dp的同名端连在一起,而每一个数码管的公共端COM各自独立的受I/O控制。
CPU向字段输出口送字码时,所有数码管收到相同的字形码,但究竟是哪一个数码管亮取决于COM端,而这一端是由I/O输出控制。
我们采用分时驱动的方法,轮流控制各个数码管的COM端,使各个数码管轮流点亮,每位数码管的点亮时间都极为短暂,在轮流点亮扫描过程中,由于人的视觉暂留和发光二极管的余晖效应,尽管实际上各位数码管并非同时点亮,但由于扫描速度足够快,给人印象就是一组稳定的显示数据,不会有闪烁感。
这种显示方式不但能够提高数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件电路。
电路采用共阳极四位一体LED数码管显示。
P1.0~P1.7的输出信号接到数码管上进行显示。
P2.0、P2.1P2.2和P2.3作为四个数码管的位选信号控制引脚直接接到74LS138译码器上。
系统可实现显示模式选择功能,如图所示。
四个独立式按键可以分别进行模式选择和温度上下限值设定。
按温度值设定键后,按其他三个键对温度值调整范围0℃至+125℃。
(5)报警电路设计
系统的主报警电路由一个自我震荡型蜂鸣器和两个发光二极管(即显示电路中的上下限指示灯)组成,当前温度越限时,报警电路开始工作,P3.2口输出高电平,蜂鸣器蜂鸣,P2.4输出低电平,报警指示灯指示是报警。
PNP晶体管的基极加上一只限流电阻,防止晶体管因输入电流过大而损坏。
主报警电路如图4所示。
图4 主报警电路
(6)串口驱动电路设计
单片机AT89C2051支持串口驱动,它提供的是CMOS电平的串口数据,但PC机进行串口通信时其COM口出来的信号是RS232协议的串口数据电平,同时由于串口数据传输距离较远,需要加驱动电路,要在AT89C2051和MAX232中间加转换芯片。
RS232C规定的逻辑电平与单片机的逻辑电平不同,RS232的“1”是以-3~-15V来表示的,而单片机的“1”是以+5V来表示的,两者完全不同,因此,单片机要想与计算机的RS232接口进行通信,就必须把单片机的TTL电平转换成计算机的RS232电平。
目前使用较广泛的就是MAXIM公司的MAX232。
单片机与MAX232的连接图如下图5-6所示:
图5-6单片机与MAX232的连接图
(7)转换单元电路设计
根据题目要求这里采用1-5V/4-20mA的V/I变换电路,在图3中.输入电压Vi是叠加在基准电压VB(VB=10V)上,从运放A1的反向输入VN端输入的,晶体管T1、T2组成复合管,作为射极跟踪器,起到降低T1基极电流的作用(即忽略反馈电流I2),使得IL≈I1,而运放A1满足VN≈Vp,如果电路图中R1=R2=R,R4=R5=kR,则有如下表达式:
由式①②③可推出:
若Rf=62.5Ω,k=0.25,Vi=1-5V,则I1=4-20mA,而实际变换电流IL比I1小,相差I2(IL=I1-I2),I2是一个随输入电压Vi变化的变量,输入电压最小时(Vi=1V),误差最大,在实际应用中,为了使误差降到最小,一般R1,R2,Rf的阻值分别选取40.25kΩ,40kΩ,62.5Ω。
3)软件设计
1)上位机程序设计
上位机程序主要完成与下位机的串口通信,显示并储存下位机采集到的温度数据,并将下位机送来的温度数据与预先设定的阀值进行比较,若大于阀值,在上位机显示告警提示,并驱动告警音响,同时向下位机发送控制命令,下位机收到控制命令后,控制蜂鸣器发音进行警示.下位机还应有设置功能,即可人工调整温度告警阀值。
2)下位机程序设计
下位机主要完成从温度传感器上采集数据,将采集的数据在LED数码管上显示,同时将采集的温度数据传送到上位机,并根据上位机的命令驱动蜂鸣器发音功能。
因此,下位机软件分为初始化模块、数据采集显示模块、数据通信模块、转换单元模块和蜂鸣器告警模块五部分。
(1)初始化模块主要完成的工作:
单片机I/O管脚的定义,如前文硬件单元电路所示,{P1.0~P1.7作为普通I/O口来使用,主要用来控制LED数码管的7个管脚,P1.7用来控制蜂鸣器;P3.0与P3.1定义串口通信;P3.2~P3.5作为普通I/O口来使用,用来选通4个数码管,分别控制数码管代表百位十位个位和小数位;P3.7用来读取温度传感器的数据。
串口通信初始化,主要是设置串口允许发送和接收,设置波特率寄存器低位字节和高位字节和设置数据的传送格式。
(2)数据采集显示模块。
该模块的主要完成的工作是单片机读取温度传感器所采集的温度数据。
这是下位机软件设计的核心部分。
程序开始首先对温度传感器DS18B20进行复位,检测是否正常工作;接着读取温度数据,主机发出CCH指令与在线的DS18B20联系,接着向DS18B20发出A/D转换44H指令,再发出读取温度寄存器的温度值BE指令,并反复调用复位、写入及读取数据子程序,之后再经数据转换,有数码管显示出来,不断循环。
主要包括:
主程序开始、读取温度子程序、温度转化子程序和温度显示子程序,其中读取温度子程序又包括对传感器DS18B20的复位、DS18B20写入温度子程序和单片机读取DS18B20的子程序三部分。
传感器DS18B20的连接很简单,但读取温度数的过程较为复杂,有严格的时序要求。
先
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 温度 变送器