APP下载

基于SCA的无线通信波形的DSP软件设计方法*

2014-11-23

舰船电子工程 2014年2期
关键词:基带中断波形

(广州海格通信集团股份有限公司 广州 510663)

1 引言

波形软件具有可移植性是软件无线电的重要优势[1],是软件通信体系结构(SCA)规范期望达到的最基本的目的之一,是在SCA 硬件平台上实现不同体制之间互连、互通和互操作的技术前提[2]。

目前主流的无线通信波形都被划分为物理层、接入层、链路层以及网络层四个部分,而SCA 硬件平台常用的架构是DSP+FPGA+GPP的模式[3],一般来说,物理层是部署在DSP和FPGA 上,接入层是部署在DSP 上,链路层和网络层则是部署在GPP上。作为无线通信信号处理的核心器件,DSP承载了最重要的一部分算法,而由于它必须兼顾信号处理的实时性以及SCA 架构的灵活性,因此DSP软件的可移植性也是SCA 中较为复杂的一部分工作。

2 基于SCA 的DSP软件层次

一个完整的基于SCA 架构的DSP 软件可以分为五个部分:软件框架、硬件驱动库、硬件抽象层、操作系统、波形组件。它们之间的相互关系如图1所示。

图1 基于SCA 架构的DSP软件组成

操作系统提供了各类线程和信号量支持,为硬件抽象层和波形组件的运行提供了必要的软件环境。对于Ti的DSP芯片而言,目前可以支持的操作系统是Ti自己开发的嵌入式实时操作系统DSP/BIOS。一般来说,这一部分是不需要用户开发的,Ti公司已经提供了完整的DSP/BIOS 软件包以及常用的API函数。开发者可以根据需要建立各类不同功能的硬中断、软中断、任务以及后台线程[4~5]。

硬件驱动库的意义在于对于软件开发人员屏蔽繁琐的硬件操作、寄存器配置等工作。针对DSP芯片上的外设或其它可配置功能的API库,包括对DMA、定时器、TCP、VCP、HPI、EMIF、GPIO、PCI、McBSP 等模块的初始化、参数配置以及使用[6]。

软件框架本身不是实现波形功能所必需的,它的作用是为硬件抽象层和波形组件的集成提供一个软件环境,包括数据流、控制流、接口定义以及调用关系等。

硬件抽象层通过屏蔽硬件平台的底层传输机制、封装标准的通信接口,实现波形组件间通信方式与具体硬件平台的分离,保持波形组件底层通信访问接口的一致性,从而易于在异构硬件平台间移植波形组件,提高了波形应用的跨平台可移植性[7]。

波形组件是对软件功能模块进行的面向对象的封装,它具有便于描述、便于集成、便于移植的特点[8]。一般来说,可以根据无线通信分层上来对组件进行划分,结合通信设备实际的接口功能,可以将一个完整的无线通信系统划分为射频控制设备、中频处理设备、基带协处理组件、基带处理组件、接入层组件、链路层组件、网络层组件、安全密码设备、波形管理设备以及IO 设备等。这样划分的好处是对每一层而言,都有明确的功能和接口定义,便于对象化和组件化,而且从划分粒度上来说比较适中。

3 基于SCA 的DSP软件设计

3.1 DSP硬件抽象层的设计方法

硬件抽象层采用分层架构模式,共分为接口交互层、逻辑层和驱动层。其中接口交互层提供了与上层组件(如波形组件,波形管理组件等)进行数据交互的接口和协议,如MOCB 接口等[9]。逻辑层负责使用驱动层提供的操作,从而实现硬件抽象层对上层组件提供的服务。驱动层负责提供对实体(共享内存等)的独立的单一功能的操作。

根据功能将DSP的硬件抽象层划分为若干模块,其中外部接口模块统一提供对上层的服务接口,如读数据接口、写数据接口。控制管理模块提供对硬件抽象层的相关控制服务。路由表维护模块提供了表输入和表查询等对注册有系统和波形相关参数的表的操作接口。数据传输管理模块提供了数据接收和数据发送的接口,该模块是实现数据传输服务的关键模块。事件模块提供了一个中断设置的内部接口和一个中断响应函数的外部接口。通过事件驱动可以辅助完成数据的传输,通过设置不同的事件可以实现多种类型的数据传输。存储区管理模块提供了写数据和读数据接口,主要功能在于调用底层的驱动进行数据交互操作。各个模块之间的功能以及调用关系如图3所示。

图2 DSP硬件抽象层分层架构

图3 DSP硬件抽象层内部模块接口调用关系图

通常硬件抽象层会要求波形组件将LD 号与某个信号量绑定,运行过程中硬件抽象层通过该信号量来通知波形组件一个读或者写操作的完成。对于波形组件来说,则需要使用操作系统API建立一个进程来等待读或者写操作的通知。在某些特殊条件下,为了提高波形组件的反应速度,则需要硬件抽象层通过硬中断或软中断来通知波形组件。在另一种极端情况下,波形组件则可以在后台线程中去轮询来自于硬件抽象层的通知。

硬件抽象层最重要的就是实现DSP内部的组件对其它芯片上的组件的读写操作,为了对组件屏蔽硬件信息,硬件抽象层以LD 号来映射实际物理地址并提供给波形使用。根据组件能够感知的性能将读写分别划分为阻塞式和非阻塞式两种类型,以读操作为例,可分为ReadWait和ReadNoWait两个函数,这两种操作流程如图4所示。

图4 阻塞式读流程

图5 非阻塞式读流程

可以看出,非阻塞式的操作可以实现DMA 和CPU 的并行工作,能够提高软件的运行效率,这在嵌入式实时处理软件中是非常有意义的。但是非阻塞的操作要求操作系统提供信号量或中断等异步机制,会增加系统设计的复杂度,实际设计的时候需要综合考虑。

3.2 DSP波形组件的实现方法

实现波形的组件化的首要工作是对波形进行组件划分,一般来说按照分层结构可以将组件划分为基带协处理组件、基带处理组件、媒体接入组件、逻辑链路组件以及无线网络组件,如图5所示,其中射频中频设备和安全密码设备一般作为硬件平台的一部分,不属于波形的范畴。

图6 无线通信系统组件划分

假设某无线通信系统中,基带处理组件实现的功能包括信道编码、调制解调、信道交织和解交织、信号同步、信道估计、均衡等,则基带处理组件的端口示意如图6所示,这里的User一般为相邻的媒体接入组件和基带协处理组件。

图7 基带处理组件端口示意图

其中,BBProcDataConsumer接口继承自Packet:PayloadStatus接口,同时自定义了一个pushPacket函数,该接口被链路控制组件调用,使基带处理组件获得下行数据。同时,在媒体接入组件上也应实现一个BBProcDataConsumer接口,用于接收基带处理组件发送过来的上行数据。pushPacket函数的原型为pushPacket(in CF::OctetSequence payload)。

BBProcDataProducer接口继承自Packet::PayloadControl接口,与BBProcDataConsumer接口配合使用,为用户提供设置传输分组长度的功能。图7列出了基带处理组件实现的主要API。

图8 基带处理组件API接口定义

4 结语

SCA作为一种先进的通用通信平台体系架构,已成为业界实现软件无线电平台可重构、可移植的重要突破点。其中硬件抽象层则是最核心也最复杂的一部分,虽然在美军标中对于硬件抽象层有详细的定义和说明,但是由于差异性,不可能照搬美军标中的相关内容,根据我军通信需求和现有通信体制,制定适应实际情况的SCA 标准对其实际应用有至关重要的意义,并最终影响装备的设计和使用模式。目前,这方面的工作仍有待进一步探索。

[1]范建华,吕遵明.可移植波形软件设计与实现研究[J].现代军事通信,2006(14):17-20.

[2]SCA 规范对我军战术无线通信系统发展的影响[J].现代军事通信,2006(14):44-49.

[3]邱永红,王庭昌,范建华,等.无线通信系统模块信息化设计标准体系的研究[J].解放军理工大学学报(自然科学版),2003(2):11-16.

[4]德州仪器公司.TMS320的DSP/BIOS用户指南,2004(4).

[5]德州仪器公司.TMS320的DSP/BIOS应用编程接口参考指南,2004(4).

[6]德州仪器公司.TMS320C6000 外设参考指南,2002(2).

[7]中国人民解放军总装备部.GJB 5082-2004.战术无线通信系统软件通信体系结构[S].北京:总装备部军标出版发行部,2004-05.

[8]刘献科,张栋岭,陈涵生.软件定义无线电及软件通信体系结构规范[J].计算机工程,2004(1):95-96.

[9]黄耕文,孟坚,刘建军,等.基于SCA 的高速数据波形设计与实现[J].现代军事通信,2006(14):37-40.

猜你喜欢

基带中断波形
基于时域波形掩护的间歇采样干扰对抗研究
Ag元素对Ni-7at.%W合金基带织构形成的影响
基于Halbach阵列磁钢的PMSM气隙磁密波形优化
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
苹果推出自研基带芯片要过几道坎?
苹果10亿美元为5G买“芯”
用于SAR与通信一体化系统的滤波器组多载波波形
Linux中断线程化分析及中断延时测试
全新迈腾B7L车喷油器波形测试