[发明专利]一种内置FLASH的FPGA远程升级方法在审
申请号: | 201910790189.1 | 申请日: | 2019-08-26 |
公开(公告)号: | CN110618827A | 公开(公告)日: | 2019-12-27 |
发明(设计)人: | 方涛;钱晔;郭灿杰;王宇亮;刘海东;李昌飞;贾武轩;魏雨;李莉丽;张果峰;尹轶珂;元杰;刘云龙;钟代宁;袁海阳;王继鹏;孙梦婷;蔺东奎;薛晓龙;鲁佳;宗克辉;常玉;王红平;周圆;濮汝钦;王希伟;江礓;郑雷;韩延斌;周科;王其祥;亓学忠;戚弘亮;李锦琛 | 申请(专利权)人: | 国网河南省电力公司洛阳供电公司;国家电网有限公司;武汉凯默电气有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;H04L12/24 |
代理公司: | 42001 武汉宇晨专利事务所 | 代理人: | 李鹏;王敏锋 |
地址: | 471000 河南*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内置 远程升级系统 以太网芯片 拨码开关 更新应用 加载应用 应用镜像 远程升级 校验 上位机 擦除 拆机 加锁 解锁 下载 升级 出厂 写入 | ||
1.一种内置Flash的FPAG远程升级方法,其特征在于,包括以下步骤:
步骤1、上位机运行Quartus软件,通过Quartus软件生成包含升级镜像的FPGA出厂固件;
步骤2、使用Quartus软件通过JTAG接口与FPGA下载器将FPGA出厂固件下载到FPGA的内置Flash的升级区;
步骤3、使用Quartus软件编译并生成应用镜像;
步骤4、重启FPGA,将与FPGA连接的拨动开关置为低电平,FPGA4识别拨动开关输入低电平后,FPGA从内置Flash的升级区加载升级镜像;
步骤5、上位机运行FPGA升级软件并载入步骤3中生成的应用镜像;
步骤6、FPGA升级软件通过以太网与FPGA通讯,获取FPGA的硬件平台的信息,并根据FPGA的硬件平台的信息判断所载入应用镜像是否对应FPGA的硬件平台,若对应,则执行步骤7,否则执行步骤5;
步骤7、FPGA升级软件发布擦除命令并根据擦除命令设置通讯协议数据包,通讯协议数据包通过以太网发送到FPGA,执行步骤8;
步骤8、FPGA经以太网收到FPGA升级软件发出的通讯协议数据包后,将通讯协议数据包发送到FPGA内置的升级模块,升级模块解析出通讯协议数据包中的擦除命令,并将擦除命令发送到FPGA内置的时序控制模块,时序控制模块根据擦除命令产生相应的擦除时序对内置Flash进行擦除;
步骤9、时序控制模块主动读取内置Flash的控制状态寄存器,时序控制模块在设定时间内根据控制状态寄存器判断是否擦除成功,若擦除成功,则生成擦除成功信号发送到升级模块,若擦除不成功,则生成擦除失败信号发送到升级模块,升级模块根据擦除成功信号或者擦除失败信号设置通讯协议数据包并将通讯协议数据包发送到FPGA升级软件,FPGA升级软件根据通讯协议数据包解析出擦除成功信号或者擦除失败信号,若为擦除成功信号则执行步骤10,若为擦除失败信号则返回步骤5;
步骤10、FPGA升级软件发布解锁命令并根据解锁命令设置通讯协议数据包,FPGA升级软件将通讯协议数据包通过以太网发往FPGA;
步骤11、FPGA经以太网收到FPGA升级软件发出的通讯协议数据包后,将通讯协议数据包发送到FPGA4内置的升级模块,升级模块解析出通讯协议数据包中的解锁命令,并将解锁命令发送到FPGA内置的时序控制模块,时序控制模块根据解锁命令产生相应的解锁时序对内置Flash进行解锁;
步骤12、时序控制模块主动读取内置Flash的控制状态寄存器,时序控制模块在设定时间内根据控制状态寄存器判断是否解锁成功,若解锁成功,则生成解锁成功信号发送到升级模块,若解锁不成功,则生成解锁失败信号发送到升级模块,升级模块根据解锁成功信号或者解锁失败信号设置通讯协议数据包并将通讯协议数据包发送到FPGA升级软件,FPGA升级软件根据通讯协议数据包解析出解锁成功信号或者解锁失败信号,若为解锁成功信号则执行步骤13,若为擦除失败信号则返回步骤5;
步骤13、FPGA升级软件每次获取应用镜像的设定字节的应用镜像数据,并发布写数据命令,根据写数据命令和设定字节的应用镜像数据设置通讯协议数据包;
步骤14、FPGA经以太网收到FPGA升级软件发出的通讯协议数据包后,将通讯协议数据包发送到FPGA内置的升级模块,升级模块解析出通讯协议数据包中的写数据命令和设定字节的应用镜像数据,并将写数据命令发送到FPGA内置的时序控制模块,时序控制模块根据写数据命令产生相应的写数据时序,并通过写数据时序将设定字节的应用镜像数据写入到内置Flash的应用区;
步骤15、时序控制模块主动读取内置Flash的控制状态寄存器,时序控制模块在设定时间内根据控制状态寄存器判断是否写数据成功,若写数据成功,则生成写数据成功信号发送到升级模块,若写数据不成功,则生成写数据失败信号发送到升级模块,
升级模块根据写数据成功信号或者写数据失败信号设置通讯协议数据包;升级模块将通讯协议数据包发送到FPGA升级软件,FPGA升级软件根据通讯协议数据包解析出写数据成功信号或者写数据失败信号,若为写数据成功信号则执行步骤16,若为写数据失败信号则返回步骤5;
步骤16、重复步骤13-15,直至应用镜像全部写入到内置Flash的应用区中,全部写入完毕后执行步骤17;
步骤17、FPGA升级软件发布读数据命令,读取内置Flash的应用区,并根据读数据命令设置通讯协议数据包,并将通讯协议数据包通过以太网发往FPGA4;
步骤18、FPGA经以太网收到FPGA升级软件发出的通讯协议数据包后,将通讯协议数据包发送到FPGA内置的升级模块,升级模块解析出通讯协议数据包中的读数据命令,并将读数据命令发送到FPGA内置的时序控制模块,时序控制模块根据读数据命令产生相应的读数据时序对内置Flash的应用区进行设定长度的应用镜像的读数据操作,
步骤19、时序控制模块主动读取内置Flash的控制状态寄存器,时序控制模块在设定时间内根据控制状态寄存器判断是否读数据成功,若读数据成功,则生成读数据成功信号发送到升级模块,若读数据不成功,生成读数据失败信号发送到升级模块,升级模块根据读数据成功信号或者读数据失败信号设置通讯协议数据包,并将通讯协议数据包发送到FPGA升级软件,FPGA升级软件根据通讯协议数据包解析出读数据成功信号或者读数据失败信号,若为读数据成功信号则执行步骤20,若为读数据失败信号则返回步骤5;
步骤20、重复步骤17-19,直到将内置Flash的应用区中存储的应用镜像全部读出到FPGA升级软件;
步骤21、FPGA升级软件将读取的应用镜像与步骤3中选定的应用镜像进行数据比对,若一致,执行步骤22,否则执行步骤5;
步骤22、FPGA升级软件发布加锁命令并根据加锁命令设置通讯协议数据包,并将通讯协议数据包通过以太网发往FPGA;
步骤23、FPGA经以太网收到FPGA升级软件发出的通讯协议数据包后,将通讯协议数据包发送到FPGA内置的升级模块,升级模块解析出通讯协议数据包中的加锁命令,并将加锁命令发送到FPGA内置的时序控制模块,时序控制模块根据加锁命令产生相应的加锁时序对内置Flash的应用区进行加锁操作;
步骤24、时序控制模块主动读取内置Flash的控制状态寄存器,时序控制模块在设定时间内根据控制状态寄存器判断是否加锁成功,若加锁成功,则生成加锁成功信号发送到升级模块,若加锁不成功,生成加锁失败信号发送到升级模块,升级模块根据加锁成功信号或者加锁失败信号设置通讯协议数据包并发送到FPGA升级软件,FPGA升级软件根据通讯协议数据包解析出加锁成功信号或者加锁失败信号,若为加锁成功信号则执行步骤25,若为加锁失败信号则返回步骤5;
步骤25、将拨动开关置为高电平,FPGA识别拨动开关输入高电平后,加载应用镜像。
2.根据权利要求1所述的一种内置Flash的FPAG远程升级方法,其特征在于,所述的通讯协议数据包的第一个字节代表命令类型,命令类型为写命令或读命令或写数据或读数据;
第二个字节和第三个字节代表为有效数据长度的高八位和低八位;
第四个字节代表为操作状态;
第五个字节至第八个字节代表为地址,如果命令类型为写命令或读命令,则地址为内置Flash的控制状态寄存器地址;如果命令类型为写数据或读数据,则地址为内置Flash的存储地址;
自第九个字节起为数据;
通讯协议数据包最少为64个字节。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国网河南省电力公司洛阳供电公司;国家电网有限公司;武汉凯默电气有限公司,未经国网河南省电力公司洛阳供电公司;国家电网有限公司;武汉凯默电气有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910790189.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种应用程序更新的方法、装置及终端设备
- 下一篇:一种数据更新方法及装置