一种服务状态通告方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:39420879 阅读:9 留言:0更新日期:2023-11-19 16:09
本发明专利技术涉及一种服务状态通告方法、装置、计算机设备和存储介质,方法应用于MPU,包括:通过DDS网关和MCU组进行DDS服务发现;通过DDS网关接收并保存MCU组中的MCU发送的实体ID信息和服务标识信息;通过DDS网关和各个MPU进程进行DDS服务发现;通过DDS网关将服务标识信息转发给各个MPU进程,以使各个MPU进程根据服务标识信息中包含的服务标识将对应的服务标记为在线状态;当通过DDS网关检测到MCU组中的任意MCU发生状态变化时,更新保存的实体ID信息和服务标识信息,并将更新后的新服务标识信息重新发送至各个MPU进程,以使各个MPU进程根据新服务标识信息重新标记各个服务的在线状态。本发明专利技术提供的方案解决了通信出现异常情况时,MPU依旧经过DDS网关不断向MCU发送请求服务的报文从而占用网络带宽的问题。报文从而占用网络带宽的问题。报文从而占用网络带宽的问题。

【技术实现步骤摘要】
一种服务状态通告方法、装置、计算机设备和存储介质


[0001]本专利技术涉及汽车以太网通信
,具体涉及一种服务状态通告方法、装置、计算机设备和存储介质。

技术介绍

[0002]随着汽车通信数据量的上涨和车联网技术的不断发展,以太网技术在汽车通信方式中的所占比重逐渐增加,汽车的整车网络结构相较于传统的CAN,LIN通信网络复杂化。同时许多汽车厂商采用一种分布式架构——SOA(Service

Oriented Architecture,基于服务的架构)来将汽车各个ECU(Elecmal Control Unit,电子控制单元)的应用程序细化为各项服务,以便减轻各个ECU之间通信的复杂度。DDS(Data Distribution Service,数据分发服务)作为一种中间件协议,通过定义不同类型的数据收发实体(例如参与者participant、发布者publisher、订阅者subscriber以及用于数据传输的主题topic)来构成数据的发布/订阅模型,从而满足ECU之间的通信需求,由于其具备可靠性高、实时性强等优点,在整车网络通信中逐步推广。
[0003]对于汽车的ECU而言,ECU可以是MCU(MicroController Unit,微控制器)也可以是MPU(MicroProcessor Unit,微处理器),由于每创建一个DDS数据收发实体需要都占用ECU的内存资源,考虑到MPU的内存资源则较为充足,故MPU之间的DDS协议栈通信可以采用传统的DDS通信规则,但是MCU上的内存资源较为紧张,不支持在MCU上创建大量的数据收发实体,并且在DDS的服务发现阶段,ECU还会在本端创建对端实体的远端实体,也会占用本端的内存,从而传统的DDS通信办法,既会导致MCU上存在的实体过多,大量占用MCU的内存,也会导致MCU接收到大量的无效报文数据,增大MCU数据处理压力,限制DDS在整车的运行效果。
[0004]为了解决上述问题,中国专利CN115913809A公开了一种数据分发通信方法、系统、计算机设备及存储介质,此专利基于汽车采用的SOA架构,按照服务的特点对汽车的通信数据类型进行合并,将多个服务合并到一个topic中,减少topic的数量,从而将服务分为请求、响应、通知三个大类,划分出三个topic,对于其它不适用于SOA服务的数据,可以按照其它标准或者单独划分topic,这样就减少了数据收发实体的数量,从而减少了MCU的内存的占用量。
[0005]在前述中国专利CN115913809A公开的方案基础上,中国专利CN116248775A又公开了一种DDS网关的交互方法、装置、电子设备及存储介质,能够进一步解决DDS通信压力大的问题。此专利在每个MCU内部署负责提供服务的数据收发实体,在每个MPU内部署一个DDS网关进程,并在每个MPU内部部署若干MPU进程,MPU进程包括用于执行服务的数据收发实体。DDS网关介入MCU和MPU之间,用于各个MCU和任意一个MPU内部的各个MPU进程进行通信,DDS网关中维护了各个MCU中实体的实体ID,还维护了各个实体中包含的各个服务的服务标识,DDS网关会将服务标识转发给各个MPU进程。进入数据通信阶段后,作为客户端的MPU进程会对某个MCU提供服务的数据收发实体发出请求服务报文,报文中会携带MPU进程希望的服务标识,当报文经过DDS网关时,DDS网关根据服务标识进行查找,如果服务标识存在于DDS网
关中,DDS网关会查找服务标识所属的实体ID,报文根据实体ID才能到达MCU的数据收发实体。同理,MCU实体发送响应报文时,会携带响应报文的目的实体ID。当目的实体的ID存在于网关的GUID列表时,响应报文才能通过网关到达MPU进程的对应实体。DDS网关通过GUID和服务标识值实现了请求报文和响应报文的过滤功能,可以显著减少MCU所收到的不必要报文的数据量,从而进一步降低DDS通信压力。
[0006]但是,上述方案还存在一个比较严重的问题,即没有对DDS在通信实体出现异常情况时进行处理,换言之,例如当MCU等出现异常不能对MPU进程做出响应时,MPU不知道哪些服务已经离线,依旧经过网关不断向MCU发送请求服务的报文,这些无效数据会占用网络带宽,对整车网络通信产生不良影响。

技术实现思路

[0007]有鉴于此,本专利技术实施例提供了一种服务状态通告方法、装置、计算机设备和存储介质,以解决在通信出现异常情况时,MPU依旧经过DDS网关不断向MCU发送请求服务的报文从而占用网络带宽的问题。
[0008]第一方面,本专利技术实施例提供了一种服务状态通告方法,方法应用于MPU,包括:启动DDS网关和各个MPU进程;通过DDS网关和MCU组进行DDS服务发现,以使DDS网关和MCU组中的MCU建立通信连接,MCU组包括一个或多个MCU,其中各个MCU之间通过DDS服务发现完成了通信连接;通过DDS网关接收并保存MCU组中的MCU发送的实体ID信息和服务标识信息;通过DDS网关和各个MPU进程进行DDS服务发现,以使DDS网关和各个MPU进程建立通信连接;通过DDS网关将服务标识信息转发给各个MPU进程,以使各个MPU进程根据服务标识信息中包含的服务标识将对应的服务标记为在线状态,其中标记了在线状态的服务用于表征MPU进程能够发送请求报文的服务;当通过DDS网关检测到MCU组中的任意MCU发生状态变化时,更新保存的实体ID信息和服务标识信息,并将更新后的新服务标识信息重新发送至各个MPU进程,以使各个MPU进程根据新服务标识信息重新标记各个服务的在线状态。
[0009]根据上述技术手段,本专利技术实施例提供的方案在DDS网关与各个MCU和各个MPU进程建立连接后,持续检测MCU组中的任意MCU是否发生状态变化,一旦MCU组中的任意MCU发生状态变化,则更新保存的实体ID信息和服务标识信息,并将更新后的新服务标识信息重新发送至各个MPU进程,以使各个MPU进程根据新服务标识信息重新标记各个服务的在线状态,使得各个MPU进程及时获知哪些服务可用,哪些服务不可用,避免MPU进程持续不断地向DDS网关发送请求报文,避免了网络带宽被无效数据占用的问题。
[0010]在一种可选的实施方式中,当通过DDS网关检测到MCU组中的任意MCU发生状态变化时,更新保存的实体ID信息和服务标识信息,包括:当MCU组中出现新上电的第一MCU时,通过DDS网关和第一MCU进行DDS服务发现;通过DDS网关接收第一MCU发送的第一实体ID和第一服务标识,并将第一实体ID和第一服务标识添加到实体ID信息和服务标识信息中。
[0011]根据上述技术手段,若某个第一MCU上电异常导致其与DDS网关建立连接较晚,本实施例及时将其添加到实体ID信息和服务标识信息中,该操作则表征实体ID信息和服务标识信息发生了更新,从而DDS网关重新将更新后的新服务标识信息重新发送至各个MPU进程,以使各个MPU进程根据新服务标识信息重新标记各个服务的在线状态,进一步保证MPU进程中维护的服务本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务状态通告方法,其特征在于,所述方法应用于MPU,包括:启动DDS网关和各个MPU进程;通过所述DDS网关和MCU组进行DDS服务发现,以使所述DDS网关和MCU组中的MCU建立通信连接,所述MCU组包括一个或多个MCU,其中各个MCU之间通过DDS服务发现完成了通信连接;通过所述DDS网关接收并保存所述MCU组中的MCU发送的实体ID信息和服务标识信息;通过所述DDS网关和所述各个MPU进程进行DDS服务发现,以使所述DDS网关和所述各个MPU进程建立通信连接;通过所述DDS网关将所述服务标识信息转发给所述各个MPU进程,以使所述各个MPU进程根据所述服务标识信息中包含的服务标识将对应的服务标记为在线状态,其中标记了所述在线状态的服务用于表征MPU进程能够发送请求报文的服务;当通过所述DDS网关检测到所述MCU组中的任意MCU发生状态变化时,更新保存的所述实体ID信息和所述服务标识信息,并将更新后的新服务标识信息重新发送至所述各个MPU进程,以使各个MPU进程根据所述新服务标识信息重新标记各个服务的在线状态。2.根据权利要求1所述的方法,其特征在于,所述当通过所述DDS网关检测到所述MCU组中的任意MCU发生状态变化时,更新保存的所述实体ID信息和所述服务标识信息,包括:当所述MCU组中出现新上电的第一MCU时,通过所述DDS网关和所述第一MCU进行DDS服务发现;通过所述DDS网关接收所述第一MCU发送的第一实体ID和第一服务标识,并将所述第一实体ID和所述第一服务标识添加到所述实体ID信息和所述服务标识信息中。3.根据权利要求1所述的方法,其特征在于,所述当通过所述DDS网关检测到所述MCU组中的任意MCU发生状态变化时,更新保存的所述实体ID信息和所述服务标识信息,包括:通过所述DDS网关接收目标MPU进程发送的服务请求报文,并将所述服务请求报文转发至对应的第二MCU;当经过预设的失活时间时,若没有通过所述DDS网关收到所述第二MCU响应于所述服务请求报文反馈的消息,则判断所述第二MCU离线;通过所述DDS网关从保存的所述实体ID信息和所述服务标识信息中删除属于所述第二MCU的第二实体ID和第二服务标识,以更新所述实体ID信息和所述服务标识信息。4.根据权利要求3所述的方法,其特征在于,若在所述失活时间之内所述第二MCU重启成功,所述方法还包括:将重启的所述第二MCU作为新上线的MCU,通过所述DDS网关与所述第二MCU进行DDS服务发现;通过所述DDS网关接收所述第二MCU发送的第三实体ID和第三服务标识,所述第三实体ID与所述第二实体ID不同,所述第三服务标识与所述第二服务标识相同;通过所述DDS网关将所述第三实体ID和所述第三服务标识分别添加到所述实体ID信息和所述服务标识信息中;当通过所述DDS网关检测到所述第三服务标识和所述第二服务标识相同时,在执行所述通过所述DDS网关从保存的所述实体ID信息和所述服务标识信息中删除属于所述第二MCU的第二实体ID和第二服务标识,以更新所述实体ID信息和所述服务标识信息的步骤后,
放弃...

【专利技术属性】
技术研发人员:杨振衣唐光雨黄杰陈德芮
申请(专利权)人:重庆长安汽车股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1