《软件无线电原理与技术》课件-第3章_第1页
《软件无线电原理与技术》课件-第3章_第2页
《软件无线电原理与技术》课件-第3章_第3页
《软件无线电原理与技术》课件-第3章_第4页
《软件无线电原理与技术》课件-第3章_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.1综述

3.2主要的软件体系结构

3.3软件通信结构SC

3.4软件下载以及软件可重配置

3.5软件无线电可用的编程语言软件无线电以软件方式实现各种空中接口,提供了灵活的无线通信方式,以及灵活的传输机制、协议和应用。显然,软件的作用居于核心位置,这与传统的基于硬件的无线电是完全不同的。软件无线电的软件设计包括:软件的功能、软/硬件之间的相互关系和软件的体系结构。软件可定义的特性包括射频频带、空中接口波形及其他相关功能。涉及软件无线电的软件是较为复杂的,并且其规模在迅速扩大。因此,仅仅了解如何针对通信的某些特定功能来编制程序或研究算法显然是不够的。那么软件无线电的软件设计有什么特殊要求呢?在计算机互联网时代,TCP/IP的出现屏蔽了异构网络(即不同物理层结构的网络)的差异,而向上层提供统一的服务,真正实现了网络的互联,从而使Internet的发展有了质的飞跃。类似的要求也出现在无线通信领域,即软件无线电的软件部分屏蔽硬件部分的差异(不同的硬件结构和信号特征),而向上层提供统一的各类服务。因此要求软件无线电的软件部分具有以下特点:

(1)具有良好的开放性,采用模块化结构。这样使通信的高级应用可以利用现有的低层程序模块,避免了低水平的技术重复,提高了开发效率,升级方便。

(2)软件可重用。在不同开发环境下开发的软件程序可以应用于不同的硬件平台上,软件程序具有统一的源代码并能够屏蔽硬件平台和开发环境的差异。理想情况下,软件也可以实现“即插即用”(plug&play)功能。这里引入一个重要的概念——“软件总线”,软件总线与硬件总线类似,将应用模块按标准做成插件,插入总线即可实现集成运行,从而支持分布式的计算环境。

为了能够达成上述目标,我们需要从一个更高的层次来认识软件无线电的软件设计问题,这就是软件体系结构。软件体系结构是指软件系统的结构,它由一些规则、建议、习惯组成,从构件的角度定义了系统的结构,说明了构成系统的各个构件之间是如何通信和实现互操作的。简单地说,软件体系结构就是对系统软件的总体描述,是一个系统的草图,其描述对象是构成系统的构件。这些构件是抽象的,只有在具体实现阶段,这些抽象的构件才会细化为实际的组件。软件结构用于指导大型软件各个方面的设计。3.1综述在软件无线电应用技术中,软件体系结构位于中心位置。在确定软件体系结构的基础上,可以进一步通过编程实现通信的功能和相应的协议。现有的软件结构很多,但是对于软件无线电而言,重点在于开发开放的软件结构及其接口,这项工作的目标是鼓励软件可重用、可移植以及保障在不同通信设备以及协议之间的互操作性。3.2主要的软件体系结构3.2.1硬件特定的软件结构硬件特定的软件结构如图3-1所示,在这种结构中,系统的软件采用处理器自身的语言开发,软件可以直接调用硬件资源,例如直接操作寄存器和I/O。软件的具体功能实现直接与相应的硬件相联系,比如系统若采用DSP实现一个调制器,则调制器算法就通过相应DSP的软件实现,软件和硬件是紧密联系的。这种结构较为简单、直观,容易实现,与结构化的软件设计方法相联系,但是这种方法是非面向对象的,因此不可移植。图3-1硬件特定的软件结构3.2.2开放的软件结构

实现理想的软件无线电要求软件具有相对于硬件平台的独立性。实现软件对硬件独立的方式之一是建立介于硬件和软件之间的中间件,形成硬件、软件和中间插件的层次结构。这就构成了与硬件特定软件结构不同的开放的软件结构。开放的软件结构如图3-2所示。从图3-2中可以看到,开放的软件结构是分层的,这样硬件完全可以与应用软件剥离开来。为了实现这种剥离,采用中间件将硬件单元封装到对象中,并且允许对象通过标准接口互相通信,这个中间件较常采用公共对象服务代理结构(CORBA,CommonObjectRequestBrokerArchitecture)。另外下层为操作系统、驱动程序、资源管理,以及内部处理器通信。硬件、中间件以及下层软件通常合称为框架。操作环境完成硬件资源的管理,比如分配硬件资源给不同的应用,存储器管理,中断服务,提供统一接口给硬件模块。这种结构使应用软件的开发更易于移植,更为快捷,成本更低。应用软件的开发者从对底层硬件的编程中解放出来,可将精力集中在更为复杂和强有力的应用设计中。图3-2开放的软件结构3.2.3面向过程和面向对象的软件设计方法

硬件特定的软件结构和开放的软件结构的软件设计思想分别面向过程(或是结构化)和面向对象。在这里仅作简单介绍,详细情况可以参考相关参考书。

1.面向过程的软件设计方法

面向过程(或结构化)的设计是从系统的功能入手,按照工程标准和严格规范将系统分解为若干功能模块,通过函数实现其功能。结构化方法首先关心的是功能,强调以模块(即过程)为中心,采用模块化、自顶向下、逐步求精的设计过程,系统是实现模块功能的函数和过程的集合,结构清晰,可读性好。结构化的设计着重于“如何做”。然而,用户的需求和软/硬件技术的不断发展变化使得作为系统基本成分的功能模块很容易受到影响,局部修改甚至会引起系统的根本性变化。开发过程前期入手快而后期频繁改动的现象比较常见。在面向过程的思想中,一个程序一般都是由一个个函数组成的,这些函数之间相互调用,于是就形成了一个完整的程序,解决了一个问题。它的基本结构如下:

函数1()

{

……;}

函数2()

{

……;}

……

主函数()

{

……;}图3-3PSK通信系统的工作流程下面举一个通信系统的例子。PSK通信系统的工作流程如图3-3所示。其程序中有一个主程序,每个模块都用函数实现,通过主程序调用函数来实现整个系统的功能。这样的设计方法较为直观,但是从可重用的角度来看,对结构化的方法所强调的功能一般要求有严格定义的边界,其功能在调用模型时不便于重用。如果我们需要改变系统的调制方式为FSK调制,那么原来程序中“PSK调制”和“PSK解调”功能将不可再用。

另外,如果初始设计的调制功能仅限于“PSK调制”,那么后来就需要对调制功能进行扩充,增加“FSK调制”。如果不是预先有所考虑的话,那么直接由“PSK调制”进行扩充也是较为麻烦的。

2.面向对象的软件设计方法

对象其实非常简单,因为在这个世界中,我们总是被“对象”所环绕,例如人、动物、植物、建筑物等,它们都是对象。我们可以认为,对象就是一个真实的实体,又可称做实例。它具有以下性质:

(1)具有一系列属性,比如对于球,有尺寸、形状、颜色、重量等属性。

(2)具有一系列行为,比如对于球,它能够滚、弹跳、膨胀、缩小等。对于一组具有相同特性的对象,我们可以把它们抽象为“类”。类是对某一类事物的描述,是抽象的、概念上的定义。一个类可以看做是对象的“蓝图”,对象是类的一个实际例子(实例化的结果)。例如,我们可以在有轮子的能够加速、刹车、转向的对象集合中抽象出一个类——车,而小轿车就是“车”类的一个实例,是它的一个对象。在面向对象的设计中,编程的基本单元是类(面向过程编程的基本单元是函数),而类是由数据(用来描述属性)和函数(用来描述行为)封装起来得到的。面向对象的程序设计方法一般是先设计一个类,然后由这个类产生一个对象,之后对这个对象进行相关操作。要说明一点,操作是对对象进行的,没有对象就无所谓操作。对象和对象之间会有一些相互的关系,有一些对象是独立操作的(比如照相机),有一些对象则是彼此相互作用的(比如电话和电话应答机之间)。对象之间的通信通过定义接口来实现。这样的编程方法具有以下优点:

(1)信息隐藏。这意味着对象的具体实现细节是隐藏的,比如内部组织是什么,使用了什么函数,数据是如何组织的,等等。例如,一个汽车包括发动机、传动机构、排气机构等,我们驾驶汽车时可以使用每一个子系统而不需要知道内部是如何工作的。

(2)程序可重用。一组经过良好设计的类可以使程序具有良好的可重用性。我们在需要的时候只要建立类的对象,就能实现类的封装功能。这样可以提高编程的速度和质量。

(3)继承。从一个类中可以派生出子类,子类可以继承父类的特性和行为。比如,父类“车”可以派生出子类“汽车”和“火车”,它们都继承了“车”的基本特性,但又分别有其特性。一个新的“类”可以继承一个或多个类的特性,并增加其他特性。

(4)多态。多态是指利用一个相同的名字定义不同的函数,这些函数执行的过程不同,但有相似的操作,即用同样的接口访问不同的函数。例如,在遥控器上按下Play键时,DVD可能在电视上播出一部电影;但是如果在播放机中放的是CD,那么它将通过音箱播放出音乐。虽然按钮相同,操作相同,但是结果不同。综上所述,面向对象的软件设计方法可以简单总结如下:

(1)面向对象的编程是对真实世界的建模,即对事物的属性和行为进行建模。

(2)面向对象的编程对数据和函数进行了封装。

(3)对象具有信息隐藏的特性。

(4)对象之间的通信是通过消息传递来完成的(通过接口)。

(5)对象允许继承和多态。对于上面PSK调制的例子,我们首先对类进行设计,设计有信源/信宿、调制解调器、编译码器、滤波器几个类,每个类分别有其属性和行为,在确定类的基础上形成对象,如图3-4所示。这里采用了统一建模语言(UML)的类图表示。类的UML表示是一个长方形,该长方形垂直地分为三个区,顶部区域显示类的名字,中间的区域列出类的属性,底部的区域列出类的操作。图3-4类的举例如果初始设计的调制功能仅限于“PSK调制”,而我们需要改变或增加系统的调制方式为FSK调制,那么仅需要增加或改变调制解调器对象的属性和行为就可以了,其他对象是不变的。在本书中,以“*()”表示函数描述行为。

下面具体给出一个调制解调器的例子来说明针对软件无线电的面向对象的程序设计方法。根据前面的说明,无论建模、仿真,还是软件开发,开发面向对象方法的第一步都是确定对象的类。为了能定义无线电系统在受到外部激励时的行为,可以把整个无线电系统作为一个对象,它封装了整个系统。随后定义构成系统组成的下层的对象,这些下层的对象提供了我们所熟知的无线电功能,比如滤波、调制、解调、同步、控制等。这些软件对象封装了一组函数,使无线电工程师可以实现重用和技术插入。下面具体说明面向对象在软件无线电中的应用特点。

封装。首先把整个调制解调器建模为一个调制解调器类,其属性为调制类型、波特速率等,其行为是“调制()”和“解调()”。随后,我们可以将调制解调器类按照功能分为调制器类、解调器类和时间标准类。调制器类的属性为输入比特流、输出信号流,其行为是“调制()”;解调器类的属性为输入信号流、输出比特流,行为是“解调()”;时间标准类的属性是时钟速率。同理,我们还可以继续分下去,最终得到如图3-5所示的调制解调器的模型图。图3-5一个简单调制解调器的部分对象模型

●消息传递。为了完成任务,对象之间需要发生联系,这依靠消息的传送来实现。具体来讲,若一个无线应用发送一个消息到调制器对象去调制一个基带比特流,那么将执行一个调用调制解调器对象的“调制()”,即调用对象执行“调制解调器.调制()”,这时调制解调器对象发送一个请求要求调制数据比特。消息的传递使各软件单元可以概念化地综合在一起,以完成特定的任务,这实际也是各处理器之间的互联。为了理解消息在软件、硬件层面的传递,需要用到分层的概念。分层类似于OSI七层模型。另外,软件和硬件实体之间通路的建立是通过管道化来实现的。驱动程序将硬件封装起来,可形成其他对象可用的公开方法或函数。

●继承。当一个新的类从已存在的类中合成产生时,新的类继承了属性和行为。比如,我们可以在顶层建立一个调制解调器类,其子类为FSK调制解调器和PSK调制解调器。另外,我们还可以定义调制解调器由调制器和解调器构成,通过状态来确定对象工作在PSK或FSK模式下。子类的波特速率属性是从父类中继承的,不再重新定义。

特性继承允许人们定义通用的可重用的类,比如FIR滤波器、时钟恢复等,从这些类中,我们可以合成一个完成特定任务的对象。图3-5所示的调制解调器模型用来恢复载波,提取位同步,估计信号参数,实现位判决,可分别采用传号和空号滤波器解调FSK信号。位判决对象在判决时间内比较传号滤波器和空号滤波器的能量,根据最大的滤波器输出决定输出传号还是空号。这些滤波器继承了FIR滤波器类的特性,对象模型表明调制解调器的成员单元,即调制解调器可以由多个软件单元构成,它可以将行为调制()和解调()分派给调制器对象和解调器对象,本质上是将所有的行为都分派给成员对象,这些对象继承了调制形式和波特率等特性。

多态性和重载。重载允许给定算法在不同的数据结构上操作。调制器对象可以重载“调制()”,如果输入比特流是打包的,一个打包的比特流包含一个帧头,里边有控制信息,帧体内包含信号,则“调制()”可以检查帧头并应用在包中定义的调制类型;类似地,“解调()”函数可以被重载,这样无论采用什么样的信号都可以应用合适的算法解调,在这种情况下,需要一个调制类型识别算法来判定需要应用的调制类型。在传统的无线电结构中,调制的形式是被严格定义的,然而,在软件无线电通信系统中调制形式应该可以根据QoS和SNR的实际情况进行相应的调整,在低信噪比的情况下采用BPSK调制,在高信噪比的条件下采用16QAM调制。因此可以很清楚地看到,封装、消息传递、属性继承、多态在软件无线电设计中是非常有用的。面向对象的语言在20世纪60年代出现,即Simula语言,到20世纪80年代早期出现了Smalltalk和Flavors语言,现在面向对象的语言有C++、Python、Ruby、Java等。3.3软件通信结构SCA3.3.1SCA的定义软件无线电的核心思想是“可重配置性”(Re-configurable)。对于基于硬件的无线设备,如果没有物理的修改或重新设计,那么是不可能进行重配置的。随着GPP、DSP、FPGA等器件处理能力的提高,以及ADC/DAC等器件其速度和精度的稳定增长,越来越多的波形信号处理从传统的模拟领域转向数字领域通过软件来实现。但是每一个无线设备制造商所开发的系统结构及其实现都是不同的,因此,虽然软件的应用使无线系统越来越灵活,但每种系统又各不相同。这样无线系统虽然可以通过改变软件来实现某种意义上的重配置,但是这些无线系统中的控制结构和管理体系之间缺乏共性,因此不能够采用相容的接口和协议进行管理、配置以及控制。所以,当多个来自不同厂商的无线设备在一起共同工作时,比如在军事、救灾等场合,多种基于软件的无线系统之间既不能进行互操作,也不能容易地进行重配置,这无法达到软件无线电的要求。简单地说,需要有共同的规范来约束所有的相关研发机构和厂商。对于这一点,我们完全可以通过对个人计算机进行类比来想象这样的情况,由于有相应的规范存在,因此我们可以很轻易地自己购买不同公司的配件来组装一台自己满意的计算机,并安装自己需要的软件,而这根本不需要我们具有多么渊博的计算机方面的知识。显然,将软件无线电规范化、标准化对产业以及技术的发展是十分有利的。最早提出这种需求的是美国军队。早期的基于软件的无线电SPEAKeasy系统的成功已经表明了采用软件结构的优势,继而大量无线设备开始采用软件来实现核心信号处理。例如,开发于20世纪90年代的JCIT联合战斗信息终端、数字模块无线电(DMR)等都提供了无线资源管理软件的基础结构。随着重配置需求的增长,为了使系统能够支持多任务,同时降低长期工作和维持的成本,美军建立了联合战术无线系统(JTRS)联合工程办公室(JPO),这个国防工程的目标是建立未来的通信系统,其特性是增强了灵活性、互操作性,易于升级,降低了采购、使用、维护的费用。为了达到系统的设计目标,一个重要的步骤就是规范软件无线电通用软件结构。这个努力开始于20世纪90年代中期,并进一步演变为现在所说的软件通信结构,简写为SCA,由美国联合战术无线电系统联合工程办公室发布,虽然此前各个厂商早已有各自的架构和体系,但SCA是第一个软件无线电规范。在这个规范中,美国政府的几个主要的无线产品提供商均做出了相应的贡献,而且美军也将SCA应用于新的无线系统的开发。JTRSJPO构建SCA的目标如下:

(1)在遵循SCA规范的不同无线设备之间实现应用软件的可移植性。

(2)基于开放的商业标准。

(3)支持无线系统的互操作能力、可编程能力和可裁减能力,而且系统成本可负担得起。

(4)最大可能地将软件和硬件相独立,要求应用以及设备是可移植和可重用的,具备新技术快速引入的能力。例如,在SCA中的应用部分描述了可提供特定功能的软件单元,而这可能有几个不同的实现方案,比如一个在DSP上实现,一个在GPP上实现。当技术进步时,一个曾经在DSP上实现的可以容易地在GPP上实现。

(5)通过可重用设计模块,降低新波形的开发时间。

(6)可扩展新的波形和硬件组件。

(7)可与嵌入式可编程的信息安全模块INFOSEC相结合。

(8)支持JTRSORD的要求,即要求操作者可重配置,能够支持多种现有的和新的波形,可以同时多信道操作(大于10个)。

SCA是什么呢?SCA定义了用于管理、控制、配置软件无线电的软件体系结构,由接口、行为规范、一般规则、波形应用程序接口(API)以及所需的安全需求构成,是一组用来实现软件无线电的规则、方法和设计标准,它独立于实现的框架,约束软件无线电系统设计以帮助达到设计目标。

SCA结构的重点在于可重用模块的设计和开发,以及推动商用软件和标准的应用。确切地说,SCA是一个规范集,说明了软件无线电的硬件和软件之间的交互,并提供了控制这些组件的命令集。SCA建立了独立于设备的结构框架,其目标是确保软件和硬件的可移植性和可配置性。SCA基于面向对象和CORBA技术,使用统一建模语言(UML,UnifiedModelingLanguage)对接口进行图示,使用接口定义语言(IDL,InterfaceDefinitionLanguage)对接口进行定义。SCA形成了开放分布的结构规范,使应用和操作环境分开,定义了管理和配置软件构件的公共接口,还定义了支持器件以及应用移植能力的公共服务和API。

需要注意的是,SCA并没有为无线电系统的硬件或波形应用指定任何特定的结构、设计或实现。3.3.2SCA的版本发展

SCA首先由JTRSJPO发布,后来被软件无线电论坛(SDRForum)作为SDR的标准,其对软件模块之间的应用程序接口(API)进行标准化,并推荐Vxworks为操作系统。美国政府希望SCA通过对象管理组织OMG而成为商用标准,并且已经设计了使用商业需求的规范。到2001年9月,FCC发布了第一个关于软件无线电的报告和规则,其内容要点如下:

(1)允许设备制造商和运营商在设备部署到位后进行重配置。

(2)第三方可以在原硬件制造商确认的情况下制造和销售终端软件。

(3)软件无线电对无所不在的无线通信世界是必然的。

(4)需要多频段和多模式能力。

(5)可实现较高的频带利用率。

(6)多个软件模块进行协作可以实现认知无线电。

(7)对操作系统和软件API进行标准化,使得在各软件模块之间进行通信成为可能。

这些对软件无线电标准化和SCA的发展起到了推动作用。SCA自诞生到现在已经发展了多个版本,图3-6给出了SCA发展进程中的几个重要的里程碑。图3-6SCA的版本演化

2000年2月,SCA第一个正式版本SCA1.0出现。

2000年7月,经过补充后形成SCA1.1。

2000年12月,经过较大变动后形成SCA2.0。

2001年5月,SCA2.0增补版本SCA2.1形成。

2001年11月,SCA2.0增补版本SCA2.2形成。通常认为这个版本为完备的版本,足以应用于战场无线电系统。

2002年6月,波音公司首次在地面移动无线电(GMR)计划中应用SCA2.2。这是JTRS第一类终端(Cluster1)。

2004年4月,SCA2.2.1发布。该版本对SCA2.2进行了修正和补充。

2004年5月,OMG发布了软件无线电规范,这个规范是由一些SCA的开发商发起的,目的是将SCA发展为商用标准,而不仅仅是军用标准。

同时,在2004年初,在JTRS各类无线电终端的开发上提出了波形可移植的要求,因为在GPP上开发的代码在平台间移植较为容易,但是在DSP或FPGA上开发的代码通常只能用于特定的处理器和无线电结构,所以,JPO提出要解决DSP和FPGA代码的移植问题。几个专业工作组解决了这个问题,以此为基础,2004年8月,SCA3.0产生。

2006年8月,SCA2.2.2发布,这是SCA2.2.1的增补版本。

SCA规范包含以下三个方面的内容:

(1)SCA基本规范;

(2)应用程序接口(API)补充;

(3)安全补充。

其中,SCA基本规范还可进一步分为硬件结构和软件结构。应用程序接口(API)补充为建立模块化可移植应用单元提供了需求和指导方针。一个API组成了两个构件之间用于通信的语言、语法以及可提供服务的协议。遵从SCA的API采用IDL描述,是应用可移植能力和设备可交换能力的要素。API保证了服务提供者和用户可以在不考虑操作环境和编程语言的情况下进行通信。

安全补充定义了无线系统的安全需求,确定了这些需求的行为影响,定义了支持这些需求的API,采用公共标准评估等级作为安全需求定义的基础(CommonCriteriaEvaluationAssuranceLevels)。安全需求可以分解为以下几个成分:密码子系统、INFOSEC界限、装备水平界限、安全政策等。

下面将分别对SCA基本规范中的硬件结构和软件结构进行说明。3.3.3SCA的硬件结构

SCA采用面向对象的方式分割软件无线电的硬件。面向对象的方法描述了硬件类和其子类对象的层次。类的结构是分层的,它描述面向对象的类和子类之间是如何联系的。SCA中类的结构确定了用于建立物理系统硬件设备的功能元素。采用面向对象的方法,设备从父类继承通用的物理和接口特性。理论上,这将很容易确认和比较设备的可交换性。

划分类的重点在于把系统分成不同的物理单元以及把这些单元组成一个功能单元,如图3-7所示。

总的硬件父类是SCA-CompliantHardware类,它定义了可维护性、可用性、物理、环境、设备注册等参数,它有两个子类,即Chassis和HWModule(s)。

图3-7SCA的硬件结构

Chassis子类包含模块插槽、构成要素、背板类型、平台环境、功率、冷却需求等。HWModule(s)是所有功能模块子类的父类,这些功能模块有射频、电源、调制解调器、GPS、处理器、参考标准、I/O等。HWModule(s)类从SCA-CompliantHardware类继承系统级属性,HWModule(s)以下的类从HWModule(s)中继承类属性。不同的属性值满足不同的要求,可以在实现过程中进行选择。硬件设备(Device)即类的物理实现,它是具有相应的物理平台环境和设备性能要求的属性值。一些属性由设备描述体(DeviceProfile)给出,用于产生波形应用。核心框架(CF)可以解读设备描述文件。每一个硬件子类都可以进一步扩展,比如射频应用类可以扩展为天线类、接收机类、功率放大器类和激励器类。每个类都包含相应的属性或参数,如图3-8所示。调制解调器类也可以扩展为调制器类和解调器类,如图3-9所示。图3-8SCA中射频类的扩展图3-9SCA中调制解调器类的扩展3.3.4SCA的软件结构

SCA软件结构主要分为以下几个部分:

(1)操作环境(OE)。操作环境包括实时操作系统ROTS、实时对象请求代理ORB和核心框架CF,它规定了实现SCA兼容的无线系统所必须遵循的接口、规则、约束以及过程等。

(2)核心框架(CF)CORBA接口。

(3)日志接口(LogInterface)。

(4)事件服务(EventService)。

(5)命名服务(NamingService)。

(6)域描述体(DomainProfile)。

SCA软件结构如图3-10所示。图3-10SCA软件结构由图3-10可见,SCA软件结构是分层的,操作环境可以进一步扩展成为基础设施层。基础设施层可以细分为总线层、网络和串行接口层、操作系统层、CORBA中间件层、核心框架层。上层应用为应用层。

SCA的软件结构具有以下特点:

(1)分层的软件结构,把应用与底层硬件相分离。

(2)使用CORBA提供了一个分布式处理环境,保障实现软件的可移植性、可重用性和可扩展性;CORBA还提供了一定的透明性及不依赖于编程语言的特性。对于非CORBA的应用,可以首先通过适配器的方式连接。

(3)尽可能利用商品标准和产品,比如,采用商用硬件总线结构(VME、cPCI等)。软件架构操作系统采用具有嵌入实时能力的商用操作系统,且支持可移植操作系统接口(POSIX)标准,该标准对操作系统特定的方法提供了一个抽象层,从而将移植波形软件的成本降到最低。图3-10中的深色部分表明商用产品。

1.总线层

SCA的总线层如图3-11所示。图3-11SCA的总线层

SCA可以根据实际需要(比如数据带宽等)使用现有的商用总线产品(例如VME、cPCI等),总线层的主要成分是板级支持包,分别连接黑色的保密总线和红色的非保密总线(对于没有保密需求的应用,不需要进行两种总线的划分)。板级支持包通常由设备提供方提供,并且需要避免非典型特性,其作用如下:

(1)提供硬件抽象层。

(2)作为硬件和操作系统之间的分割。

(3)允许操作系统从一个主板到另一主板进行数据吞吐。

(4)提供设备驱动,以提供到操作系统的接口。

(5)使不同的底板同质化。

(6)统一存储器映射。

2.网络和串行接口层

SCA的网络和串行接口层如图3-12所示。

SCA使用商用网络协议,支持多个独立的串行接口和网络接口,例如RS-232、RS-422等。为了提供与总线层可靠的传输,使用了不同的底层协议栈。TCP/IP或1394可以工作在背板上,PPP、SLIP工作在串口上。另外,CORBA可以绕过操作系统直接接入。图3-12SCA的网络和串行接口层

3.操作系统层

SCA的操作系统层如图3-13所示。

操作系统是计算机系统中的一个系统软件,它是一些程序模块的集合。这些程序模块用于管理和控制计算机系统中的硬件及软件资源,合理地组织计算机的工作流程,以便有效地利用这些资源为用户提供一个功能强大、使用方便的工作环境,从而在计算机和用户之间起到接口的作用。在软件无线电中通常采用的操作系统为实时嵌入式操作系统(简称RTOS)。

所谓嵌入式系统,是指以应用为中心,以计算机技术为基础,软件、硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,而实时是指物理进程的真实时间。实时操作系统具有实时性,能从硬件方面支持实时控制系统的工作。图3-13SCA的操作系统层目前市场上比较著名的实时操作系统有VxWorks、Unix、Linux、PSOS、Nucleus、QNX、VRTX、WindowsCE、PalmOS、LynxOS等。其中,由WRS(WindRiverSystems)公司开发的VxWorks是一个具有微内核、可裁减的高性能、强实时操作系统,在实时操作系统市场上处于领先地位。该操作系统支持广泛的网络通信协议,并能够根据用户的需求进行组合。其开放式的结构和对工业标准的支持使开发者只需做最少的工作即可设计出有效的适合于不同用户要求的系统。该操作系统非常适合于软件无线电应用,并得到了软件无线电论坛的推荐。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、弹道制导、飞机导航等。另外,Linux等系统也很适于软件无线电的应用。国内一些厂商也开发了具有自主知识产权的实时操作系统,比如科银京成所开发的DeltOS“道”系统也具备软件无线电应用方面的能力。另外,SCA的操作系统还支持可移植操作系统接口(POSIX)标准,若在SCA中采用了基于POSIX的操作系统以及相应的主板支持包,则一个POSIX兼容的操作系统编写的程序可以在任何其他POSIX操作系统上(即使是来源于另一个厂商)编译执行。系统软件具有很好的可移植性。POSIX是IEEE为了在各种Unix操作系统上运行软件而定义的API(一组用于应用程序呼叫某个功能或服务的函数)的一系列互相关联的标准的总称,POSIX可提高Unix环境下应用程序的可移植性。现在许多其他操作系统(如MicrosoftWindowsNT)同样支持POSIX标准,其正式称呼为IEEE1003,国际标准名称为ISO/IEC9945。

4.CORBA中间件层

SCA的CORBA中间件层如图3-14所示。

在软件无线电多工作方式的实现过程中,要求能实时加入新的功能软件,通过软件资源分配的办法来实现软件的功能重组,这就要求将通信协议及软件标准化、通用化,从而实现软件的即插即用功能。图3-14SCA的CORBA中间件层中间件是一种用来将应用和操作环境细节(如硬件)相屏蔽的软件,一般位于操作系统之上,在应用软件之下,总的作用是形成一个在操作系统上可复用的部分,为处于上层的应用软件提供运行与开发环境,帮助用户高效、灵活地开发和集成复杂的应用软件。这样应用程序的开发和维护与底层的硬件和系统软件相隔离,只要相应的中间件做出变化就可以保证原应用软件不发生变化。特别是在软件无线电应用中,通常会存在多种硬件平台(DSP、FPGA等),这些硬件平台又存在各种不同的系统软件,而且这些硬件平台还可能通过网络连接,形成分布式异构环境,这使软件无线电应用程序的开发面临新的需求,这就是中间件的必要性所在。中间件具有如下一些特点:

(1)满足大量应用的需要。

(2)运行于多种硬件和OS平台。

(3)支持分布式计算,提供跨网络、硬件和OS平台的透明性的业务和服务的交互。

(4)支持标准的协议。

(5)支持标准的接口。中间件的种类很多,在JTRS中采用的是对象请求代理中间件(ORB),即公共对象请求代理体系结构(CORBA,CommonObjectRequestBrokerArchitecture)。这是由对象管理组织(OMG,ObjectMangementGroup)指定的一种标准的面向对象应用的应用程序体系规范,它是一种中间件标准。

1991年OMG提出CORBA1.1,同时还提出了接口定义语言IDL,能够让客户/服务器对象在特定的ORB中进行通信。1994年提出并被采纳的CORBA2.0标准真正实现了不同生产厂商间的互操作性。CORBA体系结构是OMG为解决分布式计算环境(DCE)中硬件和软件系统的互联而提出的一种解决方案;它基于“软件总线”的思想(与硬件总线类似,软件总线是将应用模块按标准做成插件,插入总线即可实现集成运行,从而支持分布式计算环境),目的是建立一个标准、开放、通用的体系结构。符合这个结构的对象可以互相交互,不论它们是用什么样的语言编写的,且不论它们运行于什么样的机器和操作系统下。这种体系结构可以让分布的应用程序完成通信,无论这种应用程序是什么厂商生产的,只要符合CORBA标准就可以相互通信,即对象之间的数据是通过CORBA进行传输的。可以说,CORBA是一种描述接口的工业标准。当系统向分布式结构和用户/服务器模式演化时,在两个单元之间需要有相应的接口连接,这种接口采用伪代码(称为接口定义语言IDL)描述。IDL提供了指定可用接口的方法,通过IDL“编译器”产生的源代码可以编译进每一个应用中,另外代码产生必要的支持程序来支持远程过程调用(在一个计算机内或计算机之间),即可应用于分布式环境。这样,开发者就从编写低级的过程间通信代码的工作中解放出来,更为重要的是,只要采用相同的IDL,不同的开发者开发的CORBA代码就可以进行互操作。显然,这对于开发模块化软件是非常重要的。在具体工作时,CORBA采用接口定义语言(IDL)定义系统中对象的接口,IDL通过编译会生成针对客户的stub代码和针对对象实现的skeleton代码,stub和skeleton的作用是作为客户和对象之间的代理。当客户请求对一个对象进行操作时,将工作交给ORB,由ORB决定哪个对象完成这个请求,激活该对象并将完成请求所需参数传送给该对象,其过程如图3-15所示。用户(比如控制器)向两个对象(Rake接收机和发射机)请求了不同的操作(如增加用户和设置导频),它们分别用不同的ORB连接(ORB1、ORB2)。由于CORBA将其内部操作细节封装起来,同时严格定义了接口,因此可通过代理完成客户和对象之间的通信,客户不需要知道每个对象的底层平台是什么,即使语言以及ORB的实现都不同。图3-15通过ORB实现通信例如,Rake接收机可以通过运行在GPP上的一个软件单元实现,而发射机可以通过运行在DSP上的另外一个软件单元实现。系统中每个对象(比如Rake接收机)有它的接口,这个接口由接口定义语言定义,当客户调用一个对象上的操作(请求)时,它将使用IDL接口指定操作。

5.核心框架层

SCA的核心框架层如图3-16所示。

核心框架是开放软件接口和描述体(Profile)的基本“核心”集,这些接口和描述体用于嵌入式通信系统中的软件应用单元进行配置、管理、互联以及通信。

框架是一种特殊的软件,可以作为操作系统的一部分,它为软件应用的设计者提供了底层的软件和硬件的抽象,它为软件开发带来了高度的可重用性,这也是它称为框架的重要原因。图3-16SCA的核心框架层使用框架的主要目的是让框架负责将核心应用和第三方技术隔离开来,使当前软件开发朝着协作的方向发展,可允许大量第三方软件的使用。这样虽然会带来软件开发的繁荣,但是对于软件组织者而言,还必须考虑第三方软件的成本、生命周期、本组织系统对其依赖程度等问题。核心框架由下面4个部分构成,其中包含3种接口,接口由IDL语言定义。

(1)基于应用接口:提供了一组通用接口,用于软件应用单元之间的信息交换,可以被所有应用软件使用。

(2)框架控制接口:提供用于软件应用单元开启、控制、关闭的接口,以及用于硬件分配和控制的接口。

(3)框架服务接口:为软件应用单元提供分布式文件访问服务和事件日志服务。

(4)域描述体文件:是一组可扩展标记语言(XML)文件,这些文件描述了系统的硬件和软件成员及其特点、互联关系等。

6.应用层

应用是指执行一个特定的遵从SCA功能的程序,它必须满足用户的需求。除了应用于OE的接口操作外,SCA没有对其进行其他定义。

图3-17、3-18分别给出了两种不同应用的示意图:一种是支持CORBA的应用;另一种是非CORBA应用。图3-17SCA的操作应用层图3-18SCA的操作应用层(非CORBA应用)应用层主要完成用户的通信功能,包括通信数字信号处理、链路级的协议处理、网络级的协议处理、网络互联的路由选择、外部的输入/输出访问、安全性处理和嵌入式应用。应用层应使用CF服务的接口,不能直接访问操作系统。网络功能可以在应用层以下实现,像商用的IP网络层就可以直接访问操作系统。对于非CORBA类型的应用,必须使用适配器(adapter)进行转换。适配器也是一种资源和设备。

应用由一个或多个资源组成。资源接口给软件构件的控制和配置提供公共的API。应用的开发者可以通过生成特定的资源接口扩展这些定义,资源接口扩展时至少必须继承基本的资源接口。另外,设备(Device)与资源是一个类型,它把实际的硬件映射为软件,便于在应用中使用。3.4软件下载以及软件可重配置3.4.1软件下载的定义软件无线电技术最初是现代多模式通信系统的解决方案,即侧重于在单一通用硬件平台上实现多模式的通信。虽然软件重配置是软件无线电的重要特征,但是早期这种重配置在相当程度上是静态的,即在一次有效的通信中,通信系统的状态是不变的,而且重配置后的系统特性也是预先内置好的,缺乏灵活性。今天,软件无线电更多地看做是一种可以通过软件下载实现可重配置通信终端的技术。这样的可重配置可以在设备的任何阶段实现,从设计阶段到生产阶段,乃至那些已经被消费者购买的产品均可以实现可重配置,即软件无线电研究关注的是如何设计一个开放的体系结构,将标准化、模块化的硬件功能单元通过软件下载和重配置方式来实现各种类型的无线通信系统。这种需求的出现源于现代移动通信的发展。由于现代移动通信的标准其种类很多,因此对于用户而言,在不同的网络中使用不同的终端是相当不便的,而通过软件下载进行重配置是实现一机无缝介入多种无线通信系统的关键技术,这在军用通信中也具有相当的吸引力。图3-19和图3-20分别显示了软件无线电终端和基站通过软件下载在技术升级或修补漏洞方面所呈现的巨大优势。图3-19软件下载实现不同空中接口标准之间的通信以及软件缺陷修补图3-20软件下载实现系统升级软件下载是指为软件无线电设备提供重配置数据或者新的可执行代码以改变其操作或性能的过程。软件下载和重配置技术是软件无线电与数字无线电的主要区别,这使通信系统能够快速、有效地配置成不同的通信标准,可以更快速、更容易适应新技术的发展。软件下载可以获得以下优势:

(1)可以升级无线设备形成新的无线功能或业务。

(2)修补现有设备中软件的缺陷。

(3)在空中接口标准不同的区域之间实现漫游通信。

软件下载的方法有多种,例如可以通过直接连接下载,采用智能卡(SIM)下载或通过空中接口(OTA)下载。虽然通过空中接口下载具有非常大的优势,不仅可以使下载过程变得非常简便,而且下载成本大为降低,对无线设备生产商、运营商、用户等多方均非常有利。其实,我们只需想象一下如果不采用网络升级,那么计算机库会有多么麻烦。从图3-19和3-20中可看出通过空中接口下载所显现的优势,因此该法是软件无线电重点考虑的方式。3.4.2软件下载的内容

软件无线电中的软件包括两个大类:应用软件和操作软件(包括操作系统、中间件、驱动程序等)。软件下载的内容所涵盖的范围很宽,从最简单的用户应用到空中接口的特性。如果系统的硬件和软件结构允许完全可编程,那么通过软件下载实现功能改变可以分为五个层次,如图3-21所示。图3-21通过软件下载实现功能改变的层次第一层次是用户应用。如电子邮件阅读器、MP3播放器、游戏、用户接口等,这些相应的程序在有些地方称为非无线电软件,因为它们不改变无线电特性。

第二层次是协议漏洞的修补。在该层次可以实现对现有通信协议出现错误的修补或升级。

第三层次是新的通信代码。在该层次可以对终端的物理层到用户接口的功能进行改变,比如语音编码的形式可以改变等,这些是在处理器上运行的,但并没有改变终端软件之间的接口。

第四层次是新的空中接口。注意,这不同于原来的双模式终端,现在新的空中接口标准不是终端内已经设置好的,而是通过某种方式下载得到的。第五层次是灵活的空中接口。这是可重配置终端的最高级形式。在这种情况下,当通信发生时,通过软件下载对本终端空中接口参数(如调制方式、编码类型、比特速率等)均按照实际情况重新定义。这种完全灵活的空中接口就是指在通信发生以前,空中接口的参数都是不确定的,通信双方根据实际业务以及链路情况来具体商定物理层的参数,比如,语音通信和图像通信的要求是不同的。因此需要具体情况予以特别对待,这还可以扩展到频谱的利用上。这个概念和认知无线电的概念相一致,后面将具体介绍。3.4.3软件下载的过程

实施软件下载的有两个主体:一个是下载软件的提供方,称为软件无线电服务器以及配套网络;另一个是下载软件的接收方,即软件无线电设备。无线电软件的下载大体上可以分为下载前、下载期间、下载后三个阶段,每个阶段还可以进一步划分,如图3-22所示,图中也相应给出了各个阶段的需求和功能。图3-22软件下载的过程为了保障软件无线电设备的下载重配置功能,需要有重配置管理器对无线电软件的下载、安装、重配置、原位检测、恢复等过程进行管理。这样的重配置管理器位于软件无线电设备中的一个安全的区域中,以保证其不会受到重配置的影响。另外,对下载服务器及其网络也有特殊的要求,即它们也必须有重配置管理器的功能,可以维护当前配置数据库,安排对软件无线电设备的下载,能够支持对大批设备的下载,保存并管理第三方或OEM生产的波形软件,与软件无线电设备中的重配置管理器进行通信以协调软件下载以及重配置的过程等。另外,软件下载实际上是将一些数据比特从一个地方移向另一个地方的过程,这些比特的传输需要遵循相应的通信协议,以保证通信的顺畅。为了实现软件下载,特别是通过空中接口进行下载,实现标准化是必须的,可以使下载与无线电接口技术和核心网络相独立,以具有最大扩展的可能。这意味着软件可以采用相同的方式下载到不同的设备上。图3-23给出了软件下载标准化的示意图。

几个主要的国际组织,如软件无线电论坛(SDRF)、对象管理组织(OMG)、第三代伙伴计划(3GPP、3GPP2)、国际电联(ITU)等均开展了相应的标准化工作。图3-23软件下载标准化的示意图3.4.4软件下载需考虑的问题

软件下载和重配置对软件无线电系统的影响是全面的。软件无线电系统的多层视图如图3-24所示,可以分为物理层、网络层、服务层、应用层。图3-24软件无线电的多层视图软件下载贯穿软件无线电系统的各个层次,需要考虑如下问题。

1.下载的程度

根据下载的内容覆盖原系统的程度,我们可以将下载分为部分下载和完全下载两类。完全下载就是完全替换原系统代码,这需要较大的系统资源,如带宽。部分下载只是替换原系统的部分代码,下载量相对较少,但各层之间的接口通常较为稳定。

2.系统单元之间的通信

系统各层以及层内各单元之间均是相互联系、共同完成任务的,那么在软件下载和重配置的过程中必须保持这种通信,无论是完全下载还是部分下载,各个单元之间必须有能力相互发现,这也称为绑定。

3.下载的内容

下载的内容可根据其执行情况分为可执行代码和数据两大类。可执行代码就是可供系统主动执行功能的代码;数据是被动执行的,例如系统所需的一些参数等。

4.安装

当内容下载完毕且得到认证后,就可以开始安装了。根据结构和内容的种类,安装可以分为以下三类:

(1)离线安装模式:整个通信终端离线进行安装,当重新工作时,终端重置进入新状态工作。

(2)部分离线安装模式:对终端暂时没有用到的部分进行安装,在安装过程中,终端的功能受限。

(3)在线安装模式:即在工作过程中同时完成安装。

5.对异常情况的预防

终端下载的内容会造成一些异常情况,可能会与系统资源冲突,从而引起死机,处理器过载,要求系统更大的总线流量等。这需要在系统设计时更多地考虑在下载重置时系统的完整性问题。

6.版本管理

这个问题在部分下载的时候是非常突出的,比如什么版本的软件可以与之配合工作,从一个提供商获得的软件是否能被另一个提供商所提供的软件替代等。

7.软件下载的标准

在新空中接口标准上运行的终端重配置将需要标准化协议,以用于传输、认证和下载软件。

8.软件下载的安全保障

由于下载软件的来源很多,既可以是原设备提供者,也可以是第三方软件供应商,因此软件的安全下载对软件无线电设备是至关重要的,其核心任务是保证恶意的软件代码不能被下载以及激活。安全威胁存在于软件编写到软件下载的各个阶段,如软件本身的有意或无意的漏洞等。同时还需要考虑软件在下载、存储、安装之后,如果安全检测失败所需要的恢复措施。安全性需求可以归纳为以下五类:

(1)授权:确认用户可以访问数据或使用网络。

(2)完整性:确认接收的数据在传输中没被修改和破坏。在接收和安装新软件之前,软件无线电设备需要确认下载的数据没有被修改。采用加密和编码等技术验证信息的完整性。

(3)隐私:确保他人不能访问用户的个人信息和受保护的设备制造商或软件发行者的可执行软件,可以采用加密技术实现。

(4)认证:指可以确认接收原始数据的能力,确认交易的双方是它们本身,可以采用简单的口令方法或高级的加密技术实现。认证包括身份认证、消息来源认证、消息内容认证。

(5)认可:接收者和传送者都肯定各自的行为,采用数字签名或适当的协议方法实现。3.5软件无线电可用的编程语言3.5.1汇编语言汇编语言是一种面向机器的低级语言。它依赖于硬件,能通过巧妙的程序设计充分发挥硬件的潜力。如果采用汇编语言实现软件无线电的编程,则需要编程人员熟悉处理器的结构。虽然采用汇编语言开发处理器芯片能充分利用处理器的软硬件资源,程序代码的执行效率高,有其性能方面的优势,但是却延长了开发周期,降低了开发效率,而且汇编语言程序在可读性、可修改性、可移植性和可重用性等方面的缺点日益突出,软件需求与软件生产力之间的矛盾日益严重。一般情况下,采用汇编语言编程主要用于对运算速度以及实时性要求极高,或者在不能扩展外部存储器而且片内存储器又非常有限的条件下。3.5.2高级软件语言

采用高级语言的目的是使程序与将要执行指令的目标处理器相分离,通过编译器来决定哪一种硬件特定的指令将被执行,这与汇编语言是不同的。在软件无线电应用中,常用的高级语言是C和C++。

1.C语言

DennisRitchie在1972年改进了B语言,在一台DECPDP-11计算机上开发出了最早的C语言版本,其主要目的是开发Unix操作系统。C语言优秀的设计和合理的结构使得移植C代码变得异常容易。Kernighan和Ritchie于1978年出版的《TheCProgrammingLanuage》成为了最成功的计算机学术著作之一。很快C语言得到了推广,在各种机型上都有了C的不同版本。但这也造成了很大的问题,不同版本的C编译器往往并不兼容,于是标准C出现了。1989年,美国国家标准协会制定了一个C语言标准(ANSIC),Kernighan和Ritchi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论