亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

使用硅温度传感器进行精确测量

电子行业对精度的要求越来越高,温度传感也不例外。存在许多温度传感解决方案,每一个都有其优点和缺点。硅温度传感器虽然非常线性,但从未提供其他解决方案的精度。然而,硅温度传感的最新进展意味着现在可以通过硅解决方案实现高分辨率和精度。

一个新的冰柜

那是 2020 年 3 月,英国即将进入封锁状态。万一超市关闭,世界正在囤积食物,未来看起来不确定。然后 Bramble 家的冰箱停止工作。随着肯尼·罗杰斯 (Kenny Rogers) 的歌曲“你选择了一个好时机离开我……”的歌词在我脑海中回荡,我们去网上寻找新的替代品。

几天后,我们的新冰箱到货了,前面板上有一个数字温度显示,这是布兰布尔夫人的愿望。推荐设置为 -18°C,一小时后,设备处于正确温度并准备好接受食物。我对温度读数的准确性持怀疑态度,但只要它冻结食物,我就不在乎。然而,有一个问题,工程头脑是一个不安分的头脑,在表面上是睿智的数字读数数天后,它一眨不眨地盯着我,用它自信的声明来鼓励我,我崩溃了。我不得不测试我们厨房中新增的这一新产品的准确性。

温度传感器

工业应用中使用的温度传感器种类繁多,各有优缺点。由于很多文章详细介绍了各种温度传感器的工作原理,这里不再赘述,下面做一个总结。

热电偶

热电偶提供了一种低成本、中等准确度的方法来测量非常高的温度。它们依赖于两个结点之间产生的电压,每个结点由不同的金属制成,保持在不同的温度,正如 Thomas Seebeck 在 1821 年发现的那样。在 K 型热电偶(由合金 Chromel 和 Alumel 制成)的情况下,它输出电压约为41μV/°C,可用于测量超过1000°C的温度。然而,塞贝克效应依赖于温度差异 在两个结之间,因此当“热”结测量感兴趣的温度时,“冷”结必须保持在已知温度。具有讽刺意味的是,冷端需要另一个温度传感器来测量温差,而 AD8494 等部件提供了完美的解决方案。由于热电偶体积小,热质量低,因此对温度变化的响应速度很快。

RTD

为了测量中等温度 (<500°C),工业上广泛使用电阻温度检测器 (RTD)。这些器件由一种金属元素组成,该元素的电阻随温度呈正变化,最常见的是铂。事实上,PT-100 传感器是工业中使用最广泛的 RTD,它的名字来源于由铂 (PT) 制成并且在 0°C 时具有 100Ω 的电阻。虽然这些设备不能测量热电偶的高温,但它们是高度线性的,并且它们的读数是可重复的。 PT100 需要精确的驱动电流,从而在传感器上产生与温度成正比的精确电压降。 PT100 连接线的电阻会在传感器的电阻测量中产生误差,因此开尔文感应是典型的,导致 3 线或 4 线传感器。

热敏电阻

如果需要低成本解决方案且温度范围较低,则热敏电阻通常就足够了。这些器件是高度非线性的,具有基于 Steinhart Hart 方程的特性,电阻随温度升高而降低。热敏电阻的好处是温度变化很小时电阻变化很大,因此尽管具有非线性,但仍可以实现高精度。热敏电阻还具有快速热响应的特点。单个热敏电阻的非线性定义明确,因此可以使用 LTC2986 等组件对其进行校准。

二极管,二极管无处不在,但不是(Vbe)下降到沉......

最后,为了测试新家庭成员的真实性,我选择了硅温度传感器 它们开箱即用,无需冷端温度补偿或线性化,提供模拟和数字输出,并经过预校准.然而,直到最近,它们只能提供中等的准确性。虽然足以指示电子设备的健康状况,但它们从来没有足够准确地测量体温,通常需要 ±0.1°C 的准确度(根据 ASTM E1112 标准)。随着最近发布的 ADT7422 和 ADT7320 硅温度传感器可以分别测量 ±0.1°C 和 ±0.2°C 的分辨率,这种情况发生了变化。

硅温度传感器利用晶体管 Vbe 的温度依赖性 ,由 Ebers Moll 方程给出,近似为:

其中IC 是集电极电流,Is 是晶体管的反向饱和电流,q 是电子上的电荷 (1.602 x 10 -19 库仑), k 是玻尔兹曼常数 (1.38 x 10 -23 ) 和 T 是绝对温度。

上述集电极电流表达式也适用于二极管中的电流;那么为什么每个应用电路都使用晶体管而不是二极管呢?实际上,二极管中的电流还包括由电子在穿过 pn 结的耗尽区时与空穴复合而产生的复合电流,这表现为二极管电流与 Vbe 的非线性关系 和温度。该电流也出现在双极型晶体管中,但流入晶体管的基极,因此不会出现在集电极电流中,因此非线性要小得多。

重新排列上面给出

Ic相比较小 ,所以我们可以忽略‘1’ 上式中的项。我们现在可以看到 Vbe 根据 Ic 的对数变化线性变化 .我们还可以看到如果 Ic 并且 是常数然后 Vbe 随温度线性变化,因为 kq 也是不变的。将恒定的集电极电流强加到晶体管中并测量 Vbe 随温度变化。

与晶体管的几何形状有关,并且对温度有很强的依赖性。与许多硅器件一样,温度每升高 10°C,其价值就会翻一番。虽然这种电流变化的影响被 ‘ln’ 函数我们仍然存在Vbe的绝对值的问题 从晶体管到晶体管的变化,因此需要校准。所以实际的硅温度传感器使用两个相同的晶体管并强制 Ic 的集电极电流 成 1 和 10Ic 进入另一个。相同的晶体管和比例精确的电流很容易在集成电路中制造,这就是大多数硅传感器使用这种架构的原因。电流的对数变化引起Vbe的线性变化 以及 Vbe 的区别 然后测量 s。

从上面的方程,对于两个晶体管保持在相同的温度 ,他们Vbe的区别 的由

给出

由于

我们可以看到

通过强制不同的电流通过每个晶体管并测量 Vbe ,我们去除了非线性Is 项,不同绝对Vbe的影响 以及与晶体管几何形状相关的所有其他非线性效应。由于k , qln 10个都是常数,Vbe的变化 与绝对温度成正比 (PTAT)。对于 10 倍的电流差异,两个 Vbe 的差异 的随温度线性变化,约为 198μV/°C。实现此目的的简化电路如图 1 所示。


图 1. 测量温度的基本电路。

必须仔细选择图 1 中的电流。如果电流过高,显着的自热和晶体管内部电阻两端的电压降会破坏结果。如果电流过小,晶体管内部的漏电流会增加很大的误差。

还应该注意的是,上面的等式与收集器有关 晶体管的电流,而图 1 显示了一个恒定的发射极 电流注入晶体管。可以将晶体管设计为集电极与发射极电流之比已确定(并接近于 1),因此集电极电流与发射极电流成正比。

这只是故事的开始。要使用硅温度传感器获得 ±0.1°C 的精度,需要进行大量的表征和调整。

它是一只鸟吗?是飞机吗?

不,这是一个超级温度计。是的,它们确实存在。未校准的硅温度传感器需要放入充满硅油的浴槽中并加热到精确温度,用超级温度计测量。这些设备的测量精度可以超过小数点后五位。传感器内部的保险丝熔断以调整温度传感器的增益,从而使用方程 y =mx + C 线性化其输出 .硅油提供非常均匀的温度,因此可以在一个周期内校准许多设备。

ADT7422 在 25°C 至 50°C 的温度范围内具有 ±0.1°C 的精度。该温度范围以 38°C 的典型人体温度为中心,使 ADT7422 成为准确监测生命体征的理想之选。对于工业应用,ADT7320 进行了调整,因此精度为 ±0.2°C,但在 -10°C 至 +85°C 的更宽温度范围内。


图 2. 安装在 0.8mm 厚 PCB 上的 ADT7422

然而,硅温度传感器的校准并不是唯一的问题。与极其精确的电压参考一样,芯片上的应力会破坏传感器的精度,PCB、引线框架、塑料成型和裸露焊盘的热膨胀都需要考虑在内。焊接过程也增加了其自身的问题。回流焊工艺将部件的温度提高到 260°C,导致塑料封装软化和芯片的引线框架变形,因此当部件冷却和塑料硬化时,机械应力被锁定到芯片中。 ADI 公司的工程师花费了数月的精细实验,发现 0.8 毫米的 PCB 厚度是完美的最佳点,即使在焊接后也能达到 ±0.1°C 的精度。

软件内部

系统软件的大部分内容是格式化来自 ADT7320 的数据并将其显示在 LCD 上。从 ADT7320 获取数据很简单。当处理器初始化时,CS 和 SCLK 线都设置为高电平,而 SCLK 线在转换之间空闲为高电平。然后将 CS 线拉低以启动数据事务。使用 SPI,数据在 SCLK 线的上升沿读入 ADT7320,在下降沿读入。下面的代码详细说明了初始化例程。

要复位串行接口,CS 线拉低,DOUT 线拉高,SCLK 振荡 40 次。然后将 CS 线拉高。这会将 40 个‘1’时钟输入 ADT7320,重置串行接口。 SPI总线复位后至少需要500us的延迟。

下一个代码块将命令字节发送到 ADT7320,告诉它事务是读还是写以及要寻址哪个寄存器。线

data =0b00001000;

指示 ADT7320 写入寄存器 0x​​01。然后将 ADT7320 编程为使用线路以 16 位分辨率输出数据

data =0b10000000;

DOUT 线预调节为“0”,查询数据字节的 MSB,如果 MSB 为“1”,则 DOUT 线设置为高电平。 SCLK 线被拉高以将数据时钟输入 ADT7320。

void reset_adt7320(void) /* 初始化 ADT7320 */{ unsigned char n, data; /* 重置串行接口 */ clearbit(PORTA, CS);设置位(PORTA,DOUT); for(n=40; n>0; n--) { clearbit(PORTA, SCLK);设置位(PORTA,SCLK); } setbit(PORTA, CS); delay_10ms(); /* 复位后必须等待>500us */ /* 设置为 16 位模式 */ clearbit(PORTA, CS);数据 =0b00001000; /* 清除第 6 位(写入),reg #001 */ /* 发送命令字节 */ for(n=8; n>0; n--) { clearbit(PORTA, SCLK);清除位(PORTA,DOUT); /* 先决条件 DOUT */ if checkbit(data, (n-1)) { setbit(PORTA, DOUT); } setbit(PORTA, SCLK); /* 时钟数据在上升的 SCLK */ } data =0b10000000; /* 连续转换,16 位 */ /* 发送数据字节 */ for(n=8; n>0; n--) { clearbit(PORTA, SCLK);清除位(PORTA,DOUT); /* 先决条件 DOUT */ if checkbit(data, (n-1)) { setbit(PORTA, DOUT); } setbit(PORTA, SCLK); } setbit(PORTA, CS);}

获取温度数据的函数调用类似如下所示。线

data =0b01010000;

告诉 ADT7320 读取寄存器 2 的 16 位数据。

然后代码等待至少 240 毫秒,让 ADT7320 执行温度转换。然后输出 16 位温度数据,然后将 CS 线设置为高电平。

 clearbit(PORTA, CS); /* 数据 =命令字节 */ 数据 =0b01010000; /* 读取模式,寄存器 2 */ /* 读取 ADT7320 */ for(n=8; n>0; n--) { clearbit(PORTA, SCLK);清除位(PORTA,DOUT); /* 先决条件 DOUT */ if checkbit(data, (n-1)) setbit(PORTA, DOUT); } setbit(PORTA, SCLK); } delay_150ms(); /* 温度转换 */ delay_150ms(); /* 读取温度数据 */ for(n=16; n>0; n--) { clearbit(PORTA, SCLK); if checkbit(PORTA, DIN) { setbit(temp, (n-1)); } setbit(PORTA, SCLK); } setbit(PORTA, CS);

完整的代码集可以在这里找到。

那么我的香肠到底有多冷?

将 ADT7320 留在冰箱内约 30 分钟,看看我们新购买的温度是多少。

图3显示冷冻室温度为-18.83°C。


图 3. -18.83°C 时的冷冻室温度

我认为这是非常准确的,因为食物不需要储存到这种温度精度水平。然后我在英国的一个夏日测量了我办公室的温度。 22.87°C,如图 4 所示。


图 4. 我办公室的温度为 22.87°C

结论

硅温度传感器已经取得了长足的进步,变得极其精确,能够以高精度完成生命体征监测。虽然它们内部的技术基于有充分根据的原则,但要使它们达到亚度精度水平所需的修整需要付出巨大的努力。即使达到了这种精度水平,机械应力和焊接也很容易抹去数小时校准所获得的收益。

ADT7320 和 ADT7422 代表了多年来表征的巅峰之作,即使在焊接到 PCB 上之后也能达到亚度级精度。

参考文献

Huijsing、Johan 和 Michiel Pertijis。采用 CMOS 技术的精密温度传感器。斯普林格,2006 年。
霍洛维茨、保罗和温菲尔德希尔。 电子艺术 .剑桥大学出版社,2015 年 4 月。
模拟电路设计,第 2 卷,第 32 章。凌力尔特,2012 年 12 月。
AD590 数据表。 Analog Devices, Inc.,2013 年 1 月。
ADT5912 数据表(即将发布)。模拟设备公司


嵌入式

  1. 传感器类型及其电路图
  2. 英飞凌:单芯片和双芯片版本的基于 AMR 的角度传感器
  3. ams 以创新演示点亮 2019 年传感器博览会
  4. Maxim 用于超小型可穿戴设备的医疗传感器
  5. IBASE:具有宽范围工作温度的 COM Express 模块
  6. 使用廉价传感器绘制家庭温度流量图
  7. 使用 1 线 DS18B20 传感器和 Raspberry Pi 测量温度
  8. 使用 DS18B20 读取温度 |树莓派 2
  9. 使用 RASPBERRY PI 测量温度
  10. 使用 Raspberry Pi 监测温度
  11. 赛车双体船仍在表演