基于PT10测温系统设计毕业设计Word文件下载.docx
《基于PT10测温系统设计毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于PT10测温系统设计毕业设计Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
但由于热电偶普遍的线性度不太好,而且需要做冷端补偿,这样以来增加了电路设计的复杂性,且也给软件编程带来了不方便之处。
○集成温度传感器
集成温度传感器可分为模拟式温度传感器和数字式温度传感器,前者是将驱动电路、信号处理电路以及必要的逻辑控制电路集成在单片IC上,具有实际尺寸小、使用方便、灵敏度高、线性度好、响应速度快等优点,常用的模拟式温度传感器有LM3911、LM335、LM45、AD22103、AD590等;
数字式温度传感器将敏感元件、A/D转换单元、存储器等集成在一个芯片上,直接输出反应被测温度的数字信号,使用方便,但响应速度较慢。
但除了集成温度传感器价格较高之外,一般集成温度传感器的测温范围-55℃~+150℃,远达不到本次设计所要求的200℃~500℃,故本次设计中不能应用集成温度传感器。
○热电阻
热电阻是基于电阻的热效应进行温度测量的,即电阻体的阻值随温度的变化而变化的特性。
因此,只要测量出感温热电阻的阻值变化,就可以测量出温度。
现阶段主要有金属热电阻和半导体热敏电阻两类。
金属热电阻一般适用于-200℃~500℃范围内的温度测量,其特点是测量准确、稳定性好、性能可靠。
半导体热敏电阻测温范围只有-50℃~300℃左右,且互换性较差,非线性严重,但温度系数更大,常温下的电阻值更高(通常在数千欧以上)。
故对于本次设计要求的来看,只能采用金属热电阻。
目前应用最广泛的热电阻材料是铂和铜:
铂电阻精度高,适用于中性和氧化性介质,稳定性好,具有一定的非线性,温度越高电阻变化率越小;
铜电阻在测温范围内电阻值和温度呈线性关系,温度线数大,适用于无腐蚀介质,超过150℃易被氧化,所以对于要测量150℃以上的温度,宜采用铜电阻,其代表产品就是PT100。
PT100精度高,线性度较好,测温范围广,价格相对不高,是本次设计的首选温度传感器。
PT100温度传感器是一种以铂(Pt)做成的电阻式温度传感器,属于正电阻系数,
其电阻阻值与温度的关系可以近似用下式表示:
在0~650℃范围内:
Rt=R0(1+At+Bt2)
在-200~0℃范围内:
Rt=R0(1+At+Bt2+C(t-100)t3)
式中A、B、C为常数,
A=3.96847×
10-3;
B=-5.847×
10-7;
C=-4.22×
10-12;
由于它的电阻—温度关系的线性度非常好,因此在测量较小范围内其电阻和温度变化的关系式如下:
R=Ro(1+αT)
其中α=0.00392,Ro为100Ω(在0℃的电阻值),T为华氏温度,因此铂做成的电阻式温度传感器,又称为PT100。
PT100温度传感器的测量范围广:
-200℃~650℃,偏差小,响应时间短,还具有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应用,本设计即采用PT100作为温度传感器。
1.3.2A/D转换器的选型
鉴于本次设计要求测温系统的分辨率为1℃,测温范围是200~500℃,所以很明显若采用8位的A/D转换器,其分辨率为1.17℃,不满足要求,本设计可采用德州仪器公司生产的12位开关电容型逐次逼近模数转换器TLC2543,它具有三个控制输入端,采用简单的3线SPI串行接口可方便地与微机进行连接,是12位数据采集系统的最佳选择器件之一。
TLC2543的主要性能为:
①逐次逼近ADC,可选择工作于12位或8位;
②转换后的数据有12位一次读出,8位、4位两次读出两种读出方式;
③具有可控三态输出缓冲器,TTL电平。
④非线性误差:
AD574AJ为±
1LSB,AD574AK为±
1/2LSB;
⑤转换时间:
最大转换时间为25us(中档速度);
⑥输入模拟信号:
单极性时,范围为0V~+10V和0V~+20V,从不同引脚输入。
双极性输入时,范围为0V~±
5V和0V~±
10V,从不同引脚输入。
1.3.3显示器选型
鉴于本设计的只需要显示温度的大小,且需要显示的温度范围在200~500℃间,对精度的要求不太高,可以直接采用四位数码管显示,最后采用了7SEG-MPX2-CA四位共阳极LED数码显示器。
2硬件电路的设计
2.1信号测量电路
根据设计要求,首先需将温度传感器由温度信号转换为的电信号进行处理,使之能够稳定的映射到A/D转换器的功能。
鉴于一般使用的都是利用电压信号,而PT100的感温原理是其电阻随温度的变化而变化,为此我们可以使一恒流源串联PT100,然后输出其两端的电压信号。
之所以选择串联恒流源的方式,主要是考虑到这样来,输出电压和PT100的电阻值直接成正比关系,有很好的线性,而若采用电桥输出的话,输出电压和PT100的电阻值的关系是非线性的,对于测量精度来讲不太合适,而51单片机处理除法的计算能力较差,这样做会降低系统的反应速度。
图2.1测量电路
该恒流源是基于LM324进行的设计,通过运放的“虚短”和“虚断”的原则,可以很容易的计算出,流过PT100的电流大小:
I=UN+/R1
式中UN+指的是LM324的正相端输入电压,由图可以发现UN+是由TL431组成的电路输出所得,结合滑动变阻器RV2的配合,可以使其输出电压为4.096V,之所以要使输出电压为4.096V,是因为我们所选的A/D转换器是12位的,2的十二次方刚好等于4096,将基准电压设定为4.096V,可以减小进行A/D时的误差。
下面对该电路中使用的LM324以及TL431芯片进行一些简单的介绍。
○LM324
LM324是四运放集成电路,它采用14脚双列直插塑料封装。
它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。
每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。
两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;
Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。
由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。
○TL431
TL431是一个有良好的热稳定性能的三端可调分流基准电压源。
它的输出电压用两个电阻就可以任意地设置到从Vref(2.5V)到36V范围内的任何值。
该器件的典型动态阻抗为0.2Ω,在很多应用中可以用它代替齐纳二极管,例如,数字电压表,运放电路、可调压电源,开关电源等,其特点如下:
①可编程输出电压为36V;
②电压参考误差:
±
0.4%;
③典型值@25℃(TL431B);
④低动态输出阻抗,典型0.22Ω;
⑤负载电流能力1.0mAto100mA;
⑥等效全范围温度系数50ppm/℃典型;
⑦温度补偿操作全额定工作温度范围;
⑧低输出噪声电。
2.2信号调理电路的设计
信号调理电路需要完成对信号的放大、滤波和偏置放大等任务,是信号实现远传的根本所在,也是单片机对原始信号进行处理前的必备流程,从某种意义上讲,信号调理电路是提高整个系统稳定性和测量精度的根本所在。
2.2.1首级放大电路
根据计算公式Vin=4.096*Rpt100/2k,式中Rpt100表示的是PT100在特定温度下的电阻值,由于需要测量的温度范围为200~500℃,查表可知,其电阻值的大小为175.86Ω280.98Ω之间,这样以来可知用恒流源通过PT100的输出的电压很小,大概为0.36~0.58V之间,不方便直接作为输入,故需要进行信号放大。
图2.2首级放大电路
该放大的电路的设计基于OP07C实现,Op07芯片是一种低噪声,非斩波稳零的双极性(双电源供电)运算放大器集成电路。
由于OP07具有非常低的输入失调电压,所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低和开环增益高的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
此电路的设计,充分考虑到了对OP07C供电电源的滤波,以及运放输入电阻平衡的要求,结合运放的特点,经过简单的分析便可知,该放大电路为反相放大器,具体放大倍数为10倍。
2.2.2偏置放大电路
经过首级放大电路的处理后,通过计算可以知道输出电压U1N大小为3.65~5.75V,为了方便,我们所用的A/D转换芯片的基准电压为5V,故需要将首级放大的输出电压拓展为0~5V。
为实现这个目的,可以先对U1N进行偏置得0~2.1V,然后对这个范围的电压进行2.4倍的信号放大。
本设计的偏置放大电路的设计便是围绕着这种思想设计而来。
图2.3偏置放大电路
该电路的设计原理介绍如下:
在本设计的实际应用中,运放的同相端设置了两个输入电压,一个为首级放大电路的输出电压U1N,另一个是利用滑动变阻器分压而得的一个电压值-3.64V,然后令Ra=Rb=2k,Rf=4.8k,使运放的输入电阻满足Ra//Rb//R’=R1//Rf,这样就达到了偏置和放大的要求,在误差允许的范围之类,完全可以满足所需要求。
2.3A/D转换电路
前面已经介绍,设计选用的A/D转换芯片为TLC2543,其引脚排列如图所示。
图2-4TLC2543的引脚
AIN0~AIN10:
模拟输入端,由内部多路器选择。
对4.1MHz的I/O
CLOCK,驱动源阻抗必须小于或等于50Ω,而且用60pF电容俩限制模拟输入电压的斜率。
CS:
片选端。
在CS由高到低变化时,将复位内部计数器,并控制和使能DATA
OUT、DATA
INPUT和I/O
CLOCK。
CS由低到高的变化时,将在一个设置时间内禁止DATA
DATA
INPUT:
串行数据输入端,串行数据以MSB为前导并在I/O
CLOCK的前4个上升沿移入4位地址,用来选择下一个要转换的模拟输入信号或测试电压,之后I/O
CLOCK将余下的几位依次输入。
OUT:
A/D转换结果三态输出端,在CS为高时,该引脚处于高阻状态;
当CS为低时,该引脚由前一次转换结果的MSB值置成相应的逻辑电平。
EOC:
转换结束端。
在最后的I/O
CLOCK下降沿之后,EOC由高电平变为低电平并保持到转换完成及数据准备传输。
VCC、GND:
电源正端、地。
REF+、REF-:
正、负基准电压端。
通常REF+接VCC,REF-接GND。
最大输入电压范围取决于两端电压差。
I/O
CLOCK:
时钟输入/输出端。
TLC2543每次转换和数据传送使用16个时钟周期,且在每次传送周期之间插入CS的时序。
在TLC2543的CS变低时开始转换和传送过程,I/O
CLOCK的前8个上升沿将8个输入数据位键入输入数据寄存器,同时它将前一次转换的数据的其余11位移出DATA
OUT端,在I/O
CLOCK下降沿时数据变化。
当CS为高时,
I/O
CLOCK和DATA
INPUT被禁止,DATA
OUT为高阻态。
本设计中TLC2543与单片机的连接如图所示。
图2.5A/D转换电路
2.4单片机电路及显示电路
图2.6单片机电路及显示电路
本设计使用51单片机为核心器件,其中P1口(P1.0~P1.3)为A/D转换器的通信接口,P2口接数码管的段码,P3口(P3.0~P3.3)接数码管的片选端,即负责确定位码。
对于单片机而言,需要构建其最小系统。
3软件设计
进行微机测量控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个测量对象的实际需要设计应用程序。
因此,软件设计在微机测量控制系统设计中占重要地位。
对于本系统而言,软件设计主要包括信号采集程序、信号处理程序、显示程序及主程序三大部分。
3.1信号采集控制程序
3.1.1信号采集全过程
上电后,片选cs必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。
开始时,片选CS为高,IO_CLOCK、DATA_INPUT被禁止,DATA_OUT呈高阻状态,EOC为高。
使CS变低,IO_CLOCK、DATA_INPUT使能,DATA_OUT脱离高阻状态。
12个时钟信号从IO_CLOCK端依次加入,随着时钟信号的加入,控制字从DATA_INPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入)同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATA_OUT一位一位地移出。
TLC2543收到第4个时钟信号后,通道号也已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。
在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10微秒,转换完成后EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。
此后,可以进行新的工作周期。
3.1.2程序流程图
图3.1信号采集控制程序流程图
3.1.3程序代码为
sbitCS=P1^2;
//2543/CS
sbitIO_CLOCK=P1^3;
//2543IOCLOCK
sbitDATA_IN=Pl^1;
//2543DATAIN
sbitDATA_OUT=P1^0;
//2543DATAOUT
unsignedintad_data;
sbitbit0=ad_data^8;
sbitbit7=B^7;
uintread2543(unsignedcharport)//A/D转换子程序
{unsignedchardataI;
ad_data=0;
port=port<
<
4;
//端口高4位与低4位交换
B=port;
IO_CLOCK=0;
CS=1;
DATA_IN=0;
DATA_OUT=0;
CS=0;
delay();
for(i=1;
i<
=12;
i++)//12位DATAINPUT
{DATA_IN=bit7;
IO_CLOCK=1;
B=B<
1;
IO_CL0CK=0;
}
CS=1;
for(i=1;
i<
=12;
i++)//12位DATAOUTPUT
{bit0=DATA_OUT;
IO_CLOCK=1;
ad_data=ad_data<
1;
}
ad_data=ad_data>
>
return(ad_data);
3.2信号处理
由于PT100的温度和所对应的电阻值的关系,并不是完全线性的,这里我们对其进行简单的线性化处理,具体是在200~300℃、300~400℃、400~500℃这三个温度范围内,将温度和电阻值的关系看做是一个正比例关系,这在编程上也容易实现。
经检验,此方法的误差很小,可以满足设计要求。
程序代码为:
uintdata_deal(uintAD)
{
floatr,ad,t;
uintT;
ad=(float)AD;
r=175.86+0.0257*ad;
if(r<
175.86)t=200;
elseif(r>
=175.86&
&
r<
212.05)t=2.759*r-284.3;
=212.05&
247.09)t=2.849*r-303.4;
=247.09&
280.98)t=2.946*r-326.2;
elset=500;
return(T);
3.3数码管显示程序
uchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//共阳LED段码表
uchartable_[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
//带小数点共阳LED段码表
uchartable1[]={0x01,0x02,0x04,0x08};
//位码
voidDisplay(uinttemp)//温度显示
{
qian=temp/1000;
//取小数位数字
bai=temp%1000/100;
shi=temp%100/10;
//取个位数字
ge=temp%10;
//动态扫描显示各位数字,P3.1-P3.4口输出位码
P3=0x00;
P2=table[qian];
P3=table1[3];
delay
(2);
P2=table[bai];
P3=table1[2];
P2=table_[shi];
P3=table1[1];
P2=table[ge];
P3=table1[0];
3.4系统主程序
3.4.1主程序流程图
图3.2主程序流程图
3.4.2程序代码
voidmain()
{
while
(1)
{
Display(data_deal(read2543(port)));
4仿真调试
Proteus是英国Labcenter公司开发的电路分析与仿真软件。
该软件的特点如下:
①具有模拟电路、数字电路、单片机应用系统、嵌入式系统(不高于ARM7)设计与仿真功能;
②具有全速、单步、设置断点等多种形式的调试功能;
③具有各种信号源和电路分析所需的虚拟仪表;
④支持KeilC51uVision2、MPLAB等第三方的软件编译和调试环境;
⑤具有强大的原理图到PCB板设计功能,可以输出多种格式的电路设计报表;
拥有PROTEUS电子设计工具,就相当于拥有了一个电子设计和分析平台;
⑥集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整电子设计工具。
该系统设计过程中,利用keilC51uVision2将编写的C程序输出为.hex文件,然后再反正过程中,将该文件导入到51单片机中。
按照设计方案接连好线之后,在需要测量的地方放置模拟的电压表、电流表以及电压探针,便于分析设计电路中存在的不足,并立即进行相应的改善。
4.1仿真结果
在仿真界面中,先设定PT100的温度,然后将其与数码管的显示的数值进行比较,记录测量的六组数据如下表所示:
表4-1仿真结果记录
设定温度℃
200
250
300
350
400
500
显示温度℃
201.2
249.2
300.9
352.5
404.3
496.1
误差值℃
1.006
0.8
0.9
2.5
4.3
3.9
误差率%
0.53
0.32
0.3
0.714
1.07
0.78
4.2综合分析
4.2.1温度输入与调理电路的输出关系
设在温度T下,PT100的电阻值为RT,由于PT100是串联的一个恒流源,且该恒流源的电流大小为:
I=4.096V/2K,则PT100两端输出的电压为Vin=RT*4.096V/2K。
接着该电压经过首级放大,放大倍数为10倍,故经过首级放大电路之后,输出电压
U1N=RT*40.96V/2K,再然后该电压信号经过偏置放大电路(偏置放大电路的原理和设计方法前面有详细介绍),最终调理电路的输出表达式为:
Vo=2.4[(RT*4.096V/2K)-3.64]V
4.2.2误差分析
根据上述仿真结果可以看出,虽然本设计的误差率不是很明显,但根本上来讲,测量精度上存在很大缺陷。
现对误差产生的情况分析如下:
首先是仪器设备的原因,毕竟理想的元器件是不存在的,从仿真调试的情况来看,运放的理论放大倍数和实际放大倍数就存在一定的区别,为偏置放大电路的设计中,根据滑动变阻器的分压也无法得到理论上精确的-3.64V,而且导致的偏差还会被放大。
两外,设计的恒流源也无法做到真正的恒流,当PT100的温度设定的较高时,可以观察到流过PT100的电流会发生微小的下降。
虽然这些影响都不是很大,但对于12位、基于5V电压的A/D转换器来讲,微小的误差已经足够影响到其转换的数字信号的输出。
另外,在程序里面关于数据的处理问题,采用的是分段线性的办法,虽说PT100