基于软件通信体系结构的波形FPGA软件设计方法

余晓玫+高飞


摘 要: 通过对通信波形进行硬件抽象层设计及波形组件划分,提出一种基于通信体系结构的波形FPGA软件设计与实现方法。通过对FPGA的软件工作流程、波形组件、硬件平台、软件层次结构、抽象层的设计方法与连接、波形组件的实现方法等分析与研究,较好地实现了软件和硬件分离,以及组件化的设计思想,最大限度地实现了FPGA软件的移植重用。
关键词: 软件通信体系结构; 波形; FPGA软件; 设计方法
中图分类号: TN92?34 文献标识码: A 文章编号: 1004?373X(2017)01?0010?03
Abstract: A design and implementation method of the waveform FPGA software based on communication architecture is proposed by designing the hardware abstraction layer and dividing the waveform component of the communication waveform. The software workflow, waveform component, hardware platform, software hierarchical structure, abstraction layer design method and connection, and waveform component realization method of FPGA are analyzed and researched to realize the separation of software and hardware greatly, componentization design thought, and FPGA software transplant and reuse to the maximum extent.
Keywords: software communication architecture; waveform; FPGA software; design method
0 引 言
软件通信体系结构(SCA)对软、硬件体系架构和波形组件管理具有重要的指导意义,它是无线电软、硬件体系架构及波形应用程序接口(API)应当遵循的规范和嵌入式、分布式通信波形组件管理、配置、互连互通的标准。现场可编程门阵列(FPGA)是一款基于通信体系结构的信号处理器件,通过编程改变处理器的配置信息,满足不同的设计功能 [1?5]。FPGA的设计集中在芯片中,由配置器件内部的输入/输出端口、逻辑功能完成设计操作,这种设计破解了传统数字印刷电路设计的难度和工作量,设计灵活,电路性能优异、使用效率高,集成度、编程速度和可靠性优于传统数字电路系统[6]。
当前主流的FPGA在逻辑架构上已从仅含一种基本逻辑块的同构FPGA发展为具有多种逻辑块的异构FPGA,同时在互连线上包含了直线、扭线和拐线结构,设计越来越复杂,贯穿整个FPGA的是直线在水平方向和垂直方向的互连线,这也是直线的特点,其主要用于全局的复位线、时钟线等,且改直线经过tile时并不需要偏移。FPGA的扭线主要用于多倍线、长线等,每个tile之间的连接方式是由互连线以循环交错的方式连接完成。FPGA互连线的拐线结构主要由水平和垂直方向的多段扭线连接组成[7?9]。FPGA的测试技术主要测试芯片资源,因为芯片资源是该器件的核心部件,由编程验证各单元逻辑功能是否正确并且要求编程覆盖FPGA所有的连线资源、逻辑资源[10]。基于此,本文对通信波形进行硬件抽象层设计及波形组件划分,提出一种基于通信体系结构的波形FPGA软件设計方法。
1 FPGA工作流程与波形组件
1.1 FPGA工作流程
信号处理模块FPGA由中频处理设备、射频控制设备、基带协处理组件等组成,FPGA的工作部分是硬件抽象层,信号处理模块FPGA的几个部件间及部件与外部部件数据和信息的交换就是由硬件抽象层通过统一、标准的接口完成部件间或部件与外部的信息交换[11?14]。该硬件抽象层接口协议包括常用的多种并行、串行、高速串行总线等,支持任意接口之间的数据转发和可打断数据及不可打断数据,可以实现配置多种数据位宽和任意接口和波形组件之间的数据传输以及仲裁传输优先级数据信息。其工作流程如图1所示。
1.2 FPGA波形组件
波形是指为完成无线通信双方信息间的无线传输采取变换信息传输所有协议的系列变化过程,波形变化可以完成用户输入信息、射频频入、输出等功能,实现无线电台和用户信息的交流。FPGA采用不同类型的存储器实现可编程功能,对于一种较复杂的波形来说,由波形的定义可知它包含了许多种变换,因此,需要较多的硬件、软件实现变换功能。
FPGA波形组件组成部门主要包括信源编译码、信道编译码和调制解调等,其内部由多个模块实现不同通信体制的功能。波形组件属于独立于硬件的功能模块,模块间以接口相连,各自具备自身模块的功能,是实现执行和可重用通信功能的软件应用程序,模块和接口共同构成波形组件库。图2为波形组件划分的示意图,图中RF表示射频设备、IF表示中频设备、I/O表示用户接口设备、BCP表示基带协处理组件、BP表示媒体链路组件、MAC表示媒体接入组件、NET表示无线网络组件、Safe表示安全/密码设备、LLC表示逻辑链路组件。
波形组件为了方便跨平台移植、集成硬件抽象层,采用相应的功能模块封装对应的通信波形软件。与此同时,波形组件划分原则是参照高内聚低耦合和分而治之进行,其中RF,IF,BCP部署在FPGA上,BP,MAC部署在DSP上,LLC,NET,Safe,I/O部署在GPP上。
2 无线通信的FPGA软件设计与实现
2.1 FPGA硬件平台原理
为实现数字信号处理的功能,硬件平台采用如图3所示的基本结构。具体分析如下:AD9862芯片是进行模拟信号采集转化为数字信号的装置;FPGA芯片和AD9862芯片之间的连接是通过高速并行接口与A/D接口和D/A接口完成,用于实现数字信号的处理工作;DSP6416芯片和FPGA芯片的通信连接由EMIF接口完成,该接口无需时钟信号,接口模式为异步接口,只进行低速的数据传输,该接口传输的读写信号可以完成DSP响应硬件中断操作和FPGA的读写操作。
2.2 FPGA抽象层的设计方法与连接
在通信体系结构刚开始的嵌入式系统是由ASIC完成,但是随着FPGA芯片计算传输速度的加快,为了提高波形应用软件的可移植性和可升级性,实现更加接近电台天线并扩展电台平台的边界,作为可编程的硬件设备,FPGA芯片应用到通信体系结构中可以实现上述要求。这是因为,FPGA芯片的物理输入输出端口未从应用程序中抽象出来,在移植新平台时无需像通用处理器和DSP芯片改变接口,这得益于FPGA中的任何算法都是根据具体逻辑电路计算完成,提高波形的可移植性对SCA和FPGA都十分重要,可移植性和可升级性的实现可以节约时间、减少复杂的操作。
FPGA抽象层的设计方法是通过工具软件对硬件描述语言设计完成,在语言设计过程中包括综合分析、实现编程和下载编程,而FPGA抽象层的算法设计是对不同接口采用抽象对应的HAL模块化设计出通用的HC对外接口计算完成,具体设计连接见图4。
图4表示硬件抽象层的连接实现,图中“○”代表HAL?C端点,即抽象连接开始的地方,HAL?C是SCA的硬件抽象层连接专用硬件补充规范引入的,该通信机制与硬件平台无关;HC表示波形组件,HAL表示硬件对外端口的抽象,HAL?C提供的通用通信API可以实现最小化的硬件平台通信机制对软件设计的影响,最小化的影响有助于减少软件移植过程重复编写代码,提高了新建平台的可移植性和可升级性,实现了开发系统波形与硬件平台的有效分离,既节约了时间,也减少了移植成本费用。HAL?C API也为波形组件提供了一个底层的通信接口,其中,底层API接口可以实现波形组件1,波形组件2的通信功能,两个组件的通信不是直接进行而是通过HAL?C提供的通信机制实现。因此,组件开发者把数据发送到硬件对外端口即可实现硬件抽象层具体数据的传输。
2.3 FPGA波形组件的实现方法
FPGA波形组件的实现方法需要划分波形组件,划分的方法主要是指把中频处理设备、射频控制设备、基带协处理组件等安排在FPGA上,实现器件正常运行。具体FPGA波形组件实现方法以中频处理设备为例进行系统论述。
图5为中频处理设备API接口定义,API分为A1,A2,B,C1,C2,E,F,G,K,H共10个部分。其中,F部分的IFProcDataConsumer接口来自于D部分的Packet:PayloadStatus接口,为了更好地理解接口间的连接,采用自定义一个E部分的pushPacket函数,同时该接口被基带协处理组件调用,使中频处理设备获得下行数据。自定义pushPacket函数的原型为pushPacket(in CF::OctetSequence payload)。中频处理设备发送过来的上行数据接收工作可由F部分的IFProcDataConsumer接口完成。
F部分IFProcDataProducer接口属于中频设备控制接口并且来自于G部分PayloadControl接口,该接口通常在波形初始化或由基带处理组件在运行时调用两个接口之间相互配合接收的上层数据,主要功能是实现用户传输分组长度的功能,进而实现一系列的参数配置工作,使得各层之间有机结合。
3 结 语
通过对通信波形进行硬件抽象层设计及波形组件划分,提出一种基于通信体系结构的波形FPGA软件设计与实现方法。该方法使得多个通信波形的各波形组件能够运行在通用的、开放式的硬件平台上,良好地实现了软件和硬件分离,以及组件化的设计思想,最大限度地实现了FPGA软件的移植重用。通信体系结构的波形FPGA是目前比较先进的软件通信体系结构的设计方法和思想,实现波形的可移植性和可升级性是无线通信设备顶端设计的直观反映。今后,制定适合实际情况的FPGA软件对将来无线通信系统体系的设计及使用模式将起到指导性的作用。
参考文献
[1] 洪錫军,刘献科,张激.基于SCA的无线通信技术研究[J].计算机工程,2005,31(8):120?122.
[2] 孙晓东.FPGA软件设计[J].电脑编程技巧与维护,2010,12(2):5?6.
[3] 邓刚,高宏伟,周军辉,等.FPGA上SCA波形组件接口的设计与实现[J].信息通信,2012(4):16?19.
[4] 郭锐,范建华.FPGA硬件抽象层连接的设计与实现[J].中国新通信,2007(2):60?63.
[5] 刘畅,李智.基于FPGA的任意波形发生器的设计[J].微计算机信息,2010,26(2):130?132.
[6] 丁晖,李靖,唐文杰.基于FPGA 软件/硬件协同设计模式[J].计算机与数字工程,2010,38(9):115?116.
[7] 孙佩刚,赵海,张文波,等.基于软件通信体系结构的波形实现及其研究[J].计算机工程,2006,32(17):170?172.
[8] 王琳,刘涛,余秀美.基于软件通信体系结构的波形组件化开发技术研究[J].移动通信,2011(6):68?71.
[9] 郭锐,范建华.软件无线电台中FPGA波形的可移植性[J].山西电子技术,2007(2):60?61.
[10] 石贼弟,电小璜,炼锬可.一种基于软件通信体系结构的波形组件动态部署方法[J].计算机测量与控制,2014,22(9):3058?3061.
[11] 邱永红,朱勤.基于软件通信体系结构的无线通信系统研究[J].系统工程与电子技术,2004,26(5):621?623.
[12] 常济崧,吴宇,施峻武.基于SCA的可移植FPGA波形组件接口设计[J].现代电子技术,2010,33(4):79?82.
[13] 刘攀,周强,朱珂,等.基于VPR的层次式FPGA结构描述方法研究[J].微电子学,2009,39(1):105?111.
[14] 孙黎,张涛,周珊.基于ATE的FPGA 软件自动化测试技术的研究[J].计算机技术与发展,2014,24(8):6?10.
[15] 邱永红.无线通信波形描述方法研究[J].电视技术,2007,47(5):19?24.