FPGA程序在线更新电路的制作方法

文档序号:13912962阅读:349来源:国知局

本发明涉及综合化系统通用信号处理模块领域,具体涉及一种基于综合化系统通用信号处理模块fpga程序在线更新的电路及方法。



背景技术:

高度综合化的航空电子系统是在综合化航空电子系统的基础上,进一步将数字系统综合的思路应用到系统的孔径和信道处理部分,实现整个系统的模块化和综合化。其特点是从硬件资源的角度很难分清雷达、通信等功能设备,系统中大部分功能都是通过对通用模块加注不同的软件来实现,在信息处理层面,实现了对不同传感器获取的目标数据、地形数据和威胁数据的融合,提供如自动目标识别、威胁等级评估、高置信度的信息处理能力,系统变得更智能化,大大减轻了飞行员的操作负荷。综合化系统是非常复杂的,因为其工作带宽要同时满足大带宽和大动态范围要求,其功能既要能支持浮点并行运算,又要支持定点串行运算,其传输网络既要具备宽带传输特性,又要具备低传输延时特性。这些复杂性给系统的架构设计、网络设计、处理机设计和信道设计带来许多挑战,需要同时考虑模块的通用化,网络拓扑的灵活性、处理运算的并发性等实现。随着系统复杂程度的不断提高,人们发现将软件和硬件分开独立设计、开发的弊端越来越明显:软硬件相互影响无法评估,系统集成、维护困难。在以集中式融合处理多传感器量测数据的综合电子信息系统中,常会出现各传感器量测数据不按正常时序到达融合中心的无序量测现象。处理器处理这类无序量测数据时会遇到负时间更新问题。目前综合化电子信息系统信号处理平台主要包括通用数据处理模块(dpm)、通用信号处理模块(spm)、网络交换模块(rcm)、系统控制模块(scm)和高速大规模存储模块(mmm)。模块在功能单元划分与设计上,遵循模块通用功能框架要求进行。模块通用功能框架要求为:每个模块由模块支持单元(msu)、处理单元(pu)、路由单元(ru)、网络接口单元(niu)、电源支持部件(pse)、模块物理接口(mpi)等单元组成,实现模块硬件电路的标准化通用化与综合化设计。各模块根据处理单元的不同而被划分为不同的功能模块。通用信号处理模块由典型的信号处理器dsp/fpga组成处理单元,fpga利用硬件并行的优势,打破了顺序执行的模式,在每个时钟周期内完成更多的处理任务,超越了dsp的运算能力;并且fpga在硬件层面控制输入和输出(i/o)为满足应用需求提供了更快速的响应时间和专业化的功能,因此,由fpga组成处理单元的信号处理模块就形成了fpga型信号处理模块。

在实际工程应用中,时常会遇到为解决某个产品的bug,需要在工程现场更新设备的fpga代码,或者参加电信测试时需要现场升级设备fpga程序以便于调试。fpga程序代码一般存放于芯片配套的flash存储器中,而常见的对印制板上flash编程有几种方法,原始的方法是使用编程器,这种方法需要要将芯片取下,十分不便,或者通过jtag接口连接到pc机上,但需要专用下载软件(一般由芯片生产厂商提供)。在测试现场或调测机房现场,要找到fpga的专用下载线是比较困难的。有时仅为了更新一个fpga的程序就需要研发或客服人员亲自到现场去烧写程序,这既不便捷,也使得设备维护成本大大增加。在实用系统中,越来越多的产品借助产品固有的通信接口来完成fpga程序的在线更新。

目前,fpga程序在线更新有如下两种方案。

方案一.fpga功能程序内含fpga程序在线更新模块,通过在线更新模块实现fpga程序更新到fpga外挂存储器中。

方案二.fpga程序存储在dsp外挂存储器中,通过dsp实现fpga程序在线更新。

现有的一些方案中有如下一些缺点:

一.方案一中,由于fpga程序在线更新模块内置在fpga功能程序中,不仅增加功能应用与程序在线更新的耦合,还占用了宝贵的fpga内部资源。

二.方案二中,通过dsp实现fpga的程序加载,由于fpga程序存储在dsp外挂存储器中,fpga的加载就只能采用被动加载模式,即只有通过dsp读取fpga程序并输出到fpga程序加载接口,实现fpga程序加载。该方案虽然fpga程序在线更新实现简单,但是fpga程序加载实现则变得复杂,更重要的是fpga被动加载的速度比主动加载慢得多。

三.方案一和方案二都是基于dsp实现了,在没有dsp的fpga型信号处理模块中,单独增加一个dsp实现fpga程序在线更新不仅增加了成本,而且增加系统复杂度。



技术实现要素:

本发明的目的针对现有技术存在的不足之处,提供一种能够降低硬件成本,加载速度快,松耦合、不依赖dsp的fpga程序在线更新电路及其在线更新方法。

为达到以上目的,本发明提供一种fpga程序在线更新电路,包括:电连接在综合化系统与flash芯片之间的现场可编程门阵列fpga和模块支持单元msu,其中,msu包含可编程逻辑pl和处理器系统ps,pl内置psplif总线读写器、flash块选择器和fpga程序加载控制器,flash块包含fpga程序在线更新程序所在的块,fpga程序在线更新程序包含包收发器、包解析器和包烧写器,其特征在于:包收发器通过数据总线接入综合化系统,包烧写器通过bpi连接flash;当数据总线有fpga程序数据包到达包收发器时,包收发器将数据包输出到包解析器进行解析,将包解析器输出的包传输结果或将包烧写器输出的包烧写结果传输到综合化系统;当包收发器输出的数据包到达包解析器时,包解析器检查包的完整性和有效性,将提取出完整有效包数据的待烧写地址、待烧写长度和待烧写数据输出到包烧写器;当包解析器输出待烧写地址、待烧写长度和待烧写数据到达包烧写器时,包烧写器将长度为待烧写长度的待烧写数据通过bpi写入flash的待烧写地址中,校验烧写结果,输出烧写结果到包收发器。

一种采用上述电路的fpga程序在线更新方法,其特征在于包括如下步骤:ps接收加载fpga程序在线更新程序的动态加载指令,将将默认块号(fpga程序在线更新程序所在的块)写入flash块选择器,选择默认块为当前有效块;ps通过psplif总线读写器向fpga程序加载控制器写入1,fpga程序加载控制器通过控制fpga的prog管脚启动fpga加载流程,加载flash默认块中fpga程序,通过判断fpga的done信号确认fpga程序在线更新程序加载成功;ps上报fpga程序在线更新程序加载成功,接收待烧写flash块号,通过psplif总线读写器将待烧写flash块号写入flash块选择器,选择待烧写flash块为当前有效块,上报模块做好了fpga在线更新准备;fpga的包收发器接收在线更新数据包,将包输出到包解析器,包解析器检查包的完整性和有效性确定传输结果并输出传输结果到包收发器,如果完整有效,提取出待烧写地址、待烧写长度和待烧写数据输出到包烧写器;包收发器发送传输结果,包烧写器将长度为待烧写长度的待烧写数据通过bpi写入flash的待烧写地址中,校验烧写结果,输出烧写结果到包收发器发送烧写结果。

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

降低硬件成本。本发明采用电连接在综合化系统与flash芯片之间的现场可编程门阵列fpga和模块支持单元msu构成的fpga程序在线更新电路,借用模块自带的msu,克服了现有技术单独增加一个dsp实现fpga程序在线更新,增加成本,系统复杂度的缺陷。

解耦合。本发明采用ps通过控制总线接入综合化系统控制总线,包收发器通过数据总线接入综合化系统数据总线,fpga程序数据包通过数据总线传输,其它控制指令通过控制总线传输,实现了数据与控制指令的分离,减少了耦合。

不和功能程序抢占内部资源。本发明采用电连接在综合化系统与flash芯片之间的现场可编程门阵列fpga和模块支持单元msu构成的fpga程序在线更新电路,通过包收发器实现fpga程序数据的接收,包解析器实现fpga程序数据的解析,包烧写器实现fpga程序数据烧写,fpga程序在线更新程序只是在fpga在线更新时通过动态加载方式加载到fpga,独占fpga内部资源,但是当fpga功能程序运行时,fpga程序在线更新程序将从fpga中清除,fpga功能程序独占整个fpga内部资源,避免了现有技术fpga程序在线更新模块内置于fpga功能程序,增加功能应用与程序在线更新的耦合,占用宝贵的fpga内部资源的不足之处。

主动并行加载的速度快。本发明采用fpga通过fpga并行加载接口bpi连接flash,flash块选择器通过n根地址控制线相连flash高n位地址管脚,fpga程序加载控制器分别通过一根输出离散线连接fpga的prog管脚、两根输出离散线连接fpga的init管脚和done管脚;通过flash块选择器选择好当前有效块后,通过fpga程序加载控制器启动fpga自加载流程,fpga将通过并行加载接口bpi主动读取当前有效块中的fpga程序,完成加载;主动并行加载相对于被动加载速度更快。

附图说明

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

图1为本发明的fpga程序在线更新电路原理示意图。

图2是图1的fpga程序在线更新流程图示意图。

具体实施方式

参阅图1。在以下描述的实施例中,一种fpga程序在线更新电路,包括:电连接在综合化系统与flash芯片之间的现场可编程门阵列fpga和模块支持单元msu,其中,msu包含可编程逻辑pl和处理器系统ps,pl内置psplif总线读写器、flash块选择器和fpga程序加载控制器,flash块包含fpga程序在线更新程序所在的块,fpga程序在线更新程序包含包收发器、包解析器和包烧写器。包收发器通过数据总线接入综合化系统,包烧写器通过bpi连接flash;当数据总线有fpga程序数据包到达包收发器时,包收发器将数据包输出到包解析器进行解析,将包解析器输出的包传输结果传输到综合化系统,或者,将包烧写器输出的包烧写结果传输到综合化系统;当包收发器输出的数据包到达包解析器时,包解析器检查包的完整性和有效性确定传输结果并输出传输结果到包收发器,如果完整有效,包解析器提取出待烧写地址、待烧写长度和待烧写数据输出到包烧写器;当包解析器输出待烧写地址、待烧写长度和待烧写数据到达包烧写器时,包烧写器将长度为待烧写长度的待烧写数据通过bpi写入flash的待烧写地址中,校验烧写结果,输出烧写结果到包收发器。

处理器系统ps一端通过控制总线接入综合化系统,另一端通过psplif连接psplif总线读写器;fpga通过fpga并行加载接口bpi连接flash。psplif总线读写器通过处理器系统ps的psplif总线相连处理器系统ps;flash块选择器通过n地址控制线连接flash高n位地址管脚;fpga程序加载控制器通过一根输出离散线与fpga的prog管脚连接;fpga程序加载控制器通过两根输入离散线与fpga的init和done管脚连接。

psplif总线读写器收到ps的访问信号后,设置flash块选择器的flash块号,flash块选择器通过n根地址控制线将flash高n位地址线设置成对应的高低电平,以选中对应块号的flash块为当前有效块,或者接收到ps的访问信号后,将fpga程序加载控制器的值设为1;fpga程序加载控制器将通过输出离散线控制fpga的prog管脚,启动fpga自加载流程;flash块选择器接收到psplif总线控制器设置的块号后,通过n根地址控制线将flash高n位地址线设置成对应的高低电平,以选中对应块号的flash块为当前有效块。psplif总线读写器通过处理器系统ps的psplif总线相连处理器系统ps;flash块选择器通过n地址控制线连接flash高n位地址管脚;fpga程序加载控制器分别通过一根输出离散线和两根输入离散线连接fpga的prog管脚、init管脚和done管脚。

参阅图2。fpga程序在线更新电路通过ps接收加载fpga程序在线更新程序的动态加载指令,ps控制pl选择默认flash,通过psplif总线读写器选择默认flash块(fpga程序在线更新程序所在的块)为当前有效块,将默认flash块号写入flash块选择器;ps通过psplif总线读写器向fpga程序加载控制器写入1,fpga程序加载控制器控制fpga的prog管脚启动fpga加载流程,加载flash默认块中fpga程序;ps等待fpga的done信号为高,以确认fpga程序在线更新程序加载成功。ps判断超时前fpga的done信号是否变高,不是,ps上报fpga程序在线更新程序加载失败,是,ps上报fpga程序在线更新程序加载成功;ps接收待烧写flash块号,通过psplif总线读写器将待烧写flash块号写入flash块选择器,选择待烧写flash块为当前有效块;ps上报模块做好了fpga在线更新准备。在fpga程序在线更新程序中,fpga的包收发器接收在线更新数据包并输出到包解析器,包解析器检查包的完整性和有效性确定传输结果并输出传输结果到包收发器,包收发器发送传输结果,包解析器判断包是否完整有效,否,上报传输结果为传输失败,返回包收发器接收在线更新数据包并输出到包解析器,是,上报传输结果为传输成功;然后通过包解析器提取出待烧写地址、待烧写长度和待烧写数据输出到包烧写器,包烧写器将长度为待烧写长度的待烧写数据通过bpi写入flash的待烧写地址中,校验烧写结果,输出烧写结果到包收发器。

下面通过2个实施例详细说明本发明提供的电路和方法。

实施例1:flash块包含fpga程序在线更新程序所在的块;flash程序在线更新程序所在块分成块号为0~15的16块,fpga程序在线更新程序放在块号为15的flash块中。msu可以采用ti公司c2000系列mcu作为ps,选用cpld作为pl。

ps通过外部接口xintf连接pl,fpga通过bpi与flash连接,pl通过一根输出离散线与fpga的prog管脚连接,pl通过两根输入离散线与fpga的init和done管脚连接,pl通过4根地址控制线连接flash高4位地址管脚,ps通过can总线接入综合化系统控制总线,fpga通过rapidio总线接入综合化系统数据总线。

ps通过can总线接收加载fpga程序在线更新程序的动态加载指令后,通过psplif总线读写器将块号15写入flash块选择器,选择块号15的flash块为当前有效块。ps通过psplif总线读写器向fpga程序加载控制器写入1,fpga程序加载控制器通过控制fpga的prog管脚输出1毫秒低电平后输出高电平并保持,启动fpga加载流程,加载块号为15的flash块中fpga程序,通过判断fpga的done信号为高电平,确认fpga程序在线更新程序加载成功。如果加载失败,ps通过can总线上报fpga程序在线更新程序加载失败,转入等待进一步指示状态。如果加载成功,ps通过can总线上报fpga程序在线更新程序加载成功并继续后续流程。ps通过can总线接收待烧写flash块号,假设该块号为0,ps通过psplif总线读写器将0写入flash块选择器,选块号为0的flash块为当前有效块。ps通过can总线上报模块做好了fpga在线更新准备。包收发器通过rapidio总线接收在线更新数据包并输出到包解析器。包解析器检查包的完整性和有效性确定传输结果并输出传输结果到包收发器。包收发器通过rapidio总线发送传输结果。如果完整有效,包解析器提取出待烧写地址、待烧写长度和待烧写数据输出到包烧写器,否则继续等待rapidio总线数据。包烧写器将长度为待烧写长度的待烧写数据通过bpi写入flash的待烧写地址中。包烧写器校验烧写结果,输出烧写结果到包收发器。包收发器通过rapidio总线发送烧写结果,并继续等待rapidio总线数据。上述块选择和fpga程序在线更新程序的加载都是msu控制的,fpga程序数据接收,解析以及烧写都是fpga程序在线更新程序完成的。

实施例2:ash块包含fpga程序在线更新程序所在的块;flash程序在线更新程序所在块分成块号为0~31的32块,fpga程序在线更新程序放在块号为31的flash块中。msu选择xilinx公司zynq系列芯片。zynq芯片的ps部分作为msu的ps,zynq芯片的pl部分作为msu的pl。

ps和pl通过zynq芯片内部的axi总线连接,fpga通过bpi与flash连接,pl通过一根输出离散线与fpga的prog管脚连接,pl通过两根输入离散线与fpga的init和done管脚连接,pl通过5根地址控制线连接flash高5位地址管脚,ps通过ttp总线接入综合化系统控制总线,fpga通过pcie总线接入综合化系统数据总线。

ps通过ttp总线接收加载fpga程序在线更新程序的动态加载指令后,通过psplif总线读写器将块号31写入flash块选择器,选择块号31的flash块为当前有效块。ps通过psplif总线读写器向fpga程序加载控制器写入1,fpga程序加载控制器通过控制fpga的prog管脚输出1毫秒低电平后输出高电平并保持,启动fpga加载流程,加载块号为15的flash块中fpga程序,通过判断fpga的done信号为高电平,确认fpga程序在线更新程序加载成功。如果加载失败,ps通过ttp总线上报fpga程序在线更新程序加载失败,转入等待进一步指示状态。如果加载成功,ps通过ttp总线上报fpga程序在线更新程序加载成功并继续后续流程。ps通过ttp总线接收待烧写flash块号,假设该块号为0,ps通过psplif总线读写器将0写入flash块选择器,选块号为0的flash块为当前有效块。ps通过ttp总线上报模块做好了fpga在线更新准备。包收发器通过pcie总线接收在线更新数据包并输出到包解析器。包解析器检查包的完整性和有效性确定传输结果并输出传输结果到包收发器。包收发器通过pcie总线发送传输结果。如果完整有效,包解析器提取出待烧写地址、待烧写长度和待烧写数据输出到包烧写器,否则继续等待pcie总线数据。包烧写器将长度为待烧写长度的待烧写数据通过bpi写入flash的待烧写地址中。包烧写器校验烧写结果,输出烧写结果到包收发器。包收发器通过pcie总线发送烧写结果,并继续等待pcie总线数据。上述块选择和fpga程序在线更新程序的加载都是msu控制的,fpga程序数据接收,解析以及烧写都是fpga程序在线更新程序完成的。

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

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