CN106547596A - 一种高可靠性fpga远程升级方法 - Google Patents

一种高可靠性fpga远程升级方法 Download PDF

Info

Publication number
CN106547596A
CN106547596A CN201610975861.0A CN201610975861A CN106547596A CN 106547596 A CN106547596 A CN 106547596A CN 201610975861 A CN201610975861 A CN 201610975861A CN 106547596 A CN106547596 A CN 106547596A
Authority
CN
China
Prior art keywords
subregion
remote upgrade
fpga
data
configuration
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
Application number
CN201610975861.0A
Other languages
English (en)
Other versions
CN106547596B (zh
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.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
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 Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN201610975861.0A priority Critical patent/CN106547596B/zh
Publication of CN106547596A publication Critical patent/CN106547596A/zh
Application granted granted Critical
Publication of CN106547596B publication Critical patent/CN106547596B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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的远程升级,与无分区的FPGA主、被动升级方式相比,避免了硬件成本的增加,即使升级过程中断电或通讯中断,仍然可以再次启动,保证了远程升级功能的稳定可靠。

Description

一种高可靠性FPGA远程升级方法
技术领域
本发明属于FPGA远程升级技术领域,涉及一种高可靠性FPGA远程升级方法。
背景技术
现场可编程门阵列(Field Programmable GateArray,FPGA)具有集成度高、运行速度快、开发周期短等优点,已经在通信和信息处理领域得到了广泛应用。FPGA升级方式分为本地升级和远程升级,采用本地升级方式需要打开机箱,将下载线连接至所在板卡进行升级,相比之下,采用远程升级的方式无需拆装设备,更加方便灵活。
现有的FPGA远程升级多采用以下两种实现方式,即基于处理器的FPGA被动升级方式和基于配置数据全覆盖的FPGA主动升级方式。前者以处理器为配置核心,通过对外总线接收FPGA升级数据,经校验后存储,待数据传输完成后使用该数据对FPGA进行配置,完成升级。后者以FPGA为配置核心,通过内部逻辑实现对外总线访问,并使用校验后数据覆盖配置芯片内原全部配置数据,待覆盖完成后使用该数据对FPGA进行配置,完成升级。以上两种实现方式达到了FPGA配置数据更新的目的,可以在一定程序上满足系统的远程升级需求,但存在以下问题:基于处理器的FPGA被动升级方式虽然可以利用FLASH等存储芯片的额外存储空间对已收到的FPGA完整配置数据进行校验,从而增加远程升级的可靠性,但处理器和FLASH等芯片的添加无疑大大增加了硬件设计成本;而基于配置数据全覆盖的FPGA主动升级方式虽然避免了硬件成本的增加,但如果升级过程中断电或出现通信故障,将导致配置数据不完整,从而无法再次进行远程升级。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:提供一种高可靠性FPGA远程升级方法,降低FPGA远程升级的硬件成本,避免由于断电或通讯故障导致的无法再次升级问题。
(二)技术方案
为了解决上述技术问题,本发明提供一种高可靠性FPGA远程升级方法,其包括以下步骤:
步骤1:对FPGA配置芯片进行分区,记录分区起始地址;
步骤2:确定升级等待和数据接收超时参数;
步骤3:根据步骤1记录的分区起始地址、步骤2确定的升级等待和数据接收超时参数生成远程升级模块配置数据;
步骤4:生成正常功能模块配置数据;
步骤5:配置数据整合烧写;
步骤6:FPGA被配置为远程升级模块,使能远程升级;
步骤7:FPGA被重构为正常功能模块。
其中,所述步骤1中,对FPGA配置芯片在逻辑上分为三个分区,其中分区一用于存储步骤3生成的远程升级模块配置数据,分区二用于存储步骤4生成的或远程升级的正常功能模块配置数据,分区三用于存储分区二有效性标志
其中,所述分区一的分配空间大于等于步骤3生成的远程升级模块配置数据大小,分区二的分配空间大于等于步骤4生成的或远程升级的正常功能模块的最大配置数据大小。
其中,所述步骤1中,在分区完成后,记录分区二和分区三的起始地址,分区一的起始地址应为0。
其中,所述步骤2中,升级等待超时参数是从远程升级模块开始工作到确定不进行远程升级的时间参数,如果在此时间内没有接收到远程升级指令,则确定本次上电不进行远程升级;数据接收超时参数是指服务器从上一包远程升级数据发送结束到下一包远程升级数据发送开始的最长时间参数,如果FPGA在此时间内没有接收到下一包数据,则表明存在通讯故障。
其中,所述步骤3中,所述远程升级模块包括主控子模块、参数存储子模块、通讯子模块和重构与配置子模块;其中主控子模块负责从参数存储子模块中读取参数,完成各子模块初始化工作,并进行远程升级的流程控制;参数存储子模块存储分区起始地址和超时参数数据;通讯子模块负责对外接收远程升级数据,完成协议解析、数据校验、状态应答功能并将校验后数据传送给重构与配置子模块;重构与配置子模块由看门狗和配置芯片读写两部分构成,看门狗部分负责FPGA的超时重构,配置芯片读写部分负责将远程升级数据写入配置芯片的第二分区,并完成回读校验,同时负责分区三中分区二有效性标志的读写;在以上模块搭建完成后,通过FPGA开发环境生成相应的配置数据,该配置数据无法通过远程升级功能进行更新,且该数据大小应小于等于分区一空间大小,否则应对步骤1的分区重新调整。
其中,所述步骤4中,正常功能模块通过远程升级进行全部更新,该模块搭建完成后,通过FPGA开发环境生成相应的配置数据,该数据大小应小于等于分区二的空间大小,否则应对步骤1的分区重新调整。
其中,所述步骤5中,FPGA开发环境提供了配置文件转换整合工具,利用该工具将步骤3生成的远程升级模块配置数据和步骤4生成的正常功能模块配置数据进行整合;在进行地址分配时,远程升级模块配置数据起始地址为0,正常功能模块配置数据起始地址与分区二起始地址相同;如果按照步骤1的分区无法完成该步骤的配置数据整合功能,应重新对步骤1中的分区进行调整;在配置数据整合完成后,通过下载线将整合后数据烧写到FPGA配置芯片中。
其中,所述步骤6中,在FPGA上电后,系统使用分区一的远程升级模块配置数据配置FPGA,之后远程升级模块开始工作;FPGA首先获取配置芯片中分区一的写保护状态,如果该分区没有写保护,则添加写保护以避免被误修改;然后从参数存储子模块中读取参数,查询分区二有效性标志并根据参数和该标志配置看门狗,看门狗的超时参数设置为步骤2的升级等待超时参数,如果分区二有效性标志为有效性状态,则将看门狗配置为使用分区二配置数据进行重构,如果分区二有效性标志为无效状态,则将看门狗配置为使用分区一配置数据进行重构,如果分区二有效性标志不存在,则将该标志置为有效状态,并将看门狗配置为使用分区二配置数据进行重构;看门狗配置完成后,FPGA等待远程升级指令,在接收到远程升级指令后首先将分区二有效性标志置为无效,然后重置看门狗为使用分区一配置数据进行重构,并将超时参数设置为步骤2的数据接收超时参数,之后接收远程升级数据;在收到每包远程升级数据后,首先拆包、校验,然后将校验后正确数据通过重构与配置子模块中的配置芯片读写部分将数据写入配置芯片,并完成回读检验,之后再次接收远程升级数据,重复以上过程,直至完成所有数据接收;在数据接收完成后,将分区二有效性标志置为有效状态,然后将FPGA重构为升级后的分区二正常功能模块,正常功能模块开始工作;如果在等待远程升级指令或接收远程升级数据时超时,都会触发看门狗动作,看门狗根据之前的配置信息将FPGA重构为分区一的远程升级模块或分区二的正常功能模块。
其中,所述步骤7中,在远程升级模块工作时,如果分区二有效且在指定时间内没有接收到远程升级指令,或远程升级成功,FPGA都将重构为分区二正常功能模块;在正常功能模块工作时,FPGA不具备远程升级功能,但只需再次上电便可重新配置为分区一的远程升级模块,进行远程升级。
(三)有益效果
上述技术方案所提供的高可靠性FPGA远程升级方法,采用分区方式实现FPGA的远程升级,与无分区的FPGA主、被动升级方式相比,避免了硬件成本的增加,即使升级过程中断电或通讯中断,仍然可以再次启动,保证了远程升级功能的稳定可靠。该方法在实施过程中无需复杂的硬件连接,不需要对原有的FPGA电路设计进行大幅改动,具有较强的实用价值。
附图说明
图1是本发明一种高可靠性FPGA远程升级系统原理示意图。
图2是本发明一种高可靠性FPGA远程升级方法中远程升级模块和正常功能模块运行流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为了解决现有技术中存在的问题,本发明提供一种高可靠性FPGA远程升级方法,首先对FPGA配置芯片进行分区,记录分区地址,然后确定升级等待和数据接收超时参数,之后根据分区起始地址和超时参数生成远程升级模块配置数据;在正常功能模块配置数据生成后,将两模块配置数据进行整合并烧写配置芯片;FPGA上电后首先被配置为分区一远程升级模块功能,在该模块工作时,如果分区二有效且在指定时间内没有接收到远程升级指令,或远程升级成功,FPGA都将重构为分区二正常功能模块。
本方法采用分区方式实现FPGA的远程升级,与无分区的FPGA主、被动升级方式相比,避免了硬件成本的增加,即使升级过程中断电或通讯中断,仍然可以再次启动,保证了远程升级功能的稳定可靠。
参照图2所示,本实施例升级方法包括以下步骤:
步骤1:对FPGA配置芯片进行分区,记录分区起始地址。
对FPGA配置芯片进行分区,是对FPGA的配置芯片在逻辑上分为三个分区,其中分区一用于存储步骤3生成的远程升级模块配置数据,分区二用于存储步骤4生成的或远程升级的正常功能模块配置数据,分区三用于存储分区二有效性标志;分区一的分配空间应大于等于步骤3生成的远程升级模块配置数据大小,分区二的分配空间应大于等于步骤4生成的或远程升级的正常功能模块的最大配置数据大小;在分区完成后,应记录分区二和分区三的起始地址,分区一的起始地址应为0。
步骤2:确定升级等待和数据接收超时参数。
升级等待超时参数是从远程升级模块开始工作到确定不进行远程升级的时间参数,如果在此时间内没有接收到远程升级指令,则确定本次上电不进行远程升级;数据接收超时参数是指服务器从上一包远程升级数据发送结束到下一包远程升级数据发送开始的最长时间参数,如果FPGA在此时间内没有接收到下一包数据,则表明存在通讯故障;升级等待和数据接收超时参数的确定应以远程升级通信协议的选择和具体应用环境为依据。
步骤3:根据步骤1记录的分区起始地址、步骤2确定的升级等待和数据接收超时参数生成远程升级模块配置数据。
远程升级模块是完成远程升级功能的主要模块,该模块由主控子模块、参数存储子模块、通讯子模块和重构与配置子模块共4个子模块构成,其中主控子模块负责从参数存储子模块中读取参数,完成各子模块初始化工作,并进行远程升级的流程控制;参数存储子模块存储分区起始地址和超时参数等数据;通讯子模块负责对外接收远程升级数据,完成协议解析、数据校验、状态应答等功能并将校验后数据传送给重构与配置子模块;重构与配置子模块由看门狗和配置芯片读写两部分构成,看门狗部分负责FPGA的超时重构,配置芯片读写部分负责将远程升级数据写入配置芯片的第二分区,并完成回读校验,同时负责分区三中分区二有效性标志的读写;在以上模块搭建完成后,通过FPGA开发环境生成相应的配置数据,该配置数据无法通过远程升级功能进行更新,且该数据大小应小于等于分区一空间大小,否则应对步骤1的分区重新调整。
步骤4:生成正常功能模块配置数据。
正常功能模块是FPGA工作在非远程升级模式下时应有的功能,该模块可通过远程升级进行全部更新;该模块搭建完成后,同样通过FPGA开发环境生成相应的配置数据,该数据大小应小于等于分区二的空间大小,否则应对步骤1的分区重新调整。
步骤5:配置数据整合烧写。
FPGA开发环境提供了配置文件转换整合工具,利用该工具将步骤3生成的远程升级模块配置数据和步骤4生成的正常功能模块配置数据进行整合;在进行地址分配时,应保证远程升级模块配置数据起始地址为0,正常功能模块配置数据起始地址与分区二起始地址相同;如果按照步骤1的分区无法完成该步骤的配置数据整合功能,应重新对步骤1中的分区进行调整;在配置数据整合完成后,通过下载线将整合后数据烧写到FPGA配置芯片中。
步骤6:FPGA被配置为分区一远程升级模块,使能远程升级。
在FPGA上电后,系统默认使用分区一的远程升级模块配置数据配置FPGA,之后远程升级模块开始工作;FPGA首先获取配置芯片中分区一的写保护状态,如果该分区没有写保护,则添加写保护以避免被误修改;然后从参数存储子模块中读取参数,查询分区二有效性标志并根据参数和该标志配置看门狗,看门狗的超时参数设置为步骤2的升级等待超时参数,如果分区二有效性标志为有效性状态,则将看门狗配置为使用分区二配置数据进行重构,如果分区二有效性标志为无效状态,则将看门狗配置为使用分区一配置数据进行重构,如果分区二有效性标志不存在,则将该标志置为有效状态,并将看门狗配置为使用分区二配置数据进行重构;看门狗配置完成后,FPGA等待远程升级指令,在接收到远程升级指令后首先将分区二有效性标志置为无效,然后重置看门狗为使用分区一配置数据进行重构,并将超时参数设置为步骤2的数据接收超时参数,之后接收远程升级数据;在收到每包远程升级数据后,首先拆包、校验,然后将校验后正确数据通过重构与配置子模块中的配置芯片读写部分将数据写入配置芯片,并完成回读检验,之后再次接收远程升级数据,重复以上过程,直至完成所有数据接收;在数据接收完成后,将分区二有效性标志置为有效状态,然后将FPGA重构为升级后的分区二正常功能模块,正常功能模块开始工作;如果在等待远程升级指令或接收远程升级数据时超时,都会触发看门狗动作,看门狗根据之前的配置信息将FPGA重构为分区一的远程升级模块或分区二的正常功能模块。
步骤7:FPGA被重构为分区二正常功能模块。
在远程升级模块工作时,如果分区二有效且在指定时间内没有接收到远程升级指令,或远程升级成功,FPGA都将重构为分区二正常功能模块;在正常功能模块工作时,FPGA不具备远程升级功能,但只需再次上电便可重新配置为分区一的远程升级模块,进行远程升级。
下面以具体的实例对本发明进行进一步详细说明。
本实例的FPGA和配置芯片分别选用Altera公司的EP3C55和同公司的EPCS128,使用Quartus II开发环境,使用ALTREMOTE_UPDATE、ALTASMI_PARALLEL和ROM:1-PORT共3种IP核,其中ALTREMOTE_UPDATE提供看门狗和重构功能,ALTASMI_PARALLEL用于实现配置芯片读写,ROM:1-PORT用于存储分区起始地址和超时参数。
本实例的应用环境为:FPGA所在板卡无处理器,通过配置芯片以主动串行(ActiveSerial,AS)方式进行配置,板卡主要功能为ARINC429通讯数据转发,但提供RS422通讯接口用于远程升级。该板卡所在设备处于整机系统内部,装机后不允许拆卸。由于设备拆装限制,如果采用现有的基于配置数据全覆盖的FPGA主动升级方式,一旦升级过程中板卡断电或出现通讯异常,将无法再次升级,必须拆卸设备,显然无法满足系统的远程升级可靠性要求。通过本发明方法则可以满足设计需求,具体实例步骤如下:
步骤1、对FPGA配置芯片进行分区,记录分区起始地址;本实例中使用EPCS128配置芯片,对该芯片对逻辑上分为三个区,根据具体应用环境,确定三个分区的起始地址为A1、A2和A3,其中A1=0;
步骤2、确定升级等待和数据接收超时参数;根据远程升级服务器通过RS422总线发送远程升级指令和数据的实际情况,确定升级等待和数据接收超时参数分别为T1和T2。
步骤3、根据起始地址和超时参数生成远程升级模块配置数据;在Quartus II应用环境下,使用ALTREMOTE_UPDATE和ALTASMI_PARALLEL IP核构建重构与配置子模块,使用ROM:1-PORT IP核构建参数存储子模块并使用A1、A2、A3和T1、T2数据对ROM:1-PORT IP核进行初始化,使用RS422协议解析和CRC校验逻辑构建通讯子模块,使用状态控制逻辑构建主控子模块,并将主控子模块分别与参数存储、通讯和重构与配置三个子模块分别连接,将通讯子模块对外连接RS422通讯接口,对内连接重构与配置子模块的配置芯片读写部分;在以上模块构建完成后,利用开发环境生成配置数据,长度为L1,如果A2-A1<L1,则应对步骤1的分区重新进行调整。
步骤4、生成正常功能模块配置数据;在Quartus II下实现ARINC429通讯数据转发功能,构建正常功能模块,在构建完成后利用开发环境生成相应配置数据,长度为L2,如果A3-A2<L2,则应对步骤1的分区重新进行调整。
步骤5、配置数据整合烧写;利用Quartus II提供的FPGA配置文件转换工具Convert Programming File将步骤3生成的远程升级模块配置数据和步骤4生成的正常功能模块配置数据进行整合,整合为一个FPGA配置芯片烧写文件,之后通过下载线将该文件写入EPCS128配置芯片;在使用配置文件转换工具进行数据整合时,指定远程升级模块配置数据存放的起始地址为A1,正常功能模块配置数据存放的起始地址为A2。
步骤6、FPGA被配置为分区一远程升级模块,进行远程升级;在FPGA上电后,系统默认使用分区一的远程升级模块配置数据配置FPGA,之后远程升级模块开始工作;在主控子模块的状态控制下,首先获取配置芯片中分区一的写保护状态,如果该分区没有写保护,则通过重构与配置子模块为该区域添加写保护;然后从ROM:1-PORT中读取A1、A2、A3和T1、T2,并通过重构与配置子模块读取分区三中的分区二有效性标志M;如果M为有效状态,则将A2设为重构地址写入ALTREMOTE_UPDATE IP核,如果M为无效状态,则将A1设为重构地址写入ALTREMOTE_UPDATE IP核,如果M不存在,则表明远程升级模块是在配置芯片烧写后第一次运行,首先通过重构与配置子模块将配置芯片分区三中的M置为有效状态,再将A2设为重构地址写入ALTREMOTE_UPDATE IP核,在重构地址写入后使用T1配置并使能看门狗;看门狗配置完成后,FPGA等待远程升级指令,在接收到远程升级指令后首先将M置为无效,然后重置看门狗重构地址为A1、超时为T2,之后通过RS422总线接收远程升级数据;在收到每包远程升级数据后,首先拆包、然后进行CRC校验,如果校验正确,则首先将该数据通过重构与配置子模块写入EPCS128,然后回读检验并向服务器发送正确接收应答信号,之后再次接收远程升级数据,如果校验错误,则向服务器发送错误接收应答信号,等待服务器重发;重复以上过程,直至完成所有数据接收,之后将M置为有效状态,将重构地址设置为A2,使能重构,正常功能模块开始工作;如果在等待远程升级指令或接收远程升级数据时超过相应的时间T1或T2,都会触发看门狗动作,看门狗根据之前的配置信息将FPGA重构为分区一的远程升级模块或分区二的正常功能模块。
步骤7、FPGA被重构为分区二正常功能模块;在远程升级模块工作时,如果M为有效状态且在T1时间内没有接收到远程升级指令,或远程升级成功,FPGA都将重构为分区二正常功能模块;在正常功能模块工作时,FPGA只进行ARINC429通讯数据转发,无法进行远程升级,但只需再次上电便可重新配置为分区一的远程升级模块,进行远程升级。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种高可靠性FPGA远程升级方法,其特征在于,包括以下步骤:
步骤1:对FPGA配置芯片进行分区,记录分区起始地址;
步骤2:确定升级等待和数据接收超时参数;
步骤3:根据步骤1记录的分区起始地址、步骤2确定的升级等待和数据接收超时参数生成远程升级模块配置数据;
步骤4:生成正常功能模块配置数据;
步骤5:配置数据整合烧写;
步骤6:FPGA被配置为远程升级模块,使能远程升级;
步骤7:FPGA被重构为正常功能模块。
2.如权利要求1所述的高可靠性FPGA远程升级方法,其特征在于,所述步骤1中,对FPGA配置芯片在逻辑上分为三个分区,其中分区一用于存储步骤3生成的远程升级模块配置数据,分区二用于存储步骤4生成的或远程升级的正常功能模块配置数据,分区三用于存储分区二有效性标志。
3.如权利要求2所述的高可靠性FPGA远程升级方法,其特征在于,所述分区一的分配空间大于等于步骤3生成的远程升级模块配置数据大小,分区二的分配空间大于等于步骤4生成的或远程升级的正常功能模块的最大配置数据大小。
4.如权利要求3所述的高可靠性FPGA远程升级方法,其特征在于,所述步骤1中,在分区完成后,记录分区二和分区三的起始地址,分区一的起始地址应为0。
5.如权利要求4所述的高可靠性FPGA远程升级方法,其特征在于,所述步骤2中,升级等待超时参数是从远程升级模块开始工作到确定不进行远程升级的时间参数,如果在此时间内没有接收到远程升级指令,则确定本次上电不进行远程升级;数据接收超时参数是指服务器从上一包远程升级数据发送结束到下一包远程升级数据发送开始的最长时间参数,如果FPGA在此时间内没有接收到下一包数据,则表明存在通讯故障。
6.如权利要求5所述的高可靠性FPGA远程升级方法,其特征在于,所述步骤3中,所述远程升级模块包括主控子模块、参数存储子模块、通讯子模块和重构与配置子模块;其中主控子模块负责从参数存储子模块中读取参数,完成各子模块初始化工作,并进行远程升级的流程控制;参数存储子模块存储分区起始地址和超时参数数据;通讯子模块负责对外接收远程升级数据,完成协议解析、数据校验、状态应答功能并将校验后数据传送给重构与配置子模块;重构与配置子模块由看门狗和配置芯片读写两部分构成,看门狗部分负责FPGA的超时重构,配置芯片读写部分负责将远程升级数据写入配置芯片的第二分区,并完成回读校验,同时负责分区三中分区二有效性标志的读写;在以上模块搭建完成后,通过FPGA开发环境生成相应的配置数据,该配置数据无法通过远程升级功能进行更新,且该数据大小应小于等于分区一空间大小,否则应对步骤1的分区重新调整。
7.如权利要求6所述的高可靠性FPGA远程升级方法,其特征在于,所述步骤4中,正常功能模块通过远程升级进行全部更新,该模块搭建完成后,通过FPGA开发环境生成相应的配置数据,该数据大小应小于等于分区二的空间大小,否则应对步骤1的分区重新调整。
8.如权利要求7所述的高可靠性FPGA远程升级方法,其特征在于,所述步骤5中,FPGA开发环境提供了配置文件转换整合工具,利用该工具将步骤3生成的远程升级模块配置数据和步骤4生成的正常功能模块配置数据进行整合;在进行地址分配时,远程升级模块配置数据起始地址为0,正常功能模块配置数据起始地址与分区二起始地址相同;如果按照步骤1的分区无法完成该步骤的配置数据整合功能,应重新对步骤1中的分区进行调整;在配置数据整合完成后,通过下载线将整合后数据烧写到FPGA配置芯片中。
9.如权利要求8所述的高可靠性FPGA远程升级方法,其特征在于,所述步骤6中,在FPGA上电后,系统使用分区一的远程升级模块配置数据配置FPGA,之后远程升级模块开始工作;FPGA首先获取配置芯片中分区一的写保护状态,如果该分区没有写保护,则添加写保护以避免被误修改;然后从参数存储子模块中读取参数,查询分区二有效性标志并根据参数和该标志配置看门狗,看门狗的超时参数设置为步骤2的升级等待超时参数,如果分区二有效性标志为有效性状态,则将看门狗配置为使用分区二配置数据进行重构,如果分区二有效性标志为无效状态,则将看门狗配置为使用分区一配置数据进行重构,如果分区二有效性标志不存在,则将该标志置为有效状态,并将看门狗配置为使用分区二配置数据进行重构;看门狗配置完成后,FPGA等待远程升级指令,在接收到远程升级指令后首先将分区二有效性标志置为无效,然后重置看门狗为使用分区一配置数据进行重构,并将超时参数设置为步骤2的数据接收超时参数,之后接收远程升级数据;在收到每包远程升级数据后,首先拆包、校验,然后将校验后正确数据通过重构与配置子模块中的配置芯片读写部分将数据写入配置芯片,并完成回读检验,之后再次接收远程升级数据,重复以上过程,直至完成所有数据接收;在数据接收完成后,将分区二有效性标志置为有效状态,然后将FPGA重构为升级后的分区二正常功能模块,正常功能模块开始工作;如果在等待远程升级指令或接收远程升级数据时超时,都会触发看门狗动作,看门狗根据之前的配置信息将FPGA重构为分区一的远程升级模块或分区二的正常功能模块。
10.如权利要求9所述的高可靠性FPGA远程升级方法,其特征在于,所述步骤7中,在远程升级模块工作时,如果分区二有效且在指定时间内没有接收到远程升级指令,或远程升级成功,FPGA都将重构为分区二正常功能模块;在正常功能模块工作时,FPGA不具备远程升级功能,但只需再次上电便可重新配置为分区一的远程升级模块,进行远程升级。
CN201610975861.0A 2016-11-07 2016-11-07 一种fpga远程升级方法 Active CN106547596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610975861.0A CN106547596B (zh) 2016-11-07 2016-11-07 一种fpga远程升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610975861.0A CN106547596B (zh) 2016-11-07 2016-11-07 一种fpga远程升级方法

Publications (2)

Publication Number Publication Date
CN106547596A true CN106547596A (zh) 2017-03-29
CN106547596B CN106547596B (zh) 2019-07-26

Family

ID=58394262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610975861.0A Active CN106547596B (zh) 2016-11-07 2016-11-07 一种fpga远程升级方法

Country Status (1)

Country Link
CN (1) CN106547596B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107819656A (zh) * 2017-11-21 2018-03-20 上海航天测控通信研究所 一种基于rs422和can总线的fpga远程在线调配装置及方法
CN108897558A (zh) * 2018-06-21 2018-11-27 大唐电信(成都)信息技术有限公司 基于以太网协议的安全的fpga远程在线升级方法
CN109189449A (zh) * 2018-10-24 2019-01-11 天津津航计算技术研究所 一种基于can总线的多fpga远程升级方法
CN109358861A (zh) * 2018-10-08 2019-02-19 北京无线电测量研究所 Fpga程序远程加载方法及系统
CN109901117A (zh) * 2019-03-13 2019-06-18 苏州理工雷科传感技术有限公司 一种雷达重启方法及装置
CN110737452A (zh) * 2019-09-30 2020-01-31 清能德创电气技术(北京)有限公司 一种fpga固件在线升级方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703803B (zh) * 2021-07-29 2023-12-12 上海微波技术研究所(中国电子科技集团公司第五十研究所) 基于fpga的远程升级系统、方法及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622280A (zh) * 2011-01-06 2012-08-01 苏州科达科技有限公司 一种基于双文件系统的软件版本升级的控制方法及装置
CN102654839A (zh) * 2012-04-18 2012-09-05 华为技术有限公司 一种实现现场可编程门阵列可靠升级的方法及装置
CN105404538A (zh) * 2015-12-25 2016-03-16 广州慧睿思通信息科技有限公司 一种fpga的加载和升级目标代码的装置及方法
CN105786510A (zh) * 2016-02-29 2016-07-20 深圳市美贝壳科技有限公司 一种单片机的升级分区系统和安全升级方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622280A (zh) * 2011-01-06 2012-08-01 苏州科达科技有限公司 一种基于双文件系统的软件版本升级的控制方法及装置
CN102654839A (zh) * 2012-04-18 2012-09-05 华为技术有限公司 一种实现现场可编程门阵列可靠升级的方法及装置
CN105404538A (zh) * 2015-12-25 2016-03-16 广州慧睿思通信息科技有限公司 一种fpga的加载和升级目标代码的装置及方法
CN105786510A (zh) * 2016-02-29 2016-07-20 深圳市美贝壳科技有限公司 一种单片机的升级分区系统和安全升级方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107819656A (zh) * 2017-11-21 2018-03-20 上海航天测控通信研究所 一种基于rs422和can总线的fpga远程在线调配装置及方法
CN107819656B (zh) * 2017-11-21 2020-04-28 上海航天测控通信研究所 一种基于rs422和can总线的fpga远程在线调配装置及方法
CN108897558A (zh) * 2018-06-21 2018-11-27 大唐电信(成都)信息技术有限公司 基于以太网协议的安全的fpga远程在线升级方法
CN109358861A (zh) * 2018-10-08 2019-02-19 北京无线电测量研究所 Fpga程序远程加载方法及系统
CN109189449A (zh) * 2018-10-24 2019-01-11 天津津航计算技术研究所 一种基于can总线的多fpga远程升级方法
CN109189449B (zh) * 2018-10-24 2022-02-15 天津津航计算技术研究所 一种基于can总线的多fpga远程升级方法
CN109901117A (zh) * 2019-03-13 2019-06-18 苏州理工雷科传感技术有限公司 一种雷达重启方法及装置
CN110737452A (zh) * 2019-09-30 2020-01-31 清能德创电气技术(北京)有限公司 一种fpga固件在线升级方法及系统

Also Published As

Publication number Publication date
CN106547596B (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN106547596A (zh) 一种高可靠性fpga远程升级方法
US11379139B2 (en) Multi-partitioning of memories
CN104049687B (zh) 基于fpga的嵌入式立方星星务计算机及其重构方法
CN112416840B (zh) 一种计算资源的远程映射方法、装置、设备及存储介质
CN110383246A (zh) 虚拟机控制可编程硬件的单独子集
CN106484581B (zh) 空间辐射环境下可编程soc器件单粒子翻转检测系统及方法
CN103647820B (zh) 用于分布式集群系统的仲裁方法及仲裁装置
CN109189449B (zh) 一种基于can总线的多fpga远程升级方法
CN104471553B (zh) 用于共享地址装置的聚合的方法、装置和系统
CN104572384B (zh) 一种芯片多fpga验证方法
CN101211266A (zh) 一种实现fpga自动下载和在线升级的方法
CN105404596B (zh) 一种数据传输方法、装置及系统
CN108076457A (zh) 一种基于Linux系统的智慧安全型电网专用无线通信模块
CN104714804A (zh) 一种轨道交通自动售检票系统读写器中间件
CN104111709A (zh) 服务器系统
CN109634533A (zh) 一种ecu信息转存方法及相关装置
CN103812739B (zh) Fpga与dsp的通信装置和通信方法
CN107273316B (zh) 并行flash访问系统和方法
CN116860301A (zh) 芯片测试机的fpga配置方法及装置
CN105512032B (zh) 一种中间库虚拟控制测试方法及其系统
CN107623699A (zh) 一种基于云环境的加密系统
CN107766146A (zh) 用于资源重配置的方法以及相应的设备
CN112463087A (zh) Led显示屏配屏方法和装置
CN109491949A (zh) 基于Zynq的动态可重构框架及方法
CN109039765A (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
GR01 Patent grant
GR01 Patent grant