一种数据中转单元及基于数据中转单元的数据传输方法与流程

文档序号:29615371发布日期:2022-04-13 11:20阅读:137来源:国知局
一种数据中转单元及基于数据中转单元的数据传输方法与流程

1.本说明书涉及计算机技术领域,尤其涉及一种数据中转单元及基于数据中转单元的数据传输方法。


背景技术:

2.在实际应用中,驾驶设备(无人驾驶设备或常规的驾驶设备等)内部往往需要进行数据传输,例如,无人驾驶设备的主控机需要与多种车载设备之间进行通信,即,主控机需要与车辆运动、车灯相关的控制器以及毫米波雷达等硬件设备进行通信,以进行对车辆运动状态等的监控以及下发控制指令。
3.在现有技术中,驾驶设备可以通过指令信号将数据发送给与车载设备之间相通信的芯片,使该芯片需要发送给车载设备的数据,发送给该车载设备,并且,车载设备需要发送给驾驶设备的数据也可以通过该芯片进行传输,但是,这种方式仅能够实现对单一的车载设备进行通信。
4.所以,如何实现同时对多个车载设备的数据通信,则是一个亟待解决的问题。


技术实现要素:

5.本说明书提供一种数据中转单元及基于数据中转单元的数据传输方法,以部分的解决现有技术存在的上述问题。
6.本说明书采用下述技术方案:
7.本说明书提供了一种数据中转单元,所述数据中转单元通过数据总线分别与第一数据处理单元和至少一个第二数据处理单元进行数据传输,不同第二数据处理单元与不同的硬件设备进行通信连接,所述数据中转单元中包含有数据分配单元以及若干数据寄存单元,不同第二数据处理单元所对应的数据,存储在不同的数据寄存单元中;
8.所述数据分配单元,用于接收所述第一数据处理单元或所述第二处理单元发送的数据,以及确定接收到的数据所对应的第二数据处理单元,作为目标数据处理单元,并将接收到的数据存储在所述目标数据处理单元对应的数据寄存单元中。
9.可选地,所述数据分配单元包括第一数据分配单元以及第二数据分配单元;
10.所述第一数据分配单元,用于接收所述第一数据处理单元发送的数据,并确定需要接收所述数据的第二数据处理单元,作为目标数据处理单元;
11.所述第二数据分配单元,用于接收所述第二数据处理单元发送的数据,并将发送所述数据的第二数据处理单元,作为目标数据处理单元。
12.可选地,所述数据中转单元还包括:中断控制单元;
13.所述中断控制单元用于,针对每个数据寄存单元,若确定该数据寄存单元中存储有至少一个数据,向所述第一数据处理单元或所述第二数据处理单元发送该数据寄存器对应的中断信号,以使所述第一数据处理单元或所述第二数据处理单元根据所述中断信号,向所述中断控制单元返回读取该数据寄存单元中存储的数据的数据读取请求,所述中断控
制单元接收到数据读取请求后,向所述第一数据处理单元或所述第二数据处理单元返回所述数据寄存单元中存储的数据。
14.可选地,所述中断控制单元包括第一中断控制单元以及第二中断控制单元;
15.所述第一中断控制单元用于,若该数据寄存单元中的数据为第一数据处理单元发送的,并且该数据寄存单元存储有至少一个数据,向该数据寄存单元对应的第二数据处理单元发送该数据寄存器对应的中断信号;
16.所述第二中断控制单元用于,若该数据寄存单元中的数据为第二数据处理单元发送的,并且该数据寄存单元中存储有至少一个数据,向所述第一数据处理单元发送该数据寄存器对应的中断信号。
17.可选地,所述数据中转设备中还包括:协议解析单元;
18.所述协议解析单元,用于对接收到的各子数据进行协议解析,得到解析后的各子数据发送给所述数据分配单元,接收到的各子数据为第一数据处理单元或第二数据处理单元发送的;
19.所述数据分配单元,用于接收解析后的各子数据,确定所述各子数据中每两个预设的标志数据之间的若干子数据是否符合预设条件,若是,将所述若干子数据进行组合,得到组合后的数据,并确定所述组合后的数据对应的第二数据处理单元,作为目标数据处理单元,并将所述组合后的数据存储在所述目标数据处理单元对应的数据存储器中,若否,将所述若干子数据删除。
20.可选地,所述数据分配单元用于,若确定所述若干子数据符合预设数量和/或所述若干子数据中每个子数据符合预设数据大小,确定所述若干子数据符合预设条件。
21.可选地,所述数据中转单元中还包括状态监控单元,所述状态监控单元用于获取各数据寄存单元对应的状态信息,并针对每个数据寄存单元,将该数据寄存单元对应的状态信息存储到该数据寄存单元对应的状态寄存单元中,所述状态信息包括空状态以及满状态。
22.可选地,所述中断控制单元用于,根据通过所述状态监控单元读取到的该数据寄存器对应的数据状态信息,确定该数据寄存单元中是否不为空状态,若是,向所述第一数据处理单元或所述第二数据处理单元发送中断信号。
23.可选地,所述状态信息还包括可编程满状态,其中,所述可编程满状态用于表示所述状态信息对应的数据寄存单元包含有超过第一数量阈值的数据;
24.所述中断控制单元用于,向所述第一数据处理单元或所述第二数据处理单元发送该数据寄存单元对应的中断信号,以使所述第一数据处理单元或所述第二数据处理单元根据所述中断信号,读取该数据寄存单元对应的状态信息,并在读取出的状态信息为可编程满状态时,一次性向所述中断控制单元发送读取设定数量的数据的数据读取请求。
25.可选地,所述状态信息还包括可编程空状态,所述可编程空状态用于表示所述状态信息对应的数据寄存单元包含有少于第二数量阈值的数据;
26.所述中断控制单元用于,向所述第一数据处理单元或所述第二数据处理单元发送该数据寄存单元对应的中断信号,以使所述第一数据处理单元或所述第二数据处理单元根据所述中断信号,读取该数据寄存单元对应的状态信息,并在读取出的状态信息为可编程空状态时,向所述中断控制单元发送读取少于所述第二数量阈值的数据的数据读取请求。
27.可选地,所述状态监控单元还用于监控所述第一数据处理单元和/或所述第二数据处理单元对应的响应时长,所述响应时长用于表示所述第一数据处理单元和/或所述第二数据处理单元对所述中断控制单元的中断信号的响应时长。
28.可选地,所述数据中转单元为现场可编程门阵列fpga,所述数据寄存单元为先进先出缓冲器。
29.本说明书提供一种基于数据中转单元的数据传输方法,所述数据中转单元通过数据总线分别与第一数据处理单元和至少一个第二数据处理单元进行数据传输,不同第二数据单元与不同的硬件设备进行通信连接,所述数据中转单元中包含有数据分配单元以及若干数据寄存单元,不同第二数据单元所对应的数据,存储在不同的数据寄存单元中;
30.所述方法包括:
31.通过所述数据分配单元接收所述第一数据处理单元或所述第二处理单元发送的数据;
32.确定接收到的数据所对应的第二数据处理单元,作为目标数据处理单元,并将接收到的数据存储在所述目标数据处理单元对应的数据寄存单元中。
33.本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于数据中转单元的数据传输方法。
34.本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于数据中转单元的数据传输方法。
35.本说明书采用的上述至少一个技术方案能够达到以下有益效果:
36.从上述方法中可以看出,数据中转单元可以通过数据总线分别与第一数据处理单元和至少一个第二数据处理单元进行数据传输,不同第二数据处理单元可以与不同的硬件设备进行通信连接,数据中转单元中包含有数据分配单元以及若干数据寄存单元,不同第二数据处理单元所对应的数据,存储在不同的数据寄存单元中,数据分配单元可以接收第一数据处理单元或第二处理单元发送的数据,以及确定接收到的数据所对应的第二数据处理单元,作为目标数据处理单元,并将接收到的数据存储在目标数据处理单元对应的数据寄存单元中。
37.从上述内容中可以看出,数据中转单元中可以包含若干个数据寄存单元,数据中转单元可以接收第一数据处理单元或第二数据处理单元的数据,由于需要对多个第二数据处理单元的数据进行并行的中转,因此,不同数据处理单元对应不同的数据寄存单元,可以实现在接收到不同的第二数据处理单元的数据或是需要将不同的第二数据处理单元所需的数据进行接收时,分别通过不同的数据寄存单元进行存储,从而实现了同时针对多个硬件设备进行通信。
附图说明
38.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
39.图1为本说明书中一种数据中转单元的结构示意图;
40.图2为本说明书提供的一种第一数据分配单元以及第二数据分配单元的结构示意图;
41.图3为本说明书中提供的一种包含有第一中断控制单元以及第二中断控制单元的数据中转单元的结构示意图;
42.图4为本说明书中提供的一种包含有协议解析单元的数据中转单元的示意图;
43.图5为本说明书中提供的一种将多个子数据组合成存储在数据寄存单元的一个数据的示意图;
44.图6为本说明书中提供的一种数据中转单元整体性的结构示意图;
45.图7为本说明书中一种基于数据中转单元的数据传输方法的流程示意图;
46.图8为本说明书提供的对应于图7的电子设备示意图。
具体实施方式
47.为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
48.以下结合附图,详细说明本说明书各实施例提供的技术方案。
49.在实际应用中,无人驾驶设备中的主控机往往需要与多个硬件设备进行通信,例如,无人驾驶设备需要接收毫米波雷达、相机、底盘的车速系统、方向系统等的数据,也需要对这些硬件设备进行数据的发送,例如,向车速、方向系统发送需要控制的速度、方向。
50.基于此,本说明书提供一种数据中转单元,图1为本说明书中一种数据中转单元的结构示意图,从图1中可以看出,数据中转单元可以通过数据总线(如axi4总线)分别与第一数据处理单元和至少一个第二数据处理单元进行数据传输,不同第二数据处理单元可以与不同的硬件设备进行通信连接,数据中转单元中包含有数据分配单元以及若干数据寄存单元,不同第二数据处理单元所对应的数据,可以存储在不同的数据寄存单元中。
51.该数据中转单元可以应用于无人驾驶设备(或常规的驾驶设备等)内进行数据的中转传输中,也就是说,第一数据处理单元可以是指无人驾驶设备的主控机,而第二数据处理单元可以是连接无人驾驶设备内的硬件设备(如底盘的车速、转向等控制系统、雷达、相机等硬件设备)的处理单元,可以与该硬件设备进行直接的通信,如,可以通过canbus总线与硬件设备进行通信。由于从第一数据处理单元或第二数据处理单元传送到数据中转单元的数据需要符合canbus总线协议的标准,因此,本说明书的数据可以称之为canbus数据。
52.由于第一数据处理单元与第二数据处理单元可以为不同架构的数据处理单元,可能无法直接进行数据传输,因此,需要一个中转作用的数据中转单元来进行两个数据处理单元之间的数据传输,并且由于第一数据处理单元需要与多个第二数据处理单元进行通信,以针对多个不同的硬件设备进行发送或接收数据,因此,数据中转单元中包含可以若干数据寄存单元,不同第二数据处理单元可以对应不同的数据寄存单元,数据中转单元中的数据分配单元,可以在接收到第一数据处理单元或第二处理单元发送的数据后,确定接收到的数据所对应的第二数据处理单元,作为目标数据处理单元,并将接收到的数据存储在目标数据处理单元对应的数据寄存单元中。
53.也就是说,数据中转单元既可以将第一数据处理单元需要发送给某个第二处理单元的数据,进行中转,使得第二数据处理单元能够接收到该数据,也可以将第二数据处理单元需要发送给第一数据处理单元的数据,进行中转,得到第一数据处理单元能够接收到该数据。而使得第二数据处理单元接收数据以及使得第一数据处理单元接收数据的方式可以存在多种,例如,第二数据处理单元以及第一数据处理单元可以主动从数据中转单元内获取所需的数据,也可以数据中转单元在数据寄存单元中存在数据时,向需要数据的第一数据处理单元或第二数据处理单元发送数据。
54.所以,数据可以从第一数据处理单元处发送给数据中转单元,也可以从第二数据处理单元发送给数据中转单元处,因此,数据分配单元可以包括第一数据分配单元以及第二数据分配单元,第一数据分配单元用于接收第一数据处理单元发送的数据,并确定需要接收数据的第二数据处理单元,作为目标数据处理单元,以及将数据存储在该目标数据处理单元对应的数据寄存单元中,第二数据分配单元可以用于接收第二数据处理单元发送的数据,并将发送数据的第二数据处理单元,作为目标数据处理单元,以及将数据存储在该目标数据处理单元对应的数据寄存单元中。
55.由于存在多个第二数据处理单元,因此,通过上述数据中转单元内,不同的第二数据处理单元对应不同的数据寄存单元,可以实现并行的对需要发送给第二数据处理单元或需要发送对第一数据处理单元的数据进行接收、分配以及发送。上述提到的接收到的数据对应的第二数据处理单元可以是指发送该数据的第二数据处理单元,也可以是指需要接收该数据的第二数据处理单元。因此,对于一个第二数据处理单元来说,发送到该第二数据处理单元的数据以及该第二数据处理单元需要接收的数据,也可以存储在不同数据寄存单元中。所以,第一数据分配单元与第二数据分配单元可以分别对应若干不同的数据寄存单元,如图2所示。
56.图2为本说明书提供的一种第一数据分配单元以及第二数据分配单元的结构示意图,第一数据分配单元可以将接收到的数据分配给一些数据寄存单元中,而第二数据分配单元可以将接收到的数据分配给另外一些数据寄存单元中。
57.从上述内容中可以看出,从数据中转单元接收到的数据,还需要传送给第一数据处理单元或第二数据处理单元,因此,该数据中转单元还可以包括:中断控制单元,通过该中断控制单元可以,针对每个数据寄存单元,若确定该数据寄存单元中存储有至少一个数据,向第一数据处理单元或第二数据处理单元发送该数据寄存器对应的中断信号,以使第一数据处理单元或第二数据处理单元根据中断信号,向中断控制单元返回读取该数据寄存单元中存储的数据的数据读取请求,中断控制单元接收到数据读取请求后,可以向第一数据处理单元或第二数据处理单元返回数据寄存单元中存储的数据。
58.可以理解为,该中断控制单元可以时刻根据每个数据寄存单元中存储数据的状态,来确定是否向第一数据处理单元或第二数据处理单元发送中断信号,该中断信号可以使需要接收数据寄存单元中数据的数据处理单元进行数据读取。
59.由于某些数据寄存单元中的数据需要被传输到第一数据处理单元,某些数据寄存单元中的数据需要被传输到第二数据处理单元。因此,中断控制单元可以包括第一中断控制单元以及第二中断控制单元,若该数据寄存单元中的数据为第一数据处理单元发送的,并且该数据寄存单元存储有至少一个数据,第一中断控制单元可以向该数据寄存单元对应
的第二数据处理单元发送该数据寄存器对应的中断信号,若该数据寄存单元中的数据为第二数据处理单元发送的,并且该数据寄存单元中存储有至少一个数据,第二中断控制单元向第一数据处理单元发送该数据寄存器对应的中断信号,如图3所示。
60.图3为本说明书中提供的一种包含有第一中断控制单元以及第二中断控制单元的数据中转单元的结构示意图。
61.从图3中可以看出,数据中转单元中包含的第一中断控制单元可以,在存储有第一数据处理单元发送的数据的数据寄存单元非空时,向需要该数据寄存单元中的数据的第二数据处理单元发送中断信号,而第二中断控制单元可以,在存储有第二数据处理单元发送的数据的数据寄存单元非空时,向第一数据处理单元发送中断信号,从而使得需要接收数据的两个数据处理单元,均可以在接收到中断信号时,向数据中转单元进行数据的读取。
62.中断控制单元接收到第一数据处理单元(或第二数据处理单元)返回的数据读取请求后,可以读取数据寄存单元中存储的数据并返回给第一数据处理单元(或第二数据处理单元),还需说明的是,中断控制单元中可以包括预取寄存器,当中断控制单元通过预取模式进行数据的读取时,在第一数据处理单元(或第二数据处理单元)返回数据读取请求之前,中断控制单元可以将数据读取到预取寄存器中,这样一来,当接收到数据读取请求后,可以将数据立即返回给第一数据处理单元(或第二数据处理单元),并对该数据寄存单元重新进行状态信息的确定(例如,确定该数据寄存单元是否非空),以及进行下一次的预取。
63.在本说明书中,数据中转单元可以通过相同的数据总线(如axi4总线)与第一数据处理单元和第二数据处理单元进行数据传输,那么通常需要使用统一的数据传输协议来进行数据传输,因此,数据中转单元需要通过协议解析单元对第一数据处理单元发送过来的数据或者第二数据处理单元发送过来的数据进行解析,再将解析后的数据进行存储,如图4所示。
64.图4为本说明书中提供的一种包含有协议解析单元的数据中转单元的示意图。
65.从图4中可以看出,进入数据中转单元或是从该数据中转单元中发出的数据,均需要通过协议解析单元,进行协议解析后,才可以进行相应的接收或发送。
66.由于数据总线具有带宽的约束,因此,在第一数据处理单元与数据中转单元和第二数据处理单元与该数据中转单元之间数据传输时,上述数据可能无法直接进行发送,需要传输多帧子数据,从而组合成该数据。因此,协议解析单元可以对接收到的各子数据进行协议解析,得到解析后的各子数据发送给数据分配单元,数据分配单元接收解析后的各子数据,确定各子数据中每两个预设的标志数据之间的若干子数据是否符合预设条件,若是,则可以将若干子数据进行组合,得到组合后的数据,并确定组合后的数据对应的第二数据处理单元,作为目标数据处理单元,并将组合后的数据存储在目标数据处理单元对应的数据寄存单元中,若否,则可以将若干子数据删除,其中,接收到的每个子数据为第一数据处理单元或第二数据处理单元发送的,如图5所示。
67.图5为本说明书中提供的一种将多个子数据组合成存储在数据寄存单元的一个数据的示意图。
68.假设每个子数据为32bit,需要组合出的数据为128bit,因此,存在数据寄存单元中的一个数据可以由4个子数据组成,每4个子数据之前存在一个预设的标志数据,用于对子数据的完整性以及准确性进行检测,在图5中,标志数据为帧头1以及帧头2这两个加起来
64bit的子数据,因此,当接收到一个标志数据后,在接收到下一个标志数据之前,若之间接收到的子数据为4个,且每个子数据均为32bit,则可以确定接收到的子数据的完整性,而对于不同的第二数据处理单元可以设置不同的标志数据,从而可以保证接收到的数据或发送出的数据对应准确的第二数据处理单元。
69.在本说明书中,数据中转单元中还包括状态监控单元,状态监控单元可以用于获取各数据寄存单元对应的状态信息,并针对每个数据寄存单元,将该数据寄存单元对应的状态信息存储到该数据寄存单元对应的状态寄存单元中,这里提到的状态信息可以包括空状态以及满状态。中断控制单元可以根据通过状态监控单元读取到的该数据寄存器对应的数据状态信息,确定该数据寄存单元中是否不为空状态,若是,向第一数据处理单元或第二数据处理单元发送中断信号。
70.当然,状态监控单元所监控的数据寄存单元对应的状态信息还可以包括可编程空状态和/或可编程满状态。
71.其中,可编程满状态可以用于表示该状态信息对应的数据寄存单元包含有超过第一数量阈值(第一数据阈值可以是设定出的较多数量)的数据。中断控制单元可以向第一数据处理单元或第二数据处理单元发送该数据寄存单元对应的中断信号,以使第一数据处理单元或第二数据处理单元根据该中断信号,读取该数据寄存单元对应的状态信息,并在读取出的状态信息为可编程满状态时,一次性向中断控制单元发送读取设定数量的数据的数据读取请求(例如,可以直接发送设定数量的数据读取请求,以读取出设定数量的数据。设定数量可以进行预设,例如,设为10,则可以从一个数据寄存单元一次性读取出10个数据)。
72.也就是说,当一个数据寄存单元内为可编程满状态时,则说明该数据寄存单元中存储了较多数据,因此,当第一数据处理单元或第二数据处理单元从该数据寄存单元读取数据时,可以一次性读取多个数据。
73.可编程空状态可以用于表示该状态信息对应的数据寄存单元包含有少于第二数量阈值的数据(第二数据阈值可以是设定出的较少数量),第二数量阈值可以小于第一数量阈值,中断控制单元可以向第一数据处理单元或第二数据处理单元发送该数据寄存单元对应的中断信号,以使第一数据处理单元或第二数据处理单元根据中断信号,读取该数据寄存单元对应的状态信息,并在读取出的状态信息为可编程空状态时,向中断控制单元发送读取少于第二数量阈值的数据的数据读取请求。
74.也就是说,当一个数据寄存单元内为可编程空状态时,则说明该数据寄存单元中存储的数据量较少,因此,当第一数据处理单元或第二数据处理单元从该数据寄存单元读取数据时,可以读取少量的数据,例如,一次仅读取一个数据。
75.其中,若是共同使用可编程空状态与可编程满状态,则可以设有多个不同的第一数量阈值的可编程满状态,对于不同第一数量阈值的可编程满状态,可以设定不同的设定数量。中断控制单元用于,向第一数据处理单元或第二数据处理单元发送该数据寄存单元对应的中断信号,以使第一数据处理单元或第二数据处理单元根据该中断信号,读取该数据寄存单元对应的状态信息,并在读取出的状态信息为可编程满状态时,向中断控制单元发送读取该可编程满状态对应的设定数量的数据读取请求。
76.例如,可编程满状态1对应的第一数量阈值可以设为20,对应的设定数量可以设为3,可编程满状态2对应的第一数量阈值可以设为40,对应的设定数量可以设为6,当数据寄
存单元中存储的数据超过20个,则第一数据处理单元(或第二数据处理单元)可以一次性读取3个数据,当数据寄存单元中存储的数据超过40个,则第一数据处理单元(或第二数据处理单元)可以一次性读取6个数据。
77.在本说明书中,该状态监控单元中监控的状态信息还可以包括第一数据处理单元和/或第二数据处理单元对应的响应时长,响应时长可以用于表示第一数据处理单元和/或第二数据处理单元分别对中断控制单元的中断信号的响应时长。
78.因此,第一数据处理单元和/或第二数据处理单元也可以获取到状态监控单元监控的状态信息(包括数据寄存单元对应的状态信息以及第一数据处理单元和/或第二数据处理单元对应的响应时长),从而针对数据传输状态以及自身的响应状态进行监控。
79.从上述内容中可以看出,状态监控单元可以针对第一数据处理单元以及第二数据处理单元分别对应的不同状态信息进行监控,例如,某些数据寄存单元存储的数据是需要发送给第一数据处理单元的,而另一些数据寄存单元存储的数据是需要发送第二数据处理单元的,并且,可以监控第一数据处理单元的响应时长,也可以监控第二数据处理单元的响应时长。
80.由于第一数据处理单元、第二数据处理单元以及数据中转单元所对应的时钟域可能会不一致,而第一数据处理单元以及第二数据处理单元均需要读取状态监控单元所监控得到的状态信息(包含上述状态时长),因此,可以将状态监控单元获得的状态信息进行跨时钟域同步,以得到符合第一数据处理单元时钟域的状态信息,以及符合第二数据处理单元时钟域的状态信息,从而使得第一数据处理单元和第二数据处理单元在读取状态信息时不需要临时进行跨时钟域同步。
81.上述内容是针对本说明书中的数据中转单元中内部的各个组成部分进行了说明,下面以一个例子的形式,整体性的说明该数据中转单元的使用方式,如图6所示。
82.图6为本说明书中提供的一种数据中转单元整体性的结构示意图。
83.从图6中可以清楚的看出,数据可以经由数据中转单元从第一数据处理单元传递到第二数据处理单元,也可以经由数据中转单元从第二数据处理单元传递到第一数据处理单元,并且,由于数据中转单元内包含有多个数据寄存单元,并且每个数据寄存单元可以对应到一个第二数据处理单元,也就是说,从不同第二数据处理单元发送到数据中转单元的数据,可以存储到不同数据寄存器中,从第一数据处理单元发送到数据中转单元的数据,需要给不同的第二数据处理单元,这些数据也可以存储到不同的数据寄存器中,这样一来,可以实现多路并行的数据中转。
84.并且,每个数据寄存单元的状态信息以及每个数据处理单元的中断响应时长可以通过状态监控单元进行监控,而第一数据处理单元以及第二数据单元可以读取状态监控单元所监控到的状态信息。这样一来,第一数据处理单元以及第二数据处理单元可以确定出所需的数据寄存单元的状态,以及确定是否由于自身过于忙碌,而未及时读取数据寄存单元中的数据,也就是说,通过该状态监控单元,可以使第一数据处理单元以及第二数据处理单元及时了解自身以及数据寄存单元的状态,从而实施相应的策略。
85.例如,若第一数据处理单元或第二数据处理单元根据中断响应时长,或某个数据寄存单元的状态信息(如这个数据寄存单元为满状态)确定由于自身过于忙碌,而未及时读取数据寄存单元中的数据,那么可以进行一定的线程清理,或者进行紧急的控制(如临时停
车等)。
86.需要说明的是,本说明书中的数据中转单元可以是现场可编程门阵列(field programmable gate array,fpga),数据寄存单元可以是先进先出缓冲器(can fifo)。
87.上述是针对本说明书中的数据中转单元进行了详细的说明,相应的本说明书还提供了一种基于数据中转单元的数据传输方法。
88.图7为本说明书中一种基于数据中转单元的数据传输方法的流程示意图,具体包括以下步骤:
89.s701:通过所述数据分配单元接收所述第一数据处理单元或所述第二处理单元发送的数据。
90.s702:确定接收到的数据所对应的第二数据处理单元,作为目标数据处理单元,并将接收到的数据存储在所述目标数据处理单元对应的数据寄存单元中。
91.该数据中转单元通过数据总线分别与第一数据处理单元和至少一个第二数据处理单元进行数据传输,不同第二数据单元与不同的硬件设备进行通信连接数据中转单元中包含有数据分配单元以及若干数据寄存单元,不同第二数据单元所对应的数据,存储在不同的数据寄存单元中,本说明书提供的基于数据中转单元进行数据传输的方法,与上述对数据中转单元进行说明的内容基本一致,在此就不再赘述了。
92.上述提到的无人驾驶设备可以是指无人车、无人机、自动配送设备等能够实现自动驾驶的设备。基于此,采用本说明书提供的数据中转单元以及基于数据中转单元进行数据传输的方法可以用于对无人驾驶设备内的主控机以及若干硬件设备之间的中转通信传输,该无人驾驶设备具体可应用于通过无人设备进行配送的领域,如,使用无人驾驶设备进行快递、物流、外卖等配送的业务场景。
93.从上述内容中可以看出,数据中转单元中可以包含若干个数据寄存单元,数据中转单元可以接收第一数据处理单元或第二数据处理单元的数据,由于需要对多个第二数据处理单元的数据进行并行的中转,因此,不同数据处理单元对应不同的数据寄存单元,可以实现在接收到不同的第二数据处理单元的数据或是需要将不同的第二数据处理单元所需的数据进行接收时,分别通过不同的数据寄存单元进行存储。
94.并且,可以通过中断控制单元,在数据寄存单元非空时,向需要该数据寄存单元中数据的数据处理单元的发送中断信号(不同数据寄存单元可以对应各自的中断信号),相应的数据处理单元接收到中断信号后可以进行数据读取,从而实现了同时针对多个硬件设备的数据接收和数据发送。
95.本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图7提供的基于数据中转单元的数据传输方法。
96.本说明书还提供了图8所示的电子设备的示意结构图。如图8所述,在硬件层面,该无人驾驶设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图7所述的基于数据中转单元的数据传输方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
97.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,
对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
98.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
99.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
100.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
101.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
102.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
103.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
104.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
105.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
106.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
107.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
108.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
109.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
110.本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
111.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
112.以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1