副标题:电赛每日一题 · 第 4 期 | 今日拆解:2025 年 F 题 简易自动接收机
📌 一、赛题速览与难点剖析
一、原题再现
任务:设计并制作一台简易自动接收机,自动搜索并接收 88 MHz ~ 108 MHz 频率范围内的调频或调幅信号。接收信号由射频信号源产生,载波频率调节步进 100 kHz,调制信号频率范围 300 Hz ~ 3400 Hz。接收机输出端接 8 Ω 负载电阻,自动识别调制方式并解调输出信号,用示波器观察应无明显失真。
基础要求:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
发挥部分:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
说明:
▸ 射频信号源载波电平范围 −85 dBm ~ −60 dBm;接收机输入端采用 SMA 母座接口,50 Ω 电缆连接;输出接 8 Ω 负载(引腿裸露便于示波器测量);
▸ 响应时间指射频信号源输出开关开启后,接收机搜索解调输出稳定解调信号的时间;
▸ 按键启动接收机,自动搜索接收指定频率范围内的信号;
▸ 发挥部分整机必须采用具有"恒流/恒压"模式自动切换的直流电源单电源供电(5 V,最大供电电流 500 mA),工作时供电电流 ≤ 500 mA;只用一个端口输出解调信号;一键启动后自动完成全部功能并显示结果,不得人为操控;
▸ 接收机应采取屏蔽措施抑制空间干扰。
评分标准(速览):
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
| 总分 |
|
120 |
判分关键解读:
▸ 基本要求占 50 分,是及格线:FM/AM 接收各 15 分是核心,幅度自动控制和响应时间各 10 分;前两项任意丢一项就基本告别国奖;
▸ 发挥部分占 50 分,拉开档次的关键:调制识别 (23 分) 是最容易拿满的——只要自动扫频 + 双通道检波判别就够;灵敏度 (−95 dBm, 12 分) 是技术高地,决定能不能进国一;5 s 响应 (10 分) 需要软硬件协同优化;其他 (5 分) 看创新点;
▸ 设计报告 20 分看似不多,但电赛评分时报告分由专家组独立打分,写得专业、规范、数据完整的报告可额外争 2~3 分——这是性价比最高的"白送分"。
一.五、题目工程背景
这道 F 题看似是"做个收音机",其实是一道完整的射频接收链路工程训练题——它在 4 天 3 夜里,把同学们逼着走完一遍真实无线接收机的全流程:天线 → 低噪放 → 混频 → 中频处理 → 解调 → 音频输出 → AGC → 主控算法 → 整机低功耗。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
为什么出这道题?电赛出题组的潜台词:射频接收是电子信息工程的"皇冠方向"之一,国内每年缺口巨大(雷达、卫星、5G/6G、卫星互联网、应急通信),但本科生在学校里基本摸不到实物。这道题把真实射频工程师的"低噪放设计 + 混频器选择 + 中频滤波 + 解调链路 + AGC 闭环 + 整机功耗预算"全部浓缩在 4 天里,逼着学生把理论课上学过的"噪声系数"、"灵敏度"、"镜像频率"这些抽象概念落到板子上、量到波形上。
对备赛同学的启示:
▸ 不要选那些"软件为主"的题目来逃避射频训练——这道题是少数能让你在本科阶段接触真实射频链路的题目;
▸ 即使你最后选了别的方向(电源/控制),这道题的"低噪放设计 + AGC 闭环 + 整机功耗预算"思路也会反哺你做电源题(电源题里 AGC 思想和模块化供电思路完全通用)。
一.六、大白话版解读
这个题到底要做什么?
想象你 1995 年那会儿想造个"智能收音机"——你按下电源键,机器自己开始扫频(从 88 MHz 一路跳到 108 MHz),找到信号后还要自己判断"哦这是 FM 调频的"还是"这是 AM 调幅的",然后自己解调出音频信号,让示波器看到一个漂亮的 1 kHz 正弦波——而整个机器只能用一根 5 V 电源线供电,整机电流还不能超过 500 mA。
对比传统收音机 vs 本题:
|
|
|
|
|---|---|---|
|
|
|
自动扫频
|
|
|
|
自动判别
|
|
|
|
−95 dBm
|
|
|
|
5 V 单电源
|
|
|
|
示波器
|
|
|
|
幅度自动控死在 1 V ± 0.1 V
|
系统模块人话版:
硬骨头分级(按难度):
▸ 🟢 绿骨头(基础要求):FM/AM 解调、AGC 闭环、响应时间 ≤ 10 s —— 选对芯片 + 经典电路就行;
▸ 🟡 黄骨头(发挥及格):自动扫频 + 调制方式识别 —— DSP/算法活儿,选 NE564 + 二极管检波就能区分;
▸ 🔴 红骨头(国一关键):−95 dBm 灵敏度、5 s 响应时间、≤ 500 mA 整机功耗 —— 这是真正拉开档次的三个指标,三者必须同时搞定才有可能拿国一。
一.七、核心指标速查表
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
自动识别 FM/AM/CW |
|
|
|
|
1 V ± 0.1 V 自动控 |
|
|
|
|
≤ 5 s |
|
|
|
|
|
|
|
|
|
|
|
一.八、最大卡脖子难点
把这道题做砸的队伍,90% 是栽在下面三个"卡脖子点"上:
卡点 1:−95 dBm 灵敏度卡死 70% 的队伍
−95 dBm 是什么概念?≈ 10 μV 的射频电压——你把一根 1 米的天线架在空中,感应到的噪声电平就已经是 −100 dBm 量级了。换句话说,你要从"几乎和噪声一样大的信号"里把音频解出来。
▸ 失败模式:直接用 RDA5807 / TEA5767 这种集成芯片——它们便宜、好用,但灵敏度只到 −90 dBm 量级,发挥要求的 −95 dBm 直接做不出来;
▸ 正确做法:必须用分立超外差结构——两级 LNA(32 dB + 20 dB)先把信号抬到 0 dBm 量级,再混频到 10.7 MHz 中频走陶瓷滤波器,再做解调。这是国一和国二的分水岭。
卡点 2:500 mA 整机电流限制,逼着你做"模块化供电"
如果你用了 AD9361 软件无线电方案,光射频前端就吃 1 A 以上——直接 5 V/500 mA 单电源启动就过流保护。
▸ 失败模式:把所有模块全上电,电流 800 mA+ → 触发电源限流 → 系统反复重启;
▸ 正确做法:继电器分段供电——AM/FM 解调模块默认下电,识别到对应调制后才上电;MCU 控制继电器按需供电。国一队实测整机电流稳在 500 mA 以内。
卡点 3:5 s 响应时间 —— 扫频速度 + 识别延迟 + AGC 收敛
题目要求 5 s 内完成"信号源开启 → 扫频 → 找到信号 → 判别调制 → 解调输出稳定 1 Vpp"。这道题在 88~108 MHz 频段有 200 个 100 kHz 频道,每个频道停留 25 ms 才能 5 s 扫完——但 25 ms 内必须完成"中频建立 + 调制识别 + 继电器切换 + AGC 收敛 + 解调输出",时间窗口极紧。
▸ 失败模式:扫频慢 + 切换慢 + AGC 慢叠加 → 实际响应 8~10 s,发挥要求 (3) 直接丢 10 分;
▸ 正确做法:本振用 ADF4351 / SI4351 等快速跳频锁相环(< 1 ms 锁定)+ 双通道同时检波(不用扫到哪个频道停哪个)+ 识别算法要在 10 ms 内出结果(用单片机 ADC 采样 1024 点 FFT,10 ms 跑完)。
官方原理图(本题未提供示意图,用文字框图替代):
注:官方 PDF(2025_F题_简易自动接收机.pdf)只包含任务说明和评分表,没有官方原理图——本题的"官方原理图"一节用上述文字框图替代。详细的硬件电路拆分见 📌 第五节参考设计方案。
🛠️ 二、官方推荐/主流硬件方案(原理图级拆解)
2.1 系统整体框图
2.2 主电路拓扑结构
超外差二次变频结构:
为什么选这个拓扑?
▸ 为什么用超外差而不是零中频?——零中频(直接变频到基带)虽然集成度高,但有直流偏置、I/Q 失配、本振泄漏等问题;超外差把 RF 拉到固定中频(10.7 MHz 是 FM 广播工业标准),中频处理用成熟的陶瓷滤波器,性能稳定;
▸ 为什么中频选 10.7 MHz?——10.7 MHz 是 FM 广播接收机的工业标准中频,村田/Toko 的陶瓷滤波器便宜成熟;镜像频率 = RF − 2×IF = 88 − 21.4 = 66.6 MHz,远离 RF 频段 21 MHz,镜像抑制简单(一级带通即可);
▸ 为什么 LNA 用两级而不是单级 52 dB?——单级 52 dB 太容易自激,且噪声系数反而恶化;两级 32+20 = 52 dB 总增益,单级 NF 控制好,整体 NF 优于单级;
▸ 为什么 AD608 而不是 AD831?——AD831 性能更好(低失真、宽动态范围),但工作电流 100 mA+,整机预算 500 mA 里塞不下;AD608 集成了"混频器 + 限幅放大器 + RSSI",工作电流仅 20 mA,对低功耗设计是神器。
2.3 核心元器件选型推荐
|
|
|
|
|
|---|---|---|---|
| 主控 MCU |
|
|
|
| 混频器 |
|
|
国一关键芯片
|
| LNA(两级) |
|
|
|
| 数字衰减器 |
|
|
替代 AGC
|
| 锁相环/本振 |
|
|
|
| FM 解调器 |
|
|
古董芯片但极好用
|
| AM 解调器 |
|
|
不消耗功率
|
| 中频放大 |
|
|
|
| 中频滤波器 |
|
|
|
| 程控增益 |
|
|
|
| 功放 |
|
|
8 Ω 负载就是给它设计的
|
| 电源 |
|
|
|
| 采样抬升运放 |
|
|
|
| OLED 屏 |
|
|
|
选型思路(教练视角):
▸ 不要选 RDA5807 / TEA5767 这类集成芯片——它们是消费级 FM 收音机芯片,集成度虽高但灵敏度只到 −90 dBm,发挥要求 −95 dBm 必败;
▸ 不要选 AD9361 / AD9364 这种宽带 SDR 芯片——它们覆盖 70 MHz~6 GHz,性能炸裂,但单芯片功耗 1~2 W,5V/500 mA 根本塞不下;
▸ 不要选 ADF4351 当主本振——它虽然是经典宽带 PLL,但功耗 100~150 mA,整机预算吃紧;SI4351 更省;
▸ NE564 是古董但请珍惜——这颗 1980 年代的 PLL 鉴频芯片在 FM 解调上无可替代,比你写数字 PLL 算法稳定 10 倍,且一颗 ¥3 包邮。
💻 三、软件控制架构与核心算法(代码级拆解)
3.1 控制闭环逻辑
整个接收机有 三个闭环同时工作:
3.2 核心算法伪代码
3.2.1 本振扫频算法(SI4351 控制)
/* SI4351 锁相环扫频控制 */uint32_tlocal_osc_freq(uint32_t rf_freq) {/* 本振频率 = 目标 RF + 中频 (高中频方案,镜像抑制更稳) */return rf_freq + IF_FREQ;}voidsi4351_set_freq(uint32_t freq_hz) {/* SI4351 SPI 写频率字 - 简化伪代码 */uint16_t freq_int = freq_hz / 10000; /* 10 kHz 分辨率 */uint8_t frac = (freq_hz % 10000) / 100;spi_write_reg(0x05, (freq_int >> 8) & 0xFF); /* MSB */spi_write_reg(0x06, freq_int & 0xFF); /* LSB */spi_write_reg(0x07, frac);/* 触发更新 */spi_write_reg(0x08, 0x01);}voidscan_rf_band(void) {uint32_t rf = RF_START;while (rf <= RF_STOP) {si4351_set_freq(local_osc_freq(rf)); /* 设置本振 */delay_ms(2); /* 等待锁相环锁定 < 1 ms */if (ad608_rssi() > THRESHOLD) { /* RSSI 高 = 有信号 */detect_modulation(rf); /* 调用调制识别 */return; /* 找到信号,退出扫描 */}rf += STEP_HZ;}}
3.2.2 调制方式识别算法(双通道检波 + 简易频谱)
/* 双通道同时检波,识别 FM/AM/CW */typedefenum { MOD_CW = 0, MOD_AM, MOD_FM } modulation_t;modulation_tdetect_modulation(uint32_t rf_freq) {/* AM/FM 两个通道同时上电 */relay_on(RELAY_AM);relay_on(RELAY_FM);delay_ms(5); /* 模块稳定 *//* 用 ADC 采样两个通道检波输出 */uint16_t am_buf[1024], fm_buf[1024];for (int i = 0; i < 1024; i++) {am_buf[i] = adc_read(ADC_AM_DETECT);fm_buf[i] = adc_read(ADC_FM_DETECT);}/* 计算交流分量(RMS)和直流分量 */float am_dc = mean(am_buf, 1024);float am_ac = rms_ac(am_buf, 1024, am_dc);float fm_dc = mean(fm_buf, 1024);float fm_ac = rms_ac(fm_buf, 1024, fm_dc);modulation_t result;/* 判别规则 */if (am_ac > AM_THRESHOLD && fm_ac < FM_THRESHOLD) {result = MOD_AM; /* AM 通道有音频,FM 通道没有 → AM */} elseif (am_ac < AM_THRESHOLD && fm_ac > FM_THRESHOLD) {result = MOD_FM; /* FM 通道有音频,AM 通道没有 → FM */} elseif (am_ac < AM_THRESHOLD && fm_ac < FM_THRESHOLD) {result = MOD_CW; /* 两路都没有音频 → 单频载波 CW */} else {/* 双通道都有信号 - 可能是强信号导致限幅失真 */result = MOD_FM; /* 默认选 FM (限幅后两路都可能有输出) */}/* 关闭不需要的模块以省电 */if (result == MOD_AM) relay_off(RELAY_FM);if (result == MOD_FM) relay_off(RELAY_AM);if (result == MOD_CW) {relay_off(RELAY_AM);relay_off(RELAY_FM);}return result;}
3.2.3 输出 AGC 闭环(VCA821 DAC 控增益)
/* VCA821 输出幅度自动控制到 1V ± 0.1V */voidoutput_agc_loop(void) {/* 二极管检波输出直流电压 ≈ 输出 Vpp */uint16_t detect_dc = adc_read(ADC_VCA821_OUTPUT_DETECT);float vpp = detect_dc * 3.3f / 4096.0f * 2.0f; /* 12-bit ADC → V */if (fabsf(vpp - TARGET_VPP) < VPP_TOLERANCE) {return; /* 已经达标,不需要调整 */}/* 简单比例控制 */staticfloat last_dac = 0;float gain_set = TARGET_VPP / (vpp + 0.001f); /* 防止除 0 */if (gain_set > VCA_GAIN_MAX) gain_set = VCA_GAIN_MAX;/* VCA821 增益 ≈ 10^(Vg/0.667) V (Vg 单位 V,范围 0~2V) */float vg = log10f(gain_set / 0.04f) * 0.667f; /* 0.04 = VCA821 最小增益 */if (vg < 0) vg = 0;if (vg > 2.0f) vg = 2.0f;uint16_t dac_value = (uint16_t)(vg * DAC_MAX / 2.0f);dac_write(DAC_VCA821_CTRL, dac_value);last_dac = vg;}
3.2.4 整机状态机
typedefenum {STATE_INIT, /* 上电初始化 */STATE_SCAN, /* 扫频 */STATE_DETECT, /* 调制识别 */STATE_DEMOD, /* 解调输出 */STATE_AGC, /* 输出 AGC 收敛 */STATE_DISPLAY, /* 显示稳定 */STATE_DONE /* 完成 */} system_state_t;voidsystem_state_machine(void) {switch (system_state) {case STATE_INIT:si4351_init();ad608_init();hmc624_init();vca821_init();oled_display("READY...");system_state = STATE_SCAN;break;case STATE_SCAN:if (scan_rf_band()) { /* 找到信号返回 1 */oled_display("FOUND %d.%d MHz", rf_freq/1000000, (rf_freq/100000)%10);system_state = STATE_DETECT;}break;case STATE_DETECT:current_mod = detect_modulation(rf_freq);oled_display("%s @ %d.%d MHz",current_mod == MOD_AM ? "AM" :current_mod == MOD_FM ? "FM" : "CW",rf_freq/1000000, (rf_freq/100000)%10);system_state = STATE_DEMOD;break;case STATE_DEMOD:/* 解调模块已通过继电器上电,输出信号正在产生 */delay_ms(100); /* 等待解调输出稳定 */system_state = STATE_AGC;break;case STATE_AGC:output_agc_loop(); /* 闭环调整 VCA821 增益 */if (fabsf(output_vpp - 1.0f) < 0.05f) {system_state = STATE_DISPLAY;}break;case STATE_DISPLAY:oled_display("%s %d.%d MHz | Vpp=%.2fV",mod_name[current_mod], rf_freq/1000000,(rf_freq/100000)%10, output_vpp);/* 持续监测,信号丢失则回到 SCAN */if (ad608_rssi() < THRESHOLD - 5) {system_state = STATE_SCAN;}break;case STATE_DONE:break;}}
⚠️ 四、避坑指南与学长调试心得(实战精髓)
4.1 炸板/烧管高危点
高危点 1:第一级 LNA 自激 —— 铜箔纸屏蔽
症状:把第一级 32 dB LNA 用铜箔纸包起来做屏蔽后,增益反而从 32 dB 掉到 5 dB,整机完全收不到信号。
原因:铜箔纸包裹不当形成"屏蔽盒"但没有留馈通孔——屏蔽盒相当于一个 LC 谐振腔,把 88~108 MHz 的信号反射回 LNA 输入端,与 LNA 内部反馈形成正反馈 → 自激 → 增益被锁定。
正确做法:
▸ 铜箔纸必须单点接地(用导电胶带接地);
▸ 屏蔽盒预留 SMA 馈通(不要把 SMA 接头也包进去);
▸ 屏蔽盒内壁贴吸波材料(淘宝"EMI 吸波材料");
▸ 实测发现屏蔽无效时,直接去掉第一级铜箔纸(国一队就是这么做的——实测不影响噪声系数)。
高危点 2:5 V 单电源上电浪涌击穿 AD608
症状:第一次上电 AD608 直接冒烟。
原因:5 V 直接接到 AD608 的 VCC,但 AD608 设计工作电压 3V 左右(VCC max 5.5V,但瞬态尖峰会过压),上电瞬间 dV/dt 在内部寄生电感上感应出 7~8V 尖峰,超过绝对最大额定值。
正确做法:
▸ AD608 VCC 加 100 nF + 10 μF 去耦电容(靠近电源引脚);
▸ AD608 VCC 串联 铁氧体磁珠(淘宝贴片磁珠 0805 封装);
▸ DC-DC 隔离电源的 输出端加软启动电路(用 NTC 热敏电阻 + MOSFET 串联,限制上电浪涌)。
高危点 3:数字衰减器 HMC624 切换瞬间冲击
症状:HMC624 切换衰减量时,AD608 输入端有 1~2 μs 的电压毛刺,偶尔导致 AD608 误触发限幅。
原因:HMC624 是 6 位数字衰减器(0.5 dB × 6 = 31.5 dB),切换时内部开关瞬态不是完全同步,有时序失配。
正确做法:
▸ HMC624 衰减控制后 delay 100 μs 再读取 RSSI;
▸ AD608 输入端加 5 pF 小电容到地(滤除毛刺);
▸ 软件上做 RSSI 滑动平均(每 100 ms 取 10 次平均)。
高危点 4:VCA821 输出饱和导致检波器永久击穿
症状:输入信号突然变强,VCA821 输出超过 5 V,LM386 输入端过压,LM386 输出失调到 VCC 上限。
原因:VCA821 最大输出电压受 VCC 限制,VCC=5V 时最大输出约 ±3.5V;若输入信号超过 VCA821 线性区,输出饱和到电源轨,过载 LM386。
正确做法:
▸ VCA821 输出端加 肖特基二极管钳位(BAT54S 双二极管钳位到 VCC/GND);
▸ 软件加 VCA821 输出过载保护(检测到输出饱和 → 立即增大 HMC624 衰减)。
4.2 测试调优技巧
技巧 1:用信号源预热 15 分钟再开始测试
射频信号源(Rigol DSG815 / 安捷伦 E4438C 等)刚开机时内部 VCO 频率漂移大,前 15 分钟频率稳定度 ±2 kHz——你测的"88.0 MHz"实际可能是 88.002 MHz,对 100 kHz 步进的扫频不致命,但对 FM 解调的 PLL 锁定可能有偏差。测试前先开信号源预热。
技巧 2:测试响应时间用"信号源突发模式"
题目要求"信号源开启后 5 s 内解调稳定"。测试方法:
1. 把信号源调到 Burst Mode(突发模式)或手动按 RF Output 开关;
2. 用示波器同时监测信号源 RF 输出指示(BNC 触发输出)和接收机解调输出;
3. 测量两个信号上升沿的时间差——这就是响应时间;
4. 关键:信号源的 RF Output 关掉时,载波泄漏仍有 -70 dBm 左右——这个泄漏电平足够让 AD608 的 RSSI 触发判别,但解调不出有效音频。测试时一定要真的把 RF 关掉(用信号源 Burst 模式或外加射频开关)。
技巧 3:AGC 闭环调试——"先开环后闭环"
VCA821 的 AGC 闭环如果直接接上跑,很容易振荡(DAC 调一下 → 输出跳一下 → 检波跳一下 → DAC 再调)。正确调试顺序:
1. 第一步:开环测 DAC-增益线性度——固定输入信号,手动设 DAC 值 0/512/1024/2048/4095,用示波器测 VCA821 输出,画 Vg-Vout 曲线;
2. 第二步:开环测检波器线性度——固定 VCA821 输出,用万用表测检波器 DC 输出,画 Vpp-Vdetect 曲线;
3. 第三步:闭环缓慢调试——先把闭环增益调小(比例系数 0.1),观察输出是否收敛;再逐步加大到 0.3、0.5。
技巧 4:屏蔽测试——把整机放进屏蔽盒看底噪变化
调试后期验证屏蔽效果:
1. 把整机放在桌面上,用频谱仪看 88~108 MHz 频段底噪(典型 −100 ~ −105 dBm);
2. 把整机放入自制铜箔屏蔽盒(淘宝"屏蔽袋"或自己用 0.1mm 铜皮折盒),再测底噪;
3. 如果屏蔽后底噪没变化(仍 −100 dBm),说明屏蔽没起作用,要检查铜箔接地;
4. 如果屏蔽后底噪掉到 −110 dBm,说明你争取到了 10 dB 的灵敏度提升空间。
技巧 5:响应时间 ≤ 5 s 优化清单
实测从 8 s 压到 3 s 的 5 个优化点:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
🎯 五、参考设计方案——本环节必做
参考设计:https://oshwhub.com/wh-will/mspm0g3507
5.1 系统架构与原理详解
主参考设计整体框图(文字版):

