一种面向SCA和SDR的快速系统重构方法与流程

文档序号:18940017发布日期:2019-10-23 01:04阅读:520来源:国知局
一种面向SCA和SDR的快速系统重构方法与流程

本发明涉及软件通信体系架构和软件无线电技术领域,具体是一种面向sca和sdr的快速系统重构方法。



背景技术:

sca是为软件无线电sdr定义的标准体系结构,支持开发sdr通信系统使波形应用软件更容易跨无线电平台移植,sca提供了波形软件和软件无线电的其他元素与硬件交互的独特方式。通过标准化,波形是兼容的,不仅适用于一个平台,而且适用于支持sca的任何设备。波形软件可以用于许多不同的无线电设备,无论是手持设备还是其他通信设备。

sca通过定义核心框架接口和应用程序环境描述(aep),使得波形软件具有很好的可移植性和可复用性,sca通过一套语义复杂的xml描述文件来创建sca域配置文件元素,用于标识sca兼容系统中的硬件设备和软件组件的功能、属性、相互依赖关系和位置。一般的sca系统中都包含gpp、dsp、fpga这三种类型的芯片,当进行系统部署和波形加载时,就需要对系统中的gpp、dsp、fpga芯片进行重新配置,以完成系统重构。

随着gpp、dsp、fpga芯片规模的不断扩大,其配置文件越来越大,完成配置所花费的时间已经严重影响sca系统重构的性能,据目前研究的情况来看,采用单一的优化方法已不能满足用户对系统重构的时间要求,必须从架构、接口、流程上进行全面的设计来实现快速系统重构。



技术实现要素:

为了解决上述现有技术的不足,本发明提供了一种面向sca和sdr的快速系统重构方法,综合利用高速总线、pcie和srio接口、dma、中断机制、大容量ddr等技术与资源,实现fpga波形快速重配、波形参数快速配置、波形状态实时回传、波形数据高速传输。

为了达到上述目的,本发明采用的技术方案为:

一种面向sca和sdr的快速系统重构方法,系统由主控模块和波形模块组成,主控模块与波形模块通过背板的vpx总线互联互通,接口采用pciex45.0gt/s,主控模块的x86硬件平台作为pcie接口的根组件rc,波形模块的zynq芯片作为pcie接口终端设备ep,其中主控模块包含x86硬件平台、操作系统、scacoreframework(cf)、corbamiddleware(corba)、scadevice、posixaep、scaapplications,scadevice包含波形模块的驱动程序,其中波形模块包含zynq系列、fpga7系列、ddr等芯片,zynq与fpga7之间接口包含selectmap、lvds、srio等,zynq的外部存储器为大容量ddr。

对本发明进一步的描述,波形模块zynq芯片内部程序包括zynq7processingsystem(ps)、3个axiinterconnect、3个axibramcontroller、aximemorymappedpciexpress(m2pcie)、axicentraldirectmemoryaccess(cdma)、axiselectmap、ddr、bram、数据读写控制逻辑、中断控制逻辑功能模块,其中zynq7processingsystem(ps)通过m_axi_gpo接口与axiinterconnect1互联访问m2pcie、cdma、selectmap、axibramcontroller1、数据读写控制逻辑的地址空间,其中aximemorymappedpciexpress(m2pcie)通过axi总线与axiinterconnect3互联访问ddr、axibramcontroller2、axibramcontroller3的地址空间,其中axicentraldirectmemoryaccess(cdma)通过axi总线与axiinterconnect2互联,并与axiinterconnect1和axiinterconnect3级联访问m2pcie、selectmap、axibramcontroller1、axibramcontroller3、数据读写控制逻辑的地址空间,并通过zynq7processingsystem(ps)的s_axi_hpo接口实现对ddr地址空间的访问,其中axibramcontroller1和axibramcontroller2分别连接bram的两个端口,主控模块通过pcie接口、ps及axi总线访问同一个bram的地址空间。

对本发明进一步的描述,aximemorymappedpciexpress(m2pcie)的bar地址分别映射ddr、axibramcontroller2和axibramcontroller3的地址空间,通过主控模块通过pcie的bar地址直接访问上述三个地址空间。

对本发明进一步的描述,aximemorymappedpciexpress(m2pcie)的pcie接口与主控模块的pcie接口互联,axiselectmap与fpga7的selectmap接口互联,axibramcontroller3与fpga7的lvds接口互联,数据读写控制逻辑与fpga7的srio接口互联,ps对数据读写控制逻辑的寄存器进行配置。

对本发明进一步的描述,包括两种中断机制,分别是主控模块pciemsi中断机制和ps中断控制逻辑,当zynq通过pcie接口向主控模块发送特定的tlp包将触发主控模块pcie的msi中断,相应的中断服务程序将清除该中断,当主控模块通过pcie接口向zynq的axibramcontroller2的特定地址写数据时,ps中断控制逻辑将触发ps中断,当ps通过axi总线从axibramcontroller1的特定地址读数据时,ps中断控制逻辑将清除ps中断。

对本发明进一步的描述,包括两个数据流向,分别是从主控模块到zynq或fpga7下行数据流向及从zynq或fpga7到主控模块的上行数据流向。

对本发明进一步的描述,bram包括两个特殊的32位寄存器,分别是主控的控制状态寄存器(地址为0)和ps的控制状态寄存器(地址为4),用于系统中控制、状态信息的交换,寄存器按位定义完成标志(1位)、读/写标志(1位)、控制命令(6位)、数据类型(8位)、数据长度(16位)。

对本发明进一步的描述,包括4种数据类型,分别为fpga7bit文件、参数文件、波形参数和状态数据、波形输入和输出数据;

对本发明进一步的描述,包括6种数据处理流程,分别为配置fpga7芯片bit文件、配置参数文件、配置波形参数、读取波形状态、波形数据输入、波形数据输出流程。

对本发明进一步的描述,其中fpga7芯片bit文件流程包括下列步骤:

(101):ps已经完成系统初始化处于等待中断触发的状态,主控模块的sca设备驱动程序打开fpga7bit文件,并将文件数据写入pciebar0地址空间,通过m2pcie模块的bar地址映射将数据写入波形模块的ddr;

(102):主控模块驱动程序将已写入数据长度、数据类型(fpgabit文件)、控制命令(配置fpga)、读/写标志(写)、完成标志(y)写入pciebar1的地址0的寄存器(主控的控制状态寄存器,实际是bram的地址0的32位空间)中,进入等待pcie的msi中断触发状态;驱动程序写主控的控制状态寄存器的操作将促使中断控制逻辑模块触发ps中断,ps的中断服务程序将通过axibramcontroller1读取bram地址0的寄存器(32位)获取文件数据长度、数据类型、控制命令、读/写标志和完成标志,同时由中断控制逻辑模块清除中断位,中断服务程序通过配置cdma模块启动dma方式读取ddr中的文件数据,并存到linux文件系统中;

(103):ps的程序将已读取的数据长度、读/写标志(读)、完成标志(y)写入axibramcontroller1地址为4的寄存器(ps的控制状态寄存器,实际是bram的地址4的32位空间),并通过m2pcie模块向pcie接口写msi中断的tlp包,该包将触发主控pciemsi中断并运行pcie中断服务程序,pcie中断服务程序清除中断位,并读取pciebar1的地址4的寄存器(实际是bram的地址4的32位空间)获取ps程序设置的相关信息,ps的程序写完寄存器后再次进入待中断触发状态;

(104):主控模块驱动程序在下载bit文件完成后,将配置fpga的命令写入主控的控制状态寄存器,包括配置文件名、标志;同时中断控制逻辑模块触发ps中断,中断服务程序又读取主控的控制状态寄存器,获取配置fpga7的参数,然后打开fpga7的bit文件,启动dma向axiselectmap模块写入文件数据,并检查fpga配置成功的标志;

(105):ps的程序将配置结果写入ps的控制状态寄存器,包括配置fpga是否成功的标志状态参数,并通过m2pcie模块向pcie接口写msi中断的tlp包触发主控pciemsi中断,主控的pcie中断服务程序清除中断位并读ps的控制状态寄存器获取fpga配置状态参数,至此配置fpga7bit文件结束;

其中波形数据输入流程包括下列步骤:

(201):ps已经完成系统初始化处于等待中断触发的状态,主控模块的sca设备驱动程序打开波形输入文件,并将文件数据写入pciebar0地址空间,实际上数据被直接写入了波形模块的ddr中;

(202):主控模块驱动程序将已写入数据长度、数据类型(波形数据文件)、控制命令(数据输入)、读/写标志(写)、完成标志(y)写入pciebar1的地址0的寄存器(主控的控制状态寄存器)中,进入等待pcie的msi中断触发状态;驱动程序写主控的控制状态寄存器的操作将促使中断控制逻辑模块触发ps中断,ps的中断服务程序将通过axibramcontroller1读取bram地址0的寄存器(32位)获取文件数据长度、数据类型、控制命令、读/写标志和完成标志,同时由中断控制逻辑模块清除中断位,中断服务程序设置数据读写逻辑控制模块的寄存器,设置数据方向、长度、是否循环标志之后,通过配置cdma模块启动dma方式读取ddr中的文件数据,送到数据读写控制逻辑模块的srio接口(输入到波形);

(203):ps的程序将已读取的数据长度、读/写标志(读)、完成标志(y)写入axibramcontroller1地址为4的寄存器(ps的控制状态寄存器),并通过m2pcie模块向pcie接口写msi中断的tlp包,该包将触发主控pciemsi中断并运行pcie中断服务程序,pcie中断服务程序清除中断位,并读取pciebar1的地址4的寄存器获取ps程序设置的相关信息;

(204):读写控制逻辑模块判断循环读写标志,如果是循环写,在写数据后又启动dma方式读取ddr中的数据通过srio送到波形,直到退出循环写为止,输入波形数据进程结束;

其中波形数据输出流程包括下列步骤:

(301):ps已经完成系统初始化处于等待中断触发的状态,主控模块的sca设备驱动程序启动读取波形输出数据进程,将要读取数据长度、数据类型(波形数据文件)、控制命令(数据输出)、读/写标志(读)、完成标志(n)写入pciebar1的地址0的寄存器(主控的控制状态寄存器)中,进入等待pcie的msi中断触发状态;

(302):驱动程序写主控的控制状态寄存器的操作将促使中断控制逻辑模块触发ps中断,ps的中断服务程序将通过axibramcontroller1读取bram地址0的寄存器(32位)获取文件数据长度、数据类型、控制命令、读/写标志和完成标志,同时由中断控制逻辑模块清除中断位,中断服务程序设置数据读写逻辑控制模块的寄存器,设置数据方向、长度、是否循环标志之后,启动数据读写逻辑控制从srio接口读数据送到ddr;

(303):ps的程序将已读取的数据长度、读/写标志(读)、完成标志(y)写入axibramcontroller1地址为4的寄存器(ps的控制状态寄存器),并通过m2pcie模块向pcie接口写msi中断的tlp包,该包将触发主控pciemsi中断并运行pcie中断服务程序,pcie中断服务程序清除中断位,并读取pciebar1的地址4的寄存器获取ps程序设置的相关信息;

(304):驱动程序启动dma方式读pciebar0(ddr)中波形输出数据,判断循环读写标志,如果是循环读,在读完数据后又启动dma方式读取pciebar0中的数据,直到退出循环读为止,输出波形数据进程结束。

与现有技术相比,本发明的优点:综合利用高速总线、pcie和srio接口、dma、中断机制、大容量ddr等技术与资源,实现fpga波形快速重配、波形参数快速配置、波形状态实时回传、波形数据高速传输。

附图说明

图1为本发明方法的系统架构图。

图2为本发明方法的zynq内部功能模块连接关系图。

图3为配置fpga7bit文件流程图。

图4为配置波形参数和读取波形状态流程图。

图5为波形数据输入流程图。

图6为波形数据输出流程图。

具体实施方式

下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

如图1,本发明的验证系统由主控模块和波形模块两个模块组成,通过背板的vpx总线实现互联互通,采用pcie接口并配置为x45.0gt/s。

主控模块包含x86架构的硬件平台,运行操作系统以及sca的核心框架cf、corba中间件和sca的波形应用,posix兼容的应用程序环境描述aep为sca的波形应用提供了标准的应用程序函数接口api,sca设备管理器控制下的device为波形模块中fpga7芯片提供驱动和代理功能,驱动实现对波形模块中各硬件资源的访问接口,代理实现sca对该设备的管理接口,包括设备初始化(initializ)、加载程序(load)、运行程序(execute)、配置参数(configure)、查询状态(query)、终止程序(terminate)、卸载程序(unload)、释放对象(releaseobject)等。x86硬件平台包含pcie接口的根组件rc,实现与波形模块的pcie接口的通信与配置。

波形模块主要包括zynq系列和fpga7系列fpga芯片、大容量ddr芯片等。zynq与fpga7之间的接口主要有selectmap、lvds、srio等,selectmap接口实现zynq对fpga7芯片的波形重配置,差分lvds接口实现zynq对fpga7芯片的波形参数配置和波形状态查询,srio接口作为波形数据输入输出接口,通过zynq的pcie接口终端设备ep与主控模块的pcie接口通信。ddr作为数据和大文件的转存设备,通过zynq的pcie接口映射到主控模块pcie接口的bar0上。

zynq内部的功能模块及连接关系如图2所示,主要包括ps(zynq7processingsystem)、总线互联模块(axiinterconnect)、块内存控制器(axibramcontroller)、m2pcie内存映射模块(aximemorymappedpciexpress)、cdma模块(axicentraldirectmemoryaccess)、selectmap接口模块(axiselectmap)、ddr、bram、数据读写控制逻辑模块、中断控制逻辑模块。

设计时首先配置ps的系统参数,包括配置ddr的参数、设置gpo(m_axi_gpo)接口、hpo(s_axi_hpo)接口位宽等参数,以及中断触发等参数;其次添加各个功能模块到工程,然后连接各个功能模块的接口并配置相应的参数,本实施例中axi总线宽度都是32位。ps通过gpo的主端口m_axi_gpo与axiinterconnect1的axi总线从端口相连,通过hpo的从端口与axiinterconnect2的axi总线主端口相连,中断控制逻辑的输出连接ps的中断请求(对应pl到ps中断号);axiinterconnect1的axi总线主端口分别与cdma、m2pcie、axibramcontroller1、axiselectmap、数据读写控制逻辑5个模块的axi总线从端口相连,支持ps访问5个模块地址空间。m2pcie模块的pcie接口通过vpx总线与主控模块的pcie接口互联,axi总线主端口与axiinterconnect3的axi总线从端口相连,axiinterconnect3的axi总线主端口又分别与ddr、axibramcontroller2、axibramcontroller3的axi总线从端口相连,配置m2pcie模块参数,通道为x4、带宽速率为5.0gt/s,3个bar地址分别映射ddr、axibramcontroller2、axibramcontroller3的地址空间,实现主控模块通过pcie接口可以直接访问ddr、axibramcontroller2、axibramcontroller3的地址空间。cdma模块的axi总线主端口与axiinterconnect2的axi总线从端口相连,axiinterconnect2的axi总线主端口又与axiinterconnect1和axiinterconnect3级联,并与ps的hpo从端口相连,实现cdma对ddr、m2pcie、selectmap、axibramcontroller1、axibramcontroller3、数据读写控制逻辑模块的地址空间的访问。axiselectmap模块通过selectmap接口直接与fpga7相连,axibramcontroller3模块通过lvds接口与fpga7相连,数据读写控制逻辑模块通过srio接口与fpga7相连。bram的两个端口分别连接axibramcontroller1和axibramcontroller2,实现主控模块通过pcie接口、ps通过axi总线访问同一个bram的地址空间,bram中的前8字节作为主控模块的控制状态寄存器和

通过selectmap模块配置fpga7bit文件分为两个阶段,第一阶段是下载bit文件,第二阶段是配置fpga;整个配置过程需主控模块的sca设备驱动程序与ps中的程序配合进行,详细步骤如图3所示:

第一步:ps已经完成系统初始化处于等待中断触发的状态,主控模块的sca设备驱动程序打开fpga7bit文件,并将文件数据写入pciebar0地址空间,实际上通过m2pcie模块的bar地址映射,数据被直接写入了波形模块的ddr中;

第二步:主控模块驱动程序将已写入数据长度、数据类型(fpgabit文件)、控制命令(配置fpga)、读/写标志(写)、完成标志(y)写入pciebar1的地址0的寄存器(主控的控制状态寄存器,实际是bram的地址0的32位空间)中,进入等待pcie的msi中断触发状态;驱动程序写主控的控制状态寄存器的操作将促使中断控制逻辑模块触发ps中断,ps的中断服务程序将通过axibramcontroller1读取bram地址0的寄存器(32位)获取文件数据长度、数据类型、控制命令、读/写标志和完成标志等,同时由中断控制逻辑模块清除中断位,中断服务程序通过配置cdma模块启动dma方式读取ddr中的文件数据,并存到linux文件系统中;

第三步:ps的程序将已读取的数据长度、读/写标志(读)、完成标志(y)等写入axibramcontroller1地址为4的寄存器(ps的控制状态寄存器,实际是bram的地址4的32位空间),并通过m2pcie模块向pcie接口写msi中断的tlp包,该包将触发主控pciemsi中断并运行pcie中断服务程序,pcie中断服务程序清除中断位,并读取pciebar1的地址4的寄存器(实际是bram的地址4的32位空间)获取ps程序设置的相关信息,ps的程序写完寄存器后再次进入等待中断触发状态;

第四步:主控模块驱动程序在下载bit文件完成后,将配置fpga的命令写入主控的控制状态寄存器,包括配置文件名、标志等;同时中断控制逻辑模块触发ps中断,中断服务程序又读取主控的控制状态寄存器,获取配置fpga7的参数,然后打开fpga7的bit文件,启动dma向axiselectmap模块写入文件数据,并检查fpga配置成功的标志;

第五步:ps的程序将配置结果写入ps的控制状态寄存器,包括配置fpga是否成功的标志状态等参数,并通过m2pcie模块向pcie接口写msi中断的tlp包触发主控pciemsi中断,主控的pcie中断服务程序清除中断位并读ps的控制状态寄存器获取fpga配置状态等参数,至此配置fpga7bit文件结束。

主控模块pcie的bar2通过m2pcie模块映射axibramcontroller3的地址空间,通过lvds接口实现配置波形参数和读取波形形态,详细流程如图4所示:

主控模块sca设备驱动程序首先打开波形参数文件,然后通过pcie接口按地址写入bar2地址空间,axibramcontroller3模块随后输出时钟、地址、参数数据、写使能信号到lvds接口,驱动程序完成配置波形参数;

主控模块sca设备驱动程序读取波形形态,首先通过pcie接口按地址读取bar2地址空间,axibramcontroller3模块随后输出时钟、地址、读使能信号到lvds接口,在下一个时钟上升沿到来时返回参数地址对应的值给pcie接口,驱动程序完成读取波形状态。

主控模块pcie的bar0通过m2pcie模块映射ddr地址空间,sca设备驱动程序通过向pcie接口bar0地址空间写来实现波形数据输入,详细流程如图5所示:

第一步:ps已经完成系统初始化处于等待中断触发的状态,主控模块的sca设备驱动程序打开波形输入文件,并将文件数据写入pciebar0地址空间,实际上数据被直接写入了波形模块的ddr中;

第二步:主控模块驱动程序将已写入数据长度、数据类型(波形数据文件)、控制命令(数据输入)、读/写标志(写)、完成标志(y)写入pciebar1的地址0的寄存器(主控的控制状态寄存器)中,进入等待pcie的msi中断触发状态;驱动程序写主控的控制状态寄存器的操作将促使中断控制逻辑模块触发ps中断,ps的中断服务程序将通过axibramcontroller1读取bram地址0的寄存器(32位)获取文件数据长度、数据类型、控制命令、读/写标志和完成标志等,同时由中断控制逻辑模块清除中断位,中断服务程序设置数据读写逻辑控制模块的寄存器,设置数据方向、长度、是否循环等标志之后,通过配置cdma模块启动dma方式读取ddr中的文件数据,送到数据读写控制逻辑模块的srio接口(输入到波形);

第三步:ps的程序将已读取的数据长度、读/写标志(读)、完成标志(y)等写入axibramcontroller1地址为4的寄存器(ps的控制状态寄存器),并通过m2pcie模块向pcie接口写msi中断的tlp包,该包将触发主控pciemsi中断并运行pcie中断服务程序,pcie中断服务程序清除中断位,并读取pciebar1的地址4的寄存器获取ps程序设置的相关信息;

第四步:读写控制逻辑模块判断循环读写标志,如果是循环写,在写数据后又启动dma方式读取ddr中的数据通过srio送到波形,直到退出循环写为止,输入波形数据进程结束。

sca设备驱动程序通过从pcie接口bar0地址空间读来实现波形数据输出,详细流程如图6所示:

第一步:ps已经完成系统初始化处于等待中断触发的状态,主控模块的sca设备驱动程序启动读取波形输出数据进程,将要读取数据长度、数据类型(波形数据文件)、控制命令(数据输出)、读/写标志(读)、完成标志(n)写入pciebar1的地址0的寄存器(主控的控制状态寄存器)中,进入等待pcie的msi中断触发状态;

第二步:驱动程序写主控的控制状态寄存器的操作将促使中断控制逻辑模块触发ps中断,ps的中断服务程序将通过axibramcontroller1读取bram地址0的寄存器(32位)获取文件数据长度、数据类型、控制命令、读/写标志和完成标志等,同时由中断控制逻辑模块清除中断位,中断服务程序设置数据读写逻辑控制模块的寄存器,设置数据方向、长度、是否循环等标志之后,启动数据读写逻辑控制从srio接口读数据送到ddr;

第三步:ps的程序将已读取的数据长度、读/写标志(读)、完成标志(y)等写入axibramcontroller1地址为4的寄存器(ps的控制状态寄存器),并通过m2pcie模块向pcie接口写msi中断的tlp包,该包将触发主控pciemsi中断并运行pcie中断服务程序,pcie中断服务程序清除中断位,并读取pciebar1的地址4的寄存器获取ps程序设置的相关信息;

第四步:驱动程序启动dma方式读pciebar0(ddr)中波形输出数据,判断循环读写标志,如果是循环读,在读完数据后又启动dma方式读取pciebar0中的数据,直到退出循环读为止,输出波形数据进程结束。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上'“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征,第一特征在第二特征“之下'“下方”和“下面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第一特征。

在本说明书的描述中,参考术语“一个实施例'“一些实施例'“示例'“具体示例'或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中,在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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