Loopback Test
- 使用 10Gb SFP+ 线缆连接 USRP RIO 的 Port 1 和 Port 0。使用 MXI x4 线缆连接 USRP RIO 和 PC。此时看到 USRP RIO 的两个 SFP+ 接口绿色 LED 都是亮起的,橙色 LED 不处于常亮状态。
- 打开Getting Started (Loopback Test).vi。在程序的前面板做如下配置:
- 将 resource name 改为 USRP RIO 在 NI MAX 中的设备名称。
- TX Instance 和 RX Instance 分别为 0, 1 或 1, 0(只要不是同为 0 或 1 即可)。
- 将 RX IP Address 和 TX IP Address 设为相同的值。
- UDP Destination Port 的值不需要进行改动。
- 点击运行,该程序没有设计连续运行,如果需要连续运行,在程序框图自行增加循环结构即可。
以下是 Loopback 程序的运行架构。PC 通过 PCIe 将长度为 256 的数据传输给FPGA端,FPGA TX 部分的代码将data 从 DMA FIFO 中取出并通过 UDP 发送。FPGA TX 部分的代码通过 UDP 接收 data,并将其通过 DMA FIFO 上传至 PC 端并进行显示。由于 TX 和 RX 共用一个 UDP Destination Port,所以无需在前面板上特意修改该参数。且由于 PC 端和 USRP RIO 之间不存在网络通信,所以 IP 地址可以填写符合规范的任意值(如1.1.1.1)。
RX on FPGA
- 使用 10Gb SFP+ 线缆连接 PC 与 USRP RIO 的 Port 0 (或Port 1)。使用MXI x4线缆连接USRP和PC。此时看到USRP用于连接 PC 的 SFP+ 接口绿色 LED 都是亮起的,橙色LED 是熄灭状态。PC 上的 10Gb 以太网卡(此处使用Intel X520 NIC)连接 USRP RIO 的绿色 LED 灯亮起。下图仅展示将 USRP RIO 的 Port 1 与 PC 相连。
- 在PC端的命令行中输入 ipconfig 命令来查询 10Gb 以太网卡的IP地址。Intel X520 NIC 有两个 10Gb 以太网接口,仅使用一个接口连接 USRP RIO 时,另一个接口会显示“媒体已断开连接”。此处我是用以太网适配器 以太网 6 连接 USRP RIO 的 SFP+ Port 1.
- 打开 Getting Started (RX on FPGA).vi。在程序框图的前面板中做如下配置:
- 将 resource name 改为 USRP RIO 在 NI MAX 中的设备名称
- RX Port 选择为 1(如果使用 SFP+ Port 0 进行连接,则该参数为 0)
- 将 Local IP Address 改为 169.254.23.224。由于此处的 Local IP Address 指的是 USRP RIO 的 IP 地址,所以需要将 ipconfig 中得到的 PC 端的 IP 地址尾数 +1,即 169.254.23.(223+1)。
- MAC Source Address 和 UDP Destination Port 无需做更改。
- 打开 NI Example Finder,搜索 “UDP”,找到 Simple UDP.lvproj。打开其中的 Simple UDP-Sender.vi。
- 进入程序框图,将地址修改为与 Local IP Address 相同,此处为为 169.23.224。将远程端口修改为与 UDP Destination Port 相同,即 35311。之后运行 Simple UDP-Sender.vi 和 Getting Started (RX on FPGA).vi。
以下是 RX on FPGA 程序的运行架构。PC 获取 FPGA 引用调用 USRP RIO 中 FPGA 的程序(即
TenGbE_FPGA.vi)。PC 通过
Simple UDP-Sender.vi 这个程序不断向指 USRP RIO 所在的IP地址发送数据。FPGA RX 部分的代码通过 UDP 接收该数据,并将其通过 DMA FIFO 上传至 PC 端并进行显示。此时需注意:
- Simple UDP-Sender.vi 和 Getting Started (RX on FPGA).vi 使用的是同一个 UDP Destination Port。RX 程序中,FPGA 抓取 UDP Destination Port 地址上的 UDP 数据。所以在配置 Sender 时,需要把 Sender 的destination 设置为与 RX 的 Destination 一致。
- 由于在 RX 程序端,Local IP Address 指的是 USRP RIO 的 IP Address,所以不能直接使用 ipconfig 获取的 IP 地址。
- 如果连接 Port 1,则 RX 程序面板上CLIP state 中的 signal_detect_Port1 和 aBlockLockPort1 会亮起。如果将 Port 1 和 Port 0 都连接 PC,则 CLIP state 中四个 LED 都将亮起,无论该 SFP+ 是否参与 UDP 数据传输。
TX on FPGA
- 硬件连接与运行 Getting Started (RX on FPGA).vi 时相同。下图仅展示将 USRP RIO 的 Port 0 与 PC 相连。
- 在PC端的命令行中输入 ipconfig 命令来查询 10Gb 以太网卡的 IP 地址。此处我是用以太网适配器以太网 7 连接USRP RIO 的 SFP+ Port 0.
- 打开 Getting Started (TX on FPGA).vi。在程序框图的前面板中做如下配置:
- 将 resource name 改为 USRP RIO 在 NI MAX 中的设备名称
- RX Port 选择为0(如果使用SFP+ Port 1 进行连接,则该参数为 1)
- 将 Local IP Address 改为169.254.70.153,Dest IP Address 改为 169.254.70.152。由于此处的Local IP Address 指的是 USRP RIO 的 IP地址,所以需要将 ipconfig 中得到的 PC 端的 IP 地址尾数+1,即 169.254.23.(223+1)。Dest IP Address 即 PC 的 IP 地址。
- TX 程序没有设计连续运行,如果需要连续运行,在程序框图自行增加循环结构即可。
- 打开 Simple UDP-Receiver.vi,进入程序框图,接收方端口修改为与 UDP Destination Port 一致,即 35311。之后运行 Simple UDP-Receiver.vi 和 Getting Started (TX on FPGA).vi。
以下是
Getting Started (TX on FPGA).vi 程序的运行架构。PC 获取 FPGA 引用调用 USRP RIO 中 FPGA 的程序(即
TenGbE_FPGA.vi )。PC 通过 DMA FIFO 不断向 USRP RIO 传输数据,并将该数据通过 UDP 的方式发送至 UDP Destination Port。PC 端运行的 Receiver 不断从接收方端口接收该数据,并在 PC 端显示。