基于以太网协议的安全的FPGA远程在线升级方法与流程

文档序号:16086925发布日期:2018-11-27 22:32阅读:1296来源:国知局

本发明属于FPGA在线升级领域,具体涉及基于以太网协议的安全的FPGA远程在线升级方法。



背景技术:

在嵌入式系统设备中,现场可编程门阵列FPGA(Field Program Gates Array)因为其具备的现场可编程、硬件并行处理能力强等特点在实际的设计中得到越来越多的应用。EPCS系列存储器由于具有引脚少,掉电不丢失数据的特点,通常做为FPGA的程序存储器。目前主流的对EPCS存储器进行程序代码烧写主要有3种方式:

一、通过专用仿真器通过专用JTAG插座,在专用软件仿真环境下进行烧写。采用这种方式,外在限制条件较多,在升级时通常需要打开设备外壳以连接仿真器和JTAG插座,很难适应远程在线升级的要求。

二、采用ARM、单片机或其他CPU器件对EPCS存储器进行编程,如果嵌入式设备中没有此类器件,则FPGA在线升级则无法实现,同时采用这种方法,一旦在烧写EPCS过程中出现错误,则会导致FPGA无法启动。

三、采用发明专利CN201410328099.8所述方法,存在如下弊端:1.需要先完全擦除EPCS后才能对EPCS进行烧写,如果对EPCS擦除成功后,正在烧写EPCS过程中出现故障(比如掉电),那么FPGA下次重新启动时就无法从EPCS中获取下载文件,FPGA将无法启动,此时就只能通过JTAG方式对FPGA进行重新编程,这将增加设备的维护成本。2.串口线缆的信号传输距离不能超过100米,无法适应远程操作的要求,而人员到现场操作,同样也会增加设备的维护成本,而采用以太网协议,物理层可以通过超五类缆或光纤连接,传输距离可超过40㎞,可以适应远程升级要求。



技术实现要素:

本发明的目的在于克服上述不足,提供基于以太网协议的安全的FPGA远程在线升级方法

为了达到上述目的,本发明包括以下步骤:

步骤一,将EPCS存储器分为两个存储区域,分别为第一存储区域用于存储设备出厂默认程序的出厂程序区域,以及第二存储区域用于存储设备升级迭代版本程序的用户存储区域;

步骤二,出厂程序区域和用户存储区域所需的内容烧录到EPCS中;

步骤三,FPGA等待上位机启动新版本用户程序的传输流程;

步骤四、上位机通知FPGA准备接收新版本用户程序;

步骤五、FPGA通过网口向上位机发送文件读请求报文;

步骤六、上位机收到读请求报文,给FPGA发出读请求响应报文;

步骤七、FPGA通过网口向上位机发送ACK报文;

步骤八、上位机收到ACK报文,将升级程序分成若干个512字节的数据段,依次将每个数据段发送给FPGA,除了最后一个数据段,其余每个数据报文长度为512字节;

步骤九、FPGA接收到数据报文;

步骤十、FPGA解析数据报文中的升级程序文件,并操作IP核ALTASMI_PARALLEL烧写EPCS的用户存储区域;

步骤十一、FPGA判断数据报文长度是否不为512字节,如果是512字节,说明本次文件传输还未结束,则进入步骤十二。如果不是512字节,说明本次文件传输已结束,则执行步骤十四;

步骤十二、FPGA通过网口向上位机发送ACK报文;

步骤十三、上位机收到ACK报文,继续向FPGA发送数据报文,返回步骤十一;

步骤十四、如果文件已经全部传输完毕,则FPGA和上位机结束本次文件传输;

步骤十五、FPGA进行程序重新配置操作。

当设备掉电重启,FPGA进行如下操作:

第一步,FPGA根据默认配置自动从出厂程序存储区域加载出厂程序;

第二步,出厂版本程序加载成功并正常运行后,出厂版本程序监听是否有用户版本程序,如果没有,则进入FPGA获取升级文件子流程,进行步骤三;如果有用户版本程序,则执行第三步;

第三步,FPGA操作IP核ALTREMOTE_UPDATE加载用户存储区域的程序;

第四步、用户程序版本若加载失败,则退回到第一步,如果加载成功,则执行第五步;

第五步、FPGA按照用户版本程序进行工作,用户版本程序开启一个任务用于接收新版本的用户版本程序,当需要对用户版本程序进行升级时,进入FPGA获取升级文件子流程,进行步骤三。

步骤十五中,FPGA进行程序重配置的具体方法如下:

第一步、FPGA开始进行程序重新配置操作;

第二步、FPGA向IP核ALTREMOTE_UPDATE写入更新application命令;

第三步、FPGA向IP核ALTREMOTE_UPDATE写入下次重配置启动地址;

第四步、FPGA向IP核ALTREMOTE_UPDATE写入控制字使能用户版本程序看门狗电路以及看门狗定时器时间;

第五步、FPGA控制IP核ALTREMOTE_UPDATE重配置开关,完成FPGA的重配置。

烧录采用JTAG方式。

与现有技术相比,本发明通过以太网线缆对设备FPGA进行在线升级,能够适应远程操作的要求,不需要工作人员到现场进行操作,并且将EPCS存储器分为两个存储区域,分别为用于存储设备出厂默认程序的出厂程序存储区域,以及用于存储设备升级迭代版本程序的用户存储区域,若在升级过程中如出现故障,设备可自动恢复到出厂版本,并可在出厂版本下重新进行在线升级操作,大大的降低了设备的维护成本。

附图说明

图1为本发明的流程图;

图2为本发明中设备掉电重启的流程图;

图3为本发明中FPGA进行重配置的流程流程图。

具体实施方式

下面结合附图对本发明做进一步说明。

参见图1,本发明包括以下步骤:

步骤一,将EPCS存储器分为两个存储区域,分别为第一存储区域用于存储设备出厂默认程序的出厂程序区域,以及第二存储区域用于存储设备升级迭代版本程序的用户存储区域;

步骤二,采用JTAG方式将出厂程序区域和用户存储区域所需的内容烧录到EPCS中;

步骤三,FPGA等待上位机启动新版本用户程序的传输流程;

步骤四、上位机通知FPGA准备接收新版本用户程序;

步骤五、FPGA通过网口向上位机发送文件读请求报文;

步骤六、上位机收到读请求报文,给FPGA发出读请求响应报文;

步骤七、FPGA通过网口向上位机发送ACK报文;

步骤八、上位机收到ACK报文,将升级程序分成若干个512字节的数据段,依次将每个数据段发送给FPGA,除了最后一个数据段,其余每个数据报文长度为512字节;

步骤九、FPGA接收到数据报文;

步骤十、FPGA解析数据报文中的升级程序文件,并操作IP核ALTASMI_PARALLEL烧写EPCS的用户存储区域;

步骤十一、FPGA判断数据报文长度是否不为512字节,如果是512字节,说明本次文件传输还未结束,则进入步骤十二。如果不是512字节,说明本次文件传输已结束,则执行步骤十四;

步骤十二、FPGA通过网口向上位机发送ACK报文;

步骤十三、上位机收到ACK报文,继续向FPGA发送数据报文,返回步骤十一;

步骤十四、如果文件已经全部传输完毕,则FPGA和上位机结束本次文件传输;

步骤十五、FPGA进行程序重新配置操作。

参见图2,当设备掉电重启,FPGA进行如下操作:

第一步,FPGA根据默认配置自动从出厂程序存储区域加载出厂程序;

第二步,出厂版本程序加载成功并正常运行后,出厂版本程序监听是否有用户版本程序,如果没有,则进入FPGA获取升级文件子流程,进行步骤三;如果有用户版本程序,则执行第三步;

第三步,FPGA操作IP核ALTREMOTE_UPDATE加载用户存储区域的程序;

第四步、用户程序版本若加载失败,则退回到第一步,如果加载成功,则执行第五步;

第五步、FPGA按照用户版本程序进行工作,用户版本程序开启一个任务用于接收新版本的用户版本程序,当需要对用户版本程序进行升级时,进入FPGA获取升级文件子流程,进行步骤三。

参见图3,FPGA进行程序重配置的具体方法如下:

第一步、FPGA开始进行程序重新配置操作;

第二步、FPGA向IP核ALTREMOTE_UPDATE写入更新application命令;

第三步、FPGA向IP核ALTREMOTE_UPDATE写入下次重配置启动地址;

第四步、FPGA向IP核ALTREMOTE_UPDATE写入控制字使能用户版本程序看门狗电路以及看门狗定时器时间;

第五步、FPGA控制IP核ALTREMOTE_UPDATE重配置开关,完成FPGA的重配置。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1