首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 应用软件 / 一种含CPU和FPGA的嵌入式系统远程在线升级方法

一种含CPU和FPGA的嵌入式系统远程在线升级方法

阅读:804发布:2020-05-08

专利汇可以提供一种含CPU和FPGA的嵌入式系统远程在线升级方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种含CPU和FPGA的 嵌入式系统 远程在线升级的方法,CPU(可以是通用CPU、DSP、MCU等类型)直接或间接的和FPGA共用Flash,CPU上运行的 操作系统 、应用 软件 以及FPGA上运行的逻辑和查找表等均存储在所述Flash中;FPGA通过控制CPU的复位状态确保对所述Flash的 访问 不冲突;FPGA在完成逻辑加载后将所述Flash的访问权限交给CPU,CPU通过对所述Flash的直接访问实现对FPGA的在线升级。利用本发明,可以在实现远程在线升级的 基础 上,统一 应用软件 /逻辑的升级 接口 ,兼顾可靠性和升级速度的同时降低了系统的升级复杂度。,下面是一种含CPU和FPGA的嵌入式系统远程在线升级方法专利的具体信息内容。

1.一种含CPU和FPGA的嵌入式系统远程在线升级方法,其特征在于CPU和FPGA使用同一片Flash存储目标码,FPGA、CPU均直接和Flash相连,FPGA通过控制CPU的复位信号来保证二者对Flash的访问在时间上不冲突,其特征在于步骤如下:
步骤1:系统上电后,FPGA的DONE信号被拉低,通过与控制CPU的复位信号在FPGA逻辑加载过程中恒为低;
步骤2:FPGA逻辑加载成功后,DONE信号被拉高,同时逻辑控制一个I/O管脚为低直到FPGA完成对Flash的所有访问操作,在FPGA对Flash访问过程中,前述I/O管脚通过与门继续控制CPU的复位信号为低;
步骤3:如果FPGA逻辑加载失败,FPGA跳转到默认地址处加载存储在该区域的备份逻辑;
步骤4:FPGA完成对Flash的访问后,将Flash读写控制管脚置为高阻态,之后将控制CPU复位的I/O管脚置高电平;
步骤5:CPU从Flash中读取目标码并启动;
步骤7:CPU通过以太网接口获取升级命令,并采用UDP协议接收待更新目标码文件;
步骤8:CPU将完整接收到的待更新目标码文件存储在内存中;从目标码文件的头信息中获取校验信息和文件类型;
步骤9:CPU根据接收到的升级命令中大小端转换标志对内存中的目标码文件进行大小端转换;
步骤10:CPU将大小端转换后的目标码文件写入Flash中,写入以扇区为单位,写入之前先将目标值与某一扇区的当前数据进行比对,如有不同则执行写入操作,如相同则跳过该扇区的擦除和写入操作;
步骤11:CPU完成Flash擦写操作后将Flash中的数据回读并与内存中的目标码文件进行比对,并将结果作为写入命名的返回值通过以太网发送给源端计算机。
2.一种含CPU和FPGA的嵌入式系统远程在线升级方法,其特征在于CPU和FPGA使用同一片Flash存储目标码,Flash以及CPU均和FPGA直接相连,但CPU和Flash不直接相连,由FPGA逻辑实现CPU到Flash的信号连接,其特征在于步骤如下:
步骤1:系统上电后FPGA加载过程中,FPGA的I/O管脚均为高阻态;
步骤2:FPGA逻辑加载成功并完成对Flash的所有访问操作后,FPGA将CPU的Flash读写管脚和Flash的响应管脚连接起来,并通过与CPU复位信号相连的I/O管脚复位CPU;
步骤3:CPU从Flash中读取目标码并启动;
步骤4:CPU通过以太网接口获取升级命令,并采用UDP协议接收待更新目标码文件;
步骤5:CPU将完整接收到的待更新目标码文件存储在内存中;从目标码文件的头信息中获取校验信息和文件类型;
步骤6:CPU根据接收到的升级命令中大小端转换标志对内存中的目标码文件进行大小端转换;
步骤7:CPU将大小端转换后的目标码文件写入Flash中,写入以扇区为单位,写入之前先将目标值与某一扇区的当前数据进行比对,如有不同则执行写入操作,如相同则跳过该扇区的擦除和写入操作;
步骤8:CPU完成Flash擦写操作后将Flash中的数据回读并与内存中的目标码文件进行比对,并将结果作为写入命名的返回值通过以太网发送给源端计算机。

说明书全文

一种含CPU和FPGA的嵌入式系统远程在线升级方法

技术领域

[0001] 本发明涉及电子技术领域,更具体地讲,属于嵌入式系统的软硬件设计技术领域。

背景技术

[0002] 嵌入式系统设计中经常会同时用到FPGA(Field Programable Gate Array,现场可编程阵列)和CPU;FPGA涉及逻辑和其它逻辑运行所需数据的在线烧录,CPU涉及操作系统和应用软件的在线烧录;往往还会有远程升级的需求。
[0003] 现有的升级方式主要有:
[0004] CPU和FPGA通过不同的接口独立进行升级;CPU的升级接口包括JTAG(Joint Test Action Group,联合测试工作组)等专用接口、RS232/422/485等串行接口,以及以太网、PCIe等高速数据接口;FPGA的升级接口主要是JTAG;
[0005] 此外,部分嵌入式系统中采用CPU来进行FPGA逻辑等的烧写;CPU通过外部总线接收来自外部的目标码数据,发送给FPGA并由FPGA完成FPGA逻辑的烧写;
[0006] 现有升级方式的主要缺点如下:
[0007] 1、JTAG接口无统一规定的电平格式,一般为LVTTL或LVCMOS,传输距离有限(通常不超过1m)且传输带宽低(一般不超过10Mbps,有效带宽更低);此外JTAG升级往往需要专用的编程器,不同厂家不同设备之间编程器无法兼容使用;
[0008] 2、前述通过CPU将FPGA所需目标码发送给FPGA并由FPGA完成烧录的方式中,因为CPU到FPGA的中转环节,导致烧录过程可靠性低且速度慢;
[0009] 3、当前对Flash的擦写,尤其是对存储FPGA逻辑的Flash的擦写基本都是将需要目标扇区完全擦除再写入新数据,不考虑现有扇区数据是否有擦写的必要;对于Flash等寿命以擦写次数来计算的器件而言,不利于其长期可靠运行。

发明内容

[0010] 要解决的技术问题
[0011] 为了避免现有技术的不足之处,本发明提出一种含CPU和FPGA的嵌入式系统远程在线升级方法,通过共享Flash实现CPU操作系统、应用软件以及FPGA逻辑等的在线升级,升级过程简单、灵活且更加可靠。
[0012] 技术方案
[0013] 一种含CPU和FPGA的嵌入式系统远程在线升级方法,其特征在于CPU和FPGA使用同一片Flash存储目标码,FPGA、CPU均直接和Flash相连,FPGA通过控制CPU的复位信号来保证二者对Flash的访问在时间上不冲突,其特征在于步骤如下:
[0014] 步骤1:系统上电后,FPGA的DONE信号被拉低,通过与门控制CPU的复位信号在FPGA逻辑加载过程中恒为低;
[0015] 步骤2:FPGA逻辑加载成功后,DONE信号被拉高,同时逻辑控制一个I/O管脚为低直到FPGA完成对Flash的所有访问操作,在FPGA对Flash访问过程中,前述I/O管脚通过与门继续控制CPU的复位信号为低;
[0016] 步骤3:如果FPGA逻辑加载失败,FPGA跳转到默认地址处加载存储在该区域的备份逻辑;
[0017] 步骤4:FPGA完成对Flash的访问后,将Flash读写控制管脚置为高阻态,之后将控制CPU复位的I/O管脚置高电平;
[0018] 步骤5:CPU从Flash中读取目标码并启动;
[0019] 步骤7:CPU通过以太网接口获取升级命令,并采用UDP协议接收待更新目标码文件;
[0020] 步骤8:CPU将完整接收到的待更新目标码文件存储在内存中;从目标码文件的头信息中获取校验信息和文件类型;
[0021] 步骤9:CPU根据接收到的升级命令中大小端转换标志对内存中的目标码文件进行大小端转换;
[0022] 步骤10:CPU将大小端转换后的目标码文件写入Flash中,写入以扇区为单位,写入之前先将目标值与某一扇区的当前数据进行比对,如有不同则执行写入操作,如相同则跳过该扇区的擦除和写入操作;
[0023] 步骤11:CPU完成Flash擦写操作后将Flash中的数据回读并与内存中的目标码文件进行比对,并将结果作为写入命名的返回值通过以太网发送给源端计算机。
[0024] 一种含CPU和FPGA的嵌入式系统远程在线升级方法,其特征在于CPU和FPGA使用同一片Flash存储目标码,Flash以及CPU均和FPGA直接相连,但CPU和Flash不直接相连,由FPGA逻辑实现CPU到Flash的信号连接,其特征在于步骤如下:
[0025] 步骤1:系统上电后FPGA加载过程中,FPGA的I/O管脚均为高阻态;
[0026] 步骤2:FPGA逻辑加载成功并完成对Flash的所有访问操作后,FPGA将CPU的Flash读写管脚和Flash的响应管脚连接起来,并通过与CPU复位信号相连的I/O管脚复位CPU;
[0027] 步骤3:CPU从Flash中读取目标码并启动;
[0028] 步骤4:CPU通过以太网接口获取升级命令,并采用UDP协议接收待更新目标码文件;
[0029] 步骤5:CPU将完整接收到的待更新目标码文件存储在内存中;从目标码文件的头信息中获取校验信息和文件类型;
[0030] 步骤6:CPU根据接收到的升级命令中大小端转换标志对内存中的目标码文件进行大小端转换;
[0031] 步骤7:CPU将大小端转换后的目标码文件写入Flash中,写入以扇区为单位,写入之前先将目标值与某一扇区的当前数据进行比对,如有不同则执行写入操作,如相同则跳过该扇区的擦除和写入操作;
[0032] 步骤8:CPU完成Flash擦写操作后将Flash中的数据回读并与内存中的目标码文件进行比对,并将结果作为写入命名的返回值通过以太网发送给源端计算机。
[0033] 有益效果
[0034] 本发明提出的一种含CPU和FPGA的嵌入式系统远程在线升级方法,通过CPU和FPGA共享Flash的方式,采用相同的外部接口和统一的操作方式实现了嵌入式系统内操作系统、应用软件、逻辑和其它FPGA运行所需数据的远程在线升级;升级过程由嵌入式系统中的CPU直接控制;通过优化Flash数据写入的策略,有效降低了Flash扇区擦写的次数,对于提升Flash的寿命有重大意义。附图说明
[0035] 图1为本发明实施例一系统示意图;
[0036] 图2为本发明实施例一中FPGA和CPU的启动流程示意图;
[0037] 图3为本发明CPU启动后目标码升级流程示意图;
[0038] 图4为本发明实施例二系统示意图;
[0039] 图5为本发明实施例二中FPGA和CPU的启动流程示意图。

具体实施方式

[0040] 现结合实施例、附图对本发明作进一步描述:
[0041] 一种含CPU和FPGA的嵌入式系统远程在线升级方法中,CPU和FPGA使用同一片Flash存储目标码;FPGA和CPU通过两种方式实现Flash的共享:
[0042] 1、FPGA、CPU均直接和Flash相连,FPGA通过控制CPU的复位信号来保证二者对Flash的访问在时间上不冲突;
[0043] 2、Flash以及CPU均和FPGA直接相连,但CPU和Flash不直接相连,由FPGA逻辑实现CPU到Flash的信号连接。
[0044] 对于并行接口的Flash,FPGA在上电后通过控制高位地址线保证对Flash的访问在空间上和CPU无冲突。
[0045] FPGA在上电后先于CPU启动,FPGA启动过程中DONE信号持续为低;FPGA使用DONE信号与其一个I/O管脚相与后接控制CPU的复位输入管脚;FPGA在逻辑加载完成后通过对前述I/O管脚的控制实现对CPU复位信号的控制;
[0046] FPGA访问Flash存储器结束后将控制Flash读写的管脚变为高阻态,并将控制CPU复位的I/O管脚置无效电平;
[0047] CPU启动完成后,通过对外总线(可以是RS232、RS485、FC、PCIe等类型)接收CPU的操作系统、应用软件以及FPGA逻辑目标码和其它逻辑运行所需数据;
[0048] CPU按照特定的文件传输协议(X-Mode、UDP、TCP等)接收目标码并校验无误后将数据存储到内存中,并根据需求进行大小端转换;
[0049] CPU根据目标文件的格式对数据有效性进行判断;
[0050] CPU逐扇区对Flash进行擦写;擦写之前CPU先将扇区中的内容读出,并与内存中的目标数据进行对比;根据对比结果,如果扇区内容不需要更改,则跳过该扇区的擦除和写入操作;
[0051] CPU完成将目标码写入Flash的操作后,将写入数据回读并与内存中的数据进行比对,以确保写入操作的正确性和完整性;
[0052] FPGA采用多级启动的方式;如果FPGA在上电后无法在Flash中固定位置找到正确的逻辑目标码就从另外一个固定位置启动一个特定的目标码,该目标码实现FPGA和CPU对Flash访问权限的管理,以避免逻辑一次升级失败后无法再次升级的问题。
[0053] 如图1所示,本发明所述升级方法实施例一包括一个含CPU器件、FPGA器件、并行接口NOR Flash器件、远端计算机以及连接远端计算机和CPU器件的以太网总线。
[0054] 本实施例一中,CPU器件和FPGA器件涉及的目标码包括操作系统、应用软件和逻辑,均存储在Flash器件中。
[0055] 本发明实施例一中CPU和FPGA的启动流程如图2所示,包括以下步骤:
[0056] 步骤1:系统上电后,FPGA的DONE信号被拉低,通过与门控制CPU的复位信号在FPGA逻辑加载过程中恒为低;
[0057] 步骤2:FPGA逻辑加载成功后,DONE信号被拉高,同时逻辑控制一个I/O管脚为低直到FPGA完成对Flash的所有访问操作,在FPGA对Flash访问过程中,前述I/O管脚通过与门继续控制CPU的复位信号为低;
[0058] 步骤3:如果FPGA逻辑加载失败,FPGA跳转到默认地址处加载存储在该区域的备份逻辑;
[0059] 步骤4:FPGA完成对Flash的访问后,将Flash读写控制管脚(包含地址和命令信号管脚,数据管脚本身即为高阻态)置为高阻态,之后将控制CPU复位的I/O管脚置高电平;
[0060] 步骤5:CPU从Flash中读取目标码并启动。
[0061] 图3为CPU操作系统和应用软件运行起来后对存储在Flash中各个目标码的更新操作流程,包含如下步骤:
[0062] 步骤1:CPU通过以太网接口获取升级命令,并采用UDP协议接收待更新目标码文件;
[0063] 步骤2:CPU将完整接收到的待更新目标码文件存储在内存中;从目标码文件的头信息中获取校验信息和文件类型;
[0064] 步骤3:CPU根据接收到的升级命令中大小端转换标志对内存中的目标码文件进行大小端转换;
[0065] 步骤4:CPU将大小端转换后的目标码文件写入Flash中,写入以扇区为单位,写入之前先将目标值与某一扇区的当前数据进行比对,如有不同则执行写入操作,如相同则跳过该扇区的擦除和写入操作;
[0066] 步骤5:CPU完成Flash擦写操作后将Flash中的数据回读并与内存中的目标码文件进行比对,并将结果作为写入命名的返回值通过以太网发送给源端计算机。
[0067] 图4为本发明实施例二的示意图,和实施例一相比,其主要区别在于实施例一种CPU和FPGA均直接与Flash相连,实施例二中CPU和Flash通过FPGA间接连接;实施例二中CPU和FPGA的启动流程如图5所示,包括以下步骤:
[0068] 步骤1:系统上电后FPGA加载过程中,FPGA的I/O管脚均为高阻态;
[0069] 步骤2:FPGA逻辑加载成功并完成对Flash的所有访问操作后,FPGA将CPU的Flash读写管脚和Flash的响应管脚连接起来,并通过与CPU复位信号相连的I/O管脚复位CPU;
[0070] 步骤3:CPU从Flash中读取目标码并启动。
[0071] 实施例一与实施例二相比,实施例一中占用FPGA管脚最少,但对CPU复位控制较实施例二复杂。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈