刘文斌,廖文瑜,彭 麟,丁建锋
(西南通信研究所,四川成都610041)
电台软件架构发展及其向SCA4.0演进的途径分析
刘文斌,廖文瑜,彭 麟,丁建锋
(西南通信研究所,四川成都610041)
使用标准的软件架构能够实现波形应用的硬件无关设计,也便于电台软件走向分层开放的合作设计。采用软件通信体系结构SCA,能够实现电台软件的标准化、平台化、智能化。首先对SCA在国内外的发展与应用现状进行了介绍,在基于主流的SCA2.2规范进行的SCA电台软件开发经验的基础上,探讨了SCA4.0架构的特点,提出了把核心框架、平台、波形从SCA2.2架构升级到SCA4. 0架构的途径,思考了基于SCA架构的电台软件未来发展趋势。
软件无线电 软件通信体系结构 联合战术无线电系统 核心框架
经过超过10年的发展与使用,SCA标准得到不断地更新,并经历了实战检验,已经比较成熟。在此背景下,美军联合战术无线系统(JTRS,Joint Tactical Radio System)于近期又推出了软件通信体系架构(SCA,Software Communication Architecture)的最新版本SCA4.0[1-3],其主要目标就是构建更利于采用新技术、尺寸更灵活的电台软件架构。
SCA的目的,不仅仅是简单的波形动态加载。SCA定义的核心框架,指的是必要的、“核心”的开放软件接口和配置文件,在嵌入式以及分布式计算环境中,提供对波形组件的部署、管理、互连与互通信[2,4,5]。
下文将先介绍SCA在国内外的发展与应用现状,然后以基于SCA2.2规范进行SCA软件开发为基础,探讨了如何把核心框架、平台、波形从SCA2.2架构升级到SCA4.0架构的一种途径。
JTRS于1999年推出了SCA最早标准版本1.0,后来又依次推出的版本有 SCA2.2(2001年), SCA2.2.2(2006年),SCA4.0(2012年)。在SCA2.2后先是推出过SCA3.0,后因使用上有争议而不被支持,改用SCA2.2.2。SCA2.2.2在体系结构上与SCA2.2基本保持不变[5],但其安全体系结构不再放入标准主体中,而以非公开形式独立研究。
JTRS推出的SCA规范已经经历了两个装备阶段的考验,第一个阶段是过渡期,为了应对战争的需求,以及JTRS项目难度过大成本过高的问题,美军部署了部分单通道手持式JTRS电台作为过渡,以AN/PRC-148 JTRS增强型[6]、AN/PRC-152(C)[7]为代表,主要加载的是传统波形;第二阶段是增长期,产品以多频段的AN/PRC-117(G)[7]、多通道的AN/PRC-155[8]等为代表,除了能加载传统波形外,还能加载高性能组网波形。这些产品均符合SCA2.2,取得了一定的市场认可,经历了实战检验,动态加载和管理波形已经不是难题。
虽然国内外不少高校和科研机构对SCA2.2.2进行过验证,但其实质与SCA2.2差异不大。在推出SCA标准的同时,JTRS还推出了用于规范波形组件、平台设备组件和服务组件之间接口的独立的API规范,以利于波形组件的可移植与可重用。
实战经验提出了组网能力、较短的电台启动时间以及高速视频业务等应用需求,这些需求使得核心框架应采用更灵活的架构,且传输机制需尽可能减少对资源的占用,且新的商业化技术应能够方便地加入到电台操作环境中来。SCA4.0在此背景下提出,其目标是能采用更多的商业化新技术产品,简化SDR电台的开发,最大化软件应用的可移植性、可重用性以及组件尺寸的灵活性。
SCA2.2架构操作环境如图1所示。在传统软件环境(如操作系统、板级支持包)上架构了SCA软件平台,该平台基于SCA接口标准设计。在平台之上部署了独立于平台的SCA组件,称为SCA应用组件。SCA应用(波形)设计兼容传统的开发方式,如把基于软件实现的传统 DSP、FPGA组件称为非CORBA组件,通过一个SCA设备组件来代理该非CORBA组件,实现统一的加载以及与系统的标准化的控制、业务交互。
图1 SCA2.2操作环境Fig.1 Operating environment of SCA2.2
SCA2.2架构因为考虑了较多安全因素,如安全加密模块如何部署与控制,业务与控制是否要分离且如何与安全加密模块交互等,这些因素给设计带来了较大的难度。
SCA2.2电台软件中,SCA核心框架相关的软件包括SCA核心框架库,SCA软件平台以及SCA应用(波形)。SCA架构的底层支撑软件还包括操作系统和CORBA中间件。各层软件可以选择购买商业现货(COTS)或自主开发两种方式中的一种来实现,根据需要进行权衡。下面将描述SCA核心框架相关的软件开发内容与实现方法。
2.1 核心框架库
核心框架一般以库的形式提供给平台开发人员和波形开发人员使用。如图2所示,其完整实现需要实现下述核心框架接口的基本功能:
1)基本应用接口。主要为波形组件提供统一的接口封装格式。
2)基本设备接口。主要为设备组件提供软件加载和执行接口,支持的加载类型有四种:内核模块、驱动程序、共享库、可执行程序。DSP或FPGA程序以内核模块方式进行加载。
3)框架管理接口。主要包含平台管理,以及波形安装、创建与管理,需要对域配置文件进行解析,对端口进行连接等。
4)框架服务接口。主要包含文件、文件系统、文件管理器接口,提供对文件或文件夹的分布式管理和访问。
图2 SCA2.2接口继承关系与分类Fig.2 Classification and inheritance relationship of SCA2.2 interfaces
此外,核心框架还需要使用下面的技术:
1)IDL向C++的映射。中间件工具都支持基于IDL自动生成基于客户端基类和服务端基类。
2)域配置文件的类抽象,以及把域配置XML文件解析成类对象。可以采用开源的XML_xerces解析器,或是其它尺寸更小的解析工具。
3)满足SCA或CORBA规范的日志服务、事件服务和命名服务。
2.2 软件平台
SCA软件平台要实现的组件主要包括框架控制组件,以及SCA设备和服务组件。框架控制组件包含域管理器、设备管理器等组件,可以直接实例化相应核心框架接口类实现,需要为其设计XML配置文件。继承核心框架基本设备接口且能提供对硬件资源的访问能力的软件组件称为SCA设备组件,波形需要使用的公共非硬件资源可称为服务组件,这些组件根据功能需要基于IDL添加,由平台开发人员自定义或根据标准定义。
2.3 SCA波形
SCA波形一般根据OSI或TCP/IP分层模型对波形进行组件分层和连接,分为CORBA组件和非CORBA组件。基于CORBA组件模型设计SCA波形组件继承核心框架资源接口,其需要使用的用户自定义接口基于IDL设计;非CORBA组件基于传统方式设计,如在DSP上运行的信号处理组件,但需要为其提供相应的CORBA适配组件(如SCA DSP设备组件),从而实现与CORBA组件的交互。
基于SCA4.0的电台操作环境如图3所示,其架构与SCA2.2本质上是相同的,如其中的CF控制组件指的是核心框架控制组件,实现了类似SCA2.2在图1中的框架管理与服务。对比图1和图3可以看出,与SCA2.2版本相比,SCA4.0除了把CORBA替换成传输机制(Transfer Mechanism)外(SCA2.2.2已经剥离了安全架构),主要变化就是各种组件的分类命名、位置关系、接口关系更清晰,更加易于被初学者所理解。
图3 SCA4.0操作环境Fig.3 Operating environment of SCA4.0
SCA4.0对属于标准范畴的接口定义与组件定义进行了区分,同时与属于产品范畴的组件实现(对象)区分开来。各种接口函数形式和功能保持不变,但其类封装更加细致,接口继承关系更为灵活。相比SCA2.2仅用斜体来区分是接口还是组件,SCA4.0为各种组件提供了专名的名字,更易于理解和分辨。
3.1 支持不同的传输机制
中间件是一种使用较为普遍的底层传输服务,它能够屏蔽软件组件间的底层消息传输机制,尽管这些组件可能部署在不同的处理器上,这样设计人员就可以专注于上层应用软件的设计。SCA2.2定义了CORBA作为中间件,并推荐使用这种特定的传输机制。CORBA较常采用的底层传输机制有TCP/IP和共享内存等。一些CORBA产品会引入较大的传输时延,特别是采用TCP/IP传输机制时[9]。在某些具体的硬件平台上,一些波形应用的安全、高速等需求使得底层传输机制不适合采用TCP/IP,甚至不适合采用CORBA等中间件。为此,SCA4.0已经删掉了CORBA需求。因此,电台开发人员可以继续使用CORBA,可以基于可插拔的底层传输机制来改进CORBA传输性能[10],也可以选择其它非CORBA的传输机制[3]。如果使用不同的传输机制,波形会需要重新编译,但因为组件间API保持不变,这样可以保持波形的可移植性。
3.2 支持不同量级的架构
SCA4.0支持不同量级的架构,如文献[3]所推荐的三种量级的架构,包括:全功能SCA架构,中量级SCA架构和轻量级SCA架构。全功能架构(Full Profile)是一种即插即用的架构,支持全部用于向域管理器和设备管理器注册和注销的接口,适用于硬件模块需要即插即用的可动态配置的电台。中量级架构(Middle Profile)是一种非即插即用架构,只支持向域管理器和设备管理器的注册接口,不支持注销,设备管理器不能释放,适用于硬件模块静态配置的电台。轻量级架构(Little Profile)不支持向域管理器和设备管理器注册,适用于单通道电台。
SCA4.0还支持不同量级的AEP(Appliation Environment Profiles,应用环境配置),以支持更多的操作系统;删除了对CORBA命名服务的强制需求,并对注册模型进行了修改。上述变化的结果就是,组件的尺寸也变得灵活,如果采用轻量级的框架,电台软件平台启动时间可能会大大缩短。SCA4.0核心框架的实现,与基于SCA2.2的实现基本相同,接口功能基本保持不变,只需要明确是哪种量级的核心框架版本,明确相应组件所需继承的接口,设置相应的编译开关即可。虽然国内也有轻量级核心框架的实践,其创新值得肯定,但与SCA4.0架构相比,缺乏灵活性设计。
3.3 支持不同类型的域配置文件
SCA4.0标准3.1.3.6节中简要描述了域配置文件的类型。域配置文件相比以往标准,增加了波形部署描述文件(ADD,Application Deployment Descriptor)和平台部署描述文件(PDD,Platform Deployment Descriptor)文件以支持多通道的部署配置。SCA4.0的附件D中指出,标准允许采用不同的配置文件格式,如DTD(XML)、XSD schema等。这意味着XML文件不再是唯一可选的配置文件类型。此外,附件D-1描述了对XML的文件类型定义(DTD,Document Type Definition)方法,保持对SCA前期版本的前向兼容。
从域配置文件的描述可以看出,SCA4.0保持了前向兼容性。SCA2.2版本的域配置文件可以直接升级到SCA4.0版本。如果需要提供对通道部署配置的支持,相应设计应增加ADD和PDD两种配置文件,核心框架应增加相应的解析。
3.4 支持接口标准化的SCA平台设计
与SCA2.2相同,SCA4.0中平台组件包含与硬件访问相关的设备组件和与硬件访问无关的服务组件,它们继承了核心框架资源或设备接口。其它组件间交互的接口均要求使用IDL描述,即使组件间传输机制发生改变,组件接口和功能实现不需要改变,保持了可移植性。自2007年开始,JTRS标准设备和服务API(含MHAL)陆续推出和更新,使得SCA平台组件的接口设计有了参考依据,便于波形在不同厂家平台间的移植。SCA4.0中没有强制使用这些API,但软件平台依然可以采用这些标准API进行参考设计。
3.5 支持SCA波形的平滑升级
SCA4.0中波形的改变主要体现在构成波形的SCA组件。标准升级只影响核心框架基类的定义,如果采用了轻量级的核心框架,只需要删除原版本波形组件中相应不需使用的接口定义就能够实现升级。波形组件间的接口不需要改变,波形组件与设备或服务组件的接口也不需改变,因此,在SCA2.2上实现的波形可以平滑升级到SCA4.0。因为采用了灵活的架构和传输机制等新技术,相比之前的SCA波形组件,新的组件可能尺寸更小,在相同硬件环境下,组件可以实现处理能力更快,组件间可以实现通信效率更高、时延更小。
从对SCA4.0的分析可以看出,该规范是为了应对无线通信设备实际发展需要而推出的一个改进的SCA架构,其主要改进,一是灵活的架构,二是便于新技术的可插入,其实现是可行的。但在实际的电台应用中,符合性检测的复杂性、软件架构升级的成本等问题依然会成为SCA4.0规模使用的阻碍。此外,支持SCA的人机接口架构、安全体系结构,以及统一的波形库的管理、加载、互通验证的方法等,是不论哪个SCA版本的使用和推广都需要进一步明确的。但从SCA的发展思路不难看出,灵活的、包容的,但又不弱化可移植性的开放软件架构是未来软件无线电发展的趋势,这将吸引更多的目光投向到SCA,促进软件无线电的发展。
[1] 蔡卓,张小琼.SCA4.0规范概述[J].通信技术, 2013,46(07):126-128.
CAI Zhuo,ZHANG Xiao-qiong.Overview of SCA4.0 Specification[J].Communication Technology.2013,46 (07):126-128.
[2] JTRS JPEO.SCA Specification Version 4.0(2012-02-28),Software Communication Architecture Specification [S].USA:JTRS JPEO,2012.
[3] JTRS JPEO.SCA Specification Version:Next<Draft>Users Guide(2010-11-30),Software Communication Architecture Specification[S].USA:JTRS JPEO,2010.
[4] JTRS JPO.SCA Specification Version 2.2(2001-11-17),Software Communication Architecture Specification [S].USA:JTRS JPO,2001.
[5] JTRS JPEO.SCA Specification Version 2.2.2(2006-05-15),Software Communication Architecture Specification [S].USA:JTRS JPEO,2006.
[6] 徐惕.美空军装备AN/PRC-148 JTRS增强型MBITR电台[J].通信导航与指挥自动化,2008(02):76-80.
XU Ti.USA Air Force Equipped AN/PRC-148 JTRS-enhanced MBITR Radios[J].Communication Navigation and Command Automation.2008(2):76-80.
[7] 徐剔.从美空军购置“猎鹰”Ⅲ宽带电台谈起[J].通信导航与指挥自动化,2009(06):67-70.
XU Ti.Topics about FalconⅢRadios Purchased by USA Air Force[J].Communication Navigation and Command Automation.2009(6):67-70.
[8] 曹伟.美国陆军订购双信道AN/PRC-155电台[J].国外坦克,2003(01):6. CAO Wei.USA Army Purchase Dual-channel AN/PRC-155 Radio[J].Tank Oversea.2003(1):6.
[9] 廖文瑜,刘文斌,苏旸,等.基于分布式SCA应用的CORBA性能分析[J].中国电子科学研究院学报, 2011,6(05):524-528.
LIAO Wen-yu,LIU Wen-bin,SU Yang,CONG Jian. CORBA Performance Test Based on Distributed SCA Applications[J].Journal of CAEIT.2011,6(5):524-528.
[10] 孙海彬,吴宇,魏急波.基于CORBA的可插拔协议研究[J].电脑知识与技术,2009,5(27):7783-7787.
SUN Hai-bin,WU Yu,WEI Ji-bo.Research on CORBA Pluggable Protocols[J].Computer Knowledge and Technology.2009,5(27):7783-7787.
刘文斌(1983—),男,硕士,工程师,主要研究方向为软件无线电;
LIU Wen-bin(1983-),male,M.sci., engineer,mainly working at software defined radio.
廖文瑜(1986—),男,硕士,工程师,主要研究方向为软件无线电;
LIAO Wen-yu(1986-),male,M.sci.,engineer,majoring in software defined radio.
彭 麟(1972—),男,硕士,高级工程师,主要研究方向为无线通信系统设计和电台设计;
PENG Lin(1972-),male,M.sci.,senior engineer, mainly engaged in the design of wireless communication system and radio.
丁建锋(1977—),男,学士,高级工程师,主要研究方向为无线通信系统。
DING Jian-feng(1977-),male,B.Sci.,senior engineer, principally working at wireless communication system.
Analysis of Development and Methods Upgrade to SCA 4.0 for Radio Software Architecture
LIU Wen-bin,LIAO Wen-yu,PENG Lin,DING Jian-feng
(Southwest Research Institute of Communications,Chengdu Sichuan 610041,China)
Standard software architecture can be used to design platform-independent waveform applications,making the radio software based on hierarchy design more open and cooperative.Software Communication Architecture(SCA)helps implement standard,platform-independent and smart radio software.In this paper,development and application of SCA is first introduced,then the experience of SCA2.2 software development is proposed and features of SCA4.0 is discussed,and after that,upgrade methods from SCA2.2 architecture to SCA 4.0 for core framework,platform and waveforms are provided.Trends of radio software development based on SCA architecture are also considered.
SDR;SCA;JTRS;core framework
TN924
A
1002-0802(2014)04-0396-05
10.3969/j.issn.1002-0802.2014.04.011