4. 测距原理

超声测距的底层物理量只有一个:声波从换能器出发,遇到目标后返回,被同一或另一换能器接收。硬件系统真正要做的,是把这段“看不见的往返”转换成可被 MCU 读取的时间、相位或频率差,再换算成距离。不同方法对硬件的要求差异很大,选错方法往往导致电路复杂度和成本成倍上升。

一、脉冲回波法:最常用的飞行时间方案

脉冲回波法(Pulse-Echo)让换能器发射若干个周期的超声脉冲,随后立即切换为接收状态,等待回波。设声速为 c,往返时间为 t,则距离 d = c·t/2。空气中声速受温度影响明显,常用近似式 c ≈ 331.4 + 0.607·T(m/s,T 为摄氏度)。例如 25 ℃ 时 c ≈ 346.6 m/s,若测得 t = 5.8 ms,则 d ≈ 346.6 × 0.0058 / 2 ≈ 1.005 m。

硬件上,脉冲回波法的关键是“发射—接收切换”和“阈值检测”。发射时驱动电压可达几十伏,接收回波却只有毫伏级,因此需要收发隔离、限幅保护和可变增益放大。回波到达时刻通常由比较器在超过阈值时产生中断,MCU 用定时器捕获该时刻。

距离计算核心公式:d = c × t / 2。除以 2 是因为 t 是往返时间,不是单程时间。

二、相位法:用相位差提高分辨率

相位法发射连续正弦超声,接收回波与发射信号之间存在相位差 Δφ。由于 Δφ 与往返距离呈周期性关系,单频测量只能得到“距离对波长取模”的结果,存在多值模糊。设波长为 λ,则 Δφ = 2π·(2d/λ) mod 2π。要得到绝对距离,必须配合粗测(如脉冲法)或采用多频解模糊。

相位法的优势在于分辨率高:相位检测可分辨到几度,对应距离分辨率可达 λ/几十。例如 40 kHz 超声在空气中 λ ≈ 8.6 mm,若相位分辨率为 5°,理论分辨率约 0.12 mm。但硬件需要正交解调、低通滤波和相位计算,对 ADC 采样率和信号链噪声要求较高。

三、频率调制法:用扫频解距离

频率调制法(FMCW 思路)发射频率随时间线性变化的扫频信号,回波与当前发射信号混频后得到差频 f_b。差频与往返时间成正比:f_b = (B/T_sweep)·t,其中 B 为扫频带宽,T_sweep 为扫频周期。再结合 t = 2d/c,可得 d = c·T_sweep·f_b/(2B)。

该方法把“时间测量”转化为“频率测量”,在硬件上更利于数字信号处理,且抗干扰能力较强。但超声换能器本身带宽窄,扫频范围受限,实际系统中常用于中短距离、高精度场景,或与脉冲法形成互补。

超声测距四种方法:从物理量到距离计算 超声换能器 发射 / 接收 目标物体 反射面 发射声波 回波 脉冲回波法 发射短脉冲串 测量往返时间 t 阈值比较器捕获 定时器记录时刻 d = c·t / 2 c ≈ 331.4 + 0.607T 优点:简单、成本低 缺点:盲区、阈值误差 适用:倒车雷达、避障 相位法 连续正弦发射 检测相位差 Δφ 正交解调 / 鉴相 多频解模糊 Δφ = 2π·(2d/λ) mod 2π 分辨率可达 λ/几十 优点:分辨率高 缺点:多值模糊、电路复杂 适用:精密测距、液位 频率调制法 线性扫频发射 回波与发射混频 提取差频 f_b FFT 测频 d = c·T·f_b / (2B) 时间测量→频率测量 优点:抗干扰、易数字化 缺点:换能器带宽受限 适用:中短距高精度 飞行时间与计算 t = 2d / c 温度补偿声速 扣除电路延迟 t0 多次测量取中值 d = c·(t − t0) / 2 t0 为收发链路固定延迟 关键:声速校准 关键:回波前沿判定 关键:抗多径与噪声

四、飞行时间测量与距离计算流程

无论采用哪种方法,最终都要落到“时间—距离”换算。典型流程如下:

  1. MCU 触发发射,同时启动定时器;
  2. 换能器发射脉冲或扫频信号,经过收发切换;
  3. 回波到达,比较器或 ADC 产生到达标志;
  4. 定时器捕获时间戳,得到原始 t;
  5. 扣除固定延迟 t0,代入温度补偿后的声速 c;
  6. 计算 d = c·(t − t0)/2,并做中值滤波或滑动平均。

其中 t0 是硬件链路延迟,包括驱动延时、比较器响应、线缆传输等,通常通过已知距离标定获得。忽略 t0 会在近距离产生明显偏差,例如 t0 = 200 μs 时,对应距离误差约 3.5 cm。

五、方法对比与选型清单

方法 核心测量量 典型分辨率 硬件复杂度 适用场景
脉冲回波法 往返时间 t 厘米级 低 倒车雷达、避障、液位
相位法 相位差 Δφ 亚毫米级 高 精密测距、位移监测
频率调制法 差频 f_b 毫米级 中高 中短距高精度、抗干扰
飞行时间计算 t 与 c 的换算 取决于前端 — 所有方法的最终环节

六、常见误区与复盘

误区一:只测一次就输出距离。超声回波易受多径、噪声和温度影响,单次测量抖动可达数厘米。工程上应连续采样 5~9 次,取中值或剔除异常值后再输出。

误区二:忽略声速温度补偿。0 ℃ 与 40 ℃ 的声速相差约 24 m/s,在 2 m 距离上可造成约 7 cm 误差。低成本方案可用温度传感器实时修正 c。

误区三:把 t 直接当单程时间。回波时间是往返时间,忘记除以 2 会使距离翻倍,这是初学者最常见的错误。

调试建议:先用已知距离(如 0.5 m、1 m、2 m)标定 t0 和声速系数,再观察不同目标材质(纸板、玻璃、人体)的回波幅度差异,最后加入温度补偿和滤波。只有把“物理量—电信号—时间戳—距离”这条链路逐段验证,测距结果才稳定可信。

// 距离计算示例(温度补偿 + 固定延迟扣除)
float temperature = 25.0f;              // 摄氏度
float c = 331.4f + 0.607f * temperature; // m/s
float t_us = 5800.0f;                    // 往返时间,微秒
float t0_us = 200.0f;                    // 硬件固定延迟,微秒
float d = c * (t_us - t0_us) * 1e-6f / 2.0f;
// 结果约 0.970 m

总结来看,脉冲回波法适合大多数低成本测距场景,相位法和频率调制法用于更高精度需求,而飞行时间测量与距离计算是所有方法的公共收口。硬件设计时应先明确精度、量程、成本和抗干扰要求,再反向选择发射驱动、接收链路和计时方案,避免“先画电路、后补原理”的被动局面。