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

一种数据处理方法和相关装置

文献发布时间:2024-05-31 01:29:11


一种数据处理方法和相关装置

技术领域

本申请涉及车辆技术领域,特别是涉及一种数据处理方法和相关装置。

背景技术

随着车辆技术的发展,面对复杂的路况及考虑到驾驶员的安全,智能驾驶域控制器需要强大算力的多核CPU(Central Processing Unit,中央处理器)处理器。

智能驾驶域控制器的CPU主要功能包括整车控制、信号(如雷达信号)采集、实时采集转发CAN(Controller Area Network,控制器域网)信号/以太网信号等等。其中,CPU负载率表示一段时间内智能驾驶域控制器内部的负载率,可以用于反映智能驾驶域控制器内部CPU的资源使用情况。相关技术中,由于在行车过程中,CPU负载率过高导致CAN信号/以太网信号等数据转发出现延迟、丢失等问题,导致不能及时控制车辆。

由此可见,在行车过程中,对CPU负载率进行优化以降低CPU负载率,对于保证整车控制与行车安全具有重要意义。

发明内容

为了解决上述技术问题,本申请提供了一种数据处理方法和相关装置,能够均衡CPU负载情况,降低智能驾驶域控制器的CPU负载率。

本申请实施例公开了如下技术方案:

一方面,本申请实施例提供了一种数据处理方法,所述方法包括:

获取车辆的多个应用核和所述车辆对应的第一路由表;所述第一路由表用于表征协议数据单元PDU信号与所述多个应用核的对应关系;

根据所述第一路由表对接收到的待执行PDU信号进行路由处理,将所述待执行PDU信号路由至目标应用核;所述目标应用核是所述多个应用核中与所述待执行PDU信号具有对应关系的应用核;

通过所述目标应用核对所述待执行PDU信号进行解析,并根据解析结果对所述车辆进行控制。

另一方面,本申请实施例提供了一种数据处理装置,所述装置包括获取单元、路由单元和控制单元:

所述获取单元,用于获取车辆的多个应用核和所述车辆对应的第一路由表;所述第一路由表用于表征协议数据单元PDU信号与所述多个应用核的对应关系;

所述路由单元,用于根据所述第一路由表对接收到的待执行PDU信号进行路由处理,将所述待执行PDU信号路由至目标应用核;所述目标应用核是所述多个应用核中与所述待执行PDU信号具有对应关系的应用核;

所述控制单元,用于通过所述目标应用核对所述待执行PDU信号进行解析,并根据解析结果对所述车辆进行控制。

又一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行以上方面所述的数据处理方法。

又一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行以上方面所述的数据处理方法。

又一方面,本申请实施例提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行以上方面所述的数据处理方法。

由上述技术方案可以看出,在车辆行车过程中,首先获取车辆的多个应用核和车辆对应的第一路由表,其中,第一路由表用于表征协议数据单元PDU信号与多个应用核的对应关系,进而可以根据第一路由表对接收到的待执行PDU信号进行路由处理,将待执行PDU信号直接路由至目标应用核,目标应用核是指多个应用核中与待执行PDU信号具有对应关系的应用核。最后,通过目标应用核对待执行PDU信号进行解析,并根据解析结果对车辆进行控制。基于此,使得对于待执行PDU信号的解析是在将其直接路由至目标应用核之后,通过目标应用核完成的,针对多个待执行PDU信号的情况,可以通过每个应用核解析自身对应的那部分待执行PDU信号即可,从而无需对多个待执行PDU信号在路由之前进行统一解析,能够均衡CPU负载情况,降低智能驾驶域控制器的CPU负载率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种数据处理方法的流程图;

图2为本申请实施例提供的一种车辆的多核CPU优化系统的结构示意图;

图3为本申请实施例提供的一种数据处理装置的结构图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例所提供的数据处理方法可以通过计算机设备实施,该计算机设备可以是终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请对此不做任何限制。

具体通过如下实施例进行说明:

图1为本申请实施例提供的一种数据处理方法的流程图,以终端设备作为前述计算机设备为例进行说明,所述方法包括:

S101:获取车辆的多个应用核和车辆对应的第一路由表。

在车辆行车过程中,为了降低智能驾驶域控制器的CPU负载率,可以首先获取车辆的多个应用核和车辆对应的第一路由表,其中,第一路由表用于表征协议数据单元PDU信号与多个应用核的对应关系。

在实际应用中,针对车辆的多个应用核,可以预先进行任务分配,以便均衡各个应用核的负载。具体的,可以获取车辆的待执行功能,进而对待执行功能进行分配,将待执行功能分配至多个应用核,使得多个应用核中的每个应用核用于执行不同的待执行功能,基于此,对于车辆的待执行功能均衡分配至多个应用核负载,避免单个应用核的负载过高等情况的发生。

其中,车辆的待执行功能可以是指车辆的智能驾驶域控制器的CPU主要功能。比如,待执行功能可以包括AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)的底层协议栈、车辆的网络管理、诊断、CAN通信、时间同步、外设CAN收发器复杂驱动、车辆的电源管理、以太网通信的协议栈、仲裁模块算法、超声波雷达算法等。为了便于理解,本申请实施例中以车辆的多个应用核包括核0、核1、核2以及核3这四个应用核为例进行说明,在任务分配时,可以通过调用任务分配模块将上述待执行功能分配至核0-核3这四个应用核,具体的,核0负责执行AUTOSAR的底层协议栈、车辆的网络管理、诊断、CAN通信(除了COM层)、时间同步、外设CAN收发器复杂驱动、车辆的电源管理,核1负责执行以太网通信所有的协议栈,核2负责执行仲裁模块算法,核3负责执行超声波雷达算法。基于此,实现车辆待执行功能的均衡分配,均衡多个应用核的负载。其中,任务分配模块可以参见图2所示。

在实际应用中,车辆在行车过程中,往往需要调用各种指令,并通过运行指令的方式实现对车辆的控制,而指令调用等均需要占用一定的CPU。因此。为了进一步降低CPU负载,还可以首先获取执行频率满足预设条件的车辆功能函数和车辆功能常量作为目标指令,其中,预设条件可以是根据实际需求设置的,具体可以是用于筛选高执行频率的车辆功能函数和高执行频率的车辆功能常量。也就是说,执行频率满足预设条件的车辆功能函数和车辆功能常量可以认为是执行频率较高的,对此,可以将其作为目标指令,进一步地,当车辆上电时,从车辆的只读存储器中复制目标指令,并将目标指令存储至指令运行内存,最后,在执行目标指令时,可以直接从指令运行内存读取目标指令。即,对于高执行频率的目标指令,通过为其设置专门的存储空间(指令运行内存),使得在需要执行时,可以直接从指令运行内存读取,节省了每一次执行都需从只读存储器复制的过程,从而减少CPU指令以及执行时间,达到降低CPU负载的目的。

在实际应用中,可以通过Overlay模块完成上述对目标指令的各个处理步骤,Overlay模块可以包括判断执行频率模块、分配RAM空间模块以及复制模块,具体可以参见图2所示。在具体实施时,可以通过判断执行频率模块统计车辆的底层软件的各函数及常量的执行频率,并判断哪块的执行频率满足预设条件(即为高执行频率),比如各函数的执行周期可以为10ms、20ms、50ms等,相应的执行频率为1/10ms、1/20ms、1/50ms等,可以将每10ms执行一次的设置为高执行频率的目标指令。进一步,可以通过分配RAM空间模块为目标指令分配一段专门的RAM空间作为指令运行内存,这段指令运行内存专门用作存储目标指令。最后,在车辆上电时,可以通过复制模块从只读存储器(Flash)中复制目标指令,并将复制好的目标指令存储至指令运行内存。基于此,使得在需要执行目标指令时,可以直接从指令运行内存读取,节省了每一次执行都需从Flash复制的过程,从而减少CPU指令以及执行时间。比如,在实际应用中,由于雷达目标获取函数(Hal_GetValUSS)、雷达故障诊断(Ak2Radar)执行频率是1ms、以太网发送函数(MainFunctionRx_EthT)的执行频率5ms,需要发送的以太网报文多,执行频率较高,所以选择把这几个函数在车辆一上电之后就复制存储到RAM指令运行空间。经工程试验验证,通过设置指令运行空间存储目标指令的方式,能够将CPU负载率从90%降低到80%。

其中,指令运行内存可以是DSPR/PSPR SRAMs,通过复制模块复制目标指令存储至指令运行内存的过程可以通过编译器Tasking的链接文件,指定RAM存储地址,Flash存储地址,具体的代码实现如下:

S102:根据第一路由表对接收到的待执行PDU信号进行路由处理,将待执行PDU信号路由至目标应用核。

S103:通过目标应用核对待执行PDU信号进行解析,并根据解析结果对车辆进行控制。

针对接收到的待执行PDU信号,可以根据第一路由表对其进行路由处理,直接将待执行PDU信号路由至目标应用核,其中,目标应用核是多个应用核中与待执行PDU信号具有对应关系的应用核。也就是说,可以根据第一路由表确定与待执行PDU信号具有对应关系的应用核作为目标应用核,进而直接将其直接路由至目标应用核。进一步,可以通过目标应用核对待执行PDU信号进行解析,并根据解析结果对车辆进行控制。

由于从底层传上来的一整包数据一般为多个待执行PDU信号,没有按照信号矩阵(DBC)解析成信号,通常需要经过COM模块解析成信号之后再将解析后的信号路由至应用核。然而,报文太多、数据量太大,如果单独让核0来承担这个任务,那么核0的负载率会达到99%以上。因此,提出了根据信号被哪个应用核的应用层功能使用,则由该应用核进行解析的方法。可见,路由的目的在于根据待执行PDU信号被哪个应用核的应用层功能使用,则由这个应用核调用相关函数进行解析。比如,对于待执行PDU信号,是核2的仲裁模块需要用到,则直接将该待执行PDU信号路由至核2,由核2解析待执行PDU信号。

基于此,针对多个待执行PDU信号的情况,可以通过每个应用核解析自身对应的那部分待执行PDU信号即可,从而无需对多个待执行PDU信号在路由之前进行统一解析,能够均衡CPU负载情况,降低智能驾驶域控制器的CPU负载率。

在实际应用中,路由的过程可以包括:待执行PDU信号通过PDUR(PDU Router,协议数据单元路由),从CANIf(CAN通信的抽象层)直接路由到目标应用核,根据通信数据库协议对其进行解析成信号,进而给目标应用核的应用层算法使用。

在实际应用中,可以调用目标应用核对应的解析子函数对待执行PDU信号进行解析。

一般,解析函数为ComMainFunctionRx、打包函数为ComMainFunctionTx。相对应的,可以将解析ComMainFunctionRx拆分为多个解析子函数,分别为核0对应的解析子函数ComMainFunctionRx_core0、核1对应的解析子函数ComMainFunctionRx_core1、核2对应的解析子函数ComMainFunctionRx_core2、以及核3对应的解析子函数ComMainFunctionRx_core3。可以将打包函数ComMainFunctionTx拆分为多个打包子函数,分别为核0对应的打包子函数ComMainFunctionTx_core0、核1对应的打包子函数ComMainFunctionTx_core1、核2对应的打包子函数ComMainFunctionTx_core2、以及核3对应的打包子函数ComMainFunctionTx_core3。

此外,在完成对车辆的控制之后,还可以响应于对车辆进行控制的控制结果,调用目标应用核对应的打包子函数根据控制结果进行打包处理,生成执行结果PDU信号,进而可以通过目标应用核将执行结果PDU信号路由至车辆的控制器域网CAN总线。在实际应用中,将执行结果PDU信号路由至车辆的控制器域网CAN总线的过程可以包括:通过PDUR,路由到CANIf层,再经过CANIf层的CAN收发器发送到CAN总线上。

在实际应用中,可以通过COM层代码分核处理模块完成对待执行PDU信号的路由等处理。其中,COM层代码分核处理模块可以参见图2所示。经工程试验验证,采用这种处理方式能够将CPU负载率从80%降低到75%。

在车辆的行车过程中,需要把CAN(智能驾驶CAN、底盘CAN、动力CAN、驾驶员监控摄像头私CAN、惯导智能定位节点私CAN等)的CAN报文打包成以太网报文通过千兆网关发给中央处理器感知融合,以便车辆的智能驾驶域控制器的规划控制算法使用。通常的做法是接收到一帧CAN报文,则转发一帧以太网报文,然而,在以太网报文的发送过程中,每发送一帧以太网报文就需要调用一次以太网协议栈(包括RTE、SoAd、TcpIp等),需占用较大的CPU负载,导致CPU执行时间长。因此,在车辆的行车过程中,还可以对具有相同周期的以太网报文进行合并,得到周期以太网报文,进而通过以太网协议栈发送周期以太网报文。基于此,无需一个报文发送一次,而是将具有相同周期的以太网报文进行合并,通过减少以太网报文的发送次数的方式节省CPU,达到降低CPU负载率的目的。

比如,10ms的CAN报文需要10ms转一次以太网报文,现在多路CAN有很多10ms报文,那如果每一个10ms的CAN报文,对应一个以太网报文来转发,则会占用较大的CPU负载。故可以通过本申请提供的方法,将具有相同周期合并为一帧以太网报文进行发送,从而降低CPU负载率。比如,可以把所有的10ms、20ms、50ms、100ms(周期相同)报文合并到一帧以太网报文,通过缓存等收齐以后通过以太网协议栈发出去,如果本周期没有发,就等下一个周期发,从而,CPU负载率得到进一步降低,每个应用核的负载率降低到70%下,满足期望要求。

在实际应用中,可以通过报文合并模块对具有相同周期的以太网报文进行合并,报文合并模块可以参见图2所示。具体的,可以通过报文合并模块把以太网SOMEIP(是一种提供服务的通信协议,全称Scalable service Oriented Middleware over IP)发送、接收的报文按照相同周期的合并,一个SOMEIP报文payload字段可以最大支持1464字节,从而减少以太网报文的发送次数。

由上述技术方案可以看出,在车辆行车过程中,首先获取车辆的多个应用核和车辆对应的第一路由表,其中,第一路由表用于表征协议数据单元PDU信号与多个应用核的对应关系,进而可以根据第一路由表对接收到的待执行PDU信号进行路由处理,将待执行PDU信号直接路由至目标应用核,目标应用核是指多个应用核中与待执行PDU信号具有对应关系的应用核。最后,通过目标应用核对待执行PDU信号进行解析,并根据解析结果对车辆进行控制。基于此,使得对于待执行PDU信号的解析是在将其直接路由至目标应用核之后,通过目标应用核完成的,针对多个待执行PDU信号的情况,可以通过每个应用核解析自身对应的那部分待执行PDU信号即可,从而无需对多个待执行PDU信号在路由之前进行统一解析,能够均衡CPU负载情况,降低智能驾驶域控制器的CPU负载率。

图2为本申请实施例提供的一种车辆的多核CPU优化系统的结构示意图,多核CPU优化系统具体可以包括任务分配模块、Overlay模块、COM层代码分核处理模块以及报文合并模块,其中,Overlay模块可以包括判断执行频率模块、分配RAM空间模块以及复制模块。具体的:

针对车辆的多个应用核,可以预先进行任务分配,以便均衡各个应用核的负载,在实际应用中,可以通过任务分配模块将车辆的待执行功能分配至各个应用核。以及可以通过判断执行频率模块统计车辆的底层软件的各函数及常量的执行频率,并判断哪块的执行频率满足预设条件(即为高执行频率)则将其作为目标指令,进而,可以通过分配RAM空间模块为目标指令分配一段专门的RAM空间作为指令运行内存,最后,在车辆上电时,可以通过复制模块从只读存储器(Flash)中复制目标指令,并将复制好的目标指令存储至指令运行内存。在车辆的行车过程中,可以通过COM层代码分核处理模块完成对待执行PDU信号的路由等处理,以及通过报文合并模块对具有相同周期的以太网报文进行合并处理。

可以理解的是,其基本对应于方法实施例,所以相关之处可以参见方法实施例的部分说明。

图3为本申请实施例提供的一种数据处理装置的结构图,所述装置包括获取单元301、路由单元302和控制单元303:

所述获取单元301,用于获取车辆的多个应用核和所述车辆对应的第一路由表;所述第一路由表用于表征协议数据单元PDU信号与所述多个应用核的对应关系;

所述路由单元302,用于根据所述第一路由表对接收到的待执行PDU信号进行路由处理,将所述待执行PDU信号路由至目标应用核;所述目标应用核是所述多个应用核中与所述待执行PDU信号具有对应关系的应用核;

所述控制单元303,用于通过所述目标应用核对所述待执行PDU信号进行解析,并根据解析结果对所述车辆进行控制。

在一种可能的实现方式中,所述装置还包括复制单元和读取单元:

所述获取单元,还用于获取执行频率满足预设条件的车辆功能函数和车辆功能常量作为目标指令;

所述复制单元,用于当所述车辆上电时,从所述车辆的只读存储器中复制所述目标指令,并将所述目标指令存储至指令运行内存;

所述读取单元,用于在执行所述目标指令时,从所述指令运行内存读取所述目标指令。

在一种可能的实现方式中,所述装置还包括分配单元:

所述获取单元,还用于获取所述车辆的待执行功能;

所述分配单元,用于对所述待执行功能进行分配,将所述待执行功能分配至所述多个应用核;所述多个应用核中的每个应用核用于执行不同的待执行功能。

在一种可能的实现方式中,所述装置还包括合并单元和发送单元:

所述合并单元,用于在所述车辆的行车过程中,对具有相同周期的以太网报文进行合并,得到周期以太网报文;

所述发送单元,用于通过以太网协议栈发送所述周期以太网报文。

在一种可能的实现方式中,所述控制单元还用于:

调用所述目标应用核对应的解析子函数对所述待执行PDU信号进行解析。

在一种可能的实现方式中,所述装置还包括打包单元:

所述打包单元,用于响应于对所述车辆进行控制的控制结果,调用所述目标应用核对应的打包子函数根据所述控制结果进行打包处理,生成执行结果PDU信号;

所述路由单元,还用于通过所述目标应用核将所述执行结果PDU信号路由至所述车辆的控制器域网CAN总线。

由上述技术方案可以看出,在车辆行车过程中,首先获取车辆的多个应用核和车辆对应的第一路由表,其中,第一路由表用于表征协议数据单元PDU信号与多个应用核的对应关系,进而可以根据第一路由表对接收到的待执行PDU信号进行路由处理,将待执行PDU信号直接路由至目标应用核,目标应用核是指多个应用核中与待执行PDU信号具有对应关系的应用核。最后,通过目标应用核对待执行PDU信号进行解析,并根据解析结果对车辆进行控制。基于此,使得对于待执行PDU信号的解析是在将其直接路由至目标应用核之后,通过目标应用核完成的,针对多个待执行PDU信号的情况,可以通过每个应用核解析自身对应的那部分待执行PDU信号即可,从而无需对多个待执行PDU信号在路由之前进行统一解析,能够均衡CPU负载情况,降低智能驾驶域控制器的CPU负载率。

又一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行上述实施例提供的数据处理方法。

该计算机设备可以包括终端设备或服务器,前述的数据处理装置可以配置在该计算机设备中。

又一方面,本申请实施例还提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于执行上述实施例提供的数据处理方法。

另外,本申请实施例还提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的数据处理方法。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:Read-only Memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请实施例提供的一种数据处理方法和相关装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法。同时,对于本领域的一般技术人员,依据本申请的方法,在具体实施方式及应用范围上均会有改变之处。

综上所述,本说明书内容不应理解为对本申请的限制,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。而且本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

相关技术
  • 一种SDH数据处理方法、系统及相关装置
  • 一种技术评审数据处理方法及相关装置
  • 一种数据库的审计日志处理方法及相关装置
  • 一种数据处理方法以及相关装置
  • 一种数据处理方法、装置和用于数据处理的装置
  • 通过显示接口传送/接收压缩相关指示信息的数据处理装置与相关数据处理方法
  • 发送/接收图片的压缩的像素数据组和像素数据分组设定的指示信息的数据处理装置以及相关数据处理方法
技术分类

06120116623322