CN115794488A - 一种fpga程序备份保护方法及系统 - Google Patents
一种fpga程序备份保护方法及系统 Download PDFInfo
- Publication number
- CN115794488A CN115794488A CN202211455700.0A CN202211455700A CN115794488A CN 115794488 A CN115794488 A CN 115794488A CN 202211455700 A CN202211455700 A CN 202211455700A CN 115794488 A CN115794488 A CN 115794488A
- Authority
- CN
- China
- Prior art keywords
- fpga
- data
- dsp
- program
- chip
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供了一种FPGA程序备份保护方法及系统,该方法针包括以下步骤:通过DSP软件读取FPGA芯片中的特征字;若DSP软件未读取到特征字,则DSP软件从FLASH芯片中读取存储FPGA的备份保护程序并保存至第一设定区域;DSP软件将第一设定区域内的指定长度的数据写入达到PROM芯片中;DSP软件按照指令长度将PROM芯片中的数据回读存储在第二设定区域;判断第一设定区域和第二设定区域的数据是否相符,若相符则判断备份启动成功。通过备份保护程序来实现FPGA功能的自我恢复,从而达到恢复系统或者输出系统故障状态信息等目的。不影响原有系统的硬件组成以及正常工作流程,即不影响原系统的稳定性。
Description
技术领域
本申请涉及软件技术领域,尤其涉及一种FPGA程序备份保护方法及系统。
背景技术
嵌入式系统一种常见的硬件架构是DSP+FPGA的组合架构模式,包括单DSP+单FPGA方式,或者多DSP+单FPGA的方式,该硬件系统框架充分发挥了FPGA芯片的硬件可编程特性,以及DSP芯片的高效率数据处理能力。
当前的产品发展趋势是要求具备程序在线更新能力,以及操作异常时具备再功能恢复能力,而不需对产品进行开盖处理等具有破坏性的操作。DSP+FPGA的组合架构模式中的FPGA软件程序一般存储在专用的PROM芯片中,上电时FPGA芯片自动从专用的PROM中加载程序,完成启动工作。当FPGA在程序下载更新PROM时,会先擦除PROM,然后将接收到的存储数据依次写入到PROM中。若程序下载过程中异常断电,或者其他异常操作,将导致PROM中的程序被破坏或者更新不完整时,下次上电后FPGA将无法正常运行。而当前FPGA性能强大,往往集成了各类通讯处理及控制功能,比如串口通讯,CAN通讯,1553B等,当FPGA启动异常将会造成产品功能异常,甚至产品失去对外的通讯的能力,导致产品完全瘫痪。
发明内容
本申请提供了一种FPGA程序备份保护方法及系统,改善系统的稳定性。
本申请提供了一种FPGA程序备份保护方法,该方法包括以下步骤:
通过DSP软件读取FPGA芯片中的特征字;该特征字表征FPGA软件启动正常;
若DSP软件未读取到所述特征字,则DSP软件从FLASH芯片中读取存储FPGA的备份保护程序并保存至第一设定区域;
DSP软件将所述第一设定区域内的指定长度的数据写入达到PROM芯片中;
DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;
判断所述第一设定区域和所述第二设定区域的数据是否相符,若相符则判断备份启动成功。
在上述技术方案中,DSP软件在判断出异常后,开始使用备份保护程序来实现FPGA功能的自我恢复,从而达到恢复系统或者输出系统故障状态信息等目的。本方案不影响原有系统的硬件组成以及正常工作流程,即不影响原系统的稳定性,仅在异常情况下实现需要功能。
在一个具体的可实施方案中,还包括:
判断所述第一设定区域和所述第二设定区域的数据是否相符,若不相符,则重复以下步骤:
DSP软件从FLASH芯片中读取存储FPGA的备份保护软件并保存至第一设定区域;
DSP软件将所述设定区域内的指定长度的数据写入达到PROM芯片中;
DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;
判断所述第一设定区域和所述第二设定区域的数据是否相符。
在一个具体的可实施方案中,还包括:
在备份启动成功后,延时等待2s后,设置状态字为特征值来代表此次备份启动FPGA,并执行DSP后续功能。
在一个具体的可实施方案中,所述方法还包括:
在若DSP软件未读取到所述特征字时,还可包括以下步骤:
通过上位机选择FPGA的程序文件作为FPGA的备份保护程序,将文件按照FPGA下载协议格式分包发送DSP软件;
在DSP软件接收所述文件时,DSP软件接收分帧接收通讯数据并每帧校验,将通过校验的数据存储在所述第一设定区域。
在一个具体的可实施方案中,所述方法还包括:
通过DSP软件在接收到尾帧协议格式时,判断本次接收到所有有效数据字字节总计数是否完整;
在判断本次接收到所有有效数字字节与总计数不相符时,退出下载操作,上报数据总校验失败。
在一个具体的可实施方案中,所述在DSP软件接收所述文件时,DSP软件接收分帧接收通讯数据并每帧校验,将通过校验的数据存储在所述第一设定区域,具体为:
DSP软件接收每帧数据并校验解码,将解码后的数据存储在所述第一设定区域。
在一个具体的可实施方案中,还包括:
在将所述将通过校验的数据存储在所述第一设定区域之后,将第一设定区域的指定长度的数据写入第二设定区域;
判断第一设定区域的数据是否与第二设定区域的数据相符,若不相符则退出下载。
第二方面,提供了一种FPGA程序备份保护系统,该系统包括:
FLASH芯片;包括第一设定区域和第二设定区域;
DSP芯片:用于通过DSP软件读取FPGA芯片中的特征字;该特征字表征FPGA软件启动正常;若DSP软件未读取到所述特征字,则DSP软件从FLASH芯片中读取存储FPGA的备份保护程序并保存至第一设定区域;DSP软件将所述第一设定区域内的指定长度的数据写入达到PROM芯片中;DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;判断所述第一设定区域和所述第二设定区域的数据是否相符,若相符则判断备份启动成功。
在上述技术方案中,DSP软件在判断出异常后,开始使用备份保护程序来实现FPGA功能的自我恢复,从而达到恢复系统或者输出系统故障状态信息等目的。本方案不影响原有系统的硬件组成以及正常工作流程,即不影响原系统的稳定性,仅在异常情况下实现需要功能。
在一个具体的可实施方案中,所述DSP芯片还用于判断所述第一设定区域和所述第二设定区域的数据是否相符,若不相符,则DSP软件重复从FLASH芯片中读取存储FPGA的备份保护软件并保存至第一设定区域;DSP软件将所述设定区域内的指定长度的数据写入达到PROM芯片中;DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;判断所述第一设定区域和所述第二设定区域的数据是否相符。
在一个具体的可实施方案中,所述DSP芯片还用于在备份启动成功后,延时等待2s后,设置状态字为特征值来代表此次备份启动FPGA,并执行DSP后续功能。
第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述的FPGA程序备份保护方法。
第四方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任一所述FPGA程序备份保护方法。
第五方面,还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行本申请上述任一项所述的FPGA程序备份保护方法。
另外,第三方面至第五方面中任一种可能设计方式所带来的技术效果可参见方法部分中不同设计方式带来的效果,在此不再赘述。
附图说明
图1是本发明实施例中的DSP+FPGA的接口关系图;
图2是本发明实施例中FPGA软件启动工作流程;
图3是本发明实施例中DSP软件启动FPGA备份程序的工作流程;
图4是FPGA备份程序下载方法;
图5示出了本实施例所提供的一种电子设备硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。
需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使
用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
本发明目的是基于常用的DSP+FPGA的组合架构模式下,在不改变原有系统的正常工作流程及系统可靠性能下,提出一种FPGA程序备份保护的方案,以及相应的备份程序启动和存储等的实现方法,解决FPGA程序更新过程中的异常情况,导致FPGA启动异常而产品功能完全瘫痪的情况,实现FPGA程序的自我恢复功能,提高产品的可靠性和可维护性。
在本申请实施例提供的方法中,基于常用的DSP+FPGA的组合硬件架构模式,DSP芯片与FLASH芯片、FPGA芯片与PROM芯片正常连接;将DSP芯片的5个GPIO口分别连接到PROM芯片的JTAG上和复位启动引脚,使得DSP芯片具备更新PROM中程序的能力和重启能力;将DSP芯片的数据总线、地址总线以及控制总线与FPGA芯片的IO引脚相连,使得DSP程序可以监测FPGA程序正常启动与否;在FLASH芯片中定义一块地址区域,用于存储FPGA的备份保护程序。
如图1所示,DSP芯片以FT-C6713为例,具有20根地址总线,32根数据总线。FLASH芯片以SM29LV256MC为例,用于存储DSP程序及FPGA备份保护程序,具有16根数据总线,24根地址总线,容量为256Mbit,每个最小扇区为128Kbit。SDRAM芯片以SM48LC16M32为例,用于缓存中间数据,容量为512Mbit。PROM芯片以SM32PV048为例,用于存储FPGA正式程序,容量有32Mbit。本申请实施例中的FLASH、SDRAM以及FPGA是DSP芯片不同片区的外设,DSP的数据总线、地址总线、控制线分别与SDRAM、FLASH和FPGA相连。其中SDRAM位于DSP的CE0区,地址范围为0x80000000~0x84000000;FLASH位于DSP的CE1区,地址范围为0x90000000~0x9fffffff。FPGA位于DSP的CE2区,地址范围为0xA0000000~0xAfffffff。FPGA芯片的程序存储在PROM中,在上电或复位后,PROM通过D0线将程序数据串行传输到FPGA芯片中,传输完成后启动FPGA程序。DSP芯片引出4个GPIO口连接的PROM芯片的JTAG接口,可以实现对PROM的读写操作,DSP芯片引出1个个GPIO口连接的PROM和FPGA的复位引脚,可以实现对FPGA的重启控制。
表1:DSP内的地址分配及描述
本发明的设计思想是,在正常情况下,该系统按照原有的流程启动并实现相关功能。当FPGA因为某些因素导致程序异常,启动失败时,此时整个系统可能失去正常的通讯功能,外部将无法获取系统信息或者恢复系统;本发明提出一种方案,DSP软件在判断出异常后,开始使用备份保护程序来实现FPGA功能的自我恢复,从而达到恢复系统或者输出系统故障状态信息等目的。本方案不影响原有系统的硬件组成以及正常工作流程,即不影响原系统的稳定性,仅在异常情况下实现需要功能。下面详细说明一下本申请实施例提供的FPGA程序备份保护方法。
本申请提供了一种FPGA程序备份保护方法,该方法包括以下步骤:
步骤001:通过DSP软件读取FPGA芯片中的特征字;该特征字表征FPGA软件启动正常;
步骤002:若DSP软件未读取到所述特征字,则DSP软件从FLASH芯片中读取存储FPGA的备份保护程序并保存至第一设定区域;
步骤003:DSP软件将所述第一设定区域内的指定长度的数据写入达到PROM芯片中;
步骤004:DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;
步骤005:判断所述第一设定区域和所述第二设定区域的数据是否相符,若相符则判断备份启动成功。
具体的,在判断所述第一设定区域和所述第二设定区域的数据是否相符时,若不相符,则重复以下步骤:
DSP软件从FLASH芯片中读取存储FPGA的备份保护软件并保存至第一设定区域;
DSP软件将所述设定区域内的指定长度的数据写入达到PROM芯片中;
DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;
判断所述第一设定区域和所述第二设定区域的数据是否相符。
在备份启动成功后,延时等待2s后,设置状态字为特征值来代表此次备份启动FPGA,并执行DSP后续功能。
DSP软件在判断出异常后,开始使用备份保护程序来实现FPGA功能的自我恢复,从而达到恢复系统或者输出系统故障状态信息等目的。本方案不影响原有系统的硬件组成以及正常工作流程,即不影响原系统的稳定性,仅在异常情况下实现需要功能。
应理解,除了上述示例出来的本地保存FPGA的备份保护程序外,还可通过在下下载的方式实现启用备用程序。如以下步骤:
步骤01:在若DSP软件未读取到所述特征字时,还可包括以下步骤:
步骤02:通过上位机选择FPGA的程序文件作为FPGA的备份保护程序,将文件按照FPGA下载协议格式分包发送DSP软件;
步骤03:在DSP软件接收所述文件时,DSP软件接收分帧接收通讯数据并每帧校验,将通过校验的数据存储在所述第一设定区域。
具体的,DSP软件接收每帧数据并校验解码,将解码后的数据存储在所述第一设定区域。
另外,在通过DSP软件在接收到尾帧协议格式时,判断本次接收到所有有效数据字字节总计数是否完整;在判断本次接收到所有有效数字字节与总计数不相符时,退出下载操作,上报数据总校验失败。
或者,在将所述将通过校验的数据存储在所述第一设定区域之后,将第一设定区域的指定长度的数据写入第二设定区域;判断第一设定区域的数据是否与第二设定区域的数据相符,若不相符则退出下载,并且上报数据总校验失败。
为方便理解本申请的上述方法,下面结合具体的附图详细说明本方法的整个流程。
本发明所涉及的FPGA软件正常启动工作步骤:
步骤1、产品上电复位后,FPGA芯片自动从PROM芯片中加载FPGA程序;
步骤2、FPGA程序加载成功后,向特定寄存器写入特征字,代表FPGA启动正常。
如图2中所示,实施例的FPGA软件在正常启动后会向FPGA寄存器1写入0xA5,来表示FPGA软件已经正常工作,供DSP读取判断处理。本实施例的FPGA软件正常启动包含以下步骤:
步骤1、产品上电复位或控制复位后,FPGA初始化后,自动从PROM的D0脚串行加载程序数据;
步骤2、FPGA完成程序数据加载后置DONE引脚为高,并开始启动程序;
步骤3、FPGA向FPGA寄存器1写0xA5值,来表示FPGA程序已正常启动,同时也并行其他功能模块,FPGA软件的启动流程到此完成。
本发明所述的DSP软件启动FPGA备份保护程序的工作步骤:
步骤1、产品上电复位后,DSP芯片自动从FLASH芯片中加载DSP程序;
步骤2、DSP程序加载成功后,延时等待2s;
步骤3、DSP程序读取FPGA指定寄存器的值,判断是否为特征字;
步骤4、若读出值为特征字,则FPGA启动正常,结束启动FPGA备份保护流程,可以继续执行DSP其他功能。否则需启动FPGA备份保护程序,DSP从FLASH中读出存储FPGA的备份保护程序到SDRAM空间1区域;
步骤5、执行DSP更新PROM的功能函数,通过DSP的4个GPIO口模拟PROM的JTAG接口时序,实现将SDRAM空间1区域的指定长度的数据写入到PROM芯片中;
步骤6、执行DSP回读PROM中数据的功能函数,通过DSP的4个GPIO口模拟PROM的JTAG接口时序,实现将PROM中指定长度的数据回读存储到SDRAM空间2区域;
步骤7、DSP软件按照指令长度依次对比判断写入和读出的数据是否相符,即判断SDRAM空间1区域与SDRAM空间2区域的数据是否相等;
步骤8、若写入和读出的结果判断不同,则DSP软件跳转到步骤5再次执行;否则是更新成功,DSP软件通过1个GPIO口向PROM的启动复位引脚发送脉冲信号,使得FPGA芯片重新启动,再次加载PROM的程序完成启动;
步骤9、延时等待2s后,设置状态字为特征值来代表此次备份启动FPGA,并执行DSP后续功能。
结合图3中所示的流程,实施例的DSP软件在启动延时后,会初始化变量,读取FPGA寄存器1的值,判断当前FPGA是否工作正常,若正常则执行DSP软件的周期数据发送以及后续其他功能;否则,DSP软件将读取FPGA备份保护程序,更新到PROM中,重启来实现FPGA功能的自我恢复,提供产品的可靠性和可维护性。本实施例的DSP软件启动FPGA备份保护功能的工作流程图如下:
步骤1、产品上电复位后,DSP芯片自动从FLASH芯片中加载DSP程序;
步骤2、DSP程序加载成功后,初始化CNT计数为0,延时等待2s;
步骤3、DSP程序读取FPGA,寄存器1的值,判断是否为0xA5;
步骤4、若读出值为0xA5,则表示FPGA启动正常,可以继续执行DSP其他功能。否则需启动FPGA备份保护程序,DSP从FLASH空间区域2读出FPGA的备份保护程序到SDRAM空间1区域;
步骤5、执行DSP更新PROM的功能函数,通过DSP的4个GPIO口模拟PROM的JTAG接口时序,实现将SDRAM空间1区域的指定长度的数据写入到PROM芯片中;
步骤6、执行DSP回读PROM中数据的功能函数,通过DSP的4个GPIO口模拟PROM的JTAG接口时序,实现将PROM中指定长度的数据回读存储到SDRAM空间2区域,并对CNT计数加1;
步骤7、DSP软件按照指令长度依次对比判断SDRAM空间1区域与SDRAM空间2区域的数据是否相等;
步骤8、若判断SDRAM空间1区域与SDRAM空间2区域的数据存在不同,说明本次写入和读出的字节有不同;下一步需要判断CNT计数是否大于3,若不是DSP软件跳转到步骤5再次执行,否则说明系统存在严重问题,FPGA的备份保护程序启动失败。若判断SDRAM空间1区域与SDRAM空间2区域的数据相同,表示FPGA备份保护程序更新成功,DSP软件通过1个GPIO口向PROM的启动复位引脚发送脉冲信号,使得FPGA芯片重新启动,再次加载PROM的程序完成启动;
步骤9、延时等待2s后,设置状态字为0xA0(代表此次启动FPGA备份保护程序,正常为0xE0),FPGA备份程序启动成功。DSP软件开始发送10ms周期数据帧并执行后续的功能程序。
在正常工作时,本发明所述的产品在整机状态还可以远程在线更新PROM中的程序,以实现不对产品开盖等操作的就可以调试产品中的FPGA程序,或者升级更新FPGA程序版本,提高产品的可维护性。
本发明所述的产品整机状态在线更新PROM的方法:
步骤1、产品通讯功能正常状态时,上位机选择FPGA的程序文件,将文件按照FPGA下载协议格式分包发送DSP软件;
步骤2、DSP软件接收分帧接收通讯数据并每帧校验,将通过校验的数据存储在SDRAM空间1区域;
步骤3、DSP软件在接收到尾帧协议格式时,判断本次接收到所有有效数据字节总计数是否完整;
步骤4、DSP软件在判断本次接收有效数字字节总计数不相符时,退出下载操作,上报数据总校验失败;否则DSP软件见执行更新PROM的功能函数;
步骤5、DSP软件执行更新PROM的功能函数,通过DSP的4个GPIO口模拟PROM的JTAG接口时序,实现将SDRAM空间1区域中的指定长度的数据写入到PROM芯片中;
步骤6、执行DSP回读PROM中数据的功能函数,通过DSP的4个GPIO口模拟PROM的JTAG接口时序,实现将PROM中指定长度的数据回读存储到SDRAM空间2区域;
步骤7、DSP软件按照指令长度依次对比判断写入和读出的数据是否相符,即判断SDRAM空间1区域中的数据与SDRAM空间2区域中的数据是否相等;
步骤8、若写入和读出的结果判断不同,DSP软件上报FPGA程序烧写失败;否则是DSP软件更新PROM成功,DSP软件上报FPGA程序烧写成功。
如图4所示,实施例的FPGA备份保护程序存在FLASH空间区域2内,可以通过上位机实现在线下载,方便能随时更新FPGA备份保护程序使其具备所需的功能。必要时,也可以下载FPGA正式程序作为备份,以提供系统的可靠性。
实施例的FPGA备份保护程序在线下载方法:
步骤1、产品通讯功能正常状态时,上位机选择FPGA的备份程序文件,将文件按照备份FPGA下载协议格式分包发送DSP软件;
步骤2、DSP软件接收分帧接收通讯数据并每帧校验,将通过校验的数据存储在SDRAM空间1区域中;
步骤3、DSP软件在接收到尾帧协议格式时,判断本次接收到所有有效数据字节总计数是否完整;
步骤4、DSP软件在判断本次接收有效数字字节总计数不相符时,退出下载操作,上报数据总校验失败。否则DSP软件将SDRAM空间1区域的指定长度的数据写入FLASH指令的FPGA备份程序区域,实现FPGA备份程序烧写功能;
步骤5、DSP软件执行写入读出校验函数,从FLASH指令的FPGA备份程序区域读出指令长度的数据,依次与SDRAM1区域中的数据进行对比判断;
步骤6、若写入和读出的结果判断不同,DSP软件上报备份FPGA程序烧写失败;否则DSP软件上报备份FPGA程序烧写成功。
由上述描述可看出,本发明所述的FPGA备份保护程序存储在FLASH特定区间,仅在PROM中的程序被破坏导致FPGA启动异常时,用来恢复FPGA工作能力。在正常工作时,产品在整机状态可以远程在线更新FPGA备份保护程序,以实现更新自动恢复时FPGA需要具备的功能,提高产品的可维护性。备份保护程序可以设计成具备基础功能的标准通用模块,必要时也可以与正式程序一致,只用作正式程序的备份功能。
本发明所述的FPGA备份程序在线下载方法:
步骤1、产品通讯功能正常状态时,上位机选择FPGA的备份程序文件,将文件按照备份FPGA下载协议格式分包发送DSP软件;
步骤2、DSP软件接收分帧接收通讯数据并每帧校验,将通过校验的数据存储在SDRAM空间1区域中;
步骤3、DSP软件在接收到尾帧协议格式时,判断本次接收到所有有效数据字节总计数是否完整;
步骤4、DSP软件在判断本次接收有效数字字节总计数不相符时,退出下载操作,上报数据总校验失败;否则DSP软件见执行FPGA备份程序烧写功能函数;
步骤5、DSP软件将SDRAM空间1区域的指定长度的数据写入FLASH指令的FPGA备份程序区域,实现FPGA备份程序烧写功能;
步骤6、DSP软件执行写入读出校验函数,从FLASH指令的FPGA备份程序区域读出指令长度的数据,依次与SDRAM1区域中的数据进行对比判断;
步骤7、若写入和读出的结果判断不同,DSP软件上报备份FPGA程序烧写失败;否则DSP软件上报备份FPGA程序烧写成功。
由上述描述可看出,本发明所提供的一种FPGA程序备份保护方案以及异常时FPGA程序自我恢复的方法,避免在异常操作时导致的FPGA存储程序被擦除破坏后,使得产品失去功能以及正常通讯能力,无法远程在线更新FPGA程序,不利于工程应用的问题。
本申请实施例还提供了一种FPGA程序备份保护系统,该系统包括:FLASH芯片和DSP芯片。
其中,FLASH芯片包括第一设定区域和第二设定区域。DSP芯片用于通过DSP软件读取FPGA芯片中的特征字;该特征字表征FPGA软件启动正常;若DSP软件未读取到所述特征字,则DSP软件从FLASH芯片中读取存储FPGA的备份保护程序并保存至第一设定区域;DSP软件将所述第一设定区域内的指定长度的数据写入达到PROM芯片中;DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;判断所述第一设定区域和所述第二设定区域的数据是否相符,若相符则判断备份启动成功。上述FLASH芯片和DSP芯片可参考方法中的详细描述,在此不再赘述。
在上述技术方案中,DSP软件在判断出异常后,开始使用备份保护程序来实现FPGA功能的自我恢复,从而达到恢复系统或者输出系统故障状态信息等目的。本方案不影响原有系统的硬件组成以及正常工作流程,即不影响原系统的稳定性,仅在异常情况下实现需要功能。
在一个具体的可实施方案中,所述DSP芯片还用于判断所述第一设定区域和所述第二设定区域的数据是否相符,若不相符,则DSP软件重复从FLASH芯片中读取存储FPGA的备份保护软件并保存至第一设定区域;DSP软件将所述设定区域内的指定长度的数据写入达到PROM芯片中;DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;判断所述第一设定区域和所述第二设定区域的数据是否相符。上述DSP芯片可参考方法中的详细描述,在此不再赘述。
在一个具体的可实施方案中,所述DSP芯片还用于在备份启动成功后,延时等待2s后,设置状态字为特征值来代表此次备份启动FPGA,并执行DSP后续功能。上述DSP芯片可参考方法中的详细描述,在此不再赘述。
本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述的FPGA程序备份保护方法。
本申请实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任一所述FPGA程序备份保护方法。
本申请实施例还还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行本申请上述任一项所述的FPGA程序备份保护方法。
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,可通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本说明书一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种FPGA程序备份保护方法,其特征在于,包括以下步骤:
通过DSP软件读取FPGA芯片中的特征字;该特征字表征FPGA软件启动正常;
若DSP软件未读取到所述特征字,则DSP软件从FLASH芯片中读取存储FPGA的备份保护程序并保存至第一设定区域;
DSP软件将所述第一设定区域内的指定长度的数据写入达到PROM芯片中;
DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;
判断所述第一设定区域和所述第二设定区域的数据是否相符,若相符则判断备份启动成功。
2.根据权利要求1所述的FPGA程序备份保护方法,其特征在于,还包括:
判断所述第一设定区域和所述第二设定区域的数据是否相符,若不相符,则重复以下步骤:
DSP软件从FLASH芯片中读取存储FPGA的备份保护软件并保存至第一设定区域;
DSP软件将所述设定区域内的指定长度的数据写入达到PROM芯片中;
DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;
判断所述第一设定区域和所述第二设定区域的数据是否相符。
3.根据权利要求2所述的FPGA程序备份保护方法,其特征在于,还包括:
在备份启动成功后,延时等待2s后,设置状态字为特征值来代表此次备份启动FPGA,并执行DSP后续功能。
4.根据权利要求3所述的FPGA程序备份保护方法,其特征在于,所述方法还包括:
在若DSP软件未读取到所述特征字时,还可包括以下步骤:
通过上位机选择FPGA的程序文件作为FPGA的备份保护程序,将文件按照FPGA下载协议格式分包发送DSP软件;
在DSP软件接收所述文件时,DSP软件接收分帧接收通讯数据并每帧校验,将通过校验的数据存储在所述第一设定区域。
5.根据权利要求4所述的FPGA程序备份保护方法,其特征在于,所述方法还包括:
通过DSP软件在接收到尾帧协议格式时,判断本次接收到所有有效数据字字节总计数是否完整;
在判断本次接收到所有有效数字字节与总计数不相符时,退出下载操作,上报数据总校验失败。
6.根据权利要求4所述的FPGA程序备份保护方法,其特征在于,所述在DSP软件接收所述文件时,DSP软件接收分帧接收通讯数据并每帧校验,将通过校验的数据存储在所述第一设定区域,具体为:
DSP软件接收每帧数据并校验解码,将解码后的数据存储在所述第一设定区域。
7.根据权利要求4所述的FPGA程序备份保护方法,其特征在于,还包括:
在将所述将通过校验的数据存储在所述第一设定区域之后,将第一设定区域的指定长度的数据写入第二设定区域;
判断第一设定区域的数据是否与第二设定区域的数据相符,若不相符则退出下载。
8.一种FPGA程序备份保护系统,其特征在于,包括:
FLASH芯片;包括第一设定区域和第二设定区域;
DSP芯片:用于通过DSP软件读取FPGA芯片中的特征字;该特征字表征FPGA软件启动正常;若DSP软件未读取到所述特征字,则DSP软件从FLASH芯片中读取存储FPGA的备份保护程序并保存至第一设定区域;DSP软件将所述第一设定区域内的指定长度的数据写入达到PROM芯片中;DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;判断所述第一设定区域和所述第二设定区域的数据是否相符,若相符则判断备份启动成功。
9.根据权利要求8所述的FPGA程序备份保护系统,其特征在于,所述DSP芯片还用于判断所述第一设定区域和所述第二设定区域的数据是否相符,若不相符,则DSP软件重复从FLASH芯片中读取存储FPGA的备份保护软件并保存至第一设定区域;DSP软件将所述设定区域内的指定长度的数据写入达到PROM芯片中;DSP软件按照指令长度将所述PROM芯片中的数据回读存储在第二设定区域;判断所述第一设定区域和所述第二设定区域的数据是否相符。
10.根据权利要求8所述的FPGA程序备份保护系统,其特征在于,所述DSP芯片还用于在备份启动成功后,延时等待2s后,设置状态字为特征值来代表此次备份启动FPGA,并执行DSP后续功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211455700.0A CN115794488A (zh) | 2022-11-21 | 2022-11-21 | 一种fpga程序备份保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211455700.0A CN115794488A (zh) | 2022-11-21 | 2022-11-21 | 一种fpga程序备份保护方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794488A true CN115794488A (zh) | 2023-03-14 |
Family
ID=85439363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211455700.0A Pending CN115794488A (zh) | 2022-11-21 | 2022-11-21 | 一种fpga程序备份保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794488A (zh) |
-
2022
- 2022-11-21 CN CN202211455700.0A patent/CN115794488A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8683457B1 (en) | Updating firmware of an electronic device by storing a version identifier in a separate header | |
US9471435B2 (en) | Information processing device, information processing method, and computer program | |
US20060107031A1 (en) | Portable terminal | |
JP2006127553A (ja) | プログラムのテスト及びデバッギングが容易な中央処理装置 | |
CN107301042B (zh) | 一种带自检功能的SoC应用程序引导方法 | |
US20070136638A1 (en) | System and method for checking and correcting bios errors | |
US20070067520A1 (en) | Hardware-assisted device configuration detection | |
US20020129195A1 (en) | Microcomputer with built-in programmable nonvolatile memory | |
CN101807152B (zh) | 自我验证选择只读存储器的基本输出入系统及其验证方法 | |
CN112379932B (zh) | 电子设备的Boot方法、Boot装置和电子设备 | |
US20080016415A1 (en) | Evaluation system and method | |
CN112947977A (zh) | 一种软件在线升级方法及系统 | |
US20130080751A1 (en) | Method and device for updating bios program for computer system | |
CN114721493B (zh) | 芯片启动方法、计算机设备及可读存储介质 | |
CN115756984A (zh) | 内存测试方法、装置、设备及存储介质 | |
CN115840579A (zh) | Fpga远程更新方法、系统、贴片机及存储介质 | |
TW201716999A (zh) | 開機檢查方法及電腦系統 | |
JP2008198060A (ja) | 情報処理装置、パッチコード実装システム、電子機器及びパッチコードの実装方法 | |
CN111857882B (zh) | 可扩展的ssd开卡固件加载方法、装置、计算机设备及存储介质 | |
CN113377586A (zh) | 一种服务器自动化检测方法、装置及存储介质 | |
US7490321B2 (en) | Method for updating firmware via determining program code | |
CN117215656A (zh) | 基于Linux系统自适配车机芯片方法、装置、电子设备及车辆 | |
CN115794488A (zh) | 一种fpga程序备份保护方法及系统 | |
EP4296860A1 (en) | Method for running startup program of electronic device, and electronic device | |
JP2012118904A (ja) | 情報処理装置 |
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 |