专利名称:基于数据帧异步传输协议的fpga芯片在线升级结构及方法
技术领域:
本发明涉及可编程逻辑器件FPGA芯片领域,特别涉及FPGA芯片在线更新升级控制技术领域,具体是指ー种基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构及其控制方法。
背景技术:
现在FPGA芯片大都是基于RAM,其程序存储在外部的FLASH存储器中,用户一般通过JTAG下载接ロ对程序进行下载和调试。现有的在线更新主要存在于局域网之内,并且一般只能更新PC上应用软件,无法对更深ー层(芯片级)的软硬件进行升级;而通过传统的下载接ロ更新芯片的程序则比较复杂难以在各种各样的现场中实现。这样就给人们的工作带来了种种不便。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供ー种简单可靠、方便易行、运行速度更快、扩展性更强、工作性能稳定可靠、适用范围较为广泛的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构及其控制方法。为了实现上述的目的,本发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构及其控制方法如下:该基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构,包括控制卡、主端子板和数个从端子板,所述的控制卡、主端子板和各个从端子板上均承载有FPGA芯片和对应的Flash存储器,所述的控制卡与外部计算机相连接,且所述的控制卡、主端子板和数个从端子板依次串接,其主要特点是,所述的控制卡上承载有主机接口和从机接ロ,所述的主端子板上承载有主端子板主机接口和主端子板从机接ロ,所述的各个从端子板上均承载有各自的从端子板主机接口和从端子板从机接ロ,所述的控制卡的主机接ロ与外部计算机相连接,且该控制卡的从机接ロ与所述的主端子板主机接ロ相连接,所述的主端子板从机接ロ与ー从端子板上的从端子板主机接ロ相连接,该从端主板上的从端子板从机接ロ与其余的从端子板依次串接。该基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构中的控制卡的主机接ロ为PCI金手指插条。该基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构中的控制卡的从机接ロ为PCI通信端ロ,且所述的主端子板主机接ロ、主端子板从机接ロ、各个从端子板主机接口和从端子板从机接ロ均为PCI通信端ロ。该基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构中的Flash存储器中具有数据头存储区、原镜像文件地址空间存储区和更新镜像文件地址空间存储区,所述的数据头存储区中具有上电加载程序的物理地址信息和备份引导代码的物理地址信息,且所述的上电加载程序的物理地址信息与所述的原镜像文件地址空间存储区的起始物理地址相对应,所述的备份引导代码的物理地址信息与所述的更新镜像文件地址空间存储区的起始物理地址相对应。该基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构中的原镜像文件地址空间存储区和更新镜像文件地址空间存储区中均设置有同步字,且所述的同步字均位于所述的原镜像文件地址空间存储区和更新镜像文件地址空间存储区的最低地址,或者所述的同步字均位于所述的原镜像文件地址空间存储区和更新镜像文件地址空间存储区的最闻地址。该利用上述的电路结构实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其主要特点是,所述的方法包括计算机进行下载文件的解析处理操作、计算机进行数据包的发送处理操作和控制卡进行FPGA芯片在线升级处理操作,所述的计算机进行下载文件的解析处理操作,包括以下步骤:(11)所述的外部计算机读取配置文件;(12)读取FPGA下载文件;(13)将所述的PFGA下载文件中的地址信息、CRC校验码及格式信息去除,仅保留有效的更新配置数据,并计算出更新对象的大小;(14)将所述的更新配置数据和配置文件打包成命令帧;(15)将该命令帧写入到上电加载程序文件中;所述的计算机进行数据包的发送处理操作,包括以下步骤:(21)所述的外部计算机关闭更新reconfig模式;(22)清空并复位FIFO队列;(23)读取所述的上电加载程序文件;(24)开启更新 reconfig 模式;(25)向需要在线升级的FPGA芯片发送擦除命令帧;(26)判断是否出现配置错误;(27)如果出现配置错误,则报错并退出整个处理过程;否则,判断是否擦除完成;(28)如果擦除未完成,则返回步骤(25);否则,判断FIFO队列是否为空;(29)如果不为空,则进行超时报错或者配置错误报错,并退出整个处理过程;(29)如果为空,则进行数据帧发送处理;(210)关闭更新 reconfig 模式;所述的FPGA芯片在线升级处理操作,包括以下步骤:(31)判断模式是否为更新reconfig模式;(32)如果否,则继续沿用原通信协议;(33)如果是,则更新主端子板、各个从端子板和控制卡状态;(34)将主端子板、各个从端子板的更新失败标志写入驱动程序中;(35)判断数据帧是否到达端子板;(36)如果否,则进行数据帧重发;如果是,则判断主端子板、各个从端子板是否擦与完成;(37)如果擦写未完成,则发送无效帧;否则,判断FIFO队列是否满;
(38)如果未满,则不执行任何操作;否则,接收一数据帧;(39)判断该数据帧的CRC校验是否正确;(310)如果不正确,则进行报错;否则进行FPGA芯片的更新操作。该实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的配置文件中包含更新对象的ID号和更新对象的起始地址。该实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的命令帧中还包括有加密信息。该实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的数据帧发送处理,包括以下步骤:(291)进行数据帧的打包处理;(292)进行数据帧的发送处理;(293)判断发送最后一个数据帧后是否收到done标志;(294)如果未收到,则对最后一个数据帧进行重发,并返回上述步骤(26);(295)如果收到,则返回上述步骤(210)。该实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的进行FPGA芯片的更新操作,包括以下步骤:(3101)对所述的数据帧的命令类型以及更新标识进行判断;(3102)如果该数据帧的命令类型为擦除命令且更新标识为控制卡,则进行Flash存储器擦除操作;(3103)如果该数据帧为纯数据且更新标识为控制卡,则进行Flash存储器写入操作;(3104)如果该数据帧的命令类型为擦除命令且更新标识为主端子板,或者该数据帧的命令类型为擦除命令且更新标识为某个从端子板,或者该数据帧为纯数据且更新标识为主端子板,或者该数据帧为纯数据且更新标识为某个从端子板,则进行数据帧下行发送操作,并返回。该实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的进行Flash存储器擦除操作,包括以下步骤:(31021)所述的控制卡对其所承载的Flash存储器中的内容进行擦除;(31022)设置控制卡Flash存储器擦除未完成的标志;(31023)所述的控制卡进行数据帧下行发送操作,并返回。该实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的进行Flash存储器写入操作,包括以下步骤:(31031)所述的控制卡将所述的数据帧中的数据写入该控制卡所承载的Flash存储器中;(31032)所述的控制卡延时系统预设的时间;(31033)所述的控制卡对所承载的Flash存储器中所存储的数据进行读取;(31034)判断所读取的数据与前面写入的数据之间的一致性;(31035)如果否,则设置配置失败的标志,并结束;(31036)如果是,则所述的控制卡进行数据帧下行发送操作,并返回。
该实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的进行数据帧下行发送操作,具体为:所述的控制卡将所述的数据帧设置为重发帧,并通过从机接口依次下发至所述的主端子板和各个从端子板,所述的主端子板和各个从端子板根据所收到的数据帧进行后续相应的FPGA芯片的更新操作。采用了该发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构及其控制方法,由于其中更新对象为控制器或某节点,更新数据包可以从控制端PC通过局域网发送到直接控制的PC上,然后再转发给控制器、从机节点,直到到达更新目标;更新目标拿到更新的数据然后对自身程序保存的ROM进行更新,更新的过程中将更新状态发送给上一级;同时能够应对更新过程中出现的错误、保证更新顺利可靠的执行,从而成功的解决了现在底层无法更新或者更新方式复杂难以实现的问题,简单可靠、方便易行、运行速度更快、扩展性更强,工作性能稳定可靠,适用范围较为广泛。与现有的JTAG更新程序的方案相t匕,本发明具有以下优点:(I)方便易行——不需要在产品上添加额外的专用物理连接,可以方便的通过软件的方式运行在产品上,而不需要专业的烧写器和烧写软件。特别是在比较复杂难以拆装的产品、产量较大的产品的软硬件维护、升级,传统的下载方式显然不太适用;(2)速度快——实测更新0.65Mbyte的配置数据,6MHz的JTAG下载需要143s,而本发明只需要15s ;(3)接口简单可靠,下载时间大大缩短,这样就增加了其可靠性,JTAG下载因为数据量比较大、接口不稳定,容易出现下载中断;(4)扩展性强,特别是在一个通信系统中,可以很方便的更新系统中的所有FPGA节点。
图1为本发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构所应用的网络环境示意图。图2为本发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构中的控制卡电路布局结构示意图。图3为本发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构中的端子板电路布局结构示意图。图4为本发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构所应用的伺服控制系统层次结构示意图。图5为本发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构的整体连接示意图。图6a、6b为本发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构中的Flash存储器顺序地址存储结构示意图。图7为本发明的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构中的Flash存储器写入方式示意图。图8为本发明的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的下载文件的解析处理操作流程图。图9为本发明的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的数据包的发送处理操作流程图。图10为本发明的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法中的下FPGA芯片在线升级处理操作流程图。
具体实施例方式为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。请参阅图1至图7所示,该基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构,包括控制卡、主端子板和数个从端子板,所述的控制卡、主端子板和各个从端子板上均承载有FPGA芯片和对应的Flash存储器,所述的控制卡与外部计算机相连接,且所述的控制卡、主端子板和数个从端子板依次串接,其中,所述的控制卡上承载有主机接口和从机接口,所述的主端子板上承载有主端子板主机接口和主端子板从机接口,所述的各个从端子板上均承载有各自的从端子板主机接口和从端子板从机接口,所述的控制卡的主机接口与外部计算机相连接,且该控制卡的从机接口与所述的主端子板主机接口相连接,所述的主端子板从机接口与一从端子板上的从端子板主机接口相连接,该从端主板上的从端子板从机接口与其余的从端子板依次串接。其中,所述的控制卡的主机接口为PCI金手指插条,该控制卡的从机接口为PCI通信端口,且所述的主端子板主机接口、主端子板从机接口、各个从端子板主机接口和从端子板从机接口均为PCI通信端口。同时,所述的Flash存储器中具有数据头存储区、原镜像文件地址空间存储区和更新镜像文件地址空间存储区,所述的数据头存储区中具有上电加载程序的物理地址信息和备份引导代码的物理地址信息,且所述的上电加载程序的物理地址信息与所述的原镜像文件地址空间存储区的起始物理地址相对应,所述的备份引导代码的物理地址信息与所述的更新镜像文件地址空间存储区的起始物理地址相对应;所述的原镜像文件地址空间存储区和更新镜像文件地址空间存储区中均设置有同步字,且所述的同步字可以均位于所述的原镜像文件地址空间存储区和更新镜像文件地址空间存储区的最低地址,或者所述的同步字也可以均位于所述的原镜像文件地址空间存储区和更新镜像文件地址空间存储区的最高地址。再请参阅图8至图10所示,该利用上述的电路结构实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其主要特点是,所述的方法包括计算机进行下载文件的解析处理操作、计算机进行数据包的发送处理操作和控制卡进行FPGA芯片在线升级处理操作,所述的计算机进行下载文件的解析处理操作,包括以下步骤:(11)所述的外部计算机读取配置文件;该配置文件中包含更新对象的ID号和更新对象的起始地址;(12 )读取FPGA下载文件;(13)将所述的PFGA下载文件中的地址信息、CRC校验码及格式信息去除,仅保留有效的更新配置数据,并计算出更新对象的大小;(14)将所述的更新配置数据和配置文件打包成命令帧;该命令帧中还包括有加密信息;(15)将该命令帧写入到上电加载程序文件中;所述的计算机进行数据包的发送处理操作,包括以下步骤:(21)所述的外部计算机关闭更新reconfig模式;(22)清空并复位FIFO队列;(23)读取所述的上电加载程序文件;(24)开启更新 reconfig 模式;(25)向需要在线升级的FPGA芯片发送擦除命令帧;(26)判断是否出现配置错误;(27)如果出现配置错误,则报错并退出整个处理过程;否则,判断是否擦除完成;(28)如果擦除未完成,则返回步骤(25);否则,判断FIFO队列是否为空;(29)如果不为空,则进行超时报错或者配置错误报错,并退出整个处理过程;(29)如果为空,则进行数据帧发送处理,包括以下步骤:(a)进行数据帧的打包处理;(b)进行数据帧的发送处理;(c)判断发送最后一个数据帧后是否收到done标志;(d)如果未收到,则对最后一个数据帧进行重发,并返回上述步骤(26);(e)如果收到,则返回上述步骤(210);(210)关闭更新 reconfig 模式;所述的FPGA芯片在线升级处理操作,包括以下步骤:(31)判断模式是否为更新reconfig模式;(32)如果否,则继续沿用原通信协议;(33)如果是,则更新主端子板、各个从端子板和控制卡状态;(34)将主端子板、各个从端子板的更新失败标志写入驱动程序中;(35)判断数据帧是否到达端子板;(36)如果否,则进行数据帧重发;如果是,则判断主端子板、各个从端子板是否擦与完成;(37)如果擦写未完成,则发送无效帧;否则,判断FIFO队列是否满;(38)如果未满,则不执行任何操作;否则,接收一数据帧;(39)判断该数据帧的CRC校验是否正确;(310)如果不正确,则进行报错;否则进行FPGA芯片的更新操作,包括以下步骤:(a)对所述的数据帧的命令类型以及更新标识进行判断;(b)如果该数据帧的命令类型为擦除命令且更新标识为控制卡,则进行Flash存储器擦除操作,包括以下步骤:(i)所述的控制卡对其所承载的Flash存储器中的内容进行擦除;(ii)设置控制卡Flash存储器擦除未完成的标志;(iii)所述的控制卡进行数据帧下行发送操作,并返回;(c)如果该数据帧为纯数据且更新标识为控制卡,则进行Flash存储器写入操作,包括以下步骤:(i)所述的控制卡将所述的数据帧中的数据写入该控制卡所承载的Flash存储器中;(ii)所述的控制卡延时系统预设的时间;(iii)所述的控制卡对所承载的Flash存储器中所存储的数据进行读取;(iv)判断所读取的数据与前面写入的数据之间的一致性;(V)如果否,则设置配置失败的标志,并结束;(Vi)如果是,则所述的控制卡进行数据帧下行发送操作,并返回;(d)如果该数据帧的命令类型为擦除命令且更新标识为主端子板,或者该数据帧的命令类型为擦除命令且更新标识为某个从端子板,或者该数据帧为纯数据且更新标识为主端子板,或者该数据帧为纯数据且更新标识为某个从端子板,则进行数据帧下行发送操作,并返回;该进行数据帧下行发送操作,具体为:所述的控制卡将所述的数据帧设置为重发帧,并通过从机接口依次下发至所述的主端子板和各个从端子板,所述的主端子板和各个从端子板根据所收到的数据帧进行后续相应的FPGA芯片的更新操作。在实际应用当中,本发明主要分为三个层面上的创新:(I)更新对象的设计,核心:针对性强,可靠性高;(2)通信总线中的设计,核心:尽量兼容原通信协议;(3)上位机应用层中的设计,核心:简单、可靠、控制灵活。更新对象的设计如下:请参阅图5所示,其为更新的对象(控制卡或端子板上的FPGA芯片)。本发明主要存在三个层面:PC上的应用软件、FPGA上运行的软硬件程序以及FLASH存储的配置信息。为了防止在更新FPGA程序过程中,突然掉电导致Flash存储器程序不完整,导致FPGA程序无法正常运行的情况,采用Flash存储器复用的方式。通过复用的方式,将需要更新的FPGA程序与原程序一起存放于Flash存储器不同的地址空间当中。更新程序时,首先将需更新的FPGA程序更新到“更新镜像文件地址空间”,更新成功之后,再更新“原镜像文件地址空间”。至此,两份地址空间的程序完全一致。“原镜像文件地址空间”和“更新镜像文件地址空间”地址分配可有顺序和逆序两种存储模式。其中,顺序地址存储结构请参阅图6a所示。上电重配置或者以命令形式要求重配置时,FPGA默认从Flash存储器0x00000地址的Header段开始读取FPGA配置数据信息,Header段包括了同步字以及FPGA内部寄存器的相关初始化信息,包括寄存器GENERAL1,2,3,4,5。其中,GENERALI寄存器定义了默认加载的FPGA配置数据地址空间的低16位地址,GENERAL2寄存器定义了默认加载的FPGA配置数据地址空间的高8位地址以及读取存储器的命令。GENERAL3寄存器定义了更新程序的起始低16位地址,GENERAL4寄存器定义了更新程序的高8位地址,GENERAL5寄存器为用户自定义寄存器。FPGA默认加载GENERALI,2寄存器指定地址空间的配置数据,若加载配置错误或者CRC校验错误,则FPGA重新加载配置数据,同时strike计数器加I。若加载GENERALI,2指定的地址空间配置数据错误3次,即strike为3,则加载GENERAL3,4指定地址空间的配置数据,若加载配置错误或者CRC校验错误,则FPGA重新加载配置数据,同时strike计数器加I。若加载GENERAL3,4指定的地址空间配置数据错误3次,即strike为6,则进入加载Header数据段。再请参阅图6b所示,其中表示FLASH存储器的存储结构,其中数据头(Header)固定不可擦除,单独存在一个扇区之内,它决定了上电加载程序(FirstRun)以及错误后跳转备份引导代码(BOOT)的物理地址信息。在更新FirstRun时,出现异常导致更新中断,上电后会加载备份引导代码Boot,然后运行Boot程序可以重新对已破坏的FirstRun进行更新,此时出现异常不会对Boot区域写入,故Boot永远不会被损坏。再请参阅图7所示,其中,FirstRun和Boot都有一份同步字,FPGA通过同步字来识别程序区域,同步字存在于数据块的最低地址。为了应对在擦写或者写入的过程中出现异常而突然停止(如擦除错误、写入错误、突然断电等),程序设计中在擦写过程中,擦写方向为由低地址到高地址,这样先擦除同步字再擦除配置数据,就不会出现同步字存在而配置数据已被擦除的情况;程序在写入的过程中,写入方向由高地址到低地址,这样先写入配置数据再写入同步字,就不会出现同步字已写入而配置数据未完全写入的情况。通信总线中的设计如下:通信协议主要实现将数据包接收并转发的功能,所以在现有的基础上,增加一个格式的命令帧即可。新增通信帧的格式如下:
数据头I配置数据I命令|CRC~其中数据头为一个固定的常量,命令包含擦除命令和写入命令,CRC为校验码,配置数据为要擦除的地址信息或者要写入的FPGA配置数据。关于在线更新的流程请参阅图10所示,正常情况下,控制器接收一个命令数据包后执行或者转发给下一个节点;出现异常情况例如,擦写过程中失败、烧写过程中失败、通信过程中失败、CRC校验失败等,控制器将当前的状态发送给PC,PC上的上位机软件进行相应的处理。此流程比较简单,只在原程序内添加一个独立的函数模块,可以方便在产品上移植。上位机应用层中的设计如下:上位机设计分为两个部分,一个为下载文件的解析,一个为数据包的发送。分为两个部分可以简化操作,方便维护人员操作,还可以防止程序泄密。文件的解析过程请参阅图8所示,具体如下:文件解析首先读取文件,将传统的下载文件FirstRun.mcs中的地址信息、CRC校验码以及其他格式信息去除,只留下更新程序数据,并计算出更新对象的大小;然后将更新程序数据和“配置文件.txt”打包成命令帧,最后写入到FirstRun.hex。“配置文件.txt”包含更新对象的ID号,更新对象的起始地址。必要时,可在解析文件的过程中添加加密信息,防止文件FirstRun.hex外发而导致的泄密。数据包的发送过程请参阅图9所示,具体如下:
数据包的发送是将配置数据发送到更新目标,处理更新过程中出现的各种异常并显示当前状态。数据包的发送,开始时先关闭reconfig (更新)模式是为了防止上一次软件异常导致的当前控制卡还处于更新状态。清空FIFO是把上次可能未发送完成的数据包清除,防止误发。然后读取文件“FirstRun.hex”,首先发送第一帧(擦除命令帧),等到擦除完成后,开始发送含有配置命令的数据帧。发送的过程中,实时监测下位机更新的过程并显示当前状态,处理当前出现的错误或者异常。例如:若PCI总线发送数据异常导致CRC校验码错误,此时应该重新发送;若擦除过程中出错,则需要重新擦除;若烧写过程中出错,则需要重新擦除之后再进行烧写;若更新超时,则关闭设备,重新进行更新操作。采用了上述技术方案,具有以下优点:(I)速度比市场上最快的JTAG烧写器快5倍以上。(2)方便易行,克服了传统下载方式物理上的缺陷,节省了产品维护成本。(3)可靠性高,稳定性强。突然断电等异常状态不会对软件造成不可恢复的损坏。可靠性测试中,在线更新仍可以在EMC测试中稳定的运行。EMC测试等级为:(a) EFT (电快速瞬变脉冲群抗干扰度),±2KV。(b)ESD (静电放电抗干扰度),±8KV。(c) SOUGE (雷击浪涌),±2KV。采用了上述的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构及其控制方法,由于其中更新对象为控制器或某节点,更新数据包可以从控制端PC通过局域网发送到直接控制的PC上,然后再转发给控制器、从机节点,直到到达更新目标;更新目标拿到更新的数据然后对自身程序保存的ROM进行更新,更新的过程中将更新状态发送给上一级;同时能够应对更新过程中出现的错误、保证更新顺利可靠的执行,从而成功的解决了现在底层无法更新或者更新方式复杂难以实现的问题,简单可靠、方便易行、运行速度更快、扩展性更强,工作性能稳定可靠,适用范围较为广泛。与现有的JTAG更新程序的方案相比,本发明具有以下优点:(I)方便易行——不需要在产品上添加额外的专用物理连接,可以方便的通过软件的方式运行在产品上,而不需要专业的烧写器和烧写软件。特别是在比较复杂难以拆装的产品、产量较大的产品的软硬件维护、升级,传统的下载方式显然不太适用;(2)速度快——实测更新0.65Mbyte的配置数据,6MHz的JTAG下载需要143s,而本发明只需要15s ;(3)接口简单可靠,下载时间大大缩短,这样就增加了其可靠性,JTAG下载因为数据量比较大、接口不稳定,容易出现下载中断;(4)扩展性强,特别是在一个通信系统中,可以很方便的更新系统中的所有FPGA节点。在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
权利要求
1.ー种基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构,包括控制卡、主端子板和数个从端子板,所述的控制卡、主端子板和各个从端子板上均承载有FPGA芯片和对应的Flash存储器,所述的控制卡与外部计算机相连接,且所述的控制卡、主端子板和数个从端子板依次串接,其特征在于,所述的控制卡上承载有主机接口和从机接ロ,所述的主端子板上承载有主端子板主机接口和主端子板从机接ロ,所述的各个从端子板上均承载有各自的从端子板主机接口和从端子板从机接ロ,所述的控制卡的主机接ロ与外部计算机相连接,且该控制卡的从机接ロ与所述的主端子板主机接ロ相连接,所述的主端子板从机接ロ与ー从端子板上的从端子板主机接ロ相连接,该从端主板上的从端子板从机接ロ与其余的从端子板依次串接。
2.根据权利要求1所述的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构,其特征在于,所述的控制卡的主机接ロ为PCI金手指插条。
3.根据权利要求1所述的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构,其特征在于,所述的控制卡的从机接ロ为PCI通信端ロ,且所述的主端子板主机接ロ、主端子板从机接ロ、各个从端子板主机接口和从端子板从机接ロ均为PCI通信端ロ。
4.根据权利要求1所述的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构,其特征在于,所述的Flash存储器中具有数据头存储区、原镜像文件地址空间存储区和更新镜像文件地址空间存储区,所述的数据头存储区中具有上电加载程序的物理地址信息和备份引导代码的物理地址信息,且所述的上电加载程序的物理地址信息与所述的原镜像文件地址空间存储区的起始物理地址相对应,所述的备份引导代码的物理地址信息与所述的更新镜像文件地址空间存储区的起始物理地址相对应。
5.根据权利要求4所述的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构,其特征在于,所述的原镜像文件地址空间存储区和更新镜像文件地址空间存储区中均设置有同步字,且所述的同步字均位于所述的原镜像文件地址空间存储区和更新镜像文件地址空间存储区 的最低地址,或者所述的同步字均位于所述的原镜像文件地址空间存储区和更新镜像文件地址空间存储区的最高地址。
6.ー种利用权利要求1所述的电路结构实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其特征在于,所述的方法包括计算机进行下载文件的解析处理操作、计算机进行数据包的发送处理操作和控制卡进行FPGA芯片在线升级处理操作,所述的计算机进行下载文件的解析处理操作,包括以下步骤: (11)所述的外部计算机读取配置文件; (12)读取FPGA下载文件; (13)将所述的PFGA下载文件中的地址信息、CRC校验码及格式信息去除,仅保留有效的更新配置数据,并计算出更新对象的大小; (14)将所述的更新配置数据和配置文件打包成命令帧; (15)将该命令帧写入到上电加载程序文件中; 所述的计算机进行数据包的发送处理操作,包括以下步骤: (21)所述的外部计算机关闭更新reconfig模式; (22)清空并复位FIFO队列; (23)读取所述的上电加载程序文件;(24)开启更新reconfig模式; (25)向需要在线升级的FPGA芯片发送擦除命令帧; (26)判断是否出现配置错误; (27)如果出现配置错误,则报错并退出整个处理过程;否则,判断是否擦除完成; (28)如果擦除未完成,则返回步骤(25);否则,判断FIFO队列是否为空; (29)如果不为空,则进行超时报错或者配置错误报错,并退出整个处理过程; (29)如果为空,则进行数据帧发送处理; (210)关闭更新reconfig模式; 所述的FPGA芯片在线升级处理操作,包括以下步骤: (31)判断模式是否为更新reconfig模式; (32)如果否,则继续沿用原通信协议; (33)如果是,则更新主端子板、各个从端子板和控制卡状态; (34)将主端子板、各个从端子板的更新失败标志写入驱动程序中; (35)判断数据帧是否到达端子板; (36)如果否,则进行数据帧重发;如果是,则判断主端子板、各个从端子板是否擦写完成; (37)如果擦写未完成,则发送无效帧;否则,判断FIFO队列是否满; (38)如果未满,则不执行任何操作;否则,接收一数据帧; (39)判断该数据帧的CRC校验是否正确; (310)如果不正确,则进行报错;否则进行FPGA芯片的更新操作。
7.根据权利要求6所述的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其特征在于,所述的配置文件中包含更新对象的ID号和更新对象的起始地址。
8.根据权利要求7所述的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其特征在于,所述的命令帧中还包括有加密信息。
9.根据权利要求6所述的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其特征在于,所述的数据帧发送处理,包括以下步骤: (291)进行数据帧的打包处理; (292)进行数据帧的发送处理; (293)判断发送最后一个数据帧后是否收到done标志; (294)如果未收到,则对最后ー个数据帧进行重发,并返回上述步骤(26); (295)如果收到,则返回上述步骤(210)。
10.根据权利要求6所述的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其特征在于,所述的进行FPGA芯片的更新操作,包括以下步骤: (3101)对所述的数据帧的命令类型以及更新标识进行判断; (3102)如果该数据帧的命令类型为擦除命令且更新标识为控制卡,则进行Flash存储器擦除操作; (3103)如果该数据帧为纯数据且更新标识为控制卡,则进行Flash存储器写入操作; (3104)如果该数据帧的命令类型为擦除命令且更新标识为主端子板,或者该数据帧的命令类型为擦除命令且更新标识为某个从端子板, 或者该数据帧为纯数据且更新标识为主端子板,或者该数据帧为纯数据且更新标识为某个从端子板,则进行数据帧下行发送操作,并返回。
11.根据权利要求10所述的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其特征在于,所述的进行Flash存储器擦除操作,包括以下步骤: (31021)所述的控制卡对其所承载的Flash存储器中的内容进行擦除; (31022)设置控制卡Flash存储器擦除未完成的标志; (31023)所述的控制卡进行数据帧下行发送操作,并返回。
12.根据权利要求10所述的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其特征在于,所述的进行Flash存储器写入操作,包括以下步骤: (31031)所述的控制卡将所述的数据帧中的数据写入该控制卡所承载的Flash存储器中; (31032)所述的控制卡延时系统预设的时间; (31033)所述的控制卡对所承载的Flash存储器中所存储的数据进行读取; (31034)判断所读取的数据与前面写入的数据之间的一致性; (31035)如果否,则设置配置失败的标志,并结束; (31036)如果是,则所述的控制卡进行数据帧下行发送操作,并返回。
13.根据权利要求10至13中`任一项所述的实现基于数据帧异步传输协议的FPGA芯片在线升级控制方法,其特征在于,所述的进行数据帧下行发送操作,具体为: 所述的控制卡将所述的数据帧设置为重发帧,并通过从机接ロ依次下发至所述的主端子板和各个从端子板,所述的主端子板和各个从端子板根据所收到的数据帧进行后续相应的FPGA芯片的更新操作。
全文摘要
本发明涉及一种基于数据帧异步传输协议的FPGA芯片在线升级电路结构,其中控制卡的主机接口与外部计算机连接,控制卡的从机接口与所述的主端子板主机接口连接,主端子板从机接口与一从端子板上的从端子板主机接口连接,从端主板上的从端子板从机接口与其余从端子板依次串接。本发明还涉及一种基于该电路结构的基于数据帧异步传输协议的FPGA芯片在线升级控制方法。采用该种结构的基于数据帧异步传输协议的FPGA芯片在线升级电路结构及方法,能够应对更新过程中出现的错误、保证更新顺利可靠的执行,从而成功的解决了现在底层无法更新或者更新方式复杂难以实现的问题,简单可靠、方便易行、运行速度更快、扩展性更强,工作性能稳定可靠,适用范围较为广泛。
文档编号G06F9/445GK103106163SQ201310071769
公开日2013年5月15日 申请日期2013年3月6日 优先权日2013年3月6日
发明者王少阳, 邓美龙, 汪定军, 郑之开, 汤同奎 申请人:上海维宏电子科技股份有限公司