第一章:传感器信号基础

做嵌入式这么多年,我接触过的传感器少说也有上百种。从最简单的温度传感器,到复杂的激光雷达,说到底它们都在做同一件事——把物理世界的信号,变成电信号,再变成数字信号。

这一章,咱们就把传感器信号的基础打牢。你想想看,信号都搞不清楚,后面滤波、去噪、特征提取根本没法做。

1.1 传感器分类:你到底在测什么?

传感器怎么分类?我习惯按被测物理量来分。这样最直观,也最实用。

分类方式 常见类型 典型传感器
按被测物理量 温度、压力、力、位移、速度、加速度、流量、气体、光、声、磁 热电偶、压阻式压力计、加速度计、霍尔传感器
按工作原理 电阻式、电容式、电感式、压电式、光电式、磁电式 应变片、电容麦克风、压电陶瓷、光电二极管
按输出信号 模拟传感器、数字传感器 模拟麦克风、数字温度传感器(DS18B20)
按供电方式 有源传感器、无源传感器 热电偶(无源)、PT100(有源)

我个人习惯,选传感器时先看被测物理量,再看输出信号类型。举个例子,做电机转速检测,我一般先选霍尔传感器或编码器,然后看输出是模拟电压还是数字脉冲。

小经验: 很多新手上来就纠结精度,其实先搞清楚你要测什么、输出是什么,比什么都重要。我在一个项目中见过有人用高精度模拟加速度计做倾角测量,结果输出噪声大得根本没法用——后来换成数字输出的MEMS加速度计,反而简单多了。

1.2 信号类型:模拟 vs 数字

传感器输出的信号,说白了就两种:模拟信号和数字信号。

模拟信号

模拟信号是连续变化的电压或电流。比如热电偶输出几毫伏的电压,温度每升高1℃,电压变化几十微伏。模拟信号的好处是理论上无限分辨率,坏处是容易受干扰。

我记得有一次做工业现场的温度采集,热电偶信号线走了20米,到ADC输入端一看,噪声比信号还大。后来加了屏蔽线和差分传输才搞定。

数字信号

数字信号就是0和1。常见的数字传感器输出I2C、SPI、UART或者PWM。数字信号抗干扰能力强,但分辨率受限于位数。

举个例子,一个12位的数字温度传感器,温度范围-40℃到125℃,分辨率就是(125+40)/4096 ≈ 0.04℃。够用吗?大部分场景够了。但如果你要做精密恒温控制,可能就需要16位甚至24位的ADC。

核心区别:
  • 模拟信号:连续、无限分辨率、易受干扰、需要ADC
  • 数字信号:离散、有限分辨率、抗干扰强、直接读取

1.3 信号特性参数:精度、分辨率、带宽

这三个参数,我每次选传感器都要看。很多工程师把它们搞混,其实区别很大。

精度

精度是测量值和真实值的接近程度。说白了就是准不准。精度通常用百分比或值表示,比如±0.5℃或±1%FS。

我遇到过最坑的一次:一个压力传感器标称精度±0.5%,结果实际测试偏差达到2%。后来发现是温度漂移太大。所以看精度时,一定要看全温度范围内的精度,而不是25℃下的精度。

分辨率

分辨率是传感器能检测到的最小变化量。比如一个12位ADC,参考电压3.3V,分辨率就是3.3V/4096 ≈ 0.8mV。

注意:分辨率不等于精度。高分辨率不代表高精度。我见过有人用24位ADC做称重,结果精度还不如16位的——因为噪声太大,低几位全是无效位。

带宽

带宽是传感器能响应的频率范围。比如一个加速度计带宽100Hz,意味着它能测量100Hz以内的振动信号。

带宽和采样率要匹配。根据奈奎斯特定理,采样率至少是带宽的2倍。实际工程中,我一般取5-10倍。比如测100Hz的信号,采样率至少500Hz以上。

参数 定义 典型值 注意事项
精度 测量值与真实值的偏差 ±0.1℃, ±0.5%FS 注意温度漂移、长期稳定性
分辨率 能检测的最小变化量 12位(0.024%), 16位(0.0015%) 高分辨率≠高精度,注意噪声
带宽 能响应的频率范围 10Hz~1kHz(加速度计) 采样率至少2倍带宽,建议5-10倍
避坑指南: 我曾经在一个振动监测项目中,选了带宽100Hz的加速度计,采样率设了200Hz。结果发现高频振动信号被严重衰减。后来才意识到,传感器本身的带宽限制了能测的频率上限。选传感器时,带宽一定要留余量。

1.4 知识体系总览

下面这张图,是我自己总结的传感器信号基础框架。你把它记在心里,后面学滤波、去噪、特征提取时,就知道每一步在干什么了。

传感器信号基础 · 知识体系 传感器分类 信号类型 信号特性参数 按物理量:温度/压力/力/位移 按原理:电阻/电容/压电/光电 按输出:模拟/数字 模拟信号:连续电压/电流 数字信号:I2C/SPI/UART/PWM 抗干扰能力:数字 > 模拟 精度:测量值与真实值偏差 分辨率:最小可检测变化 带宽:可响应频率范围 核心目标:准确获取物理量信息

这张图把传感器分类、信号类型、特性参数串起来了。你从左边开始,先确定测什么、用什么传感器,再看输出什么信号,最后评估精度、分辨率、带宽是否满足需求。

我的习惯: 拿到一个新项目,先画一个类似的框架图。把传感器、信号链、处理算法都标出来。这样后面做硬件选型和软件设计时,心里就有底了。

好了,传感器信号基础就讲到这里。记住三个核心参数:精度、分辨率、带宽。后面每一章都会用到这些概念。

可可精品资料库