CN112269585A - 一种关节驱动器固件在线更新方法、装置及关节驱动器 - Google Patents
一种关节驱动器固件在线更新方法、装置及关节驱动器 Download PDFInfo
- Publication number
- CN112269585A CN112269585A CN202011216338.2A CN202011216338A CN112269585A CN 112269585 A CN112269585 A CN 112269585A CN 202011216338 A CN202011216338 A CN 202011216338A CN 112269585 A CN112269585 A CN 112269585A
- Authority
- CN
- China
- Prior art keywords
- joint driver
- online updating
- online
- firmware
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种关节驱动器固件在线更新方法、装置、关节驱动器和可读存储介质。本申请在通过总线接口接收在线更新包时,并不擦除主程序段,而且,只有在将在线更新包完整地写入在线更新段之后,才会将标志位设置为目标值;在执行搬运程序时,当且仅当在将在线更新包完全地搬运到主程序段之后,才会清除标志位。因此,即便在多个阶段出现断电等意外情况导致程序中止,关节驱动器仍然可以保留至少一个可运行的固件,不会导致关节驱动器就此死机,提升了固件在线更新过程的鲁棒性。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种关节驱动器固件在线更新方法、装置、关节驱动器及可读存储介质。
背景技术
关节驱动器是协作机器人的重要部件。关节驱动器一般有一个传统的烧写接口(如JTAG口),用于固件的烧写;另有一个总线通信接口(如EtherCAT接口),用于和机器人控制系统的通信。出于可靠性、成本、安全性等多方面考虑,关节驱动器在装配到协作机器人上之后,一般不将烧写接口引出到机器人外部。此时若需要更新关节驱动器固件,就需要利用总线通信接口。
总线系统中,机器人控制系统一般作为主站存在。主站可以向从站(驱动器)传输文件。固件本身作为一个文件,也可以通过总线传输到从站上。关节驱动器通过总线接收文件时,可以对文件格式、命名等进行解析。一旦判定该文件为待更新的固件(记为固件n),则将该文件写入用于存储固件的非易失性存储器中。重启关节驱动器之后,主控芯片将识别、读取并执行固件n。该流程即为常见的关节驱动器固件在线更新流程。
根据前述流程可知,现有技术的缺点在于,一旦在接收文件的过程中,或在写入非易失性存储器的过程中,若程序意外中止(如断电),则可能损坏原有固件,导致驱动器无法正常启动,必须通过专门的烧写接口,使用烧写器,才能重新烧写固件。对于应用于协作机器人上的关节驱动而言,这往往意味着拆卸机器人,带来很大的不便。
当使用Zynq芯片作为驱动器的主控芯片时,可以使用Zynq芯片的Golden Image功能,每次只对非易失性存储器的特定地址段操作,避开Golden Image段,从而保证即便更新失败,驱动器也可以利用Golden Image启动。该方案的缺点在于,Golden Image的内容只能通过烧写器修改,经过多次在线更新之后,Golden Image将和后续的固件版本差距越来越大,在实际使用中可能带来不便。举例而言,若Golden Image的版本号为1.0,现固件版本号为4.0,待更新固件版本号为4.1,一旦更新失败,驱动器上将不再保留4.0固件,而是使用1.0固件,无法满足固件更新需求。
综上,如何提供一种关节驱动器的固件在线更新方案,避免程序意外中止会导致驱动器无法正常启动的缺点,是亟待本领域技术人员解决的问题。
发明内容
本申请的目的是提供一种关节驱动器固件在线更新方法、装置、关节驱动器及可读存储介质,用以解决当前关节驱动器固件在线过程会由于程序意外中止导致驱动器无法正常启动的问题。其具体方案如下:
第一方面,本申请提供了一种关节驱动器固件在线更新方法,应用于Zynq芯片,包括:
通过总线接口接收关节驱动器固件的在线更新包,将所述在线更新包写入非易失性存储器的在线更新段,将所述非易失性存储器的在线更新标志位设置为目标值;
在重启后,加载所述非易失性存储器的主程序段上的启动引导程序;根据所述启动引导程序,读取所述在线更新标志位,若读取到的数值为所述目标值,则将软复位启动地址寄存器的数值设置为所述非易失性存储器的二次启动段的起始地址;
控制Zynq芯片进行软复位,根据所述二次启动段的起始地址加载所述二次启动段上的搬运程序;根据所述搬运程序,将所述在线更新段上的所述在线更新包搬运至所述主程序段,将所述在线更新标志位设置为默认值,以实现关节驱动器固件更新。
优选的,在所述通过总线接口接收关节驱动器固件的在线更新包之前,还包括:
将用于存储关节驱动器固件的非易失性存储器划分为主程序段、二次启动段、在线更新段和在线更新标志位;
通过烧写接口接收关节驱动器固件的烧写器更新包,其中所述烧写器更新包包括主程序包和二次启动程序包,所述主程序包包括所述启动引导程序,所述二次启动程序包包括所述搬运程序;
将所述主程序包写入所述主程序段,将所述二次启动程序包写入所述二次启动段。
优选的,所述将所述在线更新标志位设置为默认值,以实现关节驱动器固件更新,包括:
将所述在线更新标志位设置为默认值,将软复位启动地址寄存器的数值设置为所述主程序段的起始地址,并控制Zynq芯片进行软复位,以实现关节驱动器固件更新;
或者,
将所述在线更新标志位设置为默认值,根据用户操作进行重启,以实现关节驱动器固件更新。
优选的,所述通过总线接口接收关节驱动器固件的在线更新包,包括:
通过EtherCAT总线协议的总线接口,接收关节驱动器固件的在线更新包。
优选的,所述非易失性存储器为QSPI。
第二方面,本申请提供了一种关节驱动器固件在线更新装置,应用于Zynq芯片,包括:
在线更新包写入模块:用于通过总线接口接收关节驱动器固件的在线更新包,将所述在线更新包写入非易失性存储器的在线更新段,将所述非易失性存储器的在线更新标志位设置为目标值;
软复位设置模块:用于在重启后,加载所述非易失性存储器的主程序段上的启动引导程序;根据所述启动引导程序,读取所述在线更新标志位,若读取到的数值为所述目标值,则将软复位启动地址寄存器的数值设置为所述非易失性存储器的二次启动段的起始地址;
在线更新包搬运模块:用于控制Zynq芯片进行软复位,根据所述二次启动段的起始地址加载所述二次启动段上的搬运程序;根据所述搬运程序,将所述在线更新段上的所述在线更新包搬运至所述主程序段,将所述在线更新标志位设置为默认值,以实现关节驱动器固件更新。
第三方面,本申请提供了一种关节驱动器,包括Zynq芯片和非易失性存储器,所述Zynq芯片用于实现如上文所述的关节驱动器固件在线更新方法。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的关节驱动器固件在线更新方法。
本申请所提供的一种关节驱动器固件在线更新方法,应用于Zynq芯片,包括:通过总线接口接收关节驱动器固件的在线更新包,将在线更新包写入非易失性存储器的在线更新段,将非易失性存储器的在线更新标志位设置为目标值;在重启后,加载非易失性存储器的主程序段上的启动引导程序;根据启动引导程序,读取在线更新标志位,若读取到的数值为目标值,则将软复位启动地址寄存器的数值设置为非易失性存储器的二次启动段的起始地址;控制Zynq芯片进行软复位,根据二次启动段的起始地址加载二次启动段上的搬运程序;根据搬运程序,将在线更新段上的在线更新包搬运至主程序段,将在线更新标志位设置为默认值,以实现关节驱动器固件更新。
可见,本申请至少具备以下三个优点:
优点一,在通过总线接口接收在线更新包时,并不擦除主程序段,而且,只有在将在线更新包完整地写入在线更新段之后,才会将标志位设置为目标值。因此,即便在在线更新包的接收过程中程序意外中止,关节驱动器的主程序段也不会受到影响,在重启后,关节驱动器仍然能够执行主程序段中存储的固件。
优点二,在执行搬运程序时,当且仅当在将在线更新包完全地搬运到主程序段之后,才会清除标志位。因此,即便在搬运过程中程序意外中止,由于重启后标志位仍为目标值,因此依然会跳转执行搬运程序,直至完成搬运。
优点三,鉴于本申请的更新机制,只要重启并且标志位为目标值就会进行固件更新,因此主程序段上的固件版本和在线更新段上的固件版本不会相差太多。
综上,本申请的关节驱动器固件在线更新方法,不需要拆卸机器人,更新过程具有更强的鲁棒性,即便在多个阶段出现断电等意外情况,驱动器仍然可以保留至少一个可运行的固件,不会导致关节驱动器就此死机。
此外,本申请还提供了一种关节驱动器的固件在线更新装置、关节驱动器及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的一种关节驱动器固件在线更新方法实施例一的实现流程图;
图2为本申请所提供的一种关节驱动器固件在线更新方法实施例二中固件二进制文件的组成示意图;
图3为本申请所提供的一种关节驱动器固件在线更新方法实施例二的实现流程图;
图4为本申请所提供的一种关节驱动器固件在线更新装置实施例的功能框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
机器人控制系统中,关节驱动器是驱动器的一种,体积较小,往往和电机、减速器安装在一起,形成一个一体化的关节模组,直接安装到机器人本体上,而非控制柜内。在安装之后,一般不将关节驱动器的烧写接口引出到机器人外部,因此,在需要更新关节驱动器固件时,一般只是利用总线通信接口进行关节驱动器固件在线更新。本申请中,关节驱动器固件是指关节驱动器的固件,其中固件是指控制驱动器运行的程序,一般在存储器中以二进制文件的形式存在,又称为固件二进制文件。
本申请提供了一种关节驱动器固件在线更新方法、装置、关节驱动器及可读存储介质。下面对本申请提供的一种关节驱动器固件在线更新方法实施例一进行介绍,参见图1,实施例一应用于Zynq芯片,包括:
S101、通过总线接口接收关节驱动器固件的在线更新包,将在线更新包写入非易失性存储器的在线更新段,将非易失性存储器的在线更新标志位设置为目标值;
S102、在重启后,加载非易失性存储器的主程序段上的启动引导程序;根据启动引导程序,读取在线更新标志位,若读取到的数值为目标值,则将软复位启动地址寄存器的数值设置为非易失性存储器的二次启动段的起始地址;
此处的重启具体可以为断电重启。
S103、控制Zynq芯片进行软复位,根据二次启动段的起始地址加载二次启动段上的搬运程序;根据搬运程序,将在线更新段上的在线更新包搬运至主程序段,将在线更新标志位设置为默认值,以实现关节驱动器固件更新。
关节驱动器包括主控芯片和非易失性存储器,其中主控芯片用于运行关节驱动器固件,非易失性存储器则用于存储关节驱动器固件和其他文件。关节驱动器固件有一个供主控芯片识别的文件头,开机时,主控芯片从非易失性存储器中识别、读取并运行关节驱动器固件。
本实施例中,非易失性存储器是指断电后依然能保存内容的存储器,实际应用中可以选用FLASH,EEPROM等。
本实施例选用Zynq芯片作为关节驱动器的主控芯片,Zynq芯片具备以下特点:第一,Zynq芯片断电重启(芯片断电后再上电启动,Power-On Reset)时,默认从非易失性存储器的地址0开始读取,读取到关节驱动器固件的文件头时,便根据此文件头中的信息,读取关节驱动器固件。第二,Zynq芯片具备MultiBoot功能,可以在芯片通电的情况下进行软复位,软复位之后,从软复位启动地址寄存器所指定的地址开始读非易失性存储器。而且软复位启动地址寄存器可人为设定,Zynq芯片断电重启时,该寄存器地址自动清零。
可以理解的是,实际应用中,也可以选用其他芯片作为关节驱动器的主控芯片,只要具备上述两个特点即可。
基于以上非易失性存储介质和Zynq芯片,本实施例用于实现对关节驱动器固件的在线更新,所谓在线更新,是指不通过诸如JTAG或串口等烧写线传输固件,而是通过总线传输固件,由正在运行中的固件接收,并更新非易失性存储器上的固件二进制文件的过程。
为了实现上述在线更新的目的,本实施例对关节驱动器固件和非易失性存储器做以下改进:
一般的,关节驱动器固件由多个编译输出文件组合而成,常见组成文件包括.elf文件、.bit文件、.bin文件等,这些组成文件具备一个特点:在关节驱动器固件中的相对地址可人为指定。基于这个特点,本实施例首先对关节驱动器固件做修改,将固件更新包划分为两种包,即烧写器更新包和在线更新包,如表1和图2所示,烧写器更新包和在线更新包的组成文件不同,所以二者不通用。
实际应用中,首先通过烧写接口将烧写器更新包写入关节驱动器,在关节驱动器具备在线更新功能时,通过总线接口传输的在线更新包完成固件更新。
相应的,本实施例将非易失性存储器划分为多个区段,以实现对烧写器更新包和在线更新包的空间分配,如表1所示:
表1
将非易失性存储器划分为四个部分:主程序段、二次启动段、在线更新段和在线更新标志位。其中,主程序段和二次启动段用于存储烧写器更新包,在线更新段用于存储在线更新包,标志位端用于存储在线更新标志位。
基于以上改进,本实施例的关节驱动器固件在线更新过程如图1所示,包括:首先,Zynq芯片通过总线接口接收关节驱动器固件的在线更新包,然后将在线更新包写入非易失性存储器的在线更新段,并在写入完成后将非易失性存储器的在线更新标志位设置为目标值。之后,断电重启Zynq芯片,加载非易失性存储器的主程序段上的启动引导程序,根据启动引导程序读取在线更新标志位,判断读取到的数值是否为前述目标值,若是,则基于Zynq芯片允许自由设置软复位启动地址寄存器的数值的特性,将软复位启动地址寄存器的数值设置为非易失性存储器的二次启动段的起始地址。再然后,Zynq芯片进行软复位,根据二次启动段的起始地址加载二次启动段上的搬运程序,根据搬运程序将在线更新段上的在线更新包搬运至主程序段,搬运完成后,将在线更新标志位设置为默认值,至此关节驱动器固件在线更新过程结束。
可见,本实施例在通过总线接口接收固件在线更新包时,不清除主程序段上的原有固件,而是将在线更新包写入非易失性存储介质的另一区段,即在线更新段,并将在线更新标志位设置为目标值。然后,当关节驱动器重启后,借助前述的在线更新标志位,判定是否有固件更新,若有,则利用Zynq芯片的软复位功能,指定软复位后从非易失性存储器的二次启动段的起始地址开始读取固件二进制文件,从而加载二次启动段上的搬运程序,将在线更新段上的数据到主程序段,并搬运完成后清空在线更新标志位,完成固件更新。
具体的,在搬运完在线更新包后,本实施例提供以下两种更新读取地址的方式:将在线更新标志位设置为默认值,将软复位启动地址寄存器的数值设置为主程序段的起始地址,并控制Zynq芯片进行软复位,以实现关节驱动器固件更新。或者,将在线更新标志位设置为默认值,根据用户操作进行重启,以实现关节驱动器固件更新。
本实施例所提供一种关节驱动器固件在线更新方法,可以在不拆卸关节的情况下,利用总线接口,更新关节驱动器固件。并且,利用Zynq芯片的特点,对传统的固件在线更新方案做了一定的改动,使得修改后的驱动器固件在线更新方案具有更强的鲁棒性,即便在多个阶段出现断电等意外情况,驱动仍然可以保留至少一个可运行的固件。
下面开始详细介绍本申请提供的一种关节驱动器固件在线更新方法实施例二。
实施例二中,选用QSPI(Quad Serial Peripheral Interface,4线串行外设接口)作为关节驱动器的非易失性存储器,用于存储固件二进制文件;使用EtherCAT总线协议作为机器人控制系统与关节驱动器之间的通信协议,EtherCAT总线协议本身就有完整的文件传输和识别方法,因此,对于关节驱动器如何识别总线接口传来的固件二进制文件,本实施例不再展开介绍。
对于QSPI,总存储空间为16M,按照表2进行空间分配:
表2
本实施例提供的在线更新方案,整体流程图示如图3所示,下面对照图3对在线更新过程进行说明:
S201、关节驱动器上电启动(Power-On Reset)之后,根据Zynq芯片启动的特性,软复位启动地址寄存器的数值清零。
S202、自动加载主程序段上的启动引导程序。
S203、启动引导程序读取QSPI的在线更新标志位,并判断读取结果是否为FLAG1,若是,则进入S204,否则进入S209。
S204、继续判断当前加载的启动引导程序的起始地址是否位于主程序段,若是,进入S205,否则进入S207。
S205、设定软复位启动地址寄存器的数值为二次启动段的起始地址,随后软复位Zynq芯片。
S206、根据软复位启动地址寄存器的数值读取二次启动段,加载二次启动段上的启动引导程序,进入S203。
S207、加载搬运程序。
S208、搬运程序将把在线更新段的内容搬运到主程序段,搬运完成后,清除在线更新标志位,并且设定软复位启动地址寄存器的数值为主程序段的起始地址,随后软复位Zynq芯片,进入S206。
S209、判定没有固件更新,当前固件为最新固件,接下来加载主程序段上的驱动主程序。
S210、驱动器主程序开始运行。
S211、持续检测机器人系统是否通过总线接口发送在线更新包,若是,进入S212,否则回到S210。
S212、判断在线更新包是否接收完成,若是,进入S213,否则进入S214。
S213、将在线更新标志位刷新为特定值,记为FLAG1。
S214、将在线更新包写入QSPI的在线更新段,进入S210。
下面对本申请实施例提供的一种关节驱动器固件在线更新装置进行介绍,下文描述的一种关节驱动器固件在线更新装置与上文描述的一种关节驱动器固件在线更新方法可相互对应参照。
本申请的关节驱动器固件在线更新装置,应用于Zynq芯片,如图4所示,包括:
在线更新包写入模块401:用于通过总线接口接收关节驱动器固件的在线更新包,将在线更新包写入非易失性存储器的在线更新段,将非易失性存储器的在线更新标志位设置为目标值;
软复位设置模块402:用于在重启后,加载非易失性存储器的主程序段上的启动引导程序;根据启动引导程序,读取在线更新标志位,若读取到的数值为目标值,则将软复位启动地址寄存器的数值设置为非易失性存储器的二次启动段的起始地址;
在线更新包搬运模块403:用于控制Zynq芯片进行软复位,根据二次启动段的起始地址加载二次启动段上的搬运程序;根据搬运程序,将在线更新段上的在线更新包搬运至主程序段,将在线更新标志位设置为默认值,以实现关节驱动器固件更新。
本实施例的关节驱动器固件在线更新装置用于实现前述的关节驱动器固件在线更新方法,因此该装置中的具体实施方式可见前文中的关节驱动器固件在线更新方法的实施例部分,例如,在线更新包写入模块401、软复位设置模块402、在线更新包搬运模块403,分别用于实现上述关节驱动器固件在线更新方法中步骤S101,S102,S103。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的关节驱动器固件在线更新装置用于实现前述的关节驱动器的固件在线更新方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本申请还提供了一种关节驱动器,包括Zynq芯片和非易失性存储器,Zynq芯片用于实现如前文所述的关节驱动器固件在线更新方法。
最后,本申请提供了一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时用于实现如上文所述的关节驱动器固件在线更新方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种关节驱动器固件在线更新方法,其特征在于,应用于Zynq芯片,包括:
通过总线接口接收关节驱动器固件的在线更新包,将所述在线更新包写入非易失性存储器的在线更新段,将所述非易失性存储器的在线更新标志位设置为目标值;
在重启后,加载所述非易失性存储器的主程序段上的启动引导程序;根据所述启动引导程序,读取所述在线更新标志位,若读取到的数值为所述目标值,则将软复位启动地址寄存器的数值设置为所述非易失性存储器的二次启动段的起始地址;
控制Zynq芯片进行软复位,根据所述二次启动段的起始地址加载所述二次启动段上的搬运程序;根据所述搬运程序,将所述在线更新段上的所述在线更新包搬运至所述主程序段,将所述在线更新标志位设置为默认值,以实现关节驱动器固件更新。
2.如权利要求1所述的方法,其特征在于,在所述通过总线接口接收关节驱动器固件的在线更新包之前,还包括:
将用于存储关节驱动器固件的非易失性存储器划分为主程序段、二次启动段、在线更新段和在线更新标志位;
通过烧写接口接收关节驱动器固件的烧写器更新包,其中所述烧写器更新包包括主程序包和二次启动程序包,所述主程序包包括所述启动引导程序,所述二次启动程序包包括所述搬运程序;
将所述主程序包写入所述主程序段,将所述二次启动程序包写入所述二次启动段。
3.如权利要求1所述的方法,其特征在于,所述将所述在线更新标志位设置为默认值,以实现关节驱动器固件更新,包括:
将所述在线更新标志位设置为默认值,将软复位启动地址寄存器的数值设置为所述主程序段的起始地址,并控制Zynq芯片进行软复位,以实现关节驱动器固件更新;
或者,
将所述在线更新标志位设置为默认值,根据用户操作进行重启,以实现关节驱动器固件更新。
4.如权利要求1所述的方法,其特征在于,所述通过总线接口接收关节驱动器固件的在线更新包,包括:
通过EtherCAT总线协议的总线接口,接收关节驱动器固件的在线更新包。
5.如权利要求1所述的方法,其特征在于,所述非易失性存储器为QSPI。
6.一种关节驱动器固件在线更新装置,其特征在于,应用于Zynq芯片,包括:
在线更新包写入模块:用于通过总线接口接收关节驱动器固件的在线更新包,将所述在线更新包写入非易失性存储器的在线更新段,将所述非易失性存储器的在线更新标志位设置为目标值;
软复位设置模块:用于在重启后,加载所述非易失性存储器的主程序段上的启动引导程序;根据所述启动引导程序,读取所述在线更新标志位,若读取到的数值为所述目标值,则将软复位启动地址寄存器的数值设置为所述非易失性存储器的二次启动段的起始地址;
在线更新包搬运模块:用于控制Zynq芯片进行软复位,根据所述二次启动段的起始地址加载所述二次启动段上的搬运程序;根据所述搬运程序,将所述在线更新段上的所述在线更新包搬运至所述主程序段,将所述在线更新标志位设置为默认值,以实现关节驱动器固件更新。
7.一种关节驱动器,其特征在于,包括Zynq芯片和非易失性存储器,所述Zynq芯片用于实现如权利要求1-5任意一项所述的关节驱动器固件在线更新方法。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1-5任意一项所述的关节驱动器固件在线更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011216338.2A CN112269585B (zh) | 2020-11-04 | 2020-11-04 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011216338.2A CN112269585B (zh) | 2020-11-04 | 2020-11-04 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112269585A true CN112269585A (zh) | 2021-01-26 |
CN112269585B CN112269585B (zh) | 2022-11-25 |
Family
ID=74345109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011216338.2A Active CN112269585B (zh) | 2020-11-04 | 2020-11-04 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269585B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170717A (zh) * | 2023-11-01 | 2023-12-05 | 法奥意威(苏州)机器人系统有限公司 | 一种机器人及其关节程序升级方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005502971A (ja) * | 2001-09-17 | 2005-01-27 | ソマ ネットワークス インコーポレイテッド | ソフトウェアをアップデートする方法、装置、および、システム |
CN1968349A (zh) * | 2006-10-08 | 2007-05-23 | 深圳创维-Rgb电子有限公司 | 一种电视机软件的升级方法 |
CN101650658A (zh) * | 2008-08-14 | 2010-02-17 | 鸿富锦精密工业(深圳)有限公司 | 实现系统辅助激活技术的方法 |
US20180034793A1 (en) * | 2016-08-01 | 2018-02-01 | The Aerospace Corporation | High assurance configuration security processor (hacsp) for computing devices |
CN107797816A (zh) * | 2017-09-15 | 2018-03-13 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Fpga程序在线更新电路 |
CN107820603A (zh) * | 2016-12-30 | 2018-03-20 | 深圳配天智能技术研究院有限公司 | 一种固件更新方法及控制器 |
CN108694052A (zh) * | 2018-06-29 | 2018-10-23 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN110545319A (zh) * | 2019-08-23 | 2019-12-06 | 武汉久同智能科技有限公司 | 一种SoC核系统的设计和核间任务通信的实现方法 |
CN110837389A (zh) * | 2019-11-01 | 2020-02-25 | 北京云迹科技有限公司 | 设备升级方法、装置、物联网设备和存储介质 |
JP2020078665A (ja) * | 2020-02-28 | 2020-05-28 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
CN111427838A (zh) * | 2020-03-30 | 2020-07-17 | 电子科技大学 | 基于zynq动态更新卷积神经网络的分类系统及方法 |
CN111638887A (zh) * | 2020-05-27 | 2020-09-08 | 重庆航天工业有限公司 | 一种用于fpga芯片的程序固化方法 |
-
2020
- 2020-11-04 CN CN202011216338.2A patent/CN112269585B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005502971A (ja) * | 2001-09-17 | 2005-01-27 | ソマ ネットワークス インコーポレイテッド | ソフトウェアをアップデートする方法、装置、および、システム |
CN1968349A (zh) * | 2006-10-08 | 2007-05-23 | 深圳创维-Rgb电子有限公司 | 一种电视机软件的升级方法 |
CN101650658A (zh) * | 2008-08-14 | 2010-02-17 | 鸿富锦精密工业(深圳)有限公司 | 实现系统辅助激活技术的方法 |
US20180034793A1 (en) * | 2016-08-01 | 2018-02-01 | The Aerospace Corporation | High assurance configuration security processor (hacsp) for computing devices |
CN107820603A (zh) * | 2016-12-30 | 2018-03-20 | 深圳配天智能技术研究院有限公司 | 一种固件更新方法及控制器 |
CN107797816A (zh) * | 2017-09-15 | 2018-03-13 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | Fpga程序在线更新电路 |
CN108694052A (zh) * | 2018-06-29 | 2018-10-23 | 郑州云海信息技术有限公司 | 一种固件升级方法、固件升级装置及固件升级系统 |
CN110545319A (zh) * | 2019-08-23 | 2019-12-06 | 武汉久同智能科技有限公司 | 一种SoC核系统的设计和核间任务通信的实现方法 |
CN110837389A (zh) * | 2019-11-01 | 2020-02-25 | 北京云迹科技有限公司 | 设备升级方法、装置、物联网设备和存储介质 |
JP2020078665A (ja) * | 2020-02-28 | 2020-05-28 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
CN111427838A (zh) * | 2020-03-30 | 2020-07-17 | 电子科技大学 | 基于zynq动态更新卷积神经网络的分类系统及方法 |
CN111638887A (zh) * | 2020-05-27 | 2020-09-08 | 重庆航天工业有限公司 | 一种用于fpga芯片的程序固化方法 |
Non-Patent Citations (3)
Title |
---|
HIROSHI NAKAHARA: "Trax solver on Zynq using incremental update algorithm", 《2016 INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY (FPT)》 * |
戈润栋: "CAN总线分布式系统程序的以太网在线更新", 《工业控制计算机》 * |
王啸: "屏蔽门门控单元在线固件更新方法的研究", 《现代电子技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170717A (zh) * | 2023-11-01 | 2023-12-05 | 法奥意威(苏州)机器人系统有限公司 | 一种机器人及其关节程序升级方法 |
CN117170717B (zh) * | 2023-11-01 | 2024-01-23 | 法奥意威(苏州)机器人系统有限公司 | 一种机器人及其关节程序升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112269585B (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6227794B2 (ja) | 車両制御装置、リプログラミングシステム | |
US20100122017A1 (en) | Memory controller, non-volatile memory system, and host device | |
EP0990989A2 (en) | Microcomputer provided with flash memory and method of storing program into flash memory | |
JP2006011818A (ja) | 携帯可能電子装置及び携帯可能電子装置の制御方法 | |
KR20010070416A (ko) | 컴퓨터 | |
KR20060013829A (ko) | 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템 | |
CN112269585B (zh) | 一种关节驱动器固件在线更新方法、装置及关节驱动器 | |
CN114691178B (zh) | 一种基于EtherCAT通讯驱动器的固件升级方法及装置 | |
CN111026417A (zh) | 一种嵌入式设备的升级方法及嵌入式设备 | |
CN103339603A (zh) | 计算机重新编程方法、数据存储介质和机动车辆计算机 | |
CN111338702B (zh) | 一种基于片外nor-flash的SOC系统引导方法 | |
KR20080066381A (ko) | 소프트웨어의 업그레이드 방법 | |
JP4199121B2 (ja) | 改訂識別レジスタの内容を変更する方法及び装置 | |
JP2007316800A (ja) | 車載プログラム書換え制御装置 | |
JPWO2006101123A1 (ja) | 不揮発性記憶装置、不揮発性メモリのコントローラ、及び不揮発性記憶システム | |
JP2007310447A (ja) | データ記憶装置およびこの初期化方法 | |
JP2002007152A (ja) | ダウンロード方法および装置 | |
JP2003271420A (ja) | 電子制御装置 | |
CN112346770A (zh) | 一种嵌入式程序在线更新方法 | |
US6466994B1 (en) | Method and system for programming a system board using a peripheral controller | |
JPH11282690A (ja) | 制御プログラムの書込方法及び情報処理装置並びに情報処理システム | |
CN113467842B (zh) | 适用于工业级应用场景的嵌入式设备的启动方法、嵌入式设备和计算机可读存储介质 | |
JP2009265923A (ja) | ソフトウェア書き換え装置及びソフトウェア書き換え方法及びソフトウェア書き換えプログラム | |
US20090077303A1 (en) | System for transferring information and method thereof | |
JPH1083358A (ja) | プログラム書換方法およびプログラム書換機能付制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |