一种SoPC程序远程更新系统及方法转让专利

申请号 : CN201710531298.2

文献号 : CN107273170B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王邦继刘庆想周磊杨沛鑫李相强张健穹

申请人 : 西南交通大学

摘要 :

本发明提供了种SoPC程序远程更新系统及方法,所述方法包括:编译生成FPGA的硬件配置文件和Nios II的软件映像文件,进行合并,并转换为二进制文件;Nios II微处理器按照预置的通讯协议指令将外部通讯模块传来的应用模式配置程序写入片内RAM中暂存;Nios II微处理器将EPCS存储器指定地址内的数据擦除,并将暂存的配置程序烧录到EPCS存储器的指定地址中;重新上电时,FPGA首先进入工厂模式,然后根据RSU专用电路的配置,自动加载存储的相应应用模式配置程序。本发明实现了单FPGA芯片对SoPC程序的远程更新,系统简单,方法灵活,且容易实现多份配置程序的切换。

权利要求 :

1.一种SoPC程序远程更新方法,其特征在于,所述SoPC程序远程更新方法包括以下步骤:步骤一,编译生成FPGA的硬件配置文件和NiosII的软件映像文件后进行合并,并转换为二进制文件;

步骤二,NiosII微处理器按照预置的通讯协议指令将外部通讯模块传来的应用模式配置程序写入片内RAM中暂存;

步骤三,NiosII微处理器将EPCS存储器指定地址内的数据擦除,并把片内RAM中暂存的配置程序烧录到EPCS存储器的指定地址中;

步骤四,重新上电时,FPGA首先进入工厂模式,然后根据RSU专用电路的配置,自动加载存储在EPCS存储器中的相应应用模式配置程序;

步骤一中,转换为一个直接烧录、包含FPGA硬件配置文件和NiosII软件映像文件的二进制文件;所述二进制文件为应用模式配置程序;所述应用模式配置程序传输过程中包含信息效验操作;每次通讯完成后都进行CRC效验,用于确保数据传输可靠性;

步骤二中,NiosII微处理器通过通讯模块与上位机建立连接,按照预置的通讯协议指令将外部通讯模块传来的应用模式配置程序写入片内RAM中暂存;

步骤四中,当远程更新失败时,FPGA加载工厂模式配置程序,用于系统正常工作,同时进行下一次代码远程更新;

所述SoPC程序远程更新方法的SoPC程序远程更新系统包括:FPGA模块,用于进入工厂模式,然后根据RSU专用电路的配置,自动加载存储在EPCS存储器中的相应应用模式配置程序;当远程更新失败时,通过加载工厂模式配置程序,用于系统正常工作,同时进行下一次代码远程更新;

EPCS存储器,与FPGA模块连接,用于存储FPGA的硬件配置文件和软件映像文件;

EEPROM存储器,与FPGA模块连接,用于存储配置过程中的启动参数;

通讯模块,与FPGA模块通过通讯接口连接,用于上位机与FPGA模块的通讯;

当有配置程序需要更新时,上位机通过通讯模块和FPGA模块将配置文件下载到EPCS存储器中,重新上电时,FPGA模块根据启动参数自动加载存储在EPCS存储器中的相应配置程序;

所述FPGA模块为由NiosII微处理器、CAN控制器、片上RAM、EPCS控制器、RSU控制器、RSU专用电路、IIC控制器、JTAG控制器构成;所述NiosII微处理器、CAN控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器、JTAG控制器均通过片内Avalon总线相连;

所述NiosII微处理器,用于与上位机的数据交互,根据上位机的控制指令对CAN控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器进行操作;

所述CAN控制器,用于NiosII微处理器与上位机的串行通讯;

所述片上RAM,用于暂存远程更新数据;

所述EPCS控制器,用于对EPCS器件的擦除、烧录和效验;

所述RSU控制器,用于实现对RSU专用电路的配置;

所述IIC控制器,用于对EEPROM器件的读写操作;

所述应用模式配置程序包括FPGA模块,其中FPGA模块由NiosII微处理器、CAN控制器、片上RAM、EPCS控制器、IIC控制器、BootLoader构成;所述BootLoader,用于应用模式FPGA硬件配置文件加载完成后,从EPCS存储器中指定地址拷贝NiosII软件映像文件进行启动运行;

所述EPCS存储器中的存储区域包括:工厂模式配置程序区域和应用模式配置程序区域;

所述工厂模式配置程序区域用于存储工厂模式配置程序;

所述应用模式配置程序区域用于存储远程更新的应用模式配置程序;

所述应用模式配置程序区域有多个,用于存储远程更新的多份应用模式配置程序;

所述SoPC程序远程更新系统还包括JTAG接口模块,JTAG接口模块与FPGA模块的JTAG控制器通过片内Avalon总线相连;

所述工厂模式配置程序采用直接通过FPGA模块的JTAG链为EPCS存储器下载配置程序,作为SoPC程序远程更新的基础代码;

所述SoPC程序远程更新系统可存储多份SoPC系统配置程序,实现多功能的灵活切换,适应不同条件的使用需求。

说明书 :

一种SoPC程序远程更新系统及方法

技术领域

[0001] 本发明涉及可编程片上系统配置技术领域,具体涉及一种SoPC程序远程更新系统及方法。

背景技术

[0002] FPGA是一种可编程逻辑器件,同时具有丰富可编程硬件资源和并行处理特性,大大提高了电子系统的通用性和灵活性。近年来,Altera公司提出了SoPC概念,将Nios II微处理器、存储器、通讯控制器、以及其他功能模块等集成到FPGA中,在单芯片中构成全数字、多功能的SoPC系统,在电机伺服控制、工业网络中广泛使用。但是,FPGA大多是基于SRAM结构的,在掉电情况下FPGA内的数据将丢失,需要非易失性存储器来存放其配置文件。EPCS器件属于串行接口Flash,通常用来存储FPGA的硬件配置文件和Nios II的软件映像文件。每次上电时,存储器将硬件配置文件和软件映像文件重新加载到FPGA中,这就是通常所说的FPGA配置过程。
[0003] 当前,嵌入式产品在投入使用阶段由于多种原因需要对产品进行维护或者软件升级,若使用传统的JTAG下载更新方式,需要企业对产品进行召回处理,增加了维护成本。如果嵌入式产品放置在极端恶劣环境下,传统的升级方式受到限制无法进行。在许多场合下,系统希望能够实现对FPGA的软硬件程序进行远程更新,甚至要求在存储器中存放多份配置文件以便多功能切换需要。在有的产品设计中,采用CPU+FPGA系统架构,但是,这种方案所需硬件资源较多,设计复杂且成本相对较高。
[0004] 综上所述,现有技术存在的问题是:现有技术硬件资源多成本相对较高、方法复杂且不灵活。

发明内容

[0005] 为解决现有技术存在的问题,本发明提供了一种SoPC程序远程更新系统及方法。
[0006] 为了实现上述发明目的,本发明提供一种SoPC程序远程更新方法,所述SoPC程序远程更新方法包括以下步骤:
[0007] 步骤一,编译生成FPGA的硬件配置文件和Nios II的软件映像文件后进行合并,并转换为二进制文件;
[0008] 步骤二,Nios II微处理器按照预置的通讯协议指令将外部通讯模块传来的应用模式配置程序写入片内RAM中暂存;
[0009] 步骤三,Nios II微处理器将EPCS存储器指定地址内的数据擦除,并把片内RAM中暂存的配置程序烧录到EPCS存储器的指定地址中;
[0010] 步骤四,重新上电时,FPGA首先进入工厂模式,然后根据RSU专用电路的配置,自动加载存储在EPCS存储器中的相应应用模式配置程序中。
[0011] 进一步,步骤一中,转换为一个直接烧录、包含FPGA硬件配置文件和Nios II软件映像文件的二进制文件;所述二进制为应用模式配置程序;所述应用模式配置程序传输过程中包含信息效验操作;每次通讯完成后都进行CRC效验,用于确保数据传输可靠性;
[0012] 步骤二中,Nios II微处理器通过通讯模块与上位机建立连接,按照预置的通讯协议指令将外部通讯模块传来的应用模式配置程序写入片内RAM中暂存;
[0013] 步骤四中,当远程更新失败时,FPGA加载工厂模式配置程序,用于系统正常工作,同时进行下一次代码远程更新。
[0014] 进一步,所述通讯模块通过更新配置存储器中的SoPC软硬件程序,进行实时在线更新,用于现场环境下SoPC系统维护、调试和升级。
[0015] 本发明的另一目的在于提供一种SoPC程序远程更新系统包括:
[0016] FPGA模块,用于进入工厂模式,然后根据RSU专用电路的配置,自动加载存储在EPCS存储器中的相应应用模式配置程序;当远程更新失败时,通过加载工厂模式配置程序,用于系统正常工作,同时进行下一次代码远程更新;
[0017] EPCS存储器,与FPGA模块连接,用于存储FPGA的硬件配置文件和软件映像文件;
[0018] EEPROM存储器,与FPGA模块连接,用于存储配置过程中的启动参数;
[0019] 通讯模块,与FPGA模块通过通讯接口连接,用于上位机与FPGA模块的通讯。
[0020] 进一步,当有配置程序需要更新时,上位机通过通讯模块和FPGA模块将配置文件下载到EPCS存储器中,重新上电时,FPGA模块根据启动参数自动加载存储在EPCS存储器中的相应配置程序。
[0021] 进一步,所述FPGA模块为由Nios II微处理器、CAN控制器、片上RAM、EPCS控制器、RSU控制器、RSU专用电路、IIC控制器、JTAG控制器构成;所述Nios II微处理器、CAN控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器、JTAG控制器均通过片内Avalon总线相连;
[0022] 所述Nios II微处理器,用于与上位机的数据交互,根据上位机的控制指令对CAN控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器进行操作;
[0023] 所述CAN控制器,用于Nios II微处理器与上位机的串行通讯;
[0024] 所述片上RAM,用于暂存远程更新数据;
[0025] 所述EPCS控制器,用于对EPCS器件的擦除、烧录和效验;
[0026] 所述RSU控制器,用于实现对RSU专用电路的配置;
[0027] 所述IIC控制器,用于对EEPROM器件的读写操作。
[0028] 进一步,所述EPCS存储器中的存储区域包括:工厂模式配置程序区域和应用模式配置程序区域;
[0029] 所述工厂模式配置程序区域用于存储工厂模式配置程序;
[0030] 所述应用模式配置程序区域用于存储远程更新的应用模式配置程序;
[0031] 所述应用模式配置程序区域有多个,用于存储远程更新的多份应用模式配置程序。
[0032] 进一步,所SoPC程序远程更新系统还包括JTAG接口模块,JTAG接口模块与FPGA模块的JTAG控制器通过片内Avalon总线相连;
[0033] 所述工厂模式配置程序采用直接通过FPGA模块的JTAG链为EPCS存储器下载配置程序,作为SoPC程序远程更新的基础代码。
[0034] 本发明的优点及积极效果为:
[0035] (1)SoPC程序远程更新系统可以通过外部通讯模块更新配置存储器中的SoPC软硬件程序,避免拆卸产品,具有实时在线更新的优点,适用于现场环境下SoPC系统维护、调试和升级;
[0036] (2)同时还省去了CPU处理器和大容量SDRAM存储器,有效降低了硬件电路复杂度,提高了远程更新系统的效率和灵活性;
[0037] (3)即使远程更新失败,FPGA也能够加载工厂模式配置程序,实现基本功能,并且可以实现下一次代码远程更新,大大提高了系统安全性和可靠性;
[0038] (4)可存储多份SoPC系统配置程序,实现多功能的灵活切换,适应不同条件下的使用需求。

附图说明

[0039] 图1为本发明实施例提供的远程更新SoPC系统(工厂模式)示意图。
[0040] 图2为本发明实施例提供的EPCS存储器内配置程序分布图。
[0041] 图3是本发明实施例提供的应用模式下FPGA模块示意图。
[0042] 图4为本发明实施例提供的配置程序传输过程流程图。
[0043] 图5为本发明实施例提供的模式切换流程图。
[0044] 图6为本发明实施例提供的模式切换关系图。
[0045] 图7为本发明实施例提供的SoPC程序远程更新方法流程图。

具体实施方式

[0046] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0047] 现有技术存在的问题是:现有技术硬件资源多成本相对较高、方法复杂且不灵活。下面结合附图及具体实施例对本发明作进一步描述。
[0048] 如图1所示,本发明实施例提供的SoPC程序远程更新系统,包括:FPGA模块、EPCS存储器、EEPROM存储器、通讯模块和上位机,FPGA模块与EPCS存储器相连,FPGA模块与EEPROM存储器相连,FPGA模块与通讯模块相连,通讯模块与上位机相连;通讯模块为FPGA模块与上位机的通讯接口,EPCS存储器存储FPGA的硬件配置文件和软件映像文件,EEPROM存储器存储配置过程中的启动参数;当有配置程序需要更新时,上位机通过通讯模块和FPGA模块将配置文件下载到EPCS存储器中,重新上电时,FPGA模块根据启动参数自动加载存储在EPCS存储器中的相应配置程序。
[0049] 所述FPGA模块指Altera公司所有支持RSU专用电路的FPGA芯片,在本实施例中,采用的是Cyclone V系列FPGA芯片5CEFA7F31,所述通讯模块为CAN接口电路。
[0050] 所述FPGA模块为由Nios II微处理器、CAN控制器、片上RAM、EPCS控制器、RSU控制器、RSU专用电路、IIC控制器、JTAG控制器构成的SoPC系统;所述Nios II微处理器、CAN控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器、JTAG控制器通过片内Avalon总线相连;所述RSU控制器与RSU专用电路相连;所述CAN控制器与通讯模块相连;所述EPCS控制器与EPCS存储器相连;所述IIC控制器与EEPROM存储器相连;所述Nios II微处理器,用于与上位机的数据交互,根据上位机的控制指令对CAN控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器进行操作;所述CAN控制器,用于实现Nios II微处理器(FPGA模块)与上位机的串行通讯;所述片上RAM,用于暂存远程更新数据;所述EPCS控制器,用于实现对EPCS器件的擦除、烧录和效验;所述RSU控制器,用于实现对RSU专用电路的配置;所述IIC控制器,用于对EEPROM器件的读写操作。
[0051] 如图2所示,EPCS存储器中的存储区域包括:工厂模式配置程序区域,应用模式配置程序区域;工厂模式配置程序区域用于存储工厂模式配置程序,地址开始于页0的0x000000地址;应用模式配置程序区域用于存储远程更新的应用模式配置程序,地址开始于页1(2、3、…、n)的非零地址;应用模式配置程序区域可以有多个,用于存储远程更新的多份应用模式配置程序。
[0052] 本发明实施例提供的SoPC程序远程更新系统还包括JTAG接口模块,JTAG接口模块与FPGA模块的JTAG控制器相连,工厂模式配置程序采用直接通过FPGA模块的JTAG链为EPCS存储器下载配置程序,作为SoPC程序远程更新的基础代码。
[0053] 本发明实施例提供的一种SoPC程序远程更新方法,用于实现对应用模式配置程序的远程更新,包括以下具体步骤:
[0054] 步骤一,构建需要远程更新的SoPC系统,编译生成FPGA的硬件配置文件和Nios II的软件映像文件,把硬件配置文件和软件映像文件进行合并,并转换为一个可以直接烧录、包含FPGA硬件配置文件和Nios II软件映像文件的二进制文件(即应用模式配置程序);
[0055] 本发明实施例中FPGA模块如图3所示,由Nios II微处理器、CAN控制器、片上RAM、EPCS控制器、IIC控制器、BootLoader、其他功能模块构成;所述Nios II微处理器、CAN控制器、片上RAM、EPCS控制器、IIC控制器功能如前所述,不再重复;所述BootLoader,用于应用模式FPGA硬件配置完成后,从EPCS存储器的指定地址拷贝Nios II的软件映像文件并启动运行;所述其他功能模块,用于实现应用模式下的其他具体功能。
[0056] BootLoader制作流程包括:修改Altera公司提供的BootLoader模板中的bootcopier_bsp_settings.tcl和advanced_boot_copier.c源文件,以匹配应用模式SoPC系统的启动参数,实现在硬件描述层不断从EPCS存储器中读取数据并拷贝至FPGA并引导运行的功能;将修改后的BootLoader与应用模式SoPC系统共同编译为应用模式下的FPGA硬件配置文件。
[0057] 步骤二:Nios II微处理器通过通讯模块与上位机建立连接,按照预置的通讯协议指令将外部通讯模块传来的应用模式配置程序写入片内RAM中暂存;
[0058] 步骤三:Nios II微处理器将EPCS存储器指定地址内的数据擦除,并把片内RAM中暂存的配置程序烧录到EPCS存储器的指定地址中。
[0059] 如图4所示,本实施例根据预置的通讯协议指令的配置程序传输过程,具体包括以下步骤:
[0060] 第一步:采用预置的CAN应用层通讯协议,上位机请求远程更新开始,并设置EPCS存储器的开始烧录地址;
[0061] 第二步:采用短帧传输配置程序,FPGA模块收到后暂存至片上RAM中;每传输256帧后,进行一次CRC效验;若效验通过,擦除EPCS存储器指定地址内的数据,将片上RAM中的暂存数据烧录到EPCS存储器指定地址中;若效验未通过,请求上位机重新传输前256帧数据;
[0062] 第三步:重复第二步,直至配置程序传输完毕,远程更新结束。
[0063] 步骤四:重新上电时,FPGA首先进入工厂模式,然后根据RSU专用电路的配置,自动加载存储在EPCS存储器中的相应应用模式配置程序。
[0064] 如图5所示,重新上电后的程序加载过程,具体包括:FPGA上电后首先进入工厂模式,读取EEPROM存储器中配置过程的启动参数,判断是继续留在工程模式以进行下一次代码的远程更新还是进入应用模式;若进入应用模式,将启动参数写入到RSU专用电路中,并触发其重新配置,以进入相应的应用模式;当进入应用模式失败时,FPGA将加载工厂模式配置程序,系统可以正常工作,同时可以进行下一次代码远程更新,提高了系统的安全性和可靠性。
[0065] 如图6所示,EPCS存储器中可以存储多份应用模式配置程序;通过修改EEPROM存储器中配置过程的启动参数,即可在重新上电后加载不同的应用模式配置程序;从而容易实现多份应用模式配置程序的切换。
[0066] 如图7所示,本发明实施例提供的SoPC程序远程更新方法,包括以下步骤:
[0067] S101:编译生成FPGA的硬件配置文件和Nios II的软件映像文件后进行合并,并转换为二进制文件;
[0068] S102:Nios II微处理器按照预置的通讯协议指令将外部通讯模块传来的应用模式配置程序写入片内RAM中暂存;
[0069] S103:Nios II微处理器将EPCS存储器指定地址内的数据擦除,并把片内RAM中暂存的配置程序烧录到EPCS存储器的指定地址中;
[0070] S104:重新上电时,FPGA首先进入工厂模式,然后根据RSU专用电路的配置,自动加载存储在EPCS存储器中的相应应用模式配置程序中。
[0071] S101中,转换为一个直接烧录、包含FPGA硬件配置文件和Nios II软件映像文件的二进制文件;所述二进制为应用模式配置程序;所述应用模式配置程序传输过程中包含信息效验操作;每次通讯完成后都进行CRC效验,用于确保数据传输可靠性;
[0072] S102中,Nios II微处理器通过通讯模块与上位机建立连接,按照预置的通讯协议指令将外部通讯模块传来的应用模式配置程序写入片内RAM中暂存;
[0073] S104中,当远程更新失败时,FPGA加载工厂模式配置程序,用于系统正常工作,同时进行下一次代码远程更新。
[0074] 所述通讯模块通过更新配置存储器中的SoPC软硬件程序,进行实时在线更新,用于现场环境下SoPC系统维护、调试和升级。
[0075] 本发明的SoPC程序远程更新系统可以通过外部通讯模块更新配置存储器中的SoPC软硬件程序,避免拆卸产品,具有实时在线更新的优点,适用于现场环境下SoPC系统维护、调试和升级;同时还省去了CPU处理器和大容量SDRAM存储器,有效降低了硬件电路复杂度,提高了远程更新系统的效率和灵活性;
[0076] 即使远程更新失败,FPGA也能够加载工厂模式配置程序,实现基本功能,并且可以实现下一次代码远程更新,大大提高了系统安全性和可靠性;可存储多份SoPC系统配置程序,实现多功能的灵活切换,适应不同条件下的使用需求。
[0077] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。