【6.20】射频\+FPGA\+Verilog\+仪器自动化 完整知识链路复盘
📌 摘要
很多入门同学学射频、FPGA、Verilog、仪器测试都是碎片化学习:懂射频不懂数字、懂代码不懂硬件、会写脚本不会工程流程。
串通整套工程链路:无线射频信号 → 射频硬件器件 → FPGA/单片机控制 → 仪器测试 → Python自动化测试。适合通信、射频、FPGA硬件新手系统复盘。
一、前言
做射频和通信FPGA开发,最关键的不是背名词,而是打通整条工作流。
真实项目里的流程非常固定:
天上的无线信号 → 天线接收 → 射频电路处理 → 芯片控制 → 仪器测试性能 → 代码自动化出数据
今天我把整串链路拆解开,每个专业词全部翻译成大白话,新手也能一次性看懂。
二、射频层:所有无线信号是怎么处理的?
射频 =处理高频无线电波的硬件世界。手机、基站、卫星、雷达、相控阵全部都是这套逻辑。
1. 频率 & 波长(大白话)
-频率:电磁波一秒钟抖多少次(抖得越快频率越高)
-波长:电磁波一个完整波浪的长度
规律:频率越高、波长越短、传得越直、穿墙越弱。
2. dB / dBm(最容易搞混的两个单位)
-dB:相对单位,只看“变多还是变少”
比如:衰减10dB = 信号强度直接砍十分之一
-dBm:绝对单位,直接代表当前信号有多强
仪器上看到的功率数值,全是 dBm。
3. S参数(评判射频器件好坏的核心)
S11 和 S21 是射频工程师每天必看的两个参数
-S11(回波损耗):信号打进去,被弹回来多少
大白话:S11越大,信号越“进不去”,匹配越差,浪费越多。
-S21(插入损耗):信号成功穿过去多少
大白话:S21越接近0dB,损耗越小,器件性能越好。
4. 50Ω 阻抗匹配(射频最重要的规矩)
所有射频线、天线、射频芯片统一做成50欧姆
为什么?
如果不匹配,信号会大量反弹,传不远、噪声大、性能崩。
5. NF噪声系数
电路自己产生的“杂讯噪音”。
NF越小,电路越干净,越能接收微弱远距离信号。
6. P1dB 压缩点
功放的“最大安全音量”。
超过P1dB:信号变形、失真、通信出错。
工程上:功率必须控制在P1dB以内。
7. LNA 低噪放 & PA 功放
-LNA(接收端):把天线收到的微弱信号放大,同时尽量不引入噪音
-PA(发射端):把信号功率拉大,让电磁波传更远
8. 混频器
信号“升降梯”
- 高频 ↔ 低频 互相转换
高频适合空中传输,低频适合电路处理。
9. PLL锁相环
高精度“信号时钟发生器”
给整个射频系统提供稳定、精准的频率源。
10. 超外差接收机
现在绝大多数无线设备的通用架构:
天线收信号 → 多次降频 → 变成低频基带处理
三、数字层:单片机 vs FPGA(彻底讲明白区别)
1. MCU单片机(STM32/51)
大白话:单车道马路
代码一行一行跑,同一时间只能做一件事。
适合:控制、串口、简单逻辑、低速设备。
2. FPGA
大白话:上万条高速并行车道
所有硬件电路同时运行,同一时刻干多件事。
适合:高速信号、多路射频、并行处理、时序严格的场景。
3. Verilog 核心语法人话总结
-module:一个独立小电路盒子
-wire:纯导线,只传信号,不存数据
-reg:寄存器,带记忆,能保存瞬间数据
-assign(组合逻辑):输入一变,输出立刻变,无记忆
-always(时序逻辑):跟着时钟跳变才更新,有记忆
组合逻辑(实时响应)
module demo(input wire a,b, output wire y); assign y = a & b; endmodule全程直通,没有等待、不存数据。
时序逻辑(带记忆、靠时钟)
module demo(input clk, d, output reg q); always @(posedge clk) q <= d; endmodule只有时钟跳一下,才更新数据,其余时间保持不变。
超简口诀
assign = 即时更新 = 等号 = 无记忆
always = 时钟更新 = 小于等于 = 有记忆
四、工具层:仪器测试 + Python自动化
1. 常用仪器作用
-矢网:测S参数、匹配好坏
-频谱仪:看信号功率、杂散、干扰
-信号源:产生标准射频信号
-示波器:看时域波形
2. 通信总线(SPI/I2C/UART)
芯片和芯片之间的“数据线”,FPGA/单片机靠这些线配置射频芯片。
3. PyVISA + SCPI(自动化测试神器)
SCPI:所有仪器通用命令语言
例:FREQ:CENT 10GHZ意思:中心频率设为10G
VISA:统一接口标准,网线/USB都能适配
最简自动化测试代码模板
importpyvisa# 连接仪器rm=pyvisa.ResourceManager()inst=rm.open_resource("仪器地址")# 设置参数 + 读取数据inst.write("FREQ:CENT 10GHZ")power=inst.query("POWER?")# 关闭连接inst.close()作用:告别手动按键,批量测试、自动存数据、自动画图。
五、完整工程链路
卫星/空口无线信号
天线接收电磁波
TR组件(LNA/移相器/衰减器)处理射频信号
矢网、频谱仪测试硬件性能(S参数、功率、噪声)
FPGA/单片机通过SPI配置射频器件**
Python PyVISA 全自动测试、采集数据、出图
六、总结
整套通信射频工程的核心闭环:
射频硬件负责“收发电波”
FPGA/单片机负责“控制逻辑”
仪器负责“测量性能”
Python负责“自动化提效”
看懂这条链路,才算真正入门射频与数字通信开发。
