CN102999350A - 一种数字信号处理平台中fpga程序升级在线下载方法 - Google Patents
一种数字信号处理平台中fpga程序升级在线下载方法 Download PDFInfo
- Publication number
- CN102999350A CN102999350A CN2012104078218A CN201210407821A CN102999350A CN 102999350 A CN102999350 A CN 102999350A CN 2012104078218 A CN2012104078218 A CN 2012104078218A CN 201210407821 A CN201210407821 A CN 201210407821A CN 102999350 A CN102999350 A CN 102999350A
- Authority
- CN
- China
- Prior art keywords
- fpga
- software
- data
- control
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种数字信号处理平台中FPGA程序升级在线下载方法,包含硬件和软件两部分,硬件由X86架构模块、通信总线、FPGA、PROM、功能接口、电源组成,X86架构模块通过通信总线与FPGA相连接,同时FPGA通过每个FPGA本身都具有的专用电路接口连接PROM,FPGA的其他功能接口组成功能接口,整个系统由电源供给;软件主要由X86架构模块中的上位机以及FPGA中的程序,实现人机交互控制、FPGA程序的升级在线下载与校验等。本发明充分结合了软件无线电、卫星通信等领域中数字信号处理平台特点进行FPGA的程序升级更新,使得更新升级FPGA程序便捷容易,避免了拆装产品、利用专用下载线下载等过程所需的大量时间,节省了设计成本,降低了设计复杂度,减轻了设计的工作量。
Description
技术领域
本发明属于FPGA技术领域。具体涉及一种数字信号处理平台中FPGA程序升级在线下载方法。
背景技术
随着技术的进步,FPGA得到飞速发展,无论是在卫星通信与地面通信领域,还是在自动化控制领域,FPGA都得到了广泛的应用。因为FPGA的可编程特性,对于产品的升级换代提供了方便之门,特别是在软件无线电领域数字信号处理场合中,能否便于现场升级,是否能够灵活性使用更是作为一项关键因素。当前软件无线电领域数字信号处理平台中使用的FPGA主要为Xilinx和Altera等公司的中高端FPGA,这些FPGA具有逻辑单元多,内置DSP模块多,速度快等特点适合做软件无线电的高速信号处理。数字信号处理平台中,一般具有一个X86架构的处理平台,作为上层命令与数据的存储与处理平台,主要实现上位机功能,对子板块的高速数字信号处理平台进行控制,这个时候FPGA的配置一般利用PROM存储二进制文件然后上电自动加载,而下载二进制文件到配置PROM中利用专用下载线,速度非常慢,据实际情况下载Virtex-5系列与Virtex-6系列FPGA的二进制文件一般需要30分钟左右,如果产品定型后,很不容易更新,一般要拆开产品再利用下载线进行下载,升级很不方便,而且不利于远程控制,人为的增加了产品的设计与制造成本。为了克服上述问题,避免产品升级过程中的不便,本发明设计了一种便捷的数字信号处理平台中FPGA程序升级在线下载方法。
中国专利文献库公布了一种名称为《FPGA在线配置方法》(专利申请号201010260441.7)的发明专利申请技术,该发明专利申请技术公开了一种FPGA在线配置方法,步骤包括:先用CPU分别连接存储有FPGA配置数据的存储器和FPGA,所述CPU的GPIO口连接FPGA的加载数据的PIN脚;再由CPU从存储器器中调取配置数据;最后,在被动串行PS模式下,通过控制GPIO口的时序关系来完成配置数据加载。使用本方法,可以在设计中既降低成本,实现代替价格昂贵的不可擦写和可擦写配置芯片,并使其达到了保密性和可升级的要求,随时通过简单的文件拷贝操作即可完成产品软件的升级更新。其不足之处在于该发明专利申请技术电路设计复杂,还要CPU软件开发,成本增加,设计复杂度也应为要开发CPU而变得更为复杂,配置速度慢,不能进行配置数据的存储,成本较高,特别在一些大系统中不能及时的更新程序,对产品的维护特别是产品使用过程中出现的bug修改具有很大的困难,对产品的后续升级带来了很多麻烦。
发明内容
为了解决数字信号处理平台中系统结构复杂,避免专门为FPGA配置设置一个嵌入式CPU导致增加了设计难度、加大设计工作量、而且也提升了设计成本、增加失败的风险,便于后续FPGA程序的bug的升级与维护,本发明提供了一种数字信号处理平台中FPGA程序升级在线下载方法。
本发明的数字信号处理平台中FPGA程序升级在线下载方法,其特点是在FPGA上实现,由硬件和控制软件组成,硬件中的X86架构模块通过通信总线与FPGA相连接,同时FPGA通过专用电路接口连接PROM,FPGA的其他接口组成功能接口,整个系统电压由电源供给;控制软件中的上位机软件存储在X86架构模块中,实现对FPGA 的控制及通过FPGA中的烧录文件程序与PROM的通信,并实现对PROM进行FPGA更新程序的在线下载;控制软件中的FPGA的烧录文件程序需要加载在功能程序中预先下载,在需要在线下载FPGA的更新程序时启动,配合上位机完成FPGA更新程序的在线下载,其操作流程为:
a) 利用FPGA专用下载线下载FPGA烧录文件到FPGA的PROM中;
b) 需要更新FPGA的程序的时候,打开并启动上位机软件,把需要下载的更新程序放入上位机软件中;
c) 上位机中的控制与算法软件计算出要该FPGA更新程序的大小,上位机中的上层控制软件把数据大小的值通过底层驱动软件发给FPGA,FPGA通过这个值来判断解锁与擦写的PROM存储空间;
d) 上层控制软件再控制底层驱动软件进而启动控制信号有效,通过底层驱动软件读解锁状态;
e) 擦除所需的PROM空间,直到所需存储空间都擦除;
f) 发送配置数据;
g) 读出正确的写数据状态,清除状态寄存器,判断是否达到数据大小的值,是则进入h),否则转回到f);
h) 进入数据校验,上位机中的控制与算法软件进行CRC校验,然后上层控制软件判断是否校验完毕,若校验未完成则继续校验,若完成但是校验失败则需要进入e),否则进入下一步;
i) 上位机软件判断是否需要立即把PROM中在线下载的FPGA更新程序配置到FPGA中,若是则利用上层控制软件通过底层驱动软件发送相应的FPGA加载指令,立即加载FPGA的程序,否则无效启动控制信号直接结束在线下载。
所述的PROM,可以选择Xilinx或Altera厂商的NOR FLASH,也在第三方厂商为FPGA提供的NOR FLASH中选择,其片选输出、锁存输出、读信号输出、写信号输出由控制信号程序模块产生,地址输出输出由整体控制程序模块产生,数据接口与PROM进行数据交互,启动控制信号启动配置信号,地址控制程序模块把由整体控制程序模块产生,这些输出按照PROM的接口时序要求送出。
所述的通信总线包含串口总线、PCI总线(含CPCI总线)、PCIe总系(含CPCIe总线)、ISA总线、10/100/1000以太网总线在内的所有能使得X86架构模块与FPGA进行数据通信的总线。
所述的启动控制信号主要由上位机软件控制,启动有效后就可以作为数据接口,传递需要下载的程序数据给FPGA,同时传递从PROM中读出的状态数据给上位机软件,这些状态数据保护解锁完毕、擦除完毕、写数据成功、等待写数据状态,上位机根据这些状态码进行下一步的操作。
所述的数字信号处理平台中FPGA程序升级在线下载方法,主要针对一些大型数字处理平台中,该数字信号处理平台的特点是:包含一个X86架构的模块和专门用来进行数字信号处理的一个或者多个FPGA。
所述的FPGA的种类为Xilinx以及Altera公司的中高端FPGA。
在FPGA中先利用各个厂商提供的开发套件或专用开发套件开发出第一次下载所用的FPGA烧录文件,该FPGA烧录文件主要起配置作用的,在以后的设计代码中加入FPGA烧录文件的源代码利用FPGA开发软件生成二进制可下载文件则就可以在产品升级中进行和该FPGA烧录文件一样的重配置功能而不会影响FPGA的正常功能。
所述的FPGA烧录文件的程序主要是VHDL代码或者verilog HDL代码,这些代码添加到所用实际程序里作为一个模块即可为下次的程序更新做出接口,每次下载的程序中都添加该模块则可以一直实现在线下载。
本发明首先配置到FPGA的FPGA烧录文件是作为以后FPGA升级换代时作为配置桥使用的,同时用X86架构模块下的上位机软件,只需要能够进行接口通信即可,可以使得不用像其他在线配置还需要嵌入式CPU作为直接配置桥,避免附加其他软件。
本发明可以配置以一个X86架构模块为核心,其他以链式或者星型连接的FPGA,各个FPGA之间的数据总线可以利用复用的方式,节省了设计的成本和FPGA的资源。
本发明的方案设计简单,利用FPGA本身的控制时序实现程序的配置,利用FPGA本身的程序访问接口来实现在线加载。
本发明的数字信号处理平台中FPGA程序升级在线下载方法的上位机的软件由人机交互界面、上层控制软件、控制与算法软件、底层驱动软件组成,人机交互界面主要用来进行FPGA程序升级在线下载指令的启动与配置状态的显示,上层控制软件与控制与算法软件主要实现与底层驱动软件的通信,并控制底层驱动软件向FPGA接口发送相应指令以及数据,同时还接收相关的下载状态。
本发明的上位机软件中,进行下载FPGA更新程序时,人机交互界面需要利用上位机中的控制与算法软件计算出所要下载的程序的大小,通过利用上层控制软件把这个数据大小的值通过底层驱动软件发给FPGA,FPGA通过这个值来判断需要解锁与擦写的PROM存储空间的大小,然后上层控制软件再控制底层驱动软件给FPGA发送更新程序下载的启动命令,即使得启动控制信号有效,然后通过底层驱动软件读解锁状态,直到第一次发送对应数据大小的PROM的空间都被解锁后,继续读取擦除状态,直到所需存储空间都擦除,然后发送FPGA的数据,发送配置数据,发送一次配置数据后就需要读一次写状态,读到写状态后要利用上层控制软件判断是否发送数据完毕,若不是则继续发送、读写状态、判断是否发送完毕,若是则进入数据校验,数据校验主要利用上位机中的控制与算法软件进行CRC校验,然后利用上层控制软件判断是否校验完毕,若没有完毕则根据实际情况进行操作,即校验未完成则继续校验,若完成但是失败则需要重新进行一次下载,若校验完毕则需要根据上位机中的操作选项判断是否需要立即把PROM中刚下载更新的程序配置到FPGA中,若是则利用上层控制软件通过底层驱动软件发送相应的FPGA加载指令即可,然后进行相应的功能操作,若不需要理解加载FPGA的程序,则直接结束,等待以后断电重启后这次更新的FPGA的程序文件会自动从PROM中加载。
本发明充分结合了软件无线电领域数字信号处理平台产品在实际中对FPGA的使用,满足对设计的保密性和设计的升级便利性要求,实现代替价格昂贵的反熔丝FPGA,为数字信号处理平台等贵重产品的升级提供了一种可靠的途径,避免了因为拆装原因使得产品质量不能保证的情况,可以随时随地方便快捷的升级FPGA程序,提升产品性能,并且节省了通常在线配置所用的嵌入式CPU,节省了设计成本,降低了设计复杂度,有效减轻了设计的工作量。
本发明的有益效果如下:
在满足数字信号处理平台中FPGA可在线配置功能的基础上,能够完成加密等功能,为产品的后续程序升级换代提供了新的下载方法,避免了利用FPGA专用下载线所带来的时间问题和不方便,大大提升了更新FPGA程序所需要的时间,使得设计尽量简洁,符合Xilinx厂商的设计准则,同时降低了成本,降低了设计复杂度,减轻了设计的工作量。
附图说明
图1为本发明的数字信号处理平台中FPGA程序升级在线下载方法的第一次下载的FPGA烧录文件分解图
图2 为本发明的数字信号处理平台中FPGA程序升级在线下载方法的第一次下载的FPGA烧录文件流程图
图3 为本发明的数字信号处理平台中FPGA程序升级在线下载方法的硬件连接图;
图4为本发明的数字信号处理平台中FPGA程序升级在线下载方法的上位机软件框图;
图5为本发明的数字信号处理平台中FPGA程序升级在线下载方法的上位机软件设计流程图;
图中,1. X86架构模块与FPGA的通信接口或者FPGA与其他FPGA(该FPGA与X86架构模块相连)的通信接口 2.片选输出 3.锁存输出 4.读信号输出 5.写信号输出 6.地址输出 7.与PROM数据接口 8.启动控制信号 9.控制信号程序模块 10.地址控制程序模块 11.PROM数据控制模块 12.整体控制程序模块 13.输出数据程序模块 14.输入数据程序模块 15.X86架构模块 16.通信总线 17. FPGA 18. PROM 19. 功能接口 20.电源 21.上位机 22.人机交互界面 23.上层控制软件 24.控制与算法软件 25.底层驱动软件。
具体实施方式
下面结合附图和实施例对本发明作进一步描述。
图1为本发明的数字信号处理平台中FPGA程序升级在线下载方法的第一次下载的FPGA烧录文件分解图
图2 为本发明的数字信号处理平台中FPGA程序升级在线下载方法的第一次下载的FPGA烧录文件流程图,
图3 为本发明的数字信号处理平台中FPGA程序升级在线下载方法的硬件连接图,图4为本发明的数字信号处理平台中FPGA程序升级在线下载方法的上位机软件框图,图5为本发明的数字信号处理平台中FPGA程序升级在线下载方法的上位机软件设计流程图。
如图3所示,X86架构模块15主要包含上位机中,通信总线16包括串口总线、PCI总线、PCIe总线、ISA总线、10/100/1000以太网总线等所有能使得X86架构模块与FPGA17进行数据通信的总线,PROM18主要完成FPGA配置文件的存储功能,功能接口19主要是有FPGA17完成其算法处理与控制功能的接口,电源20主要是给整个系统提供满足需求的电源。
在FPGA17中先利用各个厂商提供的开发套件或专用开发套件开发出第一次下载所用的FPGA烧录文件,该FPGA烧录文件主要起配置作用的,在以后的设计代码中加入FPGA烧录文件的源代码利用FPGA开发软件生成二进制可下载文件则就可以在产品升级中进行和该FPGA烧录文件一样的重配置功能而不会影响FPGA17的正常功能,这里对FPGA烧录文件进行分析其实就是对其源代码进行分析。
如图1所示,本发明的数字信号处理平台中FPGA程序升级在线下载方法第一次下载的FPGA烧录文件包含X86架构模块15与FPGA17的通信接口16或者FPGA与其他FPGA(该FPGA与X86架构模块相连)的接口1、片选输出2、锁存输出3、读信号输出4、写信号输出5、地址输出6、与PROM数据接口7、启动控制信号8、控制信号程序模块9、地址控制程序模块10、 PROM数据控制模块11、整体控制程序模块12、输出数据程序模块13、输入数据程序模块14,X86架构模块15与FPGA17的通信接口16或者FPGA与其他FPGA(该FPGA17与X86架构模块15相连)的接口1主要是发送上位机给的配置数据给PROM18数据控制模块11,片选输出2主要输出由控制信号程序模块9产生的PROM18片选控制信号,锁存输出3主要输出由控制信号程序模块9产生的PROM18锁存控制信号,读信号输出4主要输出由控制信号程序模块9产生的PROM18读控制信号,写信号输出5主要输出由控制信号程序模块9产生的PROM18写控制信号,地址输出6主要输出由整体控制程序模块12产生的与相应擦模块及与写数据对应的地址,与PROM18数据接口7主要把对PROM18的数据进行读写,启动控制信号8主要是由FPGA17其他接口或者由X86架构模块15中的上位机发送的启动配置信号,地址控制程序模块10主要把由整体控制程序模块12产生的地址给PROM18 的程序结合数据按照PROM18的时序要求送出。
上述的PROM18一般选择Xilinx公司或者Altera及其他第三方的平台FLASH,接口时序完全一样,只是名称不一样,时序控制按照数字信号处理平台设计所选的PROM18给的时序接口要求设计即可。
如图2所示,开始状态一直是空闲状态,只有当启动控制信号8有效的时候,才会启动配置,由于用专用FPGA17下载线一般采用同步模式,所以不用该步,而PROM18上电启动即为同步状态,所以必须为其配置为异步读写方式,否则无法进行操作,然后进行解锁,因为PROM18内部分块的,可以根据需要更新程序需要的大小进行内部存储块的解锁,此时需要地址控制程序模块10对地址接口输入存储块地址,解锁完毕后,进行擦除处理,即只擦刚才解锁的存储块,没有解锁的块无法擦除,擦除也是需要地址的,所有的块擦除完毕后即可对其进行FPGA17的更新程序数据下载了,此时通过PROM18数据控制模块11把数据都写入PROM18中即可,写入完毕后通过CRC进行数据校验,检验完毕并正确即可结束更新程序的下载,否则,需要重新下载。该过程属于一片FPGA17如果是多片则逐个下载,或者一片PROM18配置多片FPGA17也可以采用把所有FPGA17的程序安装一定顺序下载,并在程序中加入相应的分段处理即可。
判断擦除成功以及是否写成功都是靠读该存储块的状态寄存器的值来判断的,如果读出的状态寄存器不对,则需要从新读取,而且每次在重新读取状态寄存器的时候都要清除状态寄存器,否则所读的值还是与上次的状态寄存器一样。
产生所述的FPGA烧录文件的程序主要是VHDL代码或者verilog HDL代码,这些代码在附在所用实际程序里作为一个模块即可为下次的程序更新做出接口。
产生FPGA烧录文件的程序主要是针对FPGA17的,所以本发明实现的时候是利用VHDL写的,也可以利用verilog HDL等相应实现方式实现该程序,部分程序的伪代码如下:
--fpga_L ---------------------------------------PROM18的锁存控制信号,输出,低有效
--FPGA_FCS---------------------------------------PROM18的片选控制信号,输出,低有效
--FPGA_FWE---------------------------------------PROM18的写控制信号,输出,低有效
--FPGA_FOE---------------------------------------PROM18的读控制信号,输出,低有效
--flash_D ---------------------------------------PROM18的数据总线,双向,16位宽
--flash_A ---------------------------------------PROM18的地址总线,输出,位宽不定
--down_st ---------------------------------------设置的下载启动信号,输入,高有效
--time_cnt ---------------------------------------设置的时间计数,进行时间的控制,单位ns
--data_reg ---------------------------------------读数据寄存器,16位,存放读取的数据
--写PROM数据 %
开始
if down_st 为 ‘0’ 时
do: null ----null是不做任何事情
else then
do:
flash_D <= 数据; --需要写入的数据,<=为赋值符号
flash_A <=地址; --针对数据要写的地址
fpga_L 为 '1';
FPGA_FCS 为 '1';
FPGA_FWE 为 '1';
FPGA_FOE 为 '1';
if time_cnt 为 15ns时
do:
fpga_L 为 '0';
FPGA_FCS 为 '0';
elsif (time_cnt 为 30ns) 时
do:
FPGA_FWE 为 '0';
elsif (time_cnt 为 60 ns)时
do:
fpga_L 为 '1';
elsif (time_cnt 为110 ns) 时
do:
FPGA_FWE 为 '1';
elsif (time_cnt为 120 ns) 时
do:
FPGA_FCS 为 '1';
elsif (time_cnt 为150 ns) 时
do:
fpga_L 为 '1';
FPGA_FCS 为 '1';
FPGA_FWE 为 '1';
FPGA_FOE 为 '1';
end if;
end if;
结束
写数据程序可以用来配置PROM18异步读写方式、写命令寄存器、写配置数据等功能,所以需要写操作的地方都可以用该程序。
--读PROM数据(在读数据之前要利用写数据程序把读数据的命令写入)%
开始
if down_st为 ‘0’时
do: null ----null是不做任何事情
else then
do:
flash_D <= 高阻态;
flash_A <=地址; --要读的数据的地址
fpga_L 为 '1';
FPGA_FCS 为 '1';
FPGA_FWE 为 '1';
FPGA_FOE 为 '1';
if time_cnt 为15ns 时
do:
fpga_L 为 '0';
FPGA_FCS 为 '0';
elsif (time_cnt 为 30 ns)时
do:
FPGA_FWE 为 '0';
elsif (time_cnt 为60 ns)时
do:
fpga_L 为 '1';
FPGA_FOE 为 '0';
elsif (time_cnt为 70 ns)时
do:
FPGA_FOE 为 '1';
FPGA_FCS 为 '1';
elsif (time_cnt 为80 ns)时
do:
data_reg <= flash_D;
elsif (time_cnt为150ns) 时
do:
fpga_L 为 '1';
FPGA_FCS 为 '1';
FPGA_FWE 为 '1';
FPGA_FOE 为 '1';
end if;
end if;
结束
读数据程序可以用来读取PROM18的数据,读取写状态、擦除状态等,凡是要进行数据读取的都可以用该程序。
所述的启动控制信号8主要由上位机及外部人为控制,上位机接口种类比较多,在设计的时候需要进行串并转换等,在FPGA17中,与上位机接口主要是数据接口与控制接口,控制接口主要是启动控制信号8,启动有效后就可以作为数据接口,传递FPGA17程序数据给FPGA17以及把FPGA17从PROM18中读出的状态转换成上位机能够操作的简单状态通过这些即可传递给上位机,这些简单状态如解锁完毕、擦除完毕、写数据成功、等待写数据等状态,这些传输给上位机(21)的状态都用0和1编码表示,这些编码表示的状态传递给上位机,上位机根据这些状态码进行下一步的操作。
如图4所示,为本发明的数字信号处理平台中FPGA程序升级在线下载方法的上位机21的软件框图, 在本发明中,人机交互界面22、上层控制软件23、控制与算法软件24、底层驱动软件25组成了X86架构模块15上位机21,人机交互界面22主要用来进行FPGA17程序升级在线下载指令的启动与配置状态的显示,上层控制软件23与控制与算法软件24主要实现与底层驱动软件25的通信,并控制底层驱动软件25向FPGA接口发送相应指令以及数据,同时还接收相关的下载状态。
如图5所示,为本发明的数字信号处理平台中FPGA程序升级在线下载方法的上位机软件设计流程图。需要进行下载FPGA17更新程序时,人为操作人机交互界面22,然后人机交互界面22利用上位机21中的控制与算法软件24计算出所要下载的程序的大小,通过利用上层控制软件23把这个数据大小的值通过底层驱动软件25发给FPGA17,FPGA17通过这个值来判断需要解锁与擦写的PROM18存储空间的大小,然后上层控制软件23再控制底层驱动软件25给FPGA17发送更新程序下载的启动命令,即使得启动控制信号8有效,然后通过底层驱动软件23读解锁状态,直到第一次发送对应数据大小的PROM18的空间都被解锁后,继续读取擦除状态,直到所需存储空间都擦除,然后发送FPGA17的数据,发送配置数据,发送一次配置数据后就需要读一次写状态,读到写状态后要利用上层控制软件23判断是否发送数据完毕,若不是则继续发送、读写状态、判断是否发送完毕,若是则进入数据校验,数据校验主要利用上位机21中的控制与算法软件24进行CRC校验,然后利用上层控制软件23判断是否校验完毕,若没有完毕则根据实际情况进行操作,即校验未完成则继续校验,若完成但是失败则需要重新进行一次下载(这种情况没有遇到过,进行这种控制为了预防这种情况的出现),若校验完毕则需要根据上位机21中的操作选项判断是否需要立即把PROM18中刚下载更新的程序配置到FPGA17中,若是则利用上层控制软件23通过底层驱动软件23发送相应的FPGA加载指令即可,然后进行相应的功能操作,若不需要理解加载FPGA18的程序,则直接结束,等待以后断电重启后这次更新的FPGA17的程序文件会自动从PROM18中加载。
上位机21的人机交互界面具有板卡的选择,配置中由于整个数字信号处理平台与这些板卡的通信有不同接口,所以具有接口选择,同时由于一张板卡具有一个FPGA以上,所以针对实际中数字信号处理平台的需求,设计了两个FPGA,根据程序的需求,设计了立即配置等选项,为数字信号处理平台中的所有FPGA配置提供了方便。
Claims (4)
1.一种数字信号处理平台中FPGA程序升级在线下载方法,其特征是在FPGA上实现,由硬件和控制软件组成,
硬件中的X86架构模块(15)通过通信总线(16)与FPGA(17)相连接,同时FPGA(17)通过专用电路接口连接PROM(18),FPGA(17)的其他接口组成功能接口(19),整个系统电压由电源(20)供给;
控制软件中的上位机(21)软件存储在X86架构模块(15)中,实现对FPGA(17) 的控制及通过FPGA(17)中的烧录文件程序与PROM(18)的通信,并实现对PROM(18)进行FPGA更新程序的在线下载;
控制软件中的FPGA的烧录文件程序需要加载在功能程序中预先下载,在需要在线下载FPGA的更新程序时启动,配合上位机(21)完成FPGA更新程序的在线下载,具体操作步骤如下:
j).利用FPGA专用下载线下载FPGA烧录文件到FPGA(17)的PROM(18)中;
k).需要更新FPGA(17)的程序的时候,打开并启动上位机(21)软件,把需要下载的更新程序放入上位机(21)软件中;
l).上位机(21)中的控制与算法软件(24)计算出要该FPGA更新程序的大小,上位机(21)中的上层控制软件(23)把数据大小的值通过底层驱动软件(25)发给FPGA(17),FPGA(17)通过这个值来判断解锁与擦写的PROM(18)存储空间;
m).上层控制软件(23)再控制底层驱动软件(25)进而启动控制信号(8)有效,通过底层驱动软件(23)读解锁状态;
n).擦除所需的PROM(18)空间,直到所需存储空间都擦除;
o).发送配置数据;
p)读出正确的写数据状态,清除状态寄存器,判断是否达到数据大小的值,是则进入h),否则转回到f);
q)进入数据校验,上位机(21)中的控制与算法软件(24)进行CRC校验,然后上层控制软件(23)判断是否校验完毕,若校验未完成则继续校验,若完成但是校验失败则需要进入e),否则进入下一步;
r).上位机(21)软件判断是否需要立即把PROM(18)中在线下载的FPGA更新程序配置到FPGA(17)中,若是则利用上层控制软件(23)通过底层驱动软件(23)发送相应的FPGA(17)加载指令,立即加载FPGA(18)的程序,否则无效启动控制信号(8)直接结束在线下载。
2. 根据权利要求1所述的数字信号处理平台中FPGA程序升级在线下载方法,其特征主要在于:所述的PROM(18),其片选输出(2)、锁存输出(3)、读信号输出(4)、写信号输出(5)由控制信号程序模块(9)产生,地址输出(6)输出由整体控制程序模块(12)产生,数据接口(7)与PROM(18)进行数据交互,启动控制信号(8)启动配置信号,地址控制程序模块(10)把由整体控制程序模块(12)产生,这些输出按照PROM(18)的接口时序要求送出。
3. 根据权利要求1所述的数字信号处理平台中FPGA程序升级在线下载方法,其特征主要在于:所述的通信总线(16)包含串口总线、PCI总线(含CPCI总线)、PCIe总系(含CPCIe总线)、ISA总线、10/100/1000以太网总线在内的所有能使得X86架构模块(15)与FPGA(17)进行数据通信的总线。
4. 根据权利要求3所述的数字信号处理平台中FPGA程序升级在线下载方法,其特征主要在于:所述的启动控制信号(8)主要由上位机(21)软件控制,启动有效后就可以作为数据接口,传递需要下载的程序数据给FPGA(17),同时传递从PROM(18)中读出的状态数据给上位机(21)软件,这些状态数据保护解锁完毕、擦除完毕、写数据成功、等待写数据状态,上位机(21)根据这些状态码进行下一步的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210407821.8A CN102999350B (zh) | 2012-10-24 | 2012-10-24 | 一种数字信号处理平台中fpga程序升级在线下载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210407821.8A CN102999350B (zh) | 2012-10-24 | 2012-10-24 | 一种数字信号处理平台中fpga程序升级在线下载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999350A true CN102999350A (zh) | 2013-03-27 |
CN102999350B CN102999350B (zh) | 2016-10-05 |
Family
ID=47927955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210407821.8A Active CN102999350B (zh) | 2012-10-24 | 2012-10-24 | 一种数字信号处理平台中fpga程序升级在线下载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999350B (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268243A (zh) * | 2013-06-06 | 2013-08-28 | 北京四方继保自动化股份有限公司 | 一种链式变流器的就地执行单元远程在线升级系统 |
CN103455002A (zh) * | 2013-08-30 | 2013-12-18 | 天津大学 | 一种基于Verilog HDL的FPGA超高速工业控制系统 |
CN105490857A (zh) * | 2015-12-11 | 2016-04-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fc网络设备逻辑远程升级系统 |
CN106648807A (zh) * | 2017-01-10 | 2017-05-10 | 北京电子工程总体研究所 | 一种基于flash存储器的dsp软件上传更新方法 |
CN106775796A (zh) * | 2015-11-25 | 2017-05-31 | 大唐移动通信设备有限公司 | 一种固件升级方法、装置及系统 |
CN107621943A (zh) * | 2017-08-18 | 2018-01-23 | 上海无线电设备研究所 | 一种fpga动态批量烧写系统及方法 |
CN107819883A (zh) * | 2017-12-13 | 2018-03-20 | 天津光电通信技术有限公司 | 一种多信号处理设备及其对fpga程序的远程升级方法 |
CN108132811A (zh) * | 2017-12-15 | 2018-06-08 | 杭州迪普科技股份有限公司 | 一种fpga程序数据的加载方法及装置 |
CN108647038A (zh) * | 2018-06-26 | 2018-10-12 | 桂林航天工业学院 | 一种基于wifi和超声波通信的FPGA在线更新系统及更新方法 |
CN109101238A (zh) * | 2018-08-03 | 2018-12-28 | 北京航空航天大学 | 数字航天器嵌入式仿真程序智能部署方法 |
CN109740387A (zh) * | 2019-01-04 | 2019-05-10 | 华大半导体有限公司 | 一种用于在线系统编程的方法和高安全电路 |
CN110377332A (zh) * | 2019-07-23 | 2019-10-25 | 北京交大思诺科技股份有限公司 | 安全计算机平台软件程序在线换装方法 |
CN111026428A (zh) * | 2019-11-22 | 2020-04-17 | 同源微(北京)半导体技术有限公司 | 能同时远程在线更新多个板卡中fpga固件程序的系统及方法 |
CN111045734A (zh) * | 2019-11-19 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于ima平台的软硬件程序一键固化系统及方法 |
CN111414182A (zh) * | 2020-03-30 | 2020-07-14 | 郑州精益达汽车零部件有限公司 | 一种基于spi的fpga远程升级方法 |
CN111522693A (zh) * | 2020-04-20 | 2020-08-11 | 中国航天科工集团八五一一研究所 | 增强卫星平台可靠性的在线重构方法 |
CN112241281A (zh) * | 2020-10-14 | 2021-01-19 | 四川九洲空管科技有限责任公司 | 数字雷达tr组件fpga程序批量升级方法及系统 |
CN112256312A (zh) * | 2020-10-14 | 2021-01-22 | 四川九洲空管科技有限责任公司 | 基于PowerPC的FPGA程序便捷升级方法及系统 |
CN112702065A (zh) * | 2020-12-18 | 2021-04-23 | 广东高云半导体科技股份有限公司 | Fpga码流数据校验方法及装置 |
CN112764770A (zh) * | 2021-02-01 | 2021-05-07 | 珠海市运泰利自动化设备有限公司 | 一种穿戴式医疗产品主板程序下载装置及方法 |
CN113672271A (zh) * | 2021-08-24 | 2021-11-19 | 天津津航计算技术研究所 | 一种国产fpga远程升级系统和方法 |
CN113726741A (zh) * | 2021-07-28 | 2021-11-30 | 浪潮电子信息产业股份有限公司 | 一种加速卡数据下载方法及相关装置 |
CN114490492A (zh) * | 2021-12-17 | 2022-05-13 | 北京无线电计量测试研究所 | 一种远程在线配置fpga软件方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889503A (zh) * | 2006-06-01 | 2007-01-03 | 东南大学 | 多通道高速数据处理器及处理方法 |
CN1916916A (zh) * | 2006-08-31 | 2007-02-21 | 株洲南车时代电气股份有限公司 | 一种确保现场可编程门阵列可靠配置的电路及方法 |
CN102033517A (zh) * | 2009-09-25 | 2011-04-27 | 大唐移动通信设备有限公司 | 一种环境监控单元的软件升级方法及设备 |
CN102346677A (zh) * | 2010-08-05 | 2012-02-08 | 盛乐信息技术(上海)有限公司 | Fpga程序的升级方法 |
US8161227B1 (en) * | 2006-10-30 | 2012-04-17 | Siliconsystems, Inc. | Storage subsystem capable of programming field-programmable devices of a target computer system |
-
2012
- 2012-10-24 CN CN201210407821.8A patent/CN102999350B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889503A (zh) * | 2006-06-01 | 2007-01-03 | 东南大学 | 多通道高速数据处理器及处理方法 |
CN1916916A (zh) * | 2006-08-31 | 2007-02-21 | 株洲南车时代电气股份有限公司 | 一种确保现场可编程门阵列可靠配置的电路及方法 |
US8161227B1 (en) * | 2006-10-30 | 2012-04-17 | Siliconsystems, Inc. | Storage subsystem capable of programming field-programmable devices of a target computer system |
CN102033517A (zh) * | 2009-09-25 | 2011-04-27 | 大唐移动通信设备有限公司 | 一种环境监控单元的软件升级方法及设备 |
CN102346677A (zh) * | 2010-08-05 | 2012-02-08 | 盛乐信息技术(上海)有限公司 | Fpga程序的升级方法 |
Non-Patent Citations (1)
Title |
---|
王群泽,胡方明,林汉成,熊鑫,吴圣陶: "基于Flash和JTAG接口的FPGA多配置系统", 《单片机与嵌入式系统应用 》, no. 4, 30 April 2011 (2011-04-30) * |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268243B (zh) * | 2013-06-06 | 2016-08-10 | 北京四方继保自动化股份有限公司 | 一种链式变流器的就地执行单元远程在线升级系统 |
CN103268243A (zh) * | 2013-06-06 | 2013-08-28 | 北京四方继保自动化股份有限公司 | 一种链式变流器的就地执行单元远程在线升级系统 |
CN103455002A (zh) * | 2013-08-30 | 2013-12-18 | 天津大学 | 一种基于Verilog HDL的FPGA超高速工业控制系统 |
CN103455002B (zh) * | 2013-08-30 | 2015-09-23 | 天津大学 | 一种基于Verilog HDL的FPGA超高速工业控制系统 |
CN106775796A (zh) * | 2015-11-25 | 2017-05-31 | 大唐移动通信设备有限公司 | 一种固件升级方法、装置及系统 |
CN106775796B (zh) * | 2015-11-25 | 2020-04-03 | 大唐移动通信设备有限公司 | 一种固件升级方法、装置及系统 |
CN105490857B (zh) * | 2015-12-11 | 2019-05-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fc网络设备逻辑远程升级系统 |
CN105490857A (zh) * | 2015-12-11 | 2016-04-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fc网络设备逻辑远程升级系统 |
CN106648807A (zh) * | 2017-01-10 | 2017-05-10 | 北京电子工程总体研究所 | 一种基于flash存储器的dsp软件上传更新方法 |
CN107621943A (zh) * | 2017-08-18 | 2018-01-23 | 上海无线电设备研究所 | 一种fpga动态批量烧写系统及方法 |
CN107819883A (zh) * | 2017-12-13 | 2018-03-20 | 天津光电通信技术有限公司 | 一种多信号处理设备及其对fpga程序的远程升级方法 |
CN108132811A (zh) * | 2017-12-15 | 2018-06-08 | 杭州迪普科技股份有限公司 | 一种fpga程序数据的加载方法及装置 |
CN108647038A (zh) * | 2018-06-26 | 2018-10-12 | 桂林航天工业学院 | 一种基于wifi和超声波通信的FPGA在线更新系统及更新方法 |
CN108647038B (zh) * | 2018-06-26 | 2023-04-11 | 桂林航天工业学院 | 一种基于wifi和超声波通信的FPGA在线更新系统及更新方法 |
CN109101238B (zh) * | 2018-08-03 | 2021-07-13 | 北京航空航天大学 | 数字航天器嵌入式仿真程序智能部署方法 |
CN109101238A (zh) * | 2018-08-03 | 2018-12-28 | 北京航空航天大学 | 数字航天器嵌入式仿真程序智能部署方法 |
CN109740387A (zh) * | 2019-01-04 | 2019-05-10 | 华大半导体有限公司 | 一种用于在线系统编程的方法和高安全电路 |
CN110377332A (zh) * | 2019-07-23 | 2019-10-25 | 北京交大思诺科技股份有限公司 | 安全计算机平台软件程序在线换装方法 |
CN110377332B (zh) * | 2019-07-23 | 2023-08-01 | 北京交大思诺科技股份有限公司 | 安全计算机平台软件程序在线换装方法 |
CN111045734A (zh) * | 2019-11-19 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于ima平台的软硬件程序一键固化系统及方法 |
CN111045734B (zh) * | 2019-11-19 | 2023-09-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于ima平台的软硬件程序一键固化系统及方法 |
CN111026428A (zh) * | 2019-11-22 | 2020-04-17 | 同源微(北京)半导体技术有限公司 | 能同时远程在线更新多个板卡中fpga固件程序的系统及方法 |
CN111414182A (zh) * | 2020-03-30 | 2020-07-14 | 郑州精益达汽车零部件有限公司 | 一种基于spi的fpga远程升级方法 |
CN111414182B (zh) * | 2020-03-30 | 2023-09-19 | 郑州智驱科技有限公司 | 一种基于spi的fpga远程升级方法 |
CN111522693A (zh) * | 2020-04-20 | 2020-08-11 | 中国航天科工集团八五一一研究所 | 增强卫星平台可靠性的在线重构方法 |
CN111522693B (zh) * | 2020-04-20 | 2024-01-09 | 中国航天科工集团八五一一研究所 | 增强卫星平台可靠性的在线重构方法 |
CN112241281A (zh) * | 2020-10-14 | 2021-01-19 | 四川九洲空管科技有限责任公司 | 数字雷达tr组件fpga程序批量升级方法及系统 |
CN112256312A (zh) * | 2020-10-14 | 2021-01-22 | 四川九洲空管科技有限责任公司 | 基于PowerPC的FPGA程序便捷升级方法及系统 |
CN112241281B (zh) * | 2020-10-14 | 2024-02-06 | 四川九洲空管科技有限责任公司 | 数字雷达tr组件fpga程序批量升级方法及系统 |
CN112256312B (zh) * | 2020-10-14 | 2024-03-22 | 四川九洲空管科技有限责任公司 | 基于PowerPC的FPGA程序便捷升级方法及系统 |
CN112702065A (zh) * | 2020-12-18 | 2021-04-23 | 广东高云半导体科技股份有限公司 | Fpga码流数据校验方法及装置 |
CN112764770A (zh) * | 2021-02-01 | 2021-05-07 | 珠海市运泰利自动化设备有限公司 | 一种穿戴式医疗产品主板程序下载装置及方法 |
CN112764770B (zh) * | 2021-02-01 | 2024-06-11 | 珠海市运泰利自动化设备有限公司 | 一种穿戴式医疗产品主板程序下载装置及方法 |
CN113726741A (zh) * | 2021-07-28 | 2021-11-30 | 浪潮电子信息产业股份有限公司 | 一种加速卡数据下载方法及相关装置 |
CN113726741B (zh) * | 2021-07-28 | 2024-01-19 | 浪潮电子信息产业股份有限公司 | 一种加速卡数据下载方法及相关装置 |
CN113672271A (zh) * | 2021-08-24 | 2021-11-19 | 天津津航计算技术研究所 | 一种国产fpga远程升级系统和方法 |
CN114490492A (zh) * | 2021-12-17 | 2022-05-13 | 北京无线电计量测试研究所 | 一种远程在线配置fpga软件方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102999350B (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999350A (zh) | 一种数字信号处理平台中fpga程序升级在线下载方法 | |
CN102609286B (zh) | 一种基于处理器控制的fpga配置程序远程更新系统及其方法 | |
CN200976140Y (zh) | 一种用于现场可编程门阵列位文件升级的系统 | |
CN103559053B (zh) | 一种板卡系统及通信接口卡fpga在线升级方法 | |
CN100383737C (zh) | 单片机在线加载升级方法及系统 | |
CN104679559B (zh) | 单片机在线编程的方法 | |
CN101645055B (zh) | 逻辑器件在线加载的方法、系统和处理器 | |
CN100498708C (zh) | 一种通过个人计算机进行固件下载的方法及装置 | |
CN105373407A (zh) | 嵌入式系统dsp和fpga在线升级方法 | |
CN107704285B (zh) | 现场可编程门阵列多版本配置芯片、系统和方法 | |
CN101673202A (zh) | 一种程序烧写方法和系统以及一种待烧写装置和烧写装置 | |
CN104077204A (zh) | 可重构的8位rsic单片机仿真器 | |
CN105068860A (zh) | 一种基于ARM的Linux采煤机管理主机系统 | |
CN104077166B (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN105320531A (zh) | 一种基于MicroBlaze软核的FPGA软件在线升级方法 | |
CN106874054A (zh) | 一种直放站内模块程序在线升级方法与系统 | |
CN104182256A (zh) | 一种嵌入式设备程序更新方法 | |
CN102253844B (zh) | 一种启动处理器的方法和设备 | |
CN102096725A (zh) | 一种基于fpga的仿真器 | |
CN102253845B (zh) | 服务器系统 | |
CN107526614B (zh) | Fpga开发板的通信方法 | |
CN105468390A (zh) | Boot在线升级装置及方法 | |
CN102043636B (zh) | 现场可编程门阵列位文件下载的方法及装置 | |
CN105760194A (zh) | 一种dsp控制系统软件升级方法及装置 | |
CN101667133B (zh) | 固件更新方法和使用该方法更新固件的芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |