分布式系统和具有该分布式系统的无人驾驶设备的制作方法

文档序号:18179957发布日期:2019-07-17 05:08阅读:162来源:国知局
分布式系统和具有该分布式系统的无人驾驶设备的制作方法

本申请涉及通信领域,尤其涉及一种分布式系统和具有该分布式系统的无人驾驶设备。



背景技术:

相关技术中,分布式系统的各个设备之间依赖网络进行通信,为实现设备之间网络通信,分布式系统需要设置网线、网卡、路由器、交换机等物理硬件,成本较高。而分布式系统的各个设备之间通信的过程中,所有数据都会经过网络通讯协议如tcp/ip或者udp协议,经过层层封装、路由和层层解析达到目标设备,不但传输延时大,而且占用系统资源多。



技术实现要素:

有鉴于此,本申请提供一种分布式系统和具有该分布式系统的无人驾驶设备。

具体地,本申请是通过如下技术方案实现的:

根据本申请的第一方面,提供一种分布式系统,所述分布式系统包括:

n个计算设备,每一计算设备包括cpu、内存单元、fpga以及与所述fpga连接的至少一个网络接口;

其中,n为正整数,且n>1,每一计算设备的网络接口的数量>n-1;

每一计算设备的至少一网络接口与其他每一计算设备的至少一网络接口对应连接;

每一计算设备的fpga安装有预设驱动,该计算设备的fpga能够基于所述预设驱动直接访问该计算设备的内存单元;

每一计算设备与其他每一计算设备之间能够基于对应的fpga进行数据直接传输。

根据本申请的第二方面,提供一种无人驾驶设备,包括第一方面所述的分布式系统。

本申请的有益效果:本申请分布式系统通过在每一计算设备上设置fpga和至少一个网络接口,使得每一计算设备与其他每一计算设备之间能够基于对应的网络接口直接连接,并基于fpga通信,使得两个计算设备之间能够直接交换数据,两个计算设备之间无需通过网络通讯协议传输数据,达到低延时、高带宽、低成本、远距离大量数据交换的目的。

附图说明

图1是本申请一示例性实施例示出的一种分布式系统的结构框图;

图2是本申请另一示例性实施例示出的一种分布式系统的结构框图;

图3是本申请一示例性实施例示出的一种分布式系统的一具体结构框图;

图4是本申请一示例性实施例示出的一种无人驾驶设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面结合附图,对本申请的分布式系统和具有该分布式系统的无人驾驶设备进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。

图1是本申请一示例性实施例示出的一种分布式系统的结构框图;图2是本申请另一示例性实施例示出的一种分布式系统的结构框图。

如图1和图2所示,该分布式系统100可包括n个计算设备,其中,n为正整数,且n>1,计算设备的数量可根据具体需要进行设置,如2个、3个、4个或者更多。

本实施例的每一计算设备可包括cpu(中央处理器,centralprocessingunit)、内存单元、fpga(英文全称:field-programmablegatearray,中文全称:现场可编程门阵列)以及至少网络接口。其中,fpga能够与cpu通信,多个网络接口与fpga分别连接。本实施例中,每一计算设备的网络接口的数量>n-1,每一计算设备的至少一网络接口与其他每一计算设备的至少一网络接口对应连接。需要说明的是,本申请的网络接口为通用网络接口。

进一步的,每一计算设备的fpga安装有预设驱动,该计算设备的fpga能够基于预设驱动直接访问该计算设备的内存单元。更进一步的,每一计算设备与其他每一计算设备之间能够基于对应的fpga进行数据直接传输。

本申请实施例的分布式系统100,通过在每一计算设备上设置fpga和至少一个网络接口,使得每一计算设备与其他每一计算设备之间能够基于对应的网络接口直接连接,并基于fpga通信,使得两个计算设备之间能够直接交换数据,两个计算设备之间无需通过网络通讯协议传输数据,达到低延时、高带宽、低成本、远距离大量数据交换的目的。

在一实施例中,参见图1,对于每一计算设备,该计算设备的cpu和fpga集成在同一电路板上。可选的,cpu和fpga均设于主控板上,并且,cpu与fpga电耦合连接实现通信。

在另一实施例中,参见图2,对于每一计算设备,该计算设备的cpu和的fpga单独设置,并且,该计算设备的fpga和至少一个网络接口集成在同一扩展卡上。本实施例中,对于每一计算设备,该计算设备的cpu设于主控板上,该计算设备的fpga设于扩展卡上,该计算设备的cpu与fpga之间通过导线连接实现通信。

在又一实施例中,对于其中一部分计算设备,该计算设备的cpu和fpga集成在同一电路板上;对于另一部分计算设备,该计算设备的cpu和的fpga单独设置,且fpga和至少一个网络接口集成在同一扩展卡上。

可选的,参见图3,本实施例的扩展卡可为pcie扩展卡(pcie的英文全称:peripheralcomponentinterconnectexpress),实现数据的高速传输。当然,在其他实施例中,扩展卡也可为其他通信类型的扩展卡。

预设驱动可为内存直接访问dma(英文全称:directmemoryaccess),也可为其他能够直接访问内存单元的驱动。

内存单元可为cpu的内存,也可为独立设置的存储单元,如ram、rom、固态硬盘等,当内存单元为独立设置的存储单元时,cpu和扩展卡可访问该存储单元。

每一计算设备的网络接口的数量也可根据需要设置,可选的,每一计算设备的网络接口的数量为n-1,每一计算设备的一个网络接口与其他每一计算设备的一个网络接口对应连接。

例如,分布式系统100包括1号计算设备、2号计算设备和3号计算设备,其中,1号计算设备包括网络接口11和网络接口12,2号计算设备包括网络接口21和网络接口22,3号计算设备包括网络接口31和网络接口32。1号计算设备的网络接口11与2号计算设备的网络接口21连接,1号计算设备的网络接口12与3号计算设备的网络接口31连接,2号计算设备的网络接口22与3号计算设备的网络接口32连接。

另外,在一些例子中,每一计算设备的至少一网络接口与其他每一计算设备的至少一网络接口通过网线对应连接,通用性强。可以理解的是,每一计算设备的至少一网络接口与其他每一计算设备的至少一网口之间并不限于通过网线对应连接,也可采用连接器进行连接。

在本实施例中,每一计算设备的每一网络接口具有一接口标识,例如,上述实施例中,1号计算设备的2个网络接口的接口标识分别为网络接口11、网络接口12,2号计算设备的2个网络接口的接口标识分别为网络接口21、网络接口22,3号计算设备的2个网络接口的接口标识分别为网络接口31、网络接口32。本实施例的分布式系统100中,每一计算设备的每一网络接口与其他每一计算设备之间为固定映射关系,例如,1号计算设备的网络接口11与2号网络接口对应,1号计算设备的网络接口12与3号计算设备对应等等。

本实施例的每一计算设备既可作为数据发送端,也可作为数据接收端,以下实施例将分别对计算设备作为数据发送端以及计算设备作为数据接收端时,分布式系统100的工作流程进行阐述。

在当前计算设备作为数据发送端时,待发送的数据需预先存储在该当前计算设备的内存单元中。当前计算设备的fpga负责响应cpu发送的数据调用指令,其中,cpu是在接收到外部指令(如传感器检测的数据)后产生数据调用指令的。该数据调用指令携带有数据发送接口标识和内存访问地址,其中,数据发送接口标识即与目的计算设备对应,内存访问地址即为当前计算设备中存储有待发送的数据的内存单元的地址。

具体的,当当前计算设备的fpga接收到该当前计算设备的cpu发送的携带有的数据调用指令时,该当前计算设备的fpga基于dma读取该当前计算设备中与内存访问地址对应的内存单元所存储的数据,并且该当前计算设备的fpga会通过数据发送接口标识对应的该当前计算设备的网络接口发送所读取的数据,从而将该当前计算设备的内存单元所存储的数据通过该当前计算设备的fpga直接传输至对应的计算设备。

可选的,数据调用指令携带有一个或多个数据发送接口标识,当数据调用指令携带有一个数据发送接口标识时,该当前计算设备的内存单元所存储的数据通过该当前计算设备的fpga直接传输至与该数据发送接口标识连接的计算设备。

例如,1号计算设备通过网络接口12与3号计算设备的网络接口31连接,1号计算设备需要将内存单元1所存储的数据发送至3号计算设备。数据调用指令携带有网络接口11的数据发送接口标识,并携带有内存单元1的内侧访问地址。1号计算设备的fpga在接收到1号计算设备的cpu发送的数据调用指令后,1号计算设备的fpga会基于dma读取内存单元1中存储的数据,并将读取的数据通过1号计算设备的网络接口12发送至3号计算设备。

当数据调用指令携带有多个数据发送接口标识时,该当前计算设备的内存单元所存储的数据通过该当前计算设备的fpga直接传输至与多个数据发送接口标识对应连接的计算设备。

例如,1号计算设备通过网络接口11与2号计算设备连接,并通过网络接口12与3号计算设备的网络接口31连接,1号计算设备需要将内存单元1所存储的数据发送至2号计算设备和3号计算设备。数据调用指令携带有网络接口11和网络接口12的数据发送接口标识,并携带有内存单元1的内侧访问地址。1号计算设备的fpga在接收到1号计算设备的cpu发送的数据调用指令后,1号计算设备的fpga会基于dma读取内存单元1中存储的数据,并将读取的数据通过1号计算设备的网络接口11发送至2号计算设备,并通过1号计算设备的网络接口12发送至3号计算设备。

在当前计算设备作为数据接收端时,具体的,当当前计算设备的fpga通过该当前计算设备的至少一个网络接口接收到数据时,该当前计算设备的fpga发送触发信号至该当前计算设备的cpu,向cpu申请存入数据。

该当前计算设备的cpu在接收到触发信号后,分配数据存储地址至对该计算设备的fpga所安装的dma,具体操作时,cpu直接对该计算设备的fpga所安装的dma进行设置,告知该计算设备的fpga所安装的dma当前所接收到的数据的数据存储地址。

cpu对dma设置完毕后,该当前计算设备的fpga基于设置完毕的dma将所接收的数据存入该计算设备中该数据存储地址对应的内存单元中,至此,当前计算设备完成接收其他设备的数据的操作。

可选的,触发信号为中断信号。可以理解的是,每一计算设备的fpga向该计算设备的cpu申请存入数据也可采用其他触发方式。

进一步的,在当前计算设备的fpga基于dma将所接收的数据存入该当前计算设备中数据存储地址对应的内存单元中之后,该当前计算设备的cpu会基于该当前计算设备的fpga发送用于指示数据接收完成的指示信息至当前接收数据的网络接口,告知与当前接收数据的网络接口连接的计算设备当前数据传输完毕。

此外,在当前计算设备的fpga基于dma将所接收的数据存入该当前计算设备中数据存储地址对应的内存单元中之后,该当前计算设备的cpu能够调用预设的处理程序对当前存入该当前计算设备的内存单元中的数据进行处理。其中,预设的处理程序可为现有的数据处理程序,如解密、加密等。

在一具体实现方式中,2号计算设备在通过网络接口21接收到数据(即1号计算设备发送)后,2号计算设备的fpga发送中断信号至2号计算设备的cpu,向2号计算设备的cpu申请存入数据。

2号计算设备的cpu在接收到中断信号后,2号计算设备的cpu直接对2号计算设备的fpga所安装的dma进行设置,告知2号计算设备的fpga所安装的dma当前通过网络接口21所接收到的数据的数据存储地址。

2号计算设备的cpu在对dma设置完毕后,2号计算设备的fpga会基于设置完毕的dma将通过网络接口21所接收的数据存入该数据存储地址对应的2号计算设备的内存单元中。

并且,在2号计算设备的fpga会基于设置完毕的dma将通过网络接口21所接收的数据存入该数据存储地址对应的2号计算设备的内存单元中后,2号计算设备的cpu会基于2号计算设备的fpga发送用于指示数据接收完成的指示信息至网络接口21,告知与1号计算设备当前数据传输完毕。

本实施例的计算设备可为计算机,也可为其他具有数据处理和交换能力的模块或设备。

值得一提的是,上述实施例的分布式系统100可应用在具有多个计算设备的系统中,如无人车、无人机等。

参见图4,本申请实施例还提供一种无人驾驶设备,该无人驾驶设备可包括上述实施例的分布式系统100。该无人驾驶设备包括无人车或无人机等。

进一步参见图4,本实施例的无人驾驶设备可包括车架200,其中,分布式系统100可设于车架200。

其中,计算设备可包括无人驾驶设备的不同功能模块,如主控单元、传感模块、导航模块等,不同功能模块之间能够直接交换数据,实现低延时、高带宽、低成本、远距离大量数据交换的目的,提高无人驾驶的可靠性。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1