首页> 中国专利> 一种基于MCU的DDS协议发现阶段优化方法、存储介质、电子设备、通信方法及汽车

一种基于MCU的DDS协议发现阶段优化方法、存储介质、电子设备、通信方法及汽车

摘要

本发明涉及一种基于MCU的DDS协议发现阶段优化方法、计算机可读存储介质、电子设备、通信方法以及汽车,所述优化方法包括:DDS参与者通过发送和接收报文,确认订阅端和发布端;订阅端和发布端分别创建内置本端实体和内置对端实体,完成PDP阶段;发布端和订阅端经EDP阶段完成端点匹配,并分阶段在指定时机删除指定的内置对端实体。本发明可解决现有技术中在MCU芯片上部署DDS协议栈资源受限导致其承载内存有限的问题,实现MPU与MCU的硬件设备在SOA架构下的通信目标。

著录项

  • 公开/公告号CN116684487A

    专利类型发明专利

  • 公开/公告日2023-09-01

    原文格式PDF

  • 申请/专利权人 重庆长安汽车股份有限公司;

    申请/专利号CN202310483919.X

  • 申请日2023-04-28

  • 分类号H04L67/566(2022.01);H04L67/12(2022.01);H04L67/5682(2022.01);

  • 代理机构广州粤高专利商标代理有限公司 44102;

  • 代理人黄志铖

  • 地址 400023 重庆市江北区建新东路260号

  • 入库时间 2024-01-17 01:27:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-19

    实质审查的生效 IPC(主分类):H04L67/566 专利申请号:202310483919X 申请日:20230428

    实质审查的生效

  • 2023-09-01

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及数据通信技术领域,具体涉及一种基于MCU的DDS协议发现阶段优化方法、计算机可读存储介质、电子设备、通信方法及汽车。

背景技术

随着智能化、网联化的快速发展,汽车网络上承载的交互数据越来越多,使用传统的控制器局域网络(Controller Area Network,CAN)和局域互联网络(LocalInterconnect Network,LIN)来传输这些数据已远远不足,车载以太网的加入使车载网络架构发生了很大的变化,同时面向服务架构(service-oriented architecture,SOA)的设计使系统设计更加去中心化。

随着软件定义汽车(Software Defined Vehicles,SDV)概念的提出,DDS(DataDistribution Service,数据分发服务)协议在整车通信中的普及度越来越高。

目前汽车上硬件设备的芯片主要分为MPU(Micro Processor Unit,微处理器)和MCU(Micro Control Unit,微控制器)两大类,MPU注重通过较为强大的运算处理能力,执行复杂多样的大型程序,通常需要外挂大容量的存储器;而MCU通常运行较为单一的任务,执行对于硬件设备的管理控制功能,通常不需要很强的运算处理能力,因此没有外挂大容量的存储器,资源有限。但相较于采用SOME/IP(Scalable service-Oriented MiddlewarEover IP,基于IP的可扩展面向服务的中间件)等通信中间件,DDS协议有更多的机制用于保障数据的正确传输,不可避免的带来更大内存资源的消耗,从而在MCU部署DDS协议的过程中需要考虑芯片的资源限制。

发明内容

本发明的目的之一在于提供一种基于MCU的DDS协议发现阶段优化方法,以解决现有技术中在MCU芯片上部署DDS协议栈资源受限,且内存吃紧的问题;目的之二在于提供一种计算机可读存储介质;目的之三在于提供一种电子设备;目的之四在于提供一种通信方法;目的之五在于提供一种汽车。

为了实现上述目的,本发明采用的技术方案如下:

第一方面,一种基于MCU的DDS协议发现阶段优化方法,包括:

DDS参与者通过发送和接收报文,确认订阅端和发布端;其中,订阅端和/或发布端位于MCU上;

订阅端和发布端分别创建内置本端实体和内置对端实体,完成PDP阶段;

发布端和订阅端经EDP阶段完成端点匹配,并分阶段在指定时机删除指定的内置对端实体;其中,所述EDP阶段包括Writer通告流程、Reader通告流程和pmd通告流程。

第二方面,一种计算机可读存储介质,所述存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现如第一方面所述方法。

第三方面,一种电子设备,包括存储器和处理器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行,以实现如第一方面所述方法。

第四方面,一种通信方法,应用于至少2个芯片之间的通信,所述芯片中包括至少一个MCU,所述芯片间采用DDS协议进行通信,并应用第一方面所述方法。

第五方面,一种汽车,包括车体和多个芯片单元,所述芯片单元中包括至少一个MCU单元,多个芯片单元间应用第四方面所述方法进行通信。

本发明的有益效果:

本发明提出了一种基于MCU的DDS协议发现阶段优化方法、计算机可读存储介质、电子设备、通信方法及汽车,相较于现有技术,所述优化方法通过分阶段删除内置对端实体的方式,可解决现有技术中在MCU芯片上部署DDS协议栈资源受限导致其承载内存有限的问题,实现MPU与MCU的硬件设备在SOA架构下的通信目标。本发明有利于普及DDS协议在汽车上的应用,推进SOA架构在车载软件设计上的实现。

附图说明

图1为本发明实施例1中所述优化方法流程示意图;

图2为本发明实施例1中内置对端实体删除阶段示意图;

图3位本发明实施例1中内置对端实体删除流程示意图。

具体实施方式

本申请的说明书和权利要求书中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

以下将参照附图和优选实施例来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

为便于理解和实施本发明,对DDS协议中的相关概念进行说明:

DDS,是由OMG(Object Management Group,对象管理组织)定义的一种以数据为中心的通信模型,支持发布-订阅模式(DCPS,Data-Centric Publish-Subscribe),以保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。

DDS的协议标准规定了以下内容:

(1)应用的通信数据模型;

(2)应用与DCPS通信中间件的交互的数据格式;

(3)数据如何根据QoS(Quality-of-Service,服务质量要求)进行收发;

(4)应用如何访问通信数据;

(5)通信中间件的状态反馈;

RTPS(Real-Time Publish-Subscribe,实时发布订阅)是一种用于实时通信的协议,其定义了一种数据传输机制,用于在DDS系统中实现发布-订阅模型的实时数据传输。RTPS协议中的动态发现协议包含PDP(Participant Discovery Protocol,参与者发现协议)和EDP(Endpoint Discovery Protocol,端点发现协议)两种协议。

PDP的目的是发现网络中的其他参与者(Participant)及他们的属性,PDP阶段创建的实体主要是用来发送和接收参与者的数据信息;EDP的目的是在参与者间进行必要的信息交换,即进行各个报文的通告,以便发现彼此的Writer(写入者)和Reader(读取者),从而完成DDS端点的匹配,EDP阶段的实体主要是用来发现和通告用户端点信息数据,还有用来维持参与者间的报活信息交换。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

本实施例提出了一种基于MCU的DDS协议发现阶段优化方法,参阅图1,包括:

DDS参与者通过发送和接收报文,确认订阅端和发布端;其中,订阅端和/或发布端位于MCU上;

订阅端和发布端分别创建内置本端实体和内置对端实体,完成PDP阶段;

发布端和订阅端经EDP阶段完成端点匹配,并分阶段在指定时机删除指定的内置对端实体;其中,所述EDP阶段包括Writer通告流程、Reader通告流程和pmd通告流程。

需要说明的是,所述订阅端和发布端分别创建内置本端实体和内置对端实体,具体为:订阅端创建内置本端实体和内置对端实体,发布端也创建了内置本端实体和内置对端实体。

需要说明的是,在DDS初始化的过程中,DDS会根据应用场景及需求,配置DDS实例的各项参数,如域(Domain)、QoS策略、发布端(Publisher)和订阅端(Subscriber);还会创建7个本端实体和7个对端实体,通信最开始建立连接,需要依赖对端实体来进行消息的转发,一旦完成发现流程,进入数据发送流程,那么之前创建的对端实体就会闲置,导致占用内存。通过分阶段删除闲置的对端实体,节约内存,可以更好的保护MCU的内存资源,让整车的DDS服务能畅通无阻的运行,特别适用于SOA架构中。

在一些示例中,MCU端为订阅端;

在一些示例中,MCU端为发布端;

在另一些示例中,MCU端既是发布端,同时也是订阅端。

在一些示例中,所述完成PDP阶段为完成SPDP(Simple Participant DiscoveryProtocol,简单参与者发现协议);

在另一些示例中,所述EDP阶段为完成SEDP(Simple Endpoint DiscoveryProtocol,简单端点发现协议)。

在一优选实施例中,删除内置对端实体的阶段包括:完成Writer通告流程后、完成Reader通告流程、完成pmd通告流程和完成整个EDP阶段后。

在一些示例中,Writer通告流程后删除的内置对端实体包括proxy_builtin_publications_writer和proxy_builtin_publications_reader中的至少一种;

在一些示例中,Reader通告流程后删除的内置对端实体包括proxy_builtin_subscriptions_reader和proxy_builtin_subscriptions_writer中的至少一种;

在一些示例中,pmd通告流程后删除的内置对端实体包括proxy_builtin_participant_message_writer和proxy_builtin_participant_message_reader中的至少一种;

在一些示例中,完成整个EDP阶段后删除的内置对端实体包括proxy_builtin_publications_writer、proxy_builtin_publications_reader、proxy_builtin_subscriptions_reader、proxy_builtin_subscription s_writer、proxy_builtin_participant_message_writer、proxy_builtin_participant_message_reader和prox y_builtin_participant_reader中的至少一种。

需要说明的是,由于在Writer通告流程后、Reader通告流程、pmd通告流程和整个EDP阶段后,各个内置的对端实体已完成基本的功能服务,相较于现有技术,本申请通过在指定阶段删除MCU端相应的内置对端实体来节省内存资源,参阅图2。

在一可选实施例中,参阅图3,在指定时机删除指定的内置对端实体,具体为:

发布端发送实体,并发送Heartbeat(心跳包)消息;

订阅端通过Reader接收来自发布端的实体和Heartbeat消息,判断是否需要回复ACK消息:若是,则将接收到的实体加入到异步处理之中,并向发布端回复ACK消息;否则,不进行操作;

发布端接收到来自订阅端的ACK消息后,根据当前的通告情况对应删除MCU端指定的内置对端实体。

需要说明的是,在DDS服务中,可靠性协议使用Heartbeat和ACKNACK来确保数据的接收。Reader发送ACKNACK消息以响应Writer的Heartbeat;此ACKNACK消息指示Reader收到了哪些数据信息,以及尚未接收到哪些数据信息。

此外,由于每个实体会去发布或者接收信息数据,如果过早的删除,会导致信息接收不完成,过晚的删除会导致内存资源占用过多。在该可选实施例中,删除时机是在发送实体发送信息后,交给接收的实体,接收实体再加入到异步处理中,回复ACK报文确保自己收到消息,然后再删除实体。

在一优选实施例中,DDS参与者通过组播网络发送和接收报文。

在一些示例中,参与者组播发送自己的信息,通知其他的参与者,自己已上线,并接收对端参与者的信息,即发现了对端。根据收到的对端参与者的信息,在本端创建和对端内置实体对应的内置对端实体,即proxy(代理)实体。

在一优选实施例中,所述发布端和订阅端经EDP阶段完成端点匹配,具体为:

订阅端采用单播方式,向对端的内置对端实体发送本端的Writer和Reader信息;

发布端向订阅端发送本端的Writer和Reader信息,完成端点匹配。

需要说明的是,本领域技术人员应当清楚,Writer和Raeder都需要去绑定Topic(主题)去通信。

在一些示例中,本端内置实体使用对端的单播IP,向对端的内置实体单播发送本端的Writer和Reader的信息,如Topic、QoS等。

在一优选实施例中,在MCU上创建结构体时采用内存池机制。

需要说明的是,本领域技术人员应当理解,在MCU上部署DDS协议栈时,会申请大量结构体,在申请这些结构体的时候会浪费很多空间。该优选实施例通过使用内存池来避免频繁的内存分配和释放,从而减少空间的浪费,在结构体使用时,可以使用指针和引用来引用已经存在的对象,而不是在结构体中复制这些对象,这样可以避免浪费额外的空间。

实施例2

本实施例提出了一种计算机可读存储介质,所述存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现如实施例1所述方法。

示范性地,所述存储介质包括但不限于U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

示范性地,所述指令、程序、代码集或指令集可采用Java、Python、C++、R、或Golang等编程语言实现。

示范性地,所述处理器包括但不限于智能手机、个人计算机、服务器、网络设备等,用于执行实施例1所述方法的全部或部分步骤。

可以理解,上述实施例1中的可选项同样适用于本实施例,故在此不再重复描述。

实施例3

本实施例提出了一种电子设备,包括存储器和处理器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行,以实现如实施例1所述方法。

可以理解,上述实施例1中的可选项同样适用于本实施例,故在此不再重复描述。

实施例4

本实施例提出一种通信方法,应用于至少2个芯片之间的通信,所述芯片中包括至少一个MCU,所述芯片间采用DDS协议进行通信,并应用实施例1所述方法。

可以理解,上述实施例1中的可选项同样适用于本实施例,故在此不再重复描述。

在一些示例中,所述通信方法部署在汽车的多个控制器的多个芯片上。

实施例5

本实施例提出一种汽车,包括车体和多个芯片单元,所述芯片单元中包括至少一个MCU单元,多个芯片单元间应用实施例4提出的方法进行通信。

可以理解,上述实施例4中的可选项同样适用于本实施例,故在此不再重复描述。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号