网站首页  词典首页

请输入您要查询的论文:

 

标题 基于Zedboard的软件无线电软件平台的设计与实现
范文

    华抒军

    

    

    

    摘要:基于未来软件无线电系统的发展,本文利用Zedboard嵌入式开发板和AD9361射频卡搭建高度集成的嵌入式软件无线电平台硬件链路,并实现了嵌入式软件平台的构建和数据传输方案,最后对方案做了相关测试验证。该系统具有扩展性高、集成度高、功耗低的特点,开发过程成本低、周期短,对软件无线电系统的发展具有重要意义。

    关键词:通信终端;软件无线电;实现;Zedboard;嵌入式;AD9361

    中图分类号:TN924 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.10.016

    引言

    1992年5月,J.Mitole首次提出了“软件无线电”的概念,此后软件无线电收到越来越广泛的重视。软件无线电的核心思想是构建一个通用、标准、模块化的统一硬件平台,通过软件可编程实现多种协议标准,因而软件无线电平台具有广泛的应用前景。

    目前,大多数软件无线电平台都基于PC处理器架构,整套系统体积大、成本高,工作场景、工作制式受到限制,在PC架构下,平台的实时性和高速性很难得到保证,因而现有的软件无线电平台局限于科研领域,很难向更广泛的领域推广。

    随着物联网、智能终端等小型设备越来越普及,无线电设备正在趋向于低功耗、低成本、无线化发展。软件无线电平台以其通用性、可扩展性、高速性的特性需求,也将趋向于小型化、便捷化发展。为此,本文基于Zedboard板卡ARM+FPGA混合架构的特点,配合AD公司的9361射频板卡,搭建了小型嵌入式软件无线电平台,并实现了基于Zed-board的嵌入式软件平台的开发。通过对相关性能进行测试,验证表明,小型化嵌入式软件无线电平台具有良好的应用前景。

    1 系统架构

    1.1 硬件结构

    Zedboard是基于Xilinx 2ynq-7000扩展式处理平台的嵌入式开发板。Zynq采用ARM+FPGA架构,具有高度集成性。用户可以根据需求将不同的模块连接起来,实现自定义逻辑功能。Zynq的ARM子系统中集成了大量的外设和内存控制器,使得处理子系统可以单独工作。而FPGA部分含有大量的可扩展模块。整个系统具有丰富的处理器和扩展资源,因而对软件无线电平台的开发具有得天独厚的优势。如图1所示是Zedboard开发板示意图。

    AD9361是ADI公司开发的一款高性能射频捷变收发器。ADI公司提供了板卡对应的FPGA驱动,通过Zedboard提供的FMC接口和AD9361射频版直接相连,移植板卡驱动,可以很快搭建软件无线电平台的硬件链路部分。

    1.2软件无线电平台架构

    软件无线电平台通常由基本的硬件平台和软件平台构成,本文系统的整体架构如图2所示。硬件链路如上文所述。软件平台采用嵌入式Linux系统,嵌入式Linux具有系统稳定、成本低、可移植性高、支持多种处理器支持的特点。在已有的硬件资源基础上,本文通过白定义Zedboard的IP核资源,移植嵌入式Linux系统,开发并实现了软件平台的数据传输程序。最后,通过发送指定波形数据,完成基于Zedboard的软件无线电平台的链路测试。

    2 基于Zedboard的嵌入式Linux平台开发

    嵌入式系统移植是嵌入式软件开发的必备环节,本文基于Zedboard开发板,移植嵌入式Linux系统,搭建软件无线电系统的软件平台。

    2.1 交叉编译环境

    不管是系统移植还是应用程序开发,都需要搭建相应的嵌入式开发环境。本文开发环境使用Xilinx ARM交叉编译工具。

    首先从官网下载Xilinx交叉编译工具,执行以下命令安装:

    root# apt-get install ia32-libs

    root# dpkg-reconfigure dash

    root# chmod+x xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin

    root#./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin

    其次,修改系统环境变量,加入如下配置信息:

    export ARCH=arm

    exportCROSS_COMPILE=arm-xilinx-linux-gnueabi

    exportPATH=/root/C odeS ourcery/S ourcery_CodeBench_Lite_or_ Xilinx_GNU_Linux/bin/: $PATH

    2.2 移植u-boot

    Bootloader是嵌入式操作系统在引导内核或用户程序前的一段程序,本文使用Bootloader的演化版本u-boot作为启动引导。首先,从网上获取u-boot的源码。其次,根据对应Zedboard板卡的需求,本文对u-boot进行相关配置,配置信息存储于zynq_zed_config文件中,主要包含内核镜像,设备树,文件系统,网络地址,加载方式等信息,这些信息需要根据实际硬件信息进行设置。部分配置信息如下表l所示。

    2.3 移植Linux内核

    Linux内核是嵌入式系统的关键部分。由于嵌入式系统比较精简,通常需要对Linux内核进行裁剪。为了加快开发速度,着重于嵌入式应用程序的开发,本文使用Zedboard官网提供的Linux内核。digilent_zed_defconfig是本文使用的Linux内核配置文件,嵌入式Linux系统中所需要使用的功能模块信息都在此文件中进行配置。通过如下命令,完成内核源码的编译。完成后即可在当前目录下看到生成的zlmage文件。

    root# make ARCH=arm digilent_zed_defconfig

    root# make ARCH=arm

    2.4 生成设备树和文件系统

    设备树是描述硬件信息的一种数据结构。相较于设备的每一条信息采用硬编码的方式写入操作系统,由于ARM中没有BIOS,只能通过设备树这种数据结构定义启动中需要的设备配置参数。本文通过Xilinx SDK生成设备树文件,具体配置参数如图3所示。

    在设备树中,需要定义内核命令行参数,参数值如图中bootargs所示。上图中配置的参数会在内核启动阶段传递给内核。通过SDK可以生成适配本板卡的设备树文件。然而AD9361驱动是一种SPI总线驱动,目前只能通过设备树的形式加载。因而需要在生成的设备树文件基础上加入AD9361的设备驱动配置,部分配置信息如图4所示。AD9361的设备树配置中包含了时钟频率、SPI配置、模式启动等各种参数,具体参数设置需要根据后续需求再进行修改。

    Fig.4 Parts of Configuration of9361 Device Tree

    根文件系统是Linux的重要组成部分,文件系统的构成较为复杂,涉及到多级文件目录的创建和配置,在此本文不详细展开,最终生成uramdisk.image.gz文件。在启动过程中,u-boot会将此文件加载到内存中,并将内存地址传递给内核。待内核启动时,即可同时运行文件系统。

    3 数据传输的设计与实现

    Zedboard板卡ARM+FPGA的架构为硬件链路搭建和嵌入式系统移植提供了快速高效的途径,在此基础上,本文实现了软件无线电软件平台的数据链路开发。嵌入式开发环境已在上文配置完成,通过移植AD9361的嵌入式驱动,可以在Zedboard上直接开发应用程序,程序最终需要经过交叉编译使之在Zedboard上运行。

    3.1 参数配置流程

    在进行数据收发前,需要对射频板进行相关参数配置,而参数配置信道独立于I/O数据信道。具体的参数配置流程如图5所示。

    首先,根据实际需求设置参数信息。在AD9361上主要有两个信道用来配置参数信息,分别是:物理配置信道和本振配置信道。物理配置信道可以配置端口、基带带宽、采样频率等信息,通过iio_device_find_channel()函数查找指定信道是否存在,如果存在,则通过信道句柄写入必要的物理信道配置信息,若不存在,则返回错误。配置完物理信道信息后需要对本振参数进行配置,本振配置信道主要用来设定本振频率。在对软件无线电平台进行验证时,可以将频谱仪的频率校准在本振频率的位置,以此来观察发送的波形。

    3.2 数据传输流程

    完整的数据传输流程如下图6所示。

    1、首先需要在Zedboard中打开射频板卡的环境接口句柄,即context信息。通过iio create default_context()函数返回context句柄,如果调用成功,则依赖该句柄查找相关I/O流设备,并返回相应的发送和接收流设备句柄。如不存在,则结束程序。

    2、配置相关信道参数信息,具体的配置流程如上文所示。主要根据发送和接收信道的区别配置本振频率、采样频率、信道带宽等关键射频参数。

    3、在基本的准备工作完成后,根据已获得的流式设备句柄,需要进行I/O信道初始化。AD9361有2个发端和2个收端,本文主要使用其中的发端进行数据传输。通过发送流设备句柄查找发送信道,返回相应的信道句柄。之后使用iio channel_enable()函数使能信道,使信道处于待命状态。

    4、创建发送缓存buffer,返回buffer首地址。随后向buffer中填人需要发送的I/Q两路数据,之后使用iio_buffer_push()函数将buffer中的数据传人硬件链路,由硬件链路负责完成数据的发送。

    4 测试验证

    本平台的测试验证主要包含两方面的内容:参数配置信道功能验证以及发送链路验证。发端波形数据由matlab产生,主要包含单音波和QPSK信号数据。

    配置信道验证通过发送单音信号,调整本振频率、采样频率等参数,使用频谱仪观察发送波形的变化,如图7所示为本振频率2.5GHZ,带宽为2MHZ的单音信号频谱。从频谱仪结果可以看出,配置信道功能正常。

    之后,通过发送matlab生成的QPSK信号对I/O流信道功能进一步验证。QPSK数据中心频率2.5GHZ,带宽10MHZ。下图8所示为QPSK波形频谱仪结果。经过对比,发送波形基本符合原始数据,说明发送波形成功。

    5 结语

    本文详细介绍了基于Zedboard的嵌入式软件无线电软件平台的构建和实现过程。本系统通过Zedboard和AD9361组建高度集成的嵌入式软件无线电平台,相较于传统PC架构的软件无线电平台,具有功耗低、扩展性高、便捷化的特点。同时嵌入式平台降低了系统成本和开发周期,因而具有良好的应用前景。在之后的开发中,本系统还有待进一步的集成和完善。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/5 15:49:34