😊Forward
发布日期

雷达 TR 测试软件:系统总览与架构

作者

M先生

WRSP6TK 雷达 TR 测试软件源码精讲(1):系统总览与架构

本系列以 C:\Data\WRSP6TK64_SRC_20260730\WRSP6TK\WRSP6TK 工程中的 CTRTestSC(TRTestSC.cpp,约 8 千行)为对象,逐模式剖析相控阵雷达 TR 组件测试软件的实现,并补充背后的物理规律、公式与计算机知识。本篇为总览。

一、这个软件是干什么的?

CTRTestSC 是一个 TR 组件测试与校准工具,运行在雷达上位机(Windows/MFC 对话框程序)上,用来:

  1. 校准:测量每个 TR 组件的幅度/相位误差,生成校准系数(发射/接收、H/V 极化、内/外校准)
  2. 测波瓣图:在暗室(微波暗室)里测量天线的发射/接收方向图,计算波束宽度、副瓣电平
  3. 远场测试:采集各通道幅度,用于远场方向图评估

一句话:它是雷达出厂前"体检"和"矫正"的工具软件

二、硬件链路(先画全局地图)

                    ┌──────────────────────────────────────────┐
                    │             上位机(本软件)               │
MFC对话框 + 数据线程 + 文件/Excel导出                    └──────┬───────────┬───────────┬───────────┘
                           │           │           │
              TRBEAMPORTUART0PORTRXBEAMPORT/RXCORRPORT/
              (发射波束系数)  (TR开关)TRCORRPORT(校正系数)
                           ▼           ▼           ▼
┌──────────────┐   ┌────────────┐  ┌────────────┐  ┌────────────┐
TR组件阵列    │◄──┤ 波控/功放   │  │ TR控制(串口) │  │  DIFR收发机  │
 (H/V极化单元) (TRBEAM) (UART)  (数字中频)└──────┬───────┘   └────────────┘  └────────────┘  └─────┬──────┘
       │                                                   │
       └─────────────── 天线阵面 ─────────────────────────┘
                     DSP 回传数据(网络/UDP)→ globalBuf

四条软件-硬件通道

通道端口宏用途
发射波束系数TRBEAMPORT下发各 TR 通道发射波束的幅相系数
校正系数TRCORRPORT / RXCORRPORT下发接收/发射校准系数(含 DIFR 校正)
接收波束系数RXBEAMPORT下发 DBF 接收波束系数
TR 通道开关UART0PORT串口控制 TR 组件开关(通/断、选通道)

术语注释

  • TR 组件(T/R Module,收发组件):相控阵天线每个单元后面接的"小雷达",含发射功放、接收低噪放、移相器、衰减器。阵列有多少个单元就有多少个 TR 组件。
  • DIFR(Digital IF Receiver,数字中频接收机):把射频信号下变频到中频并数字化,做数字下变频(DDC)、数字正交变换得到 I/Q 数据。一个 DIFR 通常对应多个通道。
  • DBF(Digital Beam Forming,数字波束形成):在数字域对各通道 I/Q 加权求和形成波束。
  • 波控(Beam Steering):计算并下发每个移相器的控制数码。
  • I/Q 数据:正交解调后的同相/正交分量,携带回波的幅度和相位信息。

三、7 种测试模式(m_TrTestMode)

┌────┬────────────────────────┬──────────────────────────────────┐
0  │ 内接收校准 RecvAdjust   │ 机内信号源注入,校准接收通道幅相    │
1  │ 内发射校准 SendAdjust   │ 机内耦合取样,校准发射通道幅相      │
2  │ 外接收校准 AntRecvAdjust│ 外接信号源(天线口),校准接收通道   │
3  │ 外发射校准 AntSendAdjust│ 外接测量,校准发射通道              │
4  │ 暗室接收波瓣图 DarkRoomRecv │ 暗室转台扫描,测接收方向图      │
5  │ 暗室发射波瓣图 DarkRoomSend │ 暗室扫描,测发射方向图          │
6  │ 远场接收测试 FarFieldReceive│ 远场逐通道幅度采集              │
└────┴────────────────────────┴──────────────────────────────────┘

每种模式都有双极化版g_Dbf2SysInfo.DualPolarProcEna 为真,H/V 同时处理)和单极化 SL 版(假,只处理一路)。

四、数据流与线程模型

4.1 线程模型

主线程(UI 消息循环)
  └─ OnBnClickedButtonTrteststart:读取参数、调用对应 Init()
  └─ OnTimer(1):定时触发一次取数(g_TrTestNeedSpaceIQFlag = TRUE  └─ OnComm:串口收到 TR 位置/计数帧

数据线程(TRTestDataThread,最高优先级,等待事件)
  └─ 收到 m_TRTestDataEvent 事件后 → 调用对应模式的 DataProc()(后处理)

关键机制

  1. SetEvent(m_TRTestDataEvent):当一帧数据取完(...DataProcess 回调里)后触发事件,唤醒数据线程做后处理
  2. g_TrTestNeedSpaceIQFlag:定时器到点置位,表示"该取一次 I/Q 数据了"
  3. 数据回调(...DataProcess)→ 线程(...DataProc)两级流水:采集与处理解耦,避免 UI 卡顿

4.2 数据缓冲

globalBuf / g_DBFDataBuff(DSP 回传的原始 I/Q 数据)
    ├─ 结构:每通道 I/Q 交替存储
H通道: globalBuf[BinNum*2*2*i + 2*SuLocate]I    │           globalBuf[BinNum*2*2*i + 2*SuLocate + 1]QV通道: globalBuf[BinNum*2*(2i+1) + ...]
    └─ 其中:BinNum=距离库数,SuLocate=取样距离单元,
             i = 波位/通道序号

计算机知识:数据按"通道×距离库×I/Q"交错存储,是为了让 DSP 顺序写、顺序读,充分利用缓存局部性(cache-friendly),避免随机访问。

五、UART 串口同步协议

// TRTestOpenUart:发 0x5a 握手,开启接收
// OnComm:逐字节解析
0xa5(帧头)→ 3 字节计数(Stm32Count)→ 帧结束

if (Stm32Count == m_DataCount)   // 计数连续 = 位置有效
    SetTimer(1, m_GetDataTime);  // 延时后取数
else
    m_UartErrorCount++;          // 位置乱序,记错误

作用:TR 转台/扫描机构每到一个新位置,通过 UART 上报位置计数。软件用"计数连续"判断位置是否有效,再延时等待 DSP 数据稳定后取数。

计算机知识:这是典型的生产者-消费者同步——硬件(TR 位置)是生产者,软件取数是消费者,中间用"计数校验 + 定时器延时"做软同步。串口数据逐字节到达(每字节触发一次 OnComm),所以需要状态机(m_CommHeadFlag + m_CommDataCount)拼帧。

六、测试参数配置体系

6.1 三类参数来源

来源内容读取函数
TRTestConfig.ini测试模式、阵列参数、串口、角度表OpenTRConfig
TestPara\*.txt(14 个文件)各模式的 DSP 命令参数ParaOpenm_xxxCmd[]
界面控件DIFR 选择、通道选择、时延参数DisplayPannel

6.2 14 个参数文件的命名规律

Inner/Outer/Lobe   ×  Recv/Send   ×  Calibtate/Difr   +  M(多波束)
  校准区域            收发方向          参数类型

例:
  InnerRecvCalibtate.txt   → 内接收校准参数
  LobeSendMDifr.txt        → 暗室发射波瓣图多波束参数

计算机知识:参数文件是"数据与代码分离"的体现——测试参数变化频繁(频点、通道、扫描范围),若硬编码在代码里,每次修改都要重新编译。改成配置文件后,运行时可调、无需重编译

6.3 阵列参数

参数含义
m_ArrayXInterval / m_ArrayYInterval单元 X/Y 间距(cm),决定波束指向公式里的 d
m_ArrayGapNum每个单元的"份数"(多通道复用时的逻辑分组)
m_ArrayLineNum波瓣图需要采集的线数
g_BeamArrayInterval全局单元间距(cm)
g_BeamArrayNum全局单元数

七、核心数据结构速查

结构用途
m_AdjustSrcIQ[][2]校准源 I/Q(测量到的原始幅相)
m_AdjustFactIQ[][2]校准系数 I/Q(待下发)
m_AdjustSrcAP / m_AdjustFactAP[][2]对应的幅度/相位(dB/度)
m_DarkRoomSouIQ[][][2]暗室数据(i: 单元份数, j: 线数)
m_DarkRoomSouTmpHIQ[80][][2]暗室多波位暂存(H)
m_ScanBeamBit[900]扫描波位表(仰角编码)
m_BeamData / m_TmpBeamData[][]发射波束系数(32位打包)
m_DBFBeamCoeff_DataI/Q[][]DBF 接收波束系数(I/Q 浮点)

八、软件工程要点总结

  1. 两级流水:采集回调(DataProcess)+ 处理线程(DataProc)解耦,UI 不卡
  2. 事件驱动CreateEvent + WaitForSingleObject 线程同步
  3. 配置外置:ini + txt 参数文件,运行时加载
  4. 文件输出:测试结果写成 txt/Excel,文件名带频点、时间、角度(%.3fGHz_..._%04d%02d%02d...),便于追溯
  5. 双极化/单极化分支DualPolarProcEna 全局开关驱动两套流程,复用公共逻辑

九、一句话总结

TRTestSC 是一个"硬件在环"的测试上位机:通过四条通信通道(波束系数、校正系数、TR开关、DSP数据)驱动 TR 阵列,按 7 种模式完成校准与波瓣测量,用"回调采集 + 线程处理 + 事件同步"的架构保证实时性,用配置文件保证灵活性。

下一篇:WRSP6TK 雷达 TR 测试软件源码精讲(2):内校准——模式 0 内接收校准与模式 1 内发射校准

雷达 TR 测试软件:系统总览与架构

评论加载中…