NI矢量信号收发器的FPGA编程
1. 介绍
NI VST FPGA软件包含多层代码,提供了从底层控制到高层抽取的一切,拥有RF信号分析仪和RF信号发生器的功能。底层组件实现了具体硬件的标准功能,包括信号校准、前端控制,以及基于记录的采集和生成,被称为仪器设计库。这些库提供了互相匹配的主机和FPGA代码对,并且可以聚集以构建完整的硬件设计。LabVIEW项目样例包含了基于仪器设计库的相关主机和FPGA代码,提供了开发各种应用所需要的模板。另外,NI-RFSA和NI-RFSG仪器驱动还支持VST仪器驱动FPGA扩展,使VST FPGA源代码完美适合具体应用。
2. 仪器设计库
NI提供矢量信号收发器所用的多种仪器设计库。如上文所述,这些仪器设计库存在于用户和生产厂商的关于主机端和FPGA的代码中,,实现了仪器的常见功能。表2列出了一些顶层仪器设计库及其功能。
表1. NI VST所用顶层仪器设计库。
ni.com/vst/getting-started/zhs/所列软件安装了这些仪器设计库,在硬盘的c:\Program Files\National Instruments\LabVIEW [version]\instr.lb\位置。这些库具有颜色和谐的粗边框,与其他VI明显有别。
图1:仪器设计库具有颜色和谐的粗边框,此独特图标使其与其他VI相区别
另外,这些库在默认情况下处于锁定状态,用户在修改内容之前,需要先通过会话框将VI解锁。下文所述是使用这些仪器设计库的详细信息,适用于任何更改。
在给定仪器设计库的主机与FPGA之间交换数据可采用多种机制。所有采用LabVIEW RIO架构和LabVIEW FPGA的NI产品均使用NI-RIO驱动,此驱动提供了单点方式的、存储器映射、基于寄存器的主机至FPGA以及FPGA至主机通信,还有从主机至FPGA以及FPGA至主机的多点连续DMA FIFO。这些都是功能强大的数据交换机制,实现主机与FPGA之间的有效通信不需要了解或者只要些许了解底层总线架构。
仪器设计库的一个常见要求是:主机代码需要将大量的设置下载到设备中,例如要对与FPGA相连接的芯片寄存器进行编程,或者更新设置组,例如FPGA上的滤波器抽头。由于一些仪器设计库要求采用此策略,并且设备的DMA通道数目有限,所以这些库可能需要共享一个FIFO,从而需要在主机端和FPGA端增加额外的逻辑来实现。另外,对于大数据集来说,此类通信一般为单向,但是可能也需要提供从FPGA至主机的某种单点确认,例如确认所有设置均已成功应用等等。所有这些概念组成为一个单独概念,称为寄存器总线,并为一些仪器设计库所采用。
寄存器总线使用一个主机到FPGA端的DMA FIFO来下载设置,以及一些寄存器/NI-RIO控制器和指示器,用于握手,将单点数据返回主机,或者发出信号,确认已下载设置中的指令已经应用。
图2. 寄存器总线是基于NI-RIO DMA、控制器和指示器构建的轻质协议,实现了大量设置组至FPGA的高效下载,这是给定仪器设计库的主机与FPGA侧之间的常见要求。
为了完成仲裁,每个仪器设计库均有一个独一无二的子系统ID,从而使得多个库能够共享一条寄存器总线。为了更好地总结VST仪器设计库的通信策略,表2说明了每个库所采用的策略。
控制器和指示器 | DMA FIFOs | 寄存器总线 | |
DSP | X | – | – |
RF In | – | – | X |
RF Out | – | – | X |
Basecard | – | – | X |
多记录采集 | – | X | X |
波形序列器 | – | X | X |
触发同步 | X | – | – |
嵌入式配置 | – | – | X |
表2. NI PXIe-5644R仪器设计库的主机与FPGA数据交换机制。
另外,通过与嵌入式配置仪器设计库配合使用,寄存器总线还可以在不牵涉主机的情况下完成FPGA触发的重新配置。
由于仪器设计库代表了卖主与用户代码之间的已定义接口,所以位于主机和FPGA两者的调色板上。在LabVIEW VI方块图的主机情境下,仪器设计库的主机侧接口见于Functions>>FPGA Interface>>NI PXIe-5644R 或者 Functions>>FPGA Interface>>NI PXIe-5645R。在FPGA侧,则位于Functions>>NI PXIe-5644R 或者 Functions>>NI PXIe-5645R下。
VST仪器设计库的主机调色板
VST仪器设计库的FPGA调色板
图3. NI VST仪器设计库的主机和FPGA调色板。FPGA调色板包含了实现常用底层功能的其他仪器设计库
3. LabVIEW项目样例
NI VST仪器设计库的能力强大,但是并不能单枪匹马地完全满足软件设计仪器实现默认功能的要求,也不能提供大多数VSA和VSG仪器编程人员所熟悉的简单主机接口。
LabVIEW 2012提供了一个新功能,这种方便的机制不仅能够分配附加代码,从而提供默认、预编译的功能和一个方便的主机接口,而且还使用户能够轻松地掌握这些代码。
- 基于NI PXI平台的模块化电子战模拟系统(09-25)
- WLAN测试的5要素及提升测试速度的方法(03-10)
- 了解RF仪器规格:第一部(07-24)
- 选用示波器所需考虑的10大要素(07-24)
- EDA环境结合测量软件 大幅缩短电子产品开发周期(12-12)
- 如何使用USRP-2921监测宽带频谱(09-23)