CN116521207A - Fpga远程升级方法及系统 - Google Patents

Fpga远程升级方法及系统 Download PDF

Info

Publication number
CN116521207A
CN116521207A CN202310682598.6A CN202310682598A CN116521207A CN 116521207 A CN116521207 A CN 116521207A CN 202310682598 A CN202310682598 A CN 202310682598A CN 116521207 A CN116521207 A CN 116521207A
Authority
CN
China
Prior art keywords
module
fpga
upgrade
configuration data
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.)
Pending
Application number
CN202310682598.6A
Other languages
English (en)
Inventor
王晓强
胡展华
翁海敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Border Intelligent Control Technology Co ltd
Original Assignee
Shenzhen Border Intelligent Control Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Border Intelligent Control Technology Co ltd filed Critical Shenzhen Border Intelligent Control Technology Co ltd
Priority to CN202310682598.6A priority Critical patent/CN116521207A/zh
Publication of CN116521207A publication Critical patent/CN116521207A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种FPGA远程升级方法及系统,该方法应用于FPGA设备,FPGA设备包括FPGA模块以及与FPGA模块连接的ARM模块和FLASH模块,包括:ARM模块接收上位机发送的升级配置文件,并获取升级配置文件的数据长度;ARM模块接收FPGA模块返回的擦除状态若为擦除成功,则向FPGA模块发送数据长度;FPGA模块接收ARM模块发送的与升级配置文件相对应地升级配置数据,并在接收过程中和将升级配置数据写入FLASH模块后,根据数据长度对升级配置数据进行多重校验得到校验结果。实施本发明的技术方案在整个升级过程中,复用原有硬件资源,无需额外的硬件开销,不仅操作简单,而且还提高了FPGA远程升级的安全性及可靠性。

Description

FPGA远程升级方法及系统
技术领域
本发明涉及FPGA升级技术领域,更具体地涉及一种FPGA远程升级方法及系统。
背景技术
随着电子半导体技术的发展,FPGA应用到越来越多的领域,FPGA属于半定制电路,相对于ASIC具有很强的灵活性,当设计变更时,可以生成新的升级配置数据加载到FPGA,从而实现功能升级。FPGA的升级配置数据往往需要保存在外部FLASH,并在启动时读取加载。
对FPGA的升级可以通过将新的升级配置数据写入到FLASH的方式进行,常用的FPGA升级方法有两种:1、JTAG升级,该方法将FPGA芯片的JTAG管脚通过特定的烧写器与PC机连接,使用FPGA的专用的设计软件或下载工具进行升级;但TAG升级时需要拆解设备,操作复杂;2、远程升级方法,该方法是通过主控芯片直接对FLASH进行操作,将升级配置数据写入,从而完成升级。主要包括如下两种:2.1、增加硬件开关,以及主控芯片与FLASH之间的连接线路,使用主控芯片进行升级;但需要增加额外的硬件开销;2.2、由FPGA直接控制FLASH,将升级配置数据写入FLASH,无需更改硬件便可进行远程升级,但在出现异常错误后存在无法正常工作或无法继续升级的风险,且启动时间较长,使得FPGA升级的可靠性及安全性均较低。
鉴于此,有必要提供一种安全可靠且启操作简单的FPGA远程升级方法及系统,从而解决上述缺陷。
发明内容
本发明的目的是提供一种FPGA远程升级方法以解决上述缺陷。
本发明的另一目的是提供一种FPGA远程升级系统以解决上述缺陷。
为了实现上述目的,一方面,本发明提供一种FPGA远程升级方法,应用于FPGA设备,所述FPGA设备包括FPGA模块以及与所述FPGA模块连接的ARM模块和FLASH模块,包括:所述ARM模块接收上位机发送的升级配置文件,并获取所述升级配置文件的数据长度;所述ARM模块接收所述FPGA模块返回的擦除状态若为擦除成功,则向所述FPGA模块发送所述数据长度;所述FPGA模块接收所述ARM模块发送的与所述升级配置文件相对应地升级配置数据,并在接收过程中和将所述升级配置数据写入所述FLASH模块后,根据所述数据长度对所述升级配置数据进行多重校验得到校验结果。
其进一步技术方案为:所述FPGA模块接收所述ARM模块发送的擦除指令,并根据所述擦除指令对所述正常镜像子模块中的配置数据进行擦除;所述FPGA模块接收所述ARM模块发送的查询指令,并根据所述查询指令进行擦除状态校验以获取所述擦除状态。
其进一步技术方案为:所述FPGA模块依次接收所述ARM模块发送的与所述升级配置文件相对应地升级配置数据中的帧数据,并在接收所述帧数据的过程中,根据所述数据长度及两相邻所述帧数据之间的时间间隔对所述升级配置数据进行数据长度校验、接收超时校验以及CRC校验第一校验结果;若所述第一校验结果为校验通过,则所述FPGA模块在将所述帧数据写入所述正常镜像子模块之后,从所述正常镜像子模块中读取所述升级配置数据,并将读取的所述升级配置数据与写入的所述升级配置数据进行数据回读校验得到第二校验结果,并将所述第二校验结果作为校验结果。
其进一步技术方案为:在将接收所述帧数据的过程中,对所述帧数据进行CRC校验得到CRC校验结果;根据两相邻所述帧数据之间的时间间隔对所述升级配置数据进行接收超时校验得到超时校验结果;根据所述数据长度对所述升级配置数据进行数据长度校验得到长度校验结果,并根据所述长度校验结果、所述超时校验结果以及所述CRC校验结果确定第一校验结果。
其进一步技术方案为:若所述长度校验结果、所述超时校验结果以及所述CRC校验结果中的任一校验结果为校验不通过,则将第一校验结果设置为校验不通过;若所述长度校验结果、所述超时校验结果以及所述CRC校验结果均为校验通过,则将所述第一校验结果设置为校验通过。
其进一步技术方案为:若所述校验结果为校验不通过,则将所述FPGA升级标识设置为升级失败,并返回执行所述FPGA模块接收所述ARM模块发送的擦除指令,并根据所述擦除指令对所述正常镜像子模块中的配置数据进行擦除的步骤;若所述校验结果为校验通过,则将FPGA升级标识设置为升级成功。
其进一步技术方案为:所述FPGA模块获取并加载存储在所述FLASH模块中的配置数据。
其进一步技术方案为:所述FPGA模块获取存储在所述正常镜像子模块中的配置数据,并检测所述正常镜像子模块中的配置数据是否满足异常损坏条件;若所述正常镜像子模块中的配置数据不满足所述异常损坏条件,则加载存储在所述正常镜像子模块中的配置数据;若所述正常镜像子模块中的配置数据满足所述异常损坏条件,则获取存储在所述升级镜像子模块中的配置数据,并加载存储在所述升级镜像子模块中的配置数据。
其进一步技术方案为:若所述正常镜像子模块中的配置数据没有帧头或没有CRC码或所述CRC码错误,则判定所述正常镜像子模块中的配置数据满足异常损坏条件;若所述正常镜像子模块中的配置数据有所述帧头,有所述CRC码且所述CRC码正确,则判定所述正常镜像子模块中的配置数据不满足所述异常损坏条件。
为了实现上述目的,另一个方面,本发明还提供了一种FPGA远程升级系统,包括:所述上位机用于读取FPGA升级所需的升级配置文件,并将所述升级配置文件发送至所述FPGA设备;所述ARM模块与所述上位机连接,用于接收所述上位机发送的所述升级配置文件,并获取所述升级配置文件的数据长度;所述FPGA模块的一端与所述ARM模块连接,另一端与所述FLASH模块连接,用于接收所述ARM模块发送的所述数据长度及与所述升级配置文件相对应地升级配置数据,并在接收升级配置数据过程中和将所述升级配置数据写入所述FLASH模块后,根据所述数据长度对所述升级配置数据进行多重校验得到校验结果。
本发明实施例提供了一种FPGA远程升级方法及系统。该方法包括:FPGA模块获取并加载存储在FLASH模块中的配置数据以完成FPGA模块的启动;ARM模块接收上位机发送的升级配置文件,并获取其数据长度;当ARM模块接收FPGA模块返回的擦除状态为擦除成功时,向FPGA模块发送数据长度;FPGA模块在接收ARM模块发送的与升级配置文件相对应地升级配置数据的过程中及将升级配置数据写入FLASH模块后,根据数据长度对升级配置数据进行多重校验得到校验结果以对FPGA进行远程升级,整个升级过程,复用原有的硬件资源,无需额外的硬件开销,不仅操作简单,而且还提高了FPGA远程升级的安全性及可靠性。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
图1为本发明一实施例提供的一种FPGA远程升级系统的方框图;
图2为本发明一实施例提供的一种FPGA远程升级方法的流程示意图;
图3为本发明另一实施例提供的一种FPGA远程升级方法的流程示意图;
图4为图1中的FLASH模块配置示意图;
图5为本发明一实施例提供的一种FPGA远程升级的步骤流程简图;
图6为本发明另一实施例提供的一种FPGA远程升级的步骤流程简图。
具体实施方式
下面将结合本发明实施例中的附图,对实施例中的技术方案进行清楚、完整地描述,附图中类似的组件标号代表类似的组件。显然,以下将描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,本发明实施例所提供的FPGA远程升级系统包括:上位机及FPGA设备,所述FPGA设备包括ARM模块、FPGA模块以及FLASH模块,其中,所述上位机用于读取FPGA升级所需的升级配置文件,并将所述升级配置文件发送至所述FPGA设备;所述ARM模块与所述上位机连接,用于接收所述上位机发送的所述升级配置文件,并获取所述升级配置文件的数据长度;所述FPGA模块的一端与所述ARM模块连接,另一端与所述FLASH模块连接,用于接收所述ARM模块发送的所述数据长度及与所述升级配置文件相对应地升级配置数据,并在接收升级配置数据过程中和将所述升级配置数据写入所述FLASH模块后,根据所述数据长度对所述升级配置数据进行多重校验得到校验结果。需要说明的是,所述上位机与所述FPGA设备中的所述ARM模块之间通过TCP/IP进行数据通信,所述ARM模块与所述FPGA模块之间通过PCIe总线或者GPMC总线进行数据通信,所述FPGA模块与所述FLASH模块之间通过SPI总线进行通信。本实施例中的整个升级过程,复用原有的硬件资源,无需额外的硬件开销,不仅操作简单,而且通过多重校验还提高了FPGA远程升级的安全性及可靠性。
参照图2,图2展示了本发明的一种FPGA远程升级方法一实施例的流程示意图,该FPGA远程升级方法应用于上述FPGA设备,所述FPGA设备包括FPGA模块以及与所述FPGA模块连接的ARM模块和FLASH模块,下面以该方法来进一步详细阐述本发明FPGA远程升级方法的具体工作原理。如图2所示,该方法包括以下步骤S110-S130:
S110、所述ARM模块接收上位机发送的升级配置文件,并获取所述升级配置文件的数据长度。
在本发明实施例中,用使用者在所述上位机中选择需要对FPGA进行升级的升级配置文件之后,所述上位机会将所述升级配置文件发送给所述ARM模块,所述ARM模块接收所述上位机发送的所述升级配置文件,并获取所述升级配置文件的数据长度。需要说明的是,在本实施例中,所述升级配置文件问bin配置文件。
S120、所述ARM模块接收所述FPGA模块返回的擦除状态若为擦除成功,则向所述FPGA模块发送所述数据长度。
在本发明实施例中,所述FLASH模块包括正常镜像子模块和升级镜像子模块,所述ARM模块接收到所述升级配置文件之后,会向所述FPGA模块发送擦除指令,所述FPGA模块接收所述擦除指令,并根据所述擦除指令对所述正常镜像子模块中的配置数据进行擦除,具体地,所述正常镜像子模块包括多个扇区,所述FPGA模块是对多个扇区逐个进行擦除;所述ARM模块发送查询指令至所述FPGA模块,所述FPGA模块接收所述查询指令,并根据所述查询指令进行擦除状态校验以获取所述擦除状态,并将所述擦除状态返回给所述ARM模块,所述ARM模块接收所述擦除状态,对所述擦除状态进行判断,若所述擦除状态为擦除成功,则向所述FPGA模块发送所述数据长度。可理解地,在本实施例中,若所述擦除状态为擦除失败,表明擦除状态校验失败,则返回执行所述FPGA模块接收所述ARM模块发送的擦除指令,并根据所述擦除指令对所述正常镜像子模块中的配置数据进行擦除的步骤,继续升级。
S130、所述FPGA模块在接收所述ARM模块发送的与所述升级配置文件相对应地升级配置数据的过程中及将所述升级配置数据写入所述FLASH模块后,根据所述数据长度对所述升级配置数据进行多重校验得到校验结果。
在本发明实施例中,所述FPGA模块依次接收所述ARM模块发送的与所述升级配置文件相对应地升级配置数据中的帧数据,并在接收所述帧数据的过程中,根据所述数据长度及两相邻所述帧数据之间的时间间隔对所述升级配置数据进行数据长度校验、接收超时校验以及CRC校验第一校验结果。具体地,在将接收所述帧数据的过程中,对所述帧数据进行CRC校验得到CRC校验结果;根据两相邻所述帧数据之间的时间间隔对所述升级配置数据进行接收超时校验得到超时校验结果,具体为,若两相邻所述帧数据之间的时间间隔大于预设间隔时间,则将所述超时校验结果设置为校验不通过,反之设置为校验通过;根据所述数据长度对所述升级配置数据进行数据长度校验得到长度校验结果,具体为,对接收到的所述帧数据进行计数得到接收数据长度,将所述接收数据长度与所述数据长度进行对比,若所述接收数据长度达到所述数据长度,则将所述长度校验结果配置为长度校验通过;根据所述长度校验结果、所述超时校验结果以及所述CRC校验结果确定第一校验结果。需要说明的是,在本实施例中,对所述帧数据进行CRC校验得到CRC校验结果,具体为,对接收的每一所述帧数据进行CRC校验,并在所述升级配置数据的末尾与所述升级配置文件中自带的CRC进行校验,若CRC均一致,则将所述CRC校验结果设置为校验通过,反之,设置为校验不通过。
进一步地,根据所述长度校验结果、所述超时校验结果以及所述CRC校验结果确定第一校验结果的步骤包括:若所述长度校验结果、所述超时校验结果以及所述CRC校验结果中的任一校验结果为校验不通过,则将第一校验结果设置为校验不通过;若所述长度校验结果、所述超时校验结果以及所述CRC校验结果均为校验通过,则将所述第一校验结果设置为校验通过。可理解地,在本实施例中,当擦除状态校验通过后,只有超时校验、长度校验以及CRC校验均通过才会进入后续步骤中的数据回读校验。
更进一步地,若所述第一校验结果为校验通过,表明超时校验、长度校验以及CRC校验均通过,则所述FPGA模块在将所述帧数据写入所述正常镜像子模块之后,从所述正常镜像子模块中读取所述升级配置数据,并将读取的所述升级配置数据与写入的所述升级配置数据进行数据回读校验得到第二校验结果,并将所述第二校验结果作为校验结果。可理解地,在本实施例中,通过擦除状态校验、CRC校验、超时校验、长度校验以及数据回答校验可提高FPGA升级的可靠性及安全性。
需要说明的是,在本实施例中,若所述校验结果为校验不通过,则所述FPGA模块将FPGA升级标识设置为升级失败,并返回执行所述FPGA模块接收所述ARM模块发送的擦除指令,并根据所述擦除指令对所述正常镜像子模块中的配置数据进行擦除的步骤;若所述校验结果为校验通过,则所述FPGA模块将所述FPGA升级标识设置为升级成功,并将所述FPGA升级标识发送给所述ARM模块,完成FPGA远程升级。
在一实施例中,例如本实施例中,参照图3,图3为本发明另一实施例提供的一种FPGA远程升级的步骤流程示意图,该远程升级方法包括步骤S200-S230,其中,步骤S210-S230与步骤S110-S130相同,着重介绍在步骤S210之前增加的步骤S200。
S200、所述FPGA模块获取并加载存储在所述FLASH模块中的配置数据。
在本发明实施例中,所述FPGA模块获取存储在所述正常镜像子模块中的配置数据,并检测所述正常镜像子模块中的配置数据是否满足异常损坏条件;若所述正常镜像子模块中的配置数据不满足所述异常损坏条件,则加载存储在所述正常镜像子模块中的配置数据;若所述正常镜像子模块中的配置数据满足所述异常损坏条件,则获取存储在所述升级镜像子模块中的配置数据,并加载存储在所述升级镜像子模块中的配置数据。在实际应用中,所述FPGA模块生成两个bin镜像文件,使其分别存储在所述FLASH模块的所述正常镜像子模块和所述升级镜像子模块中,所述升级镜像子模块中的为Golden image,所述正常镜像子模块中的为正常功能的image。需要说明的是,Golden image只有远程升级功能,正常功能的image不仅具有远程升级功能,还具有其它正常功能。在所述FPGA模块上电时默认启动正常功能的image,只有当正常功能的image启动失败后,才会触发fallback机制,返回Golden image进行启动,Golden image启动后需要进行远程升级以恢复系统正常功能。可理解地,启动正常功能的image后,系统可以正常工作,也可以随时进行远程升级,远程升级时,所述FPGA模块只对所述正常功能的image进行更新。为了确保Golden image的功能不被远程升级的操作以及其它的误动作影响,将Golden image的区域进行写保护。设备在出厂设置时,将Golden image的bin以及正常功能的image的bin用设计工具进行合并,具体地,如图4所示,Golden image放在所述FLASH模块的0地址,正常功能的image放在偏移地址,且偏移地址大于Golden image的数据大小。并将合并后的配置数据写入FLASH,开启偏移地址内的写保护功能。
进一步地,所述检测所述正常镜像子模块中的配置数据是否满足异常损坏条件的步骤包括:若所述正常镜像子模块中的配置数据没有帧头或没有CRC码或所述CRC码错误,则判定所述正常镜像子模块中的配置数据满足异常损坏条件;若所述正常镜像子模块中的配置数据有所述帧头,有所述CRC码且所述CRC码正确,则判定所述正常镜像子模块中的配置数据不满足所述异常损坏条件。具体地,判断所述正常镜像子模块中的配置数据是否有帧头;若所述正常镜像子模块中的配置数据没有所述帧头,则判定所述正常镜像子模块中的配置数据满足异常损坏条件;若所述正常镜像子模块中的配置数据有所述帧头,则判断所述正常镜像子模块中的配置数据是否有CRC码;若所述正常镜像子模块中的配置数据没有所述CRC码,则执行判定所述正常镜像子模块中的配置数据满足异常损坏条件的步骤;若所述正常镜像子模块中的配置数据有所述CRC码,则判断所述CRC码是否正确;若所述CRC码不正确,则执行判定所述正常镜像子模块中的配置数据满足异常损坏条件的步骤;若所述CRC码正确,则判定所述正常镜像子模块中的配置数据不满足所述异常损坏条件。
在一实施例中,例如本实施例中,参照图5,图5为本发明一实施例提供的一种FPGA远程升级的步骤流程简图,在图5中,FPGA模块上电启动,处于正常工作的状态;ARM模块接收到上位机远程传过来的升级配置文件,获取升级配置文件的,并获取升级配置文件中的数据长度;ARM模块向FPGA模块发出擦除指令,FPGA模块执行擦除操作,并进行擦除状态校验;ARM模块将数据长度和升级配置数据发送给FPGA模块,FPGA模块接收升级配置数据的同时,进行CRC校验、超时校验和数据长度校验;数据写入完成后,FPGA模块回读数据,并进行数据回读校验;若所有校验全部通过,则FPGA复位后远程升级完成,若任一校验不通过,则ARM模块重新发送擦除指令,开始尝试再次远程升级。
在一实施例中,例如本实施例中,参照图6,图6为本发明另一实施例提供的一种FPGA远程升级的步骤流程简图,在图6中,FPGA模块上电时默认从偏移地址开始读取配置数据,启动正常功能的image,开始正常工作;ARM模块收到上位机的bin配置文件(即为前面所述的升级配置文件)后,读取bin数据(即为前面所述的升级配置数据),开始执行远程升级操作,对FLASH模块从偏移地址开始到bin数据长度的范围内进行擦除操作,并将数据依次写入;中间过程种发生断电异常情况,ARM模块和FPGA模块无法工作,且无法获取任务进度;正常功能的image分区被损坏,可以分为三种情况:1、image有帧头标志,但是无CRC指示标志;2、image有帧头标志,有CRC指示标志但是CRC值是错误的;3、image没有帧头标志;这三种异常情况发生时,FPGA模块再次上电会导致加载正常功能的image失败,此时会执行fallback,即返回0读取配置数据,完成Golden image的镜像启动;Golden image的镜像同样支持远程升级功能,ARM模块识别到FPGA模块的版本为gold image版本后,再次对FPGA模块进行远程升级,当校验全部通过时FPGA模块配置完成,复位后远程升级完成,若任一校验不通过,则ARM模块重新发送擦除指令,开始尝试再次远程升级。
需要说明的是,在本实施例中,常规启动时FPGA模块直接加载正常功能的image,不需要加载Golden image,且FPGA模块在正常功能时可以随时进行远程升级,在正常功能的image损坏时,可以再次通过软件进行远程升级修复image,而在断电等无法再次软件操作的特殊情况下,重启后会自动启动Golden image,支持再次远程升级的功能。
综上所述,本实施例提供的FPGA远程升级方法及系统,复用系统原有的硬件资源,无需增加额外硬件开销;在将升级配置数据写入FLASH模块对FPGA模块进行升级过程中进行多重校验可确保远程升级的可靠性;采用Golden image和正常功能的image两种镜像方式可确保远程升级的安全性;当多重校验不通过时,可直接尝试进行再次升级,因此还具有快速启动和操作简单的优点。
以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。

Claims (10)

1.一种FPGA远程升级方法,应用于FPGA设备,所述FPGA设备包括FPGA模块以及与所述FPGA模块连接的ARM模块和FLASH模块,其特征在于,包括:
所述ARM模块接收上位机发送的升级配置文件,并获取所述升级配置文件的数据长度;
所述ARM模块接收所述FPGA模块返回的擦除状态若为擦除成功,则向所述FPGA模块发送所述数据长度;
所述FPGA模块在接收所述ARM模块发送的与所述升级配置文件相对应地升级配置数据的过程中及将所述升级配置数据写入所述FLASH模块后,根据所述数据长度对所述升级配置数据进行多重校验得到校验结果。
2.如权利要求1所述的FPGA远程升级方法,其特征在于,所述FLASH模块包括正常镜像子模块和升级镜像子模块,所述ARM模块接收所述FPGA模块返回的擦除状态若为擦除成功的步骤之前,还包括:
所述FPGA模块接收所述ARM模块发送的擦除指令,并根据所述擦除指令对所述正常镜像子模块中的配置数据进行擦除;
所述FPGA模块接收所述ARM模块发送的查询指令,并根据所述查询指令进行擦除状态校验以获取所述擦除状态。
3.如权利要求2所述的FPGA远程升级方法,其特征在于,所述FPGA模块在接收所述ARM模块发送的与所述升级配置文件相对应地升级配置数据的过程中及将所述升级配置数据写入所述FLASH模块后,根据所述数据长度对所述升级配置数据进行多重校验得到校验结果的步骤,包括:
所述FPGA模块依次接收所述ARM模块发送的与所述升级配置文件相对应地升级配置数据中的帧数据,并在接收所述帧数据的过程中,根据所述数据长度及两相邻所述帧数据之间的时间间隔对所述升级配置数据进行数据长度校验、接收超时校验以及CRC校验第一校验结果;
若所述第一校验结果为校验通过,则所述FPGA模块在将所述帧数据写入所述正常镜像子模块之后,从所述正常镜像子模块中读取所述升级配置数据,并将读取的所述升级配置数据与写入的所述升级配置数据进行数据回读校验得到第二校验结果,并将所述第二校验结果作为校验结果。
4.如权利要求3所述的FPGA远程升级方法,其特征在于,所述在接收所述帧数据的过程中,根据所述数据长度及两相邻所述帧数据之间的时间间隔对所述升级配置数据进行数据长度校验、接收超时校验以及CRC校验第一校验结果的步骤,包括:
在将接收所述帧数据的过程中,对所述帧数据进行CRC校验得到CRC校验结果;
根据两相邻所述帧数据之间的时间间隔对所述升级配置数据进行接收超时校验得到超时校验结果;
根据所述数据长度对所述升级配置数据进行数据长度校验得到长度校验结果,并根据所述长度校验结果、所述超时校验结果以及所述CRC校验结果确定第一校验结果。
5.如权利要求4所述的FPGA远程升级方法,其特征在于,所述根据所述长度校验结果、所述超时校验结果以及所述CRC校验结果确定第一校验结果的步骤,包括:
若所述长度校验结果、所述超时校验结果以及所述CRC校验结果中的任一校验结果为校验不通过,则将第一校验结果设置为校验不通过;
若所述长度校验结果、所述超时校验结果以及所述CRC校验结果均为校验通过,则将所述第一校验结果设置为校验通过。
6.如权利要求2所述的FPGA远程升级方法,其特征在于,所述方法还包括:
若所述校验结果为校验不通过,则所述FPGA模块将FPGA升级标识设置为升级失败,并返回执行所述FPGA模块接收所述ARM模块发送的擦除指令,并根据所述擦除指令对所述正常镜像子模块中的配置数据进行擦除的步骤;
若所述校验结果为校验通过,则所述FPGA模块将所述FPGA升级标识设置为升级成功,并将所述FPGA升级标识发送给所述ARM模块。
7.如权利要求2所述的FPGA远程升级方法,其特征在于,所述方法还包括:
所述FPGA模块获取并加载存储在所述FLASH模块中的配置数据。
8.如权利要求7所述的FPGA远程升级方法,其特征在于,所述所述FPGA模块获取并加载存储在所述FLASH模块中的配置数据的步骤,包括:
所述FPGA模块获取存储在所述正常镜像子模块中的配置数据,并检测所述正常镜像子模块中的配置数据是否满足异常损坏条件;
若所述正常镜像子模块中的配置数据不满足所述异常损坏条件,则加载存储在所述正常镜像子模块中的配置数据;
若所述正常镜像子模块中的配置数据满足所述异常损坏条件,则获取存储在所述升级镜像子模块中的配置数据,并加载存储在所述升级镜像子模块中的配置数据。
9.如权利要求8所述的FPGA远程升级方法,其特征在于,所述检测所述正常镜像子模块中的配置数据是否满足异常损坏条件的步骤,包括:
若所述正常镜像子模块中的配置数据没有帧头或没有CRC码或所述CRC码错误,则判定所述正常镜像子模块中的配置数据满足异常损坏条件;
若所述正常镜像子模块中的配置数据有所述帧头,有所述CRC码且所述CRC码正确,则判定所述正常镜像子模块中的配置数据不满足所述异常损坏条件。
10.一种FPGA远程升级系统,其特征在于,包括:上位机及FPGA设备,所述FPGA设备包括ARM模块、FPGA模块以及FLASH模块,其中,
所述上位机用于读取FPGA升级所需的升级配置文件,并将所述升级配置文件发送至所述FPGA设备;
所述ARM模块与所述上位机连接,用于接收所述上位机发送的所述升级配置文件,并获取所述升级配置文件的数据长度;
所述FPGA模块的一端与所述ARM模块连接,另一端与所述FLASH模块连接,用于接收所述ARM模块发送的所述数据长度及与所述升级配置文件相对应地升级配置数据,并在接收升级配置数据过程中和将所述升级配置数据写入所述FLASH模块后,根据所述数据长度对所述升级配置数据进行多重校验得到校验结果。
CN202310682598.6A 2023-06-09 2023-06-09 Fpga远程升级方法及系统 Pending CN116521207A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310682598.6A CN116521207A (zh) 2023-06-09 2023-06-09 Fpga远程升级方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310682598.6A CN116521207A (zh) 2023-06-09 2023-06-09 Fpga远程升级方法及系统

Publications (1)

Publication Number Publication Date
CN116521207A true CN116521207A (zh) 2023-08-01

Family

ID=87390449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310682598.6A Pending CN116521207A (zh) 2023-06-09 2023-06-09 Fpga远程升级方法及系统

Country Status (1)

Country Link
CN (1) CN116521207A (zh)

Similar Documents

Publication Publication Date Title
US8930931B2 (en) Information processing apparatus using updated firmware and system setting method
CN110928499B (zh) 一种芯片内嵌的flash存储器、芯片以及芯片的启动方法
US20100169709A1 (en) System Of Updating Firmware And Method Thereof, And Method Of Creating Firmware
US20080046780A1 (en) Nonvolatile memory
US20200250313A1 (en) Bios recovery and update
US20110093741A1 (en) Method for recovering bios and computer system thereof
US20230060908A1 (en) Computer system and method for booting up the computer system
CN114281394A (zh) 一种快速在线升级程序的方法、系统、设备及介质
CN108345464A (zh) 一种安卓系统的启动方法及安卓车机
CN114860279B (zh) 一种快速空片升级方法
CN115840579A (zh) Fpga远程更新方法、系统、贴片机及存储介质
CN114895845A (zh) 一种emmc数据存储的控制方法及嵌入式主板
CN111273928B (zh) 一种自升级的bootloader设计方法
CN116820528A (zh) 固件版本升级方法、装置、芯片和电子设备
CN117130672A (zh) 服务器启动流程控制方法、系统、终端及存储介质
CN116521207A (zh) Fpga远程升级方法及系统
WO2021012170A1 (zh) 固件启动方法、设备及计算机可读存储介质
CN116301995A (zh) 基于bootloader架构的固件升级方法
CN115904831A (zh) 一种服务器固件的启动方法及终端
JP2005284902A (ja) 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム
US11586504B2 (en) Electronic apparatus and boot method thereof
CN111783162B (zh) 数据保护实现方法、装置及计算机设备
CN114035813A (zh) 一种升级方法、装置、设备及存储介质
CN114496053A (zh) 数据异常检测方法、装置、设备及计算机可读存储介质
CN112596749A (zh) 一种系统开机自检和自修复的方法、装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination