ADI/Xilinx SDR快速原型设计平台:其功能、优势和工具

作者:di pu, andrei cozma, and tom hill
无线系统的概念与该工作设计的实现之间存在显着差距。弥合这一差距通常涉及具有各种不同技能集(如rf,sw,dsp,hdl和嵌入式linux)的工程师团队,并且在许多情况下,由于难以协调这些不同设计实体的工作,项目在开发阶段的早期就脱轨了。
在这篇由四部分组成的文章中,我们将研究平台和工具的进步,这些平台和工具允许开发人员快速仿真和原型化无线系统,同时建立和维护可部署的生产路径。作为该过程的真实示例,我们将制作一个无线sdr平台的原型,该平台接收和解码自动相关监视广播(ads-b)信号,使我们能够检测和报告在我们附近飞行的商用飞机的位置,高度和速度。在这种情况下,所需的资源是matlab和simulink以及集成和嵌入硬件/软件的技能。硬件平台将是adi公司/赛灵思软件定义无线电(sdr)原型系统。使用 matlab 和 simulink 将执行以下任务:
用于解码ads-b消息的信号处理算法设计
射频收发器接收ads-b信号的仿真
生成 c 和 hdl 代码
使用目标收发器和 fpga 上的记录和实时数据验证 hdl 代码
最终结果将是运行在具有生产价值的硬件上运行的工作rf sdr设计,我们将将其带到当地机场并验证其性能和功能。
本文由四部分组成,第一部分将讨论adi公司/xilinx sdr原型设计系统、其功能和优势,并简要介绍工具流程。第二部分将回顾自动相关监视广播 (ads-b) 信号,并解释如何在仿真中以 matlab 和 simulink 解码其信息。第三部分将描述和展示如何使用硬件在环 (hil) 和目标收发器捕获信号,但仍在 simulink 中的主机上进行信号处理以进行验证。第四部分将展示如何采用第 2 部分中开发并在第 3 部分中验证的算法,并使用 mathworks 的 hdl coder 和嵌入式编码器生成代码并将其部署到生产硬件中,最后我们将在机场使用真实世界的 ads-b 信号操作该平台。
介绍
随着人们需要通信的方式和方法呈指数级增长,轻松且经济高效地修改无线电设备已成为业务关键。基于这一要求,软件定义无线电技术最近被广泛采用,因为它带来了推动通信发展的灵活性、成本效益和能力。1sdr系统的目的是在软件和可重编程逻辑中尽可能多地实现调制/解调和数据处理算法,以便只需更新软件和可重编程逻辑即可轻松重新配置通信系统,而无需对硬件平台进行任何更改。
随着赛灵思 zynq 等片上系统 (soc) 器件的出现。全可编程 soc 结合了 cpu 的多功能性和 fpga 的处理能力,设计人员可以将 sdr 系统的数据处理功能整合到单个器件中,同时集成额外的处理任务。数据调制/解调算法等处理密集型任务被卸载到器件的可编程逻辑上,而数据解码和渲染、系统监控和诊断以及用户界面等任务则推迟到处理单元。
与此同时,几十年来,无线系统原型设计一直是一个讨论话题,但由于 mathworks 的 matlab 和 simulink 等建模和仿真工具的发展,直到最近几年才演变成 fpga 的完整设计流程——从模型创建到完整实现。无线系统原型设计通过将设计任务从实验室和现场转移到桌面,正在改变工程师和科学家的工作方式。2现在,可以对整个无线系统(如sdr系统)进行建模,使工程师能够观察系统的行为,并在现场实际实施之前对其进行调整。这有几个好处,例如加速系统集成和减少对设备可用性的依赖。此外,一旦 sdr 系统的 simulink 模型完成,就可以自动生成 c 和 hdl 代码,以便在 zynq soc 上实施,从而节省时间并避免引入手动编码错误。通过将系统模型链接到快速原型设计环境,允许sdr系统在现实条件下运行,可以进一步降低风险。
本系列文章由四部分组成,第一部分将讨论adi公司/xilinx sdr快速原型系统、其功能和优势,并简要介绍工具流程。本文展示了adi公司的rf ic技术和参考设计硬件和软件如何降低设计技能子集,从而使客户能够降低风险并缩短上市时间。
zynq 特别提款权
需要先进的 sdr 系统来执行数据处理、通信和用户界面任务的组合,这些任务具有不同的处理带宽要求和实时约束。选择用于实现此类系统的硬件平台必须具有健壮性和可扩展性,同时允许未来的系统改进和扩展。xilinx zynq-7000 全可编程 soc 通过提供高性能处理系统与可编程逻辑相结合来满足这些要求,如图 1.3 所示 可编程逻辑和处理系统的结合可提供卓越的并行处理能力、实时性能、快速计算速度和连接多功能性。
图1.赛灵思 zynq soc 框图。
zynq soc 的处理系统端由双核 armcortex-a9 处理器、neon 协处理器和浮点扩展组成,可加速软件执行。嵌入式linux或实时操作系统可以部署在双核arm处理器上,以充分利用系统的功能。该处理器是独立的,无需配置可编程逻辑即可使用,这对于希望开始并行开发代码的软件开发人员以及将设计fpga结构的硬件开发人员来说是一个关键要素。®®
在可编程逻辑方面,该器件具有多达 444,000 个逻辑单元和 2,200 个 dsp 切片,可提供大量处理带宽,使 zynq 器件能够应对各种具有挑战性的信号处理应用。五个高吞吐量 amba-4 axi 高速互连将可编程逻辑与处理系统紧密耦合,有效带宽相当于 3,000 多个引脚。®4
ad9361 用于sdr的捷变宽带rf收发器ic
近年来,adi公司向市场推出了革命性的sdr产品,以支持不断发展的sdr要求和系统架构。adi公司在该领域最重要的产品是ad9361/ad9364集成rf捷变收发器。ad9361 (2 × 2)5和ad9364 (1×1)6是高性能、高度集成的射频收发器 ic,适用于 sdr 架构中的无线通信基础设施、国防电子系统、rf 测试设备和仪器仪表以及通用软件定义无线电平台等应用。这些器件将射频前端与灵活的混合信号基带部分和集成频率合成器相结合,通过为处理器或fpga提供可配置的数字接口来简化设计导入。这些芯片的工作频率范围为70 mhz至6 ghz,覆盖大多数许可和非许可频段,通过改变采样速率、数字滤波器和抽取,支持低于200 khz至56 mhz的通道带宽,所有这些器件均可在ad9361和ad9364器件中编程。7图2所示为ad9361器件的框图。
图2.ad9361原理框图
为了帮助客户缩短上市时间和整体开发工作,adi公司更进一步,在无缝fpga连接的完整生态系统中提供sdr解决方案,为完整的无线电系统设计提供快速原型设计和开发环境。ad-fmcommsx-ebz 快速开发和原型开发板是一系列高速模拟 fmc 模块,集成了 ad9361 或 ad9364 捷变射频收发器 ic 或可无缝连接到 xilinx fpga 开发平台生态系统的分立信号链。这些电路板完全可通过软件定制,无需任何硬件更改,并附带可下载的linux驱动程序和裸机软件驱动程序、原理图、电路板布局和设计辅助参考资料,所有这些都包含在各自的adi公司wiki站点上。表 1 总结了不同 fmcommsx 平台的功能。
表 1.fmcommsx 平台
平台
  特征
ad-fmcomms5-ebz
  这款sdr快速原型开发板集成了两个ad9361 2×2捷变收发器ic,可为4个接收器通道和4个发射器通道提供完全同步功能,支持创建4×4 mimo系统的任何子集。可容纳 70 mhz 至 6 ghz 和 2.4 ghz 宽带调谐端口。
ad-fmcomms4-ebz
  这款 1 × 1 sdr 快速原型开发板集成了捷变型 rf 收发器 ic,可通过软件配置为在 2400 mhz 至 2500 mhz 区域内实现最高 rf 性能,也可以通过软件配置为在 ad9364 的 70 mhz 至 6 ghz 完整 rf 调谐范围内工作,用于系统原型设计和开发。
ad-fmcomms3-ebz
  这款 2 × 2 版本的 sdr 快速原型开发板集成了捷变型 rf 收发器 ic ad9361,支持 ad9361 的 70 mhz 至 6 ghz 全 rf 调谐范围。该套件非常适合寻求具有广泛调谐功能的统一开发平台的无线通信 sdr 系统架构师。
ad-fmcomms2-ebz
  这款2×2 sdr快速原型开发板集成了ad9361捷变rf收发器ic,经过调谐,可在2400 mhz至2500 mhz范围内实现最高rf性能。该套件非常适合寻求在此定义的rf频谱范围内满足ad9361数据手册规格的优化系统性能的rf工程师。
zynq sdr 快速原型制作平台
参考设计
adi公司与fmcommsx平台一起提供了一个完整的vivado框架,具有linux和裸机软件基础设施,既可用于原型设计,也可用于最终生产系统的一部分。图3显示了adi公司支持fmcommsx板的zynq基础设施。
图3.adi hdl和软件基础设施。
此高级图表显示了 adi 参考设计如何在 xilinx zynq soc 上进行分区。hdmi输出用于在显示器上显示linux接口,而键盘和鼠标可以通过usb 2.0端口连接到系统。arm cortex-a9处理系统运行adi公司提供的ubuntu linux。这包括与adi公司fmcomms硬件(iio示波器)接口所需的linux iio驱动程序。8用于监视和控制的用户空间应用程序,libiio服务器9它允许对 tcp 进行实时数据采集和系统控制,以及远程计算机上运行的客户端,以及包含由嵌入式编码器为控制器的 simulink 模型生成的 c 代码的可选用户应用程序。
软件基础架构
所有adi linux驱动程序都基于linux工业i/o(iio)子系统,该子系统现在包含在所有主线linux内核中。iio scope是由adi公司开发的开源linux应用程序,运行在双arm cortex-a上。9内核位于赛灵思 zynq 内部,能够显示从连接到赛灵思 zynq 平台的任何 adi fmc 卡采集的实时数据。数据可以显示为时域、频域或星座图。支持不同的流行文件格式,如逗号分隔值或.mat matlab数据文件,以保存捕获的数据以供进一步分析。iio示波器提供图形用户界面,用于更改或回读adi公司fmc卡的配置。libiio服务器允许实时数据采集和系统控制传输控制协议(tcp)以及远程计算机上运行的客户端。10服务器在 linux 下的嵌入式目标上运行,并通过 tcp 管理目标和远程客户端之间的实时数据交换。该库抽象了硬件的低级细节,并提供了一个简单而完整的编程接口,可用于高级项目。其模块化架构、精心设计的 api 和内置网络功能允许用户创建应用程序,这些应用程序不仅可以在连接 iio 设备的系统上运行,还可以通过网络远程运行。最初针对linux,现在也可以通过使用库的远程后端在windows下使用。它用c语言编写并在lgpl下授权,具有c#,python和matlab的绑定。mathworks iio 客户端11可作为系统对象集成到本机 matlab 和 simulink 应用程序中。它旨在通过以太网与连接到运行adi linux发行版的fpga/soc平台的adi硬件系统交换数据,使matlab或simulink模型能够执行以下功能:
将数据流式传输到目标或从目标流式传输数据
控制目标的设置
监控不同的目标参数
iio 系统对象在 matlab 和 simulink 中都可用,具体取决于用户是从 matlab 脚本调用它还是将其合并到 matlab 系统块中。adi为fmcomms平台提供的linux软件和hdl基础设施是sdr应用原型设计的绝佳环境,以及mathworks和xilinx提供的工具,它还包含可集成到sdr系统中的生产就绪组件,有助于减少从概念到生产所需的时间和成本。
为了帮助客户快速轻松地使用 iio 系统对象,我们提供了几个基于此接口的 matlab 和 simulink 示例,例如信标帧接收器、12qpsk发射器和接收器,13以及lte发射器和接收器。14在这些示例中,fmcommsx平台由iio系统对象配置,并用作rf前端,通过空中发送或接收模拟信号。这些信号通过iio系统对象流向目标或从目标流出。所有其他信号处理都在 matlab 或 simulink 中进行。图 4 是信标帧接收器示例的屏幕截图,其中显示了 iio 系统对象与其他 simulink 模块之间的典型连接。
图4.信标帧接收器示例的屏幕截图。
mathworks 对 zynq 的支持
mathworks 对基于 zynq 的 sdr 的支持主要来自以下四个方面:
1. ad9361 模拟模型
由于ad9361是一款集成rf收发器芯片,因此无法进行信号探测和内部工作监控。出于这个原因,mathworks和adi公司共同开发了ad9361的simrf™模型,该模型允许对芯片的运行进行仿真,以便客户能够准确了解引擎盖下的情况,以及芯片在不同测试条件下的性能,这些条件在现实生活中难以复制。simrf 提供元件库和仿真引擎,用于使用等效基带或电路包络模块(如放大器、混频器和 s 参数模块)设计射频系统。它是对ad9361 rf收发器进行建模的有用且合适的工具。图5所示的系统级捷变rf收发器ad9361模型完全复制了ad9361的功能,并作为mathworks硬件支持包提供给用户。15
simrf 模型已在实验室中通过功率谱测量进行了验证。确定了收发器在不同频率和功率水平下的噪声和非线性特性。然后设计模型以生成相同的特征,从而在整个设计范围内验证它们。
使用ad9361收发器simrf型号,用户可以执行以下操作:
预测射频缺陷对测试信号的影响
使用参考音和 lte 信号
生成或导入测试矢量,并评估非线性、噪声、增益和相位不平衡、频谱泄漏以及rf发射器和接收器引入的其他缺陷的影响
添加干扰信号并在时域或频域中评估结果
图5.捷变射频接收器ad9361的mathworks simrf模型。
2. 通信和dsp系统工具箱功能
mathworks 产品,如通信系统工具箱,™16信号处理工具箱,™17 dsp系统工具箱,™18和模拟射频19提供行业标准算法和应用程序,用于系统地分析、设计和调整 sdr 系统。所有这些工具都提供了创建高保真sdr模型的方法,这些模型可用于在实际物理实现之前验证通信系统的行为和性能。
3. zynq 的 simulink 工作流程
mathworks 的 matlab 和 simulink 是用于多域仿真和基于模型的设计的环境,非常适合使用通信算法仿真 sdr 系统。通信算法调整增益、频率偏移、定时偏移和其他性能变量,通常是为了在发射器和接收器系统之间实现更好的同步。在进行昂贵的硬件测试之前,使用仿真评估通信算法是确定sdr设计适用性并减少算法开发时间和成本的有效方法。图 6 描述了通过以下步骤设计通信算法的高效工作流程:
使用基于模型的设计环境提供的库构建准确的 sdr 模型。
模拟系统行为以验证系统是否按预期运行。
生成 c 代码和 hdl 以进行实时测试和实施。
使用原型硬件测试通信算法。
一旦通过原型硬件上的仿真和测试证明sdr系统的性能令人满意,就可以安全地将系统实施并将其部署到最终生产系统上。
图6.通信算法设计的工作流程。
4. 同步墨水平台与 zynq sdr 套件的集成
一旦sdr系统在仿真环境中使用嵌入式编码器等工具得到全面验证®20和 hdl 编码器™21从mathworks,用户可以使用嵌入式编码器和vhdl或使用hdl coder生成c代码或verilog,然后将代码部署到原型硬件进行测试,然后部署到最终生产系统上。此时,指定了软件和硬件实现要求,例如定点和定时行为。自动代码生成有助于减少从概念到实际系统实施所需的时间,并避免引入手动编码错误,确保实际的sdr实现与模型相匹配。图 7 描述了在 simulink 中对 sdr 系统进行建模并将其传输到基于 xilinx zynq soc 的最终生产系统上所需步骤的真实过程。
图7.从模拟到生产的路径。
第一步是在 simulink 中对 sdr 系统进行建模和仿真。在此阶段,通信算法被划分为将在软件中实现的块和将在可编程逻辑中实现的块。分区和仿真完成后,sdr 模型将使用嵌入式编码器和 hdl 编码器转换为 c 代码和 hdl。基于 zynq 的原型系统用于验证通信算法的性能,并帮助在进入实际生产阶段之前进一步调整 sdr 模型。在生产阶段,自动生成的c代码和hdl被集成到复杂的生产系统框架中。该工作流程可确保通信算法一旦进入生产阶段,就会得到充分验证和测试,并为系统的稳健性提供很大的信心。zynq 嵌入式编码器和 hdl 编码器硬件支持包为集成硬件/软件设计、仿真和验证提供了一个框架,可将基于模型的设计集成到工作流程中,从而实现快速设计迭代周期,并帮助及早检测和纠正设计和规范错误,从而更轻松地对 zynq 平台进行编程。
结论
本文阐述了现代 sdr 系统的要求和趋势,以及 mathworks、xilinx 和 adi 公司为满足这些要求并帮助推动实现性能更高的 sdr 解决方案而向市场推出的工具和系统。通过将 mathworks 基于模型的设计和自动代码生成工具与功能强大的 xilinx zynq soc 和 adi 集成射频收发器相结合,sdr 系统的设计、验证、测试和实施可以比以往更加有效,从而获得更高性能的无线电系统并缩短上市时间。adi公司的fmcomms平台与avnet zynq-7000 ap soc配对,为使用mathworks的matlab和simulink设计的sdr算法提供了出色的原型设计环境。fmcomms平台附带一组开源参考设计,旨在为任何想要评估系统并帮助启动任何新sdr项目的人提供一个起点。


中端手机SOC之争,谁将笑到最后?
普源示波器MSO/DS2000A系列的介绍
西部数据宣布结束债券发行 GE在印度开设新可再生混合动力工厂
2019TCL电视中国销量第一 2020年将持续深耕AI×IoT赛道
Prismark:2022年全球及中国PCB状况与2023年行业展望
ADI/Xilinx SDR快速原型设计平台:其功能、优势和工具
酒店消防电气系统的设计与应用
速锐得工业物联网技术无线自动化解决方案
模拟示波器与数字示波器到底有什么不同
微波光子雷达最新研究进展
2021年5G和物联网于工业4.0中有哪些独特用例
2019年安防行业的七大安全和风险管理趋势
基于多线程技术VisualC++实现工控系统的设计
联想表示目前用户首选的还是搭载AMD或英特尔处理器的笔记本,ARM处理器还是等等吧
北京市政协委员、芯盾时代创始人、董事长郭晓鹏受邀参加金融支持民营企业发展工作推进会
芯片业寒气逼人!9月全球销量出现两年多来首次下降 韩国经济遭重创
TCL背投维修2例
成都道桥的5G+云+AI服务
usb type-c接口定义概念解析
CAN终端电阻为什么不直接用120R?