如何利用FlexRIO同时实现数据采集和波形生成两个P2P streaming



主要软件: LabVIEW Modules>>LabVIEW FPGA Module
主要软件版本: 2011
主要软件修正版本: N/A
次要软件: Driver Software>>NI-SCOPE, Driver Software>>NI-FGEN
硬件: Signal Sources (AWG/FG/AO)>>Arbitrary Waveform and Function Generators>>PXIe-5451

问题:
        在NI 的范例查找器中分别有利用Digitizer和FlexRIO实现P2P信号采集、利用Signal generator和FlexRIO实现P2P波形生成的范例。那么一块FlexRIO板卡上能不能同时运行多个P2P streaming,比如Digitizer以10MHz的采样率采集波形,将采集到的数据P2P stream到FlexRIO上,在FlexRIO上进行一定的处理后再将数据通过P2P stream到signal generator上以同样的采样率生成波形?


解答:
       NI P2P Streaming技术使用PCI Express接口在多个设备之间直接,点对点传输,而不必通过主处理器或存储器。这可使同一个系统中的设备共享信息而不必占用其它的系统资源。NI P2P技术被以下设备支持:NI FlexRIO现场可编程门阵列(FPGA)模块,数字化仪和矢量信号分析仪,信号发生器等,具体型号可以参考AE KB 5M5F1FA9P2P Data Streaming的架构有以下几种常见拓扑结构:
         
     
        由此可见,对于问题中的描述,用数字化仪采集波形P2P到FlexRIO上再将数据通过P2P传到信号发生器上生成波形是P2P Data Streaming的一种常见应用。另外需要说明的是:对于单个FPGA模块(FlexRIO)最多可实现16个streams。
      
       下面通过一个实例来具体说明这种应用以及需要注意的地方。
实现功能:5122以10MHz的采样率连续采集波形,将采集到的数据P2P stream到FlexRIO 7962R上,在7962R上进行PID运算后将数据通过P2P stream到5451上以10MHz的更新率生成波形。
所用设备:
1、PXIe 8133(可用其他控制器替代)
2、PXIe 1062Q机箱(可用其他支持P2P streaming的机箱替代)
3、PXIe 5122(采集5421生成的信号并P2P到7962R上,可替换为PXIe-5622)
4、PXIe 7962R(接收5122采集的数据并进行PID运算,将结果P2P到5451上,可替换为其他FlexRIO板卡)
5、PXIe 5451(将7962R上P2P过来的数据生成波形并输出,可替换为PXIe-5450)
硬件架构:
                 
软件架构:
                     
具体程序请参考附件。
实物与运行结果:
                  
设置PID运算的Setpoint=0;P=1;I=D=0,输入±1V、100kHz的正弦波,输出波形与输入波形成反向关系。
需要说明的是
1、5122和5622需要更新固件至较新版本才能使能Peer-to-Peer streaming ,具体更新的方法可以参考KB 54FDCPLY: NI-SCOPE 3.6 Firmware Updater
2、信号发生器P2P Streaming时只能使用脚本(script)输出模式。
3、5122采样率最高可达100MHz,5451的更新率最高达400MHz,FlexRIO P2P Stream的速率也不止10MHz,实际应用时的速率主要是受FlexRIO上的信号处理部分限制。在本例中,为了保证信号发生器的每一个时钟上升沿都有数据生成,FlexRIO上数据处理部分(PID运算)也必须以10MHz或更快的速率完成,才能使信号发生器端有源源不断的数据可以生产,才能使数据的采集、处理、生成都能以恒定的速率进行。另外,为了保证数据生成的确定性,最好使用单周期定时循环,避免使用While 循环。LabVIEW自带的PID算法不能运行在定时循环中,运算速度不能满足要求,这里通过调用IP核来实现。
4、虽然数字化仪和信号发生器都以10MHz的速率采集或生成,但如果用各自的板上时钟,由于各自时钟的精度、稳定性都不一样,很容易导致信号发生器发生Data underflow的错误。为此,通过数字化仪和信号发生器都使用PXI机箱背板时钟作为参考时钟来解决这个问题。
5、P2P Streaming以原始的二进制数据进行传输,不包括缩放和校准。对于数字化仪,归一化的系数可以被NI-SCOPE查询并用来校准二进制数据而不必缩放成伏特。最大的正二进制值对应垂直幅度的最大正向电压。最大的负二进制值对应垂直幅度的最大反向电压。垂直幅度被均匀划分以对应可能的二进制值。需要指出的是,实际的最大正负电压会比设定的量程稍大。例如,设定量程是±10V,则实际的最大正负电压是±11V(可参阅参考链接③中的第5部分calibration)。对于信号发生器,传递的也是原始二进制数据,因此,需要考虑数字化仪和信号发生器的位数、量程、增益等因素,确保数字化仪采集的信号和信号发生器生成的信号一致。


相关链接:
KB 5CG98MN8: 哪种控制器和机箱支持Peer-To-Peer高速传输(P2P)?
KB 5M5F1FA9: NI哪些硬件可以支持点对点(P2P) 的流盘?
An Introduction to Peer-to-Peer Streaming
Importing External IP Into LabVIEW FPGA


附件:
digi2fpga2arb.zip




报告日期: 09/28/2012
最近更新: 09/29/2012
文档编号: 61RKQR0M