ISSN 1002-4956 CN11-2034/T
实 验 技 术 与 管 理 Experimental Technology and Management 第36卷 第8期 2019年8月 Vol.36 No.8 Aug. 2019
DOI: 10.16791/j.cnki.sjg.2019.08.021
基于ZYNQ-7000 FPGA和AD9361的软件无线电平台设计
张鹏辉1,张翠翠1,赵 耀2,徐兴良2
(1. 西安交通大学 电子与信息工程学院,陕西 西安 710049;
2. 安那络器件(中国)有限公司,北京 100192)
摘 要:设计了一种基于ZYNQ-7000系列FPGA和AD9361的软件无线电(SDR)平台。该平台采用零中频软件无线电方案,选用AD9361设计射频收发前端,选用ZYNQ-7000系列FPGA搭建基带处理平台,并借助PC的数据处理能力进一步提升系统的灵活性和通用性。PC和ZYNQ基带处理平台之间通过千兆网口通信。在PC上使用GNU Radio软件实现802.11a基带数据的处理,搭建两套SDR系统。实测结果验证了该平台的通信可靠性。该软件无线电平台对于通信类学生的实验教学和科研工作有借鉴意义。 关键词:软件无线电平台;Zynq-7000;AD9361; GNU Radio;802.11a
中图分类号:TM925 文献标识码:A 文章编号:1002-4956(2019)08-0085-09
Design of software radio platform based on ZYNQ-7000 FPGA and AD9361
ZHANG Penghui1, ZHANG Cuicui1, ZHAO Yao2, XU Xingliang2
(1. School of Electronic and Information Engineering, Xi’an Jiaotong University, Xi’an 710049, China;
2. Analog Devices (China) Co., Ltd., Beijing 100192, China)
Abstract: A software radio (SDR) platform based on ZYNQ-7000 series of FPGA and AD9361 is designed. This platform adopts the zero-IF software radio scheme, uses the AD9361 to design the RF transceiver front-end and the ZYNQ-7000 series of FPGA to build the baseband processing platform, and further improves the flexibility and versatility of the system with the help of PC’s data processing capability. The communication is between PC and ZYNQ baseband processing platform via gigabit network port. The GNU Radio software is used to process 802.11a baseband data on PC, and two SDR systems are built, one receiving, one sending, and the effect of communication is tested. The measured results have verified the communication reliability of the platform, and the software radio platform can be used for reference in experimental teaching and scientific research for communication students.
Key words: software radio platform; Zynq-7000; AD9361; GNU Radio; 802.11a
软件定义无线电平台是基于通用的硬件平台,使能,打破了通信系统的基于硬件、面向用途的传统设计方法。软件无线电可以避免硬件实现难度大的缺点,除了最基本的硬件功能,如天线、放大器、混频器、AD/DA之外,其余功能全部采用FPGA/CPLD/DSP等软件实现,开发者通过修改软件来改变软件无线电的功能,而不用修改硬件,这就是软件定义无线电的 概念[1-5]。
目前在通信系统的实验教学和科研工作中,一般使用软件仿真的方法检验通信算法的正确性、合理性以及运行效率等,但是缺少一个底层开放、自主可控,能够实现不同理论算法的实际的实验平台。因此本文设计和建立了一个通用的软件无线电平台,为科研工
用可编程的软件方法来满足不同需求的无线电系统。它的基本思想是把硬件作为一种无线通信的基本平台,尽可能多地用软件实现无线通信以及个人通信功
收稿日期: 2018-12-12
基金项目: 陕西高等教育教学改革研究项目重点项目(17ZZ001);
西安交通大学2017年本科实践教学改革研究专项项目(17ZX074)
作者简介: 张鹏辉(1960—),男,陕西乾县,本科,研究员,硕士生导师,主要研究方向为电子与通信系统。
E-mail: zhangph@mail.xjtu.edu.cn 通信作者: 张翠翠(1987—),女,陕西咸阳,硕士,工程师,主要研究方向为FPGA/MCU电子系统设计。 E-mail: zhangcuicui@xjtu.edu.cn
86 实 验 技 术 与 管 理
作提供理论研究和算法验证的条件,为通信类课程教学[6]提供软硬件教学实验环境。
1 方案设计
选择目前较成熟的零中频[7]软件无线电方案(见图1),直接将射频信号混频至基带的I/Q两路信号,通过数据转换器对基带信号进行采样、量化,再使用数字处理器对基带信号解调。该结构只需一次混频,没有镜频干扰,结构简单、功耗小、易于集成。
目前,基带信号处理常用的方案是FPGA/DSP结合PC。在便携式应用中,希望所有的基带处理都在FPGA/DSP中完成;但在大部分通用场合下,为了进一步增强系统的数字处理能力和灵活性,使用FPGA/DSP完成部分信号处理步骤,通过高速接口将数据传送至PC端,利用PC的计算能力来处理数字信号。使用电脑协助处理基带数字信号的优点是无须昂贵的高速数字信号处理器,可以借助已有的软件完成设计任务,使用已有的数字信号处理程序模块来节省开发时间。目前PC上成熟的SDR软件平台有GNU Radio、Matlab、LabVIEW等。
图1 零中频SDR结构框图
1.1 射频前端方案设计
AD9361是一款零中频结构的射频捷变收发器[8],该器件集成了众多模块,包括模拟射频前端、混频器、频率合成器、数据转换器等,完成信号从射频前端到基带数据流的转换工作,通过简单的数字接口就能设置这些模块的工作状态。图2是AD9361内部结构 框图。
图2 AD9361内部结构框图
AD9361射频信号频率范围70 MHz~6 GHz,模拟信号带宽范围为200 kHz~56 MHz。内部集成了两路独
立的接收通道和发送通道。芯片零中频方案,射频信号经过正交混频器之后分为IQ两路信号,每一条接
张鹏辉,等:基于ZYNQ-7000 FPGA和AD9361的软件无线电平台设计 87
收通路上集成的ADC都能对IQ两路信号同时进行采样,采样后的数字信号通过内部可配置的半带滤波器和128阶FIR滤波器处理后输出所需采样率下的12位基带数字信号。发送通道和接收端类似,采用零中频方案完成基带数据到射频信号的转变。收发通道可以同时工作,支持TDD和FDD两种工作模式,支持22 MIMO。
1.2 基带数据处理方案设计
选择FPGA结合PC作为基带数据处理器。为了保证足够的带宽,FPGA和PC之间选用千兆网口通信。目前嵌入ARM的新型SOC系列FPGA发展迅速。ARM负责适合顺序执行的数据处理,FPGA负责并行的高速数据流处理。ARM和FPGA在同一块芯片,两者之间高速数据的可靠传输得到保证。最终选用嵌入双核ARM的Zynq-7000系列[9]的 xc7z020- clg484-3 FPGA。ARM处理器部分即PS(processing system),集成了存储器控制器、千兆网口、USB控制器、SD卡等外设;可编程逻辑部分(programmable logic,PL)采用Artix 7架构FPGA,具有85 000个逻辑单元,53 200个LUTs,106 400个触发器,560 kB的集成RAM,220个1825硬件DSP。可编程平台为嵌入式系统的实现提供了极大的灵活性。 1.3 总体方案
选用ZYNQ-7000系列FPGA结合PC作为基带信号处理器方案,选用AD9361作为零中频射频前端方案。PC和FPGA之间通过千兆网口进行数据传输。FPGA数据处理板和AD9361射频板分开成两块板,之间通过FMC连接器连接。设计框图如图3所示。
图3 SDR平台方案设计框图
2 基于AD9361的射频板设计
AD9361的射频板主要完成射频接口、时钟接口、
数字接口和电源接口设计。AD9361射频电路板框图如图4所示。
图4 基于AD9361的射频板框图
2.1 射频接口设计
AD9361的射频端口如图5所示。接收通道有A、B、C 3个低噪声放大器(以下简称低噪放),可选单端输入或差分输入。发送通道有A、B 2个低噪放,只能使用差分输出。低噪放都能覆盖70 MHz~6 GHz工作频率,但是对于3 GHz以上的频率,建议使用A低噪放。相对于单端匹配,差分匹配可以提供更大的动态范围、更小的偶次谐波失真和噪声特性。低噪放的输入端内部偏置电压为0.6 V,建议选用交流耦合方式。
图5 AD9361射频端口
88 实 验 技 术 与 管 理
由于AD9361的频率覆盖范围从70 MHz~6 GHz,电路设计,完成平衡/不平衡转换。巴伦的单端匹配使用PI型网络,差分匹配使用交流耦合的PI型网 除高频处的量化噪声和降低信号采样率(数据输出速号。AD9361与ZYNQ接口如图8所示。
,最终从高速数字端口输出12比特的基带数字信本设计中选用超宽带巴伦TCM1-63AX+实现匹配 率)
络。接收端和发送端匹配原理图分别见图6和图7。
图6 AD9361射频接收端原理图
图7 AD9361射频发送端原理图
2.2 时钟接口设计
数字通信系统中的时钟稳定性非常重要,在一些基站应用中对参考时钟稳定性要求非常高,需要大面积覆盖的基站时钟稳定性要求小于0.05106。然而对于大多数的应用,类似于手机这样的用户设备不需要非常精准的参考时钟,这时系统的时钟信号由芯片外接的时钟晶体和内部振荡器电路组成,但是为了和基站保持联通,需要周期性地调整本地振荡器频率。
AD9361的时钟源可以选择晶体振荡器或者外部输入时钟源。本设计中,AD9361电路板的时钟源设计为晶体振荡器和外部参考时钟可选的方式,通过电路板上的跳接电阻选择不同的时钟接入,在通用情况下选择40 MHz的晶体振荡器,在需要更加稳定时钟信号的时候,选择外部的时钟参考源。 2.3 数字接口设计
AD9361的数字接口有SPI接口(用于传输控制信息)、GPIO接口(用引脚的高低电平来读取或者控制AD9361的工作状态)和高速数字接口。AD9361的高速数字接口用于和FPGA传输基带数据。AD9361的模拟信号带宽最大可以设置为56 MHz,而基带数据的采样率至少要高于系统模拟带宽2倍以上,即高速数字接口的数据传输时钟速率要在112 MHz以上。
与常见的高速模数转换器不同,AD9361内部12位精度的ADC(DAC)采用ΣΔ型数据转换器方案,包含了数字信号处理单元。ΣΔ型ADC通常由ΣΔ调制器和数字滤波器两部分组成。ΣΔ调制器采集模拟信号,输出高速的低比特数字码流,通过抽取滤波器滤
图8 AD9361与ZYNQ接口
本设计选用LVDS差分模式实现高速数据接口[10]。当读取AD9361数据时,数据采样时钟DATA_CLK信号由AD9361输出,FPGA使用DATA_CLK信号作为参考时钟对数据进行采样,FPGA将DATA_CLK采集后输出到FB_CLK引脚作为AD9361的输入数据采样时钟信号。 2.4 电源设计
AD9361需要3种供电电压,模拟模块供电1.3 V、数字接口供电2.5 V和3.3 V。
系统电源可以选择开关电源或者是线性稳压源,综合考虑功耗和性能两方面,选择开关电源加线性稳压电源的方式。将输入3.3 V电压通过开关电源降到1.8 V,再通过两路低噪声高电源抑制比的线性稳压器将1.8 V降至1.3 V。选择的开关电源为ADP21,开关频率设为1.2 MHz。线性稳压器为ADP1755。为了减小模块与模块之间的相互干扰,使用两片ADP1755产生两组的1.3 V,分别为A组(射频本振和射频频率合成器模块)和B组(射频输出端芯片内部末级功放和基带处理单元)。供电方案如图9所示。
设计完成后,经过PCB制板、物料购买、回流焊和BGA焊接后得到实物图见图10。
张鹏辉,等:基于ZYNQ-7000 FPGA和AD9361的软件无线电平台设计
图9 AD9361的供电方案
(a) 正面 (b) 背面
图10 射频板实物图
3 基于ZYNQ的基带数据处理板设计
3.1 硬件电路设计
数据处理板硬件电路的主要组成部分如图11所示,PS的主要外设有Ethernet MAC、USB控制器、SD卡控制器、QSPI Flash。关键器件中Ethernet 物理层芯片选用88e1518,USB物理层芯片选用TUSB1210,SD卡与micro SD卡的多路选择器采用TXS02612,FMC插座ASP-134603-01。电路设计主要包括电源设计、时钟设计与AD9361接口设计。
图11 数据处理板硬件电路框图
3.1.1 分布式电源系统设计
通过对FPGA供电以及各类外设的供电分析,设计了电源方案如图12所示。板子的供电来源于12 V/ 2A的电源适配器,经过DC-DC以及电源稳压器分多路
输出供给ZYNQ、FMC接口、USB和DDR外设电路。
由于电源种类繁多,上电顺序直接决定了系统的正常工作与否。上电顺序利用各电源芯片的使能脚与PGOOD脚配合比较器(MAX15021无PGOOD指示,利用比较器与参考电压比较实现PGOOD)实现。系统电源的上电顺序控制如图13所示。
图12 电源方案
图13 系统电源上电顺序控制
3.1.2 时钟系统设计
FPGA的时钟主要包含PS时钟与PL时钟,其中PS经过内部互联可以为PL提供4路时钟。系统设计时为PL预留了100 MHz时钟输入。PS时钟根据数据手册要求,频率范围30 MHz~60 MHz,选用了
33.33 MHz。在FPGA内基带数据传输和处理均由AD9361的DATA_CLK提供时钟。 3.1.3 ZYNQ与AD9361的接口设计
ZYNQ与AD9361的接口分为数据接口与控制接口(SPI和GPIO),如图8所示。ZYNQ PS中集成了SPI外设,其引脚通过MIO引出。与AD9361的数据接口由PL侧的IO实现,工作在LVDS差分模式下。
90 实 验 技 术 与 管 理
ZYNQ数据处理板实物图见图14。
图14 ZYNQ数据处理板实物图
3.2 FPGA程序设计
ZYNQ数据处理板一边通过网口与PC连接,另一边通过FMC与AD9361射频板连接。该SDR平台的数据链路分为收和发。接收链路时,ZYNQ处理板从AD9361读取数据,并将其经过处理后封装成网络包的形式上传给PC;发送链路时,ZYNQ处理板通过网口从PC获取基带数据,经过处理后封装为AD9361希望的帧格式传给AD9361。ZYNQ处理板的主要功能是实现AD9361数据接口逻辑、网口协议逻辑、部分基带数据处理。FPGA功能框图如图15所示。
图15 FPGA功能框图
FPGA程序设计包括逻辑部分PL和处理器部分PS的程序设计。图15中,PL侧主要实现AD9361接口逻辑、基带数据处理,以及必要的存储,PS侧主要实现网口协议逻辑。PL和PS间通过片内的互线
AXI-HP进行数据交互。AD9361接口逻辑中主要包括单数据速率与双数据速率的转换(SDRDDR、DDR SDR),以及高速并行数据线的信号延迟调整,基带数据处理包括直流失调矫正模块(dc_filter)以及数据打包与解包模块(dac_unpack和adc_pack)。
PS侧实现基于Socket的网络编程,尝试了2种方法。一是嵌入Linux操作系统,在操作系统上实现网络编程。此方法最终实测单向网络数据速度约 800 Mbit/s,CPU占用率高达100%。二是尝试了no-OS的设计,首先移植系统中底层硬件的驱动程序,包括
PS-SPI、IIC、AD9361-PHY、千兆以太网(Gigabit Ethernet,GigE)、UART等外设,移植工作主要是接口的匹配。软件最终的文件目录如图16所示。
图16 软件文件目录层次
具体的程序设计细节较繁琐,此处不再详述。经过no-OS的网络接口实现,CPU效率很大程度提高,解决了第一种方法中100% CPU占用率导致其他程序无法运行的问题。
4 PC端基带数据处理
4.1 平台环境
SDR平台PC端的软件设计包括对硬件平台的控制和高速基带数据处理两部分。目前较成熟的PC端开发环境有Windows下的Matlab,以及Linux下的GNU Radio。
GNU Radio是一套免费开源的数字信号处理软件开发工具,提供多样化的信号处理模块,如数值计算
模块、FFT/IFFT模块、MPSK的调制解调模块、数据类型转换模块、内插和抽取模块、信道编码模块等[11]。GNU Radio可通过C++或Python编程,同时提供GRC图形化编程界面[12]。
4.2 802.11a基带数据处理流程
802.11a协议中的帧结构如图17所示。每一帧数据由10个短训练序列、2个长训练序列、信号字段和
张鹏辉,等:基于ZYNQ-7000 FPGA和AD9361的软件无线电平台设计 91
数据字段组成[13]。
通过阅读802.11a协议文档和相关资料,总结发送端基带数据处理流程如图18所示。可以看到,它是按照图17的帧结构进行数据组织和合并。接收端按此
流程的逆过程做数据拆解处理。
有很多关于802.11a物理层规范的文档,可以参考这些文档理解这一部分的处理流程和OFDM符号的规范,这里不再赘述[14]。
图17 802.11a协议中的帧结构
使用GNU Radio的GRC图形化编程界面,设 计发送端程序如图19所示,接收端程序如图20所 示。下面将分别简要介绍发送端和接收端的模块化 设计。
图19发送端程序中,Message Strobe模块按照Period设定值,周期性的生成原始数据;OFDM MAC将物理层地址和输入的数据打包成一个物理帧输出至
WIFI PHY Hier;WIFI PHY Hier完成输入的物理层数据到基带数据的转换,输出后乘以系数0.5对输出幅
图18 802.11a基带数据处理流程
图19 GNU Radio发送端程序
92 实 验 技 术 与 管 理
度作调整,Packet Pad2 将输入的数据首位添0,保证传输的稳定性,接下来的部分将复数拆分为实部和虚部,并将IQ两路浮点数据乘以系数转换成整形,合并后通过网口传输。
图20接收端程序中,接收端从网口获得数据后,将整形的IQ两路数据转换,并合并为复数,将复数送至WIFI PHY Hier模块。该模块完成基带数据到物理层数据的转换,并输出至OFDM Parse MAC模块。OFDM Parse MAC模块解码物理层数据,获得物理地
址等信息后将数据发送至PDU to Tagged Stream模块,该模块输出至显示模块,显示解码信息。
发送端和接收端都使用了WIFI PHY Hier模块,该模块是程序中的核心部分,完成物理层数据到基带数据的处理,该模块的内部框图如图21所示。该模块分为两部分,上半部分完成发送端物理层数据到基带数据的转换,下半部分完成接收到的基带数据到物理层数据的转换。该部分程序可参考802.11a的基带数据处理流程(图18)帮助理解。
图20 GNU Radio接收端程序
图21 WIFI PHY Hier模块的程序
张鹏辉,等:基于ZYNQ-7000 FPGA和AD9361的软件无线电平台设计 93
5 系统测试
搭建两套SDR平台(一套用于收,一套用于发),AD9361射频板插接到SYNQ数据处理板上,SYNQ数据处理板通过网线和PC连接。在PC端运行GNU Radio,执行4.2节描述的802.11a基带数据处理程序。一台PC运行发送程序,将处理好的基带数据交由SYNQ处理板进行进一步的数据处理后交由AD9361射频发送;另一台PC运行接收程序,射频信号先经过AD9361射频板接收并处理至基带,然后交由FPGA做初步的基带处理后传给PC,PC进行基带数据处理后完成最终的接收。发送和接收的两套SDR平台需配置相同的射频频点及通信制式(该实验中使用QAM4)。发射接收之间相隔5 m放置。
接收端的星座图如图22所示。共统计了10 000帧数据,误码率为零,说明AD9361数据接口、基于千兆以太网的数据传输等所有数据通路中数据无遗漏、无传输错误,验证了该SDR平台的通信可靠性。星座图不聚集,说明系统存在一定的噪声。提高发射功率,提高接收增益会使星座图聚集。
6 结语
设计了基于AD9361和ZYNQ-7000系列FPGA的软件无线电平台。PC上使用GNU Radio实现了802.11a标准的基带数据处理。最后通过两套SDR设备的搭建,一套发送,一套接收,验证了整个系统的通信可靠性。该SDR平台对于通信类学生的实践教学和科研工作有重要价值和意义。 参考文献 (References)
[1] [2] [3] [4] [5] [6] [7] [8]
肖维民,许希斌,朱键,等. 软件无线电综述[J]. 电子学报,1998, 26(2): 65-70.
杨小牛. 从软件无线电到认知无线电,走向终极无线电:无线通信发展展望[J]. 中国电子科学研究院学报,2008, 3(1): 1–7. 杨小牛. 软件无线电技术与应用[J]. 中国数据通信,2004(6): 121–121.
陶玉柱,胡建旺,崔佩璋. 软件无线电技术综述[J]. 通信技术,2011,44(1):37–39.
曹悦. 软件无线电技术及其应用前景[J]. 计算机与网络,2006, 36(2): 58–60.
杨宇红,袁焱,田砾,等. 基于软件无线电平台的通信实验教学[J]. 实验室研究与探索,2015, 34(4): 186–188.
李智群,王志功. 零中频射频接收机技术[J]. 电子产品世界,2004(7A): 69–72.
Inc.AD.RF Transceiver Rapid prototyping Kit:AD9361 [J/OL]. https://www.microwavejournal.com/articles/priat/23169-rf-transceiver- rapid-prototyping-kit-al9361. [9]
CROCKETT L H. The Zynq book: embedded processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 all programmable SoC[M]. Strathclyde Academic Media, 2014.
[10] 黄伟,罗新民. 基于FPGA的高速数据采集系统接口设计[J].
单片机与嵌入式系统应用,2006(4): 34–37.
[11] BLOSSOM E. GNU Radio: tools for exploring the radio
frequency spectrum[J]. Linux Journal, 2004, 2004(122): 76–81. [12] 曹瀚文,王文博. GNU Radio:开放的软件无线电平台[J]. 电
信快报:网络与通信,2007(4): 31–34.
[13] IEEE. IEEE Std 802.11. part 11: Wireless LAN medium access
control (MAC) and physical layer (PHY) specifications C1-1184[S]. 2007.
[14] GAST M S. 802.11无线网络权威指南[M]. 2版. 南京:东南
大学出版社,2007.
图22 GNU Radio实时基带数据处理测试结果
·词义辨析· 连接与链接
连接(connection)是互相衔接之意,指一般在程序设计语言中允许模块之间交互作用;各种功能部件之间为了传递信息所建立的联系,如级联连接、多点连接。
链接(chaining)在计算机程序的各模块之间传递参数和控制命令、并把它们组成一个可执行的整体过程,如果第一个程序能引发第二个程序的执行,则称这2个程序是链接的,如数据链接、反向链接、搜索链接。
《实验技术与管理》编辑部 编录
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务