当前位置: 首页 > article >正文

LabVIEW编程开发NI-USRP

LabVIEW编程开发NI-USRP

可编程性是SDR的关键特性,它使人们能够将无线电外围设备转换为先进的无线系统。USRP是市场上最开放、最通用的SDR,可帮助工程师在主机和FPGA上使用各种软件开发工具构建系统。

有多种选项可用于对基于SDR的系统的主机进行编程。

使用NI-USRP驱动程序在LabVIEW上编程

LabVIEW是一个图形化数据流编程环境,非常适合设计和实现通信算法。在最基本的层面上,LabVIEW使用NI-USRP驱动程序来指定USRP硬件配置,并发送和接收正确格式化的基带I/Q数据,以便进行主机端信号处理。

如果LabVIEW是您首选的开发环境,应该注意的是,尽管它确实支持一些基于Linux的操作系统,但它主要是基于Microsoft Windows的工具。此外,某些EttusResearch品牌的USRP型号和配置可能不受支持。

使用LabVIEW和NI-USRP驱动程序API在EttusResearch USRP上进行编程

使用开源工作流程进行编程:USRP硬件驱动程序(UHD)和GNU Radio

许多SDR用户更喜欢使用基于C/C++和Python构建的基于文本的开源工具流对USRP硬件进行编程。所有NI和EttusResearch USRP模型都支持USRP硬件驱动程序(UHD),可轻松集成到GNU Radio等开源社区开发的工具。

GNU Radio是一个专为SDR开发人员构建的开源工具。虽然USRP不是GNU Radio支持的唯一无线电,但它是最受欢迎和测试最多的。

使用MATLAB编程

如果MATLAB是您首选的编程工具,则Math Works Communications Toolbox™支持多个USRP模型。支持的型号包括B200、B200mini、X300、N200和N300系列。此外,工程师可以使用MATLAB脚本节点将MATLAB代码直接嵌入到LabVIEW中。

FPGA编程注意事项

许多USRP都配备了具有足够可用容量的大型FPGA,允许用户嵌入特定于其应用的在线信号处理。如硬件部分所述,一些USRP配备了XilinxZynqSOC器件,而另一些则配备了传统的架构FPGA,如Kintex7。可通过两种方式访问USRP上的FPGA:LabVIEW FPGA和RF片上网络(RFNoC)框架。

与许多FPGA开发板或COTSFPGA板不同,USRP建立在通用FPGA框架上,并提供更高级别的抽象。这消除了从基本FPGA板级支持包构建基于FPGA的系统时遇到的一些复杂性。

LabVIEWFPGA

LabVIEWFPGA是LabVIEW的附加扩展,可在NIUSRPRIO设备上对FPGA进行图形化编程。虽然必须熟悉定点数学和时钟逻辑等FPGA概念,但LabVIEW可抽象化硬件和数据接口,并简化寄存器配置和数据移动。LabVIEW FPGA的一个优势是能够使用统一的开发工具链对主机和FPGA进行编程。

是否有想要利用的传统IP?LabVIEW FPGA可以通过组件级IP(CLIP)节点导入外部VHDL或Verilog,从而允许导入非LabVIEWI P。此外,LabVIEW还允许专业用户直接在Vivado工具中导出XilinxVivado项目。

如果LabVIEWFPGA是首选的主机编程工具,请注意,它仅限于基于Windows的操作系统。LabVIEW或LabVIEW FPGA不支持许多Ettus Research设备,例如USRPN300和USRPE300系列。

简单的LabVIEWFPGA功能框图

射频片上网络(RFNoC)框架

对于开源USRP用户,对FPGA进行编程的首选方法是通过RFNoC框架。RFNoC与LabVIEWFPGA一样,是一个数据接口和命令抽象框架,可简化向USRP添加IP的过程,而不必从头开始重新构建整个FPGA板卡支持包。顾名思义,数据以压缩头网络包的形式从无线电流经FPGA。RFNoC框架的核心是一个交叉接口,允许用户简单地将新IP插入交叉连接,并将数据路由到其他IP块或与主机之间的数据。这种网络横杆设计消除了在主机之间传递数据和命令的复杂性。

这是LabVIEW的一个功能介绍,更多的使用方法与开发案例,欢迎登录官网,了解更多信息。有需要LabVIEW项目合作开发,请与我们联系。详细介绍参见附件。

厂家没有提供LabVIEW的例子。根据通讯协议的相关的说明,编写了适合项目的程序。程序截图如下所示。

相关资料说明,如下所示。

LabVIEW程序,如下附件所示。


http://www.kler.cn/a/133049.html

相关文章:

  • 蓝桥杯-洛谷刷题-day3(C++)
  • 利用OpenAI进行测试需求分析——从电商网站需求到测试用例的生成
  • [Codesys]常用功能块应用分享-BMOV功能块功能介绍及其使用实例说明
  • unittest和pytest
  • Spring Boot 中 Druid 连接池与多数据源切换的方法
  • 深入理解 source 和 sh、bash 的区别
  • vue-router的编程式导航有哪些方法?
  • 【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷B
  • 机器视觉系统选型-定光照强度
  • 虹科示波器 | 汽车免拆检修 | 2021款广汽丰田威兰达PHEV车发动机故障灯异常点亮
  • 深入了解PHP中的经典一句话木马和变量传递漏洞
  • Lstm+transformer的刀具磨损预测
  • 长虹智能电视使用123
  • Docker 可视化面板 ——Portainer
  • Spring+Mybatis整合
  • 大数据-之LibrA数据库系统告警处理(ALM-12052 TCP临时端口使用率超过阈值)
  • 解决 uniapp 开发微信小程序 不能使用本地图片作为背景图 问题
  • C语言编程陷阱(八)
  • 解决:ERROR: No matching distribution found for PIL
  • milvus数据库-查询
  • nodejs微信小程序-慢性胃炎健康管理系统的设计与实现-安卓-python-PHP-计算机毕业设计
  • pdf如何让多张图片在一页
  • HTML 超链接 a 标签
  • Django的可重用HTML模板示例
  • 交通 | 神奇动物在哪里?Operations Research经典文章
  • 2023年道路运输企业主要负责人证考试题库及道路运输企业主要负责人试题解析