MAX6675的温度传感器报告Word格式.docx
《MAX6675的温度传感器报告Word格式.docx》由会员分享,可在线阅读,更多相关《MAX6675的温度传感器报告Word格式.docx(8页珍藏版)》请在冰点文库上搜索。
温热电阻传感器可分为金属热电阻式和半导体热电阻式两大类,前者简称热电阻,后者简称热敏电阻。
常用的热电阻材料有铂、铜、镍、铁等,它具有高温度系数、高电阻率、化学、物理性能稳定、良好的线性输出特性等,常用的热电阻如PT
100、PT1000等。
近年来各半导体厂商陆续开发了数字式的温度传感器,如DALLAS公司DS18B20,MAXIM公司的MAX65
76、MAX6577,ADI公司的AD7416等,这些芯片的显著优点是与单片机的接口简单,如DS18B20该温度传感器为单总线技术,MAXIM公司的2种温度传感器一个为频率输出,一个为周期输出,其本质均为数字输出,而ADI公司的AD7416的数字接口则为近年也比较流行的I2C总线,这些本身都带数字接口的温度传感器芯片给用户带来了极大的方便。
采用热电阻传感器设计测温电路,需要设计恒流源、冷端补偿电路、线性校正电路、放大电路、A/D转换电路,过程比较繁琐,集成度低,并且各个电路存在偏差,这些偏差经过多级电路后形成较大误差,严重影响测量温度值。
为了电路简洁方便集成度高,减小误差,本次测温电路选用K型热电偶,配合MAX6675完成测温系统。
热电偶是工业中常用的温度测温元件,具有如下特点:
①测量精度高:
热电偶与被测对象直接接触,不受中间介质的影响;
②热响应时间快:
热电偶对温度变化反应灵敏;
③测量范围大:
热电偶从20℃~80℃,它的温度分辨能力为0、25℃,可以测量0℃~10
23、75℃的温度,工作电压为
3、0~
5、5V。
MAX6675的主要特性如下:
①简单的SPI串行口温度值输出;
②0℃~+1024℃的测温范围;
③12位0、25℃的分辨率;
④片内冷端补偿;
⑤高阻抗差动输入;
⑥热电偶断线检测;
⑦单一+5V的电源电压;
⑧低功耗特性;
⑨工作温度范围-20℃~+85℃;
⑩2000V的ESD信号。
该器件采用8引脚SO帖片封装。
引脚排列如图4所示,引脚功能如下表所列。
图4:
MAX6675引脚排列MAX66475引脚功能如下表所示:
引
脚名
称功
能1GND接地端2T-K型热电偶负极3T+K型热电偶正极4VCC正电源端5SCK串行时钟输入6CS片选端,CS为低时、启动串行接口7SO串行数据输出8N、
C、空引脚
3、2、3MAX6675的工作原理与功能根据热电偶测温原理,热电偶的输出热电势不仅与测量端的温度有关,而且与冷端的温度有关,使用硬件电路进行冷端补偿时,虽能部分改善测量精度,但图5:
MAX6675工作原理由于热电偶使用环境的不同及硬件电路本身的局限性,效果并不明显;
而使用软件补偿,通常是使用微处理机表格法或线性电路等方法来减小热电偶本身非线性带来的测量误差,但同时也增加了程序编制及调试电路的难度。
MAX6675对其内部元器件参数进行了激光修正,从而对热电偶的非线性进行了内部修正。
同时,MAX6675内部集成的冷端补偿电路、非线性校正电路、断偶检测电路都给K型热电偶的使用带来了极大方便,其工作原理如图5所示。
(1)温度变换MAX6675内部具有将热电偶信号转换为与ADC输入通道兼容电压的信号调节放大器,T+和T-输入端连接到低噪声放大器A1,以保证检测输入的高精度,同时是热电偶连接导线与干扰源隔离。
热电偶输出的热电势经低噪声放大器A1放大,再经过A2电压跟随器缓冲后,送至ADC的输入端。
在将温度电压值转换为相等价的温度值之前,它需要对热电偶的冷端进行补偿,冷端温度即是MAX6675周围温度与0℃实际参考值之间的差值。
对于K型热电偶,电压变化率为41µ
/℃,电压可由线性公式Vout=(41µ
/℃)×
(tR-tAMB)来近似热电偶的特性。
上式中,Vout为热电偶输出电压(mV),tR是测量点温度,tAMB是周围温度。
(2)冷端补偿热电偶的功能是检测热、冷两端温度的差值,热电偶热节点温度可在0℃~+10
23、75℃范围变化。
冷端即安装MAX6675的电路板周围温度,比温度在-20℃~+85℃范围内变化。
当冷端温度波动时,MAX6675仍能精确检测热端的温度变化。
(3)热补偿在测温应用中,芯片自热将降低MAX6675温度测量精度,误大小依赖于MAX6675封装的热传导性、安装技术和通风效果。
为降低芯片自热引起的测量误差,可在布线时使用大面积接地技术提高MAX6675温度测量精度。
(4)噪声补偿MAX6675的测量精度对电源耦合噪声较敏感。
为降低电源噪声影响,可在MAX6675的电源引脚附近接入1只0、1μF陶瓷旁路电容。
(5)测量精度的提高热电偶系统的测量精度可通过以下预防措施来提高:
①尽量采用不能从测量区域散热的大截面导线;
②如必须用小截面导线,则只能应用在测量区域,并且在无温度变化率区域用扩展导线;
③避免受能拉紧导线的机械挤压和振动;
④当热电偶距离较远时,应采用双绞线作热电偶连线;
⑤在温度额定值范围内使用热电偶导线;
⑥避免急剧温度变化;
⑦在严劣环境中,使用合适的保护套以保证热电偶导线;
⑧仅在低温和小变化率区域使用扩展导线;
⑨保持热电偶电阻的事件记录和连续记录。
(6)
SPI串行接口MAX6675采用标准的SPI串行外设总线与MCU接口,且MAX6675只能作为从设备。
MAX6675SO端输出温度数据的格式如图3所示,MAX6675SPI接口时序如图4所示。
MAX6675从SPI串行接口输出数据的过程如下:
MCU使CS变低并提供时钟信号给SCK,由SO读取测量结果。
CS变低将停止任何转换过程;
CS变高将启动一个新的转换过程。
一个完整串行接口读操作需16个时钟周期,在时钟的下降沿读16个输出位,第1位和第15位是一伪标志位,并总为0;
第14位到第3位为以MSB到LSB顺序排列的转换温度值;
第2位平时为低,当热电偶输入开放时为高,开放热电偶检测电路完全由MAX6675实现,为开放热电偶检测器操作,T-必须接地,并使能地点尽可能接近GND脚;
第1位为低以提供MAX6675器件身份码,第0位为三态。
图6:
SO端数据输出图7:
MAX6675通信协议图图8:
MAX6675典型应用
3、3、89C51单片机MCU是整个系统的控制核心,由于温度测量系统的接口方便,综合考虑整个系统,选用美国ATMEL公司生产的AT89C51型单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,其外观引脚如图9所示:
图9:
89C51单片机AT89C51提供以下标准功能:
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完毕,均可发出中断请求。
3、4、4位共阳极LED7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,可以显示0~9等10个数字和小数点,使用非常广泛。
图10:
(a)管脚排列(b)共阳结构设计中采用的是7SEG-MPX4-CA,如下图示:
1234为位选,ABCDEFGDP为段码。
图11:
ABCDEFGDP为段码
4、硬件电路
4、1、温度采集转换电路模块温度采集电路模块包括K型热电偶和max6675所组成的电路模块,其电路原理图如图3-2所示,热电偶的功能是检测热、冷两端温度的差值,热电偶热节点温度可在0℃~+l0
冷端即安装MAX6675的电路板周围温度,此温度在-20℃~+85℃范围内变化。
MAX6675是通过冷端补偿检测和校正周围温度变化的。
该器件可将周围温度通过内部的温度检测二极管转换为温度补偿电压,为了产生实际热电偶温度测量值,MAX6675从热电偶的输出和检测二极管的输出测量电压。
该器件内部电路将二极管电压和热电偶电压送到ADC中转换,以计算热电偶的热端温度。
当热电偶的冷端与芯片温度相等时,MAX6675可获得最佳的测量精度。
因此在实际测温应用时,应尽量避免在MAX6675附近放置发热器件或元件,因为这样会造成冷端误差。
图12:
温度采集转换电路模块
4、2、放大电路放大器的输入信号Vin=Vout=(V+)。
根据电路图可以得到方程:
VA+=300V-/(300+30)
①VA-=VA+②③联立方程可得:
Vo=-10(V+)=S-10Vout
4、3、电压跟随器根据电路图可得:
Vin=255#defineuintunsignedint//用uint代替nsignedint,2字节0-26653sbitSO=P1^0;
//P
1、0口与SO相连sbitSCK=P1^1;
1、1口与SCK相连sbitCS=P1^2;
1、2口与CS相连uintj;
floatwendu;
uintRead_AD();
//AD转换数据数据读取,并返回值voidDisplay_temp();
//温度显示ucharqian=0,bai=0,shi=0,ge=0,xiao=0;
//初始化LEDuinttemp;
ucharcodetab_1[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//共阳LED段码表ucharcodetab_2[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
//含小数点共阳段码"
0"
"
1"
2"
3"
4"
5"
6"
7"
8"
9"
ucharcodetab_3[4]={0x01,0x02,0x04,0x08};
//位码uintRead_AD()
//AD转换数据读取子函数,并返回值{uchari;
unsignedlongTemp_2;
Temp_2=0;
CS=1;
SCK=0;
_nop_();
//这个_nop_()等效与汇编里面的NOP指令,即空一个机器周期,CS=0;
for(i=0;
i<
16;
i++)
//16位数据读取{Temp_2<
<
=1;
//向左移一位_nop_();
SCK=1;
//上升沿脉冲if(SO==1)
{Temp_2=Temp_2|0x01;
}elseTemp_2=Temp_2|0x00;
_nop_();
}Temp_2=Temp_2&
0x7FF8;
//取3-14位Temp_2=Temp_2*1024/4096;
//变换为温度值return(Temp_2);
//返回值}voidDisplay_temp()
//温度显示子函数{uinttemp=wendu;
temp=temp*10;
if(wendu<
=500)
//最高读取温度设定为800摄氏度{bai=wendu/1000;
//取百位数字wendu=wendu%1000;
shi=wendu/100;
//取位数字wendu=wendu%100;
ge=wendu/10;
//取个位数字wendu=wendu%10;
xiao=wendu;
//动态扫描显示各位数字,P
3、1-P
3、4口输出位码P3=0x00;
P0=tab_1[bai];
P3=tab_3[0];
//显示百位数字for(j=300;
j>
0;
j--);
//延时P3=0x00;
P0=tab_1[shi];
P3=tab_3[1];
//显示位数字for(j=300;
P3=0x00;
P0=tab_2[ge];
P3=tab_3[2];
//显示个位数字for(j=300;
P0=tab_1[xiao];
P3=tab_3[3];
//显示小数位for(j=300;
}}voidmain()
//主程序{for(j=300;
while
(1)
{wendu=Read_AD();
//热电偶数据读取,返回温度Display_temp();
//温度显示}}
7、仿真结果在proteus中画好电路,检验没有错误后,将单片机的程序指定到编译好的hex文件,然后开始仿真,从200℃到500℃随机选取几组温度值,记录LED显示的数值。
实际温度值与测量温度值如下表示:
温度值233281354420487测量值23228235542048
78、误差分析在系统设计过程中难免会有误差,虽不能绝对地消除,但我们可以尽量将他们减小到最低程度。
由于环境温度的变化,热电偶的冷端随时可能发生变化,然而该系统存在一定的热响应时间,所以环境温度的快速变化可能带来冷端补偿造成的一系列的误差问题,而且器件的参数也存在一定的误差,之后在放大、AD转换、和数字量化的转换过程中也会因为热噪声或其他的干扰源带来转换的误差,其中的热响应时间会造成测量的温度是前一刻短暂时间的瞬时温度,在实际测温应用时,应尽量避免在MAX6675附近放置发热器件或元件,因为这样会造成冷端误差。
热电偶系统的测量精度可通过以下预防措施来提高:
⑦在恶劣环境中,使用合适的保护套以保证热电偶导线;
9、总结体会本文主要采用K型热电偶、K型热电偶专用数字转换芯片MAX66
75、AT89C51单片机进行了相关设计。
MAX6675将热电偶测温应用时复杂的线性化、冷端补偿及数字化输出等问题集中在一个芯片上解决,简化了将热电偶测温方案应用于嵌入式系统领域时复杂的软硬件设计,因而该器件是将热电偶测温方案应用于嵌入式系统领域的理想选择。
根据快速算法的原理通过AT89C51单片机软件编程实现了温度的快速测量。
这次设计中遇到了很多问题,开始没有按顺序操作,导致系统出现错误不能工作。
很多的挫折让我感受到:
在设计程序之前,务必要对所学单片机课程的内容有一个系统的了解,其实对硬件熟悉才能编好程序,不会硬件去编程是不行的。
在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。
成本的高低也决定了产品的适用性。
不同的元件来组成电路实现相同的功能,要从中比较分析确定最优秀的设计组合。
通过课程设计,我学会可充分利用图书资源和网络资源进行学习研究,对常见的集成电路器件的功能和引脚接法有了进一步的了解和认识。
这让我明白阅读查找文献的重要性,平时多积累知识,真正到了用的时候,才会得心应手。
设计程序要有一个清晰的思路和一个完整的软件流程图。
模块化的设计思想在程序设计非常重要,它可以为你提供一个比较清晰的思路,并且很容易找到头绪,不至于在编写一个程序时感觉到无从下手。
在设计程序时,不能可一次就将整个程序设计好,"
反复修改,不断改进"
才是程序设计。
程序第一次编好时会存在很多错误,要不断地修改,不断的改进才能实现预期的功能。
总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我学会了如何去培养创新精神和严谨的科学作风,从而战胜自己,超越自己。
我相信这些能力在我以后的学习中一定会起到不小的作用,辛苦和艰难都是值得的。