微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 简化微控制器与温度传感器的接口

简化微控制器与温度传感器的接口

时间:11-28 来源:互联网 点击:

  温度是一个模拟量,但数字系统经常用到温度来完成测量、控制和保护等功能。如果使用合适的技术和器件,从模拟温度到数字信息所必需的转换将很容易。

  用微控制器(IC)读取温度值在理论上很简单。利用模数转换器(ADC)将热敏电阻分压器、模拟输出温度传感器或其它模拟温度传感器的输出转换为数码,然后由?C读取即可(图1)。对于有些内置ADC的控制器能够简化一些设计。ADC需要一个基准电压,可由一个外部元件产生。例如,用于热敏电阻传感器的基准电压通常与加在电阻-热敏电阻分压器顶端的电压相同。然而,这类系统存在下述问题:

  传感器输出电压范围远小于ADC输入电压范围。这种用途的典型ADC一般具有8位分辨率和一个2.5V的基准电压(该电压通常等于输入电压范围)。如果在所测温度范围内传感器的最大输出只有1.25V,那么有效分辨率实际只有7位。为了能够达到8位分辨率,或者外加运放来提高增益,或者降低ADC的基准电压(这可能会使某些ADC的精度受损)。

  误差分配紧张。将热敏电阻或模拟传感器的误差与来自于ADC、放大器失调、增益设置电阻容差和电压基准等的误差贡献综合起来考虑,可能会发现总误差已经超出了系统所允许的容限。

  想获得线性的温度-代码传递函数,而你正在使用热敏电阻。热敏电阻的传递函数具有很严重的非线性,不过,如果只需在很窄的温度范围内应用的话,它还可满足要求。当然还可以通过查表方式进行线性补偿,但系统可能无法满足这种方案的资源需求。

  ADC输入通道有限。多点温度测量时,如果需要测量的点数超过了ADC的输入通道数,就要添加多路复用器,这将增加成本和开发时间。

  IC的I/O引脚数有限。对于内置ADC的微控制器不存在这个问题,但当采用外部串行ADC时则需要2至4个I/O引脚与?C接口。

  图1. 在这个简单接口中,ADC的基准电压取自电源电压。可用模拟温度传感器取代热敏电阻-电阻分压器。在此情况下,ADC (有可能内置于IC)需要一个足够精度的电压基准。


  如果采用数字接口的温度传感器,上述设计问题将得以简化。同样,当ADC输入通道和?C的I/O引脚短缺时,采用时间或频率输出的温度传感器也能够解决上述测量问题(图2)。以MAX6576温度传感器为例,它输出的方波信号具有正比于绝对温度的周期。采用6引脚SOT23封装,仅占很小的电路板空间。该器件通过一个I/O引脚与IC接口,利用?C的内部计数器测出周期后就可计算出温度。


  图2. MAX6576输出方波的周期正比于绝对温度,MAX6577的输出频率正比于绝对温度。比例常数通过TS0和TS1引脚在四种值中选择其一,无需外围元件。

  将两个逻辑输入引脚分别接地或正电源电压,可以从四个介于10?s/°K到640?s/°K之间的周期/温度比例常数中选择一个适当参数。

  另外一种类似的温度传感器(MAX6577)输出方波信号,其频率/温度系数能够在0.0675Hz/°K和4Hz/°K之间设定。这两种器件不仅简化了温度的测量,而且节省了PCB的实际成本、元件数目和模拟/数字I/O资源。它们能够通过单个数字I/O引脚将温度数据传递至IC,并且只需增加一个光电隔离器就可以实现传感器和CPU之间的隔离,使它们非常适合于要求电气隔离的应用。

  对于要求测量多点温度的应用,方案选择更为复杂。将热敏电阻或传统的模拟传感器放置在合适的位置,并连接至ADC输入端,前提是ADC必须具备足够的输入端。作为另外一种选择,MAX6575能够直接将温度数据传给?C,并且最多可以将八个MAX6575挂在同一条?C的I/O输入上。只需一条简单的I/O线将8只MAX6575连接至?C即可(图3)。测量温度时,IC短暂地拉低I/O线,经过短时间延时后,第一片MAX6575拉低I/O线。这个延时正比于绝对温度值,比例常数可通过MAX6575的两个引脚设定。


  图3. 采用延时方式编码温度信息,最多至8片MAX6575可通过一个数字I/O引脚将8个温度信息传送给μC。

  第一个传感器将信号线拉低,并保持一个正比于温度(5μs/°K)的间隙后释放。第二片MAX6575通过编程引脚选择为更大的延时系数,经过第二个延时时间后拉低I/O线并保持一段由5?s/°K常数决定的间隔。按照这种方式,四片MAX6575被连接到一条I/O线上。除此之外,还可在同一条I/O线上加挂另外四片更长延时的MAX6575。MAX6575L的延时系数介于5μs/°K至80μs/°K,MAX6575H的延时系数介于160μs/°K至640μs/°K之间。这样,多达8片MAX6575能够安装在系统周围的不同位置,通过一条I/O线连接至IC。

对于有些系统,并不需要知道精确的温度值,只要了解温度是否高于或低于某特定值即可。该信息用来触发风扇、空调、加热器或其它环境控制单元。在系统保护应用中,“过温位”

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top