一种基于以太网链路的FPGA设备升级方法及系统与流程

文档序号:11628623阅读:226来源:国知局
一种基于以太网链路的FPGA设备升级方法及系统与流程
本发明涉及计算机
技术领域
,特别是涉及一种基于以太网链路的fpga设备升级方法及系统。
背景技术
:fpga(field-programmablegatearray),即现场可编程门阵列,它是在可编程逻辑器件的基础上进一步发展的产物。它是作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(verilog或vhdl)所完成的电路设计,可以经过简单的综合与布局,快速地烧录至fpga上进行测试,是现代ic设计验证的技术主流。使用fpga电路可以快速成品,可以修改来改正程序中的错误对程序进行升级,因此,随着嵌入式技术的发展,越来越多的嵌入式设备采用fpga芯片。目前,fpga广泛应用于军事、商业领域的各种电子设备和产品中,由于fpga芯片的升级实质上是改变芯片内部的硬件结构,升级过程很复杂,因此,fpga芯片的升级通常是由芯片供应商提供专用的存储芯片和升级装置实现的。现有技术中,在使用专用的升级装置对fpga芯片内的程序进行升级或维护时,通常是一套专用升级装置同时只能升级1片pfga芯片,且由于专用升级装置的使用要求,通常需要打开fpga设备的外壳,将fpga芯片供应商提供的专用的升级装置和fpga芯片以及存储芯片的特定接口连接,完成升级。然而,当前大量fpga设备中内置了多片pfga,且对于一些插卡式机箱设备或封闭式结构电子产品出厂投入使用后,不易开盖。因此,现有技术中对采用fpga芯片的设备的升级和维护的技术方案使用非常不方便。技术实现要素:本发明所要解决的技术问题是:提供一种基于以太网链路的fpga设备 升级方法,解决现有技术中使用专用的升级装置对使用fpga的设备进行升级需要打开设备外壳带来的不方便的问题。为了解决上述问题,本发明实施例提供了一种基于以太网链路的fpga设备升级系统,包括:待升级的fpga设备、计算机,其中,所述待升级的fpga设备内设置有微处理器、存储器、fpga芯片;所述计算机与fpga设备通过以太网接口连接,通过以太网接口向所述fpga设备发送建立链接的数据帧,使所述fpga设备与所述计算机建立升级链路;所述微处理器通过spi总线与所述存储器连接,用于将从所述计算机中读取的二进制程序文件写入所述存储器;所述fpga芯片通过spi总线所述存储器连接,用于读取与其连接的所述存储器中存储的所述二进制程序文件。进一步地,所述待升级的fpga设备内设置有多片fpga芯片,每片所述fpga芯片通过spi总线分别与所述微处理器连接。在本发明发明的另一具体实施例中,所述待升级的fpga设备内设置有与所述fpga芯片数量相同的存储器,每片所述fpga芯片通过spi总线与一片存储器连接。相应地,本发明还公开了一种基于以太网链路的fpga设备升级方法,应用于前述实施例的所述的升级系统,所述方法包括:所述计算机通过以太网接口向所述fpga设备发送建立链接的数据帧,使所述fpga设备与所述计算机建立升级链路;所述微处理器通过以太网接口读取所述计算机中预先存储的二进制程序文件;所述微处理器通过spi总线将所述二进制程序文件写入所述存储器;所述fpga芯片通过spi总线读取与其连接的存储器中存储的所述二进制程序文件;所述fpga重新上电,完成升级。具体实施时,所述微处理器通过以太网接口读取的所述二进制程序文 件的数量与所述升级系统中的fpga芯片的数量相同。进一步地,所述微处理器通过spi总线将所述二进制程序文件写入所述存储器,具体包括:所述微处理器通过spi总线将多个所述二进制程序文件分别写入不同的所述存储器。具体实施时,所述微处理器通过spi总线将所述二进制程序文件写入所述存储器之前,所述方法还包括:所述微处理器解析所述二进制程序文件,并进行格式转换。进一步地,所述微处理器解析所述二进制程序文件,并进行格式转换,进一步包括:所述微处理器读取所述二进制程序文件的数据段,并对所述数据段按字节执行高低位反转。本发明的实施例中公开的升级系统包括:待升级的fpga设备、计算机,所述微处理器通过以太网接口读取所述计算机中预先存储的二进制程序文件;所述微处理器通过spi总线将所述二进制程序文件写入所述存储器;所述fpga芯片通过spi总线读取与其连接的存储器中存储的所述二进制程序文件;所述fpga重新上电,完成升级。与现有技术相比,对fpga设备升级时,不需要打开fpga设备的外壳,并且可以实现远程升级,升级更方便。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明升级系统一个实施例的结构图;图2是本发明升级系统另一个实施例的结构图;图3是本发明升级方法一个实施例的流程图;图4是本发明一个实施例中程序代码高低位反转示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进 行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一:本发明的实施例公开了一种基于以太网链路的fpga设备升级系统,如图1所述,所述系统包括:待升级的fpga设备120、计算机110,其中,所述待升级的fpga设备120内设置有微处理器1201、存储器1203、fpga芯片1202;所述计算机110与fpga设备通过以太网接口连接,通过以太网接口向所述fpga设备120发送建立链接的数据帧,使所述fpga设备120与所述计算机建立升级链路;所述微处理器1201通过spi总线与所述存储器1203连接,用于将从所述计算机中读取的二进制程序文件写入所述存储器1203;所述fpga芯片1202通过spi总线所述存储器1203连接,用于读取与其连接的所述存储器1203中存储的所述二进制程序文件。本发明的实施例中公开的升级系统包括:待升级的fpga设备、计算机,所述微处理器通过以太网接口读取所述计算机中预先存储的二进制程序文件;所述微处理器通过spi总线将所述二进制程序文件写入所述存储器;所述fpga芯片通过spi总线读取与其连接的存储器中存储的所述二进制程序文件;所述fpga重新上电,完成升级。与现有技术相比,对fpga设备升级时,不需要打开fpga设备的外壳,并且可以实现远程升级,升级更方便。实施例二:在本发明的另一具体实施例中,如图2所示,所述待升级的fpga设备120内设置有多片fpga芯片1202,每片所述fpga芯片1202通过spi总线分别与所述微处理器110连接。相应的,具体实施时,所述待升级的fpga设备120内设置有与所述fpga芯片1202数量相同的存储器1203,每片所述fpga芯片1202通过spi总线 与一片存储器1203连接。每一片存储器1203用于存储与其连接的所述fpga芯片1202的升级代码文件。通过为每片fpga芯片配置一片存储器,可以实现并行升级,提高fpga设备升级的效率。实施例三:相应的,本发明的实施例还公开了一种基于以太网链路的fpga设备升级方法,应用于前述实施例一和实施例二中公开的基于以太网链路的fpga设备升级系统。如图3所示,所述升级方法包括:步骤100,所述计算机通过以太网接口向所述fpga设备发送建立链接的数据帧,使所述fpga设备与所述计算机建立升级链路;步骤110,所述微处理器通过以太网接口读取所述计算机中预先存储的二进制程序文件;步骤120,所述微处理器通过spi总线将所述二进制程序文件写入所述存储器;步骤130,所述fpga芯片通过spi总线读取与其连接的存储器中存储的所述二进制程序文件;步骤140,所述fpga重新上电,完成升级。本发明的实施例中公开的升级方法计算机通过以太网接口向所述fpga设备发送建立链接的数据帧,使所述fpga设备与所述计算机建立升级链路;,所述微处理器通过以太网接口读取所述计算机中预先存储的二进制程序文件;所述微处理器通过spi总线将所述二进制程序文件写入所述存储器;所述fpga芯片通过spi总线读取与其连接的存储器中存储的所述二进制程序文件;所述fpga重新上电,完成升级。与现有技术相比,对fpga设备升级时,不需要打开fpga设备的外壳,并且可以实现远程升级,升级更方便。具体实施时,若所述fpga设备内设置有多片fpga芯片,则需要同时对所述多片fpga芯片进行升级,上述步骤110中,所述微处理器通过以太网接口读取的所述二进制程序文件的数量与所述升级系统中的fpga芯片的数量相同,每一个二进制程序文件用于对一个fpga芯片升级。所述微处理器通过spi总线将所述二进制程序文件写入所述存储器,具体包括:所述微处理器通过spi总线将多个所述二进制程序文件分别写入不同的所述存储器。每个二进制文件是针对一片fpga芯片的升级文件,当微处理器通过以太网接口接收到多个二进制文件后,根据每个二进制文件的文件标识,将其写入与相应的fpga芯片连接的存储器。通过为每片fpga芯片配置一片存储器,可以实现并行升级,提高fpga设备升级的效率。优选的,在步骤120之前,所述微处理器通过spi总线将所述二进制程序文件写入所述存储器之前,所述方法还包括:所述微处理器解析所述二进制程序文件,并进行格式转换。具体实施时,所述微处理器解析所述二进制程序文件,并进行格式转换,进一步包括:所述微处理器读取所述二进制程序文件的数据段,并对所述数据段按字节执行高低位反转。下面以quartusii是altera公司提供的fpga的开发工具套件生成的二进制程序文件为例,说明所述微处理器读取所述二进制程序文件的数据段,并对所述数据段按字节执行高低位反转的具体方案。quartusii是altera公司提供的fpga的开发工具套件,该开发套件提供编辑、编译环境,经过编译后生成的代码为扩展名为jic的烧录文件。这种文件是epcs芯片专用16进制格式文件,文件中包括:前导码、升级程序的校验信息、升级程序、.jic文件的校验信息等。以ep3c80系列fpga为例,其对应epcs64存储芯片生成的.jic文件的文件格式如下表:地址属性0x00000000h~0x000000a3h前导码0x000000a4h~0x000000eeh升级程序的校验信息0x000000efh~0x0026154fh升级程序0x008000a4h~0x008000eeh.jic文件的校验信息其中,前导码包括版本号、硬件信息等,在生成新的升级程序是保留前 导码。本发明通过提取.jic的文件中的升级程序作为源数据,经过按字节进行数据位变换生成所述升级代码,以上表所示为例,.jic文件的有效地址段为0x000000a4h~0x0026154fh,即升级程序的校验信息和升级程序的原始数据,从.jic文件中截取这个地址段的原始16进制数据后,按字节对原始数据进行数据位变换,即若目标数据的第n位的数值为源数据第7-n位的数值,其中,n为大于等于0且小于等于7的整数,高低位反转过程如图4所示。最后重新生成二进制程序文件。前述步骤110中,所述微处理器通过以太网接口读取所述计算机中预先存储的二进制程序文件,所述二进制程序文件通过以太网传输协议的数据报文传输。以太网协议包括ip/udp或ip/tcp等,本发明基于以太网协议的格式,在以太网协议帧的基础上,在以太网协议帧的数据段内嵌入自定义数据帧。本实施例中以ip/udp协议为例,说明fpga设备和远程升级客户端之间传输的指示升级指令和指示携带升级代码的数据帧的生成或传输过程。ip/udp协议的协议格式如下表:前导码目的mac源mac类型ip头udp头udp数据段crc在进行数据帧传输时,将数据帧作为udp数据段的数据,打包后,通过udp协议进行传输。所述二进制程序文件根据网络传输协议的要求分割为预设长度,在udp数据段中传输。每一数据帧中二进制程序文件的长度由网络传输协议的数据包的长度决定。远程升级客户端按照网络传输协议的数据包的长度对格式转换后的二进制程序文件依次进行截取,得到多个代码段,然后对代码段依次编号,并在前面附加指示携带升级代码的指令字节和与升级代码编号对应的数据帧编号,生成数据帧,所述数据帧通过以太网传输协议的数据报文传输。具体实施时,所述数据帧作为udp的数据段,进一步封装成符合网络传输协议的数据包,然后,通过udp协议发送至fpga设备。本发明通过基于通用网络协议,将自定义的升级协议嵌入至通用网络传输协议的数据段,即有效地保证的网络传输的稳定性,又提高了升级方法的通用性。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相 参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上对本发明对提供的一种基于以太网链路的fpga设备升级方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1