尽管温度测量是许多应用程序的共同要求,但开发人员在确保高度准确的结果方面面临着巨大的挑战。克服这些挑战常常导致复杂的设计和扩展的设计周期,但是新设备正在降低复杂性。

  本文简要讨论了与开发精确解决方案相关的温度测量要求和挑战。文章接着介绍了线性技术LTC2986-1温度传感器,描述了它如何应对这些挑战,并通过展示开发人员如何在典型的应用中利用包括热电偶、RTDs和热敏电阻在内的各种温度传感器来利用这些特性。

温度测量要求和技术

  在建立健壮的温度测量系统时,设计者利用各种传感器类型来满足他们对成本、精确度和温度范围的具体要求。在传感器类型中,热电偶是常用在严酷的环境下与他们的能力来衡量温度低至-265°C到-265°C。

  热电偶产生一种电压,它是指尖与冷端之间温差的函数,这是用来制造热电偶的两根电线的末端。因此,总体测量精度取决于对热电偶电压和冷结的精确测量。

  当热电偶由于Seebeck效应而产生电压梯度时,其他常见的温度传感器,包括电阻温度探测器(RTDs)、热敏电阻、甚至二极管,都需要激发电流来产生与温度相关的电压输出。作为电阻器件,RTDs和热敏电阻进一步要求在串联励磁电流源的情况下,对电阻进行精确测量。该感应电阻器通过电阻率装置建立一个电阻网络来测量传感器上的电压。最后,对于每种类型的传感器,开发人员需要应用合适的方法来将测量的结果转换成线性化的温度数据,使用查找表或方程。

  除了处理传感器外,在保证温度测量系统的正常运行方面,开发人员还面临多项挑战。温度传感器通常放置在工厂、商业环境、建筑物和住宅的恶劣环境中,无论应用程序要求在空气或流体流动中测量温度梯度的能力。在工业应用中,传感器和测量系统输入之间的长电缆会使它们暴露在电子噪音、损耗和外部电压源中,从而损坏传感器和测量系统。

  工程师们采用多种方法来处理影响温度测量系统性能的各种因素。随着越来越多的温度传感器需求的增长,传统的方法通常会导致更大的设计复杂性,从而增加部署和维护成本。线性技术LTC2986-1解决了这些挑战,从多个传感器提供精确的温度测量,并在开发人员的努力下做出最小的努力。

降低复杂度

  为简化设计,线性技术LTC2986-1是一个多通道温度测量系统,内置支持大多数传感器类型,包括热电偶、RTDs、热敏电阻、二极管和有源模拟温度传感器。因为这个设备集成了完整的信号路径,转换,线性化,和其他功能,开发人员可以实现高精度温度测量的设计与一些额外的组件温度传感器本身之外(图1)。虽然早期成员等系列线性技术LTC2984提供更多的输入通道,LTC2986-1提供额外的操作模式,使独特的解决方案,提高精度如下所述。

  线性技术LTC2986-1。

  图1:设计师可以将多种温度传感器连接到线性技术LTC2986-1,它提供10个输入通道、可编程的电流源、内置的线性化表和故障检测能力。(图片来源:凯利讯半导体)

  对高压、热敏电阻和二极管时,设备自动生成励磁电流在规定水平,措施产生的感应电压,并生成一个线性化导致°C或°F。LTC2986-1是预编程的,用于大多数RTDs和热敏电阻的转换和线性化数据。类似地,该设备为几乎所有标准热电偶配置,并支持使用RTDs、热敏电阻、二极管或有源模拟温度传感器的冷连接补偿。对于温度测量,该装置自动解决了将热电偶输出电压和冷结测量转换为有用的温度读数所涉及的多项式方程。对于更一般的转换需求,开发人员可以使用LTC2986-1的模拟-数字转换器(adc)来执行单端或差压测量,生成原始电压结果或使用可编程查找表转换结果。

  除了工业标准设备的数据,该设备还可用于定制的RTDs、热电偶、二极管、主动传感器和热敏电阻。对于自定义设备,开发人员使用一个包含64个数据点的查找表来加载内存,这些数据点代表传感器输出值和温度。对于定制的热敏电阻,开发人员也可以直接将设备加载到由热敏电阻制造商提供的6个Steinhart-Hart系数中。与标准传感器的内置数据一样,该设备使用这些自定义系数和查找表来进行转换过程中最后的温度插补以及软故障检测(图2)。

  线性技术LTC2986-1的图形可以使用开发人员创建的查找表。

  图2:线性技术LTC2986-1可以为自定义设备使用开发人员创建的查找表,当输入值超出提供的输入数据范围时,自动生成错误。(图片来源:凯利讯半导体)

提高准确性和保护

  对于转换过程,该设备使用多个周期来提供更高的精度。在正常运行中,该装置使用两个转换周期来补偿在产生最终温度结果之前的偏移误差和噪声。开发人员还可以在三周期模式下使用该设备,这为较慢的测量提供了一些好处;在三周期模式下约251毫秒(ms),而在双周期模式下约为167毫秒。

  在三周期模式下,该装置可以通过在第一周期内产生电流脉冲来进行开路检测,其次是正常的双周期转换过程。如果该设备在随后的转换周期中检测到一个大的电压,它将设置一个状态位来报告一个严重的故障,这表明一个可能损坏的热电偶或电缆。此外,该设备能够报告许多不同的故障条件,超出了开放电路的硬故障(图3)。

故障 错误类型 描述 输出结果
D31 传感器硬故障 打开电路或硬的ADC或硬CJ -999°C or °F
D30 硬ADC-Out-of-Range 不良ADC阅读(可能是leage外部噪音事件) -999°C or °F
D29 CJ硬故障 冷结传感器有一个严重的故障错误 -999°C or °F
D28 CJ软故障 冷结传感器的结果超出正常范围 怀疑阅读
D27 在电压传感器 热电偶读数大于上限 怀疑阅读
D26 传感器电压下 热电偶读数低于下限 怀疑阅读
D25 ADC超出范围 ADC绝对输入电压超出±1.125×VREF / 2 怀疑阅读
D24 有效的 N/A 结果有效(应该是1)如果是0,则丢弃结果 有效的阅读

  图3:线性技术LTC2986-1对所有传感器读数产生了硬的和软的故障,与热电偶传感器相关的冷结测量结果如图所示。

  除了保护应用程序不受传感器故障的影响外,开发人员通常采用旨在保护测量系统本身的设计技术。温度传感器通常用于恶劣的环境。像热电偶这样的传感器通常是无屏蔽的,为测量系统的输入提供了一种容易接近的导电路径。即使是像RTDs或热敏电阻这样的封装传感器,电缆也会被损坏,从而导致导线短到高电压或相互之间的机会。最后,即使是细心的操作人员和技术人员也会无意中制造出不正确的电缆连接,尤其是在设计用于不同传感器类型的通用硬件连接的应用程序中。

  为了保护测量系统不受过电压的影响,开发人员通常在传感器和测量系统的输入通道之间设置电流限制电阻。通常,设计师会增加电容器来创建低通滤波器来衰减噪声源。这些过滤器可以延长解决时间,这在使用励磁电流脉冲的方法中是特别有问题的,正如之前所述的LTC2986-1转换过程。此外,保护电阻的使用也会影响测量精度。

  LTC2986-1提供了专门设计的特性和操作模式,以减轻保护电阻的二次不利影响。例如,由于设备输入上的过滤器更大,为了防止延长的安装时间,开发人员可以在设备的输入多路转换时间中对额外的延迟进行编程。提供可能对结果更大的影响,该装置的独特的激励电流模式解决了与保护电阻相关的串联电阻增加的更基本问题。

  尽管对于安全来说至关重要,但对于任何电阻设备,如RTD或热敏电阻,保护电阻都是特别有问题的。在两种终端电阻装置中,保护电阻的加入会影响电压测量,因为励磁电流流过保护元件的附加串联电阻。由于传感器是电阻,开发人员通常面临的挑战是将传感器电阻与保护电阻及其引线相关联的附加串联电阻分离。

  为了解决这一问题,工程师们使用了3线RTDs,利用RTD终端的电阻和额外的导线来测量导线电阻。当然,这种方法需要仔细匹配导线长度和串联电阻,以确保精度。为了避免匹配问题,一个更好的解决方案使用4线或开尔文感应,在每个终端使用一个电阻器(图4)。

  常规四线RTD图。

  图4:传统的4线RTD允许电流绕过用于保护测量通道的串联电阻(CH3和CH4),因此测量误差由于通过这些通道的低泄漏电流而受到限制。(图片来源:凯利讯半导体)

  在此配置中,电流跟随路径(图4中的CH1到CH5),它不涉及测量通道上的串联保护电阻(CH3和CH4)。任何流过测量通道的电流都局限于设备泄漏电流。由于LTC2986-1的输入泄漏电流小于1毫微安(nA),相关的测量误差通常远远低于任何要求的分辨率。

  然而,使用LTC2986-1,这种方法并不局限于4线RTDs。工程师可以配置该设备,用三线RTDs、2线RTDs和热敏电阻进行开尔文感应。

  对于每一个传感器类型,LTC2986-1提供了一种独特的激励模式,它使用当前路径的相邻通道。为了实现这种模式,开发人员在每个传感器终端和一个单独的LTC2986-1输入之间连接一个额外的保护电阻。然后,通过简单地在LTC2986-1配置寄存器中设置一个位,并适当配置输入通道(图5),从而启用这个额外的当前路径。与传统的4线设备一样,励磁电流避免了测量通道,因此相应地减少了测量误差。

  线性技术LTC2986-1相邻通道。

  图5:开发人员可以配置线性技术LTC2986-1,以使用相邻的励磁电流通道通道,提供开尔文感应到2线RTDs和热敏电阻的好处。(图片来源:凯利讯半导体)

  不管设计者是否使用这种替代的激励模式,他们仍然需要遵循一个基本的协议来设置与LTC2986-1的传感器。为了实现传感器连接,他们需要分配通道和负载相关的内存位置和传感器配置数据(图6)。该通道分配数据位于RAM中的顺序位置,每个设备的十个输入通道对应一个对应的对应关系。在RAM被编程后,开发人员可以在设备的内置EEPROM中保存配置,以便在后续断电或睡眠周期后进行恢复。

  线性技术LTC2986-1信道分配数据块的示意图。

  图6:为了配置线性技术LTC2986-1,开发人员创建包含相关传感器细节的通道分配数据块。(图片来源:凯利讯半导体)

  在内存中每个通道分配数据块中,开发人员定义传感器配置的详细信息,包括传感器类型、通道、传感器配置、激励电流和标准或自定义转换信息的预定义值。一个设备的内存映射,图6左上角显示的PT-100 RTD,如图7所示。

  与PT-100 RTD相关的内存映射表。

  图7:通道分配数据包含了每个传感器的配置细节,这里显示了与PT-100 RTD相关联的内存映射,如图6所示。

  在复杂的多传感器温度系统中为每个通道配置适当的内存映射需要注意每个细节。由于该设备内置了大量传感器和传感器类型的支持,开发人员需要确保为特定传感器选择正确的代码。配置中的错误可能会严重影响结果。

  消除手动配置,线性技术提供一个免费的Windows®的LTC2986演示软件程序,允许开发人员通过使用下拉菜单和选项指定配置为每个通道。开发人员可以从演示板或LTC2986-1数据表中显示的特定图中加载配置示例(图8)。

  图像线性技术LTC2986演示软件。

  图8:线性技术LTC2986演示软件简化了设备的使用,为相关的硬件板提供了预定义配置的下拉选择,以及LTC2986-1数据表中的示例。(图片来源:凯利讯半导体)

  例如,上面图6所示的两个4线RTD配置从LTC2986-1数据表中的图22中得到。从程序的配置下拉菜单中选择这个数字会产生相应配置的相应设置(图9)。

  图像线性技术LTC2986演示软件。

  图9:线性技术LTC2986演示软件生成用于生成通道分配数据的详细配置。

  除了简化配置的创建之外,程序还可以评估自定义配置,以确保正确的分配。最重要的是,该程序可以生成相应的C语言标头和软件例程,可以在线性技术的DC2026 Arduino兼容的Linduino上执行。

  例如,图9所示的配置的C代码生成自动生成一个初始化例程,其中包含实现图7所示的所需内存映射的软件分配。如清单1所示,生成的代码使用一组定义的常量来创建适当的通道赋值语句(清单1)。

  。

  空白configure_channels()

  {

  uint8_t channel_number;

  uint32_t channel_assignment_data;

  // -----通道2:分配感知电阻-----。

  channel_assignment_data =

  SENSOR_TYPE__SENSE_RESISTOR |

  (uint32_t)0 x9c4000 < < SENSE_RESISTOR_VALUE_LSB;//感觉电阻-值:10000。

  assign_channel(CHIP_SELECT 2 channel_assignment_data);

  // -----第4频道:分配RTD -100 ----- ----

  channel_assignment_data =

  SENSOR_TYPE__RTD_PT_100 |

  RTD_RSENSE_CHANNEL__2 |

  RTD_NUM_WIRES__4_WIRE |

  RTD_EXCITATION_MODE__ROTATION_SHARING |

  RTD_EXCITATION_CURRENT__100UA |

  RTD_STANDARD__ITS_90;

  assign_channel(CHIP_SELECT 4 channel_assignment_data);

  // -----第7频道:指定RTD -500 ----- --。

  channel_assignment_data =

  SENSOR_TYPE__RTD_PT_500 |

  RTD_RSENSE_CHANNEL__2 |

  RTD_NUM_WIRES__4_WIRE |

  RTD_EXCITATION_MODE__NO_ROTATION_SHARING |

  RTD_EXCITATION_CURRENT__50UA |

  RTD_STANDARD__AMERICAN;

  assign_channel(CHIP_SELECT 7 channel_assignment_data);

  }

  。

  / /运行LTC2986 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  无效循环()

  {

  measure_channel(CHIP_SELECT 4温度);// Ch 4: RTD PT-100。

  measure_channel(CHIP_SELECT 7温度);// Ch 7: RTD -500。

  }

  清单1:线性技术LTC2986演示软件程序生成的代码自动生成通道赋值语句,包括与图7所示的内存映射对应的channel 4赋值。

  无论使用Linduino平台还是其他硬件,生成的代码集演示了与使用LTC2986-1相关的关键设计模式。例如,清单1中的代码片段演示了一个用于数据收集的基本循环。通过检查生成的代码,开发人员可以检查与设备使用有关的详细操作。例如,顶级函数x measure_channel清单1所示调用低级访问设备寄存器开始转换例程,等待完成,并读取结果(清单2)。在这种情况下,生成的程序简单结果打印到控制台,但开发人员可以很容易地修改他们的应用程序的代码。

  / / * * * * * * * * * * * * * * * * *

  / /测量通道

  / / * * * * * * * * * * * * * * * * *

  void measure_channel(uint8_t chip_select, uint8_t channel_number, uint8_t channel_output)

  {

  convert_channel(chip_select channel_number);

  get_result(chip_select channel_number channel_output);

  }

  void convert_channel(uint8_t chip_select, uint8_t channel_number)

  {

  / /开始转换

  transfer_byte(chip_select, WRITE_TO_RAM, COMMAND_STATUS_REGISTER, CONVERSION_CONTROL_BYTE | channel_number);

  wait_for_process_to_finish(chip_select);

  }

  。

  空白wait_for_process_to_finish(uint8_t chip_select)

  {

  uint8_t process_finished = 0;

  uint8_t数据;

  而(process_finished = = 0)

  {

  data = transfer_byte(chip_select, READ_FROM_RAM, COMMAND_STATUS_REGISTER, 0);

  process_finished = data & 0x40;

  }

  }

  / / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

  / /得到结果

  / / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

  void get_result(uint8_t chip_select, uint8_t channel_number, uint8_t channel_output)

  {

  uint32_t raw_data;

  uint8_t fault_data;

  uint16_t start_address = get_start_address(CONVERSION_RESULT_MEMORY_BASE, channel_number);

  uint32_t raw_conversion_result;

  raw_data = transfer_four_bytes(chip_select, READ_FROM_RAM, start_address, 0);

  系列。打印(F(" \ nChannel "));

  以channel_number);

  // 24 LSB是转换结果。

  raw_conversion_result = raw_data & 0xFFFFFF;

  print_conversion_result(raw_conversion_result channel_output);

  //如果你对原始电压或电阻感兴趣,请使用以下内容。

  如果电压(channel_output ! =)

  {

  read_voltage_or_resistance_results(chip_select channel_number);

  }

  // 8 MSB显示故障数据。

  fault_data = raw_data >> 24;

  print_fault_data(fault_data);

  }

  清单2:线性技术LTC2986演示软件生成了Linduino就绪代码,包括支持例程,如该代码片段中显示的用于执行低级访问设备通道的代码。

  除了软件,开发人员还可以使用线性技术dc2608a工具包快速启动LTC2986-1硬件开发。设计与Linduino合作,DC2618组件包括一个演示板,包含LTC2986-1和一个面包板。该工具包与LTC2986演示软件结合使用,为快速开发温度传感应用提供了一个平台。

结论

  通常需要在恶劣的环境中运行,温度测量系统为开发人员提供了大量的挑战,包括保护机制和测量精度之间的冲突。使用LTC2986-1和相关的开发工具,工程师现在可以快速实现能够安全、准确的温度测量的系统。

无论环境如何,都要获得高精度、多通道的温度测量相关推荐

  1. java环境变量都是什么意思_Java环境变量,真的还有必要配吗?

    作为年龄上堪称老鸟而技术上却是菜鸟的老菜鸟,为了祖国的编程事业,不惜拿出一个月工资,淘了一台配置稍高的二手笔记本,打算与老笔记本中的撸啊撸片彻底说再见,誓要在新机种开启一番撸啊撸的新事业.当然,撸代码 ...

  2. 没有配置java环境变量,为什么我java环境变量都还没有配置都可以运行java程序了...

    为什么我java环境变量都还没有配置都可以运行java程序了 来源:互联网  宽屏版  评论 2012-06-09 01:34:26 分类: 电脑/网络 >> 程序设计 >> ...

  3. mt2503[Input Method]允许多种语言输入法在不同语言环境下都能自由切换

    [DESCRIPTION] 在不同语言环境下多种语言输入法如何能自由切换(按#键).如手机有英语.俄语两种语言,如何实现不管是英语还是俄语环境下,编辑界面都能 够出现英语的输入法(ABC和abc)和俄 ...

  4. 嗯,挺全乎儿的,Spring Boot 多环境配置都在这儿了,你喜欢哪一种呢?

    目录 前言 Spring Boot 自带的多环境配置 创建不同环境的配置文件 指定运行的环境 Maven 的多环境配置 创建多环境配置文件 定义激活的变量 pom 文件中定义 profiles 资源过 ...

  5. Redis批量删除Key的三种方式(linux和windows环境下都有)

    Redis 中有删除单个 Key 的指令 del,网上资料大多数都说没有批量删除 Key 的指令,是否真这样有待再次确定,不过我们可以借助 Linux的 xargs 指令来完成这个动作,redis本身 ...

  6. 使用VMWare虚拟机创建CentOS版本的Linux学习环境(每一步都有截图与说明)

    学习Android开发,如果不学习Linux的基本使用,总感觉心里过意不去,因为毕竟Android还是搭载在Linux的基础之上的.因此,学习一种Linux系统的基本操作,对我们以后的学习还是很有作用 ...

  7. 如何去掉“Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8” 提示,删环境变量都不好使

    方法很简单,在"此电脑"上右键→属性→相关设置下的高级系统设置,找到高级选项卡中的环境变量,接着把JAVA_TOOL_OPTIONS这个环境变量删除掉. 关键的来了,如果你的电脑启 ...

  8. Unix Linux、MAC、Window 如何安装配置环境?都在这里啦~

    嗨害大家好鸭!我是小熊猫~ 这次将向大家介绍如何在本地搭建Python开发环境. Python可应用于多平台包括 Linux 和 Mac OS X. 你可以通过终端窗口输入 "python& ...

  9. ads1258_ADS1258高精度多通道模/数转换芯片

    在诱发电位仪采集系统中,模/数转换模块芯片的选取对整个采集系统的结构和性能影响非常大,本文模作文章/数转换芯片选用ADS1258器件,使得本系统达到多通遭高分辨率的要求.本文引用地址:http://w ...

最新文章

  1. Java网络编程基础(七)— RMI分布式网络编程
  2. 王可汗:数据科学带我解开摩擦学的“反常现象” | 提升之路系列(七)
  3. AI与网络安全的未来:数据集与协同能力
  4. Readyfor4GB帮你的32位Win7用4G内存
  5. 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器
  6. 多元函数的极限与连续(一)
  7. git 清空log_[译] 我个人的 Git 技巧备忘录
  8. android 不能接收组播数据,但能够发送组播数据
  9. [SAP FI] Bank Master Vendor Master Creation Related Knowledge
  10. linux pdm 查看工具,linux系统监控工具
  11. 文件创建时间、访问时间、修改时间
  12. Handler: Service中使用Toast
  13. 下载python教程-零基础Python教程全集下载.pdf
  14. 【电子书】Head First 设计模式
  15. 利用Python和OpenCV进行面部表情识别
  16. 动视暴雪电竞与哔哩哔哩电竞达成数年电竞赛事合作协议
  17. 使用PHP自带的ZipArchive的一些问题
  18. 捋一捋Python中的数学运算math库之三角函数
  19. android发送QQ邮件(带附件)
  20. 简述组装计算机硬件流程,计算机硬件组装的步骤有哪些?

热门文章

  1. 人力资源简单工作流程管理系统
  2. 万字长文聊缓存(下)- 应用级缓存
  3. Python接口自动化响应结果json格式化输出+断言响应结果中指定的属性值+其他
  4. sqlite多行插入_sqlite3-批量insert插入多条信息-提高效率的办法 | 学步园
  5. spring中IoC和AOP的实现
  6. linux中c语言实现实时视频传输代码
  7. java如何根据pid转tid_C语言编程中pid, tid以及真实pid的关系(转)
  8. SunFMEA | 秒懂新版FMEA“5T”?
  9. 10个半径为1的圆两两相切,形成类似圆环的大圆,求该圆环内内切圆的半径,用python代码给出...
  10. 工业级数据分发服务DDS之安全篇