基于单片机的热电偶温度测试仪汇总.docx
《基于单片机的热电偶温度测试仪汇总.docx》由会员分享,可在线阅读,更多相关《基于单片机的热电偶温度测试仪汇总.docx(31页珍藏版)》请在冰豆网上搜索。
基于单片机的热电偶温度测试仪汇总
基于热电偶的温度测试仪设计
摘要:
基于热电偶的温度测试仪,该仪器是以AT89C51单片机为核心,采用热电偶冷端补偿专用芯片max6675K对K型热电偶进行冷端补偿并对来自K型热电偶的T-和T+端的输入信号进行放大、AD转换以及数字化处理最后经过spi串口传送给单片机,经单片机运算处理,转换成ROM地址,再通过二次查表法计算出实际温度值并调用相关的程序将此温度值送给4位共阳极LED数码管显示或超量程报警。
该热电偶测温仪的软件用C语言编写,采用模块化结构设计。
关键词:
热电偶,冷端温度补偿,89C51单片机,max6675,数码管显示
Abstract:
Basedonthermocoupletemperaturemeasurementinstrument,theinstrumentisAT89C51SCMasthecore,thecompensationofthermocouplededicatedchipmax6675KofKtypethermocouplecoldjunctioncompensationandfromtheKtypethermocoupleofT-andT+inputsignalamplification,ADconversionanddigitalprocessingatlastthroughtheSPIserialtransmittedtoSCMthesinglechipcomputer,processing,conversionintoROMaddress,andthenthroughatwolook-uptablemethodtocalculatetheactualtemperaturevalueandcallproceduresrelatedtothetemperaturevaluetoatotalof4anodeLEDdigitaltubedisplayoroverrangealarm.ThethermocoupletemperaturemeasurementinstrumentsoftwareusingClanguage,usesthemodularstructuredesign.
Keywords:
thermocouplecoldendtemperaturecompensation,single-chipcomputer,89C51,MAX6675,digitaltubedisplay
目录
1前言1
2整体方案设计3
2.1方案论证3
2.2方案比较4
3单元模块设计5
3.1单片机控制电路模块5
3.2温度采集转换电路模块7
3.2.1K型热电偶7
3.2.2具有冷端补偿的数字温度转换芯片MAX66758
3.3显示电路模块10
3.4报警电路模块12
4软件设计13
4.1主程序设计13
5系统技术指标及精度和误差分析14
5.1系统仿真结果14
5.2误差分析14
6结论16
7致谢17
8参考文献18
附录1电路原理图19
附录2源程序代码20
1前言
温度是反映物体冷热状态的物理参数,对温度的测量在冶金工业、化工生产、电力工程、机械制造和食品加工、国防、科研等领域中有广泛地应用。
在某些特殊的场合对温度的检测速度有很高的要求,例如:
在测量汽车发动机吸入空气的温度的时候,就要求热响应时间小于1s;航天飞机的主发动机的温度测量要求0.4s内完成等。
因此针对以上问题就有人提出温度快速测量的思想。
通常用来测量温度的传感器有热电阻温度传感器、热敏电阻、热电偶、半导体温度传感器等几种。
这些常用温度传感器一般的温度测量中可以满足响应速度的问题。
工业常用的精度较高的温度传感器有铂热电阻、半导体温度传感器等。
铂热电阻具有温度温度测量时至少要几秒钟。
所以用温度传感器一般都存在着对气体温度变化响应较慢的问题。
在对温度实时性测量要求比较高的系统,运用常用温度测量方法很难测量范围大、重复性好、精度高等特点,但是响应不是很快,特别是在对气体做到对温度的快速测量,对系统的精度影响就很大。
在工业过程控制与生产制造领域普遍使用具有较高测温精度及测温范围的热电偶做测温元件。
在工业标准热电偶中,K型(镍铬-镍硅)热电偶由于具有价格低廉、输出热电势值较大、热电势与温度的线性关系好、化学稳定性好、复制性好、可在1000℃下长期使用等特点,因而是工业生产制造部门应用最广泛的热电偶元件。
但是将热电偶应用在基于单片机的嵌入式系统领域时,却存在着以下几方面的问题[2]。
①非线性:
热电偶输出热电势与温度之间的关系为非线性关系,因此在应用时必须进行线性化处理。
②冷端补偿:
热电偶输出的热电势为冷端保持为0℃时与测量端的电势差值,而在实际应用中冷端的温度是随着环境温度而变化的,故需进行冷端补偿。
③数字化输出:
与嵌入式系统接口必然要采用数字化输出及数字化接口,而作为模拟小信号测温元件的热电偶显然无法直接满足这个要求。
在许多热工实验中,往往面临热电偶冷端温度问题,不管是采用恒温补偿法(冰点补偿法)还是电桥补偿法,都会带来实验费用较高、实际的检测系统较复杂.难以达到实时测量、接口转换电路复杂等问题,而随着计算机测控技术在工业生产制造领域的普遍应用,温度参数的微机化测量与控制已成为必然趋势。
因此我们必须解决对热电偶测量信号的放大调理、非线性校正、冷端补偿、模数转换、数字输出接口等一系列复杂的问题,以及解决模拟与数字电路硬件设计过程和建表、查表、插值运算等复杂的软件编制过程,以达到使电路简化,成本减少,增加系统可靠性的目的。
鉴于上面的分析,本论文主要任务是设计一种基于高精度K型热电偶传感器的快速测温系统。
采用带有冷端补偿的温度转换芯片MAX6675、K型热电偶、89C51单片机、数码管等元器件设计出相应温度采集电路、温度转换电路、温度控制电路、超量程报警电路、数码管显示电路。
系统用单片机对带有冷端补偿的温度转换芯片MAX6675进行控制,要达到任务书中的技术指标,并对系统进行protuse的调试和仿真试验,使其具有良好的实用性能,能够实现对固提表面、液体和气体温度的高精度快速测量。
2整体方案设计
热电偶测量温度时要求其冷端(测量端为热端,通过引线与测量电路连接的端称为冷端)的温度保持不变,其热电势大小才与测量温度呈一定的比例关系。
若测量时,冷端的(环境)温度变化,将影响测量的准确性。
在冷端采取一定措施进行补偿以消冷端温度变化造成的影响称为热电偶的冷端补偿。
2.1方案论证
设计中采用了两个方案,具体的方案见方案一和方案二。
方案一:
分立元气件冷端补偿方案
该方案的热电偶冷端温度补偿器件是由分立元件构成的,其体积大,使用不够方便,而且在改变桥路电源或热电偶类型时需要重新调整电路的元件值。
主要包括温度采集电路、信号放大电路、A/D转换电路、热电偶冷端补偿电路、数码管显示电路等。
其系统框图如图2.1。
图2.1 分立元气件冷端补偿
方案二:
集成电路温度补偿方案
采用热电偶冷端补偿专用芯片max6675,max6675温度转换芯片具有冷端温度补偿及对温度进行数字化测量这两项功能[5]。
一方面利用内置温度敏感二极管将环境温度转换成补偿电压,另一方面又通过模数转换器将热电势和补偿电压转换为代表温度的数字量,将二者相加后从串行接口输出测量结果,即为实际温度数据。
主要包括温度采集电路、max6675温度转换电路、数码管显示电路等。
其系统框图如图2.2。
图2.2集成电路温度补偿
2.2方案比较
综合对比以上两种方案,方案一电路复杂,且测量不精确照成误差较大,方案二采用集成温度转换芯片不仅能很好的解决冷端温度补偿及温度数值化问题,并消除由热电偶非线性而造成的测量误差,且精确度高,可实现电路的优化设计。
故最后采用方案二。
3 单元模块设计
本系统硬件主要由热电偶温度采集电路、MAX6675温度处理电路、89C51单片机控制电路、超量程报警电路和数码管显示电路组成。
热电偶采用分度号为K的热电偶,为了减少外界信号的干扰通过双绞线跟MAX6675芯片直接相连接。
MAX6675芯片通过SPI串行接口传输数据,采用的89C51单片机对带有冷端补偿的温度转换芯片MAX6675进行控制。
本系统设计还具有报警的特点,当所测量的温度低于零摄氏度或者高于400摄氏度时报警电路发出警报。
显示电路由89C51单片机通过锁存器对四位共阳数码管控制,数码管工作需要较大的电流采用型号为8550的PNP三极管进行控制,当所测温度在规定范围内时就可以通过数码管快速显示出来。
3.1单片机控制电路模块
MCU是整个系统的控制核心,由于温度测量系统的接口方便,综合考虑整个系统,选用美国ATMEL公司生产的AT89C51型单片机。
。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,其外观引脚如图3-1所示:
图3-1 AT89C51外观引脚图
AT89C51提供以下标准功能[12]:
4k字节的flash闪速存储器,可以反复擦除100次,128字节内部RAM,4个8位并行I/O口,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0hz的静态逻辑操作,并支持两种软件可选的节电工作模式、空闲方式停止CPU工作,但允许RAM,定时/技术器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作指导下一个硬件复位。
AT89C51共有4个双向的8位并行I/O端口,分别为P0~P3,共有32根口线,端口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。
P0~P3的端口寄存器属于特殊功能寄存器系列。
这四个端口除了可以按字节寻址外还可以位寻址。
其中P0口为漏极开路作为输出使用时应外加上拉电阻,P3口既可以做为普通I/O口使用,还可以作为特定的功能引脚。
虽然51单片机只有一个串口接口,但其I/O口既可以用字节寻址也可以位寻址,这样在实际应用中,我们就可以通过模拟不同总线的时序特征来实现各种数据的传输。
AT89C51单片机内部有一个功能强大的全双工的一部通信串口。
其串行口有四种工作方式:
分别为同步通信方式、8位异步收发、9位异步收发(特定波特率)、9位异步收发(定时器控制波特率)。
它有两个物理上独立接收发送缓冲器SBUF,可同时发送、接收数据。
波特率可由软件设置片内的定时器来控制,而且每当串行口接收或发送1B完毕,均可发出中断请求。
本文控制电路选用AT89C51对其外围电路进行控制,其接口电路如图3-1。
由于AT89C51不具备SPI总线接口,设计中采用模拟SPI总线的方法实现与MAX6675的接口。
其中P1.0模拟SPI的数据输入端与SO相连,P1.1模拟SPI的串行时钟信号与SCK相连,P1.2模拟SPI的从机选择端与CS相连,电路中主机为AT89C51,从机为MAX6675。
单片机的P2.0用来控制系统的超量程报警。
单片机的P2.4、P2.5、P2.6、P2.7和P0口分别通过相应的电路对数码管的位码和段码惊醒控制。
系统通过AT89C51的P1.1给MAX6675发送串行时钟,P1.0用来接收MAX6675输出的串行温度数据,P1.2输出的低电平将MAX6675的置零,用于选通MAX6675工作。
系统配有4位数码管显示,小数点设在十位后边,可测温度为0~400℃,分辨率达到0.25℃。
图3-1单片机控制电路
3.2温度采集转换电路模块
温度采集电路模块包括K型热电偶和max6675所组成的电路模块,其电路原理图如图3-2所示,热电偶的功能是检测热、冷两端温度的差值,热电偶热节点温度可在0℃~+l023.75℃范围变化。
冷端即安装MAX6675的电路板周围温度,此温度在-20℃~+85℃范围内变化。
当冷端温度波动时,MAX6675仍能精确检测热端的温度变化。
MAX6675是通过冷端补偿检测和校正周围温度变化的。
该器件可将周围温度通过内部的温度检测二极管转换为温度补偿电压,为了产生实际热电偶温度测量值,MAX6675从热电偶的输出和检测二极管的输出测量电压。
该器件内部电路将二极管电压和热电偶电压送到ADC中转换,以计算热电偶的热端温度。
当热电偶的冷端与芯片温度相等时,MAX6675可获得最佳的测量精度。
因此在实际测温应用时,应尽量避免在MAX6675附近放置发热器件或元件,因为这样会造成冷端误差。
图3-2 温度采集转换电路原理图
3.2.1K型热电偶
K型热电偶作为一种温度传感器,K型热电偶通常和显示仪表,记录仪表和电子调节器配套使用,其外观如图3-3所示。
K型热电偶可以直接测量各种生产中从0℃到1300℃范围的液体蒸汽和气体介质以及固体的表面温度。
图3-3K型热电偶
镍铬-偶(K)型热电偶是目前用量最大的廉金属热电偶,其用量为其他热电偶的总和。
K型热电偶丝直径一般为1.2~4.0mm。
正极(KP)的名义化学成分为:
Ni:
Cr=92:
12,负极(KN)的名义化学成分为:
Ni:
Si=99:
3,其使用温度为-200~1300℃。
K型热电偶具有线性度好,热电动势较大,灵敏度高,稳定性和均匀性较好,抗氧化性能强,价格便宜等优点,能用于氧化性惰性气氛中广泛为用户所采用。
K型热电偶不能直接在高温下用于硫,还原性或还原,氧化交替的气氛中和真空中,也不推荐用于弱氧化气氛.
K型热电偶是工业上最常用的温度检测元件之一。
必须配和二次仪表使用其优点是:
①测量精度高。
因热电偶直接与被测对象接触,不受中间介质的影响。
②测量范围广。
常用的热电偶从-50~+1600℃均可连续测量,某些特殊热电偶最低可测到-269℃(如金铁镍铬),最高可达+2800℃(如钨-铼)。
③构造简单,使用方便。
热电偶通常是由两种不同的金属丝组成,而且不受大小和开头的限制,外有保护套管,用起来非常方便。
热电偶作为一种主要的测温元件,具有结构简单、制造容易、使用方便、测温范围宽、测温精度高等特点[14]。
但是,热电偶的应用却存在着非线性、冷端补偿、数字化输出等几方面的问题。
设计中采用的MAX6675是一个集成了热电偶放大器、冷端补偿、A/D转换器及SPI串口的热电偶放大器与数字转换器。
K型热电偶的两端分别跟MAX6675芯片的T-跟T+相连,为了允许热电偶断路检测,T-引脚必须接地。
MAX6675的测量精度对电源耦合噪声较敏感。
为降低电源噪声影响,在MAX6675的电源引脚附近接入1只0.1μF陶瓷旁路电容。
温度由热电偶采集,然后将数据直接送给冷端补偿芯片MAX6675芯片进行处理,处理后送给单片机控制电路,完成简单的温度采集过程。
3.2.2具有冷端补偿的数字温度转换芯片MAX6675
MAX6675是美国Maxin公司生产的基于SPI总线的专用芯片[9],不仅能对K型热电偶进行冷端补偿,还能对热电势信号作数字处理,具有很高的可靠性和稳定性,可广泛应用于工业、仪器仪表、自动化领域等。
其内部结构框图如图3-4所示。
图3-4MAX6675内部结构框图
MAX6675的主要特性如下:
①简单的SPI串行口温度值输出。
②0℃~+l024℃的测温范围。
③12位0.25℃的分辨率。
④片内冷端补偿。
⑤高阻抗差动输入。
⑥热电偶断线检测。
⑦单一+5V的电源电压.
⑧低功耗特性。
⑨工作温度范围-20℃~+85℃。
⑩2000V的ESD保护。
该器件采用8引脚50贴片封装。
其外观引脚如图3-5所示,引脚功能如表3-6所示。
图3-5max6675外观及引脚排列
表3-6max6675引脚功能
引脚
名称
功能
1
GND
接地端
2
T-
K型热电偶负极
3
T+
K型热电偶正极
4
VCC
正电源端
5
SCK
串行时钟输入
6
CS
片选端,CS为低、启动串行接口
7
SO
串行数据输出
8
N.C.
空引脚
MAX6675内部具有将热电偶信号转换为与ADC输入通道兼容电压的信号调节放大器,T+和T-输入端连接到低噪声放大器A1,以保证检测输入的高精度,同时使热电偶连接导线与干扰源隔离。
热电偶输出的热电势经低噪声放大器A1放大,再经过A2电压跟随器缓冲后,被送至ADC的输入端。
在将温度电压值转换为相等价的温度值之前,它需要对热电偶的冷端温度进行补偿,冷端温度即是MAX6675周围温度与0℃实际参考值之间的差值。
对于K型热电偶,电压变化率为41μV/℃,电压可由线性公式Vout=(41μV/℃)×(tR-tAMB)来近似热电偶的特性。
上式中,Vout为热电偶输出电压(mV),tR是测量点温度;tAMB是周围温度。
3.3显示电路模块
LED显示器是单片机应用系统中常用的输出器件,是由若干个发光二极管组成的,当发光二极管导通时,相应的一个或一个笔画发光,控制不同组合的二极管导通,这就能显示出不同字符。
点亮显示器有静态和动态两种方式。
所谓静态显示就是显示器在显示某个字符时,相应的发光二极管恒定的导通或截止。
这种显示方式每个显示器都需要一个8位输出口控制,需要硬件多,适用于显示位数较少的场合。
当显示位数较多时采用动态显示。
所谓动态显示就是一位一位的轮流点亮各位显示器,对于每位显示器来说,每隔一段时间点亮一次。
显示器的点亮和点亮时的导通电流有关,还与点亮时间和间隔时间有关,调整电流和时间参数,可实现亮度较高较稳定的显示。
本设计使用的是一个四位共阳数码管,当89C51单片机的P0口总线负载达到或超过P0最大负载能力时,必须接74LS245等总线驱动器。
本文温度显示电路设计是由一个4位共阳数码管通过三态双向总线收发器芯片74LS245跟单片机相连接,其电路如图3-7所示。
其中74LS245的片选跟三态控制引脚接地,数据由单片机向数码管传输。
数码管的位的选择通过8550三级管进行控制,三级管基极通过限流电阻跟单片机的I/O口相连接,当端口为高电平时,三极管截止,当给端口为低电平时三极管导通,数码管相应的位被选中。
这样可方便地对数码管每一位进行单独控制。
R3-R10为限流电阻。
三极管饱和开通时,集电极-发射极之间电压
取0.5V,数码管的压降
取2V,数码管的工作电流
取5mA∼15mA。
则限流电阻可这样计算获得:
(3-9)
把数据带入式子(3-9)得
可取值170
~500
现取
。
为保证三极管可靠开通关断,且要求数码管的亮度适量较高,基极电阻R11-R14可适量取小值,本设计取基极电阻为470
。
图3-7 数码管显示电路
3.4报警电路模块
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。
超量程报警电路如图3-8所示。
蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极e,三极管的基级b经过限流电阻R17后由单片机的P2.0引脚控制,当P2.0输出高电平时,三极管Q6截止,没有电流流过线圈,蜂鸣器不发声;当P2.0输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。
因此,我们可以通过程序控制P2.0引脚的电平来使蜂鸣器发出声音和关闭。
三级管基极电流ib为1mA-5mA时就足够进入开关状态了,三极管导通时蜂鸣器跟三极管分压很小,电阻R17两端分压约为5V,三级管放大倍数为100左右,流过三级管CE的电流ic约为500mA左右这足够三极管饱和导通的条件,所以R17的阻值选用1K比较合理。
图3-8 报警电路原理图
4 软件设计
系统软件设计主要包含主程序、温度采集转换子程序、超量程报警子程序、显示子程序等功能模块。
其程序总流程图如4-1所示。
主程序主要完成子程序的调用,并对温度数据进行快速的算法处理;温度采集转换子程序负责将MAX6675转换来的温度数字量读入单片机并完成温度值的处理得到12位数字温度值;超量成报警子程序主要判断温度值是否超出测量范围;显示子程序主要将计算后的温度值进行显示。
4.1 主程序设计
主程序主要完成子程序的调用,并对温度数据进行快速的算法处理。
主程序首先对系统进行初始化处理,然后调用一次温度采集转换程序,之后根据计算原理得到测量温度值,最后对温度值进行量程判断、数据显示处理。
图4-1 主程序流程
5 系统技术指标及精度和误差分析
随着各种高精度传感器的应用与普及,这一技术在科学研究,生产过程等领域中发挥着越来越重要的作用。
人类步入信息社会的今天,人们对信息的提取,处理,传输以及综合利用等要求愈加
5.1 系统仿真结果
根据系统的硬件电路设计跟软件设计,本文对系统做了一些简单的仿真测试,简化了基本原理图达到了预期的效果。
其仿真效果图如5-1,所示。
图5-1温度为22℃仿真图
5.2误差分析
在系统设计过程中难免会有误差,虽不能绝对地消除,但我们可以尽量将他们减小到最低程度。
由于环境温度的变化,热电偶的冷端随时可能发生变化,然而该系统存在一定的热响应时间,所以环境温度的快速变化可能带来冷端补偿造成的一系列的误差问题,而且器件的参数也存在一定的误差,之后在放大、AD转换、和数字量化的转换过程中也会因为热噪声或其他的干扰源带来转换的误差,其中的热响应时间会造成测量的温度是前一刻短暂时间的瞬时温度,在实际测温应用时,应尽量避免在MAX6675附近放置发热器件或元件,因为这样会造成冷端误差。
热电偶系统的测量精度可通过以下预防措施来提高:
①尽量采用不能从测量区域散热的大截面导线;②如必须用小截面导线,则只能应用在测量区域,并且在无温度变化率区域用扩展导线;③避免受能拉紧导线的机械挤压和振动;④当热电偶距离较远时,应采用双绞线作热电偶连线;⑤在温度额定值范围内使用热电偶导线;⑥避免急剧温度变化;⑦在恶劣环境中,使用合适的保护套以保证热电偶导线;⑧仅在低温和小变化率区域使用扩展导线;⑨保持热电偶电阻的事件记录和连续记录。
6结论
本文主要介绍了基于热电偶温度传感器的快速测温系统。
该系统综合考虑到热电偶的热惰性时间常数问题,采用快速测温算法实现了温度快速测量的功能。
本文对系统原理进行了简单的概述,着重分析了系统的硬件设计方案跟软件设计方案。
最后对系统进行了仿真实验,很好的完成了设计要求。
本文主要采用K型热电偶、K型热电偶专用数字转换芯片MAX6675、AT89C51单片机进行了相关设计。
MAX6675将热电偶测温应用时复杂的线性化、冷端补偿及数字化输出等问题集中在一个芯片上解决,简化了将热电偶测温方案应用于嵌入式系统领域时复杂的软硬件设计,因而该器件是将热电偶测温方案应用于嵌入式系统领域的理想选择。
根据快速算法的原理通过AT89C51单片机软