掌桥专利:专业的专利平台
掌桥专利
首页

一种确定物理链路的方法、装置及电子设备

文献发布时间:2023-06-19 19:28:50


一种确定物理链路的方法、装置及电子设备

技术领域

本说明书涉及无人驾驶领域,尤其涉及一种确定物理链路的方法、装置及电子设备。

背景技术

随着技术的发展,无人设备内部用于实现无人设备控制的硬件模块的种类越来越复杂,相应的,各硬件模块之间的物理链路也越来越多样。

针对无人设备内部的各硬件模块,可以通过各硬件模块之间的物理链路进行数据传输。由于各硬件模块的物理接口各有不同,导致连接不同物理接口的物理链路所对应的接口协议也不一样。而接口协议用于规定数据传输的数据格式。所以,连接不同物理接口的物理链路所传输的数据格式也不一样。也就是,无人设备内部的任意两个硬件模块在进行数据传输时,不能切换其他物理接口的物理链路进行数据传输。

由于不同物理接口的物理链路不能随意切换,所以各硬件模块之间的数据传输不够灵活,可能导致无人设备的控制出现问题。

发明内容

本说明书实施例提供一种确定物理链路的方法、装置及电子设备,以部分解决上述现有技术存在的问题。

本说明书实施例采用下述技术方案:

本说明书提供的一种确定物理链路的方法,所述方法应用于无人设备内部的各模块,针对每个硬件模块,该硬件模块保存该硬件模块对应的下一跳路由表以及等价多路径路由表;所述方法包括:

当前硬件模块接收其他硬件模块发送的数据包,并对所述数据包进行地址解析;

根据地址解析结果,判断所述数据包中的目的地址是否为所述当前硬件模块;其中,所述目的地址是所述无人设备内部的硬件模块标识;

若是,根据所述数据包,对所述当前硬件模块进行控制;

若不是,根据所述当前硬件模块对应的等价多路径路由表、所述目的地址以及所述当前硬件模块对应的下一跳路由表,确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块以及所述下一跳硬件模块与所述当前硬件模块之间的物理链路,并通过所述物理链路,将所述数据包发送给所述下一跳硬件模块。

可选地,根据所述当前硬件模块对应的等价多路径路由表、所述目的地址以及所述当前硬件模块对应的下一跳路由表,确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块以及所述下一跳硬件模块与所述当前硬件模块之间的物理链路,具体包括:

根据所述当前硬件模块对应的等价多路径路由表、所述目的地址以及所述当前硬件模块对应的下一跳路由表,确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块以及所述下一跳硬件模块与所述当前硬件模块之间的物理链路;

检测所述下一跳硬件模块与所述当前硬件模块之间的物理链路是否存在异常;

若所述下一跳硬件模块与所述当前硬件模块之间的物理链路存在异常,对所述等价多路径路由表进行更新,得到更新后的等价多路径路由表;

根据所述更新后的等价多路径路由表以及所述目的地址,重新确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块,并检测重新确定的下一跳硬件模块与所述当前硬件模块之间的物理链路是否存在异常,直至检测到重新确定的下一跳硬件模块与所述当前硬件模块之间的物理链路正常为止。

可选地,当前硬件模块接收的其他硬件模块发送的数据包为:先经过各硬件模块通用的路由协议封装,再经过所述当前硬件模块与发送所述数据包的其他硬件模块之间的物理链路对应的接口协议封装的数据包。

可选地,对所述数据包进行地址解析,具体包括:

根据所述当前硬件模块与发送所述数据包的其他硬件模块之间的物理链路对应的接口协议,对接收到数据包进行解析,得到解析后的数据包;

根据各硬件模块通用的路由协议对应的地址解析协议,对解析后的数据包进行地址解析,得到所述数据包中的目的地址。

可选地,对所述数据包进行地址解析,具体包括:

检测所述下一跳硬件模块与所述当前硬件模块之间的物理链路是否存在异常,具体包括:

通过所述下一跳硬件模块与所述当前硬件模块之间的物理链路,向所述下一跳硬件模块发送检测数据包;

若预设时长内未接收到所述下一跳硬件模块返回的确认信息,确定所述下一跳硬件模块与所述当前硬件模块之间的物理链路存在异常。

可选地,所述下一跳路由表包括:源地址、物理链路标识、目的地址和物理链路状态;所述等价多路径路由表包括:目的地址、下一跳物理链路标识、数据传输路径和优先级;其中,所述源地址是所述无人设备内部的硬件模块标识。

可选地,若所述下一跳硬件模块与所述当前硬件模块之间的物理链路存在异常,对所述等价多路径路由表进行更新,具体包括:

若所述下一跳硬件模块与所述当前硬件模块之间的物理链路存在异常,根据存在异常的物理链路对应的物理链路标识,将所述下一跳路由表中与所述物理链路标识对应的物理链路状态更新为异常,得到更新后的下一跳路由表;

根据更新后的下一跳路由表,对所述当前硬件模块保存的全局路由表中与所述物理链路标识对应的物理链路状态进行更新,得到更新后的全局路由表;

根据更新后的全局路由表,将所述等价多路径路由表中包含所述物理链路标识的数据传输路径的状态更新为异常。

可选地,所述数据包的数据格式至少包括生命周期;

所述方法还包括:

当所述当前硬件模块保存的全局路由表中各硬件模块之间存在循环传输的物理链路时,根据所述数据包的数据格式中的生命周期限制数据传输的次数;其中,所述生命周期为循环传输过程中经过的硬件模块数量。

本说明书提供的一种确定物理链路的装置,包括:

解析模块,用于当前硬件模块接收其他硬件模块发送的数据包,并对所述数据包进行地址解析;

判断模块,用于根据地址解析结果,判断所述数据包中的目的地址是否为所述当前硬件模块;其中,所述目的地址是无人设备内部的硬件模块标识;

控制模块,用于若是,根据所述数据包,对所述当前硬件模块进行控制;

确定模块,用于若不是,根据所述当前硬件模块对应的等价多路径路由表、所述目的地址以及所述当前硬件模块对应的下一跳路由表,确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块以及所述下一跳硬件模块与所述当前硬件模块之间的物理链路,并通过所述物理链路,将所述数据包发送给所述下一跳硬件模块。

本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的确定物理链路的方法。

本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的确定物理链路的方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

本说明书实施例针对无人设备内部的各硬件模块,每个硬件模块保存下一跳路由表和等价多路径路由表。当前硬件模块接收到数据包时,对该数据包进行地址解析。若数据包中的目的地址是当前硬件模块,直接对当前硬件模块进行控制。若数据包中的目的地址不是当前硬件模块,根据等价多路径路由表和下一跳路由表,确定下一跳硬件模块以及下一跳硬件模块与当前硬件模块之间的物理链路,并将数据包发送给下一跳硬件模块。其中,目的地址是无人设备内部的硬件模块标识。此方法中,各硬件模块之间进行数据传输时,可以通过下一跳路由表和等价多路径路由表确定任意两个硬件模块之间的物理链路,这样,可以提高任意两个硬件模块之间数据传输的灵活度,从而提高无人设备的控制能力。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为本说明书实施例提供的数据包的封装过程和解析过程的示意图;

图2为本说明书实施例提供的以模块A、模块B和模块C为例的各硬件模块的拓扑结构示意图;

图3为本说明书实施例提供的确定物理链路的方法的流程示意图;

图4为本说明书实施例提供的确定正常物理链路的方法的流程示意图;

图5为本说明书实施例提供的确定物理链路的装置结构示意图;

图6为本说明书实施例提供的确定正常物理链路的装置结构示意图;

图7为本说明书实施例提供的电子设备的结构示意图。

具体实施方式

现有技术中,无人设备内部连接不同物理接口的物理链路需要依赖于不同的接口协议,并且不同物理链路之间不具备切换功能,因此,无人设备内部连接不同物理接口的物理链路不具备通用性。而当两个硬件模块之间的物理链路存在故障时,两个硬件模块之间无法通过其他物理链路进行数据传输,导致两个硬件模块之间的数据传输中断,从而影响无人设备的控制。

本说明书提供的确定物理链路的方法旨在当无人设备内部各硬件模块之间存在异常的物理链路时,利用动态路由的方法,切换无人设备内部各硬件模块之间的物理链路,使存在异常的物理链路的两个硬件模块之间数据通过其他物理链路可以进行传输。

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

在本说明书中提供一种路由协议,该路由协议可以动态切换用于传输数据的连接不同物理接口的物理链路。

其中,路由协议至少包括三个字段,分别为源地址字段、目的地址字段和数据字段。如图1所示。源地址字段可以表示源地址,目的地址字段可以表示目的地址,数据字段可以表示数据内容。所以,采用本说明书中提供的路由协议所封装的数据包的数据格式至少包括:源地址、目的地址、数据内容。其中,源地址和目的地址可以指无人设备内部的各硬件模块的标识。

对于传输于物理链路的数据包的封装过程和解析过程,如图1所示。图1中的接口协议中的字段1和字段2可以根据实际的接口协议进行更改。

传输于物理链路的数据包的封装过程:针对无人设备内部的每个硬件模块,若该硬件模块向其他硬件模块发送数据,可以先采用路由协议对待发送的数据进行封装,得到封装后的数据包,再根据该硬件模块与其他硬件模块之间的接口协议,对封装后的数据包进行再次封装,得到最终传输于该硬件模块与其他硬件模块之间的物理链路的数据包。

之所以先采用路由协议进行封装,再采用相应的接口协议对由路由协议封装后的数据包进行封装,是因为:路由协议属于应用层的协议,接口协议属于数据物理层的协议。各硬件模块之间的物理链路的数据传输必须依赖于接口协议,所以在数据封装时,数据包最外层必须由接口协议进行封装,这样,物理链路才能根据接口协议,对接口协议封装的数据包进行传输。

传输于物理链路的数据包的解析过程:针对无人设备内部的每个硬件模块,若该硬件模块接收其他硬件模块发送的数据包,可以先根据该硬件模块与发送数据包的其他硬件模块之间的接口协议,对接收到的数据包进行解析,得到解析后的数据包,再采用路由协议对应的地址解析协议,对解析后的数据包进行地址解析,得到数据包中的目的地址。

基于本说明书提供的一种路由协议,为了达到动态切换物理链路的目的,需要无人设备内部的每个硬件模块保存所有硬件模块对应的全局路由表、该硬件模块对应的下一跳路由表和该硬件模块对应的等价多路径路由表。其中,全局路由表、下一跳路由表可以静态配置,也可以根据Dijkstra路由最短路径算法建立路由表。然后,可以根据全局路由表生成等价多路径路由表。需要说明的是,不同硬件模块保存的下一跳路由表和等价多路径路由表均不同。

其中,全局路由表可包括:源地址、目的地址、物理链路标识和物理链路状态。全局路由表可以表示无人设备内部所有硬件模块之间的物理连接关系。其中,物理链路标识可以是表示接口协议的标识,比如:CAN、UART、I2C等。源地址和目的地址可以指无人设备内部各硬件模块的标识。物理链路状态可以表示各硬件模块之间的物理链路的状态,可以为异常或正常。

下一跳路由表可包括:源地址、目的地址、物理链路标识和物理链路状态。下一跳路由表可以表示无人设备内部每个硬件模块与其直接相连的其他硬件模块之间的物理连接关系。

等价多路径路由表可包括:目的地址、下一跳物理链路标识、数据传输路径和优先级。等价多路径路由表可以表示无人设备内部每个硬件模块与任何硬件模块之间的数据传输路径。其中,下一跳物理链路标识可以指该硬件模块与其下一跳硬件模块之间的物理链路的标识。数据传输路径可以指该硬件模块到目的地址对应的硬件模块之间的数据传输路径,且可以采用物理链路标识表示。

在无人设备内部的每个硬件模块均保存全局路由表、下一跳路由表、等价多路径路由表之后,针对每个硬件模块,根据该硬件模块保存的等价多路径路由表以及解析出的数据包中的目的地址,可以从等价多路径路由表中选择出用于传输数据包的未出现故障的物理链路。然后,该硬件模块通过未出现故障的物理链路对数据包进行传输,使数据包顺利传输到目的地址。

本说明书实施例中,通过该路由协议以及各硬件模块保存的路由表,可以根据实际情况更改两个硬件模块之间数据传输的物理链路,实现连接不同物理接口的物理链路可以传输同一数据的功能,因此,该路由协议通过动态切换物理链路的方法,间接使连接不同物理接口的物理链路具有通用性。

以无人设备内部存在三个硬件模块为例,硬件模块分别为模块A、模块B和模块C。其中,无人设备内部各硬件模块的拓扑结构,如图2所示。

在图2中,模块A与模块B由物理链路CAN1进行连接。模块A与模块C由两个物理链路进行连接,分别为物理链路UART1和物理链路I2C1。模块B与模块C由物理链路UART2进行连接。需要说明的是,本说明书中的物理链路均是双向链路。

在图2所示的拓扑结构的基础上,建立无人设备内部的所有硬件模块之间的物理连接关系的全局路由表(这也是模块A对应的全局路由表),如表1所示:

/>

表1

以图2中的模块A为例,建立模块A对应的下一跳路由表,如表2所示:

表2

以图2中的模块A为例,建立模块A对应的等价多路径路由表,如表3所示:

表3

在表3中,优先级可以表示从多个数据传输路径中选择数据传输路径的先后顺序,优先级越高,数值越小。所以,0为最高优先级。下一跳物理链路标识可以表示模块A与下一跳硬件模块之间的物理链路的标识。另外,当数据传输路径中任意物理链路标识对应的物理链路存在异常时,路径状态为异常。当数据传输路径中任意物理链路标识对应的物理链路均正常时,路径状态为正常。

基于本说明书提供的一种路由协议以及无人设备内部的各硬件模块保存的路由表,本说明书提供一种确定物理链路的方法。

图3为本说明书实施例提供的确定物理链路的方法的流程示意图,包括:

S300:当前硬件模块接收其他硬件模块发送的数据包,并对所述数据包进行地址解析。

S302:根据地址解析结果,判断所述数据包中的目的地址是否为所述当前硬件模块;其中,所述目的地址是所述无人设备内部的硬件模块标识。

S304:若是,根据所述数据包,对所述当前硬件模块进行控制。

在本说明书实施例中,本说明书中图3所示的确定物理链路的方法应用于无人设备内部的各硬件模块。其中,无人设备可以是无人机、无人车等。本说明书的无人设备可用于物流配送领域,既包括外卖、配送等即时配送领域,也包括其他非即时配送领域。

在本说明书实施例中,在无人设备的内部存在各种各样的硬件模块,比如:控制单元MCU、各类应用处理器、传感器等。针对每个硬件模块,该硬件模块保存全局路由表、该硬件模块对应的下一跳路由表和该硬件模块对应的等价多路径路由表。接下来,以无人设备内部的其中一个硬件模块为例,对图3所示的确定物理链路的方法进行说明。

在本说明书实施例中,将当前接收数据包的硬件模块作为当前硬件模块,将向当前硬件模块发送数据包的硬件模块作为其他硬件模块。

具体的,发送数据包的其他硬件模块采用各硬件模块通用的路由协议对待发送的数据进行封装,得到封装后的数据包。然后,采用其他硬件模块自身与当前硬件模块之间的物理链路对应的接口协议对应封装后的数据包进行封装,得到待发送的数据包。

其他硬件模块通过其他硬件模块自身与当前硬件模块之间的物理链路,将待发送的数据包发送给当前硬件模块。当前硬件模块接收其他硬件模块发送的数据包,然后,对接收的数据包进行解析。

具体的解析过程为:当前硬件模块根据当前硬件模块自身与发送数据包的其他硬件模块之间的物理链路对应的接口协议,对接收到数据包进行解析,得到解析后的数据包。然后,根据各硬件模块通用的路由协议对应的地址解析协议,对解析后的数据包进行地址解析,得到数据包中的目的地址。

在本说明书实施例中,在得到数据包中的目的地址之后,判断数据包中的目的地址是否为当前硬件模块的标识。

若数据包中的目的地址为当前硬件模块的标识,当前硬件模块可以根据数据包,对当前硬件模块进行控制。也就是,根据数据包解析出的数据内容,对当前硬件模块进行控制。

以当前硬件模块为摄像头为例,数据包解析出的数据内容可能是开启摄像头,对无人设备周围的环境进行图像采集的控制指令。当前硬件模块根据控制指令,开启摄像头并采集无人设备周围的环境信息。

S306:若不是,根据所述当前硬件模块对应的等价多路径路由表、所述目的地址以及所述当前硬件模块对应的下一跳路由表,确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块以及所述下一跳硬件模块与所述当前硬件模块之间的物理链路,并通过所述物理链路,将所述数据包发送给所述下一跳硬件模块。

在本说明书实施例中,若数据包中的目的地址不是当前硬件模块的标识,说明该数据包不是传输给当前硬件模块的,这种情况下,当前硬件模块需要根据保存的全局路由表、下一跳路由表和等价多路径路由表,查找将该数据包传输至目的地址的数据传输路径。

具体的,先根据数据包中的目的地址,按照从高到低的优先级,在当前硬件模块保存的等价多路径路由表中查找路径状态正常的数据传输路径,并根据查找出的数据传输路径中包含的与当前硬件模块直接相连的物理链路的标识以及当前硬件模块保存的下一跳路由表,确定当前硬件模块对应的下一跳硬件模块以及下一跳硬件模块与当前硬件模块之间的物理链路。其中,下一跳硬件模块用于接收当前硬件模块发送的数据包。

通过上述图3所示的方法可见,本说明书针对无人设备内部的各硬件模块,每个硬件模块保存下一跳路由表和等价多路径路由表。当前硬件模块接收到数据包时,对该数据包进行地址解析。若数据包中的目的地址是当前硬件模块,直接对当前硬件模块进行控制。若数据包中的目的地址不是当前硬件模块,根据等价多路径路由表和下一跳路由表,确定下一跳硬件模块以及下一跳硬件模块与当前硬件模块之间的物理链路,并将数据包发送给下一跳硬件模块。其中,目的地址是无人设备内部的硬件模块标识。此方法中,各硬件模块之间进行数据传输时,可以通过下一跳路由表和等价多路径路由表确定任意两个硬件模块之间的物理链路,这样,可以提高任意两个硬件模块之间数据传输的灵活度,从而提高无人设备的控制能力。

进一步的,在确定当前硬件模块对应的下一跳硬件模块以及下一跳硬件模块与当前硬件模块之间的物理链路的过程中,可能存在出现故障的物理链路,所以,在步骤S306中,图4为本说明书实施例提供的确定正常物理链路的方法的流程示意图,包括:

S400:当所述数据包中的目的地址不是所述当前硬件模块时,根据所述当前硬件模块对应的等价多路径路由表、所述目的地址以及所述当前硬件模块对应的下一跳路由表,确定接收所述当前硬件模块发送的所述数据包的所述下一跳硬件模块以及所述下一跳硬件模块与所述当前硬件模块之间的物理链路。

S402:检测所述下一跳硬件模块与所述当前硬件模块之间的物理链路是否存在异常。

S404:若所述下一跳硬件模块与所述当前硬件模块之间的物理链路存在异常,对所述等价多路径路由表进行更新,得到更新后的等价多路径路由表。

S406:根据所述更新后的等价多路径路由表以及所述目的地址,重新确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块,并检测重新确定的下一跳硬件模块与所述当前硬件模块之间的物理链路是否存在异常,直至检测到重新确定的下一跳硬件模块与所述当前硬件模块之间的物理链路正常为止。

在确定当前硬件模块的下一跳硬件模块之后,可以检测当前硬件模块与下一跳硬件模块之间的物理链路是否存在异常。其中,物理链路是否存在异常可以指物理链路是否出现故障,故障类型可以是接触不良、断开连接等任何导致数据传输中断的故障。

在检测当前硬件模块与下一跳硬件模块之间的物理链路是否存在异常时,当前硬件模块可以通过下一跳硬件模块与当前硬件模块之间的物理链路,向下一跳硬件模块发送检测数据包。若预设时长内未接收到下一跳硬件模块返回的确认信息,则确定下一跳硬件模块与当前硬件模块之间的物理链路存在异常。其中,检测数据包可以是心跳包,返回的确认信息可以是ack信息。

当当前硬件模块与下一跳硬件模块之间的物理链路存在异常时,当前硬件模块可以先根据存在异常的物理链路对应的物理链路标识,将当前硬件模块保存的下一跳路由表中与该物理链路标识对应的物理链路状态更新为异常,得到更新后的下一跳路由表。然后,根据更新后的下一跳路由表,将当前硬件模块保存的全局路由表中与该物理链路标识对应的物理链路状态更新为异常,得到更新后的全局路由表。最后,根据更新后的全局路由表,将当前硬件模块保存的等价多路径路由表中包含该物理链路标识的数据传输路径的路径状态更新为异常。

此外,当前硬件模块可以将存在异常的物理链路的标识发送给无人设备内部的除当前硬件模块之外的硬件模块。各硬件模块对各自保存的全局路由表、下一跳路由表和等价多路径路由表进行更新。

在本说明书实施例中,根据更新后的等价多路径路由表,重新确定接收该数据包的下一跳硬件模块,再检测重新确定的下一跳硬件模块与当前硬件模块之间的物理链路是否存在异常,直至检测到重新确定的下一跳硬件模块与当前硬件模块之间的物理链路正常为止。其中,物理链路正常可以指物理链路未出现故障。即,当前硬件模块与下一跳硬件模块之间的物理链路存在异常时,重复上述步骤S400~S406,直到检测到当前硬件模块与下一跳硬件模块之间的物理链路正常。

当当前硬件模块与下一跳硬件模块之间的物理链路正常时,通过当前硬件模块与下一跳硬件模块之间的物理链路,当前硬件模块将接收到的数据包发送给下一跳硬件模块。

继续以无人设备内部的模块A为例,上述的当前硬件模块可以是模块A。

以模块A接收到的数据包中的目的地址为模块B为例,根据表3所示的等价多路径路由表,根据优先级,第一次查找到的数据传输路径为物理链路标识CAN1。然后,检测物理链路标识CAN1对应的物理链路是否存在异常。若存在异常,对模块A对应的全局路由表、下一跳路由表和等价多路径路由表进行更新。更新结果如下:

模块A对应的更新后的下一跳路由表,如表4所示:

表4

模块A对应的更新后的全局路由表,如表5所示:

表5

模块A对应的更新后的等价多路径路由表,如表6所示:

表6

然后,根据表6中的等价多路径路由表,按照从高到低的优先级,查找路径状态正常的数据传输路径,查找到包含UART1、UART2的数据传输路径。然后,检测下一跳物理链路标识UART1对应的物理链路是否存在异常。若正常,通过下一跳物理链路标识UART1对应的物理链路,模块A将接收到的数据包发送给模块C。

通过上述图4所示的方法可见,本说明书针对无人设备内部的各硬件模块,每个模块保存下一跳路由表和等价多路径路由表。当前硬件模块接收到数据包时,对该数据包进行地址解析。若数据包中的目的地址不是当前硬件模块,根据等价多路径路由表和下一跳路由表,先确定下一跳硬件模块与当前硬件模块之间的物理链路是否存在异常。若存在异常,对等价多路径路由表进行更新,并重新确定下一跳硬件模块,再检测重新下一跳硬件模块与当前硬件模块之间的物理链路是否存在异常,直到检测到下一跳硬件模块与当前硬件模块之间的物理链路正常为止。此方法中,当两个硬件模块之间直接相连的物理链路存在异常时,可以通过等价多路径路由表中其他物理链路,对数据进行传输,不局限于两个硬件模块直接相连的物理链路,这样,可以避免各硬件模块之间数据传输中断的问题,并提高无人设备的控制能力。

进一步的,本说明书中提供的路由协议所封装的数据包的数据格式除了包括源地址、目的地址、数据内容之外,还包括生命周期。生命周期可以表示数据传输的次数。

当无人设备各硬件模块之间存在循环传输的物理链路时,为了防止数据进行循环传输,从而造成网络资源的浪费,可以合理设置生命周期。

对于生命周期的设置,可以根据循环传输过程中经过的硬件模块数量设置生命周期。数据每传输一次,生命周期的数值减一。若生命周期的数值为0,则数据停止传输。

所以,当全局路由表中各硬件模块之间存在循环传输的物理链路时,可以根据数据包的数据格式中的生命周期限制数据传输的次数。

继续以图2所示的各硬件模块拓扑结构为例,模块A、模块B和模块C构成了一个循环,则数据包的数据格式中的生命周期可以设置为3。

以上为本说明书实施例提供的确定物理链路的方法,基于同样的思路,本说明书还提供了相应的装置、存储介质和电子设备。

图5为本说明书实施例提供的一种确定物理链路的装置的结构示意图,所述装置包括:

解析模块501,用于当前硬件模块接收其他硬件模块发送的数据包,并对所述数据包进行地址解析;

判断模块502,用于根据地址解析结果,判断所述数据包中的目的地址是否为所述当前硬件模块;其中,所述目的地址是所述无人设备内部的硬件模块标识;

控制模块503,用于若是,根据所述数据包,对所述当前硬件模块进行控制;

确定模块504,用于根据所述当前硬件模块对应的等价多路径路由表、所述目的地址以及所述当前硬件模块对应的下一跳路由表,确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块以及所述下一跳硬件模块与所述当前硬件模块之间的物理链路,并通过所述物理链路,将所述数据包发送给所述下一跳硬件模块。

可选地,当前硬件模块接收的其他硬件模块发送的数据包为:先经过各硬件模块通用的路由协议封装,再经过所述当前硬件模块与发送所述数据包的其他硬件模块之间的物理链路对应的接口协议封装的数据包。

可选地,所述解析模块501具体用于,根据所述当前硬件模块与发送所述数据包的其他硬件模块之间的物理链路对应的接口协议,对接收到数据包进行解析,得到解析后的数据包;根据各硬件模块通用的路由协议对应的地址解析协议,对解析后的数据包进行地址解析,得到所述数据包中的目的地址。

可选地,所述数据包的数据格式至少包括生命周期;当所述当前硬件模块保存的全局路由表中各硬件模块之间存在循环传输的物理链路时,根据所述数据包的数据格式中的生命周期限制数据传输的次数;其中,所述生命周期为循环传输过程中经过的硬件模块数量。

可选地,所述装置中的确定模块504可以包括:确定子模块601、检测模块602、更新模块603、确定正常物理链路模块604,如图6所示。

所述确定子模块601,用于当所述数据包中的目的地址不是所述当前硬件模块时,根据所述当前硬件模块对应的等价多路径路由表、所述目的地址以及所述当前硬件模块对应的下一跳路由表,确定接收所述当前硬件模块发送的所述数据包的所述下一跳硬件模块以及所述下一跳硬件模块与所述当前硬件模块之间的物理链路;

所述检测模块602,用于检测所述下一跳硬件模块与所述当前硬件模块之间的物理链路是否存在异常;

所述更新模块603,用于若所述下一跳硬件模块与所述当前硬件模块之间的物理链路存在异常,对所述等价多路径路由表进行更新,得到更新后的等价多路径路由表;

所述确定正常物理链路模块604,用于根据所述更新后的等价多路径路由表以及所述目的地址,重新确定接收所述当前硬件模块发送的所述数据包的下一跳硬件模块,并检测重新确定的下一跳硬件模块与所述当前硬件模块之间的物理链路是否存在异常,直至检测到重新确定的下一跳硬件模块与所述当前硬件模块之间的物理链路正常为止。

可选地,所述下一跳路由表包括:源地址、物理链路标识、目的地址和物理链路状态;所述等价多路径路由表包括:目的地址、下一跳物理链路标识、数据传输路径和优先级;其中,所述源地址是所述无人设备内部的硬件模块标识。

可选地,所述检测模块602具体用于,通过所述下一跳硬件模块与所述当前硬件模块之间的物理链路,向所述下一跳硬件模块发送检测数据包;若预设时长内未接收到所述下一跳硬件模块返回的确认信息,确定所述下一跳硬件模块与所述当前硬件模块之间的物理链路存在异常。

可选地,所述更新模块603具体用于,若所述下一跳硬件模块与所述当前硬件模块之间的物理链路存在异常,根据存在异常的物理链路对应的物理链路标识,将所述下一跳路由表中与所述物理链路标识对应的物理链路状态更新为异常,得到更新后的下一跳路由表;根据更新后的下一跳路由表,将所述当前硬件模块保存的全局路由表中与所述物理链路标识对应的物理链路状态更新为异常,得到更新后的全局路由表;根据更新后的全局路由表,将所述等价多路径路由表中包含所述物理链路标识的数据传输路径的状态更新为异常。

本说明书还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可用于执行上述图3、图4提供的确定物理链路的方法。

基于图3、图4所示的确定物理链路的方法,本说明书实施例还提供了图7所示的电子设备的结构示意图。如图7,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图3、图4所述的确定物理链路的方法。

当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字方法“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的方法、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本说明书的实施例可提供为方法、方法、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书是参照根据本说明书实施例的方法、设备(方法)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、方法或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

相关技术
  • 一种问卷调查对象确定方法、装置、电子设备和存储介质
  • 一种车位确定方法、装置、电子设备、车辆及存储介质
  • 一种鉴权以及确定鉴权方式的方法、装置及电子设备
  • 一种用户身份确定方法、装置及电子设备
  • 一种任务时长确定方法及装置和电子设备
  • 一种确定交换机与终端之间的物理链路的方法以及装置
  • 一种确定交换机与终端之间的物理链路的方法以及装置
技术分类

06120115921027