CN103106163A - 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 - Google Patents
基于数据帧异步传输协议的fpga芯片在线升级结构及方法 Download PDFInfo
- Publication number
- CN103106163A CN103106163A CN2013100717698A CN201310071769A CN103106163A CN 103106163 A CN103106163 A CN 103106163A CN 2013100717698 A CN2013100717698 A CN 2013100717698A CN 201310071769 A CN201310071769 A CN 201310071769A CN 103106163 A CN103106163 A CN 103106163A
- Authority
- CN
- China
- Prior art keywords
- frame
- control card
- fpga chip
- terminal strip
- data
- 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芯片在线升级电路结构,其中控制卡的主机接口与外部计算机连接,控制卡的从机接口与所述的主端子板主机接口连接,主端子板从机接口与一从端子板上的从端子板主机接口连接,从端主板上的从端子板从机接口与其余从端子板依次串接。本发明还涉及一种基于该电路结构的基于数据帧异步传输协议的FPGA芯片在线升级控制方法。采用该种结构的基于数据帧异步传输协议的FPGA芯片在线升级电路结构及方法,能够应对更新过程中出现的错误、保证更新顺利可靠的执行,从而成功的解决了现在底层无法更新或者更新方式复杂难以实现的问题,简单可靠、方便易行、运行速度更快、扩展性更强,工作性能稳定可靠,适用范围较为广泛。
Description
技术领域
本发明涉及可编程逻辑器件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更新程序的方案相比,本发明具有以下优点:
(1)方便易行——不需要在产品上添加额外的专用物理连接,可以方便的通过软件的方式运行在产品上,而不需要专业的烧写器和烧写软件。特别是在比较复杂难以拆装的产品、产量较大的产品的软硬件维护、升级,传统的下载方式显然不太适用;
(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芯片的更新操作。
在实际应用当中,本发明主要分为三个层面上的创新:
(1)更新对象的设计,核心:针对性强,可靠性高;
(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。其中,GENERAL1寄存器定义了默认加载的FPGA配置数据地址空间的低16位地址,GENERAL2寄存器定义了默认加载的FPGA配置数据地址空间的高8位地址以及读取存储器的命令。GENERAL3寄存器定义了更新程序的起始低16位地址,GENERAL4寄存器定义了更新程序的高8位地址,GENERAL5寄存器为用户自定义寄存器。FPGA默认加载GENERAL1,2寄存器指定地址空间的配置数据,若加载配置错误或者CRC校验错误,则FPGA重新加载配置数据,同时strike计数器加1。若加载GENERAL1,2指定的地址空间配置数据错误3次,即strike为3,则加载GENERAL3,4指定地址空间的配置数据,若加载配置错误或者CRC校验错误,则FPGA重新加载配置数据,同时strike计数器加1。若加载GENERAL3,4指定的地址空间配置数据错误3次,即strike为6,则进入加载Header数据段。
再请参阅图6b所示,其中表示FLASH存储器的存储结构,其中数据头(Header)固定不可擦除,单独存在一个扇区之内,它决定了上电加载程序(FirstRun)以及错误后跳转备份引导代码(BOOT)的物理地址信息。
在更新FirstRun时,出现异常导致更新中断,上电后会加载备份引导代码Boot,然后运行Boot程序可以重新对已破坏的FirstRun进行更新,此时出现异常不会对Boot区域写入,故Boot永远不会被损坏。
再请参阅图7所示,其中,FirstRun和Boot都有一份同步字,FPGA通过同步字来识别程序区域,同步字存在于数据块的最低地址。为了应对在擦写或者写入的过程中出现异常而突然停止(如擦除错误、写入错误、突然断电等),程序设计中在擦写过程中,擦写方向为由低地址到高地址,这样先擦除同步字再擦除配置数据,就不会出现同步字存在而配置数据已被擦除的情况;程序在写入的过程中,写入方向由高地址到低地址,这样先写入配置数据再写入同步字,就不会出现同步字已写入而配置数据未完全写入的情况。
通信总线中的设计如下:
通信协议主要实现将数据包接收并转发的功能,所以在现有的基础上,增加一个格式的命令帧即可。
新增通信帧的格式如下:
数据头 | 配置数据 | 命令 | 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校验码错误,此时应该重新发送;若擦除过程中出错,则需要重新擦除;若烧写过程中出错,则需要重新擦除之后再进行烧写;若更新超时,则关闭设备,重新进行更新操作。
采用了上述技术方案,具有以下优点:
(1)速度比市场上最快的JTAG烧写器快5倍以上。
(2)方便易行,克服了传统下载方式物理上的缺陷,节省了产品维护成本。
(3)可靠性高,稳定性强。突然断电等异常状态不会对软件造成不可恢复的损坏。可靠性测试中,在线更新仍可以在EMC测试中稳定的运行。EMC测试等级为:
(a)EFT(电快速瞬变脉冲群抗干扰度),±2KV。
(b)ESD(静电放电抗干扰度),±8KV。
(c)SOUGE(雷击浪涌),±2KV。
采用了上述的基于数据帧异步传输协议实现FPGA芯片在线升级的电路结构及其控制方法,由于其中更新对象为控制器或某节点,更新数据包可以从控制端PC通过局域网发送到直接控制的PC上,然后再转发给控制器、从机节点,直到到达更新目标;更新目标拿到更新的数据然后对自身程序保存的ROM进行更新,更新的过程中将更新状态发送给上一级;同时能够应对更新过程中出现的错误、保证更新顺利可靠的执行,从而成功的解决了现在底层无法更新或者更新方式复杂难以实现的问题,简单可靠、方便易行、运行速度更快、扩展性更强,工作性能稳定可靠,适用范围较为广泛。与现有的JTAG更新程序的方案相比,本发明具有以下优点:
(1)方便易行——不需要在产品上添加额外的专用物理连接,可以方便的通过软件的方式运行在产品上,而不需要专业的烧写器和烧写软件。特别是在比较复杂难以拆装的产品、产量较大的产品的软硬件维护、升级,传统的下载方式显然不太适用;
(2)速度快——实测更新0.65Mbyte的配置数据,6MHz的JTAG下载需要143s,而本发明只需要15s;
(3)接口简单可靠,下载时间大大缩短,这样就增加了其可靠性,JTAG下载因为数据量比较大、接口不稳定,容易出现下载中断;
(4)扩展性强,特别是在一个通信系统中,可以很方便的更新系统中的所有FPGA节点。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (13)
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芯片的更新操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310071769.8A CN103106163B (zh) | 2013-03-06 | 2013-03-06 | 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310071769.8A CN103106163B (zh) | 2013-03-06 | 2013-03-06 | 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103106163A true CN103106163A (zh) | 2013-05-15 |
CN103106163B CN103106163B (zh) | 2015-09-02 |
Family
ID=48314034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310071769.8A Active CN103106163B (zh) | 2013-03-06 | 2013-03-06 | 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103106163B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634076A (zh) * | 2013-11-27 | 2014-03-12 | 上海电器科学研究院 | 一种监控可编程逻辑控制器的通信数据打包方法 |
CN106130771A (zh) * | 2016-06-28 | 2016-11-16 | 杭州初灵信息技术股份有限公司 | 一种基于带内以太网络在线升级flash的方法 |
CN103634076B (zh) * | 2013-11-27 | 2016-11-30 | 上海电器科学研究院 | 一种监控可编程逻辑控制器的通信数据打包方法 |
CN106933632A (zh) * | 2017-03-13 | 2017-07-07 | 山东网聪信息科技有限公司 | 基于以太网的fpga功能在线升级方法 |
CN107621943A (zh) * | 2017-08-18 | 2018-01-23 | 上海无线电设备研究所 | 一种fpga动态批量烧写系统及方法 |
CN108073427A (zh) * | 2017-10-19 | 2018-05-25 | 深圳市风云实业有限公司 | Fpga镜像加载方法及系统 |
CN108182076A (zh) * | 2018-01-23 | 2018-06-19 | 国网江苏省电力有限公司苏州供电分公司 | Fpga辅助管理方法 |
CN108279910A (zh) * | 2018-01-17 | 2018-07-13 | 珠海市杰理科技股份有限公司 | 程序代码烧写方法、装置、计算机设备和存储介质 |
CN108694052A (zh) * | 2018-06-29 | 2018-10-23 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN108984441A (zh) * | 2018-05-31 | 2018-12-11 | 烽火通信科技股份有限公司 | 一种保持数据传送一致性的方法及系统 |
CN109669732A (zh) * | 2019-02-14 | 2019-04-23 | 深圳力维智联技术有限公司 | 一种外扩功能系统及外扩功能硬件的驱动加载方法 |
CN112882740A (zh) * | 2021-02-05 | 2021-06-01 | 明峰医疗系统股份有限公司 | 一种pet设备的数据远程更新方法、系统及计算机可读存储介质 |
CN113806282A (zh) * | 2021-08-31 | 2021-12-17 | 歌尔股份有限公司 | 异构控制系统及异构控制系统的加载方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130013107A1 (en) * | 2010-03-29 | 2013-01-10 | Pascal Felique | Method and Apparatus for Controlling and Monitoring a Vending Machine |
CN102929231A (zh) * | 2012-10-23 | 2013-02-13 | 威凡智能电气高科技有限公司 | 一种在链式statcom控制系统中的通讯装置 |
-
2013
- 2013-03-06 CN CN201310071769.8A patent/CN103106163B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130013107A1 (en) * | 2010-03-29 | 2013-01-10 | Pascal Felique | Method and Apparatus for Controlling and Monitoring a Vending Machine |
CN102929231A (zh) * | 2012-10-23 | 2013-02-13 | 威凡智能电气高科技有限公司 | 一种在链式statcom控制系统中的通讯装置 |
Non-Patent Citations (1)
Title |
---|
张志敏: "SSD系统中多级FPGA在线升级电路的设计与实现", 《第九届中国通信学会学术年会》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634076B (zh) * | 2013-11-27 | 2016-11-30 | 上海电器科学研究院 | 一种监控可编程逻辑控制器的通信数据打包方法 |
CN103634076A (zh) * | 2013-11-27 | 2014-03-12 | 上海电器科学研究院 | 一种监控可编程逻辑控制器的通信数据打包方法 |
CN106130771A (zh) * | 2016-06-28 | 2016-11-16 | 杭州初灵信息技术股份有限公司 | 一种基于带内以太网络在线升级flash的方法 |
CN106933632A (zh) * | 2017-03-13 | 2017-07-07 | 山东网聪信息科技有限公司 | 基于以太网的fpga功能在线升级方法 |
CN107621943A (zh) * | 2017-08-18 | 2018-01-23 | 上海无线电设备研究所 | 一种fpga动态批量烧写系统及方法 |
CN108073427A (zh) * | 2017-10-19 | 2018-05-25 | 深圳市风云实业有限公司 | Fpga镜像加载方法及系统 |
CN108279910A (zh) * | 2018-01-17 | 2018-07-13 | 珠海市杰理科技股份有限公司 | 程序代码烧写方法、装置、计算机设备和存储介质 |
CN108182076A (zh) * | 2018-01-23 | 2018-06-19 | 国网江苏省电力有限公司苏州供电分公司 | Fpga辅助管理方法 |
CN108984441B (zh) * | 2018-05-31 | 2020-06-02 | 烽火通信科技股份有限公司 | 一种保持数据传送一致性的方法及系统 |
CN108984441A (zh) * | 2018-05-31 | 2018-12-11 | 烽火通信科技股份有限公司 | 一种保持数据传送一致性的方法及系统 |
CN108694052A (zh) * | 2018-06-29 | 2018-10-23 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN108694052B (zh) * | 2018-06-29 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN109669732A (zh) * | 2019-02-14 | 2019-04-23 | 深圳力维智联技术有限公司 | 一种外扩功能系统及外扩功能硬件的驱动加载方法 |
CN109669732B (zh) * | 2019-02-14 | 2024-05-17 | 深圳力维智联技术有限公司 | 一种外扩功能系统及外扩功能硬件的驱动加载方法 |
CN112882740A (zh) * | 2021-02-05 | 2021-06-01 | 明峰医疗系统股份有限公司 | 一种pet设备的数据远程更新方法、系统及计算机可读存储介质 |
CN112882740B (zh) * | 2021-02-05 | 2023-10-20 | 明峰医疗系统股份有限公司 | 一种pet设备的数据远程更新方法、系统及计算机可读存储介质 |
CN113806282A (zh) * | 2021-08-31 | 2021-12-17 | 歌尔股份有限公司 | 异构控制系统及异构控制系统的加载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103106163B (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103106163B (zh) | 基于数据帧异步传输协议的fpga芯片在线升级结构及方法 | |
CN110347414A (zh) | 固件更新方法、装置、设备及计算机可读存储介质 | |
CN100365994C (zh) | 用于调试以太网的方法和装置 | |
CN101963912A (zh) | 一种实现保存和校验系统硬件配置信息的方法 | |
CN112825011A (zh) | PCIe设备的上下电控制方法以及系统 | |
CN108170457A (zh) | 固件升级方法、装置及vr头戴式显示器 | |
US20150370653A1 (en) | Replacement of a corrupt driver variable record | |
CN108647131B (zh) | 运行日志的输出系统 | |
CN102253845B (zh) | 服务器系统 | |
CN113259273B (zh) | 交换机的控制方法、交换机、计算机设备和存储介质 | |
CN109582337A (zh) | 一种固件升级的方法、装置和计算机可读存储介质 | |
CN113778739B (zh) | 一种一体机的系统修复方法、系统、设备及存储介质 | |
CN106130771B (zh) | 一种基于带内以太网络在线升级flash的方法 | |
CN107145399A (zh) | 一种共享内存管理方法及共享内存管理设备 | |
CN103376777B (zh) | 控制器的Modbus通讯接口的测试方法及上位机 | |
US20090210634A1 (en) | Data transfer controller, data consistency determination method and storage controller | |
CN108156015A (zh) | 数据的更新方法和装置 | |
CN104780123B (zh) | 一种网络包收发处理装置及其设计方法 | |
CN104486036B (zh) | 一种满足1394协议要求消息容错处理电路及方法 | |
CN210721440U (zh) | 一种pcie卡异常恢复装置及pcie卡、pcie扩展系统 | |
CN108647124A (zh) | 一种存储跳变信号的方法及其装置 | |
CN110825547B (zh) | 一种基于smbus的pcie卡异常恢复装置及方法 | |
CN107957923A (zh) | 一种内存诊断方法和装置 | |
CN115617479A (zh) | Bios日志存储方法及计算设备 | |
CN109783031B (zh) | 用于RAID卡的盘符和slot号校验方法、装置、终端及存储介质 |
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 |