热电偶作为一种主要的测温元件,具有结构简单、制造容易、使用方便、测温范围宽、测温精度高等特点。但是将热电偶应用在基于 单片机 的嵌入式系统领域时,却存在着以下几方面的问题。①非线性:热电偶输出热电势与温度之间的关系为非线性关系,因此在应用时必须进行线性化处理。②冷补偿:热电偶输出的热电势为冷端保持为0℃时与 测量 端的电势差值,而在实际应用中冷端的温度是随着环境温度而变化的,故需进行冷端补偿。③数字化输出:与嵌入式系统 接口 必然要采用数字化输出及数字化接口,而作为模拟小信号测温元件的热电偶显然法直接满足这个要求。因此,若将热电偶应用于嵌入式系统时,须进行复杂的信号放大、A/D转换、查表线性线、温度补偿及数字化输出接口等软硬件设计。如果能将上述的功能集成到一个 集成电路 芯片中,即采用单芯片来完成信号放大、冷端补偿、线性化及数字化输出功能,则将大大简化热电偶在嵌入式领域的应用设计。
Maxim公司新近推出的MAX6675即是一个集成了热电偶 放大器 、冷端补偿、A/D转换器及S PI 串口的热电偶放大器与数字转换器。
1、性能特点
MAX6675的主要特性如下:
①简单的SPI串行口温度值输出;
②0℃~+1024℃的测温范围;
③12位0.25℃的分辨率;
④片内冷端补偿;
⑤高 阻抗 差动输入;
⑥热电偶断线检测;
⑦单一+5V的电源电压;
⑧低功耗特性;
⑨工作温度范围-20℃~+85℃;
⑩2000V的ESD信号。该器件采用8引脚SO帖片封装。引脚排列如图1所示,引脚功能如表1所列。
2、工作原理
MAX6675的内部结构如图2所示。该器件是一复杂的单片热电偶数字转换器,内部具有信号调节放大器、12位的模拟/数字化热电偶转换器、冷端补偿传感和校正、数字控制器、1个SPI兼容接口和1个相关的逻辑控制。
2.1 温度变换
MAX6675内部具有将热电偶信号转换为与 ADC 输入通道兼容电压的信号调节放大器,T+和T-输入端连接到低噪声放大器A1,以保证检测输入的高精度,同时使热电偶连接导线与干扰源隔离。热电偶输出的热电势经低噪声放大器A1放大,再经过A2电压跟随器缓冲后,被送至ADC的输入端。在将温度电压值转换为相等价的温度值之前,它需要对热电偶的冷端温度进行补偿,冷端温度即是MAX6675周围温度与0℃实际参考值之间的差值。对于K型热电偶,电压变化率为41μV/℃,电压可由线性公式Vout=(41μV/℃)×(tR-tAMB)来近似热电偶的特性。上式中,Vout为热电偶输出电压(mV),tR是测量点温度;tAMB是周围温度。
2.2 冷端补偿
热电偶的功能是检测热、冷两端温度的差值,热电偶热节点温度可在0℃~+1023.75℃范围变化。冷端即安装MAX6675的 电路板 周围温度,比温度在-20℃~+85℃范围内变化。当冷端温度波动时,MAX6675仍能精确检测热端的温度变化。
MAX6675是通过冷端补偿检测和校正周围温度变化的。该器件可将周围温度通过内部的温度检测 二极管 转换为温度补偿电压,为了产生实际热电偶温度测量值,MAX6675从热电偶的输出和检测二极管的输出测量电压。该器件内部 电路 将二极管电压和热电偶电压送到ADC中转换,以计算热电偶的热端温度。当热电偶的冷端与芯片温度相等时,MAX6675可获得最佳的测量精度。因此在实际测温应用时,应尽量避免在MAX6675附近放置发热器件或元件,因为这样会造成冷端误差。
2.3 热补偿
在测温应用中,芯片自热将降低MAX6675温度测量精度,误大小依赖于MAX6675封装的热传导性、安装技术和通风效果。为降低芯片自热引起的测量误差,可在 布线 时使用大面积接地技术提高MAX6675温度测量精度。
2.4 噪声补偿
MAX6675的测量精度对电源 耦合 噪声较敏感。为降低电源噪声影响,可在MAX6675的电源引脚附近接入1只0.1μF陶瓷旁路 电容 。
2.5 测量精度的提高
热电偶系统的测量精度可通过以下预防措施来提高:①尽量采用不能从测量区域散热的大截面导线;②如必须用小截面导线,则只能应用在测量区域,并且在无温度变化率区域用扩展导线;③避免受能拉紧导线的 机械 挤压和 振动 ;④当热电偶距离较远时,应采用双绞线作热电偶连线;⑤在温度额定值范围内使用热电偶导线;⑥避免急剧温度变化;⑦在严劣环境中,使用合适的保护套以保证热电偶导线;⑧仅在低温和小变化率区域使用扩展导线;⑨保持热电偶 电阻 的事件记录和连续记录。
2.6 SPI串行接口
MAX6675采用标准的SPI串行外设总线与 MCU 接口,且MAX6675只能作为从设备。MAX6675 SO端输出温度数据的格式如图3所示,MAX6675 SPI接口时序如图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位为三态。
3、 测温应用
下面给出MAX6675应用于嵌入式系统的具体方法。这里以AT89C2051单片机为例,给出MAX6675与单片机接口构成的测温电路及相应的温度值读取、转换程序。
MAX6675为单片数字式热电偶放大器,其工作时无需外接任何的外围元件,这里为降低电源耦合噪声,在其电源引脚和接地端之前接入了1只容量为0.1μF的电容。
MAX6675与AT89C2051单片机的接口电路如图5所示。
由于AT89C2051不具备SPI总线接口,故这里采用模拟SPI总线的方法来实现与MAX6675的接口。其中P1.0模拟SPI的数据输入端( MI SO),P1.1模拟SPI的串行时钟输出端SCK,P1.2模拟SPI的从机选择端SSB。下面给出相应的温度值读取程序及数据转换程序。
;温度值读取程序
;位定义
SO BIT T1.0 ;数据输入
CS BIT P1.1 ;从机选择
SCK BIT P1.2 ;时钟
;数据字节定义
DATAH DATA 30H ;读取数据高位
DATAL DATA 31H ;读取数据低位
TDATAH DATA 32H ;温度高位
TDATAL DATA 33H ;温度低位
;读温度值子程序
READY:CLR CS ;停止转换并输出数据
CLR CLK ;时钟变低
MOV R2,#08H
READH:MOV C,SO
RLC A ;读D15~D8高8位数据
SETB CLK
NOP
CLR CLK
DJNZ R2,READH
MOV DATAH,A;将读取的高8位数据保存
MOV R2,#08H
READL:MOV C,SO ;读D7~D0低8位数据
RLC A
SETB CLK
NOP
CLR CLK
DJNZ R2,READL
MOV DATAL,A;将读取的低8位数据保存
SETB CS
;启动另一次转换过程
RET
;数据转换子程序,将读得的16位数据转换为12位温度值,去掉无用的位。
D16T12:MOV A,DATAL
CLR C
RLC A
MOV DATAL,A
;数据整体右移1位,
MOV A,DATAH;以去掉D15伪志位
RLC A
SWAP A ;将DATAH中的数据高低4位互换
MOV B,A ;数据暂存于B中
MOV A,#0FH ;得到温度值的D11~D8位,并将D15~D12位置0
MOV TDATAH,A;转换后的数据送温度高位
MOV A,B;取出温度值的D7~D4位
ANL A,#0F0H
MOV B,A;暂存B中
MOV A,DATAL
ANL A,#0F0H ;取出温度值的D3~D0
SWAP,A
ORL A,B ;合并成低位字节
MOV TDATAL,A ;转换后的数据送温度高位
RET
结语
MAX6675将热电偶测温应用时复杂的线性化、冷端补偿及数字化输出等问题集中在一个芯片上解决,简化了将热电偶测温方案应用于嵌入式系统领域时复杂的软硬件设计,因而该器件是将热电偶测温方案应用于嵌入式系统领域的理想选择。
责任编辑:gt