简介:UXM 5GNR 操作手册是 Keysight 官方发布的 UXM 仪表使用指南,面向 5G 终端测试工程师、射频测试人员及通信专业学习者,帮助其快速掌握 UXM 仪表的初始化与参数配置流程。资源包为单个 PDF 文件,约 15.98MB,内容按章节组织,涵盖仪表初始化、场景设置、线损补偿、模式切换与 Preset 等基础操作,并深入讲解 LTE/NR 基本参数设置、NSA 与 SA 连接建立、SA 小区参数与 SIM 卡配置、SA UL MIMO、SRS Antenna Switching 及 1T2R/1T4R 设置,还包含发射功率、占用带宽、ACLR、SEM 等基本射频指标测试方法。手册以步骤化说明配合参数界面描述,便于读者对照仪表逐项操作,快速完成 5G 连接建立与射频指标验证。目前已有 1308 人学习下载,适合需要系统查阅 UXM 操作细节、排查配置问题的测试人员参考。
1. UXM 5GNR 操作手册:从开机到跑通第一个 5G NR 小区
手里有一台 Keysight UXM(E7515A/B)无线测试仪,但每次想跑个 5G NR 用例都要翻半天手册、问一圈人?这个场景太常见了。UXM 5GNR 操作手册的核心价值,不是告诉你按钮在哪,而是把「仪器怎么配、UE 怎么连、信令怎么走、结果怎么看」这条链路串成可复现的步骤。它解决的是从零到跑通第一个 NR 小区的问题,适合做终端射频验证、协议一致性预测试、NR 信令流程调试的工程师。很多人第一次上手 UXM 会卡在 SA/NSA 模式选择、频段配置和小区激活顺序上,这篇笔记就按我实际操作的顺序,把关键参数和踩坑点讲清楚。
2. UXM 5GNR 测试环境搭建:从物理连线和 License 确认开始
2.1 硬件连接与端口映射
UXM 的射频端口多,第一次接线容易搞混。常见做法是:把 DUT 的主集天线接到 UXM 的 RF1 端口,分集天线接到 RF2,如果做 4x4 MIMO 再依次接 RF3、RF4。控制口用 LAN 连到 PC,USB 口一般留给 DUT 的 ADB 或串口调试。注意 UXM 前面板的 Port 编号和软件里 Test Set 的端口映射必须一致,否则会出现「小区激活了但 UE 搜不到」的玄学问题。
接线完成后,在 PC 上打开 UXM 的 Web 界面或 X-app,确认仪器 IP 可达。我一般先用 ping 确认链路,再用 Keysight 的 Connection Manager 看仪器状态。
# 确认 UXM 网络可达,假设仪器 IP 为 192.168.1.100 ping 192.168.1.100 # 查看仪器开放的端口,确认 Web 服务在监听 nc -zv 192.168.1.100 80 nc -zv 192.168.1.100 5025逻辑说明:ping 通只代表网络层可达,5025 是 SCPI 常用端口,80 是 Web 界面端口。如果 5025 不通,后面用脚本控制仪器就会失败。参数上,UXM 默认 IP 可能是 192.168.1.100 或 DHCP 分配,建议在仪器设置里固定 IP,避免每次重启后地址变化导致脚本连不上。
2.2 License 与选件确认
UXM 的 5G NR 功能依赖 License。开机后在仪器信息页面查看已安装的选件,重点确认 NR 信令、NR 测量、以及你需要的频段选件是否齐全。没有对应频段 License,软件里频段下拉框会是灰的,这时候别怀疑硬件,先查 License。
常见做法是在 X-app 的 Instrument > Options 里核对。如果缺选件,联系 Keysight 支持导入 License 文件,导入后需要重启仪器。这一步没有捷径,我见过有人折腾一下午以为是射频问题,结果只是频段选件没装。
2.3 测试环境参数表
| 项目 | 典型值 | 说明 |
|---|---|---|
| 仪器 IP | 192.168.1.100 | 建议固定 |
| SCPI 端口 | 5025 | 脚本控制用 |
| 射频端口 | RF1/RF2 | 主集/分集 |
| 参考时钟 | 内部 10MHz | 一般用内部 |
| 衰减 | 根据 DUT 输出调整 | 避免过载 |
3. UXM 5GNR 小区配置:SA 与 NSA 模式的关键参数怎么设
3.1 SA 独立组网配置步骤
SA 模式下,UXM 直接作为 gNB。操作顺序是:先建 Cell,再配频段和带宽,最后激活。顺序错了会出现小区起不来。
在 X-app 里进入 5G NR > Cell Configuration,新建一个 NR Cell。关键参数:
- Frequency Range:FR1 或 FR2,根据 DUT 支持选
- Band:n78、n41 等,必须和 License 匹配
- Subcarrier Spacing:15/30/60 kHz,n78 常用 30 kHz
- Channel Bandwidth:100 MHz 是 n78 常见配置
- TDD Pattern:按运营商或测试规范配
配置完成后点 Activate。如果小区状态一直是 Inactive,先看频段 License,再看 TDD Pattern 是否合法。
# 用 SCPI 通过 Python 配置 UXM NR 小区示例 import pyvisa rm = pyvisa.ResourceManager() uxm = rm.open_resource("TCPIP0::192.168.1.100::5025::SOCKET") uxm.read_termination = "\n" uxm.write_termination = "\n" # 查询仪器标识,确认连接正常 print(uxm.query("*IDN?")) # 配置 NR 小区频段和带宽(具体命令以仪器 SCPI 手册为准) uxm.write("CONF:NR5G:CELL1:BAND N78") uxm.write("CONF:NR5G:CELL1:BWID 100MHZ") uxm.write("CONF:NR5G:CELL1:SCS 30KHZ") # 激活小区 uxm.write("INIT:NR5G:CELL1")逻辑说明:SCPI 命令是仪器控制的通用方式,pyvisa 负责底层通信。参数上,BAND、BWID、SCS 必须和 DUT 能力一致,否则 UE 不会驻留。注意不同固件版本的 SCPI 命令树可能有差异,写脚本前先用*IDN?确认固件版本,再对照对应版本的 SCPI 手册。如果 query 返回超时,检查 read_termination 和 write_termination 是否匹配仪器设置。
3.2 NSA 模式配置要点
NSA 模式下,UXM 同时模拟 LTE 锚点小区和 NR 辅小区。配置顺序是:先配 LTE Cell 并激活,再配 NR Cell 作为 SCell。很多人卡在 NR 小区激活不了,原因是 LTE 锚点没先起来。
LTE 锚点关键参数:Band、带宽、TDD/FDD 模式。NR SCell 关键参数:和 SA 类似,但要注意 NSA 下 NR 的频段组合必须和 LTE 锚点匹配,比如 B3 + n78 是常见组合。
我一般会先在 LTE 侧确认 UE 能附着,再激活 NR SCell,这样排查问题时能快速定位是 LTE 还是 NR 的问题。
3.3 小区激活失败的排查顺序
现象:点 Activate 后小区状态不变。
原因:License 缺失、频段参数非法、TDD Pattern 配置错误、射频端口未使能。
解决:按 License → 频段 → TDD Pattern → 射频端口顺序排查。射频端口使能经常被忽略,在 RF > Port Configuration 里确认对应端口是 On 状态。
4. UXM 5GNR 信令流程与吞吐量测试:从 UE 接入到跑数
4.1 UE 接入与信令跟踪
小区激活后,DUT 应该能搜到并尝试接入。在 UXM 的 Signaling 界面可以看到 RRC 消息流程。正常流程是:UE 发 RRC Setup Request → 网络回 RRC Setup → UE 回 RRC Setup Complete → 注册 → PDU Session 建立。
如果 UE 不接入,先看 UE 侧是否搜到小区。常见问题是频点没对上,或者 TDD Pattern 和 UE 预期不一致。信令跟踪是排查黑匣子问题的关键,UXM 的消息日志能直接看到在哪一步断了。
4.2 吞吐量测试配置
吞吐量测试需要先建立数据承载。在 UXM 里配置 PDU Session,指定 DNN 和 QoS。然后启动 iPerf 或 UXM 内置的吞吐量测试功能。
# 在 DUT 侧启动 iPerf 客户端,UXM 侧作为服务端 # 假设 UXM 内置 iPerf 服务端已启动,IP 为 192.168.10.1 iperf3 -c 192.168.10.1 -t 30 -i 5 -P 4逻辑说明:-t 30 表示测试 30 秒,-i 5 每 5 秒输出一次,-P 4 开 4 条流。参数上,流数要根据 MIMO 层数和 UE 能力调整,4x4 MIMO 可以开 4 流。如果吞吐量远低于预期,先看 MCS 和 BLER,再查射频链路损耗。
4.3 关键测量指标解读
| 指标 | 正常范围 | 异常时排查方向 |
|---|---|---|
| RSRP | -80 ~ -100 dBm | 射频连接、衰减 |
| SINR | > 20 dB | 干扰、TDD Pattern |
| MCS | 高值 | 信道质量 |
| BLER | < 10% | 解调、射频 |
| 吞吐量 | 接近理论峰值 | 调度、承载配置 |
5. UXM 5GNR 操作避坑:5 个血泪踩坑记录
5.1 坑一:小区激活了但 UE 搜不到
现象:UXM 显示 Cell Active,UE 侧搜不到小区。
原因:频点没对上,或者 TDD Pattern 和 UE 预期不一致。
解决:确认 UE 侧锁的频点和 UXM 配置一致,TDD Pattern 用标准配置先试。我一般先用最简配置跑通,再改复杂参数。
5.2 坑二:吞吐量上不去
现象:信令正常,但吞吐量只有理论值的一半。
原因:MIMO 层数没配对,或者射频链路损耗太大。
解决:检查 UE 上报的 RI 和 UXM 配置的 MIMO 层数是否一致,用频谱仪看射频输出是否正常。
5.3 坑三:SCPI 脚本连不上仪器
现象:pyvisa 报超时。
原因:IP 变了、端口不对、或者仪器防火墙拦截。
解决:固定仪器 IP,确认 5025 端口开放,read/write termination 设置正确。
5.4 坑四:NSA 下 NR SCell 加不上
现象:LTE 附着正常,NR SCell 激活失败。
原因:LTE 和 NR 频段组合不合法,或者 NR License 缺失。
解决:查频段组合表,确认 License,先激活 LTE 再激活 NR。
5.5 坑五:测试结果重复性差
现象:同样配置,每次跑出来吞吐量波动大。
原因:射频连接松动、环境干扰、或者仪器未预热。
解决:检查接头,预热仪器 30 分钟,固定测试环境。
6. UXM 5GNR 进阶:用 SCPI 脚本批量跑用例与结果校验
6.1 批量测试脚本框架
单次手动测试效率低,我一般会写脚本批量跑。核心思路是:参数化频段、带宽、MIMO 层数,循环配置小区、等待 UE 接入、跑吞吐量、记录结果。
import pyvisa import time import csv rm = pyvisa.ResourceManager() uxm = rm.open_resource("TCPIP0::192.168.1.100::5025::SOCKET") uxm.read_termination = "\n" uxm.write_termination = "\n" # 测试参数矩阵 bands = ["N78", "N41"] bws = ["100MHZ", "80MHZ"] results = [] for band in bands: for bw in bws: # 配置小区 uxm.write(f"CONF:NR5G:CELL1:BAND {band}") uxm.write(f"CONF:NR5G:CELL1:BWID {bw}") uxm.write("INIT:NR5G:CELL1") time.sleep(10) # 等待 UE 接入 # 查询吞吐量(具体查询命令以仪器手册为准) thr = uxm.query("FETC:NR5G:THR?") results.append({"band": band, "bw": bw, "throughput": thr.strip()}) # 去激活,准备下一轮 uxm.write("ABOR:NR5G:CELL1") time.sleep(5) # 结果写 CSV with open("uxm_nr_results.csv", "w", newline="") as f: writer = csv.DictWriter(f, fieldnames=["band", "bw", "throughput"]) writer.writeheader() writer.writerows(results) print("测试完成,结果已保存")逻辑说明:脚本用嵌套循环遍历参数矩阵,每轮配置后等待 UE 接入再查询吞吐量。参数上,time.sleep 的时间要根据 UE 接入速度调整,太快会查不到结果。FETC 命令的具体名称要对照仪器 SCPI 手册,不同固件版本可能不同。结果写 CSV 方便后续分析。
6.2 结果校验与异常判定
跑完批量测试后,不能只看数字,要校验合理性。我一般会设几个判定条件:吞吐量低于理论值 70% 标记为异常,RSRP 低于 -110 dBm 标记为射频问题,BLER 高于 10% 标记为解调问题。
# 简单的结果校验逻辑 def check_result(row, threshold=0.7): thr = float(row["throughput"]) # 假设 100MHz 理论峰值约 1.5Gbps,按比例判断 if thr < 1500 * threshold: return "FAIL" return "PASS" for row in results: row["verdict"] = check_result(row)逻辑说明:阈值根据实际理论峰值调整,这里只是示例。校验逻辑要结合具体测试规范,不能一刀切。
6.3 我踩过的脚本坑
脚本跑批量测试时,最容易翻车的是状态没清理干净。上一轮小区没去激活就配下一轮,会导致配置冲突。我现在的习惯是每轮结束都 ABOR 加去激活,再等几秒确认状态归零。另外,SCPI 命令的 query 和 write 要分清,query 会等返回,write 不等,混用会导致超时。
还有一个后悔药:脚本里加日志。每次配置和查询都写日志文件,出问题时能回溯是哪一步参数不对。这个习惯帮我省了很多排查时间。
希望帮到你。
本文还有配套的精品资源,点击获取