基于ADS122U04与TM4C129的工业多通道高精度温度采集方案设计

发布时间:2026/11/4 1:05:44
基于ADS122U04与TM4C129的工业多通道高精度温度采集方案设计 做工业温控和HVAC项目的人对温度测点应该都有同感系统里几十上百个模拟量真正决定产品性能的往往是那几路温度。RTD、热电偶、热敏电阻各有各的脾气现场又有变频器、动力线、地环路各种干扰想稳定测得零点几度光有传感器远远不够。我这次搭了一套基于ADS122U04IPWR和TM4C129XKCZAD的温度测量方案目的是满足工业现场和 HVAC 场景下的多通道高精度采集需求。ADS122U04IPWR 是 TI 的 24 位 delta-sigma ADC自带 UART 接口四通道差分/单端输入非常适合挂在控制板外面做分布式采集TM4C129XKCZAD 则是带 Ethernet、USB、多路 UART 的 Cortex-M4F 主控。两颗芯片搭配起来能直接把温度数据变成网络数据单个节点覆盖一路冷端补偿加多路传感器整体架构比传统 SPI ADC 拉线进机箱的方式灵活得多。这篇文章我会把从硬件接法、UART 通信协议、温度计算公式到校准和现场调试的完整过程写出来顺便整理一些文档里不会写的经验。如果你正准备做多通道工业温度采集或者想把模拟前端独立出去、让主控专心跑协议栈这篇内容可以直接当参考。1. 项目定位为什么需要一颗带 UART 的 24 位 ADC1.1 工业与 HVAC 现场的温度测量难点工业现场和 HVAC 系统的温度测量表面看就是把传感器信号读到 MCU 里实际落地时会遇到几个共性问题。第一是传感器种类多。管道上可能用 PT100 铂电阻测冷冻水回水温度风道里用 NTC 测送风温度压缩机排气口用 K 型热电偶测高温这三种传感器的输出特性完全不同RTD 是阻值随温度变化热电偶是毫伏级电压信号NTC 是非线性电阻。如果全部让主控直接处理ADC 前端电路要做三套板子面积和成本都扛不住。第二是信号幅度差异极大。PT100 在 0℃ 时阻值 100Ω用 1mA 激励电流只产生 100mV 压降K 型热电偶在 1000℃ 时输出电压约 41mV常温下只有几十微伏到几毫伏。这种动态范围跨度普通 12 位或 16 位 SAR ADC 根本不够用需要高分辨率加可编程增益放大器PGA。第三是干扰问题HVAC 现场有变频器、水泵电机、电磁阀地电位随时在漂模拟信号布线稍长一点采集到的数据就带着工频和高频噪声。这些问题叠加起来意味着单纯靠MCU 内置 ADC 运放调理的方案很难做到全方位满足。内置 ADC 位数不够运放电路要调增益、偏置、滤波每路传感器都是一次电路设计工作量一大就失控。1.2 ADS122U04IPWR 与 TM4C129XKCZAD 的组合优势ADS122U04IPWR 的核心优势在于它把高精度模拟前端和数字接口做了很好的分离。芯片内部集成了 24 位 delta-sigma 调制器、可编程增益放大器PGA1 到 128 倍、温度传感器、内部基准和两个恒流源四路输入可以任意配置成差分或单端模式。更关键的是它带 UART 接口MCU 只需要两根线TX、RX就能读写所有寄存器不需要 SPI 的 CS/SCLK/MOSI/MISO 四根线远距离传输时还可以通过 RS-485 收发器转成差分信号。TM4C129XKCZAD 在系统里的角色是主控和数据出口。它本身就是 Tiva C 系列的旗舰型号120MHz 主频的 Cortex-M4F带浮点单元做温度算线性化和 PID 计算绰绰有余。外设方面它有多个 UART、USB、CAN 和以太网 MACPHY温度数据采集进来之后既可以本地显示也能通过 MQTT、Modbus TCP 或者简单 TCP 协议直接上送。这套组合的工程价值在于架构清晰模拟采集部分交给专门的 ADC 芯片主控不参与毫伏级信号的直接测量只负责发命令和读取转换结果抗干扰能力和可维护性都提升一个量级。ADS122U04 的汇编指令风格是典型的 TI 寄存器式控制整体设计灵活度很高。2. 硬件电路设计要点2.1 传感器接法RTD 与热电偶的通道分配我这次做的是一个四通道温度采集板实际配置是两路 PT100 测空调冷冻水供回水温度一路 PT1000 测风管温度一路 K 型热电偶测压缩机排气管温度。这种混合配置在 HVAC 系统改造中很常见所以我把通道分配逻辑讲清楚。ADS122U04IPWR 有四个模拟输入引脚 AIN0、AIN1、AIN2、AIN3可以两两组成差分对也可以各自对 GND 做单端测量。我的接法如下通道一AIN0 接 PT100 差分正端AIN1 接 PT100 差分负端使用 IDAC1 恒流源 1mA 激励电流从 IDAC1 流出经过 PT100再到基准电阻 R_BIAS 回流入地同时在 AIN2 上取基准电压。通道二AIN2 接另一路 PT100AIN3 接 PT100 负端同样 IDAC2 激励。通道三AIN1 和 AIN2 临时组合测 PT1000通过双路复用切换或者直接用单端方式把 PT1000 挂在 AIN3 上。通道四热电偶接在 AIN0、AIN1 上PGA 设置成 32 倍或 64 倍增益冷端用 ADS122U04 内部集成温度传感器测芯片附近的温度来补偿。这里要强调的是RTD 和热电偶千万不能混用同一组恒流源通道。RTD 需要电流激励热电偶需要高输入阻抗电压测量如果把恒流源接到热电偶上会把热电偶的塞贝克电压直接淹没读数必然是乱的。ADS122U04 的输入多路复用寄存器MUX 寄存器允许每个转换周期切换通道实际使用时我会分时采集先扫两路 PT100再切通道读热电偶切换之间留出建立时间。2.2 ADS122U04IPWR 的供电、基准与隔离布局ADS122U04IPWR 的供电范围是 2.3V 到 5.5V模拟电源 AVDD 和数字电源 DVDD 建议分开走虽然芯片内部有电源隔离PCB 上还是要注意地平面处理。我给的电源方案是AVDD 和 DVDD 都用 3.3V只要主控 TM4C129XKCZAD 也是 3.3V 逻辑UART 电平就能直接对接不需要电平转换。基准电压的选择直接决定了测量精度。ADS122U04 内部基准是 2.048V精度高但温漂参数有限如果追求更好的稳定性可以在 REFP0/REFN0 引脚外接精密基准如 REF5025或者用恒流源加精密电阻的方式。我在 PT100 通道上使用的是外部基准模式IDAC 电流流过 R_BIAS低温漂 1kΩ 电阻产生的电压作为 ADC 参考电压。这样做的巧妙之处在于激励电流波动会被参考电压同步抵消最终转换结果与电流绝对值无关只取决于 PT100 与 R_BIAS 的阻值比例。这是比例式测量ratiometric的核心思路误差源从电流源精度变成了电阻比例而电阻比例很容易用低温漂电阻做到 0.1% 以内。隔离方面的经验HVAC 现场如果有变频器建议在 ADS122U04 与 TM4C129XKCZAD 之间加数字隔离器型号我用的 ISO7721UART 两线各一个通道。模拟部分和数字部分的地用单点连接模拟电源入口加磁珠和 10uF/0.1uF 电容组合避免数字噪声串进模拟地回路。2.3 与 TM4C129XKCZAD 的 UART 连接细节TM4C129XKCZAD 有多路 UART我选用的是 UART0映射到 PA0U0RX、PA1U0TX通过 ISO7721 连接到 ADS122U04IPWR 的 DIN数据输入和 DOUT/DRDY数据输出/数据就绪引脚。ADS122U04 的 UART 协议比较特殊它不是普通的异步串口带帧尾而是需要通过指令与状态返回值来判定数据是否有效。具体来说主机发送 8 位指令字节ADS122U04 在 SCLK 时钟下用 UART 波特率匹配的方式回复状态字节或数据字节。片选 CS 引脚低电平有效可以在与 ADC 通信前拉低通信完成后拉高。数据就绪引脚 DRDY 会输出低脉冲表示转换结果已准备好可以作为 TM4C129 的外部中断源或者查询引脚。连接 TM4C129XKCZAD 的 UART 时波特率我用的是 1152008 位数据无校验1 停止位。ADS122U04 的 UART 接口最需要注意的坑是它不支持任意波特率必须按照芯片手册配置而且主机发送指令后要等待 ADS122U04 的响应时钟周期不能连续高速灌命令否则状态机容易错位。这个过程可以理解为一问一答式的访问。3. 固件侧的关键实现3.1 UART 命令帧与寄存器操作ADS122U04IPWR 的寄存器空间不多核心操作围绕几个寄存器展开配置寄存器 0对 PGA、MUX 和输入模式、配置寄存器 1基准、转换模式、数据速率、配置寄存器 2IDAC 电流大小、配置寄存器 3IDAC 输出选择和内部温度传感器使能。对芯片下指令时我封装了几个 C 语言函数让操作看起来像 SPI 一样清晰void ADS122U04_WriteRegister(uint8_t reg_addr, uint8_t reg_value); uint8_t ADS122U04_ReadRegister(uint8_t reg_addr); void ADS122U04_StartConversion(uint8_t mux_setting); uint32_t ADS122U04_ReadData(void);写单个寄存器时先发写寄存器指令码例如 0x40 或 0x44 代表不同起始地址随后发寄存器地址和值。读寄存器时发 0x20 开头的指令之后芯片会回传寄存器内容。这里有个细节ADS122U04 的指令响应是带状态字节的我在调试时第一版程序直接读 DOUT 上的数据流结果发现返回的第一个字节往往是状态而不是测量数据后来对照手册才明白芯片会有状态字节提醒需要根据状态位判断是转换数据还是寄存器内容。3.2 配置通道、PGA 与采样速率这块是整个固件里最需要抠细节的部分。入口是配置寄存器 0 的低三位 MUX 位用来选择当前激活的输入通道组合。比如 MUX000 表示 AIN0-AIN1 差分MUX001 表示 AIN2-AIN3 差分MUX101 表示 AIN1-AIN3 差分等等。在扫描多通道时需要按顺序切换 MUX 然后启动一次转换。PGA 增益的设置直接和传感器类型挂钩。PT100 我设置 PGA1 倍因为 1mA×100Ω100mV 的信号经过内部基准后已经足够热电偶需要 PGA32 倍或 64 倍因为 K 型热电偶在常温下电压只有 0.4mV 左右不放大就浪费了 24 位 ADC 的动态范围。但 PGA 拉高后有效分辨率会下降手册给出的数据是PGA1 时最高有效分辨率约 21.1 位PGA128 时约 17.8 位。做暖通温度控制实际需要的大概 0.1℃ 精度对应 PT100 大约是 0.04Ω也就是有效分辨率到 16 位就够所以 PGA 高一点问题不大。采样速率我使用 20SPS每秒采样次数对应 50Hz 工频干扰有很好的抑制效果。ADS122U04 内部有个 50/60Hz 抑制数字滤波器在 20SPS 模式下对工频的衰减可以达到 100dB 以上。这是选择 20SPS 而不是更高采样率的根本原因并非为了省电。3.3 温度值计算与线性化温度计算公式是整个系统最核心的部分我分别实现了 PT100/PT1000 和热电偶两套计算逻辑。对于 PT100比例测量下的 ADC 转换值 CODE 和电阻值 R_RTD 的关系可以写成R_RTD CODE / (2^24 - 1) × R_BIAS这里 R_BIAS 是基准电阻我选用 1.5kΩ 低温漂电阻。得到 R_RTD 后用 Callendar-Van Dusen 方程做线性化也就是经典的 ITS-90 多项式逼近。为了不让 MCU 算浮点太吃力我预先把多项式系数放进常量表const float A 3.9083e-3; const float B -5.775e-7; const float C -4.183e-12;温度在 0℃ 以上时直接解二次方程即可。在 0℃ 以下需要用到 C 系数做修正公式做个简单的牛顿迭代也可以。多数 HVAC 场景测的是 0 到 50℃我只保留 0℃ 以上分支代码效率高不少。热电偶计算分三步。第一步把 ADC 原始码换算成电压V_TC CODE / (2^23-1) × (V_REF / PGA)。注意 24 位 ADC 在只使用正输入时是 23 位有效数据符号位不能参与换算。第二步加上冷端温度对应的热电势。冷端温度由 ADS122U04 内部集成温度传感器读取然后查 K 型热电偶分度表得到冷端热电势 E_cold。第三步查找总热电势 E_total V_TC E_cold 对应的温度值。我直接把 NIST 分度表压缩成查找表放进 Flash二分查找后做线性插值误差可控制在 0.1℃ 以内。4. 校准、误差分析与现场调试4.1 两点校准背后的数学ADC 再精密电阻和基准难免有偏差所以一次实际测量后的校准环节不能省。我做的是两点校准用精度 0.01% 的标准电阻箱模拟 PT100 在 0℃100Ω和 100℃138.51Ω下的电阻值记录下 ADC 输出码然后计算出实际增益系数和偏置。校准的核心思想是把 ADC 码到电阻值的转换关系做线性修正。实际增益 Gain_actual 和偏置 Offset_actual 可以利用两个标准点的方程求解Ω_1 Gain_actual × CODE_1 Offset_actual Ω_2 Gain_actual × CODE_2 Offset_actual解出这两个参数后回写到固件里。每块板子单独校准把参数存储在 TM4C129XKCZAD 的 Flash 末尾。虽然这样增加了一个生产流程但好处是能把芯片级增益误差、电阻误差和 PCB 布线电阻统一修正掉。工业产品如果要求全温度范围误差 0.5℃以内两点校准几乎是必须的。4.2 冷端补偿与热电偶常见坑热电偶的冷端补偿是最容易翻车的地方。ADS122U04 内部虽然集成了温度传感器但那个传感器测的是芯片自身温度不是真正的热电偶冷端温度。我板子的热电偶输入端在接线端子附近冷端温度和使用 ADS122U04 内部温度传感器测出的数值可能有 1-2℃ 的差异对 K 型热电偶来说就是 1-2℃ 的误差。解决方法是板卡上加一颗精度 ±0.2℃ 的数字温度传感器比如 TMP117贴在热电偶接线端子下方用它做冷端温度源。ADS122U04 内部温度传感器可以作为启动自检的粗略参考但正式补偿时走外置传感器。另一个坑是热电偶线缆本身是屏蔽线屏蔽层只能单端接地防干扰但也要避免形成地环路。现场如果看到热电偶读数不停跳动很大概率是冷端被风吹着散热不均或者信号线与动力线太近这两点排查优先级很高。4.3 现场调试实录噪声、地环路与通信不稳我实际调试时遇到一个低频跳变问题PT100 通道读数稳定但热电偶通道总在 ±0.5℃ 之间波动。起初以为是 PGA 增益不够后来用示波器才发现是热电偶线的屏蔽层在传感器端和板卡端都接地了形成闭环地环路。解决办法是把传感器端的屏蔽层悬空只保留板卡端接地一个点改动后波动立即消失。UART 通信不稳定位到是一个很隐蔽的坑。最开始用杜邦线把 ADS122U04 和 TM4C129XKCZAD 连接功能正常做成 PCB 后偶尔出现寄存器读到 FF 或者 CRC 错。排查后发现问题出在 ISO7721 隔离器的供电上隔离副边电源用了板卡上的 3.3V但经过一根细长走线电流波动导致电平抖动。在隔离器电源脚附近加上 100nF 去耦电容后问题彻底解决。另一个高频问题是从机不回复指令。ADS122U04 的 UART 是半双工还是全双工取决于配置我用的是全双工模式主机 TX 接芯片 DIN芯片 DOUT 接主机 RX。要特别注意上电时序芯片的复位引脚如果和 TM4C129 复位连在一起TM4C129 复位期间 IO 状态不稳定可能把 ADC 锁死在复位状态。解决办法是 ADS122U04 复位脚独立 RC 延迟让 ADC 先上电主机晚 50ms 再初始化 UART。5. 实测数据、选型建议与后续扩展5.1 实测指标参考这次板子在空调风柜现场跑了 48 小时数据表现供参考使用标准 PT100 温度校验仪0.1℃ 精度作为比对板载 PT100 通道在 5-45℃ 范围内最大偏差 0.12℃平均偏差 0.06℃热电偶通道在 30-120℃ 区间冷端用 TMP117 补偿后最大偏差 0.4℃。UART 通信在波特率 115200 下连续运行 48 小时无丢帧CPU 占用率和功耗都很低。这颗 24 位 ADC 的优势是分辨率富余低速采样下温漂仍然可接受。需要说明的是这些数据是特定布线和校准条件下得到的不同板卡、不同传感器批次会有差异但至少说明这套方案在 HVAC 这个场景里精度完全够用。5.2 什么时候该换方案ADS122U04IPWR 不是万能的。如果你的系统对同步采样要求很高比如电机保护需要三相电流同步采集那应该选 ADS131 系列如果 ADC 要挂在 CPU 旁边距离很近用 SPI 接口的 ADS122C04 更省事如果每块主板上需要 8 路以上温度通道可以选 ADS124S08。ADS122U04 的优势主要体现在传感器在现场、主控在机柜、两者之间要走几米线的场景UART 接口配合 RS-485 可以很自然地延长传输距离这是它区别于同类 SPI 芯片的核心价值。5.3 后续扩展思路这套硬件我已经在规划扩展一个是把 ADS122U04 挂到 RS-485 总线上一个 TM4C129XKCZAD 主机同时管理 8 个采集节点每个节点 4 通道系统容量扩到 32 路温度另一个是把测出的温度数据直接封装成 Modbus TCP 报文从 TM4C129 的以太网口出去接入楼宇自控系统。ADS122U04 的 UART 地址匹配功能支持多设备挂在同一条总线上后续扩展工作量主要集中在协议层硬件不需要大改。6. 写在最后的一点体会这套设计做下来我最大的感触是模拟链路不要贪多。ADS122U04 看起来只是把一个 24 位 ADC 塞进了 UART 接口但它实际上把传感器调理、激励电流、温度基准、PGA 放大、数字滤波全部整合成了寄存器配置省掉了我之前用分立运放搭建的整套模拟电路。TM4C129XKCZAD 这边没有把时间花在写 ADC 驱动上而是专注以太网协议栈和 PID 控制算法分工明确后系统出问题的概率显著下降。如果让我再做一个温度采集项目我会更早地把校准流程设计进生产环节而不是等现场反馈再补。每个传感器通道的 R_BIAS 电阻都单独校准看起来增加工序实际上省掉了后面大量的返工和客户投诉。高速 UART 接线注意走线长度匹配电源与地平面完整隔离器的去耦电容从原理图阶段就预留位置这些小细节决定了现场能省多少事。这套方案在工业 HVAC 和楼宇自控场景里已经验证过稳定性希望我的经验能帮你在类似项目里少走一段弯路。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询