导航
技术专栏
走进技术专栏,解锁前沿科技
轻松掌握测试知识,率先成为科技达人
2025/10
22
NI示波器卡编程完整步骤指南-NI技术支持中心

一、准备工作

1.1 硬件连接与配置

安装硬件设备

NI示波器卡(如PCIe-5162/PXIe-5164)正确插入PCIe/PXIe插槽

连接信号线至前端BNC接口,注意阻抗匹配(50Ω/1MΩ)

验证硬件状态

打开Measurement & Automation Explorer (MAX)

在"设备和接口"中确认示波器卡被正确识别

执行自检测试(Self-Test)

1.2 软件环境搭建

安装必要软件

NI-SCOPE驱动(最新版本)

开发环境(LabVIEW/CVI/VB/C#/Python等)

可选:NI-Sync(多设备同步时)

配置采集参数

Python

   # Python示例:检查设备列表

   import niscope

   session = niscope.Session()

   print(session.devices)

NI示波器卡编程完整步骤指南

二、基础采集编程步骤

2.1 LabVIEW编程流程

创建DAQmx任务

使用"DAQmx Create Task"VI

选择通道类型(Analog Input→Voltage)

配置时序参数

采样率(Sample Rate)

记录长度(Number of Samples)

触发设置(参考2.3节)

实现采集循环

Labview

   [DAQmx Start Task] → [DAQmx Read] → [数据处理] → [循环直到停止]

2.2 C语言编程示例

C

ViSession session;

niscope_init("PXI1Slot2", VI_TRUE, VI_TRUE, &session);

// 配置垂直设置

niscope_ConfigureVertical(session, "0", 1.0, NISCOPE_VAL_PROBE_GAIN_1X);

// 配置水平设置

niscope_ConfigureHorizontalTiming(session, 1e9, 10000, 50.0, VI_TRUE);

// 启动采集

niscope_InitiateAcquisition(session);

三、高级功能实现

3.1 触发配置

触发类型选择

边沿触发(Edge Trigger)

窗口触发(Window Trigger)

数字触发(Digital Trigger)

视频触发(Video Trigger)

LabVIEW配置示例

Labview

   [DAQmx Trigger] →

   选择触发源(PFI0/PXI_Trig等)→

   设置触发电平(Trigger Level)→

   配置触发条件(Rising/Falling Edge)

3.2 多设备同步

硬件连接

使用PXI背板触发线(PXI_Trig0~7)

或通过RTSI总线连接

同步代码片段

Python

   # 主设备配置

   master.configure_trigger_mode(NISCOPE_VAL_MASTER)

   

   # 从设备配置

   slave.configure_trigger_mode(NISCOPE_VAL_SLAVE)

3.3 分段存储采集

C

// 配置分段存储

niscope_ConfigureAcquisition(

    session,

    NISCOPE_VAL_SEGMENTED,  // 分段模式

    10,                     // 分段数

    10000,                  // 每段点数

    1e9                     // 采样率

);

四、数据处理与分析

4.1 波形处理技术

频域分析

Python

   import numpy as np

   from scipy.fft import fft

   

   yf = fft(waveform)

   xf = np.linspace(0, sample_rate/2, len(waveform)//2)

参数测量

幅值(Amplitude)

上升时间(Rise Time)

占空比(Duty Cycle)

4.2 数据存储方案

二进制存储(推荐)

Labview

   [Open File] → [Write to Binary File] → [Close File]

TDMS格式存储

Python

   import nidaqmx

   with nidaqmx.Task() as task:

       task.timing.cfg_samp_clk_timing(1000)

       writer = nidaqmx.stream_writers.AnalogSingleChannelWriter(task.out_stream)

       writer.write_many_sample(data)

五、性能优化技巧

5.1 采集效率提升

使用DMA传输

C

   niscope_SetAttributeViInt32(

       session,

       NISCOPE_ATTR_FETCH_RELATIVE_TO,

       NISCOPE_VAL_FETCH_DMA

   );

内存优化配置

合理设置缓冲区大小

启用交错模式(Interleaved Mode)

5.2 实时显示优化

双缓冲技术

波形压缩显示

Python

   def downsample(data, factor):

       return data[::factor]

六、调试与错误处理

6.1 常见错误代码

错误代码 含义 解决方案

-1074135024 超时 增加超时设置

-1074135035 缓冲区溢出 增大缓冲区或降低采样率

-1074135029 触发超时 检查触发信号连接

6.2 调试工具

NI Trace工具:监控底层API调用

MAX测试面板:快速验证硬件功能

LabVIEW探针:实时查看数据流

七、草莓污视频下载测试科技支持服务

如需获取完整示例代码或技术咨询,请联系草莓污视频下载测试科技的技术支持团队18682985902(同微信)

网站地图