基于数据包的ADS-B收发器

基于数据包的系统,无线通信是常见的。数据被接收在空中并且被解码为计算设备上的离散的分组数据。对于给定的系统要求,也很难设计的系统和SoC的直接实现,因为它往往涉及硬件的调试和集成的长迭代因为硬件效果是很难占到在设计时。在本例中,将设计根据自动相关监视广播(ADS-B)标准,FPGA和嵌入式处理器之间分配基于分组的飞机跟踪应用。不同于传统的方法,你会使用的SoC模块库来缩短开发时间模拟应用程序设计与内存接口硬件实施之前。然后,您将通过从模型自动生成的代码验证的硬件设计。

金宝app支持的硬件平台:

  • 赛灵思Zynq®ZC706评估板+模拟DEVICES®FMCOMMS2 / 3/4卡。

  • ZedBoard™+模拟设备FMCOMMS2/3/4卡。

设计任务和系统要求

按照ADS-B标准的消息分组包含总共具有8位前同步码和关于飞机,包括其位置和速度信息112个比特120个比特。的介绍,该S模式信令方案和ADS-B技术的跟踪飞机,参阅“飞机跟踪使用Matlab”在通信工具箱例子。

我们的任务是设计一个系统接收停播和解码ADS-B的消息与以下性能要求:

  • 延迟:0.5秒

  • 在105个消息<1:下降采样率

  • 吞吐量:0.125 Mbps的(最大300架飞机容量)

设计中使用的SoC模块库

设计参数:数据从FPGA传送到处理器跨越共享存储器作为样本的帧。有两个关键设计参数,外形尺寸为数量的缓冲影响上述性能要求。

  • 外形尺寸为:帧大小的样品中的帧的数目。这将被用于确定在存储器信道的缓冲区大小。

  • 数量的缓冲:内存通道中帧缓冲区的数目。FPGA算法将数据连续写入内存作为帧缓冲器,然后处理器读取帧缓冲器以执行其识别算法任务。

选择设计参数,以满足系统要求如下:

设计,满足时延要求:等待时间是当由FPGA逻辑接收到的数据并将该数据已准备好由所述处理器进行处理之间的时间段。它包括两个部分,通过FPGA逻辑的延迟和等待时间为所述处理器提供给过程数据。

延迟通过FPGA逻辑是用于数据通过FPGA处理所需的时间。这通常是一个数字,在MHz范围内时钟运行的时钟周期的数量级上。所述处理器可用于处理数据的等待时间,由花费样品从FPGA通过FIFO和存储器的帧缓冲器传送到处理器的时间来确定。如果我们大小FPGA FIFO相当于一个帧缓冲器,则最大延迟可被写为如下:

$最大延迟=(NumberOfBuffers + 1)*(TimeToGatherAFrame)$

随着时间收集的帧是成正比的帧尺寸,因此,在数据传输的最大延迟是正比于帧大小和缓冲器的数量。

时间收集的帧是用于连续流应用一个常数并且等于帧大小倍FPGA输出采样时间。然而,对于异步基于分组的系统中,此时间还取决于分组的到达频率。如果你选择的帧大小比包大小,那么你可能要等待一个不确定的时间给大家做一个帧所需的数据包的到来。如果选择与分组大小的分组尺寸更小,那么它会产生不利的影响吞吐量。因此,对于基于异步包系统,帧大小等于分组大小是合理的选择。这允许作为FPGA处理完成,从而减少了等待时间的每个分组传输到处理器尽快。

对于这个例子,在解码的分组长度是112个比特,打包成4个32位样本。所以,帧大小为4。

设计,满足吞吐量的需求:吞吐量是每单位时间输出的数据量。这是FPGA数据处理和处理器数据传输处理的一个功能。对于FPGA逻辑,数据以兆赫数量级的时钟频率进行处理,每隔几个时钟周期产生一个输出。对于处理器的数据传输和处理,它取决于帧的大小。一个典型的折衷是更大的帧大小导致更高的吞吐量,但它增加了延迟。相反,更小的帧大小会导致更低的延迟,但会降低吞吐量。

设计,满足跌落样品要求:应用程序可能容忍由在任务执行的持续时间中的变化偶尔下降的数据。在存储器中的信道保持数据帧缓冲器时,它不能立即被处理器处理。因此,增加帧缓冲区的数目减少了样品辍学,但它与之前说明的延迟产生不利影响。

选择缓冲器的数值,这样你能满足投递样品的要求,而不会影响最大等待时间要求。

对于这个例子,平均任务持续时间,取决于ZC706测得是114us。每个数据包的持续时间是120us。即使数据包到达背靠背,他们可以因为平均处理任务的新的数据包到达之前最少数量的帧缓冲区的处理。所以,设置帧缓冲器的数目到最小可能的,3。

创建SOC模型: 使用SDR模板用于创建无线通信应用的SoC模型。

顶部模型描述与边界框该段的模型如下:

  • 外部I / O:模型的这一部分包含了AD9361 RF输入和输出模块,它们通过一个简化的通道模型相互连接。此外,该区域还有连接FPGA逻辑的LED块。

  • FPGA:该模型的FPGA部分包含其被设计在一个单独的模型,并使用模型参考这里实例化的FPGA算法。

  • 记忆:这部分模型FPGA和处理器之间的存储器通道。它模拟在HW / SW连接的延迟。

  • 注册通道:这部分的模型,由处理器,配置3个FPGA寄存器。

  • 处理器:这部分包含连接到处理器模型的任务管理器。任务管理器控制的处理器任务的调度。处理器算法和初始化任务将被制作成一个单独的模型,并利用模型引用在这里实例化。

FPGA模型包含ADS-B发射机算法其以可变的速率和发送测试ADS-B的报文ads - b接收机算法解码接收到的ADS-B消息。

该处理器模型包含处理器算法解包所接收到的ADS-B数据包成信息比特和通过UDP发送块发送到另一个系统用于报告飞行器信息。处理器算法任务被表示为dataTask在任务管理器块和被指定为事件驱动的。通过异步缓冲准备事件的手段任务管理器调度数据rdEvent在存储器中的信道。

初始化函数子系统初始化适当的硬件配置寄存器。的AD9361块设置的中心频率,增益模式,和附接的FMC RF板的基带采样率。其他块建模ADS-B数据包检测器数据路径的三个存储器映射的配置。这些包括输入到接收器算法,从FPGA的测试数据包,并用于检测算法阈值的发射周期的选择。

该模型soc_ADSB_UDP_HostPrintout是基于UDP的主机接收解码ADS-B消息模型。并行运行该模型的模拟ADSB或显示经解码的消息ADSB部署模型,并且还任选地映射飞机位置。

模拟

运行模型以可视化的FPGA和处理器之间的数据传输。分组的到达之间的时间段是飞机的数目的函数。给定的检测飞机300的系统要求,将有每秒平均300 * 6.2 = 1860的消息(或每一千八百六十零分之一= 0.54毫秒的消息)。您可以使用变量设置飞机数量NumAircraft这反过来又设定了初始化函数子系统。默认设置为300,以匹配允许的系统容量。

打开Logic Analyzer窗口查看波形,注意内存传输是在4个样本(16个字节)的缓冲区中进行的。

要查看外部存储器带宽的使用,打开纪念品控制器块,选择性能选项卡并单击查看性能曲线。选择所有的母版并单击创建图。该图显示的0.125 Mbps的带宽。由于4个字节的数据被转移每32us,预期的带宽是4 / 32E-6 = 0.125 Mbps的。

使用模拟数据检查器,您可以可视化任务执行计划。数据任务由来自FPGA的事件驱动,该事件通知处理器一个数据包已被FPGA解码,写入外部内存,并由DMA驱动程序读取。

要查看解码信息,运行UDP接收模式的伴侣。这种模式将在GUI上显示的飞机跟踪信息。

硬件需求分析

如前所述,由于114us的平均任务持续时间小于120us的包持续时间,因此在传输到处理器的过程中平均不会丢弃消息。这一点可以通过使用信号观察FIFO时丢弃的样本的数量来确认icFIFODroppedCount在仿真数据检查。

该SoC模型可用于探索设计空间。考虑当平面消息被密集地接收,并且有在处理器上更多的计算负荷的最坏的情况。你可以修改模型设定和模拟,并确定数据包在这个更有挑战性的场景是否被丢弃。

设置NumAircraft到990(新的消息每隔163us)来模拟回平面消息的背面到来。修改任务管理器块上的任务规范来模拟处理器更多的计算负荷。在模拟标签中,由第一行上的百分比值设置为在第二行100%和0%选择第二分配。这受让人163us的平均任务持续时间,这将导致一些任务执行时间超过了允许的。设置模拟时间为0.1ms到并模拟。对于990个平面,消息到达速率是每秒990 * 6.2 = 6138的消息。因此,降分组的要求是,每秒一百零五分之六千一百三十八= 58的消息或在0.1秒5.8消息。当在逻辑分析仪模拟的通知,截至18条消息被丢弃这一要求被违反。

落实和硬件上运行

以下产品所需要的这部下载188bet金宝搏分:

要在支持的SoC板上实现该模型,请使用金宝appSoC的构建工具。默认情况下,该模型将上实现赛灵思Zynq®ZC706评估套件因为它被配置成与该板。打开SoC的构建,选择“系统芯片上”在Simulink工具条选项卡,并单击“配置,构建和部署”按钮金宝app。一旦SoC的生成器打开后,按照下列步骤操作:

  • 在“安装”屏幕上选择“建立模型”。点击下一步'。

  • 点击“查看/编辑存储器映射”查看“回顾记忆地图”屏幕上的内存映射。点击下一步'。

  • 指定“选择项目文件夹”屏幕上的项目文件夹。点击下一步'。

  • 选择“选择Build行动”屏幕上“建造,负载和运行”。点击下一步'。

  • 点击“验证”检查模式的兼容性“验证模式”屏幕上实现。点击下一步'。

  • 点击“生成”开始“构建模式”屏幕上的模型的构建。FPGA合成开始时的外部壳将打开。点击下一步'。

  • 点击“连接硬件”屏幕上的“测试连接”来测试主机的支持SoC板的连接。点击“下一步”进入“运行应用程序”屏幕。

该FPGA合成可能需要超过30分钟完成。为了节省时间,您可能希望通过以下步骤来使用所提供的预先生成的比特流:

  • 关闭外壳终止合成。

  • 通过运行下面,然后将命令复制生成的预流到项目文件夹,

  • 点击“加载并运行”按钮来预加载产生的比特流和运行上的SoC板模型

的CopyFile(完整文件(matlabroot,'工具箱''SOC''socexamples'“比特流”'soc_ADSB-zc706.bit''./soc_prj');

实现在ZedBoard:为贯彻落实ZedBoard模型,您必须首先配置模型ZedBoard并设置以下示例参数。打开模型配置参数,导航到硬件实现标签,并执行以下步骤:

  • 选择ZedBoard从顶部和处理器模型下“硬件板”的下拉列表。

  • 导航目标硬件资源>FPGA设计(顶层)选项卡,选中包括MATLAB作为AXI主IP基于主机的交互并集IP核心时钟频率(MHz)为4 MHz。

  • 导航目标硬件资源>FPGA设计(调试)选项卡并启用包括AXI互连显示器

  • 导航设备详细信息并选择金宝app长长的支持关于顶部和处理器型号。

其次,开放性SoC生成器,并按照与先前针对赛灵思Zynq®ZC706表示上述步骤。修改复制文件命令以匹配Zedboard比特流 'soc_ADSB-zedboard.bit'。

性能分析结果

若要启用处理器任务分析,请打开配置参数并导航到硬件实现>硬件板卡设置>关于处理器任务的分析然后选择“在SDI上显示”和“保存到文件”。将仿真停止时间设置为10秒,并在外部模式下运行模型。仿真完成后,打开仿真数据检查器(SDI),导航到最新的运行并添加信号DataReadTask的情节。观察该仿真模型精确地预测了如何应用程序将在硬件上执行。

总结

此实施例表明的SoC模块组是如何用于设计的基于分组的ADS-B标准,以满足系统的要求。通过模拟与存储器信道设计为FPGA和处理器之间界面你验证了吞吐量和丢弃数据包的系统要求在设计时满足。从模型中实现的SoC器件的设计和验证硬件的结果。虽然ADS-B是不计算密集型标准,有用的是证明对于基于分组的系统设计过程中旨在用于SOC器件上实现。您可以按照相同的设计程序,即使该应用程序或其他基于分组的应用更多的计算密集型需求。