SCA软件无线电平台的组件加载方法与流程

文档序号:17627471发布日期:2019-05-10 23:48阅读:519来源:国知局
本发明具体涉及一种sca软件无线电平台的组件加载方法。
背景技术
::为将硬件、软件、无线技术有机地结合在一起,组成灵活多样的多功能系统,美国联合战术无线电系统(jointtacticalradiosystem,jtrs)联合项目办公室(jointprogramexecutiveoffice,jpeo)发布了软件通信体系结构,即sca。sca是一种面向通用式通信系统的设计规范,其应用可使系统的功能不再着重于具体的硬件功能的实现,而主要在于应用的开发。软件体系结构sca规定采用组件化的思想设计软件平台,组件接口标准,具有良好的通用性、开放性和可扩展性,满足软件平台组件的重用性以及波形组件的可移植性。所以整个软件无线电波形实质上就是各个组件以某种关系的逻辑链接体,软件平台的的通信实质上就是各个组件之间的通信,组件之间通信方式直接影响了整个软件无线电通信性能。早期版本的软件无线电组件之间基于corba中间件的客户端/服务器模型进行通信,该通信模式是为了解决分布式通信,常用方式是客户端和服务器分属不同的进程空间,该方式降低了各个组件之间的耦合关系,独立性好,方便管理。但是,随着小型化软件无线电设备(比如单人背负式电台,单人手持电台等)的兴起,其对于软件无线电组件之间的数据通信、数据传输时间、功耗等指标均提出了近乎苛刻的要求。现有的基于corba中间件的客户端/服务器模型的进程通信方式,由于其各个组件均归属于各自的进程空间,从而使得软件无线电平台占用的内存资源较多,功耗较大,而且组件与组件之间的通信效率较低。因此,现有的基于corba中间件的客户端/服务器模型的软件无线电进程通信方式已经不再适用于小型化软件无线电设备。技术实现要素:本发明的目的在于提供一种组件间数据传输时效性较好的sca软件无线电平台的组件加载方法。本发明提供的这种sca软件无线电平台的组件加载方法,包括如下步骤:s1.启动域管理器进程;s2.启动设备管理器进程;s3.设备管理器创建全局的对象请求代理;s4.设备管理器读取dcd文件并获取要启动的设备组件;s5.以启动线程的方式逐个启动所有设备组件;s6.所有设备组件均正常工作;s7.设备管理器正常工作;s8.域管理器收到波形加载指令;s9.设备组件以启动线程的方式加载启动对应的波形组件;s10.波形组件正常工作;s11.sca软件无线电平台的组件加载完毕,sca软件无线电平台正常工作。步骤s5所述的以启动线程的方式逐个启动所有设备组件,具体为采用如下步骤启动设备组件:a.解析设备组件的spd文件;b.对步骤a解析的spd文件中的code中的type元素的数值进行判断:若type元素的数值为executable,则判定该组件为可执行组件,并调用组件的可执行文件启动组件,将该组件以进程的方式加载至系统;若type元素的数值为sharedlibrary,则判定该组件为可加载库组件,并获取spd文件中entrypoint中配置的组件的入口函数;c.判定步骤b中的获取的spd文件中entrypoint中配置的组件的入口函数:若获得的是入口函数,则使用该获得的入口函数创建线程启动组件;若获得的不是入口函数,则使用该设备组件支持的方式直接将该组件程序加载至系统。步骤s9所述的以启动线程的方式加载启动对应的波形组件,具体为采用如下步骤启动波形组件:a.解析波形组件的spd文件;b.对步骤a解析的spd文件中的code中的type元素的数值进行判断:若type元素的数值为executable,则判定该组件为可执行组件,并调用组件的可执行文件的启动组件,将该组件以进程的方式加载至系统;若type元素的数值为sharedlibrary,则判定该组件为可加载库组件,并获取spd文件中entrypoint中配置的组件的入口函数;c.判定步骤b中的获取的spd文件中entrypoint中配置的组件的入口函数:若获得的是入口函数,则使用该获得的入口函数创建线程启动组件;若获得的不是入口函数,则使用该波形组件支持的方式直接将该组件程序加载至系统。组件以入口函数作为启动函数,并使用设备管理器创建的全局的对象请求代理作为自身对象请求代理,而且不再重新创建对象请求代理;所述的组件包括设备组件和波形组件。组件与组件之间进行通信时,使用全局的对象请求代理进行通信;所述的组件包括设备组件和波形组件。所述的通信为本地调用过程。本发明提供的这种sca软件无线电平台的组件加载方法,通过采用线程启动的方式加载sca软件无线电平台的组件,使得各个组件以线程的形式运行和相互通信,因此sca软件无线电平台的组件与组件之间的数据传输速率和通信速率极快。附图说明图1为本发明方法的方法流程图。图2为本发明的实施例的板卡内通信测试示意图。图3为本发明的实施例的板卡间通信测试示意图。图4为本发明的实施例的多板卡波形组件通信时延分析示意图。具体实施方式如图1所示为本发明方法的方法流程图:本发明提供的这种sca软件无线电平台的组件加载方法,包括如下步骤:s1.启动域管理器进程;s2.启动设备管理器进程;s3.设备管理器创建全局的对象请求代理;s4.设备管理器读取dcd文件并获取要启动的设备组件;s5.以启动线程的方式逐个启动所有设备组件;具体为采用如下步骤启动设备组件:a.解析设备组件的spd文件;b.对步骤a解析的spd文件中的code中的type元素的数值进行判断:若type元素的数值为executable,则判定该组件为可执行组件,并调用组件的可执行文件启动组件,将该组件以进程的方式加载至系统;若type元素的数值为sharedlibrary,则判定该组件为可加载库组件,并获取spd文件中entrypoint中配置的组件的入口函数;c.判定步骤b中的获取的spd文件中entrypoint中配置的组件的入口函数:若获得的是入口函数,则使用该获得的入口函数创建线程启动组件;若获得的不是入口函数,则使用该设备组件支持的方式直接将该组件程序加载至系统;s6.所有设备组件均正常工作;s7.设备管理器正常工作;s8.域管理器收到波形加载指令;s9.设备组件以启动线程的方式加载启动对应的波形组件;具体为采用如下步骤启动波形组件:a.解析波形组件的spd文件;b.对步骤a解析的spd文件中的code中的type元素的数值进行判断:若type元素的数值为executable,则判定该组件为可执行组件,并调用组件的可执行文件启动组件,将该进件以进程的方式加载至系统;若type元素的数值为sharedlibrary,则判定该组件为可加载库组件,并获取spd文件中entrypoint中配置的组件的入口函数;c.判定步骤b中的获取的spd文件中entrypoint中配置的组件的入口函数:若获得的是入口函数,则使用该获得的入口函数创建线程启动组件;若获得的不是入口函数,则使用该波形组件支持的方式直接将该组件程序加载至系统;s10.波形组件正常工作;s11.sca软件无线电平台的组件加载完毕,sca软件无线电平台正常工作。在上述的过程中,组件(包括设备组件和波形组件)以入口函数作为启动函数,并使用设备管理器创建的全局的对象请求代理作为自身对象请求代理,而且不再重新创建对象请求代理;同时,组件(包括设备组件和波形组件)与组件(包括设备组件和波形组件)之间进行通信时,使用全局的对象请求代理进行通信。以下结合若干个具体实施例,对本发明的技术效果进行说明:对corba中间件常用的两款产品ace-tao和omni-orb进行传输性能测试。分别将两款产品的传统工作模式和本发明工作模式应用于zynq平台组件通信、vm虚拟机平台组件通信以及跨平台组件通信。传输性能是中间件的重要特性,在sca中,组件间的通信和数据传输都要通过中间件,因此中间件的传输性能直接影响整个无线电系统的效率和用户的体验。本节进行多组数据收发的实验,用数据包的传输时延表征软件无线电组件之间的通信效率。测试环境:硬件环境:在linux虚拟机环境和通用软件无线电平台上,对中间件应用于传统模式和本发明模式,进行性能测试;linux虚拟机环境:cpu:i7-6700主频:3.40ghz平台内存:4gb操作系统:linuxubuntu14.02操作系统通用软件无线电zynq7030平台:cpu:双核的armcortex-a7主频:667mhz平台内存:1gb操作系统为linux3.17软件环境:启动的组件:域管理器、设备管理器、以太网设备、gpp设备、fpga设备、平台管理服务、llc组件、phy组件;传统模式:每个组件对应一个进程,波形组件和设备组件之间的通信是不同进程空间的通信;本发明模式:域管理器和设备管理器以进程方式工作,其它平台组件和波形组件以线程方式工作,即平台设备/服务组件分别作为设备管理器的一个线程,llc波形组件做为gpp设备组件的线程。波形组件和设备组件之间的通信为同一个进程空间的线程通信;测试方法:具体实现时,发送组件分别会在发送第一个数据包之前和发送最后一个数据包之后记录当前的时间,两者相减即可得到发送n个数据包的总时间,然后总时间除以n获得发送一个数据包的时延。实验调用系统函数gettimeofday获取当前时间,此外,为了减少误差,提高实验数据的准确性,发送组件每次的发包数量为1万,单个实验重复进行10次取平均值,然后取5个不同时间点实验结果再次求取平均值。实验测试流程:(1)将数据包大小设置为1024字节;(2)启动整个oe程序;(3)发送组件发出第一个数据包前,记录时间t1;(4)发送组件连续发出1万个数据包;(5)发送组件发送完最后一个数据包时,记录当前时间t2;(6)用t2减去t1,得到传输时延;(7)求取单个数据包发送时延平均值;(8)重复执行10次上述步骤3到步骤7;(9)采取5个不同时间点上述步骤求取最终平均数值;测试结果:板卡内测试结果:如图2所示,发送组件产生数据包并发送到接收组件,接收组件收到数据包不做任何处理。omniorb中间件pc虚拟机单次传输时延:传统模式43.26μs;本发明模式:0.22μs。本发明模式较传统模式优化了99.5%。zynq7030平台单次传输时延:传统模式173.8μs;本发明模式:6μs。本发明模式较传统模式优化了96.5%。tao中间件:pc虚拟机单次传输时延:传统模式267.9μs;本发明模式:2.12。本发明模式较传统模式优化了99.2%。zynq7030平台单次传输时延:传统模式965.84μs;本发明模式:36.58。本发明模式较传统模式优化了96.2%。结果分析:由上述数据可知,首先,针对同一款中间件产品,在相同通信模式下linux虚拟机时延性能优于zynq7030平台,这是因为linux虚拟机平台配置高于zynq7030平台,与理论是一致的,即配置越高,传输时延越小。其次,相同工作环境下,omniorb中间件时延性能总是优于tao中间件,这是因为omniorb在传输协议上做了优化,与理论分析是一致的;第三,针对同一款中间件产品,在相同工作平台下,本发明模式时延性能总是优于传统模式,这是因为传统模式是不同进程空间数据的交互,而本发明模式是在同一个进程空间交互数据,交互速度优于传统模式,与理论也是一致的。所以,在目前单板平台或是小型化的soc平台中进行软件无线电开发时,除了选择轻量化的核心框架和中间件,组件间可以采取本发明工作模式进行通信,以提高平台的通信性能。板卡间通信:由于上述的环节中omni性能优于tao,因此此处只测试omni中间件的跨平台传输性能。如图3所示,发送组件产生数据包并发送到接收组件,接收组件收到数据包不做任何处理。两个组件通信:单次传输时延:全传统模式400μs;全本发明模式:385μs;交叉模式386us。对于跨平台通信的两个组件来说,都属于远程调用。两种通信模式的通信时延并无太大差别。三个组件通信单次传输时延:传统模式561.8μs;本发明模式:381μs。本发明模式较传统模式优化了32%。12345平均(μs)传统模式584562544557562561.8本发明模式399377376377376381结果分析:由图4可知,首先,对于两个跨平台的组件来说,进程通信模式和线程通信模式通信时延相当,因为两个组件跨板子传输数据时,即使传输数据的两个组件以线程而存在,依然是远程调用,两者之间的通信实质上是不同进程之间的线程通信,此时传输时延与两个进程组件通信时延一样,与理论分析是一致;其次,对于多个组件组成的波形来说,跨平台通信时,本发明模式优于传统模式,仅仅看板间的两个组件来说,两种工作模式的传输时延并无太大差别,但是通常情况下,波形传输数据相关的组件都是跨板部署的,本发明模式优化了板内时延,即使板间时延未变,仍是优化了整个数据传输过程。以下从理论上对本发明的技术效果进行初步的说明:进程通信与线程通信:进程通信:每个进程都有自己的地址空间,两个进程中的地址即使值相同,实际指向的位置也不同。即使是父子进程也是分别占据自己的内存空间,资源不共享。进程数据空间的独立性决定了进程间通信需要通过操作系统,也就是内核的调度。因此,进程通信的过程,对底层有依赖,相对比较复杂。而且,针对corba组件之间通过传统模式函数调用时,属于远程调用,需要通过orb对象传输函数调用指令,相对来说,增大了传输时延。线程通信:同一个进程中的多个线程共享地址空间和数据空间,所以多个线程间通信时,一个线程的数据可以直接提供给其他线程使用。而且,针对corba组件通过本发明模式函数调用时,属于本地调用,开销小。比较:线程和进程在使用上各有优缺点。线程执行开销比较小,因多个线程共享进程空间,耦合性大,所以不利于资源的管理和保护;而进程相反,进程之间耦合弱,每个进程都有自己的进程空间,但相比线程,进程会消耗更多的内存空间,进程间通信时效性较线程差。corba传输模式:corba中间件最具代表性的功能就是对象请求代理服务orb,可以实现客户端与服务器之间的透明传输和调用,可以屏蔽操作系统、传输协议以及硬件架构甚至编程语言的差异。corba是典型的cs模式。在组件传统模式中,s端和c端分属不同的进程,两端之间的通信属于远程调用,tao和omniorb对于进程间的通信采用socket通信。在组件本发明模式中,s端和c端在同一进程的不同线程中运行,对于同一进程中的c端向s端发请求,tao和omniorb处理方式是直接的函数调用。两种不同模式中,相比本发明模式的本地调用,传统模式的远程调用在传输数据过程中增加了组包和解包等流程,增大了数据传输时间。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1