1. 点对点数据流介绍
NI点对点数据流(P2P)技术使用PCI Express接口在多个设备之间直接,点对点传输,而不必通过主处理器或存储器。这可使同一个系统中的设备共享信息而不必占用其它的系统资源。以下设备可支持NI P2P技术:PXI Express NI FlexRIO现场可编程门阵列(FPGA)模块(NI PXIe-7961R、PXIe-7962R、PXIe-7965R、PXIe-7966R和PXIe-7975R),PXI Express数字化仪和矢量信号分析仪,包括PXIe-5644R、PXIe-5645R、PXIe-5122、 PXIe-5160、 PXIe-5162、 PXIe-5622和PXIe-5663。
在图1所描述的系统中,在NI PXIe-1075机箱中的NI PXIe-5622数字化仪使用点对点数据流直接将数据传送到NI PXIe-7965R NI FlexRIO FPGA模块。然后FPGA模块将数据传送到另一个FPGA模块用作额外的处理。由于机箱背板开关提供与模块所在插槽的直接连接,您不需要通过主控制器或进入系统资源,例如CPU和主存储器来传送数据。

图 1. NI PXIe-5622 数字化仪将数据流传输到两个 PXI Express NI FlexRIO FPGA模块. 2. 应用实例
RF应用中一种常见的需求是实时频域触发。尽管大部分RF设备在一个功率级上触发,但这种实时频域触发与频率并没有关系。但是,借助NI LabVIEW FPGA模块的点对点数据流和数据处理技术,您可以建立一个频域触发。图2所描述的应用中,NI PXIe-5663矢量信号分析仪使用点对点数据流将数据传送到NI FlexRIO FPGA模块进行加窗,然后转化为频域信号,并与频谱模板比较。当数据超过模板时,FPGA模块在PXI背板产生一个数字触发信号。NI PXIe-5663收到这个触发信号后,便开始捕获数据记录,包含预触发采样,并将数据存储在分析仪的标准采集内存中。然后您可以通过NI-RFSA驱动从主机访问该数据记录用于进行其它处理或存储。

图2. 在此应用中, NI FlexRIO FPGA模块向 NI PXIe-5663 矢量信号分析仪发出一个频域触发信号. 3. 点对点系统的编程
NI-P2P驱动极大简化了点对点数据流的编程。在图3描述的应用中,1号FPGA直接将数据传送给2号FPGA。在LabVIEW FPGA中,点对点数据读取和写入节点为数据交换提供先进先出(FIFO)的接口。这些节点类似于DMA 和本地FPGA FIFO。在数据交换之前,主机必须通过NI-RIO和NI-P2P API将1号FPGA的写入数据流和2号FPGA的读取连接起来(如图3所示)。您可根据配置使用一个或两个VI来连接点对点数据流,进行数据交换。

图3. 两个 NI FlexRIO FPGA 模块和相关软件之间的点对点数据流 4. 点对点系统基准测试
NI点对点技术实现了单个方向超过 1.6 GB/s的数据流速率。最大吞吐量取决于数据流模块、机箱以及(如果配置支持)控制器。一般来说,这些组件速率的最低值是P2P的最大可能带宽。
点对点数据传输具有非常低的延迟,但会取决于系统配置。如果仅通过FIFO和PCIe总线传输数据,典型的延迟大约为2-4微秒。但是如果由于其他业务造成总线拥塞,这一延迟偶尔会达到几十微秒的量级。当从数字化仪输出数据流,延迟通常为5微秒,如果将数据流传输到任意波形发生器,由于板载缓冲,延迟大约为10-20微秒。
如果通过具有板载信号处理功能的设备进行数据传输(使用NI PXIe-5622数字化仪),则额外的滤波和其他处理可能会使延迟达到数百微秒。最后,对系统性能进行评估时,还必须考虑NI FlexRIO FPGA模块上运行的用户代码的延迟。
机箱
所有数据必须通过机箱从一个模块流向另一个模块,所以机箱对于确定带宽非常重要。机箱背板的PCI Express开关通过机箱路由数据,同时,也提供了实现点对点数据流的高带宽点对点连接。当模块所占用的多个插槽是连接在同一个PCI Express开关上时(如图4所示)带宽取决于开关。

图4. 机箱上的模块布局路由所有数据通过同一个 PCI Express 开关。 表1显示了给定机箱的PCI Express开关的最大带宽。该带宽可通过任意两个连接到相同开关的插槽实现,而且在特定速率下可支持一个开关多个连接。
机箱 | 插槽 | 最大点对点数据速率 | NI PXIe-1085 | 全部 | 1.6 GB/s | NI PXIe-1075 | 全部 | 1.6 GB/s | NI PXIe-1082Q | 全部 | 1.6 GB/s | NI PXIe-1065 | 7, 8 | 取决于控制器 | NI PXIe-1065 | 9-14 | 接近800 MB/s | NI PXIe-1062Q | 3-5 | 取决于控制器 | NI PXIe-1071 | 全部 | 取决于控制器 | NI PXIe-1073 | 全部 | >200 MB/s | NI PXIe-1078 | 2, 3, 4 | 取决于控制器 | NI PXIe-1078 | 5-9 | >200 MB/s |
表1. PXI Express机箱 P2P带宽
控制器
如果P2P流系统的模块并不是连接到机箱背板上的同一PCI Express开关,则数据必须流经主机控制器的板载开关或芯片,但不经过控制器的CPU或存储器。该配置如图5所示。

图5. 机箱上的模块布局路由数据通过主机控制器. 表2列出了给定控制器的PCI Express 开关或芯片的最大带宽。需要注意的是这些数字表示进出控制器某一部分的总带宽。如果每一部分同时存在多个点对点数据流,则数据流共享带宽。
控制器 | 开关之间的最大速率 | 备注 | NI PXIe-8135 | >800 MB/s | | NI PXIe-8133 | >800 MB/s | | NI PXIe-8130 | >600 MB/s | 受芯片限制 | NI PXIe-8106 | >800 MB/s | 不支持第四连接 (NI PXIe-1075 和 NI PXIe-1082机箱 最右边开关的引入/引出) | NI PXIe-8105 | 接近800 MB/s | 受开关限制 | NI PXIe-8101/02/08 | 不支持 | 开关后面的P2P仍然工作 | NI PXIe-8370 | 接近800 MB/s | 受开关限制 | NI PXIe-8375 | >800 MB/s | |
表2. PXI Express 控制器的 P2P带宽
模块
如果机箱和控制器配置支持某一特定的带宽,PXI Express模块本身就能决定可实现的最大带宽。下面是各种可支持P2P设备的基准性能和配置详情。
NI PXIe-7975R NI FlexRIO FPGA模块: 这款PXI Express NI FlexRIO FPGA模块能够以高达1.5 GB/s的速率双向传输数据。数据流的数量及其带宽取决于设备上FPGA的配置和编程。
NI PXIe-7966R, NI PXIe-7965R, PXIe-7962R, PXIe-7961R NI FlexRIO FPGA 模块: 这些PXI Express NI FlexRIO FPGA模块能够以高达800 MB/s的数据传输模块的数据。当两个方向同时传输,FPGA模块能达到单方向超过700 MB/s的速率,或超过1.4 GB/s的集合数据速率。数据可能包含单个数据流,最多可达16个独立的数据流,每一个数据流对应设备的一个DMA通道。数据流的数量及其带宽取决于设备上FPGA的配置和编程。
NI PXIe-5622 IF 数字化仪: NI PXIe-5622是一种150 MS/s, 16-bit的数字数字化仪,能以高达300 MB/s的速率产生数据。对于点对点数据流来说,该数字化仪有一个单独的写入端点,位于与板载内存的并行数据通路上。您可以将采集到的数据写入这个端点以传输到FPGA目标,并同时通过板载内存将数据传送到主机。NI PXIe-5622的一个重要特征是采用正交数字下变频(DDC)的板载信号处理(OSP),它能以75 MS/s或 250 MB/s的复合I/Q数据形式提供高达60 MHz的IF带宽。在这种模式下,点对点数据流的采样隔行扫描选取样本,采用先I采样后 Q采样的方法。

图6. 采用 NI PXIe-5622 IF数字化仪的点对点数据流 点对点数据流以原始的二进制格式传输,不包括换算和校准。NI-SCOPE可以查询归一化的系数并将其用来校准二进制数据而不必换算成伏特值。归一化的数据符合以下规律,所以您后续可以翻译这些二进制信息或将其换算成伏特。
. 最大的正二进制值对应纵向值域的最大正向电压。
. 最大的负二进制值对应纵向值域的最大反向电压。
. 纵向值域被均匀划分以对应可能的二进制值。
或者,您可以在一个单独的步骤查询并应用缩放系数来校准和缩放数据。请参考高速数字化仪帮助获得更多细节。
NI PXIe-5122 高分辨率数字化仪: The NI PXIe-5122是一种100 MS/s,双通道,14-bit的数字化仪,能以每路每流200 MB/s的速率产生数据。对于点对点数据流,该数字化仪具有两个写入端点,位于与板载内存并行的数据通路上。您可以将采集的数据写入这些端点,并将其通过板载内存传送到主机。

图7. 采用NI PXIe-5122高分辨率数字化仪的点对点数据流 表3展示了有效的流配置实例

表3. 有效的流配置 请注意,配置模块来生成数据的速率如果超过了PXI Express x4总线的带宽,有可能引起数据溢出。例如,当采样全速运行(共800 MB/s)时,表3的最后一个配置将达到每流400 MB/s的速率。如果您再将数据传送到主机PC,则速率将超出总线带宽。降低数字化仪的采样率能避免数据溢出。
5. 校准
点对点数据流以原始的二进制格式传输,不包括换算和校准。NI-SCOPE可以查询归一化系数并用来校准二进制数据而不必换算成伏特值。归一化的数据符合以下规律,以便您日后解释这些二进制信息或将其换算成伏特值。
. 最大的正二进制值对应纵向值域的最大正向电压。
. 最大的负二进制值对应纵向值域的最大反向电压。
. 纵向值域被均匀划分以对应可能的二进制值。
注意:即使用户指定了NI-SCOPE的纵向值域是±10 V,最大和最小二进制值仍为 NI-SCOPE编程的纵向值域 (如 ±11 V)。这样操作的目的是为了捕获过冲电压,无论用户是否将值域设置为小于过冲电压。
6. 可支持设备
以下是支持P2P数据流的NI硬件列表:
机箱 | | | NI PXIe-1062Q | | NI PXIe-1065 | | NI PXIe-1071 | | NI PXIe-1073 | | NI PXIe-1075 | | NI PXIe-1078 | | NI PXIe-1082 | | NI PXIe-1085 | 控制器 | | | NI PXIe-8135 | | NI PXIe-8133 | | NI PXIe-8130 | | NI PXIe-8105 | | NI PXIe-8106 | 远程控制器 | | | NI PXIe-PCIe-8375 | | NI PXIe-PCIe-8371/8372 | | NI PXIe-PCIe-8361/8362 | 函数发生器 | | | NI PXIe-5450 (Rev. C and later) | | NI PXIe-5451 | 示波器/数字化仪 | | | NI PXIe-5122** | | NI PXIe-5622** | RF信号分析仪 | | | NI PXIe-5663* | | NI PXIe-5663E* | | NI PXIe-5665* | | NI PXIe-5644R | RF信号发生器 | | | NI PXIe-5673* | | NI PXIe-5673E* | | NI PXIe-5644R | NI FlexRIO FPGA模块 | | | NI PXIe-7961R | | NI PXIe-7962R | | NI PXIe-7965R | | NI PXIe-7966R | | NI PXIe-7975R |
表 4. NI可支持P2P的硬件
* 以上提到的射频信号分析仪由三个部分组成:射频下变频器、本地振荡器和数字化仪。数字化仪用于实现P2P流。射频信号分析仪使用的数字化仪是PXIe-5622。同样,任意波形发生器实现执行射频信号发生器的P2P数据流。
**PXIe-5122和PXIe-5622的固件版本必须为当前最新的版本才能实现P2P流技术,方法与NI-SCOPE 3.6一样。按照NI-SCOPE 3.6自述文件中的步骤学习如何更新PXIe-5122和PXIe-5622设备上的固件。 |