APP下载

通用信号处理中的硬件抽象层连接设计

2011-03-05

电讯技术 2011年6期
关键词:信号处理波形组件

钟 瑜

(中国西南电子技术研究所,成都 610036)

目前,军用航电系统设备正朝着模块级高度综合化的方向发展,模块级高度综合化带来了设备整体性能提升,体积减小,功耗和全寿命周期成本降低,设备可靠性、可扩展性和维护性提高。模块级高度综合不再是单纯的总线统一和设备互联,而是功能线程化、硬件统一化和设备整体化。因此,系统设备中模块应采用软件无线电设计方法,具备开放式体系架构,具有可配置、可重构、可扩展以及易于升级的技术特点,其信号、信息等处理模块应构建于通用硬件平台上,并在此之上构建统一的软件通信接口机制和抽象结构,通过降低应用软件开发和硬件平台耦合度提高应用软件设计的可移植性和可靠性,为设备研发提供应用快速集成、新应用动态插入、新技术灵活扩展等技术优势。

1 主要技术背景

图1为典型软件无线电设备抽象结构,从设备组成上看,处于最底层的硬件设备提供了信号处理波形软件和平台软件的运行环境,这些硬件设备包括通用处理器(GPP)(如PowerPC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)以及专用集成电路(ASIC)。

从软件运行环境看,作为系统的管理和控制器,GPP处理器上运行操作系统,以及在SCA规范中称之为核心框架的CF软件,它是与操作系统集成并提供设备实时服务的基础软件集合,更高一层则是信号处理波形、协议处理或其它软件组件。随着DSP/BIOS等DSP操作系统的应用,DSP处理器也可作同样的扩展。而FPGA由于不具备软件运行的操作系统环境,仅通过整体或部分载入其逻辑阵列配置代码流来完成应用功能的动态配置,或是对功能参数化后封装到ASIC中。因此,对于整个波形实现抽象过程,波形软件在完成算法模型建立、实现需求分析和仿真设计后,其实现则根据对处理数据吞吐率和处理能力的不同要求,部署到采用C/C++等高级设计语言的GPP、DSP处理器,或者更高数据吞吐率的FPGA、ASIC处理器。

图1 软件无线电设备中的通用信号处理Fig.1 General signal processing in software defined radio equipment

SCA是软件无线电设计方法的核心思想体现,从系统层面上提出了构造软件无线电台的方法和要素,以及在该框架下软件的通信体制和管理方法。为建立独立于具体应用的软件无线电体系结构,美军在JTRS中引入了软件通信体系结构SCA,以满足可配置软件无线电台的基本需求。

如图2所示,一个SCA框架下软件无线电系统的操作环境(OE)包含SCA核心框架(CF)、公用对象请求代理结构(CORBA)和操作系统。CF是作为系统物理设备和应用的管理框架软件,提供软件波形的安装、配置、管理和控制。

软总线CORBA是由OMG提出的一种异类计算环境互操作的标准,简单地讲,CORBA是类似于HTTP的协议层,运行于一定的数据传输机制之上。CORBA提供了在不同操作系统、编程语言等环境下应用程序与核心,以及应用程序之间的信息交互和互操作平台,从而支持在SCA框架下应用的动态插入和互联。

图2 SCA开发和应用环境Fig.2 Development and application environment of SCA

常用的信号处理硬件平台大多基于DSP、FPGA、PPC 3种芯片,信号处理波形组件通常在DSP、FPGA一类非CORBA设备中实现,不能直接与SCA API连接。目前,实现这类非CORBA组件在SCA框架下的连接应用有两种方式,一种是采用专用的DSP ORB 和 FPGA ORB,国外 CRC、OSI、Selex、Prismtech等公司已开发出商用产品,但其产品根据实际应用的裁剪和移植还存在一定难度,其应有的性能指标还有待进一步验证;另一种方式则是采用硬件抽象层连接(HAL-C)技术,基于统一的ORB代理结构设计HAL底层通信机制,为波形组件和其它组件之间的数据和控制流信息交互提供与SCA兼容的通信服务。

基于SCA的硬件抽象层连接技术(HAL-C)是在SCA3.0专用硬件补充规范(Specialized Hardware Supplement,SHS)中提出,它针对不支持CORBA的硬件如DSP、FPGA等给出了通信机制和底层通信接口的基本设计思路。本文将采用第二种方式,基于该设计思路提出解决HAL-C应用中的波形组件封装、配置表连接、CORBA适配等关键问题的具体技术途径。

2 主要设计思路

根据JTRS-5000SCA3.0SHS中提出的硬件抽象层连接基本设计思路,执行波形算法处理的功能程序作为一个波形组件HC(HAL-C Component),其封装设计的主要目的是为HC提供一个底层的通信接口,如图3所示,这些底层接口包括硬件抽象通信节点HAL-C Endpoint和HAL的连接模型。

图3 HAL-C模型Fig.3 HAL-C model

如图4所示,对于通用信号处理平台中运行在DSP、FPGA等非CORBA组件中的波形处理软件,其封装和抽象连接过程首先要进行数据流和控制流接口的定义,并以硬件抽象层组件HC结合Endpoint的方式对波形软件进行封装;在为标准的通信节点定义数据结构和指针后,组成包含多种组件名称、缓冲区指针等的Endpoint配置表;通过与域描述文件的适配配置表将形成与波形组件管理配置XML文件SPD、SCD、SAD等的映射关系,从而实现在SCA框架下信号处理波形组件数据连接、控制和配置等HAL连接应用。

图4 HAL-C的主要设计思路Fig.4 The main design thought of HAL-C

3 C环境下DSP的HAL-C设计

对于DSP类的处理器单元,HAL具体实现两个HC交互数据的通道,HAL-C Endpoint是HC的可寻址输入输出接口,HC使用HAL-C应用接口API来访问Endpoint,用以发送和接收数据。如图5所示,其结构包括HAL-C组件HC、可编址的输入输出节点Endpoint、HAL-C基础结构以及节点配置表。

HC使用HAL-C API来访问与组件绑定的Endpoints用以发送和接收数据,HAL-C基础结构则把数据通过逻辑信道发送到目的Endpoint。配置表通过动态配置Endpoint的信息,实现系统数据流的定向和对组件参数的配置。在DSP中嵌入如DSP/BIOS等操作系统后,可通过操作系统中的底层硬件初始化函数以及提供的数据收发寄存器完成HAL的功能。

图5 DSP中的硬件抽象层连接Fig.5 HAL-C in DSP

SHS中首先定义了类HalcEndpointHandle来表征HC和Endpoint之间的对应关系,HalcEndpoint-Handle返回的句柄作为API函数的操作参数。SHS定义的API函数如下:

(1)获取句柄操作halcGetEndpoint

函数原型:halcResult HalcGetEndpoint(halcEndpointHandle*eph,char*componentName,char*endpointName);

该函数在HAL-C基础结构配置表中查找与指定组件名和终端名匹配的endpoint,把指定了该组件名的终端返回给eph指针,其它API函数通过这个指针来访问endpoint。

(2)发送数据操作halcSend

函数原型:halcResult halcSend(halcEndpoint-Handle eph,uint32 maxLength,uint32*bytesSent,void*data,uint32 timeout);

halcSend操作是将由参数data所指向的地址处、最大长度为maxLength的数据传送到ehp指定的终端,由HAL-C基础结构完成将数据传送到eph所指向的目标endpoint的操作。

(3)接收数据操作halcReceive

函数原型:halcResult halcReceive(halcEndpoint-Handle eph,uint32 maxLength,uint32*bytesReceived,void*data,uint32 timeout);

halcReceive将最大为maxLength长度的数据传递到由输入参数data所指向的地址,并返回输出参数bytesReceived,表明实际被传输的字节数。只有数据接收完成或者timeout事件发生,halcReceive()操作才能结束,否则将一直处于阻塞状态。

(4)终端注册回调功能

函数原型:Typedef void(*halcCallback)(void*token,halcResultstatus,uint32 length,void*data)

halcResult halcRegisterCallback (halcEndpoint-Handle eph,halcCallbackcb,void*token,uint32 timeout)

定义的halcCallbak指针是指向要与终端绑定的功能函数。halcRegisterCallback()注册回调功能接口是在组件没有调用接收功能的情况下,提供HAL-C基础结构向组件发送数据的能力。halcRegister-Callback函数用参数halcCallback定义的功能操作函数来注册eph参数指定的endpoint。如果halcCallbak是null,halcRegisterCallback()将取消所有与eph指定终端相联系的halcCallback操作。

综上所述,HAL-C在C环境下DSP中的主要实现技术途径是:

(1)通过制定C程序波形组件接口设计规范,运用指针操作的输入输出数据和控制参数设计,完成组件接口的标准化;

(2)通过DSP操作系统DSP/BIOS建立DSP外设接口函数库和对应节点的输入输出数据和控制参数结构 和指针 ,包括 TI C28x、C54x、C62x、C62x、C64x、C67x 系列 DSP 的 EMIF、McBSP、SPI、HPI、DMA、GPIO等外设接口;

(3)建立节点连接配置的数据结构,作为注册节点详细状态的配置表,算法组件根据配置表指定的节点指针实现与节点的数据收发,HAL-C基础结构则通过改变配置表节点与数据流关系,重新定向数据流;

(4)通过4种API应用,即:获取终端句柄操作halGetEndpoint()、发送数据操作halSend()、接收数据操作halReceive()、无接收要求基础结构向组件发送数据的终端注册回调halCallBack(),建立HAL-C基础结构的数据收发机制和控制流程,实现节点与HAL以及不同物理连接HAL之间的数据收发。

4 硬件描述语言环境下基于FPGA的HAL-C设计

对于 FPGA来说,根据SCA规范中“provides”和“use”把硬件连接机制抽象成 source、sink模块。source模块负责数据的发送,用于从HC向HAL-C基础结构传递数据。sink模块负责数据的接收,用于从HAL-C基础结构接收数据并送给HC。

HAL-C的FPGA实现,主要采用以下技术途径:

(1)通过制定VHDL程序波形组件接口设计规范,完成对VHDL算法组件的参数化;

(2)建立如图6所示的source、sink模块接口,其中,clock—该接口的同步时钟,所有信号与该时钟同步;data—数据总线,总线的宽度可以是1,8,16,32,64位;channel—与数据传输相关的逻辑通道号;length—定义数据缓冲区中要传输的字节数;write—传输数据的使能信号;socketRequest—逻辑信道接口请求访问sink逻辑信道;socketReady—流控应答信号;

图6 FPGA中的模块接口Fig.6 Module interface in FPGA

(3)建立与DSP、PPC等处理器的标准外设接口模块库,包括与 EMIF 、McBSP 、SPI、HPI、DMA 、GPIO、Ethernet等外设的接口模块设计;

(4)建立sink与source模块,以及 sink、source模块与外部物理接口模块之间的通信机制,并设计握手机制下的数据传输流程和不适用握手机制的连续数据传输流程。

5 HAL-C设计应用

如图2所示,SCA核心框架CF(Core framework)提供应用运行接口和服务,波形组件在软件无线电设备中的连接应用是通过CORBA指定的XML代码提供与CF的“粘贴代码”,由CF完成波形组件的应用部署、配置和控制管理。

对于一个波形组件的抽象连接应用,主要有以下几个步骤:

(1)算法组件设计,建立针对DSP、FPGA的信号处理波形算法仿真和实现代码,并完成功能和性能调试;

(2)组件HAL设计,依据第3节和第4节建立信号处理算法组件的HAL,完成波形软件的封装,并根据域描述文件定义,把软件包描述(SPD)、软件组件描述(SCD)、设备包描述(DPD)等文件中关于配置表的标记元素与配置表参数相对应;

(3)XML域描述文件生成,提供算法组件及其运行相关的硬件组件作为SCA组件所需的XML域描述文件,SPD、SCD、DCD、PRF等;

(4)建立SCA应用,如图7,通过软件装配描述(SAD)、设备配置描述(DCD)设定应用的组件组成,指定每个应用必须建立多少组件实体,组件实体间的分布、连接和约束,以及哪一个软件组件指定为装配控制器,哪一个硬件组件作为软件运行平台;在安装之前,某一应用封装到一个文件当中,包括每个组件和装配的设定域描述文件和功能实现程序、库文件的二进制源代码;

图7 软件装配描述Fig.7 Software assembly description

(5)应用安装,对于某一应用其安装过程主要是把一个SAD文件和若干SPD、SCD、PRF和算法编译二进制代码和库文件拷贝到指定的硬件运行环境,构成设备功能应用条件;

(6)SCA应用的部署和测试,核心运行环境通过读取SAD等软件信息选定将要部署的组件,通过设备管理信息指定应用的硬件设备,并根据组件约束部署相关功能二进制代码到相应的DSP、FPGA等处理器,经过对已部署软硬件组件的初始化配置和输入输出连接完成应用的部署,同时通过初始化过程和连接实现应用功能和组件的测试。

6 结束语

SCA是由美军以军事需求作为牵引,多个组织参与设计并以商业化作为重点设计的,自该规范提出以后,国外公司从2005年开始都先后将该规范转变为设计工具、设计软件包等货架式产品,一方面,其产品强调其先进的设计理念和流程,另一方面则注重采用TCP/IP、XML等已广泛应用的成熟技术,以利用已有的商用产品,最大化SCA技术应用的商业价值。因此,国内特别是军工行业相应的SCA技术研究重点应一方面吸收软件无线电设计的核心思想,从设备应用和技术需求出发,在尽可能保持原有设备设计,尽量减少软硬件资源和设备总线数据传输带宽等开销的前提下,对目前已有产品进行从设计、调试到验证等生产流程的SCA兼容性改造。另一方面,在此基础上针对国内行业特点,大力推行SCA兼容产品的设计、接口、测试和生产等相关规范,加速新产品的研发、拓展技术应用范围,并逐步形成以我为主的国内军用行业规范。

[1]MSRC-5000SRD.V2.2,Software Communications Architecture Specification[S].

[2]JTRS-5000SP V3.0,Specialized Hardware Supplement to the Software Communication Architecture(SCA)Specification[S].

[3]John Bard,Vincent J Kovarik Jr.Software Defined Radio The Software Communications Architecture[M].New York:Wiley Press,2007.

[4]Peter G Cook,Wayne Bonser.Architectural Overview of the SPEAKeasy System[J].IEEE Journal on Selected Areas in Communications,1999,17(4):650-661.

[5]Arthur Akhurst.Scalability Aspects of the SRA[Z].Software Defined Radio Forum Contribution,2001.

[6]Lee Pucker.Applicability of The JTRS Software Communications Architecture In Advanced Milsatcom Terminals[C]//Proceedings of 2003 Military Communications Conference.[S.l.]:IEEE,2003:533-537.

猜你喜欢

信号处理波形组件
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
基于LFM波形的灵巧干扰效能分析
用于SAR与通信一体化系统的滤波器组多载波波形
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
基于ARM的任意波形电源设计