1. 课程导入
在自动化测试、射频测量、高速数据采集与半实物仿真系统中,PXIe机箱内往往同时插入示波器、任意波形发生器、数字化仪、DMM、开关矩阵、FPGA板卡等多种模块。若各模块各自为政,仅靠软件轮询或LAN消息通信,就很难获得纳秒级的时间一致性。PXIe触发与时钟同步系统,正是解决"多模块何时动作、以谁为时间基准、动作误差多大"这一核心问题的底层基础设施。
一、核心概念:触发、时钟与同步
PXIe系统中的"同步"包含三个层次。第一层是时钟同步,即所有模块的采样时钟、时基来自同一参考,保证频率一致、相位可预测;第二层是触发同步,即各模块在同一时刻或确定延迟后开始采集、输出或切换;第三层是时间戳同步,即每个采样点都能映射到统一的时间轴上,便于后续对齐与联合分析。
常见信号可归纳为以下几类:
- 参考时钟:10 MHz REF、PXIe_CLK100,为模块提供频率基准。
- 同步脉冲:SYNC100、PXI_TRIG、PXIe_DSTAR,用于对齐分频器、启动采集或广播事件。
- 触发信号:外部触发、PXI_TRIG、星形触发、软件触发,决定"何时动作"。
- 时间戳与同步协议:IEEE 1588、GPS/IRIG-B、时间戳计数器,用于跨机箱或长距离同步。
理解这些概念的关键,是区分"频率一致"与"时刻一致"。频率一致只保证没有长期漂移,但若各模块分频器初相位不同,仍可能相差一个采样周期;触发同步则解决"从哪一刻开始"的问题。
二、整体框架:从参考源到模块动作
一个典型的PXIe同步系统可以抽象为"参考源—背板分发—模块本地锁相—触发路由—动作执行"五段链路。参考源可以是机箱背板自带的100 MHz时钟,也可以是外部10 MHz或GPS驯服钟;背板通过等长走线把时钟和触发分发到各槽位;模块内部用PLL/分频器生成采样时钟,并等待触发事件;触发路由决定事件来自背板、前面板还是软件;最终ADC、DAC或开关按统一时基动作。
三、方法流程:配置同步系统的通用步骤
无论使用NI-DAQmx、NI-Sync还是厂商自定义API,同步配置大体遵循以下流程:
- 确定时间基准:选择背板100 MHz、外部10 MHz或GPS,明确是否需要跨机箱同步。
- 规划触发路径:确定主模块、从模块,选择PXI_TRIG、星形触发或DStar。
- 配置时钟路由:将参考时钟送入各模块,设置PLL与分频比,确保采样率一致。
- 对齐分频器相位:使用SYNC100或软件同步脉冲复位分频器,消除初相位差。
- 设置触发极性、边沿与延迟:明确上升沿/下降沿、触发延迟和超时。
- 验证与测量:用示波器或时间戳比对,测量偏斜与抖动,必要时微调延迟。
下面是一段典型的伪代码配置片段,用于说明"先时钟、后同步、再触发"的顺序:
# 1. 选择参考时钟
niSync_init("PXI1Slot2")
niSync_connectClkTerminals("PXI1Slot2", "PXIe_CLK100", "External10MHz")
# 2. 配置SYNC100脉冲,对齐各模块分频器
niSync_setAttribute("PXI1Slot2", "SYNC100_ClockSource", "PXIe_CLK100")
niSync_sendSoftwareTrigger("PXI1Slot2", "SyncPulse")
# 3. 配置触发路由:主模块PXI_TRIG0 -> 从模块
niSync_connectTrigTerminals("PXI1Slot2", "PXI_TRIG0", "PXI1Slot3", "PXI_TRIG0")
# 4. 启动采集任务,等待触发
daqTask_start("aiTask")
四、典型应用场景与误区复盘
PXIe同步系统的典型场景包括:多通道高速数据采集(如相控阵、超声成像)、MIMO射频收发测试、电力电子半实物仿真、汽车ECU硬件在环测试、粒子物理实验数据采集等。这些场景的共同点是:通道数多、采样率高、对时间一致性要求苛刻。
| 场景 | 同步重点 | 常用资源 | 典型误差要求 |
|---|---|---|---|
| 多通道同步采集 | 采样时钟与触发对齐 | PXIe_CLK100 + PXI_TRIG | 通道偏斜 < 100 ps |
| MIMO射频测试 | 多路DAC/ADC相位一致 | SYNC100 + DStar | 相位误差 < 1° |
| 半实物仿真 | 闭环步长确定性 | 星形触发 + FPGA | 抖动 < 10 ns |
| 跨机箱同步 | 机箱间时间对齐 | GPS / IEEE 1588 | 同步误差 < 100 ns |