一、前言
在射频调试、无线通信、滤波器 / 天线测试、EMC 预兼容实验中,低频 9KHz 起步、6.4GHz 全覆盖、1Hz 超高分辨率一直是入门便携信号源的痛点。此前主流 HT008B 最低仅支持 50MHz,无法覆盖短波、射频低频电路测试;而SL6Pro 作为升级款便携射频信号源,补齐低频短板,实现 9KHz~6400MHz 连续正弦输出,双通道独立射频输出、1Hz 频率步进、超低相位噪声,同时保留 Type-C USB 串口 SCPI 程控、锂电池随身供电,兼顾实验室桌面调试与外场便携测试。
本文完整拆解 SL6Pro 硬件规格、本地按键操作、串口通信协议、全套 SCPI 指令,并与 HT008B 做横向对比,提供可直接运行的 Python 自动化控制代码,解决低频测试、扫频参数配置、上位机通信报错等常见问题。
二、SL6Pro 核心硬件规格与核心优势
2.1 整机硬件架构
- 屏幕:高清彩色 OLED,中文 / 英文 / 俄文三语言切换
- 通信接口:Type-C 内置 USB 转串口,免额外驱动识别虚拟 COM 口
- 供电:Type-C 5V USB 供电 / 内置锂电池,脱离市电户外使用
- 尺寸:130×70×20mm,轻量化铝合金机身,便携易收纳
- 射频接口:双通道 SMA 射频输出(CH1/CH2 独立可控)
2.2 关键射频指标(核心升级点)
- 频率覆盖:9KHz ~ 6400MHz,无缝覆盖短波、FM、蓝牙、WiFi6E、5G Sub6G 全频段
- 频率分辨率:1Hz 极致步进,全频段统一 1Hz 精度,远优于 HT008B 700MHz 以下 1KHz 分辨率
- 相位噪声:超低相噪典型值 -236dBc/Hz,信号纯度高,适合接收机本振、射频灵敏度测试
- 双通道独立输出
- 双路独立频率、功率可控,支持同步 / 异步输出,可做混频、双源对比测试
- 全频段功率线性可调,低频 9KHz~50KHz 无大幅幅值误差,无 HT008B 两端频段 1~3dB 偏差问题
- 工作模式:点频(单频固定输出)、单次扫频、循环连续扫频三种模式
- 拓展能力:标准 SCPI 协议,支持上位机、Python、LabVIEW 二次开发,集成自动化 ATE 产线
2.3 SL6Pro VS HT008B 核心差异对比
| 对比项 | SL6Pro | HT008B |
|---|---|---|
| 频率下限 | 9KHz(覆盖低频射频 / 短波) | 50MHz(缺失低频段) |
| 频率分辨率 | 全频段统一 1Hz | 700MHz 以下 1KHz,高频段精度下降 |
| 通道 | 双通道独立同步控制 | 双通道仅通道一完整功率可调 |
| 幅值误差 | 全频段平坦,无端点大幅偏差 | 50~75MHz/6~6.4GHz 存在 1~3dB 误差 |
| 交互 | 多语言彩色 OLED,独立功能快捷键 | 单色 OLED,复合按键操作 |
| 接口 | Type-C 通用接口 | Micro USB CH340 |
| 适用场景 | 低频电路、射频、5G、EMC 全场景 | 中高频微波调试,无低频能力 |
三、本地面板按键操作(离线无电脑使用)
机身面板 4 个独立功能快捷键,操作极简,无多层菜单:
- POINT(点频)短按进入点频界面,上下键修改输出频率、功率;左右切换 CH1/CH2 通道,OK 确认输出开关。
- SINGLE SWEEP(单次扫频)设置起始频率、终止频率、扫频步长、单步停留时间,启动后扫描一轮自动停止。
- CYCLIC SWEEP(循环扫频)参数配置同单次扫频,持续往复循环扫描,适合带宽连续测试。
- DEVICE(设备设置)切换系统语言、查看设备型号 / 固件版本、校准输出功率、恢复出厂参数。
扫频强制使用规则(避坑)
- 起始频率必须<终止频率,参数颠倒设备不执行扫描;
- 必须配置步长、单步间隔时间两项参数,缺失则扫频无输出;
- 设置完成后手动打开射频输出开关,信号才会对外输出;
- 双通道可分别配置独立扫频参数,实现双频段同步扫描。
四、Type-C USB 串口通信基础
4.1 串口基础参数
- 波特率:115200
- 数据位:8,停止位:1,校验位:None(8N1)
- 传输格式:ASCII 字符串,每条指令、设备应答强制结尾
\r\n - 驱动:内置 USB 转串口芯片,Windows 自动识别,Linux/Mac 免驱
4.2 SCPI 通信激活规则
- 上位机首次连接,第一条下发指令必须为
*IDN?\r\n,设备返回型号与固件版本,正式进入 SCPI 程控模式; - 设备重启 / 重新插拔 Type-C 后,需重新发送识别指令;
- 查询指令以
?结尾,设备实时返回当前参数状态,方便程序校验配置。
五、SL6Pro 全套 SCPI 程控指令说明
遵循标准 SCPI V1999 协议,语法规则与 HT008B 兼容,新增双通道控制指令:
5.1 初始化识别指令(必发首条)
scpi
*IDN?\r\n # 返回示例:SL6Pro,RF-Source,V1.0.65.2 射频输出总开关(双通道总使能)
scpi
# 开启/关闭全部通道输出 GEN:STAT {ON|OFF}\r\n # 查询输出状态 GEN:STAT?\r\n # 返回 ON / OFF5.3 双通道独立幅度设置(核心升级)
scpi
# CH1通道功率设置,单位dBm GEN:AMPL CH1,val\r\n # CH2通道功率设置 GEN:AMPL CH2,val\r\n # 查询指定通道幅值 GEN:AMPL? CH1\r\n GEN:AMPL? CH2\r\n5.4 点频单频输出(分通道)
scpi
# 设置CH1点频,单位MHz,支持小数点后6位(1Hz精度) GEN:POIN CH1,freq\r\n GEN:POIN CH2,freq\r\n # 查询通道点频 GEN:POIN? CH1\r\n5.5 扫频基础参数全局配置
scpi
# 扫频总跨度MHz FREQ:SPAN freq\r\n FREQ:SPAN?\r\n # 扫频起始频率 FREQ:STAR freq\r\n FREQ:STAR?\r\n # 扫频截止频率 FREQ:STOP freq\r\n FREQ:STOP?\r\n # 单步停留时间ms FREQ:TIME time\r\n FREQ:TIME?\r\n5.6 一键扫频指令(单次 / 循环)
scpi
# 单次扫频:起始,终止,步长,单步时间 GEN:SING start,stop,step,t_ms\r\n GEN:SING?\r\n # 循环连续扫频 GEN:CYCL start,stop,step,t_ms\r\n GEN:CYCL?\r\n六、Python 完整控制代码(pyserial 适配 SL6Pro 双通道)
6.1 环境安装
bash
pip install pyserial6.2 SL6Pro 专用控制类(支持双通道独立控制)
python
运行
import serial import time class SL6Pro_RF_Source: def __init__(self, com_port, baud=115200, timeout=0.5): # 初始化串口 self.ser = serial.Serial( port=com_port, baudrate=baud, bytesize=8, stopbits=1, parity=serial.PARITY_NONE, timeout=timeout ) # 必须发送识别指令激活SCPI self.send("*IDN?") print("设备识别信息:", self.read()) def send(self, cmd): """发送指令自动补全\r\n换行符""" full_cmd = cmd.strip() + "\r\n" self.ser.write(full_cmd.encode("ascii")) time.sleep(0.03) def read(self): """读取设备返回应答""" resp = self.ser.readline().decode("ascii").strip() return resp # 全局输出开关 def set_output_switch(self, enable: bool): state = "ON" if enable else "OFF" self.send(f"GEN:STAT {state}") # 双通道独立功率设置 def set_channel_ampl(self, ch: str, power: float): self.send(f"GEN:AMPL {ch},{power}") def get_channel_ampl(self, ch: str): self.send(f"GEN:AMPL? {ch}") return self.read() # 双通道独立点频设置 def set_point_freq(self, ch: str, freq_mhz: float): self.send(f"GEN:POIN {ch},{freq_mhz}") def get_point_freq(self, ch: str): self.send(f"GEN:POIN? {ch}") return self.read() # 单次扫频 def single_sweep(self, start, stop, step, t_ms): self.send(f"GEN:SING {start},{stop},{step},{t_ms}") # 循环扫频 def cycle_sweep(self, start, stop, step, t_ms): self.send(f"GEN:CYCL {start},{stop},{step},{t_ms}") def close(self): # 关闭射频输出,释放串口 self.set_output_switch(False) self.ser.close() if __name__ == "__main__": # 修改为你的COM端口,Windows COM4 / Linux /dev/ttyUSB0 rf_dev = SL6Pro_RF_Source("COM4") # 案例1:双通道独立点频输出 # CH1输出100MHz,CH2输出2450MHz(WiFi频段) rf_dev.set_point_freq("CH1", 100.000001) # 1Hz精度示例 rf_dev.set_point_freq("CH2", 2450.0) rf_dev.set_channel_ampl("CH1", -18) rf_dev.set_channel_ampl("CH2", -15) rf_dev.set_output_switch(True) print("CH1当前频率:", rf_dev.get_point_freq("CH1")) print("CH2功率:", rf_dev.get_channel_ampl("CH2")) time.sleep(5) # 案例2:9KHz~1000MHz循环扫频,步长1MHz,每步停留100ms rf_dev.cycle_sweep(0.009, 1000, 1, 100) time.sleep(15) # 关闭设备 rf_dev.close()七、常见故障排查指南
问题 1:发送指令无任何返回
- Type-C 线材故障,更换数据传输线(充电线无串口通信);
- 串口参数错误,必须 115200 8N1;
- 开机后未发送
*IDN?\r\n,设备未进入 SCPI 模式; - 重启设备重新插拔 USB,清空异常连接状态。
问题 2:低频 9KHz~50MHz 无信号 / 功率异常
SL6Pro 原生支持低频输出,若无信号:
- 确认通道输出开关打开;
- 检查 SMA 同轴线缆、负载是否短路;
- 功率不要设置过低,低频建议 - 30dBm 以上观测。
问题 3:扫频不启动
- 起始频率≥终止频率,参数颠倒;
- 未填写步长、单步时间;
- 全局射频输出 GEN:STAT OFF,未打开信号输出。
问题 4:频率精度达不到 1Hz
下发频率参数时保留 6 位小数,例如 9.000001MHz 代表 9000001Hz,程序传递浮点需保证精度。
八、典型应用场景
- 低频射频 / 短波电路调试:9KHz 起步,满足收音机、LC 滤波器、低频振荡源测试(HT008B 无法覆盖);
- 无线设备研发:蓝牙 2.4G、WiFi6E、5G Sub6G、射频接收机灵敏度测试;
- 双通道对比测试:双路独立信号输出,用于混频器、双天线同步测试;
- EMC 预兼容测试:全频段连续扫频,快速定位辐射干扰频段;
- 自动化产线 ATE:Python 脚本批量多频段自动测试,数据自动记录;
- 户外便携测试:内置锂电池,无市电场景现场调试天线、射频模块。
九、总结
SL6Pro 是 HT008B 的全面升级款,核心解决低频缺失、频率精度不足、单通道限制三大痛点:9KHz~6.4GHz 全频段覆盖、全频段 1Hz 分辨率、双通道独立程控输出,同时保留便携锂电、标准 SCPI 协议、低成本优势。 对于需要覆盖低频射频、追求高精度、双通道同步测试的工程师、实验室、教学机构,SL6Pro 是性价比极高的入门微波信号源;若仅做 50MHz 以上中高频简单调试,可选择 HT008B 降低成本。