一种基于1K-XModem协议的FPGA软件在线升级方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011366224.6
(22)申请日 2020.11.29
(71)申请人 中国航空工业集团公司洛阳电光设
备研究所
地址 471099 河南省洛阳市凯旋西路25号
(72)发明人 滑立 毛义伟 刘琼 汪江华 
(74)专利代理机构 西北工业大学专利中心
61204
代理人 陈星
(51)Int.Cl.
G06F  8/61(2018.01)
G06F  8/65(2018.01)
G06F  8/71(2018.01)
G06F  13/42(2006.01)
(54)发明名称
一种基于1K-XModem协议的FPGA软件在线升
级方法
(57)摘要
本发明提出一种基于1K ‑XModem协议的FPGA
软件在线升级方法,首先需获取烧写文件,串口
传输协议采用1K ‑Xmodem协议,新增列校验以保
证文件传输的正确性,数据写入FLASH阶段增加
整体读出、一一比对的操作,提高软件烧写的可
靠性。应用在红外成像设备中的红外成像软件升
级过程中时,对比原始通过JTAG接口升级软件的
方法需要拆卸产品、连接仿真器、加载程序、充氮
等一系列繁琐操作,本发明串口在线升级方法简
化了FPGA软件的升级流程,无需拆卸产品,降低
了软件升级带来的风险与成本。权利要求书2页  说明书4页  附图3页CN 112486515 A 2021.03.12
C N  112486515
A
1.一种基于1K‑XModem协议的FPGA软件在线升级方法,其特征在于:包括以下步骤:
步骤1:生成烧写文件:
步骤1.1:将红外成像设备中的FLASH存储器整片擦除;
步骤1.2:通过JTAG接口向所述FLASH存储器中烧写FPGA软件编译完成后的.elf文件和.bit文件;
步骤1.3:通过读取FLASH存储器中的数据,得到步骤1.2中烧写的文件的存储区域;
步骤1.4:将步骤1.3中读取的数据按照1K‑Xmodem协议进行组包,并发送给上位机;
步骤1.5:上位机接收数据后生成FPGA软件的.out文件;
步骤1.6:将所述FLASH存储器再次整片擦除后,将步骤1.5中生成的.out文件烧写到所述FLASH存储器中;
步骤2:数据传输过程:
步骤2.1:红外成像设备上电,FPGA软件如果收到“在线升级”命令,FPGA软件向上位机发送NAK信号,所述NAK信号表示启动传输,等待接收文件;
步骤2.2:FPGA软件按照1K‑Xmodem协议循环接收上位机发送的升级数据并存储数组,所述升级数据包括代码数据和列校验数据;
步骤2.3:FPGA软件收到EOT信号后,对存放代码数据的数组按列计算校验和,并与收到的列校验数据一一比对,若正确,向上位机发送ACK信号,否则,发送CAN信号取消此次升级流程;所述EOT信号表示文件传输完毕,所述ACK信号表示响应正常;
步骤3:数据写入FLASH存储器过程:
步骤3.1:FPGA软件对代码数据列校验正确后,将代码数据写入所述FLASH存储器中的代码存储区,所述代码存储区为步骤1.3中得到的存储区域;
步骤3.2:再将所述代码存储区中的数据读出,并与所述数组中存放的代码数据一一比对,确认无误后,向上位机反馈烧写成功;若比对数据不一致,则重复步骤3.1,直至比对数据一致;若重复设定次数后,比对数据仍不一致,则向上位机反馈升级烧写失败。
2.根据权利要求1所述一种基于1K‑XModem协议的FPGA软件在线升级方法,其特征在于:步骤1.1中通过读取FLASH存储器中数据并查看是否全为FF,以确认FLASH存储器是否全部擦除。
3.根据权利要求1所述一种基于1K‑XModem协议的FPGA软件在线升级方法,其特征在于:步骤1.3中,
通过对FLASH存储器中的每个存储扇区进行读取判断,其中非全FF的存储扇区即为步骤1.2中烧写的文件的存储区域。
4.根据权利要求1所述一种基于1K‑XModem协议的FPGA软件在线升级方法,其特征在于:步骤1.4中,通过RS422串口将组包后的数据发送给上位机。
5.根据权利要求1所述一种基于1K‑XModem协议的FPGA软件在线升级方法,其特征在于:步骤1.6中,通过NIOS II 7.2环境中flash programmer烧写文件功能进行一键烧写。
6.根据权利要求1所述一种基于1K‑XModem协议的FPGA软件在线升级方法,其特征在于:步骤2中,所述升级数据包括N包代码数据和1包列校验数据;上位机收到NAK信号后,发送第一包数据,FPGA软件接收完毕后,判断包头、包号、包号补码是否正确,以及计算包校验和是否正确,若正确,则将当前代码数据存入数组,数据包个数加1,向上位机发送ACK信号,上位机收到ACK信号后发送下一包数据,以此类推,直至N+1包数据全部传输完毕;若任一包
校验错误,向上位机发送CAN取消传输,此次升级流程取消。
一种基于1K‑XModem协议的FPGA软件在线升级方法
技术领域
[0001]本发明涉及红外成像设备中的红外成像软件升级技术领域,具体为一种基于1K‑XModem协议的FPGA软件在线升级方法。
背景技术
[0002]在开发NIOS软核+FPGA系统架构的嵌入式软件过程中,需要对红外成像设备中的红外成像软件进行升级更新,一般利用仿真器通过JTAG接口对FPGA软件进行调试后烧写。红外成像设备交付后若采用此方法升级软件必须将产品拆开、连接仿真器、加载程序,验证无误后还需重新充氮,这一过程,操作相当复杂,容易出错。
发明内容
[0003]为解决现有技术存在的问题,本发明提出一种基于1K‑XModem协议的FPGA软件在线升级方法,该方法基于RS422串口实现软件在线升级功能,首先需获取烧写文件,串口传输协议采用1K‑Xmodem协议,新增列校验以保证文件传输的正确性,数据写入FLASH阶段增加整体读出、一一比对的操作,提高软件烧写的可靠性。应用在红外成像设备中的红外成像软件升级过程中时,对比原始通过JTAG接口升级软件的方法需要拆卸产品、连接仿真器、加载程序、充氮等一系列繁琐操作,本发明串口在线升级方法简化了FPGA软件的升级流程,无需拆卸产品,降低了软件升级带来的风险与成本。
[0004]本发明的技术方案为:
[0005]所述一种基于1K‑XModem协议的FPGA软件在线升级方法,包括以下步骤:[0006]步骤1:生成烧写文件:
[0007]步骤1.1:将红外成像设备中的FLASH存储器整片擦除;这里可以采用通过读取数据并查看是否全为FF,以确认是否全部擦除;
[0008]步骤1.2:通过JTAG接口向所述FLASH存储器中烧写FPGA软件编译完成后的.elf文件和.bit文件;
[0009]步骤1.3:通过读取FLASH存储器中的数据,得到步骤1.2中烧写的文件的存储区域;例如,通过对FLASH存储器中的每个存储扇区进行读取判断,非全FF的存储扇区即为步骤1.2中烧写的文件的存储区域;
[0010]步骤1.4:将步骤1.3中读取的数据按照1K‑Xmodem协议进行组包,并发送给上位机;例如可以通过RS422串口将组包后的数据发送给上位机;
[0011]步骤1.5:上位机接收数据后生成FPGA软件的.out文件;
[0012]步骤1.6:将所述FLASH存储器再次整片擦除后,将步骤1.5中生成的.out文件烧写到所述FLASH存储器中;例如可以通过NIOS II 7.2环境中flash programmer烧写文件功能进行一键烧写;
[0013]红外成像设备重新上电后,FPGA软件正常启动,确认软件功能与版本;本步骤的创新点在于能够确认FLASH中烧写的有效代码的存储区域,以及通过上位机导出数据并形成
烧写文件。
[0014]步骤2:数据传输过程:
[0015]步骤2.1:红外成像设备上电,FPGA软件如果收到“在线升级”命令,FPGA软件向上位机发送NAK信号,所述NAK信号表示启动传输,等待接收文件;
[0016]步骤2.2:FPGA软件按照1K‑Xmodem协议循环接收上位机发送的升级数据并存储数组,所述升级数据包括代码数据和列校验数据;
[0017]步骤2.3:FPGA软件收到EOT信号后,对存放代码数据的数组按列计算校验和,并与收到的列校验数据一一比对,若正确,向上位机发送ACK信号,否则,发送CAN信号取消此次升级流程;所述EOT信号表示文件传输完毕,所述ACK信号表示响应正常;
[0018]本步骤的创新点在于新增列校验,以保证烧写文件传输正确。
[0019]步骤3:数据写入FLASH存储器过程:
[0020]步骤3.1:FPGA软件对代码数据列校验正确后,将代码数据写入所述FLASH存储器中的代码存储区,所述代码存储区为步骤1.3中得到的存储区域;
[0021]步骤3.2:再将所述代码存储区中的数据读出,并与所述数组中存放的代码数据一一比对,确认无误后,向上位机反馈烧写成功;若比对数据不一致,则重复步骤3.1,直至比对数据一致;若重复设定次数后,比对数据仍不一致,则向上位机反馈升级烧写失败。[0022]之后红外成像设备重新上电,FPGA软件正常启动,确认软件功能与版本;本步骤的创新点在于将代码数据写入FLASH后整体读取一一比对,以保证可靠性。
[0023]有益效果
[0024]本发明基于RS422串口实现软件在线升级功能,首先需获取烧写文件,串口传输协议采用1K‑Xmodem协议,新增列校验以保证文件传输的正确性,数据写入FLASH阶段增加整体读出、一一比对的操作,提高软件烧写的可靠性。应用在红外成像设备中的红外成像软件升级过程中时,对比原始通过JTAG接口升级软件的方法需要拆卸产品、连接仿真器、加载程序、充氮等一系列繁琐操作,本发明串口在线升级方法简化了FPGA软件的升级流程,无需拆卸产品,降低了软件升级带来的风险与成本。
[0025]本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0026]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0027]图1是本发明的流程图;
[0028]图2是烧写文件生成的流程图;
[0029]图3是数据传输的流程图;
[0030]图4是数据写入FLASH的流程图。
具体实施方式
[0031]下面详细描述本发明的实施例,所述实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

本文发布于:2024-09-23 03:24:38,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/460309.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:软件   升级   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议