主要内容

5G NR MIB恢复(模拟设备AD9361/AD9364)

本示例展示如何从NR HDL下行链路接收机MATLAB参考(无线HDL工具箱)本例是针对Analog Devices AD9361/AD9364无线电平台的硬件-软件(HW/SW)协同设计实现。使用此实现,您可以从空中5G NR波形执行MIB恢复。

有关支持的无线电硬件平台的列金宝app表,请参见硬件支持金宝app.由于硬件资源有限,本例不支持Avnet ZedBoard和FMCOMMS2/3/4。金宝app

简介

本例将MIB恢复算法部署为针对Analog Devices AD9361/AD9364无线电平台的硬件-软件(HW/SW)协同设计实现。这个例子是一个相关的集合,更多信息见NR HDL参考应用概述(无线HDL工具箱)

该图展示了MIB恢复算法的概念概述。

  • SSB检测器和SSB解码器执行检测、解调和解码5G NR同步信号块(SSB)所需的高速信号处理任务。这使得这些部件非常适合在无线电平台的可编程逻辑(PL)上实现FPGA。为了在PL中实现检测器和解码器,该示例使用了Simulink硬件模型的模型引用金宝appNR HDL单元搜索(无线HDL工具箱)而且NR HDL MIB恢复(无线HDL工具箱)分别参考例子。

  • 搜索控制器协调探测器和解码器硬件核心的操作,并以较低的速率运行。这使得搜索控制器非常适合在无线电平台的集成ARM®处理系统(PS)上进行软件实现。示例中描述的搜索控制器算法NR HDL下行链路接收机MATLAB参考(无线HDL工具箱)的例子。

设置

要使用HW/SW协同设计工作流,您必须安装和配置额外的支持包和第三方工具。金宝app有关更多信息,请参见硬件-软件协同设计的安装

硬件生成模型

该Simu金宝applink模型是针对SDR平台的SSB检测器和SSB解码器组合的硬件生成模型。从这个模型,您可以为PL生成HDL代码,并使用HDL Workflow Advisor生成软件接口模型模板。使用模板软件接口模型,您可以生成一个运行在PS上的应用程序,这个图显示了硬件子系统和一个简单的测试装置。

打开模型

5G MIB恢复HDL子系统采用MIB恢复模型NR HDL MIB恢复(无线HDL工具箱)示例,并添加了额外的功能,以集成模型与Zynq®硬件架构。

报告序列化器的5个数值生成主同步信号(PSS)报告pssNCellID2pssFrequencyOffsetpssTimingOffsetpssCorrelationStrength,pssSignalThreshold

自定义分组MATLAB®函数块格式PSS报告为自定义数据包格式。这允许通过DMA接收器发送到运行在ARM PS上的搜索控制器。每个标准大小的数据包由最多48个PSS报告和一个定义数据包中有效报告数量的条目组成。

模拟硬件生成模型

为了确认基本操作,您可以使用合成的5G NR波形运行硬件生成模型。方法生成波形nrhdlexamples.generateFR1RxWaveform函数。模型在初始化回调中调用此函数,并将波形分配给工作空间变量burstWaveform.你可以在里面找到初始化回调>模型设置>模型属性>回调> InitFcn.由于模型包含大量的hdl优化块,需要使用基于样本的信号进行模拟,因此完整的模拟可能需要一段时间。

您可以使用测试工具模拟硬件生成模型。为了模拟RF前端,测试线束使用生成的5G NR波形作为输入。通过双击手动切换块,您可以在搜索模式或解调模式中切换模拟模型。在搜索模式下,模型达到detectionStatus状态3,这意味着发现了PSS。搜索为找到的每个PSS生成一个PSS报告。这些报告被零填充到244项,并记录到MATLAB工作空间。在解调模式下,模型达到detectionStatus州8表明SSB被解调,并且发现了它的二次同步信号(SSS)。一旦detectionStatus到达州8时,模型开始处理MIB。bchStatus状态4表示MIB恢复成功。该模型还将解调后的OFDM网格在MATLAB工作空间中作为960个条目(240个子载波的4个符号)的变量返回。此外,该模型还返回零填充的244项PSS报告。

当硬件子系统的仿真行为令人满意时,就可以开始生成HDL IP Core,将其与SDR参考设计集成,并为ARM处理器生成软件。

生成IP核

控件启动目标工作流5G MIB恢复HDL子系统与选择HDL代码> HDL工作流顾问

  • 在步骤1.1中,选择IP核生成工作流和适当的Zynq电台平台:Adi rf somZC706和FMCOMMS2/3/4ZCU102和FMCOMMS2/3/4,或ZC706和FMCOMMS5.由于硬件资源有限,本例不支持ZedBoard和FMCOMMS2/3/4。金宝app

  • 在步骤1.2中,选择接收路径参考设计。对于本例,您可以使用默认的参考设计参数。

  • 在步骤1.3中,接口表将DUT信号映射到参考设计中可用的接口信号。因为本例使用单个通道,所以配置通道1连接和AXI注册接口,如图所示。

  • 在步骤1.4中设置DUT合成频率。DUT合成频率取决于系统的基带采样率。本例中的MIB恢复算法实现是为61.44 MHz的采样率值构建的。

  • 步骤2通过执行设计检查为HDL代码生成准备模型。

  • 步骤3生成IP核的HDL代码。

生成软件接口模型和块库

HDL Workflow Advisor的步骤4将新生成的IP核集成到Zynq SDR参考设计中,生成相应的比特流,并将比特流加载到板上。

步骤4.2生成软件接口库和软件接口模型模板。

软件接口库

类生成的AXI Interface块5G MIB恢复HDL子系统和与步骤1.1中选择的硬件相对应的接收器块。接收块的数据端口代表FPGA用户逻辑和ARM处理器之间的DMA接口。DMA接口用于在一次解调尝试后将四个解调OFDM符号传输到ARM处理器。每个符号由240个子载波组成,因此帧大小设置为960。

为了将SSB网格从MIB恢复算法(运行在硬件上)流到搜索控制器算法(运行在软件上),该模型利用了一个AXI4-Stream接口。的AXI4-Stream IIO读取(Xilinx Zynq平台嵌入金宝app式编码器支持包)在软件接口模型中实现AXI4-Stream接口的块不在模板或库中生成。必须从Simulink中添加块金宝appXilinx Zynq平台的图书馆浏览器>嵌入式编码器支持包金宝app图书馆。

在下游模型中使用库块时,必须为应用程序正确配置参数。考虑到任何更新5G MIB恢复HDL子系统被自动传播到下游模型中的库块中,当您再次运行步骤4.2时。

模板软件接口模型

您可以使用生成的模板软件接口模型作为完整软件目标的起点,例如,外部模式模拟,或完全部署。因为HDL Workflow Advisor每次运行步骤4.2时都会覆盖生成的模型,所以考虑将生成的模型保存在唯一的名称下,并在那里开发软件算法。

生成和加载比特流

HDL Workflow Advisor的最后一步为PL生成一个比特流,并将比特流下载到电路板上。

  • 步骤4.3为PL生成一个比特流。您可以在外部shell中通过选择执行该步骤在外部运行构建过程.此选择允许您在构建FPGA映像时继续使用MATLAB。一旦完成了一些基本的项目检查,步骤4.3将被标记为绿色复选标记。但是,必须等到外部shell显示成功的位流构建后才能继续下一步。

  • 步骤4.4下载比特流到设备上。在继续此步骤之前,通过调用函数,确保MATLAB已设置为无线电硬件的正确物理IP地址zynq函数。

>> devzynq = zynq(“linux”“192.168.3.2”“根”“根”“/ tmp”);

默认情况下,无线硬件的物理IP地址为192.168.3.2。如果在硬件设置过程中更改了无线电硬件IP地址,则必须提供该地址。

或者,如果您想在HDL Workflow Advisor外部加载位流,请创建SDR无线电对象并使用downloadImage函数。要创建的无线电对象取决于步骤1.1中选择的无线电平台。

  • 如果所选的无线电平台是其中之一Adi rf somZC706和FMCOMMS2/3/4,或ZCU102和FMCOMMS2/3/4,创建AD936x无线电对象。

>> radio = sdrdev(“AD936x”);
  • 如果选择的无线电平台为ZC706和FMCOMMS5,创建一个FMCOMMS5无线电对象。

>> radio = sdrdev(“FMCOMMS5”);

使用与所选无线电设备接口的无线电对象下载比特流。

> > downloadImage(广播,“FPGAImage”...“hdl_prj \ vivado_ip_prj \ vivado_prj.runs \ impl_1 \ system_top.bit '生成的比特流的路径

5G NR MIB恢复软件接口模型

5G NR MIB Recovery接口模型基于生成的软件接口模板模型。模型协调MIB恢复,如NR HDL下行链路接收机MATLAB参考(无线HDL工具箱)的例子。的单元格搜索控制器块中使用AXI4-Lite和AXI4-Stream接口来控制已部署的硬件模型MIB复苏子系统。

计算Lmax子系统根据无线电的中心频率确定Lmax的值。

UDP发送网格UDP发送PSS报告UDP发送SSS报告,UDP发送MIB报告各子系统通过UDP协议将解调后的OFDM网格数据、PSS报告、SSS报告和MIB报告分别转发给主机。

的模型已配置Xilinx Zynq-7000基板目标。对象可以使用此目标Adi rf somZC706和FMCOMMS2/3/4/5广播平台。为ZCU102和FMCOMMS2/3/4无线电平台,您必须通过选择重新配置模型Zynq UltraScale+ MPSoC ZCU102 IIO无线电型号设置(Ctrl+E) >硬件实现>硬件板或通过双击提供的选择硬件板目标块。

打开模型

您可以使用来自软件接口模型的作用域来监视硬件和软件。的算法的范围绘制单元格搜索算法的进展。周期性的软件启动信号开始每个操作。然后控制器指示PL在搜索模式下(硬件模式0)对每个粗频步长和子载波间距执行SSB检测。作用域显示如何为每次搜索尝试设置频率偏移和子载波间距信号,以及如何脉冲硬件启动信号以开始。软件根据检测到的ssb的PSS相关强度和剩余的细频偏量,选择粗频偏量和子载波间距。然后结合粗频率和细频率校正进行最后的搜索。接下来,启动demod模式(硬件模式1)操作。这尝试从先前的搜索中重新获得最佳SSB,解调资源网格,并从SSS序列中计算单元ID。一旦detectionState达到8,硬件对SSB进行解码。的decodingState然后到达状态4,表示解码成功。有关该算法的详细信息,请参见NR HDL下行链路接收机MATLAB参考(无线HDL工具箱).在某些情况下,硬件状态的变化可能快于axis - lite寄存器的轮询。

PS有大量的数据可供分析,本例中使用报告而且MIB作用域显示所选的附加信息。要查看感兴趣的信号,可以自定义数据记录区域。为了进一步研究,您可以添加后处理子系统来执行返回信号的实时分析。

在Zynq板上运行设计

运行5G NR MIB恢复软件接口模型监视和调优模式。在此模式下,您可以从Simulink模型控制配置。金宝app或者,单击,将设计部署到与Simulink断开连接的板上金宝app构建、部署和启动

本例的默认中心频率是3560 MHz。您可以通过使用开关调节中心频率中心频率常数。

启动/重启脉冲发生器Block以0.6秒的周期重置单元格搜索控制器算法。

主机接口模型

ARM将解调后的OFDM网格数据、PSS报告、SSS报告和MIB报告通过以太网链路直接发送回主机,使用UDP发送块。UDP发送块的IP地址必须是主机的IP地址,默认为192.168.3.1。如果在硬件设置过程中更改了IP地址,则应该提供该地址。

这个运行在主机上的接口模型说明了如何从硬件平台接收数据以及如何对其进行后处理。您可以使用摇杆开关在MIB恢复后自动停止模型或无限期接收之间进行选择。

打开模型。

当主机接口模型运行成功时,该模型将显示接收到的PSS和SSS的信噪比(以dB为单位)、cell ID以及恢复后的MIB的内容。当模型持续运行时,MIB计数会随着每一次成功恢复而递增。

为了进一步处理,该模型还将四个时间序列变量导出到MATLAB工作空间:sl_gridsl_pssReportsl_sssReport,sl_mibReport

进一步的探索

如果您所在的位置无法接收到强5G信号,请考虑使用transmitRepeat函数。为了检测SSB并通过合成波形恢复MIB,需要确保与载频相关的参数(如SSB子载波间距、SSB块模式、Lmax和最小信道带宽)与软件接口模型中设置的载频匹配。

生成5G波形[tx波形,~,~]= nrhdlexample . generatefr1rx波形(“SimCase 1”);为基于ad936x的无线电硬件创建一个发射器系统对象,并设置所需的无线电设置。Tx = sdrtx(“AD936x”“CenterFrequency”3560 e6,“BasebandSampleRate”, 61.44 e6,“IPAddress”“192.168.3.2”);将波形发送到无线电并反复发送。transmitRepeat (tx txWaveform);

主机接口模型将解调后的OFDM网格数据返回到MATLAB工作空间。如果你有很强的信号,考虑绘制这个网格。例如:

gridFormatData = squeeze(sl_grid.Data);y =重塑(gridFormatData(:,1),[240,4]);gridData = double(abs(y));OFDMGridFigure = figure(“名字”“OFDM网格”);Axes1 =轴(“父”, OFDMGridFigure);持有(axes1“上”);显示亮度图像(gridData“父”axes1,“CDataMapping”“缩放”);ylabel (副载波的);包含(OFDM符号的);标题(5G NR OFDM解调网格);盒(axes1、“上”);轴(axes1“ij”);持有(axes1“关闭”);集(axes1,“层”“高级”...“XTick”,[1 2 3 4],“YTick”,[1 40 80 120 160 200 240],...“Xlim”[0.5, 4.5],“YLim”, [1,240]);colorbar (axes1“位置”...[0.92 0.11 0.01 0.82]);

相关的话题