VPX平台下SCA硬件抽象层设计

2020-06-17 08:46:44韩新力官友廉
无线电工程 2020年7期
关键词:功能模块端口波形

吕 鹏,韩新力,官友廉

(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081;2.中国电子科技集团公司第二十二研究所,河南 新乡 266107;3.中国人民解放军75798部队,广东 汕头 515063)

0 引言

美军在JTRS计划中提出了软件通信体系结构(Software Communication Architecture,SCA),全面制定了软、硬件体系架构及波形API规范,并成功地进行了验证[1]。SCA一经提出就迅速成为这一领域的研究热点,并为SDR论坛接受,推荐为商业应用的标准。

SCA是软件无线电技术的核心,是其开放性、灵活性和可扩展性的基本保证[2]。该技术已经在一些单板卡或者简单的通信设备平台上应用,并针对这些平台设计了专用的通信协议和处理流程。尤其是信号处理系统(SPS),它是软件无线电台中非常重要的功能单元。该系统依靠的硬件抽象层设计主要是DSP,FPGA芯片,但是不仅因为芯片厂商和产品信号的多样性,同时还有其应用的硬件平台结构的多样性,使其在应用的时候会出现各式各样的问题[3-4]。

因此,通过VPX硬件平台搭配专用的硬件处理器(DSP,FPGA),并结合SCA硬件抽象层上的DSP,FPGA芯片搭建一个标准的软硬件平台,将极大地解决平台数据通信接口不统一带来的各种应用问题。

1 SCA及VPX硬件平台

SCA作为一种独立于具体应用的软件无线电体系结构[5],其实现目标是极大地提高通信系统的互操作性和使用的灵活性,便于系统升级和维护,能够提高工作效率和管理成本[6]。

SCA软件操作环境为运行于硬件平台上的波形应用提供标准化接口和核心服务[7]。该操作环境包含符合SCA规范的核心框架,定义了开放的软件接口、组件部署及动态配置方法、硬件抽象、软件架构管理体系、日志服务及分布式文件系统等诸多要素,对嵌入式通信环境中应用组件进行配置,管理和连接。

利用SCA软件操作环境,能够达到基于不同的硬件平台、不同的操作系统、采用不同编程语言编写的应用程序之间互联互通的目的,并把各种对象的属性和操作封装在不同的接口之中[8]。基于以上特点,用户可以自由访问不同异构平台上的资源和对象,大大增强这些资源和对象的可重用性。

SCA硬件平台结构如图1所示,主要由射频模块、通用数字信号处理模块、交换模块、嵌入式计算机模块和通用接口模块组成,其主要优点是提高了硬件模块设计和实现的通用性和开放性,降低了系统开发的成本,节省了系统开发时间。

图1 SCA硬件平台结构Fig.1 SCA hardware platform structure diagram

具体表现为:

① 通用性:基于软件无线电,采用GPP+DSP+ FPGA+AD/DA,具有良好可编程特性和动态加载功能。

② 开放性:当前主流的高速接口SRIO、以太网和PCIE等标准总线,均可接入满足标准的、现有或未来的各类处理模块之中。

③ 标准性:用API封装底层硬件、通信通道方便应用,让用户专注于应用功能的实现。

④ 高性能性:处理器高性能,通信通道高速率、高精度,以满足系统实时性等要求[9]。

现在主流的VPX硬件平台主要有AD9361/AD9371射频直采模块或模拟信道等模拟模块,经过ADC数字化,进入数字处理部分,包括FPGA,DSP等,最后将处理后的结果进行波形输出。

本文在VPX平台上通过板间运行多对串行总线和网络拓扑架构实现平台内部各个板卡间的DSP和FPGA的数据高速传输和处理,同时利用SCA硬件抽象层对DSP和FPGA进行“自定义”式的接口统型,并完成数字处理的功能。这样就实现了软硬件设备的高度标准化,方便后续各种形式的应用。该设计不仅提高了软硬件的重用性,也极大地降低了软硬件的联试时间,提高了工作效率。

2 硬件抽象层简介

为了解决不同处理器之间对外接口的不同而导致的编程、联试效率过低的问题,加载到所需硬件设备上的软件组件接口就必须符合各自不同处理器接口要求,并通过SCA的硬件抽象层(Hardware Abstraction Layer Connectivity,HAL-C)对其进行接口的统一[10]。

SCA软件操作环境如图2所示。硬件抽象层是介于硬件平台和运行于硬件平台的软件之间,用于抽象硬件单元的对外接口,并通过SCA定义的一系列标准的接口API函数,实现与外部单元的通信[11]。通过该方式,可以极大地降低硬件设备对软件系统的依赖程度,有效缓解对各种组件重新编写所产生的工作量,达到提高工作效率的目的。

图2 SCA软件操作环境Fig.2 SCA software operating environment

3 硬件抽象层设计

硬件抽象层主要是为了解决不同硬件组件间的接口的不一致性所导致的传输效率过低的问题,通过对硬件接口的统一规范,利用API函数实现硬件组件与外界的交互[12]。

一个标准的硬件抽象层结构主要由多个处理元件和硬件抽象层组成。现在主流的VPX平台下的数字处理单元模块主要是由DSP组件和FPGA组件组成,其中DSP负责指令收发、数据传输和算法处理等功能;FPGA负责处理对接收的数据并与DSP进行数据通信的工作,其中指令和数据通信主要通过SRIO,EMIF等总线接口实现。

VPX数字处理单元结构如图3所示,其中每个DSP或者FPGA组件均会包含功能模块和对外接口模块2部分,功能模块为连接组件模块,该模块可以实现一些具体的功能,比如FFT、数字下变频和滤波等单一的功能模块,也可以是信号分析、AM解调等具体功能模块。外接口模块主要实现组件与组件或者与硬件抽象层相连层间进行指令或者数据的传输等交互功能,比如DSP组件与FPGA组件之间如何传输,采用什么总线接口等都是由对外接口模块负责的,而功能模块则对这些不需要关心。

图3 VPX数字处理单元结构Fig.3 VPX digital processing unit structure diagram

3.1 DSP硬件抽象层设计

设计DSP硬件抽象层的目的是为在包含DSP的SCA硬件平台上实现不同计算单元上组件间管理的统一性和通信的标准化,为不同计算单元上波形软件和平台软件之间的组件级通信提供标准的协议和接口,最大限度提高波形应用在不同硬件平台上的可移植性和重用性[13]。

由于DSP支持C++的编程,并且在现实的设计中,使用需求灵活、通道资源复杂,因此采取利用嵌入式操作系统,同时结合标准SCA编程相结合的方式。在建立DSP组件时,通过界面化的方式选择DSP的组件类型,生成对应模块类的.cpp和.h文件(比如FFT类)。创建后,类文件中会自动生成其类的构造函数,析构函数,建立、删除、运行、停止及释放等功能标准的接口函数,将所需要运行的各个功能和算法依次对应地填加到相应的函数中即可。例如地址的申请,初始化参数可以添加到构造函数或者建立函数中,每次运行的算法添加到运行函数中,地址的释放添加到释放函数中等。通过以上设置可以方便快捷地调试和验证算法的正确性。

为了便于硬件抽象层DSP软件模块的设计,软件编程人员在不需要知道软件功能模块与DSP外部交互接口的情况下,可以通过DSP操作系统对与DSP关联的硬件驱动进行SCA标准的封装,将不同的芯片驱动进行功能性的API函数封装[14]。同时针对不同的通信总线,比如EMIF、千兆网和SRIO等进行标准、统一封装,让使用者可以在不了解总线的情况下,只要根据所需接收发送数据速率的要求就可以进行API函数的调用,实现DSP与外部组件的交互。

3.2 FPGA硬件抽象层设计

由于FPGA和DSP在执行数字信号处理功能在模式上不同,运行于FPGA上的波形组件的开发不像DSP一样支持C++函数,大多需要用VHDL等硬件描述语言进行开发[15]。FPGA开发组件模型如图4所示,主要由提供者端口、使用者端口、事件信源和事件信宿组成。事件信源和事件信宿主要是组件间利用事件进行通信,除事件外的其余通信方式均由可提供者端口和使用者端口实现。当2个FPGA组件之间进行通信时,一个为事件信源,另一个为事件信宿,事件信源和事件信宿间的信号线一一对应,或者一个为提供者端口,另一个为使用者端口,提供者端口和使用者端口间的信号线一一对应。这些信号线运行在硬件抽象层,由一组标准、统一的接口组成。FPGA的硬件抽象层通过这些标准的接口实现对底层驱动的屏蔽以及完成与其他组件的交互。

图4 FPGA组件模型Fig.4 FPGA component model

信号线完成了硬件抽象层基本信号的定义,如表1所示。通过这12个信号可以完成几乎所有的FPGA内在的功能模块和对外接口的编写,这样编写的组件可以在无需修改的情况下移植到另一个平台。既降低了开发的复杂度,提升了工作效率,又方便利用FPGA进行后期波形处理。

表1 FPGA硬件抽象层信号定义
Tab.1 FPGA hardware abstract layer signal definition

序号信号定义信号说明1XXX_CLK时钟信号2XXX_Reset复位信号3XXX_WR_EN写使能4XXX_RD_EN读使能5XXX_Addr地址6XXX_InvaildAddr无效地址7XXX_Data数据8XXX_vaildData数据有效使能9XXX_Event事件10XXX_Keep有效/无效字节数11XXX_Lens长度12XXX_Sel片选

4 结束语

VPX平台下SCA硬件抽象层设计是在SCA4.0协议的基础上,介绍了VPX硬件平台,并在SCA的硬件抽象层上对DSP和FPGA进行组件化编程,最后通过SCA协议标准对它们进行内在模块和对外接口的封装,使其具有更好的可重用性、可移植性及可操作性。不仅减少了程序的开发难度,而且缩短了接口的联试时间,为后续算法模块的开发、移植及调试起到了极大推动作用。同时结合嵌入式操作系统对DSP类的编写,使DSP编程变得更加简单易用,有效提高了软件模块的开发效率。

猜你喜欢
功能模块端口波形
一种端口故障的解决方案
科学家(2021年24期)2021-04-25 13:25:34
对《压力容器波形膨胀节》2018版新标准的理解及分析
基于LFM波形的灵巧干扰效能分析
测控技术(2018年2期)2018-12-09 09:00:46
端口阻塞与优先级
基于ASP.NET标准的采购管理系统研究
软件导刊(2016年9期)2016-11-07 21:35:42
基于ARM的任意波形电源设计
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
石油知识(2016年2期)2016-02-28 16:20:16
大连台使用CTS-1记录波形特点
初识电脑端口
电脑迷(2015年6期)2015-05-30 08:52:42