SCA在软件无线电里面的应用.docx
《SCA在软件无线电里面的应用.docx》由会员分享,可在线阅读,更多相关《SCA在软件无线电里面的应用.docx(17页珍藏版)》请在冰豆网上搜索。
SCA在软件无线电里面的应用
SCA在软件无线电中的应用
摘要
软件通信体系结构(SCA)系统功能的实现不依赖于具体硬件的功能,而主要在于波形应用的开发。
为了使应用的开发摆脱底层硬件的制约,使应用能通过一个统一的接口调用硬件设备,在SCA系统里定义了设备接口。
设备接口组件对底层硬件的屏蔽能够实现上层应用设计与底层硬件的分离,从而实现软件波形的跨平台性、可移植性和通用性特点。
关键字:
SCA,设备,软件无线电
一SCA出现的背景与规范
软件无线电(SoftwareRadio)或者称为软件可定义的无线电(Soft-DefinedRadio)是指用软件定义的、能实现多种功能的无线电通讯系统,是20世纪90年代以后逐渐兴起的一种全新的设计思想,其完整的概念和结构体系是由美国科学家JeoMitola于1992年5月明确提出的,其核心思想是构造一个具有开放性、标准化、模块化的通用硬件平台,将各种功能如工作频段、调制解调类型、数据格式、加密模式、通信协议等用软件来完成,加载不同的通信软件以实现不同的通信模式和功能。
软件无线电还有以下特点。
将通讯业务功能从硬件方式解放出来,仅通过装载不同软件来动态配置系统功能,通信系统的设计与开发主要成为软件的研究和开发,极大缩短了通信系统的研发周期和成本。
通过升级系统所装载的软件来达到对系统功能的更新和升级。
如果要实现新的业务或调制方式只要增加一个新的软件模块即可,而软件的加载和更新可以通过空中接口来实现,更加灵活方便。
软件无线电由于采用了标准化、模块化的结构,支持不同电台系统互连互通,使原来独立运行的不同电台系统能传递信息,不仅能和新体制电台通信还能和旧体制电台兼容。
由于软件无线电的诸多优点,美军的联合战术无线电系统(JointTacticalRadioSystem一一JTRS)计划采用了软件无线电的设计思想,定义了软件通信体系结构(SoftwareCommunicationsArchitecture一一SCA)规范。
SCA按照如下标准来构造:
支持应用软件在不同SCA实现间的可移植性;
采用商用标准来降低开发成本;
通过复用设计模块来减少新的波形的开发周期;
基于不断改进的商用框架和结构。
SCA规范根据开发JTRS软件可配置无线电台的基本需求建立了应用独立的框架。
这些需求由接口规范、应用程序接口(APIs、行为规范和规则组成。
规范的目标是确保软件和硬件的可移植性与可配置性,以及按照SCA规范所开发产品间的互操作性。
SCA规范将SCA定义为一个分层结构,自下而上分别为设备驱动层、操作系统层、CORBA中间件层、应用环境描述、框架控制服务接口和波形应用组件。
如图1.1所示。
图1.1SCA分层结构图
SCA功能的实现不依赖于具体的硬件,但是SCA系统总是运行于各种各样的实际硬件平台之上,在系统的实现过程中需要对不同的硬件设备开发相应的驱动程序,以完成分层结构中设备驱动层的实现。
但是设备驱动层所提供的功能调用与具体硬件有关,传统的系统开发过程中,应用开发者总是不得不关注底层硬件的实现,当硬件发生改变时,上层应用也不得不做出相应的修改,这带来系统可移植性和通用性的下降,也使应用开发周期变长。
为了解决这一问题,实现软件波形的跨平台性、可移植性和通用性,在SCA的系统里使用设备接口组件实现对底层硬件驱动进行屏蔽,达到上层应用设计与底层硬件的分离。
因此在SCA的开发过程中,设备驱动开发者必须完成硬件驱动设计和设备组件实现两方而的工作。
二SCA在软件无线电中的应用
2.1软件通信体系结构
SCA是一种开放的通用体系结构,它提供了一个标准的、开放的、可互操作的无线电通信软件平台。
通过该软件平台,底层硬件与实现波形功能的软件相互隔离,从而实现通信软件和硬件的可移植性、可配置性、可扩充性和可重用性。
2.1.1硬件体系结构
硬件体系结构的定义采用了而向对象的方式,其结构以类和属性继承的方式包括了在所有应用领域中通用的硬件。
实际应用中的硬件需求千差万别,一个统一的硬件平台不可实现所有的功能和应用。
采用而向对象的硬件体系结构可以使不同的硬件实现纳入一个统一的框架内,框架通过不同的接口、属性和方法来定义不同的硬件。
硬件体系结构可以通过树形结构的硬件类来表示,如图2.1所示。
图2.1硬件体系结构
在最顶层,硬件体系结构类包括机箱类和硬件模块类,而硬件模块类又派生出射频、调制解调、处理器、信息安全、输入输出、电源、定位模块等子类。
硬件子类继承了硬件模块类的所有属性。
并且在此基础上,根据实际硬件的需要,还可按照类似的方法进行扩展,得到满足不同需求的子类。
这种子类的划分方法子类是依据硬件模块的物理属性和接口特性,强调了硬件模块的物理属性及其实现的继承类,而不是功能的配置。
这样,硬件模块的设计和实现更具有通用性和开放性,降低了系统成本。
2.1.2软件体系结构
SCA是根据JTRS开发软件可配置无线电台的基本需求而建立的应用独立的框架,是为保证硬件设备通用性和整个系统的开放型及可扩展性而设计的。
SCA系统定义了一个以软件为核心、求硬件结构通用化的无线信号处理平台。
SCA软件体系结构如图2.2所示。
图2.2SCA软件体系结构
如图SCA的软件体系结构分成6层:
Ø总线驱动和板级硬件驱动层
整个软件结构可以运行在一些商业总线之上,其中,操作环境(OE)为应用软件的运行提供了可靠的传输机制,包括在总线支持级的错误检测和纠正。
在SCA系统中,可以采用的总线有VME,PCI,CompactPCI,Firewire,(IEEE-1394),和Ethernet等。
且红方和黑方子系统中可以使用不同的总线结构。
Ø网络和串行接口服务层
SCA软件体系结构依赖于商业构件来支持多种独特的串行和网络接口,如RS-232,RS422,RS423,RS485,Ethernet和802.x等。
为了支持这些接口,各种低级网络协议可以被使用,包括即PPP,SLIP,LAPx等。
ØPOSIX操作系统接口层
实时嵌入式操作系统可以为应用程序(包括CF)提供多进程、多线程的支持,它可以屏蔽不同硬件平台间的差异,为上层软件提供标准的硬件访问接口和其它的基本操作系统服务,使得上层应用软件具有设备无关性。
实时嵌入式操作系统为应用开发和测试提供了丰富的接口和可靠的保证,所以系统结构需要一个标准的操作系统接口来为操作系统服务,以增加应用的可移植性。
ØCORBA中间件层
CORBA在CF中担当着分布式处理环境中的消息传递功能,它是一个跨平台的技术,在分布式处理环境中,能用于标准化客户端与服务端的操作。
由于分布式处理是SCA系统结构的基础,而CORBA又是一个广泛使用的中间件技术,所以在SCA中采用CORBA来提供分布式处理。
Ø核心框架层
核心框架CF是应用层接口和服务的基本“核心”集,为波形应用软件设计者提供底层软件和硬件层的抽象,为波形应用组件的开发提供基本的接口和服务,并提供对整个波形应用的安装、卸载、配置和管理等。
核心框架按功能划分由基本应用接口、框架控制接口、框架服务接口和域描述文件几个部分组成。
Ø应用层
应用层负责用户通信功能,包括modem级的数字信号处理,连接级的协议处理,网络级的协议处理,互联网路由,外部I/O访问,安全处理和嵌入式应用等,它需要使用CF中的接口和服务。
其中前五层共同构成一个通用的软件平台,为应用层的波形开发提供了统一的、开放的底层支持和服务。
使波形应用开发具有最高的效率和最大的可移植性以及可重用性。
采用如图2.2所示的软件体系结构可以最大化利用一些现成的商用协议、软件和产品,通过分层的、开放的商用基础软件能将将核心应用和非核心应用与底层硬件分离开,通过CORBA中间件技术提供分布式的处理环境,能提高波形应用软件的可移植性、可重用性和可扩展性。
2.2SCA设备接口
核心框架(CoreFramework一一CF)是一个结构概念,它定义了应用层接口和服务的基本核心集,在波形应用的开发过程中,为了使所开发的应用组件能纳入到核心框架中进行管理,应用组件必须严格按照核心框架中的接口定义、接口操作行为定义和配置描述文件定义进行开发,否则,所开发的波形应用组件就不符合SCA规范,此组件也不是SCA兼容的。
核心框架由核心框架接口部分和域描述文件部分组成,共同建立了一个构建应用的信息基础。
其中,核心框架接口是在满足SCA规范的条件下定义的,包括基本应用接口、框架控制接口、框架服务接口三部分。
2.2.1核心框架的结构关系
核心框架CF包括了核心应用服务所涉及每一个接口的详细定义。
图2.3描述了CF中各个接口间的IDL关系。
图2.3核心框架中各接口间关系的IDL描述
从图中可以看出,在SCA中,DomainManager是SCA体系结构中进行整个域管理的核心,用来控制和配置系统域,管理着Applications,ApplicationFactories和DeviceManagers。
ApplicationFactory采用工厂设计模式(FactoryDesignPattern),实现其创建接口以在域内创建一个指定类型的Application,软件描述决定由ApplicationFactory创建的Application类型。
Application接口提供了对域内实例化应用程序的控制、配置和状态查询,Application由一个或多个软件Resource组成。
Resource由LifeCycle,TestableObject,,PortSupplier和PropertySet等基本应用接口提供的操作和属性建立了一个用来与SCA环境中的任何资源交互的公共方法。
Port可被用于在资源和设备之间推或拉信息,一个资源可以包括0个或多个输入和输出信息端口。
设备管理由DeviceManager接口完成,它负责创建逻辑Device和在这些逻辑Device上创建服务应用。
Device继承自Resource,是应用中作为实际硬件设备软件代理的资源,LoadableDevice、ExecutableDevice接口通过增加软件的特定行为扩展了Device接口。
文件服务接口(File,FileSystem和FileManager)主要用来安装、删除系统内的各种文件,并提供分布式文件系统访问的功能。
2.2.2设备接口
1.Device接口
Device是域内的一种Resource,它满足Resource接口中所描述的标准,是应用中作为实际硬件设备软件代理的资源,此外,它为域内的逻辑Device定义了额外的性能和属性。
逻辑Device是一套(零个或多个)硬件设备的功能抽象,提供软件描述功能,状态管理和属性与性能操作的属性。
这些capacity是在软件描述中描述的,各设备间不同,一个Device可以有多种可分配的capacity,每个都有其各自唯一的capacity模型。
Device接口的UML模型描述如图2.4所示。
在Device接口中,只读的UsageState属性包含Device的使用状态(IDLE,ACTIVE或BUSY)。
UsageState属性表明在一个特定的时刻Device是否处于活动的使用状态,如果是,还有没有可分配的剩余capacitiy,adminState属性包含了Device的管理状态值,该属性只允许被设为LOCKED和UNLOCKED两种值,当原来为“UNLOCKED”时,则可将之设为“LOCKED";当原来为“LOCKED”或“SHUTTING_DOWN”时,则可将之设为“UNLOCKED",非法的状态改变命令将被忽略。
只读operationalState属性表示Device的操作状态(ENABLED或DISABLE)。
操作状态描述了Device是不是起作用。
此外,softwareProfile属性是逻辑Device的XML软件描述。
只读label属性包含Device的标签。
label属性是赋给Device的有意义的名字,该属性能在系统内传送位置信息。
在Device接口拥有两个特定的操作,其中allocateCapacity操作将根据输入的capacities参数减少Device的当前capacities,并根据是否还有足够的capacity可分配来设置usageState的值。
deallocateCapacity操作提供将capacities返回给Device的机制,以供其他用户使用。
图2.4Device接口的UML描述
Device接口是一个通用设备接口,所有其他的设备接口均由此派生。
对于简单的设备,如网络、串口等,Device接口定义的属性操作以足够使用,但是如果硬件设备还能实现其他功能,例如够执行程序,就必须定义LoadableDevice和ExecutableDevice接口。
2.LoadableDevice接口
LoadableDevice接口继承自Device,并通过增加软件加载和卸载行为扩展了Device接口,其UML类图如图2.5所示。
相比于Device接口,LoadableDevice接口多处了load和unload两个操作,它适用于那些能够加载程序的硬件设备,例如存储器,CPU,DSP和FPGA等。
load操作提供了在指定设备(Device)上加载软件的机制。
如果设备是一个ExecutableDevice,加载后的软件就可以在设备上按顺序执行。
load操作通过的FileSystem参数来检索文件,并将由loadKind和fileName参数所指定的文件加载到指定的设备上。
load操作支持在Device软件描述文件中LoadType分配属性中所说明的加载类型。
toad操作将跟踪一个文件被成功加载的次数,当一个文件被加载时,load操作将加载文件计数器加一,若程序再次调用load操作加载同一文件,这仅将加载文件技术器加一,而不再进行实际的文件加载操作。
图2.5LoadableDevice接口的UML描述
unload操作负责将指定的己加载文件从设备卸载。
unload操作被调用时,在加载文件计数器里将filename参数所指定文件的加载数减1,当加载数等于零时,unload操作将卸载Device上的应用程序软件。
3.ExecutableDevice接口
与存储器一类的设备不同,类似于DSP或FPGA这样的设备加载程序的目的是为了进一步进行执行程序,为了从功能上划分这两种不同的设备,核心框架定义ExecutableDevice接口来实现设备上程序的运行控制。
ExecutableDevice接口继承自LoadableDevice,并通过向Device添加执行和结束操作,扩展了LoadableDevice的接口。
其UML类图如图2.6所示。
execute操作提供了在设备上启动和执行进程/线程的机制。
使用所输入的参数和选项来执行由name参数所指定的函数或文件,name参数是一个函数还是一个文件名,由设备自身特点和具体实现决定。
execute操作的option参数指定所运行程序的堆栈和优先级,parameters参数是程序运行所需的执行参数,它们设置程序运行的具体信息。
parameters参数通过解析XML文件得到,如何传递给应用程序跟设备的具体实现有关。
terminate操作提供了终止指定设备上以execute操作所启动的进程或线程运行的机制。
processId指明了需要停止的进程或线程的ID号。
该操作的实现也倚赖于设备的具体实现。
图2.6ExecutableDevice接口的UML描述
2.3基带板系统软硬件结构
2.3.1系统硬件结构
基带板主要完成通信系统中基带信号的调制解调功能,其结构如下图所示。
图2.7基带板硬件系统结构框图
从SCA核心框架设备接口的角度出发,基带板上存在并需要进行封装的设备有MPC8260CPU,DSP,FPGA、串口和网络接口。
其中,串口和网络接口继承并实现Device接口的属性和操作,MPC8260CPU,DSP和FPGA继承并实现ExecutableDevice接口的属性和操作。
根据系统的目前设计,实现不同波形应用动态加载的关键是在DSP可执行设备的实现上,因此主要工作是完成DSP的动态加载和相应设备组件的实现。
此外还实现基带板上FPGA、串口和网络接口的硬件设备封装。
2.3.2系统软件结构
基带板的软件系统可分为操作系统、SCA核心框架、CORBA目标请求代理(TAO),设备驱动与逻辑设备以及波形应用。
其结构关系如图2.8所示。
图2.8软件系统结构图。
图2.8软件系统结构图
其中操作系统采用VxWork嵌入式实时操作系统,TCP/IP协议栈由操作由操作系统提供。
VxWork是一款优秀的硬实时嵌入式操作系统,具有较好的可剪裁能力和兼容性,支持应用程序的动态连接和动态下载,支持ANSIC标准。
其TCP/IP协议栈在保持与BSD4.4版本的
TCP/IP兼容基础上,在实时方而有较大提高。
CORBA目标请求代理作为通信的中间件,用来分离应用层和底层硬件、协议栈和操作系统。
CORBA能把应用程序与所依附的系统较低层细节隔开,屏蔽了异构平台间操作系统和网络协议的不同,屏蔽了处理器间通讯方式的不同,屏蔽了底层系统平台的实现细节。
CORBA支持在不同编程语言所开发的应用组件间进行无缝通讯,从而使软件开发者可以方便的访问多种异构平台上的对象和资源,CORBA的平台无关性使其能广泛在不同网络间、不同机器间和不同操作系统间实现分布式对象的互操作,从而提高软件的可重用性。
设备驱动屏蔽硬件底层操作细节,为上层应用提供操作硬件设备的手段和方法。
在基带板上,主要是按照SCA的需求实现DSP和FPGA的动态加载,从而可实现不同波形应用的可配置性。
逻辑设备是实际硬件设备的软件代理,按照SCA规范将设备驱动进行封装实现。
核心框架和波形应用组件对实际硬件设备的操作都通过逻辑设备实现。
通过使用逻辑设备,波形开发者不必关心硬件的实现细节,设备驱动开发者也不必了解具体的波形应用,能够提高波形应用的可移植性。
基带板上将运行多种通信体制的波形应用,目前主要是实现OFDM波形。
在MPC8260上运行VxWorks嵌入式实时操作系统、CORBA(TAO)以及波形应用的组件和DSP上波形组件的组件代理。
基带板上的串口和以太网口可抽象为I/O逻辑设备,DSP和FPGA抽象为可执行设备,并作为系统中的设备组件由系统通过核心框架基本应用接口进行管理并为OFDM波形所用。
三对SCA在软件无线电中应用评价及我的观点
软件无线电技术解决了传统无线电设备的兼容与互操作、系统的升级等问题,摆脱过去那种集中于硬件设计的无线电系统设计方法,实现波形生成、处理、加密、调制解调及其他通信功能的软件化,实现软件与特定硬件无关的解决方案;提供给用户一种能动态改变无线电设备功能的能力并支持系统具有实现一个到多个通信通道的能力。
软件通信体系结构(SCA)是美国国防部JTRS计划中为了实现软件无线电而提出的一系列规范,是实现软件无线电概念的具体设计结构和核心,决定着软件无线电的功能实现,具有硬件通用化,软件层次化、功能化的特点。
在SCA中引入逻辑设备的概念。
逻辑设备是实际硬件设备的软件代理。
实际硬件设备必须在系统嵌入式处理器上运行一个对应的逻辑设备,以便其它SCA设备和应用程序通过该逻辑设备访问硬件。
逻辑设备的实现基于硬件设备驱动,将硬件抽象为系统中的一个组件。
逻辑设备屏蔽了硬件驱动,核心框架的基本应用接口通过逻辑设备即可控制实际硬件,这样一来,波形开发者不必关心硬件的实现细节,设备驱动开发者也不必了解具体的波形应用,能够提高波形应用的可移植性。
能够根据用需要加载不同的波形应用是实现SCA系统功能的一个重要基础。
研究了DSP和FPGA动态加载的原理和实现过程,为波形应用的可配置性提供了底层驱动支持。
参考我们学长林志堂的文章,他提出了采用文件管理方法实现一种新的软件加载模式,设计出来的软件加载模式具有高度灵活性和可移植性等优点,同时符合SCA规范。
其能应用于需要多FPGA配置、大数据量和高速配置的软件无线电系统中。
很多文章还分析了逻辑设备的实现即设备封装的一般理论,完成DSP可执行设备组件、FPGA可执行设备组件、网络组件和串口组件的实现。
波形应用通过调用这些逻辑设备组件,能够透明地使用硬件资源提供的各种功能。
一些文章提出了一套SCA规范域描述文件生成的可视化解决方案。
软件无线电应用开发者可以通过图形拖拽的方式构建整个应用并生成域描述文件,并可以直观的监控应用运行的状态。
针对软件无线电应用开发中域描述文件编写的复杂性,提出了一种域描述文件生成的可视化解决方案,设计并实现了基于SCA的软件无线电应用可视化编辑器。
一些文章还提出HAL-C,它引入既能在组件开发中保持SCA体系的完整性——代理组件与其它通用组件有相似的接口,又能给组件开发带来便利——与底层硬件细节分离。
硬件抽象层连接在专用硬件DSP,FPGA上的实现过程和方法。
HAL-C在未来无线系统应用中的作用将越来越大,将来很可能出现硬件中间件的概念,就是把HAL-C进一步综合、细化,增加新的功能等等。
硬件抽象层连接只是一个起步阶段,随着微电子技术的升级进步,HAL-C的思想将会有广阔的发展空间。
目前,尽管实现的设备组件能够满足当前需求,但随着软件无线电技术、数字信号处理技术以及微电子技术的发展,软件无线电有朝射频发展的趋势,人们也希望通过SCA能同时将中频板,MAC板等通信系统中其他组成部分纳入SCA体系进行统一管理,这就需要进一步针对不同的硬件开发相应的驱动,并将其封装为SCA系统内的设备组件。
同时在通用性方面,波形算法的跨平台移植问题,目前不同的硬件还需要不同的驱动程序来操作,即使是同一种类型硬件的不同型号,其具体操作也存在很大差异。
人们希望未来实际的通信系统根据能需要采用不同的硬件系统,在这种情况下如何对设备组件的结构进行分层设计,使得SCA软件系统运行于不同硬件平台上时,所作的移植工作最小,是将来工作中值得关注的重要问题。
目前SCA对上层软件的设计标准已经比较完善,而对底层特定于硬件的硬件组件的相关开发标准还不完善,尤其是如何实现硬件组件间的互连、互通和可配置都需要研究。
参考文献
[1]SCA平台硬件设备驱动设计与实现,宋安,国防科学技术大学,2005.11
[2]ModularSoftware-ProgrammableRadioConsortium.SupportandRationaleDocumentfortheSoftwareCommunicationsArchitectureSpecification(v2.2).[R].Washington:
JTRSJointProgramOffice,2001.
[3]基于SCA的软件无线电应用可视化编辑器的设计与实现,张伟,电子科技大学,2009.5
[4]SoftwareDefinedRadioForum.http:
www.sdrform.org
[5]JTRSOverviewwebsite.http:
www.jtrs.saalt.army.mil/overview
[6]SCA软件无线电系统软件平台的设计与实现,赵继龙,国防科学技术大学,2005.11
[7]基于SCA规范的软件无线电台的研发,陈小凤,暨南大学,2005.6
[8]SCA规范支持文档“USECASES"srd_1-1_app_a.pdf,2000.12
[9]基于SCA的硬件抽象层连接设计及其在DSP/FPGA上的实现,王金波,2005.11
[10]SoftwareCommunicationsAr