非CORBA波形组件加载电路的制作方法

文档序号:17244285发布日期:2019-03-30 08:44阅读:215来源:国知局
非CORBA波形组件加载电路的制作方法

本发明涉及无线通信领域软件无线电技术,具体涉及一种软件通信体系结构的非corba(commonobjectrequestbrokerarchitecture),公共对象请求代理体系结构)波形组件加载电路及方法。



背景技术:

软件无线电是当今通信领域的重要技术,软件通信体系结构(sca,softwarecommunicationsarchitecture)提供了一种用于软软件无线电平台实施应用的软件框架。sca的目的是实现无线通信装备硬件模块化,软件具有可移植性、可重用性和互操作性。sca的核心思想是采用面向对象的方法来设计一种标准化的软件系统,通过将不同的软件波形组件加载到通用的硬件平台中来实现不同的功能,使无线电台的更新换代只需要更换其中的软件波形就可以实现。软件的重用性不仅缩短了无线电台的开发周期,也在一定程度上降低了开发成本。波形组件的加载是将不同的软件波形组件加载到通用的硬件平台中,是sca的核心思想的最重要的支撑技术之一。

就sca而言,以下适用于处理器的命名约定:通用处理器gpp代表支持corba的处理器(可以是支持corba的dsp);数字信号处理器dsp代表支持c语言的处理器,但不支持corba;现场可编程门阵列芯片fpga代表支持hdl的处理器,同样也不支持corba。基于sca的软件无线电中,gpp处理器之间和内部的通信使用corba中间件提供,gpp与处理单元之间通信使用mhal实现例。波形实现独立于平台部分,其设计与实现基于sca规范,具有良好的开放性。gpp侧波形组件主要实现网络层功能,dsp、fpga侧波形组件实现物理层和数据链路层功能,基于波形组件加载技术实现波形加载。gpp侧波形组件为corba波形组件,由gpp硬件逻辑设备的load方法进行加载。dsp、fpga侧波形组件为非corba波形组件,由dsp硬件或fpga硬件可加载逻辑设备的load方法进行加载。dsp/fpga处理器程序加载分为主动加载和被动加载。主动加载是处理器上电复位后自主从指定端口读取数据并执行的加载模式。根据端口是并行总线和串行总线,主动加载又可分为并行主动加载和串行主动加载。并行主动加载是处理器上电复位后自主从并行端口读取数据并执行的加载模式,串行主动加载是处理器上电复位后自主从并行端口读取数据并执行的加载模式。被动加载是处理器上电复位后处于挂起状态,加载控制器通过处理器的被动加载端口输入数据并启动处理器执行程序的模式。各种加载模式各有优劣。并行主动加载模式加载速度最快,但是处理器和存储器之间的连线较多。串行主动加载电路简单,但是加载速度较慢。被动加载比较灵活,但是需要专门的处理器充当加载控制器,并且不同处理器被动加载端口往往差别巨大,实现复杂度较高。随着技术的发展,不同类型的dsp/fpga处理器都具备多种加载模式,当前所有的dsp/fpga处理器都具有并行flash主动加载接口,用于处理器硬件复位后自主从并行flash中加载程序。

目前,非corba波形组件加载过程基本上都采用dsp/fpga处理器被动加载的加载流程。gpp上运行可加载逻辑设备及加载接口驱动程序。可加载逻辑设备通过总线向加载接口发送加载命令及数据。加载接口负责接收加载命令和数据,对可加载目标器件(dsp/fpga)进行加载。现有的一些方案中有如下一些缺点:

一.波形组件是通过gpp读取后,再通过总线传输到可加载目标器件,通过被动加载模式实现对可加载目标器件的波形组件加载,传输过程需要分包进行,过程复杂,容易出错,且速度慢,加之被动加载模式也是速度较慢的加载模式,使得整个加载过程复杂且加载速度较慢,不能满足某些需要快速重构的系统需求。

二.该模式不支持并行加载,多个可加载目标器件只能串行加载,整个系统加载时间是每个可加载目标器件加载时间的累积,当系统中可加载目标器件较多时,系统加载时间太慢。



技术实现要素:

本发明的目的是针对现有技术软件通信体系结构存在的不足之处,提供一种能够提高单个可加载目标器件和整个sca系统加载速度,减少重构时间的非corba波形组件加载电路,本发明的更进一步目的是提供一种基于上述电路的非corba波形组件加载方法。

为达到以上目的,本发明提供的一种非corba波形组件加载电路,包括:部署了加载代理逻辑设备、加载接口驱动并支持corba波形组件的通用处理器gpp、部署了加载接口的复杂可编程逻辑器件cpld、k=m+n片并行norflash存储器芯片、配置成主动并行加载模式的n片现场可编程门阵列fpga和m片数字信号处理器dsp,其中,cpld的加载接口包含了localbus总线读写器、k路flash块选择器、k路复位信号发生器和k路加载状态寄存器,其特征在于:非corba波形组件存储在本地flash中,并通过对本地flash分块实现多个波形组件的存储;localbus总线读写器读取来自加载代理逻辑设备传递给加载接口驱动的加载信息,cpld加载接口通过配置的k路flash块选择器选中的flash块为当前有效块,当前有效块向m片dsp和n片fpga提供存储在当前有效块中的非corba波形组件,通过配置的k路复位信号发生器启动m片dsp和n片fpga主动并行加载前有效块中的非corba波形组件;m片dsp和n片fpga采用主动并行加载模式,将加载信息存储到cpld的k路加载状态寄存器中,加载接口驱动通过localbus总线读写器读取cpld中k路加载状态寄存器的加载信息,获取m片dsp和n片fpga的加载结果,传递给加载代理逻辑设备。

一种基于上述电路的非corba波形组件加载方法,包括以下步骤:

a、部署在gpp上的核心框架调用部署在gpp上的加载代理逻辑设备的load方法,发起加载流程;

b、部署在gpp上的加载代理逻辑设备调用加载接口驱动的open函数向加载接口发送open信号,通过部署在cpld上的加载接口,检查加载状态管脚done/prog,返回加载状态寄存器值,加载接口驱动根据加载状态寄存器值返回open结果

c、加载代理逻辑设备将包含待加载器件对应的flash块选择器编号和对应flash块号的加载信息通过加载接口驱动经由localbus总线发送至加载接口,加载接口通过localbus总线读写器读取加载信息并将flash块号设置到对应编号flash块选择器,然后将设置信息经由加载接口驱动返回给加载代理逻辑设备,决定是否继续后续加载流程;

d、如果继续加载,代理逻辑设备通过加载接口驱动经由localbus向加载接口发送加载命令,加载接口通过localbus总线读写器将对应复位信号发生器的值设为1,复位信号发生器设为的值1后,复位信号发生器将通过输出离散线控制数字信号处理dsp的hrst管脚或者fpga的prog管脚,启动dsp或者fpga自加载流程,加载状态寄存器将加载结果经由加载接口驱动返回给加载代理逻辑设备,如果加载失败,加载代理逻辑设备将重新发送加载命令;

e、加载代理逻辑设备调用加载接口驱动的colse函数,结束加载流程。

本发明相比于现有技术具有如下有益效果:

加载成功率高。本发明采用非corba波形组件存储在本地flash可加载目标器件中,并通过对本地flash分块实现多个波形组件的存储,通过flash块选择器、复位信号发生器和加载状态寄存器实现可加载目标器件主动并行加载波形组件,相比传统的gpp读取波形组件并通过总线传送到可加载目标器件的波形组件被动加载方式,减少了波形组件复杂的传输流程,提高了波形组件加载速度和加载成功率。

加载效率高。本发明采用非corba波形组件存储在本地flash可加载目标器件中,并通过对本地flash分块实现多个波形组件的存储,通过多路并行的flash块选择器、复位信号发生器和加载状态寄存器实现多个可加载目标器件的并行加载,克服了现有技术k片可加载目标器件只能串行加载,系统加载时间太慢的缺陷,系统加载耗时仅为现有串行加载方式的1/k,整个系统加载时间大幅缩短。

通用性好。本发明采用并行主动加载是当前所有的dsp/fpga处理器都具有加载模式,具有很好通用性。

附图说明

下面结合附图进一步说明本发明的技术方案,但本发明所保护的内容不局限于以下所述。

图1是本发明的非corba波形组件加载电路示意图。

图2是图1的加载流程图。

具体实施方式

参阅图1。在以下描述的实施例中,一种非corba波形组件加载电路,包括部署了加载代理逻辑设备、加载接口驱动并支持corba波形组件的通用处理器gpp、部署了加载接口的复杂可编程逻辑器件cpld、k=m+n个并行norflash存储器芯片、配置成主动并行加载模式的n片现场可编程门阵列fpga和m片数字信号处理器dsp,其中,cpld的加载接口包含了localbus总线读写器、k路flash块选择器、k路复位信号发生器和k路加载状态寄存器,其特征在于:非corba波形组件存储在本地flash中,并通过对本地flash分块实现多个波形组件的存储;localbus总线读写器,读取来自加载代理逻辑设备传递给加载接口驱动的加载信息,cpld加载接口通过配置的k路flash块选择器选中的flash块为当前有效块,当前有效块向m片dsp和n片fpga提供存储在当前有效块中的非corba波形组件,并通过配置的k路复位信号发生器启动m片dsp和n片fpga主动并行加载前有效块中的非corba波形组件;m片dsp和n片fpga采用主动并行加载模式,将加载信息存储到cpld的k路加载状态寄存器中,加载接口驱动通过localbus总线读写器读取cpld中k路加载状态寄存器的加载信息,获取m片dsp和n片fpga的加载结果,传递给加载代理逻辑设备。

gpp通过localbus总线与cpld连接。cpld输入端为localbus总线读写器和k(k=m+n)根输入离散线,其中,m根输入离散线与m片dsp的gpio管脚连接,n根输入离散线与n片fpga的done管脚连接;cpld输出端通过m根输出离散线与m片dsp的hrst管脚连接,通过n根输出离散线与n片fpga的prog管脚连接,通过k组(每组n根)输出离散线与k片flash高n位地址管脚连接。

k片flash芯片中的m片通过异步并行接口对应外部存储器接口emif连接m片dsp,其中的n片通过异步并行接口对应并行加载接口bpi连接n片fpga。

localbus总线读写器接收到gpp的访问信号后,设置flash块选择器的flash块号,或者接收到gpp的访问信号后,将复位信号发生器的值设为1;flash块选择器通过n根地址控制线将flash高n位地址线设置成对应的高低电平,将对应选中的flash芯片作为当前有效块,flash块选择器接收到localbus总线读写器设置的块号后,通过n根地址控制线将flash高n位地址线设置成对应的高低电平;或者接收到gpp的访问信号后,复位信号发生器通过输出离散线,控制dsp的hrst管脚或者fpga的prog管脚,启动dsp或者fpga自加载流程;加载状态寄存器接收到localbus总线读写器读取信号,将dsp的gpio管脚或者与fpga的done管脚电平状态转换成加载状态,供localbus总线读写器读取并传送给gpp。

参阅图2。本实施例提供的软件通信体系结构非corba波形组件加载方法,包括以下步骤:

s1:部署在gpp上的核心框架调用部署在gpp上的加载代理逻辑设备的load方法,发起加载流程;

s2:部署在gpp上的加载代理逻辑设备调用加载接口驱动的open函数,向cpld上的加载接口发送open信号;cpld上的加载接口接收到open信号后,检查加载状态管脚done/prog,将加载状态管脚done/prog返回检查结果存放至加载状态寄存器,根据加载状态寄存器的至返回open结果;加载接口驱动根据open结果返回“open”是否成功的结果至加载代理逻辑设备;

s3:加载代理逻辑设备设置/写入加载信息,将包含待加载器件对应的flash块选择器编号和对应flash块号的加载信息,通过加载接口驱动经由localbus发送至cpld上的加载接口,cpld上的加载接口通过localbus总线读写器读取加载信息并设置对应编号flash块选择器选中块号对应的flash块,返回加载信息至加载接口驱动,加载代理逻辑设备查询/读取加载信息并决定是否继续后续加载流程,如果无需加载,跳至s5驱动colse函数,结束加载流程。

s4:加载代理逻辑设备调用加载接口驱动提供的函数发送加载命令,加载命令通过加载接口驱动经由localbus传给cpld上的加载接口,控制对应复位信号发生器产生复位信号,对应加载目标器件执行加载并返回加载状态至加载状态寄存器;cpld上的加载接口返回加载状态至加载接口驱动;加载代理逻辑设备读取加载状态信息,如果加载状态不正确,跳到s4,加载接口重新发送加载命令,直到加载状态正确后,转至s5。

s5:加载代理逻辑设备调用加载接口驱动的colse函数,结束加载流程。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1