毫米波雷达基础知识
1、雷达绪论
雷达被广泛应用于军事领域,在这里不作过多赘述。在工业领域,雷达也被用于化工工业,粮仓等储存罐体,以及水利水务的液面或表面高度探测。在民用领域,毫米波雷达被大量应用在汽车上,例如ADAS辅助驾驶。
以下图片来自大众汽车视频号。现代中高档汽车的前置车标内部一般均配备毫米波雷达,不同于普通的塑料车标,这种配备毫米波雷达的车标外壳一般是透波陶瓷材料,价格约在200元。内部安装4D毫米波雷达(三维空间坐标+速度维度)用于ADAS汽车辅助驾驶,最低可实现L2+级别的辅助驾驶功能,具备主动刹停、碰撞预警、自动跟车等功能。配合其他传感器可实现L4+级别的辅助驾驶功能。该前置4D雷达总成(前置车标)的车辆4S店报价大约在7000元左右。

可在二手平台搜索“ZU3EG”,看到一些拆解的4D车载毫米波雷达实物图。图片中显示该雷达由4片TI公司AWR1243(3T4R)芯片级联而成,直接输出ADC采集之后的原始中频数字信号,主处理器为AMD XAZU3EG SoC,对雷达信号进行实时处理。

大约在2015-2019年左右,TI公司的第一代毫米波雷达的探测距离最远为120米。在2026年4月的“2026北京国际汽车展览会,Auto China 2026”,德国博士公司(BOSCH)展示出了基于其自研芯片的第七代毫米波雷达芯片与模组。在不高于3.5W的功率下可实现最高500米的探测距离,在不高于11W的功率下可实现最高700米的探测距离。



2、什么是毫米波
毫米波 (mmWave) 是一类使用短波长电磁波的特殊雷达技术。雷达系统发射的电磁波信号被其发射路径上的物体阻挡继而会发生反射。通过捕捉反射的信号,雷达系统可以确定物体的距离、速度和角度。
毫米波雷达可发射波长为毫米量级的信号。在电磁频谱中,这种波长被视为短波长,也是该技术的优势之一。诚然,处理毫米波信号所需的系统组件(如天线)的尺寸确实很小。短波长的另一项优势是高准确度。工作频率为 76–81GHz(对应波长约为 4mm)的毫米波系统将能够检测小至零点几毫米的移动。所以毫米波雷达对相位变化极其敏感。

3、毫米波频段
毫米波通常指 30–300 GHz 的电磁波区域,对应10-1mm波长。对雷达而言,频率越高,波长越短,天线尺寸越小;同时在相同带宽下,距离分辨率越高。
77–81 GHz 落在 W 波段内,也是当前车载与工业 mmWave 的热门频段。短波长带来更小阵列尺寸与更高角分辨潜力。

4、雷达体质
脉冲雷达:脉冲雷达在极短的时间内向外辐射极大功率的脉冲电磁波。T/R开关决定雷达的近距盲区。

线性调频连续波(Frequency Modulated Continuous Wave, FMCW)雷达是一种通过发射频率随时间线性变化的连续波信号,并测量接收信号频率与发射信号频率之差来测定目标距离和速度的雷达体制。其工作原理基于频率调制和信号处理技术,具有结构简单、成本低、易于实现高精度测距和测速等优点。


动目标检测(MTI)雷达

5、FMCW雷达的MATLAB仿真(源代码见阅读原文中附件“untitled3.m”)

一、模块开箱、包装与配件

图1 外包装

图2 分包装

图3 模块及零部件
二、模块实拍图

图4 模块正面图1

图5 模块正面图2

图6 模块侧面图

图7 模块背面图
三、模块硬件分析
模块使用板载天线,从图6模块侧面图可以看出模块板材为混压板,可能是FR4和罗杰斯高频板的混压板。SGR1101A是一颗国产1T1R毫米波雷达芯片,目前没有可供查阅的公开DataSheet。但它与英飞凌BGT24LTR11引脚兼容,芯片框图如下:

图8 SGR1101A芯片内部等效框图
这颗芯片内部结构不复杂,因为结构及配置简单,内部无需用SPI配置的寄存器以及MCU或雷达基带处理器,实际功能可以理解为一个压控振荡器(VCO)。Vtune调制锯齿电压最大为2.5V,实际可能在0.1-1.0V就可满足要求,调制周期为:1-2kHz锯齿波对应的周期,芯片回波频率在1kHz-11kHz范围。根据FMCW原理,回波频率与距离成线性关系,虽然一路中频即可测距,但有IF_I、IF_Q两路回波,意味着可以测量FFT后的正负频率,判断物体的运动方向。
SGM722是一颗11MHz增益带宽积的轨到轨(Rail-to-Rail)双运算放大器,配合8.5V/us的压摆率(Slew Rate)以及2.1-5.5V的供电电压,使它非常适合低成本、单电源的雷达中频、小信号放大与滤波。

图9 SGM722
GD32F303CCT6是一颗混合信号处理器,内部集成3个独立的12-bit 2.6 MSPS ADCs。在对雷达中频信号的处理中,10-Bit ADC的分辨率勉强够用,12-Bit效果会很好。这种方案在一些100-200元60GHz或77GHz多发多收的雷达系统中也很常见。
四、滤波器波特图分析
将模块滤波器电路接入Keysight DSOX1102G,扫描如下波特图。

图10 DSOX1102G波特图扫描
根据滤波器滚降及拐点频率,自己研究了一个电路。感兴趣的网友可以用仿真软件测试一下。

图11 根据拐点频率绘制的滤波器原理图
毫米波雷达传感器微动检测LED灯作品展示
首先介绍雷达模块的使用体验。该24GHz雷达使用IQ解调,对相位变化极其敏感,使其可以对微弱的动目标进行检测。雷达的可配置参数并不多,固定以1Hz进行目标检测的输出,这其实也在预料之中,ARM混合信号处理器在FFT、目标检测的运算上和雷达加速器没有可比性。该款雷达的优势是,对微动极其敏感,输出IO控制电平延时可配置,内置EEPROM可对配置参数进行保存,可选上电自动运行使其可以脱离MCU自主工作。该款雷达还有一个特色功能:“配置传感器感应区域”将传感器探测范围至多分为四个区域,屏蔽掉不用的目标距离段。但在实际测试中,该功能表现不佳。雷达有着灵活的UART(115200波特率)配置串口用于有、无目标输出和命令交互,可不附加0x0D、0x0A(\r \n)尾缀。命令的使用非常灵活,对当前配置状态是否成功,以及“设置参数未保存”的提示,都使得模块非常易用。作为一款24GHz频段的毫米波雷达,其对于微动的检测是相当灵敏的。

1、在没有拿到模块前,打算使用三角反射器测试雷达的CW、FMCW进行测试。但阅读说明后发现这并不是我能修改的,没有对应的命令。也包括固定1Hz的目标检测间隔。
2、最开始的想法是,制作一个“自动门铃”,将一个绿色LED安装在家防盗门的猫眼上。在邻居路过门口时(约1.5米距离)猫眼下方绿色LED点亮,有点类似相机取景器的对焦功能。当人体贴近门约为15-30厘米时,树莓派Pico通过PWM-DAC播放“叮咚”的声音,以示有人。但目标输出频率固定为1Hz,且“配置传感器感应区域”功能不理想。
3、最终决定利用该模块对微动物体的高敏感性完成一“雷达LED灯”的作品。

人体感应LED以“BP2863XJ”作为主芯片,R-OVP引脚控制LED灯亮灭,CS串联的电阻控制10个LED灯珠的电流。这十个串联LED用稳压电源进行测试,需要52V以上的电压才可点亮,而电流却很小。




关于“说明2”中的“雷达门铃”作品,对于树莓派Pico生成门铃“叮咚”声(含泛音)感兴趣的,可以使用Thonny运行下如下代码。I/O:GP15输出PWM波,滤波器如下图。LMV321后端接喇叭或无源蜂鸣器,但带载能力不佳。实测用PNP如8550三极管声音更洪亮。


Raspberry Pi Pico产生“叮咚”铃声
from machine import Pin, PWMimport timeimport mathimport gc# ============================================================# 硬件参数# ============================================================AUDIO_PIN = 15PWM_CARRIER = 100_000SAMPLE_RATE = 8_000SAMPLE_PERIOD_US = 1_000_000 // SAMPLE_RATE# ============================================================# 正弦表# ============================================================TABLE_SIZE = 256Q_BITS = 14Q_ONE = 1 << Q_BITSQ_MAX = Q_ONE - 1sine_table = [int(math.sin(2 * math.pi * i / TABLE_SIZE) * Q_MAX)for i in range(TABLE_SIZE)]# ============================================================# 相位累加器# ============================================================PHASE_BITS = 24PHASE_MOD = 1 << PHASE_BITSPHASE_MASK = PHASE_MOD - 1PHASE_TO_INDEX_SHIFT = PHASE_BITS - 8# ============================================================# PWM初始化# 静音时为0%占空比# ============================================================audio_pwm = PWM(Pin(AUDIO_PIN))audio_pwm.freq(PWM_CARRIER)audio_pwm.duty_u16(0)def play_bell(frequency, duration_ms, volume=1.0):"""单极性PWM-DAC钟声:静音:0%占空比最大正峰值:接近100%占空比"""volume = max(0.0, min(1.0, volume))sample_count = SAMPLE_RATE * duration_ms // 1000# 钟声基频和两个金属泛音frequency_1 = frequencyfrequency_2 = frequency * 2.01frequency_3 = frequency * 2.67increment_1 = int(frequency_1 * PHASE_MOD / SAMPLE_RATE)increment_2 = int(frequency_2 * PHASE_MOD / SAMPLE_RATE)increment_3 = int(frequency_3 * PHASE_MOD / SAMPLE_RATE)phase_1 = 0phase_2 = 0phase_3 = 0volume_q14 = int(volume * Q_ONE)# 在整个持续时间内衰减到约 e^-6decay = int(math.exp(-6.0 / sample_count) * Q_ONE)envelope = Q_MAX# 约3ms起音,太长会降低“叮”的冲击感attack_samples = SAMPLE_RATE * 3 // 1000if attack_samples < 1:attack_samples = 1deadline = time.ticks_us()for n in range(sample_count):wave_1 = sine_table[phase_1 >> PHASE_TO_INDEX_SHIFT]wave_2 = sine_table[phase_2 >> PHASE_TO_INDEX_SHIFT]wave_3 = sine_table[phase_3 >> PHASE_TO_INDEX_SHIFT]# 钟声混合# 基频占比较高,泛音增强“金属叮咚”感mixed_wave = (wave_1 * 18 +wave_2 * 8 +wave_3 * 5) // 31# 起音包络if n < attack_samples:current_envelope = (n * Q_MAX // attack_samples)else:current_envelope = envelopeenvelope = (envelope * decay) >> Q_BITS# ====================================================# 单极性映射## mixed_wave:# -16383 ~ +16383## unipolar_wave:# 0 ~ 32766## 最终duty:# 0 ~ 65535# ====================================================unipolar_wave = mixed_wave + Q_MAXduty = (unipolar_wave * current_envelope) >> Q_BITSduty = (duty * volume_q14) >> (Q_BITS - 1)if duty < 0:duty = 0elif duty > 65_535:duty = 65_535audio_pwm.duty_u16(duty)phase_1 = (phase_1 + increment_1) & PHASE_MASKphase_2 = (phase_2 + increment_2) & PHASE_MASKphase_3 = (phase_3 + increment_3) & PHASE_MASKdeadline = time.ticks_add(deadline,SAMPLE_PERIOD_US)while time.ticks_diff(deadline,time.ticks_us()) > 0:pass# 静音必须回到0%audio_pwm.duty_u16(0)def doorbell():gc.collect()gc.disable()try:# “叮”play_bell(frequency=659.25,duration_ms=500,volume=1.0)time.sleep_ms(45)# “咚”play_bell(frequency=523.25,duration_ms=850,volume=1.0)finally:audio_pwm.duty_u16(0)gc.enable()doorbell()
· END ·
请将我们设为“星标”,这样就会第一时间收到推送消息。
欢迎关注EEWorld旗下订阅号:“EEWorld电源开发圈”