温度传感器及其与微处理器接口
1.2 输出跳变信号的模拟温度传感器 在某些系统中,并不需要知道精确的温度值,而只需了解温度是否高于或低于某特定值即可。该信息可用来触发风扇、空调、加热器等控制单元、这种特殊的模拟温度传感器一般只是输出跳变信号进行控制,通常称之为温度控制器。 用一个电压比较器取代图1中的ADC,产生的1位输出可驱动微控制器的一条I/O线,如图3所示。为避免电源电压变化的影响,比较器的门限电压可取自电压基准而非电源电压。 将传感器与比较器组合电路进行集成,使系统坦步简化。这种集成的温度控制器经常被称为温度开关。这种单片器件组合了传感器、比较器、电压基准和必要的电阻等多种器件。当温度超过预设门限时,输出电平发生跳变,控制加温或致冷器件通断。MAXIM公司的MAX6501/6502是热温开关,从厂家45℃到95℃预置了6种温度门限。MAX6503/6504是冷温开关,其温度门限为-15℃和5℃两种。MAC6501/6503为开漏输出,低电平有效,MAX6502/6504为推拉输出,高电平有效。MAX6501的输出经上拉电阻后可以直接驱动微处理器的中断或复位,如图4所示。MAX6502的输出经简单驱动后,可以直接控制风扇工作。通过一些简单的电路配合,还可以将其应用于温度窗口报警。分层次控制等。这样的芯片还是AD公司的AD22105等。 2 数字温度传感器 将模拟温度传感器与数字转换接口电路集成在一起,就成为具有数字输出能力的数字温度传感器。随着半导体技术的迅猛发展,半导体温度传感器与相应的转换电路、接口电路以及和种其它功能电路逐渐集成在一起,形成了功能强大、精确、价廉的数字温度传感器。 2.1 单线输出的数字温度传感器 单线输出的特点是接口电路简单,测出的温度值精确,所以在一般应用中,这种世馘 得到了偏爱。由于只有一根输出线,测量出的温度值必须转换成某种方式进行输出。常见输出方式有时间输出、频率输出及数值输出等,然后再由微处理器将温度传感器输出的信号转换成真实温度值,进行进一步的算是与控制。 2.1.1 时间输出的温度传感器 AD公司的TMP03/04是常用的时间输出的数字温度传感器。它们输出经过调制后的矩形波,应用中只需测得其输出方波占空比T1/T2中T1和T2的实际时间宽度,即可计算出被测对象的温度。与微处理器连接时只需将芯片输出与微处理器的定时器/计数器相连,就可很容易地测出T1、T2的时间宽度,并计算出相应的温度值。TMP03为集电极开路输出,需上人拉电阻,TMP04为开漏输出,可直接驱动逻辑电路。MACIM公司的MAX6576也是一种输出时间的温度传感器。它输出的方波信号周期正比于绝对温度。其接口方式如图5所示。 MAXIM公司的MAX6575L/H芯片是另一种非常方便实用的时间输出的温度传感器。它的特点是在一根I/O线上最多可以同时接8只芯片,同时测8个点位的温度而不相互干扰。通过对管脚TS0、TS1的不同连接及选择“L”、“H”不同型号,可以设置芯片不同延时系数。测量温度时,微处理器启动转换,经正比于绝对温度值的延时tDx后,MAX6575拉低I/O线。通过测量这个延时时间tDx,再利用所设置的该芯片的延时系数,可以计算出该芯片所测的温度值。由于各芯片延时系数不同,其延时时间并不会相互重叠,使用微处理器的定时器/计数器可以分别测出各个芯片的延时时间,再计算出各个芯片所测出的温度。 2.1.2 频率输出的单线温度传感器 MAX6577是输出频率信号的数字温度传感器。它输出占空比为1/2的方波,其频率正比于绝对温度。它的内部结构及使用方式 与MAX6576非常相拟。通过引脚TS0、TS1选择适录的频率/温度比例常数,再由微处理器的内部计数器测出频率后,计算出后测温度。其与微处理器的接口方式见图5。 2.1.3 数值输出的单线温度传感器 数值输出的单线温度传感器直接以串行方式输出芯片测出的具体温度数值,怕以其时序非常重要。DALLAS公司的DS1820就是这样一种独特的温度传感器。它只需一个接口引脚即可通信,可用数据线供电,并具备多点测温能力。其硬件连接及时序图如图6所示。其读写时序主要有复位、读时间片和写时间片三种时序操作。芯片本身带有命令集和存储器,微处理器通过发出控制命令,对芯片存储器进行读写,完成温度测量。芯片电源也可由微处理的I/O口提供。微处理器在读写DS1820前先使其复位,检测到其应答信号后,微处理器发ROM操作命令,然后再发控制命令。多点温度测量时,只需并联多只DS1820并放在各测温点上,在使用前对各个芯片进行ROM搜索并将各个芯片的序列号保存起来。以后对每个DS1820寻址时,只要发相应的序列号,然后再对其进行其它操作即可。与DS1820类似的芯片还有DS1822。 2.2 基于总线协议输出的数据温度传感器 为了提高可靠性,方便使用,人们又设计了许多基于某种总线协议输出的数字温度传感器。这种温度传感器一般有多根线输出。输出格式和时序严格遵守某种协议,适用于各种场合,尤其是远端测量。常见的协议格式有SMBus协议、I2C协议等。 2.2.1 基于SMBus总线的温度传感器 MAXIM公司的MAX1617~1619系列都是采用SMBus串行接口的远端温度传感器。MAX1619用来监测PC机内CPU的温度。它通过施加电流并测量正向结压测量外部PN结(分立晶体管、ASIC或CPU内)的结温,并通过SMBus二线串行接口将结果(8位精度)传给微处理器。SMBus接口的两根线分别是时钟线和数据线,如图7所示。在使用中,软件的编写必须严格遵守SMBus协议的规范。MAX1619可同时本地测量自身封装温度,且具有风扇控制输出;还可事先设定温度门限,当温度高于或低于该门限值时中断微处理器。通过管脚编程,改变ADD0、ADD1的连接方式,可以选择最多9个不同的SMBus地址,连接可允许多个MAX1619连接在同一总线上而不致地址冲突。 2.2.2 基于I2C总线的温度传感器 AD公司的AD7416是具有I2C二线串行接口的低功耗数字温度传感器。它通过一个片仙温度传感器精确测环境温度,然后经过10位A/D转换串行输出。它也具有预设温度门限和中断输出功能。AD7416串行总线地址的最低3位是通过管脚编程选择的,因此可以在一条总线上连接多达8个芯片。I2C的两条线分别是时钟线和双向数据线。在使用中软件的编写要严格遵守I2C协议的格式和时序。 由于SMBus接口和I2C接口的相似性,AD公司的AD7414、AD7415的输出同时兼容了这两种接口,更大地方便了使用。 2.2.3 基于SPI接口的温度传感器 AD公司的AD7814是具有SPI串行接口的温度传感器。它可以与大多数身长处理器及DSP配合使用。AD7814与8051系列微处理器的接口方式十分简单,8051工作在串行接口方式0下,AD7814的管脚DOUT和SCLK分别接在8051的串行口P3.0与P3.1,DIN接地,CS由某一数据I/O口控制,如P1.0。要向AD7814写入数据以完成某种特殊功能时,需使用DIN管脚,则可用8051的其它数据端口进行控制。 随着信息产业化的到来,温度传感器尤其是半导体温度传感敢会因此得到进一步的发展。数字半导体温度传感器由于其廉价、精确、线性、低功耗、小型化等特点必将得到更大的发展。 |