一种基于rtc芯片的fpga重新加载固件系统及方法
技术领域
[0001]
本发明涉及rtc芯片技术领域,具体涉及一种基于rtc芯片的fpga重新加载固件系统及方法。
背景技术:[0002]
fpga芯片在固件烧录完成或者在升级完成后一般需要整个系统重新断电再上电,也有部分利用arm或其他mcu芯片通过控制fpga的复位引脚来完成fpga芯片固件的重新加载。
[0003]
如专利申请文献cn109117205a公开了一种基于mcu和fpga的双芯片加载方法,所述方法用于对具有第一芯片、第二芯片和单个固件程序存储装置的系统进行双芯片加载,所述第一芯片和所述第二芯片之间具有时钟和数据通信连接,所述第一芯片和第二芯片与所述固件程序存储装置通信连接。本发明的加载方法使得读出的数据可以分别进入mcu和fpga,只要在配置fpga的时候保证了其配置时序即可配置成功。这种加载方案减少了启动配置的时间降低了对于内存大小的依赖,其利用了mcu芯片来完成加载;再如,专利申请文献cn107656776a公开了一种fpga加速卡的固件更新方法、装置及介质,该方法的步骤包括:以执行脚本的方式读取配置列表以获取待更新的fpga加速卡所在的设备地址;获取fpga加速卡的更新固件,并通过设备地址查找到fpga加速卡,以将更新固件烧录至fpga加速卡中;加载更新固件以更新fpga加速卡。相比于人工的方式对fpga加速卡逐一烧录更新固件;专利申请文献cn107515799a公开了一种平板探测器的固件加载方法,所述方法包括:将flash划分为存储出厂时固件数据的原厂区、存储升级时写入的固件数据的升级区、及存储原厂区和升级区的起始地址信息的基本信息区;平板探测器上电后,fpga自动从基本信息区读取原厂区和升级区的起始地址信息,并保存在内部寄存器中,同时跳转至升级区的起始地址,读取升级区固件数据并进行校验,如果所有数据检验通过,则完成加载,fpga正常启动;如果数据校验失败,则跳转至原厂区的起始地址,读取原厂区固件数据以完成加载;上述专利申请文献的固件方法成本高,实现过程复杂。
技术实现要素:[0004]
为了解决上述技术问题,本发明提出了一种基于rtc芯片的fpga固件重新加载方法及系统。为只有fpga的系统实现在线升级后重新加载固件提出了一种新方法,相对于利用arm或其他cpu控制的在线重新加载fpga固件方法成本更低、实现更简单。
[0005]
具体地,一方面,本发明提供了一种基于rtc芯片的fpga重新加载固件方法,包括如下步骤:
[0006]
s1:fpga在在线更新完固件到存储器后,对rtc芯片寄存器进行配置,开启rtc模块定时功能,
[0007]
s2:rtc芯片在定时时间结束后,使其中断输出引脚由高电平转为低电平,即rtc芯片当计数结束之后,其输出管脚会自动由高电平变成低电平;
[0008]
s3:隔直模块检测到rtc模块中断输出引脚由高电平转为低电平后,低电平经过隔直模块完成下降沿的提取,隔直模块在提取下降沿后输出低电平,再恢复至高电平;
[0009]
s4:复位模块检测到隔直模块的下降沿信号后,输出低电压信号至fpga模块的复位引脚,使fpga模块处于复位状态;当复位模块检测到隔直模块输出信号的上升沿信号,复位模块延时设定时间后将其输出设置为高电平;fpga模块的复位引脚设置为高电平后重新加载存储器里更新过的固件;
[0010]
s5:fpga模块在更新固件重新启动后清除rtc模块的中断状态并关闭rtc模块的计时功能。
[0011]
优选地,步骤s1中通过i2c接口对rtc芯片寄存器进行配置。
[0012]
优选地,步骤s2中rtc芯片在倒计时5秒结束后,使其中断输出引脚iqr2由高电平转为低电平。
[0013]
优选地,所述隔直模块包括边沿提取电路,所述边沿提取电路用于提取下降沿,边沿提取电路也可以提取上升沿,但是复位芯片的mr管脚只对下降沿有效。
[0014]
优选地,步骤s4中复位模块延时延时20ms后将其输出设置为高电平。
[0015]
另一方面,本发明提供了一种基于rtc芯片的fpga重新加载固件系统,包括fpga模块、rtc模块、隔直模块和复位模块;所述fpga模块用于编程逻辑器件模块;rtc模块包括时钟模块,所述时钟模块用于定时;隔直模块包括边沿提取电路,边沿提取电路用于提取rtc模块中断输出的下降沿;复位模块用于复位fpga模块,使其重新加载固件。
[0016]
优选地,隔直模块包括边沿提取电路,边沿提取电路用于提取rtc模块中断输出的下降沿。
[0017]
优选地,所述rtc模块包括rtc芯片,rtc芯片包括引脚vdd、引脚iqr2、引脚scl、引脚sda、引脚gnd;所述复位模块包括引脚vdd、引脚mr、引脚gnd和引脚reset;所述边沿提取电路包括电容,电容的第一端口与所述引脚iqr2连接,电容的第二端口与所述引脚mr连接,所述fpga模块包括引脚io1、引脚io2和引脚ps_por_b;所述引脚scl与所述引脚io1连接,所述引脚sda与所述引脚io2连接,所述引脚reset与所述引脚ps_por_b连接。
[0018]
优选地,所述rtc芯片的引脚vdd、引脚iqr2、引脚scl和引脚sda均与电源端连接,所述fpga模块的引脚io1和引脚io2均与电源端连接。
[0019]
优选地,所述rtc芯片和复位模块的引脚gnd均接地。
[0020]
与现有技术相比,本发明所产生的有益效果是:
[0021]
本发明提出了一种基于rtc芯片的fpga固件重新加载方法。为只有fpga的系统实现在线升级后重新加载固件提出了一种新方法。单fpga系统更新完固件后,需要对系统重新上电完成新固件的加载。此方法省去了对单fpga系统更新完固件后重新上电的步骤,并且相对于利用arm或其他cpu控制的在线重新加载fpga固件方法功耗小、成本低、实现更简单。
附图说明
[0022]
图1为本发明提供的基于rtc芯片的fpga重新加载固件系统构图;
[0023]
图2为本发明提供的基于rtc芯片的fpga重新加载固件系统实现原理图。
具体实施方式
[0024]
下面结合附图对本发明做进一步的详细说明。
[0025]
如图1-2所示,本发明提供了一种基于rtc芯片的fpga固件重新加载方法,rtc芯片是一种计时芯片,具有倒计时功能。fpga芯片在固件升级完成后需要重新上电或通过拉低芯片复位引脚来完成固件的重新加载,否则新固件不能运行。本发明提出了在fpga升级完固件后,fpga对rtc芯片配置,启动定时功能。rtc芯片在定时完成后,其中断输出引脚会输出低电平。低电平经过边沿提取电路完成下降沿的提取,边沿提取电路在提取下降沿后输出维持20ms的低电平,再恢复至高电平。边沿提取电路输出脚控制fpga的硬复位引脚拉低再拉高,实现固件的重新加载。
[0026]
具体地,一方面,本发明提供了本发明提供了一种基于rtc芯片的fpga重新加载固件方法,包括如下步骤:
[0027]
s1:fpga在在线更新完固件到存储器后,通过i2c接口对rtc芯片寄存器进行配置,开启rtc模块定时功能,
[0028]
s2:rtc芯片在定时时间结束后,即在在倒计时5秒结束后,使其中断输出引脚iqr2由高电平转为低电平,即rtc芯片当计数结束之后,其输出管脚会自动由高电平变成低电平;
[0029]
s3:隔直模块检测到rtc模块中断输出引脚iqr2由高电平转为低电平后,低电平经过隔直模块完成下降沿的提取,隔直模块在提取下降沿后输出低电平,再恢复至高电平;
[0030]
s4:复位模块检测到隔直模块的下降沿信号后,输出低电压信号至fpga模块的复位引脚,使fpga模块处于复位状态;当复位模块检测到隔直模块输出信号的上升沿信号,复位模块延时设定时间后将其输出设置为高电平;fpga模块的复位引脚设置为高电平后重新加载存储器里更新过的固件;
[0031]
s5:fpga模块在更新固件重新启动后清除rtc模块的中断状态并关闭rtc模块的计时功能。
[0032]
如图1所示,另一方面,本发明提供了一种基于rtc芯片的fpga重新加载固件系统,包括fpga模块、rtc模块、隔直模块和复位模块;所述fpga模块用于编程逻辑器件模块;rtc模块包括时钟模块,所述时钟模块用于定时;隔直模块包括边沿提取电路,边沿提取电路用于提取rtc模块中断输出的下降沿;复位模块用于复位fpga模块,使其重新加载固件。
[0033]
具体地,隔直模块包括边沿提取电路,边沿提取电路用于提取rtc模块中断输出的下降沿。
[0034]
如图2所示,其中本发明提供的所述rtc模块包括rtc芯片,rtc芯片包括引脚vdd、引脚iqr2、引脚scl、引脚sda、引脚gnd;所述复位模块包括引脚vdd、引脚mr、引脚gnd和引脚reset;所述边沿提取电路包括电容,电容的第一端口与所述引脚iqr2连接,电容的第二端口与所述引脚mr连接,所述fpga模块包括引脚io1、引脚io2和引脚ps_por_b;所述引脚scl与所述引脚io1连接,所述引脚sda与所述引脚io2连接,所述引脚reset与所述引脚ps_por_b连接。所述rtc芯片的引脚vdd、引脚iqr2、引脚scl和引脚sda均与电源端连接,所述fpga模块的引脚io1和引脚io2均与电源端连接。所述rtc芯片和复位模块的引脚gnd均接地。
[0035]
其中,本发明提供的基于rtc芯片的fpga重新加载固件系统的工作过程为:
[0036]
1、fpga在在线更新完固件到存储器后,通过i2c接口对rtc芯片寄存器进行配置,
开启rtc模块定时功能,例:可设置5秒定时。
[0037]
2、rtc芯片在倒计时5秒结束后会使其中断输出口iqr2由高电平转为低电平
[0038]
3、隔直模块检测到rtc模块中断脚iqr2由高变低后,2脚会输出一个由高到低,然后再由低到高的脉冲信号。
[0039]
4、复位模块检测到隔直模块的下降沿信号后,会输出低电压信号至fpga复位引脚ps_por_b,使fpga处于复位状态。当复位模块检测到隔直模块输出信号的上升沿,复位模块会延时20ms后将其输出置为高电平。
[0040]
5、fpga复位引脚ps_por_b置高后会重新加载存储器里更新过的固件。
[0041]
6、fpga在更新固件重新启动后清除rtc模块的中断状态并关闭rtc模块计时功能。
[0042]
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。