CN109901866A - 用于多模块系统的在线升级方法及旋转导向系统 - Google Patents

用于多模块系统的在线升级方法及旋转导向系统 Download PDF

Info

Publication number
CN109901866A
CN109901866A CN201711285219.0A CN201711285219A CN109901866A CN 109901866 A CN109901866 A CN 109901866A CN 201711285219 A CN201711285219 A CN 201711285219A CN 109901866 A CN109901866 A CN 109901866A
Authority
CN
China
Prior art keywords
module
program
data
upgraded
upgrade procedure
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.)
Pending
Application number
CN201711285219.0A
Other languages
English (en)
Inventor
杨斌
白璟
马慧斌
唐雅琴
刘焕雨
薛秋来
吕伟
刘庆成
张东旭
廖冲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China National Petroleum Corp
Aerospace Science and Industry Inertia Technology Co Ltd
CNPC Chuanqing Drilling Engineering Co Ltd
Original Assignee
Aerospace Science and Industry Inertia Technology Co Ltd
Drilling Engineering Technology Research Institute of CNPC Chuanqing Drilling Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aerospace Science and Industry Inertia Technology Co Ltd, Drilling Engineering Technology Research Institute of CNPC Chuanqing Drilling Engineering Co Ltd filed Critical Aerospace Science and Industry Inertia Technology Co Ltd
Priority to CN201711285219.0A priority Critical patent/CN109901866A/zh
Publication of CN109901866A publication Critical patent/CN109901866A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种用于多模块系统的在线升级方法及旋转导向系统,该在线升级方法包括:将多模块系统通过单总线与上位机连接;上位机自动向多模块系统中的各个模块发送升级软件指令;各个模块接收升级软件指令并修改其相对应的EEPROM存储器中的存储值;将多模块系统断电并重新上电;各个模块运行各自的BootLoader程序并读取其相对应的EEPROM存储器中的存储值,针对待升级程序的模块,BootLoader程序接收升级程序数据并将升级程序数据写入相对应的FLASH存储器中;针对其他无需升级的模块,擦除EEPROM存储器中的存储值并等待待升级程序的模块升级程序。应用本发明的技术方案,以解决现有技术中软件升级方法操作不方便、效率低且无法保证仪器的密封性的技术问题。

Description

用于多模块系统的在线升级方法及旋转导向系统
技术领域
本发明涉及嵌入式软件在线升级的技术领域,尤其涉及一种用于多模块系统的在线升级方法及旋转导向系统。
背景技术
目前,嵌入式处理器最常用的软件升级方式是通过JTAG接口进行软件程序更新,该种方式由于JTAG接口信号线多,因此通常需要露出电路板才能达到升级程序的目的。针对旋转导向系统这种拆装难度大,且对密封性要求高的石油钻井仪器而言,采用此种软件升级方式进行旋转导向系统各模块的软件升级会导致操作不方便、效率低且无法保证仪器的密封性的问题。
发明内容
本发明提供了一种用于多模块系统的在线升级方法及旋转导向系统,能够解决现有技术中软件升级方法操作不方便、效率低且无法保证仪器的密封性的技术问题。
根据本发明的一方面,提供了一种用于多模块系统的在线升级方法,多模块系统具有多个模块,各个模块中均具有BootLoader程序、EEPROM存储器以及FLASH存储器,在线升级方法包括:将多模块系统通过单总线与上位机连接;上位机自动向多模块系统中的各个模块发送升级软件指令;各个模块接收升级软件指令并修改其相对应的EEPROM存储器中的存储值,存储值用于指示多个模块中待升级程序的模块的位置;将多模块系统断电并重新上电;各个模块运行各自的BootLoader程序并读取其相对应的EEPROM存储器中的存储值,判断多个模块中的待升级程序的模块;其中,针对待升级程序的模块,待升级程序的模块中的BootLoader程序接收升级程序数据并将升级程序数据写入相对应的FLASH存储器中;针对其他无需升级的模块,擦除无需升级的模块中的EEPROM存储器中的存储值并等待待升级程序的模块升级程序。
进一步地,各个模块接收升级软件指令并修改其相对应的EEPROM存储器中的存储值之后,在线升级方法还包括:各个模块接收到升级软件指令后,向上位机发送读取结果,上位机校验各个模块发送的读取结果,当读取结果不正确时,上位机报错并重新发送升级软件指令直至发送成功。
进一步地,待升级程序的模块中的BootLoader程序接收升级程序数据并将升级程序数据写入相对应的FLASH存储器中具体包括:待升级程序的模块中的BootLoader程序依次接收升级程序数据并将接收到的升级程序数据进行缓存;当缓存的升级程序数据达到设定存储量后,BootLoader程序将升级程序数据依次写入相对应的FLASH存储器中。
进一步地,待升级程序的模块中的BootLoader程序依次接收升级程序数据并将接受到的升级程序数据进行缓存具体包括:待升级程序的模块中的BootLoader程序依次接收升级程序数据,BootLoader程序每接收一帧数据,需要检查数据帧的同步头、目的地址和源地址,并核对数据帧的校验字节。
进一步地,BootLoader程序核对数据帧的校验字节具体包括:BootLoader程序核对数据帧的校验字节,当校验字节不正确时,将数据帧丢弃;当校验字节正确时,将数据帧返回至上位机,上位机验证发送的数据帧与接收的数据帧是否相同,如果发送的数据帧与接收的数据帧不相同,则上位机继续发送数据帧;如果发送的数据帧与接收的数据帧相同,则上位机发送下一帧的数据帧。
进一步地,BootLoader程序将升级程序数据依次写入相对应的FLASH存储器中具体包括:BootLoader程序判断键值,并获取应用起点;BootLoader程序对接收的数据块进行处理,并按照数据块中的地址信息存储到相应的位置。
进一步地,各个模块均还包括处理器,FLASH存储器为处理器的片内存储器,其中,键值与处理器的型号相匹配。
进一步地,在待升级程序的模块中的BootLoader程序接收升级程序数据之前,在线升级方法还包括:针对待升级程序的模块,等待设定时间以擦除FLASH存储器内的数据。
根据本发明的另一方面,提供了一种旋转导向系统,旋转导向系统包括多个模块,多个模块使用如上所述的在线升级方法进行程序升级。
应用本发明的技术方案,当系统某模块需要升级程序时,只需通过上位机对系统的各模块做简单的设置,即可通过单总线升级程序,操作简单、方便,不需拆装,有效地保证了产品的密封性。再者,本发明的在线升级方法通过编写具有防数据错误功能的BootLoader程序并在应用程序中增加与BootLoader的交互,从而将升级的应用程序准确、方便地通过单总线烧写到多模块系统的任意模块的FLASH存储器中。本发明的在线升级方法相对于现有技术而言,操作更加方便,不需要拆装仪器,在升级程序的同时有效的保证了系统的密封性,并节省了时间。
附图说明
所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分,用于例示本发明的实施例,并与文字描述一起来阐释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明的具体实施例提供的用于多模块系统的在线升级方法的流程框图;
图2示出了根据本发明的具体实施例提供的BootLoader程序接收获取有效数据的流程图;
图3示出了根据本发明的具体实施例提供的BootLoader程序向FLASH存储器中烧写程序的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
如图1所示,根据本发明的具体实施例提供了一种用于多模块系统的在线升级方法,该多模块系统具有多个模块,各个模块中均具有BootLoader程序、EEPROM存储器以及FLASH存储器,该在线升级方法包括:将多模块系统通过单总线与上位机连接;上位机自动向多模块系统中的各个模块发送升级软件指令;各个模块接收升级软件指令并修改其相对应的EEPROM存储器中的存储值,存储值用于指示多个模块中待升级程序的模块的位置;将多模块系统断电并重新上电;各个模块运行各自的BootLoader程序并读取其相对应的EEPROM存储器中的存储值,判断多个模块中的待升级程序的模块;其中,针对待升级程序的模块,待升级程序的模块中的BootLoader程序接收升级程序数据并将升级程序数据写入相对应的FLASH存储器中;针对其他无需升级的模块,擦除无需升级的模块中的EEPROM存储器中的存储值并等待待升级程序的模块升级程序。
应用本发明的在线升级方法,当系统某模块需要升级程序时,只需通过上位机对系统的各模块做简单的设置,即可通过单总线升级程序,操作简单、方便,不需拆装,有效地保证了产品的密封性。再者,本发明的在线升级方法通过编写具有防数据错误功能的BootLoader程序并在应用程序中增加与BootLoader的交互,从而将升级的应用程序准确、方便地通过单总线烧写到多模块系统的任意模块的FLASH存储器中。本发明的在线升级方法相对于现有技术而言,操作更加方便,不需要拆装仪器,在升级程序的同时有效的保证了系统的密封性,并节省了时间。
作为本发明的一个具体实施例,多模块系统包括旋转导向系统,其中,旋转导向系统的各个模块均通过RS485转单总线电路都挂接在单总线上,单总线由于可以同时传输电力和信息,且只有两根线,因此适合于旋转导向系统各模块互联并作为模块对外的电气接口。现在很多的嵌入式处理器除了支持从FLASH加载程序外,还支持从SPI、SCI、IIC等外设接口加载程序,SCI可以转换成RS485,然后通过RS485转单总线电路实现从单总线加载程序的硬件配置。然而,由于SCI是全双工的通信方式,而RS485和单总线是半双工的通信方式,RS485转单总线电路会有一定的误码率,而且嵌入式处理器出厂时不支持RS485的程序加载方式,所以通过编写具有防数据错误功能并支持半双工通信功能的BootLoader程序能够完成从单总线加载程序。另外,由于系统各模块都挂接在单总线上,所以需要各模块的BootLoader程序和应用程序交互,确定给哪个模块更新应用程序。
基于此,本发明的在线升级方法在不改变原有系统硬件的条件下,通过编写BootLoader程序并在应用程序中增加与BootLoader程序的交互,能够实现系统任意模块通过单总线升级应用程序的功能。
进一步地,在本发明中,各个模块均还包括处理器,FLASH存储器为处理器的片内存储器,在处理器中编写具有防数据错误功能的BootLoader程序。作为本发明的一个具体实施例,多模块系统选用在工业控制领域广泛使用的TI公司的数字信号控制器TMS320F2808作为所有模块的处理器,使用EEPROM作为BootLoader程序和应用程序交互的媒介。如图1所示,各个模块的应用程序接收上位机软件发送的升级软件指令并修改EEPROM相应地址的存储值,断电并重新通电后各模块先运行BootLoader程序读取EEPROM该地址的存储值,判断是否需要升级程序、需要升级哪个模块的程序,然后程序跳转到相应的入口。当不需要升级本模块程序时,擦除EEPROM该地址的值并等待其他模块升级程序。当需要升级本模块程序时,接收并分析数据,将有效数据解析成二进制代码写入FLASH相应的空间中。
进一步地,在本发明中,为了保证模块程序更新的正确性,在各个模块接收升级软件指令并修改其相对应的EEPROM存储器中的存储值之后,在线升级方法还包括:各个模块接收到升级软件指令后,向上位机发送读取结果,上位机校验各个模块发送的读取结果,当读取结果不正确时,上位机报错并重新发送升级软件指令直至发送成功。
作为本发明的一个具体实施例,当旋转导向各模块软件运行在应用程序时,上位机软件选择仪器串上有哪些模块,然后上位机根据配置依次向这些模块发送指令。每个模块都在EEPROM存储器里用两个字节的16位表示16个不同的模块,在接收到上位机发送的升级程序指令后,需要升级程序的模块所代表的位置为‘1’。然后将这两个字节返回给上位机,由上位机验证是否正确。16个位,每次只能有一位为1,其余全为0,否则,上位机报错,并自动重新设置,直到全部设置成功。断电并给仪器重新通电后,上位机软件选择待编程的模块和待更新应用程序的二进制文件,启动编程,直至编程结束。
为了对本发明有进一步地了解,下面结合图1对本发明的在线升级方法进行详细说明。
作为本发明的一个具体实施例,旋转导向系统包括16个模块,每个模块均包括TMS320F2808处理器、BootLoader程序、EEPROM存储器以及处理器的片内FLASH存储器,首先将该旋转导向系统通过测试盒与上位机连接,然后旋转导向系统上电,各个模块工作在用户程序下,此时各个模块均可接收设置指令。接着打开上位机端的应用程序,设置系统中所包含的模块,上位机自动向16个模块分别发送升级模块的指令并修改各个模块中的EEPROM存储器中的相应地址的存储值。其中,每个模块的EEPROM存储器中都用两个字节的16位表示16个不同的模块,在接收到升级程序指令后,需要升级程序的模块所代表的位置为“1”,其余全为0。每个模块的EEPROM存储器存储升级程序指令后对指令进行读取并返回读取结果,上位机校验各个模块发送的读取结果,当读取结果不正确时,上位机报错并重新发送升级软件指令直至发送成功。
然后,将旋转导向系统断电并重新上电,16个模块分别运行各自的BootLoader程序并读取其相对应的EEPROM存储器中的存储值,判断多个模块中的待升级程序的模块。其中,如果读取存储值之后确定第5个模块需要升级,那么此时等待10秒以用于将第5个模块中的FLASH存储器中的内容擦除并开始启动编程。第5个模块中的BootLoader程序接收升级程序数据并将升级程序数据写入相对应的处理器的片内FLASH存储器中。针对第1-4,6-16模块而言,将这些无需升级程序的模块中的EEPROM存储器中的存储值擦除并等待第5个模块升级程序。
进一步地,在本发明中,待升级程序的模块中的BootLoader程序接收升级程序数据并将升级程序数据写入相对应的FLASH存储器中具体包括:待升级程序的模块中的BootLoader程序依次接收升级程序数据并将接受到的升级程序数据进行缓存;当缓存的升级程序数据达到设定存储量后,BootLoader程序将升级程序数据依次写入相对应的FLASH存储器中。
如图2所示,待升级程序的模块中的BootLoader程序依次接收升级程序数据并将接受到的升级程序数据进行缓存具体包括:待升级程序的模块中的BootLoader程序依次接收升级程序数据,BootLoader程序每接收一帧数据,需要检查数据帧的同步头、目的地址和源地址,并核对数据帧的校验字节。具体地,BootLoader程序核对数据帧的校验字节具体包括:BootLoader程序核对数据帧的校验字节,当校验字节不正确时,将数据帧丢弃;当校验字节正确时,将数据帧返回至上位机,上位机验证发送的数据帧与接收的数据帧是否相同,如果发送的数据帧与接收的数据帧不相同,则上位机继续发送数据帧;如果发送的数据帧与接收的数据帧相同,则上位机发送下一帧的数据帧。
作为本发明的一个具体实施例,如图2所示,采用旋转导向系统作为多模块系统,其中,在上位机完成对仪器串设置后,将旋转导向系统重新上电。各模块首先进入BootLoader程序,此程序先读取EEPROM存储器里的2个字节,检查是否要升级本模块的应用程序,如果不需要,则清零EEPROM存储器的2个字节,退出并等待其他操作。如果需要升级本模块的应用程序,则进入串口中断,读取串口接收单总线转RS485的数据,使用完善的通信协议和严谨的逻辑判断丢弃无效与错误的数据。处理器每接收一帧数据,需要检查数据帧的同步头、目的地址和源地址,并核对校验字节,如果不正确则不处理,上位机等待一段时间后重发同一帧。如果校验字节正确则记录帧号,然后将接收到的数据帧返回给上位机。然后上位机验证发送的数据帧和接收的数据帧是否相同,如果不相同,则继续发送刚才的数据帧,相同则发下一帧。模块的处理器只有接收到校验字节正确的下一帧数据时,才将上一帧的有效数据缓存起来,等待进一步处理。
具体地,如图2所示,用Com0_Logic表示不同的状态,在进入串口中断,读取串口接收单总线转RS485的数据后,首先通过Com0_Logic是否等于零,如果Com0_Logic==0,则判断是否接收到了正确的同步头,如果接收到了正确的同步头,那么此时Com0_Logic==1,并退出,等到接收下一个数据帧时,直接进入Com0_Logic==1的步骤,以判断目的地址和源地址是否正确。如果未接收到正确的同步头,那么跳出,此时Com0_Logic仍等于0,然后接收下一个数据帧,继续判断是否接收到了正确的同步头。当Com0_Logic==1时,判断目的地址和源地址是否正确,如果该数据帧的目的地址和源地址相同,那么此时Com0_Logic==2,并退出,等到接收下一个数据帧时,直接进入Com0_Logic==2的步骤,并核对数据帧的校验字节。如果该数据帧的目的地址和源地址不相同,那么此时Com0_Logic==0,并退出,等到接收下一个数据帧时,重新开始进行Com0_Logic==0的步骤以判断是否接收到了正确的同步头。当Com0_Logic==2时,首先判断是否收满一帧数据,如果未收满,则跳出,此时Com0_Logic==0,等到接收下一个数据帧时,重新开始进行Com0_Logic==0的步骤以判断是否接收到了正确的同步头。如果已经收满了一帧数据,此时进行帧校验,如果帧校验错误,那么丢弃此帧数据,并重新开始数据接收。如果帧校验正确,那么将此帧数据返回给上位机,判断当前的帧号是否等于上一帧帧号加1,如果是,那么将上一帧数据作为待写入FLASH数据,缓存此帧数据。如果当前帧号等于上一帧帧号,那么则缓存此帧数据,如果当前的帧号既不等于上一帧帧号加1,也不等于上一帧帧号,那么Com0_Logic==0,等到接收下一个数据帧时,重新开始进行Com0_Logic==0的步骤以判断是否接收到了正确的同步头。如果在进行数据接收过程中出现错误,那么将Com0_Logic置为0,跳出并重新开始进行数据接收。
进一步地,在本发明中,BootLoader程序将升级程序数据依次写入相对应的FLASH存储器中具体包括:BootLoader程序判断键值,并获取应用起点;BootLoader程序对接收的数据块进行处理,并按照数据块中的地址信息存储到相应的位置。其中,键值与处理器的型号相匹配。
应用此种配置方式,由于在进行数据烧写时,BootLoader程序需要判断键值,而键值与处理器的型号相匹配,由于TI各系列、各型号的处理器DSP在程序加载引导方面有很大的相关性,当仪器某模块更换TI公司的其他处理器时,只需要对该BootLoader程序做相应修改即可,极大地提高了本发明的在线升级方法的可继承性和可重用性。
具体地,在进行数据烧写时,如图3所示,逐字节扫描图2中缓存的有效数据,解析有效数据的意义,将表示程序的二进制码写入处理器的片内FLASH中。该过程首先判断键值,接下来忽略8个保留字,然后获取应用起点EntryPoint,最后处理数据块,按照数据块中的地址信息存储到相应的位置。在程序里定义了一个无符号整型数组用于缓存解析到的待烧写数据,在程序较大时,有些数据块比该数组大,所以一个数据块可能分多次进行存储。代码使用switch语句,以状态机的形式完成数据流的扫描与处理。用Com0_Logic表示不同的状态。在Com0_Logic==0时,完成键值判断并获取ENTRYPOINT;Com0_Logic==1获取数据块大小,并判断数据传输是否结束;Com0_Logic==2完成数据往FLASH存储器里的编程。
作为本发明的一个具体实施例,使用的TI公司的数字信号控制器TMS320F2808作为所有模块的处理器,与该处理器相对应的键值为0x08AA,在进行数据烧写的过程中,首先判断键值是否等于0x08AA,如果不正确,那么此时发送键值错误标志并跳出。如果键值正确,那么此时判断接收的数据数是否等于11,如果是,则获取应用起点Entry Point,将Com0_Logic置为1,WordCount置为0,并跳出,当接收下一数据帧时,进入Com0_Logic==1的程序。在Com0_Logic==1的程序中,获取数据块的大小,并判断数据传输是否结束。此时,如果第一个字为0,那么此时发送程序更新成功标志。如果第一个字不为0,则判断接收的数据数是否等于3,当接收的数据数等于3,那么此时提取数据块的大小和存储地址,计算编程FLASH的次数,并将Com0_Logic置为2,WordCount置为0,并跳出,当接收下一帧数据时,则从数据块的存储地址开始向FLASH存储器中编程,并判断是否是这个数据块的最后一次编程。如果是,那么判断是否接收完剩下的全部数据,如果是,那么向FLASH存储器中编程并退出;如果不是,那么跳出并进行再一次的判断及烧写。如果判断不是这个数据块的最后一次编程,那么此时判断WordCount是否等于2048,如果是,那么进行FLASH存储器的编程,并将存储地址加2048并退出。如果在烧写过程中出现错误,那么将Com0_Logic置为0,WordCount置为0,发送逻辑混乱标志并跳出,发送这一次进入中断读取到的字节并退出。
根据本发明的又一方面,提供了一种旋转导向系统,该旋转导向系统包括多个模块,多个模块使用如上所述的任一项在线升级方法进行程序升级。由于本发明的在线升级方法相对于现有技术而言,操作更加方便,不需要拆装仪器,在升级程序的同时有效的保证了系统的密封性,并节省了时间。因此,使用本发明的在线升级方法进行旋转导向系统的程序升级,能够极大地提高工作效率,确保旋转导向系统的密封性。
在本发明的描述中,需要理解的是,方位词如“前、后、上、下、左、右”、“横向、竖向、垂直、水平”和“顶、底”等所指示的方位或位置关系通常是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,在未作相反说明的情况下,这些方位词并不指示和暗示所指的装置或元件必须具有特定的方位或者以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制;方位词“内、外”是指相对于各部件本身的轮廓的内外。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位(旋转90度或处于其他方位),并且对这里所使用的空间相对描述作出相应解释。
此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本发明保护范围的限制。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种用于多模块系统的在线升级方法,所述多模块系统具有多个模块,各个模块中均具有BootLoader程序、EEPROM存储器以及FLASH存储器,其特征在于,所述在线升级方法包括:
将多模块系统通过单总线与上位机连接;
所述上位机自动向所述多模块系统中的各个模块发送升级软件指令;
各个所述模块接收所述升级软件指令并修改其相对应的EEPROM存储器中的存储值,所述存储值用于指示多个所述模块中待升级程序的模块的位置;
将所述多模块系统断电并重新上电;
各个所述模块运行各自的BootLoader程序并读取其相对应的EEPROM存储器中的存储值,判断多个所述模块中的待升级程序的模块;其中,针对待升级程序的模块,所述待升级程序的模块中的BootLoader程序接收升级程序数据并将所述升级程序数据写入相对应的FLASH存储器中;针对其他无需升级的模块,擦除所述无需升级的模块中的EEPROM存储器中的存储值并等待所述待升级程序的模块升级程序。
2.根据权利要求1所述的用于多模块系统的在线升级方法,其特征在于,各个所述模块接收所述升级软件指令并修改其相对应的EEPROM存储器中的存储值之后,所述在线升级方法还包括:各个所述模块接收到所述升级软件指令后,向所述上位机发送读取结果,所述上位机校验各个模块发送的读取结果,当所述读取结果不正确时,所述上位机报错并重新发送所述升级软件指令直至发送成功。
3.根据权利要求2所述的用于多模块系统的在线升级方法,其特征在于,所述待升级程序的模块中的BootLoader程序接收升级程序数据并将所述升级程序数据写入相对应的FLASH存储器中具体包括:
所述待升级程序的模块中的BootLoader程序依次接收所述升级程序数据并将接收到的所述升级程序数据进行缓存;
当缓存的所述升级程序数据达到设定存储量后,所述BootLoader程序将所述升级程序数据依次写入相对应的FLASH存储器中。
4.根据权利要求3所述的用于多模块系统的在线升级方法,其特征在于,所述待升级程序的模块中的BootLoader程序依次接收所述升级程序数据并将接受到的所述升级程序数据进行缓存具体包括:
所述待升级程序的模块中的BootLoader程序依次接收所述升级程序数据,所述BootLoader程序每接收一帧数据,需要检查数据帧的同步头、目的地址和源地址,并核对所述数据帧的校验字节。
5.根据权利要求4所述的用于多模块系统的在线升级方法,其特征在于,所述BootLoader程序核对所述数据帧的校验字节具体包括:所述BootLoader程序核对所述数据帧的校验字节,当所述校验字节不正确时,将所述数据帧丢弃;当所述校验字节正确时,将所述数据帧返回至所述上位机,所述上位机验证发送的数据帧与接收的数据帧是否相同,如果发送的数据帧与接收的数据帧不相同,则所述上位机继续发送所述数据帧;如果发送的数据帧与接收的数据帧相同,则所述上位机发送下一帧的数据帧。
6.根据权利要求3所述的用于多模块系统的在线升级方法,其特征在于,所述BootLoader程序将所述升级程序数据依次写入相对应的FLASH存储器中具体包括:所述BootLoader程序判断键值,并获取应用起点;所述BootLoader程序对接收的数据块进行处理,并按照所述数据块中的地址信息存储到相应的位置。
7.根据权利要求6所述的用于多模块系统的在线升级方法,其特征在于,各个所述模块均还包括处理器,所述FLASH存储器为所述处理器的片内存储器,其中,所述键值与所述处理器的型号相匹配。
8.根据权利要求1所述的用于多模块系统的在线升级方法,其特征在于,在所述待升级程序的模块中的BootLoader程序接收升级程序数据之前,所述在线升级方法还包括:针对待升级程序的模块,等待设定时间以擦除所述FLASH存储器内的数据。
9.一种旋转导向系统,其特征在于,所述旋转导向系统包括多个模块,多个模块使用如权利要求1至8中的任一项所述的在线升级方法进行程序升级。
CN201711285219.0A 2017-12-07 2017-12-07 用于多模块系统的在线升级方法及旋转导向系统 Pending CN109901866A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711285219.0A CN109901866A (zh) 2017-12-07 2017-12-07 用于多模块系统的在线升级方法及旋转导向系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711285219.0A CN109901866A (zh) 2017-12-07 2017-12-07 用于多模块系统的在线升级方法及旋转导向系统

Publications (1)

Publication Number Publication Date
CN109901866A true CN109901866A (zh) 2019-06-18

Family

ID=66939159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711285219.0A Pending CN109901866A (zh) 2017-12-07 2017-12-07 用于多模块系统的在线升级方法及旋转导向系统

Country Status (1)

Country Link
CN (1) CN109901866A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309351A (zh) * 2020-01-14 2020-06-19 中国科学院地质与地球物理研究所 一种数据升级方法及系统
CN112035151A (zh) * 2020-08-17 2020-12-04 西安航天三沃机电设备有限责任公司 一种惯性测量单元软件在线升级的方法
CN112328290A (zh) * 2020-12-04 2021-02-05 第一拖拉机股份有限公司 一种农机数据采集终端程序远程更新方法及系统
CN113407206A (zh) * 2021-06-08 2021-09-17 厦门美科物联科技有限公司 一种单片机的自定义升级方法
CN114629738A (zh) * 2020-12-14 2022-06-14 中国石油化工股份有限公司 旋转导向单总线传输控制装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101610499A (zh) * 2009-07-13 2009-12-23 中兴通讯股份有限公司 无线数据卡的升级方法和系统
CN103136028A (zh) * 2013-03-11 2013-06-05 西北工业大学 一种基于fpga的flash存储器远程在线升级方法
CN104090796A (zh) * 2014-07-08 2014-10-08 成都万维图新信息技术有限公司 一种嵌入式设备程序更新方法和系统
WO2015051647A1 (zh) * 2013-10-10 2015-04-16 中兴通讯股份有限公司 一种固件的升级方法和系统、上位机和光模块
CN105183523A (zh) * 2015-09-29 2015-12-23 国网智能电网研究院 一种dsp程序的远程升级方法
CN105320531A (zh) * 2014-07-15 2016-02-10 北京自动化控制设备研究所 一种基于MicroBlaze软核的FPGA软件在线升级方法
CN106648691A (zh) * 2016-12-29 2017-05-10 深圳Tcl数字技术有限公司 多模块软件更新方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101610499A (zh) * 2009-07-13 2009-12-23 中兴通讯股份有限公司 无线数据卡的升级方法和系统
CN103136028A (zh) * 2013-03-11 2013-06-05 西北工业大学 一种基于fpga的flash存储器远程在线升级方法
WO2015051647A1 (zh) * 2013-10-10 2015-04-16 中兴通讯股份有限公司 一种固件的升级方法和系统、上位机和光模块
CN104090796A (zh) * 2014-07-08 2014-10-08 成都万维图新信息技术有限公司 一种嵌入式设备程序更新方法和系统
CN105320531A (zh) * 2014-07-15 2016-02-10 北京自动化控制设备研究所 一种基于MicroBlaze软核的FPGA软件在线升级方法
CN105183523A (zh) * 2015-09-29 2015-12-23 国网智能电网研究院 一种dsp程序的远程升级方法
CN106648691A (zh) * 2016-12-29 2017-05-10 深圳Tcl数字技术有限公司 多模块软件更新方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309351A (zh) * 2020-01-14 2020-06-19 中国科学院地质与地球物理研究所 一种数据升级方法及系统
CN112035151A (zh) * 2020-08-17 2020-12-04 西安航天三沃机电设备有限责任公司 一种惯性测量单元软件在线升级的方法
CN112328290A (zh) * 2020-12-04 2021-02-05 第一拖拉机股份有限公司 一种农机数据采集终端程序远程更新方法及系统
CN112328290B (zh) * 2020-12-04 2023-08-22 第一拖拉机股份有限公司 一种农机数据采集终端程序远程更新方法及系统
CN114629738A (zh) * 2020-12-14 2022-06-14 中国石油化工股份有限公司 旋转导向单总线传输控制装置
CN113407206A (zh) * 2021-06-08 2021-09-17 厦门美科物联科技有限公司 一种单片机的自定义升级方法

Similar Documents

Publication Publication Date Title
CN109901866A (zh) 用于多模块系统的在线升级方法及旋转导向系统
CN110209419A (zh) 一种基于can总线的嵌入式dsp设备升级方法及装置
CN102999350B (zh) 一种数字信号处理平台中fpga程序升级在线下载方法
CN110134415A (zh) 一种控制器及其软件升级方法和装置
CN106598650A (zh) 基于光纤通信的fpga程序在线升级的装置及方法
CN100511148C (zh) 一种cpu系统的启动方法及系统
CN103309709B (zh) 一种固件升级方法、装置及通信设备
US20030041182A1 (en) Self updating a firmware device
CN109002310A (zh) 固件升级方法
CN107562437A (zh) 一种基于MicroBlaze软核的FPGA在线升级的系统及方法
CN102033770A (zh) 移动终端的触摸屏固件升级方法及装置
US20090198770A1 (en) System and method of updating codes in controller
CN109189445A (zh) 一种物联网设备程序升级的方法
CN111008033A (zh) 一种基于串口的通用dsp在线升级系统及升级方法
CN105182210B (zh) 一种计量芯片测试装置的通用接口及其实现方法
CN101251819A (zh) 一种适用于多处理器核系统芯片的调试方法
CN105320553A (zh) 一种基于国产处理器平台更新网卡固件的方法及系统
CN109669729A (zh) 一种处理器的启动引导方法
CN107704258A (zh) Uboot升级方法、系统及终端设备
CN109308236A (zh) 一种热插拔功能测试方法、装置及相关设备
CN110851163A (zh) 一种基于can通信的兼容多设备平台的软件更新方法
CN114443175A (zh) 一种用于弹载fpga在线升级的启动配置方法
CN102253845A (zh) 服务器系统
CN107015829A (zh) 音频系统升级方法、装置
CN107894899A (zh) Rom程序升级系统及升级方法

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201209

Address after: 100070 3 floor, 2 building, 1 Haiying Road, Fengtai District, Beijing.

Applicant after: AEROSPACE SCIENCE AND INDUSTRY INERTIAL TECHNOLOGY Co.,Ltd.

Applicant after: CHINA NATIONAL PETROLEUM Corp.

Applicant after: CHINA NATIONAL PETROLEUM CORPORATION CHUANQING DRILLING ENGINEERING Co.

Address before: 3 / F, building 2, yard 1, Haiying Road, Fengtai District, Beijing 100074

Applicant before: AEROSPACE SCIENCE AND INDUSTRY INERTIAL TECHNOLOGY Co.,Ltd.

Applicant before: DRILLING & PRODUCTION ENGINEERING TECHNOLOGY RESEARCH INSTITUTE OF CNPC CHUANQING DRILLING EXPLORATION Co.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190618