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

数据通信方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 20:02:40


数据通信方法、装置、电子设备及存储介质

技术领域

本申请涉及数据交互技术领域,尤其涉及一种数据通信方法、装置、电子设备及存储介质。

背景技术

目前,在汽车技术软件开发领域中,随着自动驾驶和智能汽车的出现,汽车功能日趋复杂,车内电子控制单元越来越多。在本领域中,通常会利用汽车开放系统架构(AUTOSAR,AUTomotive Open System Architecture)进行车内各种元器件的管理。

但是,由于当前技术在利用汽车开放系统架构进行虚拟模块或虚拟单元之间的信息交互过程中存在多种不同的开发工具等原因,导致数据通信存在较大复杂性,致使数据服务信息难以阅读及维护。

发明内容

有鉴于此,本申请的目的在于提出一种数据通信方法、装置、电子设备及存储介质。

基于上述目的,本申请提供了一种数据通信方法,应用于客户单元,包括:

获取服务数据包,根据所述服务数据包选取目标服务;

生成记录有所述目标服务的订阅报文,将所述订阅报文发送给服务单元,使所述服务单元根据所述订阅报文记录的所述目标服务查找到对应的数据链路;

获取所述服务单元通过所述数据链路发送的目标数据。

在一些实施方式中,所述服务数据包为根据所述服务单元自身所能提供的全部服务生成;

所述根据所述服务数据包选取目标服务,包括:

解析所述服务数据包,以分辨出所述服务单元提供的全部服务,在所述服务单元提供的全部服务中选取所述客户单元需要的所述目标服务。

在一些实施方式中,所述服务单元为多个;所述服务数据包为对多个所述服务单元提供的全部服务进行汇总生成的。

在一些实施方式中,所述数据链路,至少包括:运行环境单元、转换单元、通信协议栈单元、连接单元,并通过所述连接单元后将数据利用网络通讯协议进行网络传播发布。

在一些实施方式中,所述获取所述服务单元通过所述数据链路发送的目标数据,包括:

所述服务单元输出所述目标数据或包含所述目标数据的服务数据;

当所述服务单元输出为所述服务数据时,获取通过所述数据链路对所述服务数据进行筛选后的所述目标数据,其中所述数据链路的转换单元获取到所述服务数据后,对所述服务数据进行数据分类,查找到所述目标数据后,将所述目标数据继续进行传输。

基于同一构思,本申请还提供了一种数据通信方法,应用于服务单元,包括:

获取客户单元发送的订阅报文,根据所述订阅报文判定所述客户单元需要的目标服务,根据所述目标服务查找到对应的数据链路;

根据所述目标服务查找对应的目标数据,以利用所述数据链路将所述目标数据发送给所述客户单元。

在一些实施方式中,所述服务单元为多个;

所述获取客户单元发送的订阅报文,包括:

统计所述服务单元能够提供的全部服务的服务信息,以生成服务报文,对多个所述服务单元的所述服务报文进行汇总,以生成服务数据包,查找用于所述服务数据包发布的消息链路,以利用所述消息链路对所述服务数据包进行网络发布;

获取所述客户单元发送的所述订阅报文,其中所述订阅报文为所述客户单元根据所述服务数据包选择出目标服务之后,根据选择出的目标服务生成的。

在一些实施方式中,所述利用消息链路对所述服务数据包进行网络发布,包括:

将所述服务数据包依次通过所述消息链路的服务发现单元及连接单元,并以此通过网络通讯协议进行局域网络传播发布,以使所述客户单元通过局域网接收所述服务数据包。

在一些实施方式中,所述数据链路,至少包括:运行环境单元、转换单元、通信协议栈单元、连接单元,并通过所述连接单元后将数据利用网络通讯协议进行网络传播发布。

在一些实施方式中,所述利用所述数据链路将所述目标数据发送给所述客户单元,包括:

所述服务单元输出所述目标数据或包含所述目标数据的服务数据;

当所述服务单元输出为所述服务数据时,通过所述数据链路的转换单元对获取到的所述服务数据进行数据分类,查找到所述目标数据后,将所述目标数据根据所述数据链路继续传输给所述客户单元。

在一些实施方式中,所述数据链路,具体为根据微内核的嵌入式系统构件体系结构生成的多个链路单元构成,所述多个链路单元设置于同一集合内。

基于同一构思,本申请还提供了一种数据通信装置,应用于客户单元,包括:

确定模块,用于获取服务数据包,根据所述服务数据包选取目标服务;

生成模块,用于生成记录有所述目标服务的订阅报文,将所述订阅报文发送给服务单元,使所述服务单元根据所述订阅报文记录的所述目标服务查找到对应的数据链路;

获取模块,用于获取所述服务单元通过所述数据链路发送的目标数据。

基于同一构思,本申请还提供了一种数据通信装置,应用于服务单元,包括:

获取模块,用于获取客户单元发送的订阅报文,根据所述订阅报文判定所述客户单元需要的目标服务,根据所述目标服务查找到对应的数据链路;

发送模块,用于根据所述目标服务查找对应的目标数据,以利用所述数据链路将所述目标数据发送给所述客户单元。

基于同一构思,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任一项所述的方法。

基于同一构思,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机实现如上任一项所述的方法。

从上面所述可以看出,本申请提供的一种数据通信方法、装置、电子设备及存储介质,应用于客户单元,包括:获取服务数据包,根据所述服务数据包选取目标服务;生成记录有所述目标服务的订阅报文,将所述订阅报文发送给服务单元,使所述服务单元根据所述订阅报文记录的所述目标服务查找到对应的数据链路;获取所述服务单元通过所述数据链路发送的目标数据。本申请通过服务单元将能够提供的服务汇总成服务数据包并发布出去,使客户单元能够根据服务数据包确定目标服务,同时在确定目标服务内容之后,通过建立对应的数据链路进行对应数据的传输,从而利用对应的链路快速完成了数据服务的发布及订阅,降低了数据通信复杂程度,提升了数据服务信息的阅读及维护的便捷性。

附图说明

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

图1为本申请实施例提出的一种应用于客户单元的数据通信方法的流程示意图;

图2为本申请实施例提出的一种应用于服务单元的数据通信方法的流程示意图;

图3为本申请实施例提出的一种应用于客户单元的数据通信装置的结构示意图;

图4为本申请实施例提出的一种应用于服务单元的数据通信装置的结构示意图;

图5为本申请实施例提出的电子设备结构示意图。

具体实施方式

为了能够更清楚地理解本申请的上述目的、特征和优点,下面将对本申请的方案进行进一步描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本申请,但本申请还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本申请的一部分实施例,而不是全部的实施例。

为使本说明书的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本说明书进一步详细说明。

需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件、物件或者方法步骤涵盖出现在该词后面列举的元件、物件或者方法步骤及其等同,而不排除其他元件、物件或者方法步骤。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

如背景技术部分所述,汽车开放系统架构(AUTOSAR)首创组为控制器定义了软件架构,这种软件架构是把设备的硬件与软件分离,把功能模型软件、软件组件放在一起,彼此独立并由不同的制造商研发,再经过某些自动的配置过程组合成一个具体的项目。AUTOSAR这个架构有利于车辆电子系统软件的交换与更新,并为高效管理愈来愈复杂的车辆电子、软件系统提供了一个基础。此外,AUTOSAR在确保产品及服务质量的同时,提高了成本效率。但是,由于当前技术在利用汽车开放系统架构进行虚拟模块或虚拟单元之间的信息交互过程中存在多种不同的开发工具等原因,导致数据通信存在较大复杂性,致使数据服务信息难以阅读及维护。

结合上述实际情况,本申请实施例提出了一种数据通信方案,通过服务单元将能够提供的服务汇总成服务数据包并发布出去,使客户单元能够根据服务数据包确定目标服务,同时在确定目标服务内容之后,通过建立对应的数据链路进行对应数据的传输,从而利用对应的链路快速完成了数据服务的发布及订阅,降低了数据通信复杂程度,提升了数据服务信息的阅读及维护的便捷性。

如图1所示,为本申请提出的一种应用于客户单元的数据通信方法的流程示意图,应用于客户单元,具体包括:

步骤101,获取服务数据包,根据所述服务数据包确定目标服务。

在本步骤中,客户单元与服务单元其均为一个系统中或一个框架中的多个组成单元中的一个,例如汽车系统中,包含多种结构单元,测速单元、测扭矩单元、平衡单元等等,每个虚拟单元都可能产生一些数据,或是可能会利用一些数据进行数据加工处理,从而在一个系统中,可能包含多个客户单元与服务单元,同时同一个虚拟单元可能在一些场景下是服务单元,而在其他场景下则是客户单元,在具体的车辆开放系统架构(AUTOSAR)中每个AUTOSAR SWC(AUTOSARsoftware component,车辆开放系统架构的各软件组件)即可为客户单元,也可为服务单元。之后,服务数据包即为服务单元能够提供的服务的整合包,其可以是一个列表形式,其中可以记录着所以服务单元能够提供的服务,当然根据具体的应用场景,其可以仅记录设定的几个服务单元的服务等等。在具体实施例中,服务即为服务单元能够提供的数据服务或是能够提供的计算服务等等。之后,根据服务数据包记录的服务内容,客户单元就可以确定出其需要的数据或服务内容,即确定出目标服务。

之后,在一些实施例中,服务数据包可以为服务单元利用网络通讯协议进行发布的,此处,可以整合统计所有服务单元能够提供的全部服务之后,生成一个服务数据包,以供客户单元获取该服务数据包进行目标服务的选取。之后,在一些实施例中,当客户单元获取到服务数据包,可以读取其中记录的全部服务单元所能提供的服务,再根据自身需要,对这些服务进行筛选,以确定自身需要进行哪些服务的数据获取,同时可以确定出这些服务对应的服务单元,进而可以将订阅数据包或订阅报文传输给这些服务单元,以供对应的服务单元根据订阅数据包或订阅报文确定其要提供给该客户单元的目标数据,同时可以确定出对应的数据链路。当然,在一些其他实施例中,可以通过SD单元去接收订阅数据包或订阅报文,并以此可以进行服务的确定并打开对应的的数据链路,之后仅通知对应的服务单元提供对应的目标数据即可。之后,服务单元与客户单元之间的通信一般需要通信协议的支持,在一些实实施例中,可使用网络通讯协议进行通信,即TCP/IP协议,TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP(File Transfer Protocol,文件传输协议)、SMTP(Simple MailTransfer Protocol,简单邮件传输协议)、TCP、UDP(User Datagram Protocol,用户数据报协议)、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。在车辆开放系统架构(AUTOSAR)中自身就打包有TCP/IP协议栈组件用于进行TCP/IP协议的执行。从而,最终,服务数据包在车辆开放系统架构(AUTOSAR)的发布链路可以是从SD单元到SoAd单元,再通过TCP/IP协议栈进行数据的上网。其中SoAd单元即为Socket Adaptor单元,其用于确定SD单元至TCP/IP协议栈的连接接口通道。

步骤102,生成记录有所述目标服务的订阅报文,将所述订阅报文发送给服务单元,使所述服务单元根据所述订阅报文记录的所述目标服务确定对应的数据链路。

在本步骤中,在确定了目标服务之后,进而需要通知对应的服务单元提供目标服务,进而需要生成一个订阅报文通知服务单元其订阅了哪些服务,即生成一个记录有目标服务的订阅报文,以此让服务单元根据订阅报文中记录的目标服务,确定出对应每个目标服务的用于数据传输的数据链路,其中不同服务单元与不同客户单元之间的数据链路其结构本身可以是相类似的。在具体实施例中,其数据链路的形式均可以是从AUTOSAR SWC(服务单元)到RTE(Run-Time Environment,运行环境)单元,再到Ldcom单元,再到PduR单元,最后通过SoAd单元将目标数据传输至TCP/IP协议栈以此进行上网上链,其中,RTE单元、Ldcom单元、PduR单元、SoAd单元均为车辆开放系统架构的特定功能单元。其中,RTE单元为运行环境单元,通过该单元AUTOSAR SWC可以确定出其传输是需要使用的通信接口。之后,Ldcom单元(转换单元)中预先静态配置有格式转换表,通过该单元可以将不同的AUTOSAR SWC的数据格式转换为车辆开放系统架构(AUTOSAR)需要的数据格式,同时该单元还可以对输入的数据进行筛选,以确定出哪些是客户单元所需要的,进而仅对需要的目标数据进行传输,例如将特定ID的PDU(Protocol Data Unit,协议数据)数据包,筛选、转换为signal id(信号标识)数据包然后调用相应的回调函数,将转换后的数据传递给上层。之后,PduR单元为PduRouter单元(通信协议栈单元),在链路中可以起到一个路由器的功能,其可以将Ldcom单元的服务业务数据包(即目标数据)转发给其他单元(例如之后的SoAd单元)。最终通过SoAd单元确定了PduR单元与TCP/IP协议栈之间的连接接口通道,并以此将目标数据传递出去。

步骤103,获取所述服务单元通过所述数据链路发送的目标数据。

在本步骤中,根据步骤102的实施例的解释,其中,当服务单元确定了目标服务之后,则会调取对应的目标数据,并准备将目标数据传输给客户单元。其可以利用所述车辆开放系统架构的网络通讯协议发布的过程即为将目标数据通过Ldcom单元、PduR单元、SoAd单元等车辆开放系统架构所固有的单元进行转发,按照车辆开放系统架构自身建立链路的规则进行目标数据的传递(即根据确定出的数据链路进行数据传递),最终将目标数据转发至对应的TCP/IP协议栈(即网络通讯协议),以此将目标数据通过网络(内部网或外部网等等)传输至客户单元,使客户单元获取到通过数据链路传递来的目标数据。最终完成数据通信。

另外,在客户单元获取到目标数据之后,还可以对目标数据进行输出。其可以用以存储、展示、使用或再加工该目标数据。根据不同的应用场景和实施需要,具体的对于该目标数据的输出方式可以灵活选择。

例如,对于本实施例的方法在单一设备上执行的应用场景,可以将目标数据直接在当前设备的显示部件(显示器、投影仪等)上以显示的方式输出,使得当前设备的操作者能够从显示部件上直接看到目标数据的内容。

又如,对于本实施例的方法在多个设备组成的系统上执行的应用场景,可以将目标数据通过任意的数据通信方式(有线连接、NFC、蓝牙、wifi、蜂窝移动网络等)发送至系统内的其他作为接收方的预设设备上,即同步终端上,以使得同步终端可以对其进行后续处理。可选的,该同步终端可以是预设的服务器,服务器一般设置在云端,作为数据的处理和存储中心,其能够对目标数据进行存储和分发;其中,分发的接收方是终端设备,该些终端设备的持有者或操作者可以是车主、软件开发人员、车载软件测试人员或车载软件监管人员等等。

再如,对于本实施例的方法在多个设备组成的系统上执行的应用场景时,可以将目标数据通过任意的数据通信方式直接发送至预设的终端设备,终端设备可以是前述段落列举中的一种或多种。

从上面所述可以看出,本申请实施例的一种数据通信方法,应用于客户单元,包括:获取服务数据包,根据所述服务数据包选取目标服务;生成记录有所述目标服务的订阅报文,将所述订阅报文发送给服务单元,使所述服务单元根据所述订阅报文记录的所述目标服务查找到对应的数据链路;获取所述服务单元通过所述数据链路发送的目标数据。本申请通过服务单元将能够提供的服务汇总成服务数据包并发布出去,使客户单元能够根据服务数据包确定目标服务,同时在确定目标服务内容之后,通过建立对应的数据链路进行对应数据的传输,从而利用对应的链路快速完成了数据服务的发布及订阅,降低了数据通信复杂程度,提升了数据服务信息的阅读及维护的便捷性。

需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本申请实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在一个可选的示例性实施例中,所述服务数据包为根据所述服务单元自身所能提供的全部服务生成;所述根据所述服务数据包选取目标服务,包括:解析所述服务数据包,以分辨出所述服务单元提供的全部服务,在所述服务单元提供的全部服务中选取所述客户单元需要的所述目标服务。以此可以通过服务数据包汇总服务单元能提供的所有的服务信息,方便客户单元通过服务数据包对服务的查询。

在本实施例中,一个服务单元可能提供多种服务,进而如若有多个服务单元,那么能够提供的服务是海量的,而客户单元需要的服务可能就只有一个或几个。以此,为了客户单元能够准确选取服务,服务数据包必要需要统计服务单元自身所能提供的全部服务,之后,客户单元进而可以根据服务数据包中列出的服务,选取出其所需要的目标服务。

之后,在具体实施例中,在服务数据包的发布过程中,需要利用连接单元(即SoAd单元)确定出SD单元与TCP/IP协议的协议栈的连接接口,进而以此建立起服务消息的发布数据链路,以可以让客户单元进行服务的查询和订阅。连接单元旨在弥合车辆开放系统架构与网络通讯协议,其中,车辆开放系统架构(AUTOSAR)遵循静态通信关系(staticcommunication relations)的概念,该概念在编译时预先确定,在运行时严格执行。传输的数据被认为与它需要往返的源和接收一样是预先确定的;而网络通讯协议(TCP/IP)其应用程序的寻址、端点的逻辑寻址和物理寻址都覆盖在一套分层的协议和数字分配中。动态配置和路由是实现这些概念的核心。在具体实施例中,连接单元可以为车辆开放系统架构的SoAd单元,其主要目的是为车辆开放系统架构(AUTOSAR)与网络通讯协议(TCP/IP)建立一个通讯接口,即所述传输接口。

在一个可选的示例性实施例中,所述服务单元为多个;所述服务数据包为对多个所述服务单元提供的全部服务进行汇总生成的。

在本实施例中,由于服务单元可能不仅仅有一个,进而服务数据包可以统合汇总所有服务单元所能提供的所有服务,使客户单元只需获取一个服务数据包就可知道全部服务单元能够提供的服务,通过一次选择即可完成对所有服务的筛选,提升整体效率。

在一个可选的示例性实施例中,所述数据链路,至少包括:运行环境单元、转换单元、通信协议栈单元、连接单元,并通过所述连接单元后将数据利用网络通讯协议进行网络传播发布。

在本实施例中,数据链路的形式可以是从RTE(Run-Time Environment,运行环境)单元,再到Ldcom单元,再到PduR单元,最后通过SoAd单元将目标数据传输至TCP/IP协议栈以此进行上网上链,其中,RTE单元、Ldcom单元、PduR单元、SoAd单元均可以为车辆开放系统架构的特定功能单元。其中,RTE单元为运行环境单元,通过该单元AUTOSAR SWC可以确定出其传输是需要使用的通信接口。之后,Ldcom单元(转换单元)中预先静态配置有格式转换表,通过该单元可以将不同的AUTOSAR SWC的数据格式转换为车辆开放系统架构(AUTOSAR)需要的数据格式,同时该单元还可以对输入的数据进行筛选,以确定出哪些是客户单元所需要的,进而仅对需要的目标数据进行传输,例如将特定ID的PDU(Protocol Data Unit,协议数据)数据包,筛选、转换为signal id(信号标识)数据包然后调用相应的回调函数,将转换后的数据传递给上层。之后,PduR单元为Pdu Router单元(通信协议栈单元),在链路中可以起到一个路由器的功能,其可以将Ldcom单元的服务业务数据包(即目标数据)转发给其他单元(例如之后的SoAd单元)。最终通过SoAd单元确定了PduR单元与TCP/IP协议栈之间的连接接口通道,并以此将目标数据传递出去。在传递时,其可利用网络通讯协议进行数据的网络传播发布,网络通讯协议即TCP/IP协议,TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。从而,最终,服务数据包在车辆开放系统架构(AUTOSAR)的发布链路可以是从SD单元到SoAd单元,再通过TCP/IP协议栈进行数据的上网。其中SoAd单元即为SocketAdaptor单元,其用于确定SD单元至TCP/IP协议栈的连接接口通道。

在一个可选的示例性实施例中,所述获取所述服务单元通过所述数据链路发送的目标数据,包括:所述服务单元输出所述目标数据或包含所述目标数据的服务数据;当所述服务单元输出为所述服务数据时,获取通过所述数据链路对所述服务数据进行筛选后的所述目标数据,其中所述数据链路的转换单元获取到所述服务数据后,对所述服务数据进行数据分类,查找到所述目标数据后,将所述目标数据继续进行传输。

在本实施例中,服务单元可以将其提供的服务数据一次性全部都输出出来,也可以仅输出客户单元需要的目标数据,例如服务单元仅提供一两个服务,而这一两个服务均是客户单元需要的目标服务,或是服务单元本身提供多种服务,客户单元仅需要其中的一个服务,服务单元可以发送包含这个目标服务的全部服务的数据出来,也可以仅发送这一个目标服务对应的目标数据出来。而一般的客户单元也可能是多个,需求的服务可能不尽相同,进而服务单元可以不区分的将所能提供的所有服务对应的全部数据都输出到数据链路中,其中服务单元所能提供的所有服务对应的全部数据即为服务数据。之后数据链路利用转换单元对服务数据进行筛选分类,为每个客户单元筛选出对应的目标数据,之后将目标数据进行传输,最终传输至对应的客户单元。

基于同一构思,与上述任意应用于客户单元的实施例方法相对应的,本申请还提供了一种应用于服务单元的数据通信方法。

参考图2,所述应用于服务单元的数据通信方法,包括:

步骤201,获取客户单元发送的订阅报文,根据所述订阅报文判定所述客户单元需要的目标服务,根据所述目标服务查找到对应的数据链路。

步骤202,根据所述目标服务查找对应的目标数据,以利用所述数据链路将所述目标数据发送给所述客户单元。

上述实施例的方法为与前述实施例中相应的应用于客户单元的实施例方法相对应的,在前述应用于客户单元的实施例方法的实施例中已经涉及了上述各步骤包括的具体内容的说明以及相应的有益效果,故在本实施例中不再赘述。

在一个可选的示例性实施例中,所述服务单元为多个;所述获取客户单元发送的订阅报文,包括:统计所述服务单元能够提供的全部服务的服务信息,以生成服务报文,对多个所述服务单元的所述服务报文进行汇总,以生成服务数据包,查找用于所述服务数据包发布的消息链路,以利用所述消息链路对所述服务数据包进行网络发布;获取所述客户单元发送的所述订阅报文,其中所述订阅报文为所述客户单元根据所述服务数据包选择出目标服务之后,根据选择出的目标服务生成的。

在本实施例中,服务信息即为当前服务单元能够提供的服务的信息,以该服务信息为基础生成服务报文,该服务报文用于记录该服务单元能够提供的全部服务,之后,根据全部服务单元的服务信息,能够生成记录有当前所有服务单元能够提供的全部服务的服务数据包。之后,可以确定出用于进行服务数据包发布的消息链路,以利用该链路对服务数据进行发布,最后,客户单元通过消息链路接收到发布的服务数据包之后,确定自身需要的目标服务,并以此生成订阅报文。最终,使服务单元获取到客户单元根据服务数据包生成的订阅报文。在具体实施例中,消息链路可以利用车辆开放系统架构(AUTOSAR)的进行建立,其可以是从SD单元到SoAd单元,再通过TCP/IP协议栈进行数据的上网。其中SoAd单元即为Socket Adaptor其用于确定SD单元至TCP/IP协议栈的连接接口通道。

在一个可选的示例性实施例中,所述利用消息链路对所述服务数据包进行网络发布,包括:将所述服务数据包依次通过所述消息链路的服务发现单元及连接单元,并以此通过网络通讯协议进行局域网络传播发布,以使所述客户单元通过局域网接收所述服务数据包。

在本实施例中,消息链路的形式可以是从SD单元到SoAd单元,之后通过SoAd单元将服务数据包传输至TCP/IP协议栈以此进行局域网的上链,最终将服务数据包发送至车辆开放系统架构(AUTOSAR)所位于的局域网内,使客户单元能够通过局域网接收服务数据包。

在一个可选的示例性实施例中,所述数据链路,至少包括:运行环境单元、转换单元、通信协议栈单元、连接单元,并通过所述连接单元后将数据利用网络通讯协议进行网络传播发布。

在本实施例中,数据链路的形式可以是从RTE(Run-Time Environment,运行环境)单元,再到Ldcom单元,再到PduR单元,最后通过SoAd单元将目标数据传输至TCP/IP协议栈以此进行上网上链,其中,RTE单元、Ldcom单元、PduR单元、SoAd单元均可以为车辆开放系统架构的特定功能单元。其中,RTE单元为运行环境单元,通过该单元AUTOSAR SWC可以确定出其传输是需要使用的通信接口。之后,Ldcom单元(转换单元)中预先静态配置有格式转换表,通过该单元可以将不同的AUTOSAR SWC的数据格式转换为车辆开放系统架构(AUTOSAR)需要的数据格式,同时该单元还可以对输入的数据进行筛选,以确定出哪些是客户单元所需要的,进而仅对需要的目标数据进行传输,例如将特定ID的PDU(Protocol Data Unit,协议数据)数据包,筛选、转换为signal id(信号标识)数据包然后调用相应的回调函数,将转换后的数据传递给上层。之后,PduR单元为Pdu Router单元(通信协议栈单元),在链路中可以起到一个路由器的功能,其可以将Ldcom单元的服务业务数据包(即目标数据)转发给其他单元(例如之后的SoAd单元)。最终通过SoAd单元确定了PduR单元与TCP/IP协议栈之间的连接接口通道,并以此将目标数据传递出去。在传递时,其可利用网络通讯协议进行数据的网络传播发布,网络通讯协议即TCP/IP协议,TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。从而,最终,服务数据包在车辆开放系统架构(AUTOSAR)的发布链路可以是从SD单元到SoAd单元,再通过TCP/IP协议栈进行数据的上网。其中SoAd单元即为SocketAdaptor单元,其用于确定SD单元至TCP/IP协议栈的连接接口通道。

在一个可选的示例性实施例中,所述利用所述数据链路将所述目标数据发送给所述客户单元,包括:所述服务单元输出所述目标数据或包含所述目标数据的服务数据;当所述服务单元输出为所述服务数据时,通过所述数据链路的转换单元对获取到的所述服务数据进行数据分类,查找到所述目标数据后,将所述目标数据根据所述数据链路继续传输给所述客户单元。

在本实施例中,服务单元可以将其提供的服务数据一次性全部都输出出来,也可以仅输出客户单元需要的目标数据,例如服务单元仅提供一两个服务,而这一两个服务均是客户单元需要的目标服务,或是服务单元本身提供多种服务,客户单元仅需要其中的一个服务,服务单元可以发送包含这个目标服务的全部服务的数据出来,也可以仅发送这一个目标服务对应的目标数据出来。而一般的客户单元也可能是多个,需求的服务可能不尽相同,进而服务单元可以不区分的将所能提供的所有服务对应的全部数据都输出到数据链路中,其中服务单元所能提供的所有服务对应的全部数据即为服务数据。之后数据链路利用转换单元对服务数据进行筛选分类,为每个客户单元筛选出对应的目标数据,之后将目标数据进行传输,最终传输至对应的客户单元。

在一个可选的示例性实施例中,所述数据链路,具体为根据微内核的嵌入式系统构件体系结构生成的多个链路单元构成,所述多个链路单元设置于同一集合内。

在本实施例中,微内核的嵌入式系统构件体系结构为CAmkES(componentarchitecture for microkernel-based embedded systems)框架,CAmkES是一套基于seL4的软件开发以及运行环境框架,目的是为了快速可靠的建立基于微内核的多服务操作系统。数据链路利用CAmkES框架的设计思路进行设置,同时为了实现AUTOSAR标准中规定的接口直接调用,可以在CAmkES框架的设置文件中将组成链路的多个链路单元添加到同一个集合(group)中,这样链路单元之间就可以共享地址空间,然后用利用诸如seL4DirectCall这种的连接器将各个单元的接口连接起来,这样就可以实现像同一进程空间内函数的直接调用一样,不会因为跨进程而带来效率低下的问题。其中,链路单元即为用于组成链路的各个单元,例如本实施例中,数据链路可以是从SWC单元(服务单元)到RTE单元(运行环境单元)到Ldcom单元,再到PduR单元等等,其中的每个单元即为该数据链路的链路单元。同时,这样的设置可以在其中某个单元发生了故障之后,同一集合内的其余的单元不会因此而故障。与传统的设置方式相比,传统方案是多线程模型的,这样的话只要一个单元故障,同一进程中的所有单元都会受到影响。

基于同一构思,与上述任意实施例应用于客户单元的数据通信方法相对应的,本申请还提供了一种数据通信装置。

参考图3,所述数据通信装置,包括:

确定模块310,用于获取服务数据包,根据所述服务数据包选取目标服务;

生成模块320,用于生成记录有所述目标服务的订阅报文,将所述订阅报文发送给服务单元,使所述服务单元根据所述订阅报文记录的所述目标服务查找到对应的数据链路;

获取模块330,用于获取所述服务单元通过所述数据链路发送的目标数据。

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

上述实施例的装置用于实现前述实施例中相应的应用于客户单元的数据通信方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

在一个可选的示例性实施例中,所述服务数据包为根据所述服务单元自身所能提供的全部服务生成;

所述确定模块310,还用于:

解析所述服务数据包,以分辨出所述服务单元提供的全部服务,在所述服务单元提供的全部服务中选取所述客户单元需要的所述目标服务。

在一个可选的示例性实施例中,所述服务单元为多个;所述服务数据包为对多个所述服务单元提供的全部服务进行汇总生成的。

在一个可选的示例性实施例中,所述数据链路,至少包括:运行环境单元、转换单元、通信协议栈单元、连接单元,并通过所述连接单元后将数据利用网络通讯协议进行网络传播发布。

在一个可选的示例性实施例中,所述获取模块330,还用于:

所述服务单元输出所述目标数据或包含所述目标数据的服务数据;

当所述服务单元输出为所述服务数据时,获取通过所述数据链路对所述服务数据进行筛选后的所述目标数据,其中所述数据链路的转换单元获取到所述服务数据后,对所述服务数据进行数据分类,查找到所述目标数据后,将所述目标数据继续进行传输。

基于同一构思,与上述任意实施例应用于服务单元的数据通信方法相对应的,本申请还提供了一种数据通信装置。

参考图4,所述数据通信装置,包括:

获取模块410,用于获取客户单元发送的订阅报文,根据所述订阅报文判定所述客户单元需要的目标服务,根据所述目标服务查找到对应的数据链路;

发送模块420,用于根据所述目标服务查找对应的目标数据,以利用所述数据链路将所述目标数据发送给所述客户单元。

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

上述实施例的装置用于实现前述实施例中相应的应用于服务单元的数据通信方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

在一个可选的示例性实施例中,所述服务单元为多个;

所述获取模块410,还用于:

统计所述服务单元能够提供的全部服务的服务信息,以生成服务报文,对多个所述服务单元的所述服务报文进行汇总,以生成服务数据包,查找用于所述服务数据包发布的消息链路,以利用所述消息链路对所述服务数据包进行网络发布;

获取所述客户单元发送的所述订阅报文,其中所述订阅报文为所述客户单元根据所述服务数据包选择出目标服务之后,根据选择出的目标服务生成的。

在一个可选的示例性实施例中,所述获取模块410,还用于:

将所述服务数据包依次通过所述消息链路的服务发现单元及连接单元,并以此通过网络通讯协议进行局域网络传播发布,以使所述客户单元通过局域网接收所述服务数据包。

在一个可选的示例性实施例中,所述数据链路,至少包括:运行环境单元、转换单元、通信协议栈单元、连接单元,并通过所述连接单元后将数据利用网络通讯协议进行网络传播发布。

在一个可选的示例性实施例中,所述发送模块420,还用于:

所述服务单元输出所述目标数据或包含所述目标数据的服务数据;

当所述服务单元输出为所述服务数据时,通过所述数据链路的转换单元对获取到的所述服务数据进行数据分类,查找到所述目标数据后,将所述目标数据根据所述数据链路继续传输给所述客户单元。

在一个可选的示例性实施例中,所述数据链路,具体为根据微内核的嵌入式系统构件体系结构生成的多个链路单元构成,所述多个链路单元设置于同一集合内。

基于同一构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的数据通信方法。

图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备、动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的数据通信方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的数据通信方法。

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

上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的数据通信方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120116586470