基于赛普拉斯PSoC混合信号架构,详解嵌入式系统中模拟传感器的接口设计:放大-滤波-ADC三级信号链选型、四类噪声源与滤波器对策、CT连续时间与SC开关电容模块对比、相关双采样CDS消除运放失调(1/f噪声降40dB)、交流调制法测量小电阻,附选型对比表与CDS实现代码
嵌入式系统里微弱模拟信号能不能测准,取决于信号链的三个环节如何配合:放大器把信号和噪声一起放大,滤波器只保留有用频带,ADC的类型与精度决定最终分辨率——而在这一链条中,运算放大器的失调电压与1/f噪声是滤波器和ADC都无能为力的误差源,必须用相关双采样(CDS)这类系统级算法在采样层面抵消。这是赛普拉斯半导体《嵌入式系统中模拟传感器的接口设计》给出的方法论。对做嵌入式与物联网采集节点的工程师而言,这份资料的价值在于把"传感器→放大→滤波→ADC"全链路的选型逻辑和两类典型难题(微伏级热电偶信号、小电阻测量)的解法讲透了。
先看情境。嵌入式芯片处理的信号分为数字与模拟两类,模拟信号通常来自传感器——消费电子中手机麦克风是典型的声音传感器,汽车中使用了上百个传感器,工业安全、能源检测与过程控制同样离不开各类传感器。问题在于:传感器输出的模拟信号通常较小,而且伴随噪声,MCU处理前必须先放大滤波,再经ADC转换。通用传感器系统框图就是"放大器→滤波器→AD转换器"三级级联。
资料给出的选型考量清单值得逐项核对:放大器看放大倍数与功耗;滤波器看类型、拓扑结构、阶数,低通还要看截止频率;ADC方面,目前很多嵌入式芯片片上已集成ADC,需先核对片上ADC的类型、分辨率、采样速度与精度能否满足特定传感器的要求——不能满足时才外挂专用ADC,此时还要额外考虑ADC与主控的接口方式和数据传输速度。这份清单的本质是"先盘点片上资源,再决定是否外扩",直接决定了BOM成本与板面积。
信号经放大器放大后,噪声同样被放大,这一过程中噪声及失调、漂移误差对信号质量影响极大。资料把系统噪声来源归纳为四类,并给出了对症的滤波器选择:
| 噪声来源 | 产生机理 | 对策滤波器 | 设计要点 |
|---|---|---|---|
| 热噪声 | 导体中载流子热运动的固有物理噪声,频谱覆盖全频带 | 低通滤波器(按信号带宽截断) | 截止频率贴近信号有效带宽,避免过宽 |
| 传感器自身噪声 | 传感器内部物理过程产生 | 按传感器噪声谱选择带通/低通 | 先查传感器手册噪声指标再定滤波器 |
| PCB布线不合理噪声 | 电路板布局布线不理想引入的耦合干扰 | 低通+布局优化 | 滤波只能补救,根因在布线 |
| 射频干扰(RFI) | 外部射频环境耦合进入信号链 | 低通滤波器滤除高频 | 截至频率尽量低,必要时加屏蔽 |
| 低频噪声(1/f)与失调 | 频率为0时1/f噪声即运放失调电压,随温度/外部电压漂移 | 滤波器无法消除,需CDS相关双采样 | 失调不随时间变化,可被差分抵消 |
表格最后一行是关键:滤波器可以滤除高频噪声、带外噪声与特定频率噪声,但对失调电压和漂移无能为力——任何运算放大器都不是理想放大器,这是后面CDS技术要解决的问题。
基于可编程数字模块和可编程模拟模块架构的PSoC芯片,除了一般MCU的CPU核与数字处理能力外,还包含模拟模块阵列和数字模块阵列,全部可编程。模拟模块分为两类:CT型(连续时间)和SC型(开关电容)。数字模块之间、模拟模块之间、数模模块之间以及与I/O接口之间的路由非常丰富,还带有部分逻辑运算功能。
两类模块实现滤波器的路径差异明显:
| 对比项 | CT连续时间模块 | SC开关电容模块 |
|---|---|---|
| 实现低通滤波器 | 外加少量阻容元件,实现Sallen-Key型低通 | 不需要任何外部元件 |
| 参数调节方式 | 依赖外部电阻电容值 | 通过开关电容比率和时钟频率调节 |
| 带通滤波器 | — | Q值与中心频率在一定范围内可由用户设定 |
| 陷波(带阻)滤波器 | — | 两个SC模块级联构成二阶陷波,中心频率与陷波深度可调 |
| 滤波阶数上限 | 可与SC模块混合构成多阶 | 最多8阶(低通/带通/陷波) |
| 资源代价 | 占用模块少,剩余模块可做ADC/DAC | 8阶滤波将占满全部SC模块,AD/DA转换功能无法实现 |
这里有一个典型的资源权衡:需要更强噪声抑制时可用SC模块搭到8阶滤波,但代价是全部开关电容模拟模块被占用,片上AD/DA转换无法再用;反过来,用CT模块实现Sallen-Key滤波与SC模块混合构成多阶滤波器,就能留出多余模拟模块实现AD/DA转换或其它外设功能。赛普拉斯开发环境中还提供了基于EXCEL电子表格的滤波器设计向导,帮助用户完成各类滤波器设计。
这是全篇最精彩的部分。K型热电偶灵敏度仅40.7µV/℃,如此小的电压变化必须经放大器放大才能检测。但CMOS运算放大器存在1/f噪声,频率为0时1/f噪声就是运放的失调电压——滤波器滤不掉、ADC也消不了。三类常见ADC在这一点上无一幸免:
相关双采样(CDS,Correlated Double Sampling)的思路是利用"失调电压不随时间变化"这一特性,通过两次采样相减抵消它:
效果数据:经过CDS计算和IIR滤波后,失调的影响降为0,0.1Hz处的1/f噪声降低了40dB。以下是可直接移植到单片机的CDS实现框架:
/* 相关双采样CDS消除运放失调(C语言,伪硬件抽象) */
#include <stdio.h>
/* 假设:MUX_CH_OFFSET 选通偏置通道,MUX_CH_SENSOR 选通热电偶通道 */
extern unsigned short adc_read(unsigned char mux_ch);
#define MUX_CH_OFFSET 0 /* 偏置电压通道 */
#define MUX_CH_SENSOR 1 /* 热电偶信号通道 */
#define IIR_ALPHA_NUM 7 /* IIR 一阶系数分子 */
#define IIR_ALPHA_DEN 8 /* IIR 分母:y += (x-y)*7/8 */
int main(void)
{
int v_offset, v_sample, v_tc;
int iir_y = 0;
/* 第1步:测偏置+噪声(失调包含在 V_OFFSET 中) */
v_offset = adc_read(MUX_CH_OFFSET);
/* 第2步:测信号+偏置+噪声 */
v_sample = adc_read(MUX_CH_SENSOR);
/* 第3步:差值抵消失调 —— V_OFFSET 不随时间变化,相减归零 */
v_tc = v_sample - v_offset; /* 剩余:V_TC + 噪声 */
/* 第4步:一阶IIR滤除残余噪声
* y[n] = y[n-1] + (x[n] - y[n-1]) * 7/8 */
iir_y += (v_tc - iir_y) * IIR_ALPHA_NUM / IIR_ALPHA_DEN;
/* K型热电偶:40.7 uV/degC,按系统增益换算温度 */
printf("CDS输出 = %d LSB, IIR输出 = %d LSB\n", v_tc, iir_y);
return 0;
}
/* 实测效果:失调影响降为0,0.1Hz处1/f噪声降低40dB
* 注意两次采样间隔内噪声需近似平稳,切换速率要足够高 */
对RTU远程终端、热电偶测温模块这类毫伏级信号采集场景,CDS的价值不只是提高精度——它允许选用带失调的普通CMOS运放完成高精度测量,直接摊薄了器件成本。
常规电阻测量用欧姆定律:施加电流、测量电压。但小电阻必须用大电流才能获得足够高的分辨率,大电流测量小电阻既不经济也不合理。资料给出的替代方案是交流调制:用DA转换器产生低频交流信号驱动被测电阻RTest,RTest上的交流信号经PGA放大后先送入带通滤波器滤除噪声,再送入低通滤波器将交流信号恢复为与阻值成正比的直流信号,最后由ADC数字化。
用PSoC实现这一方案的五项优势:DAC很容易产生交流驱动信号;交流激励经开关电容带通滤波后产生零相移;可自动产生同步解调器的时钟信号;带通滤波器带宽可以设置得非常狭窄;带通与低通配合可滤除通带以外的冲击干扰和随机噪声。特别要注意一个时序细节:产生激励信号的DAC,其时序必须与低通滤波器的时序保持一致,否则解调相位失配会引入系统误差。
把这份资料的方法论压缩成可执行的设计检查单:
嵌入式模拟传感器接口设计的完整方法论是"三级信号链+两类误差对策":放大器、滤波器、ADC按预算级联选型,带内噪声交给对型滤波器,滤波器无法消除的失调与1/f噪声交给CDS相关双采样(实测0.1Hz处1/f噪声降低40dB、失调归零),小电阻测量则用交流调制避开大电流难题。对物联网数据采集节点而言,这套方法让普通CMOS运放与片上ADC也能胜任微伏级信号测量,是控制成本与提升精度兼得的工程路径。
本文基于赛普拉斯半导体《嵌入式系统中模拟传感器的接口设计》技术资料整理优化。
沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付
电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应