基于热电偶的温度测试仪设计.docx
《基于热电偶的温度测试仪设计.docx》由会员分享,可在线阅读,更多相关《基于热电偶的温度测试仪设计.docx(37页珍藏版)》请在冰点文库上搜索。
基于热电偶的温度测试仪设计
基于热电偶的温度测试仪设计
摘要:
基于热电偶的温度测试仪,该仪器是以AT89C51单片机为核心,由AD590集成温度传感器测量冷端温度T0,由热电偶测量热端温度T,该热电偶采用K型热电偶(镍铬-镍硅热电偶)。
它们分别经过I/V转换和线性放大,分时进行A/D转换,转换后的数字信号送入AT89C51单片机,经单片机运算处理,转换成ROM地址,再通过二次查表法计算出实际温度值,此值送4位共阴极LED数码管显示。
该热电偶测温仪的软件用C语言编写,采用模块化结构设计。
关键词:
热电偶,冷端温度补偿,89C51单片机,ADC0809,线性化标度变换
Abstract:
Thermocouple-basedtemperaturetestinginstrument,theinstrumentisbasedonAT89C51microcontrollerasthecore,fromAD590integratedtemperaturesensormeasuresthecoldjunctiontemperatureT0,measuredbythethermocouplehot-sidetemperatureT,theuseofK-ThermocoupleThermocouple(Ni-Cr-Ni-Sithermocouple).TheyarethroughtheI/Vconversionandlinearamplification,timeforA/Dconversion,theconverteddigitalsignalintotheAT89C51microcontroller,microcontrolleroperationafterprocessingintoROMaddress,andthenthroughthesecondlook-uptablemethodtocalculatetheactualtemperaturevalue,thisvalueissenttofourcommoncathodeLEDdigitaltubedisplay.ThethermocouplethermometersoftwarewithClanguage,usingamodularstructuredesign.
Keywords:
Thermocouple,coldjunctiontemperaturecompensation,89C51microcontroller,ADC0809,linearscaletransformation
1前言
温度是表征物体冷热程度的物理量,温度传感器是通过物体随温度变化而改变某种特性来间接测量的。
不少材料、元件的特性都随温度的变化而变化,所以能作温度传感器的材料相当多。
例如,利用水银温度计、有机液体温度计、双金属温度计、液体压力温度计、铂电阻温度计、热敏电阻温度计、热电偶温度计、光学高温计、红外温度计、辐射温度计、比色温度计等等都可实现对温度的测量。
进入21世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
热电偶传感器是目前接触式测温中应用最广的热电式传感器,在工业用温度传感器中占有及其重要的地位。
它结构简单、制造方便、测温范围宽(低至负180℃,高至1800℃)、热惯性小、准确度高、输出信号便于远传。
本文介绍一个基于热电偶的温度测试系统,本设计是以AT89C51单片机为核心,由AD590集成温度传感器测量冷端温度T0,由热电偶测量热端温度T。
该热电偶采用K型热电偶(镍铬-镍硅热电偶)。
使用+12V和+5V电源。
采用4位共阴极LED显示。
该热电偶测温仪的软件用C语言编写,采用模块化结构设计。
考虑到实际中有时需要对测温的上下限值进行修改,或者是在测温之初检验该设备是否能够正常显示或运行,故在设计中可以根据需要加入键盘。
在工业测量中,被测对象所处环境往往十分恶劣,常存在电场、磁场、噪声等干扰,使采样值偏离真实值。
所以,在软件设计中,还需要一组滤波程序,对多次采样信号构成的数据系列进行平滑加工,以提高其有用信号在采样值中所占比例,减少乃至消除各种干扰及噪音,以保证系统工作的可靠性。
本设计采用分段直线拟合方法,既节省大量存储器,又有很高的测量精度。
2整体方案设计
本设计的整体思路是:
用热电偶测量热端的温度T,并进行I/V转换和线性放大,由另一个设备测量冷端温度T0并进行温度补偿,再进行I/V转换和线性放大。
然后把从热端和冷端得到的信号分时进行A/D转换,再送到单片机进行运算处理,从而得到热电偶测到的实际温度值,最终在LED数码管上显示。
2.1方案论证
设计中采用了两个方案,具体的方案见方案一和方案二。
方案一:
集成热电偶信号转换器MAX667方案
MAXIM公司新开发出一种K型热电偶信号转换器(IC)MAX6675,该转换器集信号放大、冷端补偿、A/D转换于一体,直接输出温度的数字信号,使温度测量的前端电路变得十分简单。
该方案所用到的元器件很少,只有几个器件,所以设计方案简单,成本较低。
方案只有四个部分,即热电偶部分,MAX6675芯片部分,单片机部分和LED显示部分。
从左至右清楚明了,具体方案框图见图2.1。
图2.1测温整体方案一框图
方案二:
热电偶冷热端分测方案
见图2.2.本方案由AD590集成温度传感器测量冷端温度T0,由热电偶测量热端温度T。
它们分别经过I/V转换和线性放大,分时进行A/D转换,转换后的数字信号送入AT89C51单片机,经单片机运算处理,转换成ROM地址,在通过二次查表法计算出实际温度值。
此值送4位共阴极LED数码管显示。
图2.2测温整体方案二框图
2.2方案比较
由于方案一涉及的电路比较简单,但该方案采用的芯片集信号放大、冷端补偿、A/D转换于一体,这使得该信号的放大,冷端补偿,和数模转换的可调性很差,无法适应各种各样不同的复杂的温度测量环境,难以进行温度温差的调节。
而方案二采用模块化设计把各个模块分离开,使得设计的测温系统适应性很强,可以随时改变各个模块的一些硬件的参数和各个结构而适应不同的复杂测温环境,并且测量的精度也高于方案一。
因此设计采用了方案二。
3单元模块设计
为使该模块化热电偶测温系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。
硬件电路包括冷端采集和补偿电路模块、热端放大电路模块、单片机模块,A/D转换模块,LED显示模块等。
3.1冷端采集和补偿电路模块
冷端采集和补偿电路运用AD590温度传感器采集冷端温度,并连接补偿电路进行温度补偿,如图3.1
图3.1冷端采集和补偿电路
3.1.1AD590介绍
AD590是美国模拟器件公司生产的恒流源式模拟集成温度传感器,它兼有集成恒流源和温度传感器的特点,具有测量温度误差小,动态阻抗高,响应速度快,传输距离远,体积小,微功耗等优点,适合远距离测温,控温,不需要线性校准的特点。
1、流过器件的电流(A)等于器件所处环境的热力学温度(开尔文)度数,即:
A/K(3.1)
式中:
—流过器件(AD590)的电流,单位为A;
T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4V~30V。
电源电压可在4V~6V范围变化,电流
变化1A,相当于温度变化1K。
AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
4、输出电阻为710M。
5、精度高。
AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
其性能特点:
AD590属于采用激光修正的精密集成温度传感器。
其内部电路见图3.1所示。
芯片中的R1和R2是采用激光修正的校准电阻,它能使+25℃下的输出电流恰好微298.2uA。
首先有晶体管VT8和VT11产生与热力学温度成正比的电压信号。
,在通过R5,R6把电压信号转换微电流信号,为保证有良好的温度特性,R5,R6的电阻温度系数应非常小,这里采用激光修正的SiCr薄模电阻,其电阻温度系数低,VT10的集电极电流能够跟随VT9和VT11的集电极电流的变化,使总电流达到额定值。
R5和R6也需要在25℃的标准温度下校准。
AD590等效于一个高阻抗的恒流源,其输出阻抗>10M
,能大大减小因电源电压波动而产生的测量误差,例如,当电源电压从5V变化到10V时,所引起的电流最大变化量仅为1uA,等价于1℃的测温误差。
AD590的工作电压为+4~30V,测温范围是-55~+150℃,对应于热力学温度T每变化1K,输出电流就变化1uA.其输出电流Io(uA)与热力学温度T(K)严格成正比。
电流温度系数K1的表达式为:
K1=
㏑8(3.2)
图3.1AD590内部电路
因此,输出电流的微安数就代表着被测量温度的热力学温度值。
热力学温标(K)与摄氏温标(℃)的换算关系如式3所示:
T(℃)=T(K)-273.15(3.3)
3.1.2冷端采集和补偿电路分析
AD590只需单电源工作,抗干扰能力强,要求的功率很低。
输出电流值是以绝对温度零度(-273℃)为基准,每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Iout=(273+25)=298μA。
接着补偿电路进行工作。
1、AD590的输出电流I=(273+T)μA(T为摄氏温度),因此测量的电压V为(273+T)μA×10K=(2.73+T/100)V。
为了将电压测量出来又务须使输出电流I不分流出来,我们使用电压跟随器其输出电压V2等于输入电压V。
2、由于一般电源供应教多器件之后,电源是带杂波的,因此我们使用齐纳二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调整至2.73V。
3、接下来我们使用差动放大器其输出Vo为(100K/10K)×(V2-V1)=T/10,
如果现在为摄氏28℃,输出电压为2.8V,输出电压接AD转换器,那么AD转换
输出的数字量就和摄氏温度成线形比例关系。
注意事项:
1、Vo的值为Io乘上10K,以室温25℃而言,输出值为10K×298μA=2.98V
2、测量Vo时,不可分出任何电流,否则测量值会不准。
3.2热端放大电路模块
图3.2热端放大调理电路
热电偶的热端放大电路如图3.2所示。
热电偶的热端接入到INP口,然后进行一系列的调试放大。
本系统应用K型热电偶,导热系数测定过程中通常温度范围小于100℃,为保证测量精度,热电偶线性化软件我们每隔5℃分一段,并且精确到小数点后两位。
硬件调理电路截取K型热电偶100℃的热电势4.095mv作为输入满量程,放大到5V,提供给AD转换器,要求调理电路放大倍数达1200多倍,为此我们选取高精度运算放大器MC33078,构成两级运算放大器,每级放大倍数小于40倍,。
MC33078除了具有普通运算放大器的特点和应用范围外,还具有高增益、高共模抑制比、失调小和漂移低等特点,利用动态校零技术消除了CMOS器件固有的失调和漂移,所以常被应用于热电偶、电阻应变电桥、电荷传感器等测量微弱信号的电路中。
3.3A/D转换器ADC0809
ADC0809是一种8路模拟输入逐次比较型A/D转换器,由于价格适中,与单片机的接口、软件操作均比较简单,目前在8位单片机系统中有着广泛的使用。
片内由8路模拟多路开关、地址锁存器与译码器、8为A/D转换器和三态输出锁存缓冲器组成。
如图3.3是本设计中ADC0809的部分连接图。
图3.3ADC0809引脚图
引脚功能如下:
1、2-8—2-1八根数据三态输出端,IN0-IN7为八根单片模拟量输入端;
2、A1-A3:
三根地址译码输入端,以选择8路模拟量输入通道中的一路;
3、五根转换逻辑控制信号端:
START:
A/D转换启动信号输入端,可用来作片选信号端;
EOC:
转换结束信号输入端,可用作中断申请信号;
ALE:
地址所存允许输入端,用作多路开关的使能信号
O.E:
输出允许输入端,用来打开三态数据输出锁存器,以输出当前的A/D转换数
CLK:
时钟信号输入端,用它产生ADC0809的内部各种定时信号。
4、四根供电输入端:
ref(+)正参考电压输入端;ref(-)负参考电压输入端;VCC为供电电压输入端,一般需要+5V;GND为接地端。
ADC0809芯片可以分时处理8路模拟量输入信号,使用模拟开关切换。
在某一时刻,模拟开关只能与一路模拟量通道接通,对该通道进行A/D转换。
当地址所存信号ALE为高电平时,A1-A3三条线上的数据送入ADC0809内部的地址锁存器中,经过译码器译码后选中某一通道。
当ALE=0时,地址锁存器处于锁存状态,模拟开关始终与刚才选中的输入通道接通。
选中通道的模拟量到达A/D转换器时,A/D转换器并未对其进行A/D转换。
只有当转换启动信号端START出现下降沿并延迟Teoc(≤8c1+2uS)后,才启动芯片进行A/D转换,START的上升沿复位ADC0809。
转换过程是在时钟信号的协调下进行的。
ADC0809的时钟信号由CLOCK端送入,其最高频率为640MHz,在这个最高频率下ADC0809的A/D转换时间为100uS左右。
当ADC0809用于AT89C51单片机系统时,若AT89C51采用6MHz的晶振,则ADC0809的时钟信号可以由AT89C51的ALE经过一个二分频电路获取。
这时ADC0809的时钟频率为500KHz,A/D转换时间为130uS。
A/D转换结束后,A/D转换的结果(8位数字量)送到三态锁存输出缓冲器,此时A/D转换结果还没有现在2-8—2-1八条数字量输出线上,单片机不能获取之。
单片机要想读到A/D转换结果,必须使ADC0809的允许输出控制端OE为高电平,打开三态输了锁存器,A/D转换结果出现在2-8—2-1上。
图3.4ADC0809的读、写、启动以及A/D转换时序图
图3.4中EOC为转换结束输出信号。
在A/D转换期间,EOC维持高电平,当A/D转换结束时,EOC变成高电平。
ADC0809的START端收到下降沿后,并不立即进行A/D转换,EOC=1,而是延迟10uS后,才开始A/D转换,EOC变为低电平。
3.4单片机模块
AT89C51单片机DIP封装及引脚图如图3.5。
管脚说明参见表3.1。
性能指标和特点:
AT89C51单片机的主要性能指标和特点:
1、与MCS-51兼容
2、全静态工作:
0Hz-24Hz
3、三级程序存储器锁定
4、128*8位内部RAM
5、32可编程I/O线
6、两个16位定时器/计数器
7、5个中断源
8、可编程串行通道
9、低功耗的闲置和掉电模式
图3.5AT89C51单片机DIP封装及管脚
表3.1管脚描述
名称
管脚
类型
功能
Vss
20
I
地
Vcc
40
I
电源:
提供掉电空闲正常工作电压
P0.0-0.7
39-32
I/O
P0口:
P0口是开漏双向口,可以写为1使其状态为悬浮用作高阻输入。
P0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。
P1.0-1.7
1-8
I/O
P1口:
P1口是带内部上拉的双向I/O口,向P1口写入1时,P1口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流。
P1口第2功能:
T2(P1.0):
定时/计数器2的外部计数输入/时钟输出。
T2EX(P1.1):
定时/计数器2重装载/捕捉/方向控制。
P2.0-2.7
21-28
I/O
P2口:
P2口是带内部上拉的双向I/O口,向P2口写入1时,P2口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流(见DC电气特性)。
在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址(MOVX@DPTR),此时通过内部强上拉传送1。
当使用8位寻址方式(MOV@Ri)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。
P3.0-3.7
10-17
I/O
P3口:
P3口是带内部上拉的双向I/O口,向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P3口会因为内部上拉而输出电流(见DC电气特性)。
P3口还具有以下特殊功能:
RxD(p3.0):
串行输入口
TxD(P3.1):
串行输出口
INT0(P3.2):
外部中断0
INT1(P3.3):
外部中断
T0(P3.4):
定时器0外部输入
T1(P3.5):
定时器1外部输入
WR(P3.6):
外部数据存储器写信号
RD(P3.7):
外部数据存储器读信号
RST
9
I
复位:
当晶振在运行中,只要复位管脚出现2个机器周期高电平即可复位,内部有扩散电阻连接到Vss,仅需要外接一个电容到Vcc即可实现上电复位。
PSEN
29
O
程序存储使能:
当执行外部程序存储器代码时,PSEN每个机器周期被激活两次,在访问外部数据存储器时PSEN无效,访问内部程序存储器时PSEN无效。
XTAL1
19
I
晶体1:
反相振荡放大器输入和内部时钟发生电路输入
XTAL2
18
O
晶体2:
反相振荡放大器输出
EA/Vpp
31
I
外部寻址使能/编程电压:
在访问整个外部程序存储器时,EA必须外部置低。
如果EA为高时,将执行内部程序,除非程序计数器包含大于片内FLASH的地址。
该引脚在对FLASH编程时接5V/12V编程电压(Vpp)。
如果保密位1已编程,EA在复位时由内部锁存。
ALE
30
O
地址锁存使能:
在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ALE输出信号恒定为1/6振荡频率。
并可用作外部时钟或定时,注意每次访问外部数据时一个ALE脉冲将被忽略。
ALE可以通过置位SFR的auxlilary.0禁止,置位后ALE只能在执行MOVX指令时被激活。
A/D转换器输出的为BCD码,2-1~2-8口不是总线式的。
因此,单片机只能通过并行I/O接口或扩展I/O口与其相接。
还可以通过单片机的P1口直接与其连接。
如图3.6所示.
图3.6A/D芯片与单片机连接图
EOC是A/D转换结束的输出标志信号。
89C51读取A/D转换结果可以采用中断方式或查询方式。
采用中断方式,EOC端与89C51外部输入端
或
相连,采用查询方式是EOC端可直接接入89C51的任一I/O口线。
3.5LED显示模块
在显示电路中采用4位共阴极LED静态显示。
静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。
缺点是使用元件多,线路比较复杂。
共阴极LED数码管显示电路如图3.7。
图3.7LED显示电路
4软件设计
该热电偶测温仪的软件用C语言编写,采用模块化结构设计。
考虑到实际中有时需要对测温的上下限值进行修改,或者是在测温之初检验该设备是否能够正常显示或运行,故在设计中可以根据需要加入键盘。
4.1主程序
主程序设计当中,主程序开始,先进行初始化,接下来先后调用A/D转换子程序、线性化标度变换子程序。
最后通过LED显示所测得温度值。
主程序流程图如图4.1
图4.1主程序流程图
4.2A/D转换子程序
A/D转换子程序流程图如图4.2。
在该子程序中,首先对ADC0809的采样进行A/D转换,之后判断A/D转换是否完成,如果没有完成,则返回A/D转换,直到转换完成后,再进行数字滤波。
待数字滤波后,将码值NX送到单片机缓冲单元存储,等待下一步线性化子程序调用该码值。
图4.2A/D转换子程序流程图
在工业测量中,被测对象所处环境往往十分恶劣,常存在电场、磁场、噪声等干扰,使采样值偏离真实值。
所以,在软件设计中,还需要一组滤波程序,对多次采样信号构成的数据系列进行平滑加工,以提高其有用信号在采样值中所占比例,减少乃至消除各种干扰及噪音,以保证系统工作的可靠性。
一般在温度测量系统中采用限幅法或者限速法。
限幅滤波是把两次相邻的采样值相减,求出增量(以绝对值表示),然后与两次采样允许的最大差值(由被控对象的实际情况决定)ΔY进行比较,若小于或等于ΔY,则取本次采样;若大于ΔY,则仍取上次采样值作为本次采样值。
而限速滤波法是一种折衷的方法,它利用最多3次采样值比较,决定采样结果。
其方法是:
当|Y
(2)-Y
(1)|>ΔY时,不像限幅滤波那样,用Y
(1)作为本次采样值,而是再采样一次,取得Y(3),然后根据|Y(3)-Y
(2)|与ΔY的大小关系来决定本次采样值。
其具体判别方式如下。
设顺序采样时刻t1、t2、t3所采集的参数分别为Y
(1)、Y
(2)、Y(3),那么
当|Y
(2)-Y
(1)|≤ΔY时,则取Y
(2)存入RAM
当|Y
(2)-Y
(1)|>ΔY时,则不采用Y
(2),但仍保留,继续采样取得Y(3)
当|Y(3)-Y
(2)|≤ΔY时,则取Y(3)存入RAM
当|Y(3)-Y
(2)|>ΔY时,则取[|Y
(2)-Y
(1)|+|Y(3)-Y
(2)|]/2输入计算机。
在本设计中采用限速滤波法。
程序流程图如图4.3。
图4.3限速滤波子程序流程图
4.3线性化标度变换子程序
一般测温仪表所采用的线性化方法大致有以下几种:
1、计算方法:
即先用数学上的曲线拟合方法对热电势和对应温度进行拟合,得出误差最小的近似表达式T=f(e)。
为简化起见,常常是分段表达式,然后用计算程序进行分区计算得到温度。
2、直接查表法:
对分度表不经处理,直接按一定的排列形式存入,用测得的A/D转换值靠软件搜索来查得相对应的温度值。
3、数据压缩法:
即将分度表进行压缩处理,减少数据表字节数,通过软件的适当计算得出所测温度。
以上几种方法虽然都有其各自的优点,但它们所占的字节数,对把十几种分度好的线性修正数据或公式放入有限的单片机内存中,都是很困难的。
本设计采用分段直线拟合方法,既节省大量存储器,又有很高的测量精度,程序流程图如图4.4。
图4.4线性化标度变换子程序流程图
基本原理是:
预先根据分度值表计算出A/D转换值所对应折点的温度值T0、T1…TN,形成数据表,单片机进行修正时,根据测量值的大小,找到合适的修正直线段两个端点温度值,通过简单直线方程计算出被测温度。
光进行线性化还不够的,还需要进行标度变换。
在该热电偶测温仪表中,需要将测量的温度通过热电偶转换成0~+5V的电压信号,再将对应的电压信号经A/D转换,转换成对应的00~FFH(8位)的数字量DX。
之后还需将DX值滤波,滤波后的码值为NX,最后在现行化程序进行过程中,将转换成实际测量温度的显示码值。
在这个信号转换过程,就是标度变换。
线性化标度变换的前提是被测量参数值与A/D转换结果为线性关系。
线性标度变换的公式为:
(4.1)
该式是线性化标度变换的通用公式。
式中,
:
一次测量仪表的下限;
:
一次测量仪表的上限;
:
实际测量值(工程