无线通信将在多种新兴技术中扮演重要角色,例如自动驾驶汽车车队,以及连接数百万工业传感器的异构网络。此类应用环境需要用到即时调整调制方案、频带和系统协议的可重配置软件无线电 (sdr)。通过在全面验证的系统级模块 (som) 中紧密集成关键 rf 信号路径和高速可编程逻辑,安富利的 picozed sdr 能够在一副扑克牌大小的设备中提供灵活的软件无线电技术,实现 70mhz-6.0ghz 频率范围内的捷变频、宽频带 2x2 接收和发送路径,以满足不同固定和移动 sdr 应用的需求。
picozed sdr 将 analog devices ad9361 集成式 rf agile transceivertm 与赛灵思 z-7035 zynq®-7000 all programmable soc 相结合。[1]这种架构理想适用于复杂应用的软硬件混合实施方案,例如数字接收器,其中的数字前端(物理层)在可编程逻辑中实现,而上面的协议层则运行于双 arm® cortextm-a9 处理器的软件中。让我们看一看整个开发过程中 picozedsdr 的软件相关特性。
利用picozed sdr 环内无线
快速进行概念验证
要想充分发挥 picozed sdr 的潜力,需要采用稳健可靠的多域仿真环境来对从 rf 模拟电子到基带数字算法的整个信号链进行建模。这是 mathworks 公司基于模型的设计方法所固有的价值,系统模型居于开发流程的中间环节,整个过程涵盖设计的需求定义、代码生成、实现和测试等。安富利携手 analog devices 和 mathworks 合作,从最初的原型设计阶段开始,在设计过程从各个方面为 picozed sdr 开发支持架构。[2]
面对缩短开发周期的持续压力,工程师需要探寻合适的解决方案以便在可靠的硬件上进行快速、精确的概念验证,从而演示产品在“真实世界”条件下的可行性。mathworks 使用名为 system objectstm的 matlab® 软件架构为基于赛灵思 zynq 的无线电创建程序支持包,该支持包能够将作为 rf 前端的 picozed sdr 用来构建开箱即用的 sdr 设计原型。system objects 软件架构专门针对用于处理大数据流的迭代计算而优化,能够在环内无线配置中自动实现 picozed sdr 与 matlab 和 simulink® 环境之间的流数据(图 1)。类似于以对象为中心的编程概念,system objects 也是通过构造函数调用类名称的方式来创建,可采用 matlab 代码或者用作simulink 模块。system object 实例化后,可调用各种方法在仿真过程中通过 system object发送流数据。mathworks 提供的针对赛灵思zynq 无线电的 communications system toolboxtm支持包,含有针对 picozed sdr 接收器和发送器预定义的类别,每个类别包含针对 ad9361 的可调节配置属性,例如 rf 中心频率和采样速率。图 2 中的代码实例可用来创建一个 picozed sdr 接收器system object,以接收单通道上的数据,ad9361 本地振荡器频率设定为 2.5ghz,基带采样速率为 100msps。使用日志保存获取的数据。
图 1 - 利用 system object 实现的 picozed sdr 流数据
图 2 - picozed sdr 接收器 matlab system object
libiio 库
analog devices 开发了 libiio 库 [3, 4],可简化用于连接 linux industrial i/o (iio) 器件(例如 picozed sdr som 上的 ad9361)的软件的开发工作。开源(gnu lesser general public license v2.1) 库抽象出硬件的低层细节,并提供一个可用于高级项目的简单但完整的编程接口。
该库由一个高级应用编程接口和一套后端组成,如图 3 所示。
图 3 - libiio api 和后端
您可以使用 libiio 在项目原型设计阶段与 picozed sdr进行接口连接,以便向或从 matlab、simulink 或gnuradio 等工具的模型发送或接收样本流。
本地后端与 linux 内核通过内核的 sysfs 虚拟文件系统进行接口连接。这个后端具有 c、c++ 和 python 绑定,用以支持运行于 picozed sdr 上的远程部署应用程序。
网络后端通过网络链路与 iio daemon (iiod) 服务器进行接口连接。网络后端支持多种操作系统(linux、os x、windows)以在运行 matlab 和 simulink [5]、gnuradio [6] 或 iio oscilloscope [7]等应用程序的更强大主机平台上进行基于 gui 的远程调试。
用户需要使用 libiio 在项目的原型设计阶段与 picozed sdr 进行接口连接,以向/从 matlab、simulink 或 gnuradio 等工具的模型发送或接收样本流,这些工具可以建模物理层((qpsk、qam、ofdm 等)或整个媒体访问控制器 (mac)。libiio 支持中等数据速率(约 8msps)下的流传输(不丢失样本),以及最大数据速率(61.44 msps)下的突发模式(获得样本突发传输流(高达 1m 左右的样本),会在突发流之间丢失数据)。 通常,当进行 phy 开发时应使用速率较低的数据流,然后,利用突发模式在生成 hdl/c 代码之前快速验证设计。
利用针对 picozed sdr 的软硬件协同设计进行系统集成
在使用 picozed sdr 环内无线完全验证了算法模型之后,接下来是生成 hdl/c 代码并将 ip 核打包,以集成到更大的系统。例如,在 matlab 和simulink 中建模的无线接收器子系统可能被指定用于点对点无线电链路,以从安装在 picozed sdr 载卡上的安富利摄像机模块传输实时视频。
mathworks hdl codertm 中的软硬件协同设计流程使用户可以探索针对 zynq soc 的软件与硬件之间的最佳设计分区(图 4)。针对可编程逻辑的部分可自动封装为 ip 核,包括硬件接口组件,例如 arm amba® axi4 或 axi4-lite 接口访问寄存器,axi4 或 axi4-lite 接口,axi4-stream 视频接口,以及外部端口。mathworks hdl workflow advisorip 核生成流程使用户可以将生成的 ip 核插入赛灵思 vivado® 集成设计环境中的预定义嵌入式系统项目。[8] hdl workflow advisor 包含 vivado ide 将用户设计部署到 soc 平台所需的所有元素,除了用户生成的自定义 ip 核和嵌入式软件。
图 4– mathworks 软硬件协同设计流程
如果用户有 mathworks embedded coder® 许可证,就可以自动生成软件接口模型,从中生成嵌入式 c/c++ 代码,并在 zynq soc 中 arm 处理器上的 linux 内核上构建和运行可执行文件。所生成的嵌入式软件包含 axi 驱动程序代码。该代码由axi 驱动程序模块生成的,用以控制 hdl ip 核。或者,用户也可以编写嵌入式软件,手动为 arm 内核构建。
iio 示波器
adi iio 示波器 (osc) 是一个示例应用,用以演示如何对 linux 系统中的不同 linux iio 设备进行接口连接。该应用允许用户以四种模式(时域、频域、星座图和互关联)绘制捕获的数据,并查看和修改多个 iio 设备设置。
osc 应用支持 linux、windows 和 os x。由于支持 hdmi 视频显示,以及图形环境,因此它可运行于远程连接的主机 pc 或 picozed sdr fmc 载卡上。提供有关如何在linux 上构建 osc 应用的使用说明,以及预先创建的 windows 二进制文件。图 5给出了 picozed sdr 的两个通道 (i/q) 的快速傅里叶变换 (fft),建立了标记以查看单音信号
图 5 - adi iio 示波器
和测量谐波
直接在 picozed sdr 上构建 osc 应用只需要(1)下载源代码:
》 git clone https://github.com/analogdevic- esinc/iio-oscilloscope.git
》 cd iio-oscilloscope
》 git checkout origin/master
(2)构建并安装:
rgetz@pinky:~/iio-oscilloscope$ make
rgetz@pinky:~/iio-oscilloscope$ sudo make install
凭借强大的处理系统(双 arm cortex-a9 处理器,运行频率为 1ghz,外加 1gb ddr3 sdram),在 zynq sdr som 上进行本机编译过程非常快速。
采用 picozed sdr 的实时视频捕获系统
高性能视频已成为自动汽车、军用视觉系统、监控系统和无人机等无线应用领域中智能系统的重要组成部分。这些应用产品将高像素率视频捕获与实时分析相结合,可打破纯软件方案的性能限制。凭借 zynq soc 和赛灵思的 sdsoctm 开发环境,嵌入式视觉系统设计人员能兼具两者的优势,利用原有软件图像处理算法的丰富功能以及硬件加速,以高帧率实时处理高清晰视频。安富利 on python-1300 摄像机模块采用安森美 (on semiconductor) 的 python-1300 彩色图像传感器,能够达到 210 fps 下的 sxga 分辨率(1,280 x 1,024 像素)。[9]。安富利的多个基于 zynq soc 的开发平台——包括 picozed sdr——都支持该模块(以实现视频分析的无线传输)。系统设计人员可以使用符合 video4linux2 api 规范(v4l2;图 6)的安富利软件驱动程序将摄像机模块集成到完整的 linux 系统中。v4l2 框架可以实现被称为流水线的完整视频数据路径。典型的视频捕获流水线从摄像机接收器获取视频,选择性地处理视频,然后使用视频 dma 引擎将内容发送至外部帧缓冲器。安富利提供与 vivado ip integrator 兼容的“摄像机接收器”ip 核 hdl 源代码(不收取费用和版权费),以及以 linux 补丁形式提供的 v4l2 子设备 linux 驱动程序。
图 6 - 采用安富利 on python-1300 摄像机模块的 v4l2 视频捕获流水线
本文中我们已经介绍过,通过安富利的 picozed sdr 中提供的自动工作流程,用户可大大缩短从概念带部署的开发时间,同时专注于实现 sdr 产品的差异化特性。
英特尔i7-11370H处理器测试成绩现已出现在Geekbench 5上
IGBT短路时电流为什么那么大?
浪潮分布式存储:助力武汉理工大学迈向智能技术支持的"课堂革命"
微雪电子QFN-24BT-0.5-01 QFN24测试座简介
小米MIX2什么时候上市?最新消息:小米MIX2真机谍照曝光,全面屏怒赞,这样的小米MIX2好看到没朋友!
利用PICOZED SDR软件无线电进行概念验证和部署
光存储技术的发展方向
揭秘华为P10超级省电模式——居然还能看股票、聊微信?
富士伺服电机使用中的这些问题不容忽视
美国新蛋公司宣布允许加拿大居民使用加密货币支付商品的费用
BlazeRouter 快捷键介绍
【C语言应用】使用查表法计算CRC8
中联优贝:以互联网营销师培训为撬点赋能直播电商“人货场”重构
我国无人机实名登记已达28.9万架,利用无人机技术实现弯道超车
区块链技术将是推进互联网金融更趋高效透明的重要手段
开关电源灌封胶、防水导热封装保护胶粘应用解决方案!
还未完全放弃LCD!LG Display开始生产商用触摸液晶显示屏
星环科技自主研发数据安全管理平台Transwarp Defensor
微跌落试验机的维护保养-贝尔试验箱
华为三款新机最适合VR用户原来是Mate 9Pro