一种FPGA程序在线更新失败可恢复电路的制作方法

文档序号:27115234发布日期:2021-10-27 19:04阅读:231来源:国知局
一种FPGA程序在线更新失败可恢复电路的制作方法
一种fpga程序在线更新失败可恢复电路
技术领域
1.本实用新型涉及可编程逻辑器件的技术领域,尤其涉及一种fpga程序在线更新失败可恢复电路。


背景技术:

2.fpga(field-programmable gate array,现场可编程门阵列)属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。fpga的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块ram,布线资源,内嵌专用硬核,底层内嵌功能单元。由于fpga具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。fpga的设计流程包括算法设计、代码仿真以及设计、板机调试,设计者以及实际需求建立算法架构,利用eda建立设计方案或hd编写设计代码,通过代码仿真保证设计方案符合实际要求,最后进行板级调试,利用配置电路将相关文件下载至fpga芯片中,验证实际运行效果。
3.在fpga芯片应用领域,fpga所在设备的程序在线更新是常用的重要功能和需求。常规程序更新方式需要打开设备或机箱外壳,再通过专用烧写器更新程序,在线更新无需打开设备或机箱外壳,可直接通过串口等常用外部接口更新程序,简化了烧写流程,提高了效率。
4.但在fpga程序在线更新时,通常需要flash中原有程序支持通过fpga 生成外部接口和通信协议,以实现对flash程序进行擦除和固化。在此过程中,如出现掉电等原因,使flash擦除和固化未能完成,则flash中原有程序已被破坏,设备将失去所有功能,且无法再进行下一次在线更新。降低了 fpga及其所在设备的可靠性和适应性。因此,如何使fpga程序在线更新失败后,自动实现程序和状态恢复是本领域技术人员目前需要解决的技术问题。


技术实现要素:

5.为克服现有技术的缺陷,本实用新型要解决的技术问题是提供了一种 fpga程序在线更新失败可恢复电路,其使fpga程序在线更新失败后,自动实现程序和状态恢复。
6.这种fpga程序在线更新失败可恢复电路,其包括主控fpga、第一辅助电路、第二辅助电路、第三辅助电路,第一辅助电路、第二辅助电路、第三辅助电路分别连接到主控fpga;
7.第一辅助电路执行第一flash存储芯片、第二flash存储芯片接口与主控fpga的加载配置引脚的连接和自动切换;
8.第二辅助电路连接第一flash存储芯片、第二flash存储芯片,第二辅助电路执行主控fpga自身的复位,及对复位信号进行延时保存;
9.第三辅助电路通过外部通信接口与上位机连接。
10.本实用新型通过第二辅助电路连接第一flash存储芯片、第二flash存储芯片,第二辅助电路执行主控fpga自身的复位,及对复位信号进行延时保存,第一辅助电路执行第
一flash存储芯片、第二flash存储芯片接口与主控fpga的加载配置引脚的连接和自动切换,第三辅助电路通过外部通信接口与上位机连接,即使flash擦除和固化未能完成,也不会破坏flash中原有程序,提升了fpga及其所在设备的可靠性和适应性,因此使fpga程序在线更新失败后,自动实现程序和状态恢复。
附图说明
11.图1示出了根据本实用新型的fpga程序在线更新失败可恢复电路的原理框图。
12.图2示出了根据本实用新型的第一辅助电路的电路图。
13.图3示出了根据本实用新型的第二辅助电路的电路图。
具体实施方式
14.如图1所示,这种fpga程序在线更新失败可恢复电路,其包括主控fpga、第一辅助电路(辅助电路1)、第二辅助电路(辅助电路2)、第三辅助电路 (辅助电路3),第一辅助电路、第二辅助电路、第三辅助电路分别连接到主控fpga;
15.第一辅助电路执行第一flash存储芯片(flash1)、第二flash存储芯片(flash2)接口与主控fpga的加载配置引脚的连接和自动切换;
16.第二辅助电路连接第一flash存储芯片、第二flash存储芯片,第二辅助电路执行主控fpga自身的复位,及对复位信号进行延时保存;
17.第三辅助电路通过外部通信接口与上位机连接。
18.本实用新型通过第二辅助电路连接第一flash存储芯片、第二flash存储芯片,第二辅助电路执行主控fpga自身的复位,及对复位信号进行延时保存,第一辅助电路执行第一flash存储芯片、第二flash存储芯片接口与主控fpga的加载配置引脚的连接和自动切换,第三辅助电路通过外部通信接口与上位机连接,即使flash擦除和固化未能完成,也不会破坏flash中原有程序,提升了fpga及其所在设备的可靠性和适应性,因此使fpga程序在线更新失败后,自动实现程序和状态恢复。
19.优选地,所述主控fpga包括初始模块和更新模块,初始模块包括:在线更新单元、更新状态检测单元、flash接口切换单元和自复位单元,更新模块包括在线更新单元;
20.在线更新单元执行:上位机通信、通信指令解析、数据协议转换、 flash接口协议和数据烧写;
21.更新状态监测单元执行:flash接口协议,数据读取和判断;
22.flash接口切换单元将fpga与flash间的接口在第一flash存储芯片、第二flash存储芯片间切换,状态包括:初始阶段、状态监测阶段、监测完成阶段、在线更新阶段;
23.自复位单元根据更新状态监测单元输出结果,判断是否向第三辅助电路输出复位信号。
24.优选地,如图2所示,所述第一辅助电路包括延时电路和迟滞触发电路;延时电路包括第一电阻r1(300ω)、第二电阻r2(10kω)、第一电容c1(47n),迟滞触发电路包括带施密特触发器的反相器s、第三电阻r3(10kω)、第四电阻r4(10kω);第二电阻何第一电容并联后一端接地且另一端连接在第一电阻和带施密特触发器的反相器之间,第三电阻接带施密特触发器的反相器的输入端,带施密特触发器的反相器的输出接fpga的复位输入管脚,
第四电阻接带施密特触发器的反相器的输出;带施密特触发器的反相器为芯片 54ls132;
25.选择fpga上任意io3发出复位指令信号进入延时电路的第一电阻,延时电路使用两个电阻和一个电容实现复位指令高电平信号的快速建立和缓慢释放;再进入迟滞电路,迟滞电路使用带施密特触发器的反相器和两个电阻,利用自身的阈值回差实现电平保持;最后,延时和电平保持后的复位指令输出至fpga的复位输入管脚。
26.所述第一辅助电路的目的是实现fpga的自复位,fpga复位过程中要求复位信号需保持一段时间稳定的低电平。而复位信号本身由fpga管脚输出,复位过程中管脚电平会发生变化,因此电路需要有“记忆保持”功能。
27.优选地,如图3所示,所述第二辅助电路包括两个芯片54ls279、三个芯片54ls132和三个电阻r5,r6,r7;
28.每个芯片54ls279的输入接fpga两个任意引脚io1、io2且输出接一个芯片54ls132的输入,第五电阻、第七电阻分别接一个芯片
29.54ls279对应的引脚io1、另一个芯片54ls279对应的引脚io2,第六电阻接第三个芯片54ls132的输入且第三个芯片54ls132的输出接第一芯片54ls132、第二个芯片54ls132的输入;
30.fpga芯片的flash接口引脚中,clk、si和so三个引脚同时连接两片flash芯片的相应引脚;fcs片选引脚和fpga两个任意引脚io1、 io2进入所述第二辅助电路,该电路输出cs1和cs2信号分别连接至两片flash的cs引脚;fpga通过io1和io2输出电平的不同组合,将fpga片选信号切换至两片flash的cs引脚上,并可在fpga复位和加载过程中保持该信号的稳定。
31.io1和io2组合对应的片选信号见表1。
32.表1
33.阶段io1,io2fpga接口切换至初始阶段1,1flash1状态监测阶段1,0flash2监测完成阶段(flash2无完整程序)0,1flash1监测完成阶段(flash2有完整程序)1,0flash2在线更新阶段1,0flash2
34.所述第二辅助电路得目的是实现fpga的两片flash芯片片选信号的“切换保持”功能。
35.优选地,所述第一flash存储芯片为默认加载flash,由设备生产厂家在生产调试阶段通过jtag接口方式烧写固化;所述第二flash存储芯片为在线更新程序flash,通过串口在线更新固化。
36.以下更详细地说明本实用新型。
37.具有fpga在线更新需求的设备通常可分为厂家生产调试阶段和用户应用阶段;
38.生产调试阶段
39.1)生产调试阶段,厂家使用烧写器通过jtag接口等方式将fpga初始程序“pro1”固化至flash中。由于辅助电路1中默认将flash1片选信号有效。“pro1”将被加载至flash1中;而cs2信号无效,flash2中无程序;
40.2)设备重新上电后,由于默认cs1信号有效,fpga将读取flash1中的程序“pro1”。此后进入应用阶段。
41.应用阶段
42.3)应用阶段如需通过在线更新程序,用外部接口连接上位机和设备。上位机通过外部通信工具向fpga输出更新flash2指令,并发送“pro2”码流数据;
43.4)fpga识别到指令后通过指令解析ip和协议转换ip将码流数据更新到 flash2中。完成在线更新程序过程;
44.5)应用阶段程序加载时,fpga操作按如下顺序执行:
45.a)上电时默认cs1信号有效,fpga加载flash1中程序“pro1”;
46.b)程序加载完成后配置cs2有效,并通过更新状态监测单元检测flash2 中特定标志位状态,如0x00地址为0x55aa为烧写成功标志;
47.c)若b操作检测标志位有效则fpga执行e操作,并反馈给上位机固化完成信号;b操作检测标志位无效,则执行d操作,并反馈给上位机固化失败信号;
48.d)表示flash2中无升级程序,或升级程序失败,则恢复到默认cs1有效状态,fpga继续执行“pro1”应用程序。
49.e)fpga保持片选为cs2,cs2片选信号被辅助电路1电路锁定;
50.f)fpga发送复位指令,复位指令经辅助电路2将fpga重启;
51.fpga加载flash2中pro2码流,采用“pro2”应用程序。
52.以上所述,仅是本实用新型的较佳实施例,并非对本实用新型作任何形式上的限制,凡是依据本实用新型的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本实用新型技术方案的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1