本发明具体涉及一种基于sca的波形动态切换方法。
背景技术
为将硬件、软件、无线技术有机地结合在一起,组成灵活多样的多功能系统,美国联合战术无线电系统(jointtacticaltadiosystem,jtrs)联合项目办公室(jointprogramexecutiveoffice,jpeo)发布了软件通信体系结构,即sca。sca是一种面向通用式通信系统的设计规范,其应用可使系统的功能不再着重于具体的硬件功能的实现,而主要在于应用的开发。sca可显著提高通信系统的灵活性、通用性、可重构性和互操作性。
sca的核心思想是采用面向对象的方法来设计一种标准化的软件系统,通过将不同的软件波形加载到通用的硬件平台中来实现不同的功能,使无线电台的更新换代只需要更换其中的软件波形就可以实现,达到了软件可重复使用的目的。由此可见,波形功能切换是软件无线电领域的重要技术,是波形设计开发的一个重要技术指标,充分体现了软件无线电“一种平台适配多种波形”的能力,在sca通信系统中占据重要地位。
sca规定采用组件化思想开发波形应用,波形组件承载了不同的波形功能,波形组件之间是独立的、可重用的和可扩展的。波形的切换,其本质上就是各个波形组件的替换。目前,波形切换的过程,主要包括两个步骤:首先是卸载正在运行的波形的全部波形组件,然后加载目标波形的全套波形组件,从而实现整个软件无线电系统的功能切换(波形切换)。但是,由于目前的波形切换方式是波形组件的全量级的切换,这使得波形切换的过程耗时较长,而且效率相对较低。
技术实现要素:
本发明的目的在于提供一种波形切换过程耗时相对较短、效率较高的基于sca的波形动态切换方法。
本发明提供的这种基于sca的波形动态切换方法,通过对比卸载波形和加载波形所需的波形组件的异同,保留卸载波形的波形组件中与加载波形所需的波形组件相同的波形组件,并对卸载波形和加载波形之间不同的波形组件进行切换,从而快速实现波形的动态切换。
所述的基于sca的波形动态切换方法,具体包括如下步骤:
s1.卸载波形正常运行;
s2.接收到波形切换指令,开始波形的动态切换;
s3.获取用户指定的波形动态切换的方式;
s4.解析加载波形的软件装配描述文件,从而获取加载波形的波形名及相应的波形组件信息;
s5.对卸载波形的波形组件和加载波形的波形组件进行对比,获取卸载波形的波形组件中与加载波形所需的波形组件不同的波形组件;
s6.根据步骤s5获取的不同的波形组件,对卸载波形的波形组件进行卸载;
s7.根据步骤s5获取的不同的波形组件,对加载波形的波形组件进行加载;
s8.波形动态切换完成。
步骤s6所述的对卸载波形的波形组件进行卸载,包括停止波形运行、断开波形组件接口间连接、卸载波形组件执行文件以及释放波形应用已分配的资源;停止波形运行是指停止波形正在进行的一切处理,通过调用波形组件的controllableinterface接口的stop操作完成;断开波形组件接口间连接是波形加载过程中组件接口连接的逆过程,通过调用波形组件的portaccessor接口的disconnectports操作完成;卸载波形组件执行文件是分别针对两种不同类型处理设备的具体操作,当处理设备为通用处理器(如arm、powerpc)时,调用终止操作(terminate)终止相应组件进程并卸载相应的波形组件,当处理设备为专用处理器(如dsp、fpga等)时,调用卸载操作(unload)处理相应执行文件并卸载相应的波形组件;释放波形应用资源通过调用capacitymanagement接口的deallocatecapacity操作回收波形加载过程中为波形组件分配的各种资源,如处理资源、宽带资源等。
所述的对卸载波形的波形组件进行卸载,具体包括如下步骤:
(1)接收波形卸载指令;
(2)停止波形组件运行;
(3)断开波形组件与其它组件的端口连接;
(4)卸载各个处理器中各波形组件的可执行文件或者映像文件;
(5)释放波形应用资源;
(6)波形组件卸载结束。
步骤s7所述的对波形组件进行加载,包括软件装配描述文件解析、波形部署、波形应用程序加载、波形启动和波形装配;,软件装配描述文件解析用于准备创建波形所需的波形名、配置属性以及波形部署要求等参数;波形部署用于在软件无线电平台中,为波形组件找到相匹配的设备;波形应用程序加载用于根据波形部署方案将波形组件对应的可执行文件或可加载文件拷贝到目标处理设备;波形启动用于使得目标设备启动部署在本节点的波形组件程序;波形装配用于在波形组件及其依赖项(波形组件运行依赖的其他设备或资源)成功运行后,建立波形组件间以及组件和设备、服务间的连接关系。
所述的对波形组件进行加载,具体包括如下步骤:
a.解析软件描述文件;
b.保存波形名、配置属性以及部署要求;
c.从域管理器中获取当前所有已注册的设备;
d.根据部署要求,匹配波形组件对应的目标设备;
e.将波形组件程序加载到对应的目标设备;
f.启动波形组件程序;
g.建立组件之间的连接关系;
h.波形的加载过程结束。
所述的波形部署,首先在域管理器的注册设备列表中获取一个与组件部署要求相匹配的设备,且该设备的类型为可加载设备或可执行设备;其次,获取组件的软件包描述文件,并从获取的文件中得到组件的实施信息,包括软件包的名称、开发者、属性文件、需要使用的设备及软件包运行信息,如运行时需求、可执行文件、依赖库、操作系统、处理器等;然后,调用设备的分配资源接口函数,在设备上为组件及其依赖软件分配处理能力(如处理资源),并在组件的实施信息中选择一个符合要求的实施描述,再从符合要求的描述信息中得到组件运行所需的依赖;最后,调用加载函数加载或调用执行函数运行组件的可执行程序文件。
所述的波形部署,具体包括如下步骤:
a.从域管理器获取当前所有已注册设备的列表;
b.从设备列表中获取设备信息;
c.判断波形组件的实现条件是否与当前设备匹配;
d.判断该设备是否是可加载设备或可执行设备;
e.判断该设备是否是列表中的最后一个设备;
f.得到组件的实施信息;
g.为获得的组件和该组件所依赖的软件分配处理能力;
h.调用设备的加载函数加载组件及其所依赖的文件;
i.调用设备的执行函数运行组件程序;
j.波形部署流程结束。
本发明提供的这种基于sca的波形动态切换方法,能够的在多种波形功能之间切换,充分体现了软件无线电“一种平台适配多种波形”的能力;而且采用本发明方法,能够使得波形切换过程中切换的波形组件数量减少,从而缩短了波形切换时间,提高了软件无线电平台的性能。
附图说明
图1为本发明方法的方法流程示意图。
图2为本发明方法中的波形组件卸载的流程示意图。
图3为本发明方法中的波形组件加载的流程示意图。
图4为本发明方法中的波形部署的流程示意图。
具体实施方式
如图1所示为本发明方法的方法流程示意图:本发明提供的这种基于sca的波形动态切换方法,通过对比卸载波形和加载波形所需的波形组件的异同,保留卸载波形的波形组件中与加载波形所需的波形组件相同的波形组件,并对卸载波形和加载波形之间不同的波形组件进行切换,从而快速实现波形的动态切换。本发明方法采用部分切换的思想,只需要切换两个波形应用中的不同波形组件。
上述的基于sca的波形动态切换方法,具体包括如下步骤:
s1.卸载波形正常运行;
s2.接收到波形切换指令,开始波形的动态切换;
s3.获取用户指定的波形动态切换的方式;
若用户指定了波形的动态切换方式,则采用用户指定的方式进行波动的动态切换;
若用户未指定波形的动态切换方式,则直接进行下述的步骤s4;
s4.解析加载波形的软件装配描述文件,从而获取加载波形的波形名及相应的波形组件信息;
s5.对卸载波形的波形组件和加载波形的波形组件进行对比,获取卸载波形的波形组件中与加载波形所需的波形组件不同的波形组件;
若卸载波形和加载波形的波形名相同,则认为是同一个波形,流程直接结束;
s6.根据步骤s5获取的不同的波形组件,对卸载波形的波形组件进行卸载;
对卸载波形的波形组件进行卸载,包括停止波形运行、断开波形组件接口间连接、卸载波形组件执行文件以及释放波形应用已分配的资源;停止波形运行是指停止波形正在进行的一切处理,通过调用波形组件的controllableinterface接口的stop操作完成;断开波形组件接口间连接是波形加载过程中组件接口连接的逆过程,通过调用波形组件的portaccessor接口的disconnectports操作完成;卸载波形组件执行文件是分别针对两种不同类型处理设备的具体操作,当处理设备为通用处理器(如arm、powerpc)时,调用终止操作(terminate)终止相应组件进程并卸载相应的波形组件,当处理设备为专用处理器(如dsp、fpga等)时,调用卸载操作(unload)处理相应执行文件并卸载相应的波形组件;释放波形应用资源通过调用capacitymanagement接口的deallocatecapacity操作回收波形加载过程中为波形组件分配的各种资源,如处理资源、宽带资源等;
在具体实施时,对卸载波形的波形组件进行卸载具体包括如下步骤(如图2所示):
(1)接收波形卸载指令;
(2)停止波形组件运行;
(3)断开波形组件与其它组件的端口连接;
(4)卸载各个处理器中各波形组件的可执行文件或者映像文件;
(5)释放波形应用资源;
(6)波形组件卸载结束;
s7.根据步骤s5获取的不同的波形组件,对加载波形的波形组件进行加载;
对波形组件进行加载,包括软件装配描述文件解析、波形部署、波形应用程序加载、波形启动和波形装配;,软件装配描述文件解析用于准备创建波形所需的波形名、配置属性以及波形部署要求等参数;波形部署用于在软件无线电平台中,为波形组件找到相匹配的设备;波形应用程序加载用于根据波形部署方案将波形组件对应的可执行文件或可加载文件拷贝到目标处理设备;波形启动用于使得目标设备启动部署在本节点的波形组件程序;波形装配用于在波形组件及其依赖项(波形组件运行依赖的其他设备或资源)成功运行后,建立波形组件间以及组件和设备、服务间的连接关系;
而波形部署,首先在域管理器的注册设备列表中获取一个与组件部署要求相匹配的设备,且该设备的类型为可加载设备或可执行设备;其次,获取组件的软件包描述文件,并从获取的文件中得到组件的实施信息,包括软件包的名称、开发者、属性文件、需要使用的设备及软件包运行信息,如运行时需求、可执行文件、依赖库、操作系统、处理器等;然后,调用设备的分配资源接口函数,在设备上为组件及其依赖软件分配处理能力(如处理资源),并在组件的实施信息中选择一个符合要求的实施描述,再从符合要求的描述信息中得到组件运行所需的依赖;最后,调用加载函数加载或调用执行函数运行组件的可执行程序文件;
在具体实施时,对波形组件进行加载具体包括如下步骤(如图3所示):
a.解析软件描述文件;
b.保存波形名、配置属性以及部署要求;
c.从域管理器中获取当前所有已注册的设备;
d.根据部署要求,匹配波形组件对应的目标设备;
e.将波形组件程序加载到对应的目标设备;
f.启动波形组件程序;
g.建立组件之间的连接关系;
h.波形的加载过程结束;
在具体实施时,波形部署具体包括如下步骤(如图4所示):
a.从域管理器获取当前所有已注册设备的列表;
b.从设备列表中获取设备信息;
c.判断波形组件的实现条件是否与当前设备匹配;
若匹配,则转到步骤d,否则转到步骤e;
d.判断该设备是否是可加载设备或可执行设备;
若为可加载设备或可执行设备,则转到步骤f,否则转到步骤e;
e.判断该设备是否是列表中的最后一个设备;
若设备为列表中的最后一个设备,则部署失败;
否则转到步骤b;
f.得到组件的实施信息;
g.为获得的组件和该组件所依赖的软件分配处理能力;
h.调用设备的加载函数加载组件及其所依赖的文件;
i.调用设备的执行函数运行组件程序;
j.波形部署流程结束;
s8.波形动态切换完成。