一种面向水下无人航行器的软件远程更新方法
【专利摘要】本发明公开了一种面向水下无人航行器的软件远程更新方法,包括:根据更新需求,准备软件更新数据包;通过无线电通信方式将软件更新数据包下载到任务控制计算机,为了保证软件下载的可靠性,采用了软件数据包分包下载和数据传输握手的下载方式;任务控制计算机将分包接收的软件更新数据包进行合并及一次解包,将各子更新数据包通过网络通信方式发送到相应的功能计算机;需要更新的各水下功能计算机将接收到的子更新数据包进行二次解包,然后进行软件更新。本发明采用多种通信模式相结合的方法进行软件更新,使得水下无人航行器的软件更新过程更加方便、快捷。
【专利说明】一种面向水下无人航行器的软件远程更新方法
【技术领域】
[0001]本发明涉及软件更新领域,尤其涉及一种面向水下无人航行器的软件远程更新方法。
【背景技术】
[0002]控制软件对水下无人航行器来说,好比水下无人航行器的灵魂,软件的成熟度在一定程度上决定了水下无人航行器的成熟度。水下无人航行器在试验过程中可能需要不断对安装在水下无人航行器密封舱内的任务控制计算机、运动控制计算机、导航计算机、定位导引计算机等功能计算机的软件进行更新。而目前,采用传统方式对水下无人航行器进行软件更新必须将其回收,然后通过网络通信方式进行软件更新。水面监控计算机作为服务器端存储水下各功能计算机所需的软件更新数据包,而水下功能计算机作为客户端与服务器建立网络连接,然后通过网络接收服务器端发送的更新数据包,这就是传统的水下无人航行器进行软件更新的方式。由于受到网络通信距离的限制,传统的软件更新方式必须在近距离内完成。
[0003]上述传统的水下无人航行器进行软件更新的方式存在如下缺点:由于网络通信距离短,因此对于正在执行水下作业的水下无人航行器来说若要进行软件更新,必须对其进行回收,有线网络通信通常还需要人工将网线插在水下无人航行器上才可以进行通信,无线网络通信作用距离十分受限。这种软件更新通信方式不仅中断了正在进行的水下作业,而且增加了回收成本。总之,这种方式不适合对远程作业的水下无人航行器进行软件更新。
【发明内容】
[0004]本发明的目的在于提供一种能够方便,快捷,且有效地对远距离作业的水下无人航行器进行软件更新的方法。软件更新过程中以水面监控计算机为更新软件发送方,水下任务控制计算机一次接收方,各功能计算机为二次接收方,采用多种通信模式相结合的方法进行数据传输,整个过程不需起吊回收、不需拆装水下无人航行器,使得水下无人航行器的软件更新过程更加方便、快捷,尤其是可以实现水下无人航行器的远程软件更新。
[0005]本发明是通过以下步骤实现的:
[0006]a)根据更新需求,水面监控计算机将水下各功能计算机所需更新软件的相应文件进行封装处理,准备软件更新数据包;
[0007]b)水面监控计算机向任务控制计算机发送软件更新通知;
[0008]c)任务控制计算机接收到水面监控计算机的软件更新通知后,根据水下无人航行器的工作状态选择合适的通信模式实现水面监控计算机与任务控制计算机间的应答;
[0009]d)水面监控计算机接收到任务控制计算机的软件更新应答后,通过无线电、卫星通信或水声通信方式将软件更新数据包下载到任务控制计算机,为了保证软件下载的可靠性,采用了软件数据包分包下载和数据传输握手的下载方式;
[0010]e)任务控制计算机将分包接收的软件更新数据包进行合并及一次解包,根据子更新数据包的标识判断需要软件更新的功能计算机,并通知其进行软件更新准备,然后将各子更新数据包通过网络通信方式发送到相应功能计算机;
[0011]f)需要软件更新的各水下功能计算机将接收到的子更新数据包进行二次解包,然后进行软件更新,以软件更新文件置换相应软件旧文件;
[0012]g)相应的水下功能计算机在软件更新完毕后,通过网络通信方式告知任务控制计算机更新完毕,然后由任务控制计算机通过无线电、卫星通信或水声通信方式向水面监控计算机报告软件更新完毕;
[0013]h)水面监控计算机根据水下各功能计算机的更新完成情况判断是否需要重新发送,若有功能计算机软件更新失败,则由水面监控计算机重新发送更新数据包,重复步骤a) _h),否则结束软件更新过程。
[0014]所述的软件更新步骤a)中准备更新数据包还包括以下分步骤:
[0015]al)水面监控计算机将水下需要软件更新的各功能计算机标识及其所需更新软件的相应文件进行封装,形成子更新数据包,子更新数据包的具体内容包括需要软件更新的功能计算机标识、所需更新软件相应文件的文件名长度、文件内容的长度、文件名、文件内容及校验码等;
[0016]a2)水面监控计算机将各子更新数据包合并,与软件更新标识、包长及校验码等进行二次封装,形成软件更新数据包,软件更新数据包的具体内容包括包长、软件更新标识、各子更新数据包、校验码等。
[0017]所述的软件更新步骤b)和c)中水面监控计算机向任务控制计算机发送更新通知且任务控制计算机接收到更新通知后进行应答并进行软件更新准备。
[0018]所述的软件更新步骤d)中水面监控计算机通过无线电通信方式将软件更新数据包下载到任务控制计算机,为了保证软件下载的可靠性,采用了软件数据包分包下载和数据传输握手的下载方式,此过程具体包括以下步骤:
[0019]dl)水面监控计算机将软件更新数据包通过无线电、卫星通信或水声通信方式分包下载到任务控制计算机;
[0020]d2)任务控制计算机接收完软件更新数据包,先通过对包长及校验码的分析判断数据包是否完整,然后向水面监控计算机发送一个反馈数据包。所述反馈数据包包括软件更新数据包标识及该数据包是否完整的标识;
[0021]d3)水面监控计算机收到任务控制计算机发送的反馈数据包后,根据其中的数据包是否完整的标识进行判断,若不完整,则重新发送。
[0022]所述的软件更新步骤e)中具体包括以下步骤:
[0023]el)任务控制计算机接收到完整的软件更新数据包后,进行一次解包,根据数据包中需要进行软件更新功能计算机的标识将各子更新数据包分离;
[0024]e2)任务控制计算机通知需要软件更新的功能计算机进行软件更新准备;
[0025]e3)任务控制计算机将各子更新数据包通过网络通信方式发送到各相应功能计算机。
[0026]所述的软件更新步骤f)中需要更新的各水下功能计算机将接收到的子更新数据包进行二次解包,然后进行软件更新,以软件更新文件置换相应软件旧文件,此过程具体包括以下步骤:[0027]fl)各水下功能计算机将接收到的子更新数据包进行二次解包,获得所需更新软件的文件名称长度和文件内容长度;
[0028]f2)根据文件名长度获得文件名称,根据文件内容长度获得所需更新的文件内容;
[0029]f3)各水下功能计算机对二次解包后得到的文件名进行检测。若该文件已经存在,则将其内容直接置换为解包得到的文件内容,否则创建该文件,并将其内容置换为解包得到的文件内容;
[0030]f4)更新完毕,准备更新完毕数据包。
[0031]所述的软件更新步骤g)中具体包括以下步骤:
[0032]gl)相应的水下功能计算机在软件更新完毕后,通过网络通信方式将更新完毕数据包发送到任务控制计算机;
[0033]g2)任务控制计算机将接收到的各功能计算机的更新完毕数据包通过无线电通信方式发送到水面监控计算机。更新完毕数据包具体内容包括功能计算机的标识及软件更新是否成功的标识。
[0034]所述的软件更新步骤h)中水面监控计算机根据水下各功能计算机的更新完成情况判断是否需要重新发送,若有功能计算机软件更新失败,则由水面监控计算机重新发送更新数据包,重复步骤a) -h),否则结束软件更新过程,具体包括以下步骤:
[0035]hi)水面监控计算机将各更新完毕数据包进行解包,根据水下各功能计算机的标识及其软件更新是否成功的标识判断是否需要重新发送;
[0036]h2)若有功能计算机软件未更新成功,则重新发送,重复步骤a)_h),否则结束软件更新过程。
[0037]所述步骤h)中的若有软件未更新成功的功能计算机,则重新发送,重复步骤a) _h),其特征在于,再次执行步骤a)准备软件更新数据包时只需将软件更新未成功的功能计算机的更新数据进行封装,对已经更新成功的功能计算机无需重复更新。
[0038]与传统水下无人航行器软件更新方法相比,本发明的优点在于能够实现对水下无人航行器内部整个计算机系统的软件进行远程更新,软件更新距离相比传统水下无人航行器软件更新方法来说大大增加。采用本发明进行软件更新时不需要对水下无人航行器进行起吊、回收,尤其适用于远程作业的水下无人航行器。本发明是面向水下无人航行器的一种方便,快捷且有效的软件远程更新方法。
【专利附图】
【附图说明】
[0039]图1是面向水下无人航行器的软件远程更新方法的方框图;
[0040]图2是面向水下无人航行器的软件远程更新方法的流程图;
[0041]图3是水面监控计算机发送更新通知与任务控制计算机应答的流程图;
[0042]图4是软件数据包分包下载和数据传输握手的流程图;
[0043]图5是水下无人航行器内部计算机软件更新过程流程图。
【具体实施方式】
[0044]本发明提出一种面向水下无人航行器的软件远程更新方法,用于通过水面监控计算机对安装在水下无人航行器密封舱内的任务控制计算机、运动控制计算机、导航计算机、定位导引计算机等功能计算机的软件远程更新。根据通信条件及远程作业任务需求,采用无线电、卫星通信和水声通信相结合的多种通信模式进行软件更新数据传输,考虑到上述三种通信方式存在一次传输数据量小的特点,提出使用软件更新数据包分包下载和数据传输握手的远程下载方式,以保证软件下载的可靠性。由于本发明采用多种通信模式相结合的方法进行软件更新,整个过程不需起吊回收、不需拆装水下无人航行器,使得水下无人航行器的软件更新过程更加方便、快捷,尤其是可以实现水下无人航行器的远程软件更新。
[0045]本发明可广泛应用于水下无人航行器的远程软件更新中,可方便有效地对水下无人航行器的软件进行远距离的更新。下面结合附图,进一步说明本发明的特点和功能。
[0046]本发明实施例提供了一种面向水下无人航行器的软件远程更新方法,包括:(I)多种通讯模式用于软件远程更新数据传输;(2)水面监控计算机对更新软件数据包的封装;(3)功能计算机子更新数据包;(4)软件更新数据包;(5)水面监控计算机与水下无人航行器的应答通信;(6)软件更新数据包分包下载和数据传输握手的远程下载方式;(7)软件数据包合并及解包;(8)执行软件更新;(9)更新完毕数据包;(10)软件更新完成情况判断。
[0047]其中,多种通讯模式用于软件远程更新数据传输,水面监控计算机可以通过网络、无线电、卫星通信和水声通讯四种通信模式与水下无人航行器进行数据传输,并可根据通信条件及水下无人航行器工作需求在四种通讯模式间进行切换。
[0048]优选的,水面监控计算机对更新软件数据包进行封装。首先将水下需要进行软件更新的各功能计算机标识及其所需更新软件的相应文件进行封装,形成子更新数据包,其次将各子更新数据包合并,同时与软件更新标识、包长及校验码等进行二次封装,形成软件更新数据包。
[0049]可选的,功能计算机子更新数据包的具体内容包括需要更新的功能计算机标识、所需更新软件相应文件的文件名长度、文件内容的长度、文件名、文件内容及校验码等。
[0050]可选的,软件更新数据包的具体内容包括包长、软件更新标识、功能计算机子更新数据包、校验码等。
[0051]优选的,根据水下无人航行器的工作状态选择相应的通信模式实现水面监控计算机与任务控制计算机间的应答通信。
[0052]优选的,提出使用软件更新数据包分包下载和数据传输握手的远程下载方式,以保证软件下载的可靠性。具体包括以下步骤:
[0053]水面监控计算机将软件更新数据包以分包下载的方式传输至任务控制计算机,传输数据通信模式根据水下无人航行器的工作状态在无线电、卫星通信和水声通信之间自由切换;
[0054]任务控制计算机接收完更新数据包后,先通过对包长及校验码的分析判断数据包是否完整,然后向水面监控计算机发送一个反馈数据包。所述反馈数据包包括软件更新数据包标识及该数据包是否完整的标识;
[0055]水面监控计算机收到任务控制计算机发送的反馈数据包后,根据其中的数据包是否完整的标识进行判断,若不完整,则重新发送,实现数据传输握手。
[0056]优选的,需要对接收到的软件更新数据包进行合并及解包。任务控制计算机将分包接收的软件更新数据包合并然后进行一次解包,根据子更新数据包的标识判断需要更新的功能计算机,并通知其进行软件更新准备,同时将各子更新数据包通过网络通信方式发送到相应功能计算机,需要更新的各水下功能计算机将接收到的子更新数据包进行二次解包。
[0057]可选的,执行软件更新是以软件更新数据包文件置换相应软件旧文件,并在更新完毕后,准备更新完毕数据包。
[0058]优选的,由各功能计算机生成更新完毕数据包,其具体内容包括各功能计算机的标识及其软件更新是否成功的标识。各功能计算机通过网络通信方式将更新完毕数据包发送到任务控制计算机,任务控制计算机将接收到的更新完毕数据包通过无线电、卫星通信或水声通信方式发送到水面监控计算机。
[0059]优选的,需对软件更新完成情况判断。水面监控计算机根据接收的更新完毕数据包判断更新完成情况及是否需要重新发送软件更新数据包。若有功能计算机软件更新失败,则由水面监控计算机重新发送更新数据包,再次执行准备软件更新数据包时只需将软件更新失败的功能计算机的更新数据进行封装,对已经更新成功的功能计算机无需重复更新。否则,软件更新过程完毕。
[0060]图1是面向水下无人航行器的软件远程更新方法的方框图。水下无人航行器密封舱内的功能计算机主要包括任务控制计算机、运动控制计算机、导航计算机、定位导引计算机等。本发明针对该水下无人航行器系统进行软件远程更新,水面监控计算机与任务控制计算机之间的信息交互采用无线电、卫星通信或者水声通信方式,而水下无人航行器内部任务控制计算机与其它功能计算机之间的信息交互采用网络通信方式。水面监控计算机将各功能计算机所需的软件更新信息进行封装,将软件更新数据包下载到任务控制计算机,然后由任务控制计算机将一次解包后得到的各子更新数据包发送给其它各相应功能计算机。各功能计算机更新完毕,告知任务控制机,再由任务控制计算机将更新完毕数据包发送到水面监控计算机。水面监控计算机根据更新完毕数据包判断是否有功能计算机软件更新失败,若有则需重新发送更新数据包。
[0061]图2是面向水下无人航行器的软件远程更新方法的程序流程图。具体步骤可表述为:
[0062]步骤I,根据软件更新需求,水面监控计算机将水下各功能计算机所需更新软件的相应文件进行封装处理,准备软件更新数据包,此过程还包括以下步骤:
[0063]I)水面监控计算机将水下需要软件更新的各功能计算机标识及其所需更新软件的相应文件进行封装,形成子更新数据包;
[0064]2)水面监控计算机将各子更新数据包合并,与软件更新标识、包长及校验码等进行二次封装,形成软件更新数据包;
[0065]其中,各功能计算机的子更新数据包的具体内容包括需要更新的功能计算机标识、所需更新软件相应文件的文件名长度、文件内容的长度、文件名、文件内容及校验码等。软件更新数据包的具体内容包括包长、软件更新标识、各子更新数据包、校验码等。
[0066]步骤2,水面监控计算机向任务控制计算机发送软件更新通知;
[0067]步骤3,任务控制计算机接收到水面监控计算机的软件更新通知后,根据水下无人航行器的工作状态选择合适的通信模式实现水面监控计算机与任务控制计算机间的应答;步骤2和步骤3的具体过程见图3。
[0068]步骤4,水面监控计算机接收到任务控制计算机的软件更新应答后,通过无线电、卫星通信或水声通信方式将软件更新数据包下载到任务控制计算机,为了保证软件下载的可靠性,采用了软件数据包分包下载和数据传输握手的下载方式,具体见图4。
[0069]步骤5,任务控制计算机将分包接收的软件更新数据包进行合并及一次解包,根据子更新数据包中的功能计算机标识判断需要软件更新的功能计算机,并通知其进行软件更新准备,然后将各子更新数据包通过网络通信方式发送到相应功能计算机。
[0070]步骤6,需要软件更新的各水下功能计算机将接收到的子更新数据包进行二次解包,然后进行软件更新,以软件更新文件置换相应软件旧文件。
[0071]步骤7,各水下功能计算机在软件更新完毕后,通过网络通信方式将更新完毕数据包发送到任务控制计算机。任务控制计算机将接收到的各功能计算机的更新完毕数据包通过无线电通信方式发送到水面监控计算机。步骤6和步骤7【具体实施方式】见图5。
[0072]步骤8,水面监控计算机将各更新完毕数据包进行解包,根据水下各功能计算机的标识及其软件更新是否成功的标识判断是否需要重新发送。若有功能计算机软件更新失败,则由水面监控计算机重新发送更新数据包,重复步骤1-8,否则结束软件更新过程。
[0073]其中,若有功能计算机软件未更新成功,再次执行步骤I准备软件更新数据包时只需将软件更新未成功的功能计算机的更新数据进行封装,对已经更新成功的功能计算机无需重复更新。
[0074]图3是水面监控计算机发送更新通知与任务控制计算机应答的流程图,详细表述了步骤2和步骤3的具体过程。首先根据水下无人航行器的深度信息判断其是处于水面工作状态还是处于水下工作状态,如处于水面工作状态,则直接通过无线电或卫星通信方式向任务控制计算机发送软件更新通知;如处于水下工作状态,则通过水声通信方式向任务控制计算机发送软件更新通知,然后根据作业任务需求进一步判断是否需要将水下无人航行器上浮至水面,若是,则任务控制计算机先控制水下无人航行器上浮至水面,然后通过无线电或卫星通信方式对水面监控计算机的软件更新通知进行应答,若否,则通过水声通讯方式进行应答。
[0075]图4是软件数据包分包下载和数据传输握手的流程图,是步骤4的详细步骤,首先水面监控计算机将软件更新数据包通过无线电通信方式分包下载到任务控制计算机;任务控制计算机接收完更新数据包后,先通过对包长及校验码的分析判断数据包是否完整,然后向水面监控计算机发送一个反馈数据包。所述反馈数据包包括软件更新数据包标识及该数据包是否完整的标识;水面监控计算机收到任务控制计算机发送的反馈数据包后,根据其中的数据包是否完整的标识进行判断,若不完整,则重新发送。
[0076]图5是水下无人航行器内部计算机软件更新过程流程图,是步骤6和步骤7的具体实施过程,各水下功能计算机将接收到的子更新数据包进行二次解包,获得所需更新软件的文件名称长度和文件内容长度;根据文件名长度获得文件名称,根据文件内容长度获得所需更新的文件内容;各水下功能计算机对解包后得到的文件名进行检测。若该文件已经存在,则将其内容直接置换为解包得到的文件内容,否则创建该文件,并将其内容置换为解包得到的文件内容;更新完毕,准备更新完毕数据包。其中,所述更新完毕数据包具体内容包括功能计算机的标识及其软件更新是否成功的标识。[0077]本发明主要面向水下无人航行器的远程软件更新,可方便有效地对水下无人航行器的软件进行远距离的更新。在不脱离本发明思想的情况下,凡应用本发明说明书及附图内容所做的各种等效变化,均理同包含于本发明的权利要求范围内。
【权利要求】
1.一种面向水下无人航行器的软件远程更新方法,其特征在于,包括: a)根据更新需求,水面监控计算机生成软件更新数据包; b)所述水面监控计算机向任务控制计算机发送软件更新通知; c)所述任务控制计算机接收到所述水面监控计算机的软件更新通知后,根据水下无人航行器的工作状态选择通信模式向所述水面监控计算机发送软件更新应答; d)所述水面监控计算机接收到所述任务控制计算机的软件更新应答后,将软件更新数据包发送到任务控制计算机; e)所述任务控制计算机将接收的软件更新数据包进行合并及一次解包,根据子更新数据包的标识判断需要软件更新的功能计算机,并将各子更新数据包通过网络通信方式发送到需要软件更新的功能计算机; f)需要软件更新的各水下功能计算机将接收到的子更新数据包进行二次解包,然后进行软件更新。
2.根据权利要求1所述的方法,其特征在于,在所述步骤f)之后,还包括: g)需要软件更新的水下功能计算机在软件更新完毕后,告知所述任务控制计算机更新完毕,然后由所述任务控制计算机向所述水面监控计算机报告软件更新完毕; h)所述水面监控计算机根据水下各功能计算机的更新完成情况判断是否需要重新发送软件更新数据包,若有功能计算机软件更新失败,则由所述水面监控计算机重新发送软件更新数据包,否则结束软件更新过程。
3.根据权利要求1所述`的方法,其特征在于,所述步骤a)包括: al)所述水面监控计算机将水下需要软件更新的各功能计算机标识及其所需更新软件的相应文件进行封装,形成子更新数据包; a2)所述水面监控计算机将各子更新数据包合并,与软件更新标识、包长及校验码等进行二次封装,形成软件更新数据包。
4.根据权利要求1所述的方法,其特征在于,所述子更新数据包包括:需要软件更新的功能计算机标识、所需更新软件的文件的文件名长度、文件内容的长度、文件名、文件内容及校验码;所述软件更新数据包包括:包长、软件更新标识、各子更新数据包、及校验码。
5.根据权利要求1所述的方法,其特征在于,所述步骤d)包括: dl)所述水面监控计算机将软件更新数据包通过无线电、卫星通信或水声通信方式分包发送到所述任务控制计算机; d2)所述任务控制计算机接收完软件更新数据包之后,通过对包长及校验码的分析判断数据包是否完整,然后向水面监控计算机发送反馈数据包,所述反馈数据包包括软件更新数据包标识及该数据包是否完整的标识; d3)所述水面监控计算机收到所述任务控制计算机发送的反馈数据包后,根据其中的数据包是否完整的标识进行判断,若判断该数据包不完整,则重新发送该数据包。
6.根据权利要求1所述的方法,其特征在于,所述步骤f)包括: Π)各水下功能计算机将接收到的子更新数据包进行二次解包,获得所需更新软件的文件名称长度和文件内容长度; f2)根据文件名长度获得文件名称,根据文件内容长度获得所需更新的文件内容; f3)各水下功能计算机对二次解包后得到的文件名进行检测,若该文件已经存在,则将其内容直接置换为解包得到的文件内容,否则创建该文件,并将其内容置换为解包得到的文件内容; f4)更新完毕,准备更新完毕数据包。
7.根据权利要求2所述的方法,其特征在于,所述步骤g)包括: gl)相应的水下功能计算机在软件更新完毕后,通过网络通信方式将更新完毕数据包发送到所述任务控制计算机; g2)所述任务控制计算机将接收到的各功能计算机的更新完毕数据包通过无线电通信方式发送到水面监控计算机,其中,更新完毕数据包包括功能计算机的标识及软件更新是否成功的标识。
8.根据权利要求2所述的方法,其特征在于,所述步骤h)包括: hi)水面监控计算机将各更新完毕数据包进行解包,根据水下各功能计算机的标识及其软件更新是否成功的标识判断是否需要重新发送; h2)若有功能计算机软件未更 新成功,则重新发送,重复步骤a) -h),否则结束软件更新过程。
【文档编号】H04L29/08GK103533041SQ201310467759
【公开日】2014年1月22日 申请日期:2013年10月9日 优先权日:2013年10月9日
【发明者】严浙平, 李聪聪, 徐健, 李本银, 周佳加, 陈涛 申请人:哈尔滨工程大学