0. 项目背景
在做国标相关 Wi‑Fi 非信令项目时,传统流程是:
手工在 EspRFTestTool 里点 UI 开始发射;
再手工到 N9912A 测量助手切换参数;
反复抄表到 Excel。
这个方式有三个问题:
易误操作;
频繁重复配置、效率低;
手工抄数易错且难复现。
我希望实现:
DUT 串口由上位机直接驱动;
仪表参数由 FieldFox 自动记录与导出;
每完成一项就写入 Excel,支持中断恢复。
1. 系统组成与环境
1.1 硬件与仪器
DUT:ESP32-S3(Scepter)
天线:2.4G 外接 FPC 天线
仪器:Keysight FieldFox N9912A
通讯:串口 + LAN(N9912A)
电脑:Windows

图1 测试环境整体连线与端口分布
1.2 软件与文件
ESPRFTestTool(用于烧录+调试)
自研自动化:
RF全自动测试.ps1RF全自动测试.cmdRF全自动测试设置.json
输出模板:
Scepter_WiFi非信令测试数据.xlsx
2. 最初问题与排障过程
2.1 连接与网络问题
起初只有网线,先确认了 PC 与 N9912A 的网口设置(IPv4 缺失时先修复网络适配器)。
然后通过 ping 192.168.0.1 验证控制链路。
2.2 ESPRFTestTool 与脚本交互问题
旧流程里 COM 口固定(COM18)导致换设备后失败;
RF全自动测试.cmd曾出现闪退,根因是中文编码在cmd里导致执行异常;另一个关键点是:用户希望“只手动操作 EspRFTestTool 烧录”,测试时上位机独占 DUT 串口。
3. 关键实现思路(重点)
3.1 串口直接发指令(不点EspRFTestTool UI)
初始化序列
cmdstopRF_init_sel 0 0x1fc000
普通非信令发射
cmdstopcbw40m_en 0/1tx_contin_en 1esp_tx <ch> <ratecode> 0用返回的
Wifi tx out校验实际执行参数
Tone 频点检查
cmdstopcbww40m_en 0/1wifiscwout 1 <ch> 0测量结束再执行
wifiscwout 0 ...和cmdstop
速率码映射(已按乐鑫规范)
11b:1M=0x0,2M=0x1,11M=0x3
11g:6M=0xb,54M=0xc
11n:MCS0=0x10,MCS7=0x17
4. 测试矩阵(当前第一版覆盖范围)
4.1 普通点
11b: 1M / 2M / 11M
11g: 6M / 54M
HT20: MCS0 / MCS7
HT40: MCS0 / MCS7
速率+信道按标准集合生成(含 CH1/6/13 或对应边界组)
4.2 Tone
20M:CH1 / CH6 / CH13
40M:CH3 / CH7 / CH11
4.3 频谱遮罩
9 组遮罩场景,按每组三信道取 worst envelope 结果
执行顺序设计为:
1) Tone(6)
2) 普通点(27)
3) 遮罩组(9)
共 42 项。

图2 测试矩阵与执行顺序表
5. 关键功能点(对应用户需求)
不再手工重复输入相同参数(COM 和 DUT 记忆 + 下拉选择)
tone 频偏与测量频率自动回写,避免重复填写
一键新建完整表 / 断点续测
发生异常时安全停发,默认执行
cmdstop支持多 DUT、不同 COM 口切换(Scepter/Dongle 分离记忆)
旧流程保持可用:失败可秒切回原手工自动化
6. 使用流程
自己编写的操作手册: ESPRFTestTool_v5.2操作手册.pdf

图3 UI 界面操作流程截图(按钮区+日志区)