磨削技术网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 525|回复: 0

K型热电偶数字转换器MAX6675及其在铝水平温度测量仪中的应用

[复制链接]
发表于 2010-9-11 22:02:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛

您需要 登录 才可以下载或查看,没有账号?注册会员

x
K型热电偶是工业生产中最常用的温度传感器,具有结构简单、制造容易、使用方便、测温范围宽等特点。目前,在以K型热电偶为测温元件的工业测温系统中,热电偶输出的热电势信号必须经过中间转换环节,才能输入基于单片机的嵌入式系统。中间转换环节包括信号放大、冷端补偿、线性化及数字化等几个部分,实际应用中,由于中间环节较多,调试较为困难,系统的抗干扰性能往往也不理想。在铝水平温度测量仪的研制中,我们采用了MAXIM公司新近推出的MAX6675,它是一个集成了热电偶放大器、冷端补偿、A/D转换器及SPI串口的热电偶放大器与数字转换器,可以直接与单片机接口,大大简化系统的设计,保证了温度测量的快速、准确。 1 [: U) x, \2 z6 [2 A1 ~

  1 MAX6675特性

& t/ a& ^: Q; _$ e& ~

  1.1 特性

& L: @0 i" D5 f; J/ n% y3 m

  MAX6675是具有冷端补偿和A/D转换功能的单片集成K型热电偶变换器,测温范围0℃~1024℃,主要功能特点如下:

1 ^2 X7 k" r- d) ^3 N

  n      直接将热电偶信号转换为数字信号

/ t1 E+ B' c7 l& _2 N4 N+ U

  n      具有冷端补偿功能

+ [& A0 c& e& ?7 }7 W! v& C

  n      简单的SPI串行接口与单片机通讯

) M2 ~. r, [- E& X( O7 f

  n      12位A/D转换器、0.25℃分辨率

) t3 Q/ w) m$ C! r0 a( z

  n      单一+5V的电源电压

( [( r2 p* C5 r' V# N

  n      热电偶断线检测

# |8 Q+ g: ~/ g O2 ?0 i

  n      工作温度范围-20℃~+85℃

6 T2 @/ F+ Q5 {9 s% O4 }6 [3 M' g4 ~

  1.2 引脚功能

( ?9 ~& f7 l' m2 v; h* ~3 x

  MAX6675采用SO-8封装形式,有8个引脚,脚1(GND)接地,脚2(T-)接热电偶负极,脚3(T+)接热电偶正极,脚4(VCC)电源端,脚5(SCK)串行时钟输入端,脚6(CS)片选端,使能启动串行数据通讯,脚7(SO)串行数据输出端,脚8(NC)未用。在VCC和GND之间接0.1μF电容。

2 o2 Y1 ]8 `$ m

$ O- `% H) p4 c( T) U4 c. j

  MAX6675的引脚如图1所示。

; \# n5 K6 K. q- L; M S: E

2 I; Z# j4 T2 a5 \1 l. l+ N i( a

  1.3 工作原理

4 q: H& V$ c4 u4 q

  MAX6675是一复杂的单片热电偶数字转换器,其内部结构如图2所示。主要包括:低噪声电压放大器A1、电压跟随器A2、冷端温度补偿二极管、基准电压源、12位AD转换器、SPI串行接口、模拟开关及数字控制器。

' @ ]! H% m' M- {2 K. @- x( h

  其工作原理如下:K型热电偶产生的热电势,经过低噪声电压放大器A1和电压跟随器A2放大、缓冲后,得到热电势信号U1,再经过S4送至ADC。。对于K型热电偶,电压变化率为(41μV/℃),电压可由如下公式来近似热电偶的特性。

/ K6 K7 z+ m2 T' t/ ~5 G

  U1=(41μV/℃)×(T-T0)

. F$ K8 v5 R( ]/ f7 \- `

  上式中,U1为热电偶输出电压(mV),T是测量点温度;T0是周围温度。

) y1 h' A3 V" d- S1 s* [

  在将温度电压值转换为相应的温度值之前,对热电偶的冷端温度进行补偿,冷端温度即是MAX6675周围温度与0℃实际参考值之间的差值。通过冷端温度补偿二极管,产生补偿电压U2经S4输入ADC转换器。

+ g* @) C3 F A( M4 {* d' y

  U2=(41μV/℃)×T0

2 g/ X+ T4 e3 z

  在数字控制器的控制下,ADC首先将U1、U2转换成数字量,即获得输出电压U0的数据,该数据就代表测量点的实际温度值T。这就是MAX6675进行冷端温度补偿和测量温度的原理。

0 k9 Z! z0 x/ I, K' X" E

8 c0 K3 O* t0 [8 y" J {0 w

  1.4 与单片机的通讯

$ F) L' D9 [1 @7 u: G& l

  MAX6675采用标准的SPI串行外设总线与单片机接口。MAX6675从SPI串行接口输出数据的过程如下:单片机使CS置为低电平,并提供时钟信号给SCK,由SO读取测量结果。CS变低将停止任何转换过程,CS变高将启动一个新的转换过程。将CS变低在SO端输出第一个数据,一个完整串行接口读操作需16个时钟周期,在时钟的下降沿读16个输出位,第1个输出位是D15,是一伪标志位,并总为0;D14位到D3位为以MSB到LSB顺序排列的转换温度值;D2位平时为低,当热电偶输入开放时为高,开放热电偶检测电路完全由MAX6675实现,为开放热电偶检测器操作,T-必须接地,并使接地点尽可能接近GND脚;D1位为低以提供MAX6675器件身份码,D0位为三态标志位。  

1 k: w* K- M8 A* o+ S

  MAX6675 SO端输出温度数据的格式如图3所示。

, r) g4 p$ j/ X& B8 T

! G, i% I% p3 {& M3 A

  2 在铝水平温度测量仪中的应用

; l0 c7 w. _; N# N ~6 J

  本文所述铝水平温度测量仪是一工作于铝电解现场的测量装置,其控制部分采用单片机控制,对温度部分的要求是:在得到测量要求信号后,实时测量出当前热电偶探头的温度并保存,可检测K型热电偶探头断线状况并报警。

' B0 Z6 [2 A1 `4 L' J/ |( Y

  2.1 硬件实现

$ ~$ |* Z1 `8 ~/ S4 u( d

  该铝水平温度测量仪的K型热电偶温度采集电路如图所示。其微控制器采用ATMEL公司的FLASH单片机AT89C51,该微控制器具有4K内部可擦写程序存储器和32个输入/输出端口,满足本系统中液位测量、数据显示、温度测量、数据通讯、看门狗电路的需要。作为一款廉价的通用型单片机,AT89C51没有SPI接口。因此采用I/O口线模拟SPI串行口来对MAX6675读取数据。MAX6675的CS端接单片机的P1.0脚,CS低电平停止转换,MAX6675准备将数据输出;SCK引脚接单片机的P1.1脚,为传输数据提供时钟。无数据传输时,SCK应置为低电平;SO引脚接单片机的P1.2脚,用于传输数据。单片机的P1.3脚作为K型热电偶探头断线报警口,报警时输出低电平,驱动故障指示LED显示。

* |2 ~( D/ K6 B# X

  在单片机的上述4个引脚各接一个10K的上拉电阻,保证数据的可靠传送。由于MAX6675的测量精度对电源耦合噪声较敏感,为降低电源噪声影响,在MAX6675的电源引脚附近接入1只0.1μF陶瓷旁路电容。在印刷电路板的设计中,采用大面积接地技术来降低芯片自热引起的测量误差,提高温度测量精度。

7 A- g3 n% Z7 f7 s; S

, d; S8 L! L( Q' a

  本系统主要测量铝电解槽中的温度,其正常工作温度范围为920℃—1000℃,为了准确的测量这一区段的温度值,系统利用X25045芯片内部的4096位串行E2PROM(非易失存储器),保存温度补偿参数,掉电不丢失,保证系统可应用于各种环境条件。

0 y- H8 ?4 j. a# a) H# A

  2.2 软件实现

& w: k0 f+ y5 ]+ [ q: V6 x

    温度测量是铝水平温度测量过程的最后一个环节,在系统测量完铝水平后,开始进行温度测量,这一部分程序作为一个独立的程序段,定时调用,主要包括MAX6675数据读取、开路判断、数据处理和码制转换等几个部分。程序流程如下:

/ l1 r8 G7 }0 f, ^/ s; w! v; k

5 T$ d& j: D$ m+ S4 u# B. b1 R5 {

  下面给出MAX6675温度值读取程序设计:

\# i+ A: Q: |

  ;温度值读取程序

2 `1 X5 m+ u0 b# v1 h" p5 S

  ;位定义

: T/ c+ O2 _! l1 W* D

  CS   BIT P1.0    ;数据输入

2 \1 h: ~5 H, e f9 X

  SCK     BIT P1.1    ;片选

3 ^( q. A: L, C6 h

  SO   BIT P1.2    ;时钟

; N6 A% }" `% F- t% O( m

  ;数据字节定义

. E& {# ?6 t7 a9 A9 D7 G5 d

  DATAH    DATA   40H  ;读取数据高位

- y* I% ^# V9 i+ j' F& I9 H: }

  DATAL    DATA   41H   ;读取数据低位

, b# B! q4 G2 R6 n4 ]

  TDATAH  DATA   42H    ;温度高位

9 h9 @$ s( N0 x, I) z1 v& U# Q

  TDATAL  DATA   43H    ;温度低位

) r. U. g" M( _, I# U

  CLR     CS          ;CS低电平,停止数据转换,输出数据D15

9 h$ _& F# X9 {- F( w$ _

  CLR     CLK        ;时钟置为低电平

2 [3 b4 m! _! Y

  MOV     R7,  #08H

9 c$ N E8 B; u% g" Z

  RD_DATAH:             ;读数据高位字节D15-D8

U. ~7 H/ Y( x1 m

  MOV        C,SO    ;读SO端数据

. M7 d2 b# g3 r1 F8 r4 F! f

  RLC     A       ;累加器左移一位

2 G! f( W$ |! ~5 x# A6 _" I& e

  SETB    SCK

& Y# x+ W% z H% d

  NOP

& a# |+ r* J7 @6 H% p

  CLR     SCK

, `* L+ s& r- i

  DJNZ    R7,RD_DATA  

( j1 P. Z$ y" q" m3 X

  MOV        DATAH,A   ;将数据高位移入缓冲区

, r$ H# J, |! F& a4 v! c, m/ }/ u7 u

  MOV     R7,#08H

) R2 G* @, h3 Q4 S6 w

  RD_DATAL:               ;读数据低位字节D7-D0

( I" ^3 h1 c* s; Q# S8 Z5 {9 H

  MOV     C,SO    ;读SO端数据

6 v5 Z) y& A( |: `1 s& Y

  RLC        A       ;累加器左移一位

$ U, b$ Y+ s: I% d+ x

  SETB       SCK

, R& a$ `) ^ I; K) }0 R

  NOP

! n; \0 m4 { ^

  CLR        SCK

4 X" k% C% r, T) d. E0 K9 T

  DJNZ       R7,RD_DATAL

$ D7 z) N# h" e( _

  MOV        DATAL,A ;将数据低位移入缓冲区

4 F) t+ F+ S! k$ m" f

  SETB        CS   ;CS高电平,停止数据输出,启动新的数据转换;数据转换子程序,将读得的16位数据转换为12位温度值,去掉无用的位

# ^9 G' l/ ?: i" y. E) M ?

  MOV     A,DATAL 

O; N+ O4 J; Y& |: z

  RLC     A      

5 ?& H8 s7 e! E; {7 f+ W# {4 X

  MOV     DATAL,A

0 Y0 j( d* E# z1 z; @

  MOV     A,DATAH

- {/ _0 g. l% |& x7 f5 M

  RLC     A       ;整个数据位左移一位,去掉D15位

; a) a9 r1 `* v3 N7 T& [

  SWAP A       ;将DATAH中的高低4位数据互换

6 d B5 K$ H6 u/ m+ O0 y5 e+ g- `

  MOV     B,A    ;数据暂存于B中

7 D3 ^; |7 [7 h

  ANL     A,#0FH   ;得到温度数据高位字节部分D14 ~D11

+ ]7 `2 [" r2 e7 \) t6 k- [* S

  MOV     TDATAH,A ;将温度值高位字节保存

1 H, K" r9 S" C

  MOV     A,B

3 I$ ~& I* P" o* y9 _

  ANL     A,#0F0H  ;得到温度数据低位字节部分D10 ~D7

; y% l* ~6 M4 x A n/ v

  MOV     B,A   

9 W( T, g* N/ \) J' I% u

  MOV     A,DATAL  ;

0 i4 o4 U/ t" u. H$ t) [+ g- U

  ANL     A,#0FH   ;得到温度数据低位字节部分D6 ~D3

8 J5 }2 s0 O$ I7 t6 N# t: L: S

  ORL     A,B    ;合并的温度低位字节

# t$ y4 w8 I' {- o

  MOV     TDATAL,A ;将温度值低位字节保存  

& L+ A$ t4 G9 q% J, V. |

  3 应用中注意的几个问题

& ^4 O0 \, `' ?" O- S

  在铝水平温度测量仪的设计和调试过程中遇到诸多问题,现将与MAX6675相关的几个问题和使用心得摘录如下,以供参考。

& C+ \) y% Z4 Y$ s7 \

  1)MAX6675芯片对电源噪声较为敏感,尽量将MAX6675布置在远离其他I/O芯片的地方。

4 S) \$ Q$ K: M+ y

  2)MAX6675芯片T-必须接地,并使接地点尽可能接近GND脚,否则读出数据为无规律的乱码。

( R8 M- _0 ^3 U" ]! o0 u w4 D9 m

  3)MAX6675是通过冷端补偿来校正周围温度变化的。该器件将周围温度通过内部的温度检测二极管转换为温度补偿电压,该器件内部电路将二极管电压和热电偶电压送到ADC中转换,以计算热电偶的热端温度。当热电偶的冷端与芯片温度相等时,MAX6675可获得最佳的测量精度。因此在实际测温应用时,应尽量避免在MAX6675附近放置发热器件或元件,例如7805等带散热片的稳压器件。

1 X6 y5 W) | e

  4)尽量采用大截面积的热电偶导线,长距离传输时,可采用双绞线作为信号传输线。

) e9 s( N7 w6 ^7 @. D& Z- i

  5)根据应用场合的不同,可通过相应的数字滤波器进行数据处理,以提高所需要某一段测量数据的准确性。

) ~2 ?/ @3 d# ?8 n" J, g- W6 b0 m

  4 结束语

5 o6 m* S! \8 h% w

    MAX6675将热电偶测温应用时复杂的线性化、冷端补偿及数字化输出等集中在一个芯片上解决,简化了铝水平温度测量仪中热电偶测温电路的设计,实际运行结果表明,该测温系统抗干扰能力强、结构简单、可靠性高,测量精度满足要求。因此,在基于微处理器的单片机嵌入式工业测温系统中,由MAX6675构成的单片热电偶测温解决方案,具有良好的实用价值。

- P6 `* d/ O- o) {# {
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网

QQ|小黑屋|手机版|Archiver|磨削技术网 ( 苏ICP备12056899号-1 )

GMT+8, 2024-5-18 09:05 , Processed in 0.122169 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表