十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

信号调理IC如何让IoT传感器信号精准对接ADC

信号调理IC如何让IoT传感器信号精准对接ADC 做过IoT传感器节点的人应该都体验过这种痛苦传感器明明接对了MCU的ADC读数却是满屏乱跳热电偶输出只有几毫伏一接长线就被工频噪声淹没电桥信号差分成百上千倍放大电路自己就飘得比信号还厉害。这些问题说白了就是传感器原始信号和采集系统之间的匹配问题。信号调理ICSignal Conditioner IC就是专门解决这类问题的芯片它把放大、滤波、激励、校准这些脏活累活打包在一起让传感器信号能直接对接ADC或MCU。这篇文章我会结合这几年在IoT传感器产品上踩过的坑把信号调理IC的原理、选型、实操方案和调试技巧一次讲透适合正在做物联网传感器节点、工业数据采集或可穿戴设备的工程师参考。1. 信号调理IC到底在解决什么问题1.1 传感器的“原始信号”为什么这么难伺候很多人第一次接触传感器时都会有个错觉传感器输出不就是个电压嘛拿万用表一量再接到单片机ADC上不就行了真这么简单市面上就不会有那么多信号调理芯片了。实际上传感器输出的“原始信号”普遍有三个特点信号很小、阻抗很高、环境噪声很杂。拿最常见的几类传感器说。K型热电偶的塞贝克系数大约是40µV/°C测100°C温差也就4mVPT100铂电阻在0°C时是100Ω温度每升高1°C阻值只增加约0.385Ω应变式称重传感器的灵敏度通常只有1mV/V5V激励下满量程输出才5mV。这些信号放在3.3V或5V的系统里连一个百分之一的ADC满量程都占不到。如果直接用单片机内置ADC采样哪怕ADC是12位的算下来1个LSB对应的温度变化也非常大根本达不到产品要求的精度。更麻烦的是共模干扰。桥式传感器、热电偶这些器件往往要接很长的线到采集端线束在工业现场或者电机旁边一走过共模噪声就能到几十伏甚至上百伏。这时候普通运放直接放大放大出来的可能不是信号而是噪声本身。再加上传感器本身还有非线性、温漂、焊点热电势这些“隐性误差”传统模拟前端方案想把这些全搞定工程量和BOM成本都得翻好几倍。1.2 传统分离方案和集成信号调理IC的差别在没有专用信号调理IC的年代我们做传感器采集板基本是这么干的先用仪表放大器INA做一级差分放大再用一个精密运放做二级放大和滤波外面配精密基准源、配恒流源给RTD和电桥供电最后进ADC然后在MCU里做校准算法。这套方案不是说不能用但你很快会发现几个问题。第一板子面积大。仪表放大器、运放、基准、ADC、无源滤波网络这一串下来一个传感器通道就得占掉比拇指还大的一块板面IoT节点动不动就要做4路、8路采集PCB面积根本扛不住。第二每个器件的温漂特性都不一样低温下运放零点漂移、基准源飘一点、ADC增益误差再飘一点累加在一起根本没法预估。第三也是最头疼的校准特别费事。零点、满量程、非线性每个环节都要单独调量产的时候产线工人得拿电位器一个个拧效率低还容易出错。信号调理IC的思路是把这一整条模拟链路做成一颗专用芯片内部集成可编程增益放大器PGA、精密基准、激励电流源、滤波器、高分辨率ADC甚至MCU核和校准引擎。你只需要在外围接几个电容电阻用SPI或I2C配置一下参数传感器信号就能以数字量输出。像ADI的AD7124系列、TI的PGA900、Maxim的MAX31865都是这类芯片的典型代表。它们把模拟链路的匹配问题在晶圆制造层面就解决掉了管脚一致性远好于你自己搭的分离电路。1.3 为什么IoT场景特别吃这一套IoT传感器节点和传统的工业采集卡有一个本质区别它要在功耗、体积、成本三个维度同时做到极致还要保证长期稳定。先说功耗。绝大多数IoT节点是电池供电或者靠能量采集供电的静态电流差几个毫安整机续航就能差出几个月。新一代信号调理IC在连续转换模式下能跑到几百微安级别休眠模式甚至到微安以下。这个功耗水平用分离方案很难做到因为仪表放大器、基准、ADC每一个都有静态功耗你很难让所有器件一起进入低功耗状态而且唤醒时间也参差不齐。再说系统集成度。IoT节点常常要做成传感器加无线模块再加电池的三件套结构体积限制非常死。信号调理IC把模拟部分高度集成之后整颗芯片封装只有4mm乘4mm左右甚至更小。同时它提供了数字接口MCU可以直接读寄存器拿数据省掉了模拟量程切换和软件校准这些复杂逻辑MCU选型压力也小很多。最后是诊断能力。IoT节点部署之后很难派人去现场维护所以信号调理IC大多内置了传感器开路/短路检测、过压保护、温度告警这些功能。这些功能在芯片内部就能完成比你在外面加保护电路要简单得多而且能在数据异常时第一时间给出标志位这是分离方案给不了的。2. 选型时我重点看哪几个参数2.1 增益、量程和过压保护选信号调理IC第一个要看的不是价格而是它的增益范围和输入量程能不能覆盖你的传感器输出。这里有两个坑值得说。第一个坑是PGA增益上限。有的芯片标称最大增益128倍听起来很猛但你得看增益上去之后输入范围被压缩到多少。比如你用3.3V单电源供电增益128倍时输入失调可能只有几个毫伏但有效输入范围可能连1V都不到了动态范围反而变差。所以选型时一定要看芯片手册里的“输入共模范围”和“增益-带宽积”两张表确认在你的传感器输出范围内PGA的增益精度和线性度是有保证的。第二个坑是过压保护。工业IoT场景里传感器接口经常是外露的接线错误、静电放电、电机启停产生的浪涌都可能跑到信号输入端上。好的信号调理IC输入端会集成ESD保护二极管和过压钳位电路能承受正负十几伏甚至几十伏的过压。如果芯片手册里没提这一点建议你在外部加TVS管和串阻不然第一次接完线就可能烧掉一片。2.2 噪声密度与有效分辨率的关系很多初选芯片的人看到一个24位ADC就觉得精度天下无敌实际拿到手一测才发现有效分辨率远比标称的低。这里要区分两个概念标称ADC位数和无噪声分辨率。Σ-Δ型ADC的24位是指它内部量化器的位数但受限于热噪声、PGA噪声和基准噪声最终输出的无噪声分辨率通常只有20位左右低增益时甚至更低。怎么判断够不够用我一般是从传感器信号倒推。比如PT100用1mA激励PGA增益设为8倍传感器输出温度每变化1°C对应电压变化约3mV。如果芯片手册给出的输入参考噪声在PGA增益8倍条件下是1.5µVrms那峰峰值噪声大约是10µV折合温度噪声就是0.003°C左右。这个精度只要比产品要求高5倍以上就足够了没有必要追求极限分辨率的芯片因为分辨率越高功耗和价格通常也越贵。2.3 功耗预算直接影响电池寿命IoT节点功耗要看的不是芯片手册首页那个“超低功耗”口号而是要仔细看几种工作模式的电流和切换时间。以AD7124这类芯片为例它通常有连续转换模式、单次转换模式、待机模式、休眠模式。连续模式电流可能要到几百微安甚至毫安级单次转换模式则是转一次就回休眠平均电流就能压到几十微安。我算过一笔账一个节点用3.7V锂电池供电电量2000mAh信号调理IC加MCU加无线模块的平均工作电流加起来是500µA左右理论续航是4000小时也就是166天。如果把信号调理IC配置成每10秒单次转换一次平均电流降到100µA续航直接翻五倍到830天。所以选型时一定要关注最小唤醒时间和单次转换时间这两个参数决定了你能把测量占空比压到多低。2.4 激励源特性决定传感器供电精度温度传感器RTD、热敏电阻、桥式应变片都需要激励源供电。信号调理IC内部集成激励电流源和激励电压源但激励源的精度和温漂参差不齐。这里有一个非常关键的技巧如果你的ADC使用外部基准电阻做比例式测量那么激励电流源的绝对精度其实不那么重要重要的是它的短期稳定性和噪声因为激励电流同时流过传感器和基准电阻电流变化会被比值运算抵消掉。比如AD7124的激励电流源经过校准后绝对误差可能有0.5%但比例式架构下激励电流的波动同时影响传感器电压和基准电压测量结果只取决于两者的电阻比值所以精度主要看外部基准电阻RREF的温漂而不是激励电流源本身。这个道理如果你不理解很可能在调试时把好端端的芯片怀疑成“不准”其实是激励电流温度特性带来的假象。2.5 数字接口与诊断功能别忽视信号调理IC和MCU之间的接口直接影响系统复杂性。绝大多数调理芯片支持SPI或I2C接口SPI吞吐量高但占引脚多I2C引脚少但速度较慢。IoT节点一般采集频率不高I2C完全够用还能和其他传感器挂同一条总线。但SPI在多通道高速采集时更有优势能顺便做点流水线式读取。诊断功能这一块我强烈建议选带传感器开路和短路检测的芯片。实际使用中热电偶断线、PT100引线松动、接插件氧化都是高频故障如果没有诊断功能系统靠什么发现问题只能在App里看到一个离谱的温度值然后被用户投诉。有了诊断标志位MCU至少可以在异常时进入保护逻辑甚至上报云端让运维感知。3. 实操三个典型的IoT传感器方案3.1 RTD温度测量AD7124-4加PT100三线制RTD测温是工业IoT里最常见的场景我以一个基于AD7124-4的PT100测温方案为例讲一下完整配置过程。接线方式推荐三线制。PT100一端接激励电流源输出另外两根线分别接到模拟输入AIN2和AIN3的差分对上。为什么是三线而不是两线因为导线本身有电阻两线制会把引线电阻算进测量结果一米长的普通导线就有几十毫欧温度高时变化更明显。三线制的精髓是让两根引线上的压降尽量相等然后通过差分输入把引线电阻的影响抵消掉。对精度要求更高的场景用四线制效果最好但需要四根线成本高。激励电流我选1mA。为什么要取这个值PT100在0°C时100Ω1mA下压降100mV在满量程500°C时大约280σ压降280mV。电流太大自热效应会叠加电流太小信噪比下降。1mA是精度和自热之间的平衡点。外部基准电阻RREF选2.5kΩ这样激励电流在RREF上产生2.5V基准电压正好满足ADC参考电压要求同时采用比例式测量消除激励电流源温漂的影响。寄存器配置这块我会设置ADC控制寄存器选择外部基准PGA增益设为8倍配置AIN2和AIN3为差分输入对激励电流源选择1mA接到AIN2正输入端滤波选择sinc4滤波器输出速率设置50SPS抑制工频干扰开启传感器开路检测RTD断线时能立刻报故障这样一套配置下来量程覆盖-50°C到200°C的典型设备测温场景绰绰有余。实测在PGA增益8倍、输出速率50SPS下无噪声分辨率大约18到19位换算成温度分辨率约0.005°C对于绝大多数IoT应用都富余了。3.2 热电偶测温冷端补偿和信号放大热电偶的优点是耐高温、耐受恶劣环境缺点是信号极小而且必须做冷端补偿。很多只用过NTC或DS18B20的工程师第一次用热电偶会被坑到明明用标准温度源标定过为什么读数还是偏了大概率是冷端没处理。热电偶输出的是测量端和冷端的温差电动势不是绝对温度。K型热电偶40µV/°C如果冷端是25°C而你没做补偿测出的温度就凭空少了25°C。所以芯片必须知道冷端的绝对温度才能把温差电动势换算成绝对温度值。AD7124等芯片内部集成了温度传感器读取后做冷端补偿即可。但要注意内部温度传感器的精度一般在±1°C到±2°C之间对于高精度应用可能不够需要外加一个精度更高的冷端温度传感器比如PT100或NTC贴在热电偶端子旁边。在放大电路配置上热电偶信号大约-10mV到80mVPGA增益可以设到64倍甚至128倍把信号放大到ADC量程的合适范围。滤波方面要特别注意热电偶引线在工业现场很容易拾取共模噪声和射频干扰所以除了芯片内置的sinc滤波器之外最好在输入端加一个共模扼流圈或者TVS管。另外热电偶正负极材料不一样接反了会让温差电动势变成负值读取异常时要先查这个。3.3 桥式传感器PGA900一体式调理方案称重、压力、扭矩这类桥式传感器的输出特性很相似满量程输出和激励电压成正比典型灵敏度1mV/V到3mV/V。如果只做一颗传感器的调理用仪表放大器加分立ADC就能搞定但IoT产品往往要校准每颗传感器的个体差异这时候PGA900这种带MCU核和EEPROM的调理芯片优势就非常明显。PGA900内部的PGA增益最高可以到200倍还有24位Σ-Δ ADC、16位DAC、ARM Cortex-M0处理器和EEPROM。它的典型用法是电桥输出信号进PGA放大ADC采样后交给内部M0做线性化计算校准系数存进EEPROM然后通过SPI/I2C或者模拟输出接口把结果送出去。每个传感器经过校准后只需要从EEPROM里读出对应系数就能在几十毫秒内完成一颗传感器标定。我做一个称重传感器节点时是这么配的。先把激励电压设为5VPGA增益设为100倍采样速率设为1200SPS应对动态称重再把内部16点线性化查找表打开。校准流程是这样的第一步在空载状态记录零点输出第二步加载标准砝码记录满量程输出第三步在1/2量程、1/4量程、3/4量程处各记录一次生成分段线性化补偿表。整个过程通过上位机软件自动完成每颗传感器的校准时间不超过5秒产线效率比手工调电位器高了几个量级。这个方案踩过最大的坑是电桥激励的开关时机上电瞬间如果激励建立太快PGA输入端会有冲击必须在芯片配置里把激励源的软启动打开。4. 从信号链角度看IoT系统设计4.1 传感器端、调理端和数字端的职责划分有了信号调理IC之后完整信号链的分工就清晰了传感器负责物理量转模拟量信号调理IC负责模拟量的放大、转换和初步校准MCU负责协议通信和业务逻辑。这个划分不仅让硬件工程师省事也让固件工程师的代码好写很多。以前没有调理IC时单片机要把很大一部分算力花在软件滤波和线性化上。比如热电偶的非线性要查表电桥的非线性要多项式拟合这些算法塞在MCU里既占Flash又占RAM还得保证实时性。现在信号调理IC直接把这些从硬件上做了MCU只需要通过SPI把寄存器读出来乘一个系数再加个偏移量就行了。我甚至在某些低端方案里用一颗8位MCU就完成了4路传感器数据采集加无线上报这在过去是不可想象的。当然划分清晰不代表MCU可以什么都不管。你应该在固件里做一次传感器故障合理性检查比如温度变化率超过每秒10°C就判为异常防止调理IC在某些极端情况下把错误数据直接上报。4.2 无线传感器节点的功耗预算实例信号调理IC选型确定后我习惯把整个节点的功耗预算列一张表这是项目立项阶段就必须做的功课。以一个无线温度传感器节点为例模块平均电流占比说明信号调理IC3µA15%每10秒唤醒单次转换MCU8µA40%休眠定时唤醒读取数据无线模块7µA35%每天上报一次每次发射100msDC-DC损耗2µA10%电源转换效率90%这颗节点用1000mAh锂亚电池供电理论寿命约50个月实际留30%余量后仍有35个月左右。这里信号调理IC的休眠电流压到最低是前提如果芯片待机就有50µA整机寿命会直接掉到几个月所以选型时一定要看“典型待机电流”而不是“最大待机电流”有些芯片手册这两个数字能差出10倍。4.3 传感器校准和标定的工程化IoT产品一旦量产每台设备的传感器都要标定这是逃不掉的一环。很多工程师在学校里做的标定是拿三五个点画个曲线但产线上要的是自动化。我的经验是设计PCB时就预留出校准接口比如一个4Pin的调试座把信号调理IC的SPI引脚、校准使能引脚都引出来产线通过Pogo Pin直接压在测试座上烧写EEPROM比靠产品外壳开孔接USB要可靠得多。标定流程也要规范化。工业温度校准至少要两个温度点零点和满量程。但如果是宽量程的传感器我建议至少取五个点做分段线性插值因为传感器的非线性在中段往往比两端更明显。标定数据要存两份一份在信号调理IC的EEPROM里一份在云端数据库里。这样设备返修重新标定时你能通过SN码对比历史校准曲线快速判断是传感器老化还是电路失效。我遇到过某个批次传感器漂移很厉害单看设备校准曲线根本发现不了后来把几千台设备的校准系数汇总做统计分析才发现是生产批次问题这个经验对量产质量管控非常重要。5. 调试现场常见问题排查实录5.1 读数乱跳噪声处理三板斧信号调理IC比全分离电路调试简单很多但“读数乱跳”仍然是大家遇到最多的抱怨。我排查噪声的顺序基本固定经验就是先看电源再看接地最后才怀疑芯片本身。第一查电源质量。信号调理IC的电源引脚一定要有低频和高频两级去耦。低频用10µF钽电容或陶瓷电容靠近电源入口高频用0.1µF陶瓷电容要紧贴芯片电源引脚越近越好。如果板子上还有DC-DC一定要确认开关频率有没有耦合到传感输入线上必要时在传感器供电线上加LC滤波。第二查接地。模拟地、数字地、传感器地在PCB上要单点连接不要让传感器返回电流流过数字地平面。我用过的方案里凡是ADC读数带周期性抖动十有八九是数字地噪声串入模拟地了。第三查输入走线和屏蔽。传感器长线一定要用屏蔽双绞线屏蔽层单端接到电路板的地绝对不能两端都接否则会形成地环路反而引入更大噪声。在调理芯片输入端加一个射频扼流圈或RC低通滤波器也能明显改善电台干扰造成的跳变。具体RC值我一般选1kΩ串联加10nF到地截止频率约16kHz对工频和大部分环境噪声都有衰减对传感器信号带宽也够用。5.2 读数稳定但整体偏大或偏小读数不乱跳但数值和标准温度计差了几度这种问题最常出现在RTD和热电偶应用里。如果是PT100测温先查激励电流和RREF是否匹配。外部基准电阻温漂过大会导致读数成比例偏移我曾经踩过用普通厚膜电阻当RREF的坑温度从0°C到50°C读数偏移了将近3°C。后来换成25ppm温漂的精密电阻问题立刻消失。如果是热电偶偏小大概率是冷端补偿没生效。检查芯片内部温度传感器读数是否正确再确认代码里补偿公式的符号有没有写反。热电偶还有个小细节两段不同材质导线接在一起会形成新的热电偶这叫“无用热电势”。如果你的热电偶延长线用了铜线而不是补偿导线接点处的附加电动势会直接叠加进测量结果。所以到芯片引脚这一段线必须使用与热电偶类型匹配的补偿导线不能随手拿铜线凑数。5.3 SPI通信时好时坏信号调理IC只要带上数字接口SPI通信问题就是绕不开的。我遇到过最典型的现象数据偶发错误CRC校验偶尔不过但用示波器看波形又找不到明显问题。后来定位到两个原因。一是SPI时钟线速率太高某些信号调理IC的最大SCLK是5MHz但STM32默认SPI分频后仍然可能超过芯片规格尤其在走线较长时信号边缘变差。解决方法是把SPI时钟降到1MHz以下并用示波器确认上升沿没有明显振铃。二是CS片选引脚的毛刺如果CS引脚悬空或走线过长切换瞬间可能误触发芯片。我给所有控制信号串了22Ω到47Ω的电阻做阻尼同时把CS上拉到高电平故障频率明显下降。5.4 ADC自热和环境温漂带来的测量偏差有一个问题很容易被忽视就是信号调理IC自身的功耗发热会让芯片温度高于环境温度。当芯片内部温度稳定下来后如果传感器和芯片做在同一块板上传感器也会被烘热产生测量偏差。这个问题在精度要求0.1°C以上的应用里很致命。我的处理办法是做PCB时把传感器焊盘尽量远离调理芯片在芯片底下铺铜散热同时把冷端补偿的温度源放在热电偶端子位置而不是依赖芯片内部温度传感器。另外让节点上电后先运行几分钟再开始采样等热平衡建立同时用软件记录一个“预热偏移”来扣除也能改善。6. 工程化落地从原型到量产的经验6.1 校准算法的“最后一步”别偷懒信号调理IC本身已经做了大量线性化工作但真到量产我发现还是要再补一层软件校准。原因很简单传感器个体差异和安装应力不同光靠芯片级的通用线性化表不够。我的做法是在MCU里做一个两点校准通过上位机下发标准值让设备记录当前原始码值然后求出增益系数和零点偏移。公式就是最基础的线性变换真实值 原始值 × 增益系数 零点偏移增益系数由两个标准点决定(标准值2 - 标准值1) / (原始码值2 - 原始码值1)。零点偏移 标准值1 - 原始码值1 × 增益系数。这个算法我直接写在固件里产线只需要通过串口命令触发一次校准几十秒就能完成。坚持到最后把这一步做好能省掉后续大量的售后返修。6.2 物料公差控制和生产测试信号调理IC外围元件虽然少但RREF电阻、传感器供电稳压器这几颗物料一定不能省成本。RREF我要求用温漂10ppm/°C的精密电阻供应商批号切换时必须要首件检因为我就遇到过同一规格不同批次电阻实际阻值差0.5%的情况直接导致一批产品精度超标返工。生产测试环节有两个必做项一是上电自检确认信号调理IC巡检寄存器能正确识别传感器类型二是老化测试产品在50°C高温箱里跑24小时记录每小时的温漂曲线超过阈值的直接剔除。这样做虽然增加时间和成本但能把最讨厌的“出厂正常、到了现场就漂”问题提前拦截掉。6.3 我习惯保留的调试接口不管最终产品做多小我强烈建议在PCB上保留一组调试接口SWD下载口、UART日志口、信号调理IC的SPI测试点。很多人觉得量产板留这些口浪费空间但到现场问题排查时这几个焊盘就是救命稻草。我经历过一个项目产品部署在北方某基地冬天野外温度零下二十多度设备上报的温度值始终偏高4°C当时如果没有调试接口我用逻辑分析仪直接抓信号调理IC的SPI波形根本没可能快速定位是芯片内部温度传感器读数异常还是固件补偿逻辑缺陷。后来靠着调试口现场工程师发来原始寄存器值我在办公室分析后发现是某批次信号调理IC的出厂校准参数丢失重新刷写固件更新校准系数后问题解除。所以这几个调试焊盘再小也值得留。说回到信号调理IC的价值。IoT传感器产品的核心竞争力很多时候并不取决于云平台多炫酷、App交互多流畅而是取决于数据从源头是不是准的、稳的。信号调理IC把传感器最脏最累的模拟前端问题消化掉了让我们能把精力放在系统优化和产品迭代上。这几年我做过的每一款IoT产品无论是测温、称重还是振动监测选型和调试的核心始终是那条模拟信号链只要信号链路稳健后面的一切都顺理成章。
返回列表