基于Zedboard的便携式频谱仪的设计与实现

2017-07-19 11:02:03周体民佐风玲吴宜轩
电子科技 2017年7期
关键词:频谱仪驱动程序分析仪

周体民,佐风玲,吴宜轩,朱 策

(1.中国人民解放军第63626部队,甘肃 兰州 732750; 2.国防科学技术大学 电子科学与工程学院,湖南 长沙 410073)



基于Zedboard的便携式频谱仪的设计与实现

周体民1,佐风玲2,吴宜轩1,朱 策2

(1.中国人民解放军第63626部队,甘肃 兰州 732750; 2.国防科学技术大学 电子科学与工程学院,湖南 长沙 410073)

便携式频谱仪多用于野外室外的测量,要求频谱仪具有实时性、便携性、快速性等特点。文中利用Zedboard开发板的FPGA+ARM的架构平台,以ADI公司的FMCOMMS1子板作为信号采集的前端,实现了基于嵌入式软件平台的开发。利用Xilinx的新平台ZYNQ的可编程逻辑PL部分完成了AD9364 IP核的设计,PS部分通过AXI总线以DMA的方式读取数据,数据吞吐率高达1 200 MB/s,提高了信号的处理速度,增加了系统的灵活性,使得便携式频谱仪具有低功耗、低成本、体积小、集成度高等优势,用途更加广泛。

便携式频谱仪;ZYNQ-7000;AD9364

频谱分析仪是电路设计和调试过程中必不可少的工具,频谱仪正迅速的朝数字化、网络化、宽频带、高性能和多功能的特点发展。国外很多公司已经研制出了灵敏度高、测试功能多、分辨率高、可测频率范围大的手持式频谱分析仪产品,国内也有不少研发的手持式频谱分析仪,但在性能上与国外产品还有一定的差距[1]。

目前,国内大部分的产品采用ARM、DSP或者 FPGA等芯片,三者各有优缺点,DSP具有较强的算法处理能力,但是控制能力较差;ARM具有较好的控制能力,但处理速度慢;FPGA具有优秀的数据处理能力,但控制能力相对较差。2011年12月,Xilinx公司推出了ZYNQ-7000可扩展处理平台,将双核ARM Cortex-A9 处理器(PS部分)和可编程逻辑FPGA(PL部分)结合,以处理器PS部分为核心,充分利用了PS和PL的优点,加快了数据处理速度,降低了功耗。Xilinx提供了Vivado开发环境用于定制底层的硬件,并在Eclipse的基础上推出了SDK开发环境,使用户可以用C语言开发PS部分的软件,对于需要操作系统支持的用户,Xilinx提供了Petalinux和Linaro两种选择,后者具有一个类似于Ubuntu的桌面环境。在实际工程应用中,为满足系统的功能,利用较少的硬件成本资源完成对信号的处理具较高的实际价值,ZYNQ已被广泛应用于智能视频、通信系统、控制系统和桥接等领域[2-3]。

1 系统设计方案

频谱分析仪的基本原理与无线通信接收机相同,频谱分析仪的硬件结构组成即是无线通信接收机的硬件架构。本文采用ADI公司的AD-FMCOMMS1-EBZ高速模拟评估板,内部结构如图1所示。AD-FMCOMMS1-EBZ高速模拟模块支持400 MHz~4 GHz频率范围的应用,具有出色的灵活性,支持数据流传输。工作流程是当接收到信号后将其转化为I和Q正交信号,经过ADL5380正交解调器,将接收到的模拟信号解调到一个合适的复基带,滤波后将信号传递至可编程可变增益放大器AD8363 DVGA,通过抗混叠滤波器去除谐波及其他外信号,使用AD9643将模拟信号转化成数字信号,通过FMC接口直接将数据传送到Zynq的PS部分。Zynq 里的PS 和PL 部分之间的主要连接形式是AXI 接口,它在芯片的这两个部分之间实现高带宽、低延迟的连接。在PS 侧的每个AXI 接口包括多个AXI 通道,9个PL 接口是用上千个信号来实现的。它的优点是在用户开发时无需更改硬件,可以直接通过软件针对不同的频率进行定制,节省用户的开发时间。

图1 AD-FMCOMMS1-EBZ内部结构图

软件平台的实现首先根据设计的系统架构,在Vivado中搭建系统,将所搭建的硬件系统生成比特流导入到Xilinx提供的SDK工具,SDK包括了GNU的编译工具链、JTAG调试器、闪存编程器、Xilinx IP的驱动和逻辑资源的BSP以及应用领域函数的中间库,在SDK中创建第一级引导装载程序(FSBL),随后将用户程序文件从SD卡加载到内存,在Zedboard上启动Linux操作系统,用户可以根据自己的需求对内核进行裁剪,减少系统的占用空间[4-6]。设计采用Xilinx 公司推出的Zedboard的示例开发板,Xilinx为该开发板提供了适配好的Linux操作系统,用户只需开发FMC自定义外设的驱动程序即可,提高了项目的开发速度[9]。

图2 AD-FMCOMMS1-EBZ内部结构图

2 基于Zedboard的频谱仪实现

2.1 PL程序设计

本文基于Zynq的内部核心接口搭建了硬件系统。IP核采用AXI4接口,方便和Zynq的ARM CPU连接。将AD9643的逻辑部分封装在一个IP核内,将AD9643的采集到的数据,通过AXI总线连接到PS。

axi_ad9643_DMA是Xilinx提供的DMA IP核,该IP负责将AD9643采集到的高速数据流,以DMA的方式高效的传输到DDR3内存中,AXI4总线通过通用端口M_AXI_GP0进行传输。自定义的axi_ad9643 IP核还可以对AD9643进行参数控制,根据参数采用不同的运行方式。

图3 axi_ad9643和axi_ad9643_dma IP核模块图

2.2 Linux DMA驱动设计

设备驱动是Linux系统开发的重要部分,每个硬件设备都必须有相应的驱动程序与之匹配。操作系统利用驱动程序将复杂的底层硬件进行抽象,使上层应用程序只需要简单的调用就完成对硬件设备的控制。本文采用字符型设备驱动,在Linux系统下直接对物理空间进行操作缺乏移植性,所以需要将物理地址空间映射到虚拟地址空间[14-16]。

图4 驱动程序处理流程图

PS与PL之间实现DMA的数据接收模块是频谱信号接收和显示的重点和难点,这里DMA 指PL中的DMA。DMA 驱动实现对 DMA 控制器配置,并提供接口函数给上层的应用程序,图4所示为 DMA 的驱动流程图。DMA 的工作原理是在启动上电完成后,首先对 DMA 控制器复位初始化,然后在 DDR3 中申请得到一定大小的存储空间用来存储将要传输的数据。DMA 驱动中使用了两个指针变量,如 FIFO 控制器一样,一个是用于读数据的地址指针,一个是写数据的地址指针,通过比较两个变量的值,判定存储是否为空或者为满,另外,上层应用程序也通过 DMA 驱动来实现对 DDR3 中存储数据的读写。

2.3 应用程序设计

由于用户在测量时需要对参数进行设置,使得便携式频谱仪的人机交互界面设计更加复杂。Qt是一款开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展,以及一些宏,易于扩展,允许组件编程。通过在Zynq的ARM上运行嵌入式Linux系统,进而对频谱仪进行图形化设计[7-8]。采用模块化的设计方式,设计流程如图5所示,当用户设置参数之后通过接口将数据传输到硬件层,经过数据处理模块将数据存储在DDR中,最后以图形化的方式在界面上显示出来。应用程序的设计框图如图5所示[13]。

图5 应用程序处理流程图

3 测试与验证

系统的基本参数设置:码元速率60 Symbol·s-1;载波频率20 kHz;采样频率100 kHz;调制指数为1。设计通过基于 Zynq-7000 的 ZedBoard 开发板对软件系统进行测试和验证。待测试射频信号从信号源发出,AD9643 从 Rx端口接收到信号,通过AD9643 对信号进行采样、模数转换等操作,将数字基带信号传送给 Zynq 中 PL部分,PL 对接收到的数字信号通过 AD9643 处理 IP 核进行处理,之后将得到的 IQ 两路信号放在一个数据缓冲区域,上层 PS 部分通过 DMA 形式将数据从 PL 中取出,之后在 PS 中进行 FFT 处理,上层应用程序摘取所需要的信号进行显示,上层界面可以根据测试需要,在上层界面进行相应的设置,使其做出对数据接收端口的改变或射频信号值的改变做出相应测量反应。

图 6 是上层界面对一个单脉冲信号测量结果的显示,单脉冲信号由信号源给出。从图中可以看出,虽然信号得到了接收,但是噪底不小,这将是设计的改进方向,也是应用软件的改进方向。通过触摸屏或键鼠可以实现人机的良好交互,Function 下的 Save 可实现整个显示界面的截屏保存;Frequency 菜单可以实现对仪器的测量频率范围进行设置;Amplitude 可以对单元格的幅值进行设置;Maker 菜单下的左右按键可实现将 Maker进行左右移动一个像素点,同时在状态栏显示对应的频率和幅值;Peak 菜单下的PeakSearch 按键可以实现在当前频率范围找到幅值最高点,并通过 Maker 显示对应幅值和频率;Channel 可以实现对两个输入通道进行选择。

图6 便携式频谱分析仪显示界面

4 结束语

便携式频谱仪存在以下不足:功能不齐全、设计成本高、操作复杂、体积过大不方便携带。本文针对设计成本高和便携性差两方面,设计了基于Zedboard的一款便携式频谱仪,产品具有低功耗、低成本的优势,利用Zynq的新型FPGA+ARM架构,使得频谱仪具有更快的处理速度,并且体积小、集成度高,有良好的应用前景。

[1] 王铮.基于嵌入式 Linux 的频谱仪系统定制与实现[D].天津:南开大学,2008.

[2] Xilinx.All programmable SoC Zynq-7000[J].今日电子,2013(42):103-105.

[3] 王莹.Xilinx可扩展处理平台:ZYNQ嵌入式处理器与FPGA集成的独特创举[J].电子产品世界,2012(2):27-32.

[4] 何宾. Xilinx all programmable Zynq-7000 SoC 设计指南[M].北京:清华大学出版社,2013.

[5] 陆佳华,江舟,马岷.嵌入式系统软硬件协同设计实战指南:基于Xilinx Zynq[M].北京:机械工业出版社,2013.

[6] 符晓,张国斌,朱洪顺. Xilinx ZYNQ-7000 AP SoC开发实战指南[M].北京:清华大学出版社,2016.

[7] 丁林松,黄丽琴.Qt4图像设计与嵌入式开发[M].北京:人民邮电出版社,2009.

[8] 志明,卢传富,李立夏,等.精通 Qt4 编程[M].北京:电子工业出版杜,2008.

[9] Xilinx.Xilinx Zynq-7000 all programmable SoC ZC702 evaluation kit[EB/OL].(2013-12-10)[2016-03-18]http:∥ www.xilinx .com/products/boards-and-kits/EK-Z7-ZC702-G.htm.

[10] Yaghmour K, Masters J, Ben G. Building embedded linux systems[M]. 2nd Edition.New York:O’Reilly & Associates, Inc,2008.

[11] Estrin D.Connecting the physical world with pervasive networks[J].IEEE Pervasive Computing,2002(6):59-69.

[12] Bate E A.Real-time embedded system [J].Computing & Control Engineering Journal,2012(6):276-285.

[13] 史胜辉.基于嵌入式Linux的频谱分析仪软件系统设计[D].成都:电子科技大学,2011.

[14] 李丽宏,郝志刚.嵌入式 Linux 的 USB 驱动设计[J].太原:太原理工大学,2011.

[15] 韦东山.嵌入式 Linux 应用开发完全手册[M].北京:人民邮电大学出版社,2008.

[16] Corbet J, Rubini A, Kroalr Hanma G. Linux设备驱动程序[M].魏永明,耿岳,钟书毅,译.北京:中国电力出版社,2006.

Design and Implementation of a Portable Spectrum Analyzer Based on Zedboard

ZHOU Timin1,ZUO Fengling2,WU Yixuan1,ZHU Ce1

(1. Troops 63626, PLA, Lanzhou 732750, China; 2.School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

A portable spectrum analyzer for real-time outdoor measurement is proposed on the Zedboard platform which contains FPGA and ARM in one chip with the ADI FMCOMMS1 board as the front-end of signal acquisition, and its embedded software development platform is developed. We make use of the programmable logic of the new Xilinx ZYNQ platform to design of AD9364 IP core, with PS data read through the AXI bus by the method of DMA at a throughput up to 1200MB/s, thus improving the signal processing speed and increasing the flexibility of the system. As a result, the portable spectrometer has low power consumption, low cost, small size and high integration.

portable spectrum analyzer; ZYNQ-7000; AD9364

2016- 09- 29

周体民(1990-),男,助理工程师。研究方向:信息与通信技术。

10.16180/j.cnki.issn1007-7820.2017.07.039

TN710;TM935.21

A

1007-7820(2017)07-139-04

猜你喜欢
频谱仪驱动程序分析仪
Sievers分析仪(苏伊士)
流程工业(2022年3期)2022-06-23 09:41:06
一种用于深空探测的Chirp变换频谱分析仪设计与实现
周林频谱仪治疗膝骨关节炎的疗效分析
如何提高频谱仪测量弱小信号的能力
频谱仪的本底噪声对天线噪声温度测量的影响
基于ARM9+FPGA频谱仪的设计与实现
Endress+Hauser 光学分析仪WA系列
福禄克 电池分析仪Fluke 500系列
驱动程序更新与推荐
驱动程序更新与推荐