[发明专利]一种基于FPGA的远程固件升级方法在审
申请号: | 202111147381.2 | 申请日: | 2021-09-29 |
公开(公告)号: | CN113867771A | 公开(公告)日: | 2021-12-31 |
发明(设计)人: | 周天;黄杰;杜伟东;陈宝伟;胡永翔 | 申请(专利权)人: | 哈尔滨工程大学;上海声之扬科技有限公司 |
主分类号: | G06F8/654 | 分类号: | G06F8/654 |
代理公司: | 成都方圆聿联专利代理事务所(普通合伙) 51241 | 代理人: | 邓永红 |
地址: | 150001 黑龙江*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 远程 升级 方法 | ||
本发明公开了一种基于FPGA的设备远程固件升级方法,PC端上位机通过网络TCP/IP协议将固件下发到设备内部FPGA芯片的Nios系统中,然后再由Nios系统转发至设备内部的Flash芯片烧写控制器,从而实现了设备的远程固件升级。本发明提供的设备远程固件升级方法,通过设备本身对外通信的网口解决了设备固件升级免拆卸的问题。且本发明的固件升级方法耗时短,成本低,能够很好的满足市场需求。
技术领域
本发明属于FPGA嵌入式领域,更具体的说是涉及一种基于FPGA的远程固件升级方法。
背景技术
一般的FPGA开发经常使用JTAG完成在线开发调试和配置,当开发完成后会使用JTAG将配置文件烧写到非易失性存储器中,例如Flash芯片。但是这种方式存在效率低下、可靠性低的问题,当FPGA作为信号处理器被封装在产品中时,若果需要进行算法升级,使用JTAG的方式需要进行拆壳处理,这样做不仅耗时长,而且会增加损坏硬件和外壳防水结构的风险。因此,如何在不用拆除产品外壳的前提下快速实现其内部FPGA的固件升级是本领域技术人员亟须解决的问题。
发明内容
有鉴于此,本发明提供了一种基于FPGA的远程固件升级方法。能够实现在不用拆除设备外壳的前提下远程的实现内部固件的升级。
为了实现上述目的,本发明采用如下技术方案:
一种基于FPGA的远程固件升级方法,包括以下几个步骤:
步骤一:PC端上位机通过网口向水下设备内部FPGA芯片的Nios系统发送固件文件;
步骤二:Nios系统将接收到的固件临时存储到RAM中;
步骤三:Nios将RAM中的固件文件分段读出打包成特殊的形式传输到Flash控制器;
步骤四:Flash控制器接收到打包的固件文件,并确认正确性,确认正确后再烧写到Flash芯片中。
其中,步骤三具体步骤包括:
SIII1:发送Flash烧写状态机复位命令rest_str使FPGA烧写状态机就位;
SIII2:发送Flash芯片整片擦除命令erase_str,并等待接收Flash擦除完成命令;
SIII3:判断等待接收命令时间是否超时。若超时则执行步骤SIII1,若没超时则判断是否为Flash擦除完成命令。若为Flash擦除完成命令则执行下一步,若不是则执行步骤SIII1;
SIII4:根据接收到的总字节数A,及一帧要传输的字节数B,得到即将要传输的总数据帧数M=A/B;
SIII5:判断即将打包的数据帧编号i(取值从1到M)是否大于总数据帧M。若大于M,则执行步骤SIII8;否则,执行下一步;
SIII6:打包并发起第i帧数据传输;打包的数据格式为:帧头+要传输的数据字节数+帧编号+待传输数据+校验和;
帧头为1个字节,为固定值0xFA;
要传输的数据字节数,为1个字节,值为N;
帧编号,为2个字节,值为i;
待传输数据,为N个字节,第i段固件文件数据;
校验和,为1个字节,值为前面所有字节求和后取256的余数;
SIII8:发送烧写结束命令;
SIII9:等待回复,判断回复是否正确。若正确,则结束;否则,则执行步骤SIII8。
步骤四具体步骤包括:
SIV1:等待接收Flash芯片整片擦除命令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工程大学;上海声之扬科技有限公司,未经哈尔滨工程大学;上海声之扬科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111147381.2/2.html,转载请声明来源钻瓜专利网。