当前位置:首页 期刊杂志

基于SCA的以太网设备组件的设计与实现

时间:2024-05-04

陈雄 李宏民 徐玲玲 银壮辰

摘要:针对软件通信体结构(SCA)电台中以太网设备组件的具体应用背景,在传统的以太网硬件设备提供的产生和获取以太网数据包的功能基础上,以太网设备组件作为以太网硬件设备的软件抽象,屏蔽底层硬件实现细节。提出了符合SCA规范的以太网设备组件的设计和实现方法,并对基于TCP/IP协议的以太网硬件进行有效封装,采用公共对象请求代理体系结构(CORBA)组件方式实现以太网逻辑设备,提供访问以太网口硬件的方法和属性。为SCA电台中的波形应用和服务提供了统一的以太网接口,提高了波形应用的可移植性和可重用性。

关键词:软件通信体系结构(SCA);以太网;设备组件;CORBA

中图分类号:TN924+.3

文献标识码:A

1 引言

针对传统无线电通信系统中波形应用存在的通用性、互通性和移植性的问题,软件无线电(Software Radio)应运而生[1]。软件无线电的核心一软件通信体系结构(SCA)作为美军联合战术无线电系统(JTRS)计划投巨资制定的技术规范,是未来各军兵种无线通信系统都将遵循的一体化结构[2]。SCA是一个开放的、与具体实现和外部硬件无关的系统标准框架,包含硬件体系结构、软件体系结构、安全附录和应用程序接口(APD附录[3]。基于SCA的平台架构具有开放性、灵活性、可移植性和组件化等特点[4]。SCA系统从构造一个标准通用的硬件平台出发,采用软件的方式来实现不同的通信协议、调制解调方式和工作频段等,将无线通信业务从硬件基础模式中解放出来,并能通过升级系统软件轻松实现系统功能的更新和升级。SCA平台架构如图1所示,通用硬件平台可根据应用场景的需要进行裁剪,通用软件平台部署在通用处理器(GPP)上:

平台架构采用分层设计,包括通信波形应用、通用软件平台和通用硬件平台。通信波形应用主要由波形组件构成,是SDR系统通信功能的实际执行体。通用软件平台为波形应用开发和系统管理提供统一的接口和服务,同时对硬件平台处理器进行统一管理。通用硬件平台为通信波形提供比特流和符号流的传输,完成基带协处理和中频处理的工作。SCA规范在整个软件平台上对框架接口和软件结构上做出了限制,但对各部分具体功能的实现并不做要求。平台组件的开发包括了设备及服务组件的开发和波形应用组件的开发,这是平台设计开发的重点内容。平台设备组件为上层波形应用和服务提供符合JTRS APIs规范的设备接口,提高波形應用的可移植性和可重用性,具有重要意义。

2 SCA软件平台APls及设备组件

2.1 软件平台APls

通用处理器(GPP)具有灵活、可扩展性和应用可移植性强的特点,承担了SCA系统中通用软件平台角色。部署在GPP上的标准化API对于实现SCA系统中波形应用组件的可移植性和可重用性至关重要。SCA规范中以统一建模语言(UMD的表达方式详细描述了各类接口之间的关系。这些以接口描述语言(IDD定义的接口以及这些接口的继承类也就形成了应用程序的接口(API),被波形应用程序调用。这样保证波形应用程序和服务不用关心组件内部的实现细节(如编程语言或操作环境),也使得在一个平台上开发的波形应用可以复用到不同大小、任务或部署的软件无线电平台,提高了在软件无线电系统中部署新功能的速度,同时降低系统的维护成本[3][4]。SCA标准中的APIs包括:基本应用接口、框架控制接口、框架服务接口、基本设备接口[5]。图2所示是JTRS系统中GPP上部署的APIs的基本描述。

基本应用接口一般由应用组件继承,如波形应用组件、平台日志组件;框架控制接口和框架服务接口则是由核心框架使用,可提供文件系统,文件管理等功能;基本设备接口由各类型设备使用,可选继承基本设备接口的相关接口,同时可选继承基本应用接口的相关功能,主要为设备组件提供软件加载和执行接口,通过软件接口实现对硬件物理设备的控制和管理。设备组件是底层物理硬件设备的软件抽象,提供访问物理硬件设备的方法和属性,向上层波形组件提供符合JTRS接口规范的统一设备接口,屏蔽底层硬件的实现细节[6]。

2.2 SCA系统中设备组件

SCA系统中的设备组件是底层物理硬件设备的软件抽象,是一种采用组件方式实现的逻辑设备。设备组件的设计采用面向对象的思想,将访问物理硬件设备的方法和属性封装成接口类,并根据设备组件的接口需求和功能需求建立设备组件的UML模型,生成IDL接口描述文件。为了适应无线电设备在不同应用场景的需求(如机载、舰载和手持),SCA4.O[7]提出了轻量级组件的设计,在设备组件的IDL文件中选择性继承接口,通过接口的继承方式就能控制设备组件的大小。

设备组件的设计主要包括三个方面:一是端口定义,用于设备组件与其它组件之间的连接通信和数据交互;二是接口设计,确定设备组件的具体功能,支持它所代表的物理硬件设备的具体方法和属性;三是设备组件具体实现,根据软件平台、功能需求和设备组件API标准来设计实现[8]。在SCA系统中,组件采用统一建模语言(UML)描述组件的接口模型,IDL文件描述了设备组件的端口定义和接口设计,并选择继承需要实现的接口类,同时可以被编译成不同编程语言用于在不同操作环境(OE)中具体实现,提高了组件的可移植性。

3 以太网设备组件的设计

根据联合战术无线电集(Joint Tactical Radio(JTR) Sets)中定义的一套通用的以太网设备标准,对其提供的服务和接口进行实现。以太网设备是一种采用CORBA组件方式实现的逻辑设备,提供访问以太网口硬件的方法和属性。

3.1 以太网设备端口定义

以太网设备组件端口是其与外界数据交互过程中的数据通信口。图3描述了以太网设备具备五个端口,总体上分为两类:使用者端口(UserPort)和提供者端口(ProviderPort),端口具有方向性。使用者端口功能定义:1)通过该端口将以太网设备中的数据传送到域中其它与该端口连接的组件端口中,以供被使用者接收数据;2)通过该端口将控制信号、数据包大小、优先序列数量、流量控制等报文信息传送到域中其他与该端口连接的组件端口中。提供者端口功能定义:1)用于接收其它组件的传入数据;2)其使用者可将控制信号、数据包大小、优先序列数量、流量控制等报文信息传入以太网设备;3)其使用者可通过该端口对以太网设备的数据流进行控制。图3所示是以太网设备的端口图。

以太网设备的端口定义基于面向对象的思想,将端口的属性和功能封装成类。以太网设备的API是由端口类中的方法实现。以太网设备组件作为底层以太网硬件设备的封装,它的基本功能就是从硬件设备获取外界传入的数据包和发送数据包到与之相连的其它组件,与其它组件的交互通过继承通用数据包接口类来实现,如Packet、DevicelO。

3.2 以太网设备接口设计

SCA4.0中对接口和组件有了明确的区分(接口函数形式和功能保持不变),对组件的划分更为精细,对接口设计采用选择性继承方式,使得接口设计更为灵活,提高组件的重用性,降低系统成本。以太网设备的接口设计是根据平台提供的资源来确定其具体功能,并定义了相应的属性和操作。以太网设备各接口类图如图4所示,主要包括三类接口类图,继承接口类和操作如表1所示;

4 以太网设备组件的具体实现

图5所示,在SCA电台中数据终端通过以太网设备与波形应用组件相连进行数据传输,以太网设备提供产生和获取以太网数据包的功能以及流控操作,同时为了便于今后的组网实现,预留模式配置接口。

4.1 实现方法

以太网设备是对硬件以太网接口的抽象,它与终端数据基于TCP/UDP数据交互,与波形应用组件基于CORBA数据交互。

4.1.1 网络协议栈封装

以太网设备与数据终端数据交互是基于嵌入式TCP/IP協议[9],结合软件平台提供的网络协议栈对基于TCP/IP协议的以太网硬件进行有效封装。通信过程中,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。以太网设备根据数据终端的发送业务需求,采用不同模式的套接字(socket)来支持数据传输和数据控制。同时支持对以太网帧的抓取,方便对传输数据的进一步分析和数据传输路径判断。

4.1.2 采用CORBA组件方式

组件间的交互采用CORBA中间件提供分布的组件对象间通信连接,屏蔽分布、嵌入式计算系统环境中各计算单元具体实现的差异和操作系统间的差异,为上层的波形应用软件组件提供统一的API。以太网设备组件根据IDL描述的接口进行实现,定义和实现能具体化CORBA对象的伺服类。数据交互之前,以太网设备和波形组件需要建立连接,抽象为客户端朋艮务端(C/S)模型。首先以太网设备和波形组件实例化端口对象,并将提供者端口的对象引用公布到域中。然后,在使用者端口的创建端口连接方法中,根据可扩展标记(XMD文件中描述的连接关系,将域中提供者端口的对象引用本地保存,以太网设备组件和波形组件间的逻辑连接完成;数据交互时,当数据流从波形组件到以太网设备时,根据连接关系,波形组件的使用者端口作为以太网设备提供者端口的客户端,以太网设备提供者端口作为波形组件使用者端口的服务端。通过本地保存的以太网设备提供者端口的对象引用,获取CORBA伺服类对象,最后调用推送数据流的方法,至此波形应用组件推送数据流到以太网设备完成。以太网设备在判断数据包的传输目的地址不是本地时,需要将数据包推送给相连的波形组件,此时,根据以太网设备使用者端口中保存的波形组件的提供者端口对象引用,调用推送数据流方法,将数据流推送至波形组件。

4.2 具体实现分析

根据以太网设备基本功能需求,结合实现方法,分别对基本功能设计实现。图6描述了以太网设备基本功能实现框图。

(1)基于VxWorks嵌入式实时操作系统的网络协议栈叫作SENS,即可裁剪增强网络协议栈。SENS是基于TCP/IP协议栈发展而来,主要特点是在数据链路层(由网络接口驱动程序实现)和网络协议层之间多了MUX层,如图6所示的。以太网设备在构造函数中默认创建IP套接字数据传输,在以太网设备连接使用者端口时,在connectUsesPort函数中,调用muxBind函数将协议类型与特定的网络接口绑定,函数参数传入一个协议数据处理函数指针、网络接口的名字等参数,并设置为接收数据;此时,将在所有标准协议接收之前调用协议数据处理函数,因此以太网设备实际上采用TCP/IP协议中原始套接字方式实现抓取不同协议、不同目的地址的数据包功能。如果目的地址和电台本机的IP地址不相等,则该数据包将不再被传递至上层协议或底层,根据图6中以太网设备和PDCP组件的连接关系(XML文件中描述),EthConsumerOutPort 端 口 中 保 存 了PdcpConsumerInPort端口的对象引用,通过调用对象引用的pushPacket方法将数据包推送至PDCP组件中;否则,该数据包扔回协议栈中,继续向上或向下传递。PDCP组件推送数据流到以太网设备时,同样调用PdcpConsumerOutPort端口保存的EthConsumerInPort端口对象引用的pushPacket方法,将数据流推送至以太网设备。

(2)以太网设备中采用了数据流速控制和发送请求/允许请求控制来保证数据的有效传输。具体数据处理流程,包括从底层硬件设备接收数据,传递给波形应用组件;从波形应用组件获得数据,交由底层硬件设备传输。参考JTRS标准以太网设备API中提供的以太网设备提供数据时序图和以太网设备消费数据时序[10]。

5 结束语

设计的以太网设备组件,遵循了SCA规范中逻辑设备组件的设计方法,从以太网设备组件的端口定义、接口设计和具体实现展开详细的论述。以太网设备组件的端口定义和接口设计满足JTRSAPIs规范,提高了软件的可移植性、可重用性以及组件间的互操作性。以太网设备组件的具体实现基于软件平台提供的网络协议栈,抓取原始套接字,判断数据包的目的地址,并确定发送路径,能够广泛应用于电台的通信组网;在组件间的数据交互中,采用CORBA中间件,提高了传输效率;数据处理流程上采用了数据流速控制和发送请求,允许请求控制两类机制,保证了数据有效传递。本文中以太网设备组件的开发,为其它设备组件的开发提供了参考。

参考文献

[l]陶玉柱,胡建旺,崔佩璋.软件无线电技术综述[J].通信技术,2011,44(1):37-39.

[2]李兰花,王玲,施峻武等SCA系统中以太网设备组件的设计与实现[J]微电子学与计算机,2016,33 (3):41-45.

[3]王庆生.基于SCA规范的软件无线电系统设计[J]现代导航,2012,03(1):56-60

[4] 陆志彬.基于软件通信体系结构的波形应用研究与实现[D]成都:电子科技大学,2008

[5]周新,SCA在通信系统中的应用研究[D]成都:电子科技大学,2014

[6] 范建华,王晓波,李云洲基于软件通信体系结构的软件定义无线电系统[J]清华大学学报:自然科学版,2011,51(8):1031-1037

[7]Modular Sofiware-programmable Radio Consoflium SofiwareCommunication Architecture (Version4.0) [R].Washington, JIRSJoint Program Office, 2012

[8] 李兰花,基于SCA和USRP的通信系统设计与实现[D]长沙:湖南师范大学,2016

[9] ZHANG J H.Study on Embedded TCP_IP Protocol and ARMImplementation[J]Applied Mechanics&Materials,2014,556-562:6046-6049

[10] Joint Tactical Radio System (JIRS) Standard Ethemet DeviceApplication Program Interface

(APD Version:1.2.2.31,March, 2008

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!