自适应通信主体物理拓扑结构的多ecu消息通信方法

文档序号:7687364阅读:166来源:国知局

专利名称::自适应通信主体物理拓扑结构的多ecu消息通信方法
技术领域
:本发明涉及多电子控制单元(简称ECU)组成的汽车电子分布式嵌入式系统,尤其是涉及一种自适应通信主体物理拓扑结构的多ECU消息通信方法。技术背景随着汽车电子技术和产品在汽车产业中的广泛应用,汽车上应用的分布式嵌入式系统的规模越来越大、性能越来越好。目前一辆汽车上所包含的ECU数量,已经从几个、十几个,迅速扩大到几十个、上百个。与之同时,汽车电子嵌入式系统的开发和更新周期越来越短。这些都要求汽车电子嵌入式系统的开发成本越来越低,效率越来越高。多ECU的分布式系统协同工作的重要基础是多个ECU上不同的通信主体的之间的消息传递。这些通信主体,有的共存于同一个ECU之内,也有可能存在于不同的ECU之内;甚至于,在一组相互通信的通信主体中,有的存在于同一个ECU内,有的存在于不同ECU上。同一个ECU上通信主体间的通信,可以通过共同内存地址等方式;不同ECU上通信主体的通信,则需要通过总线连接。如图1所示,介绍现有技术下多ECU系统中通信模式。图1所示系统有3个ECU,分别为ECU1、ECU2、ECU3;有5个通信主体,分别为通信主体一、通信主体二、通信主体三、通信主体四、通信主体五,其中通信主体一和通信主体二分布在ECU1上,通信主体三和通信主体四分布在ECU2上,通信主体五分布在ECU3上;有两条总线,分别为总线一、总线二,其中ECU1与ECU2连接到总线一上,ECU2与ECU3连接到总线二上。图1所示,通信主体一与通信主体二之间,以及通信主体三与通信主体四之间的通信是同ECU内通信主体之间的通信,使用内部通信接口;而某一通信主体与其他ECU上的通信主体的通信需要通过外部通信接口调用总线驱动来进行;ECU2上存在两个总线驱动,因此通信主体三和通信主体四需要分别与两个总线驱动建立调用关系,当通信主体三或通信主体同通信主体一或通信主体二进行通信时,调用总线一驱动,当与通信主体五通信时,调用总线二驱动;通信主体一或通信主体二与通信主体五之间的通信,需要ECU2上实现有路由程序将通信内容在总线一与总线二之间转发。当前的汽车电子分布式嵌入式系统中,同ECU内和不同ECU上通信主体的通信,因为实现技术不同,所以采用的接口往往也不同。这会造成两方面的弊端其一,接口的复杂会带来开发成本的提高;其二,当系统升级,通信主体的物理分布拓扑结构改变后,原本在同ECU内的通信主体有可能分布在不同ECU上,原本不在同一个ECU上的通信主体也有可能被分布在同一个ECU上,升级前原有代码不能被复用。
发明内容为解决汽车电子领域多ECU分布式嵌入式系统开发中ECU内和多ECU间通信接口设计问题,本发明的目的在于提供一种自适应通信主体物理拓扑结构的多ECU消息通信方法。本发明为解决该技术问题所采用的技术方案。对于多ECU组成的分布式嵌入式系统,提供统一的接口同时用于同一ECU内通信主体之间的内部通信和不同ECU内通信主体之间的外部通信;通信主体通过ECU内通信层来与其他通信主体通信;通信主体仅向通信层发送消息并仅从通信层获取消息;通信层负责消息的传送,进而屏蔽各通信主体物理分布拓扑信息,以及ECU上总线数量与类型信息。具体步骤如下1)设计各通信主体间通信时使用的消息,每个消息指定唯一的消息编号;2)根据消息编号、通信主体在各ECU间分布情况,为每个ECU上的通信层生成消息配置信息;3)通信层根据消息配置信息来确定当通信主体申请发送消息和从接收到消息时对消息进行的操作。所述的消息配置信息包括1)ECU内通信层维护一个消息配置信息表,表中每一个表项对应于此ECU需要对之进行操作的消息,表项包括消息编号、本地通信主体接收数量、本地通信主体接收列表、外部总线转发标识、外部总线转发列表;2)其中每个表项中的本地通信主体接收列表包括一系列表项,表项数目等于ECU中接收此消息的通信主体数目,每个表项包括通信主体标识符、通信主体通知接口、通信主体消息传递渠道;3)消息配置信息表项中的外部总线转发列表包括一些表项,表项数目等于ECU中外部总线的数量,每个表项内容包括是否在此总线转发标识、总线转发函数接口。所述的通信层收到通信主体的发送消息请求后的处理步骤如下l)査看是否有本ECU内的通信主体接收此消息,即此消息对应的消息配置信息表中的表项本地通信主体接收数量的值是否为o,若有,则根据该表项中的本地通信主体接收列表各表项的设置进行消息发送,然后执行第二步;若无,则直接执行第二步;2)查看是否需要向外部总线转发此消息,查看该消息对应的消息配置信息表的表项中外部转发标识的值,若有,则根据该表项中的外部转发列表中各表项设置进行转发;3)发送处理完毕。通信层接收到从外部总线提交的接收消息请求后的处理步骤如下1)査看是否有本ECU内的通信主体接收此消息,即此消息对应的消息配置信息表中的表项本地通信主体接收数量的值是否为O,若有,则根据该表项中的本地通信主体接收列表各表项的设置进行消息发送,然后执行第二步。若无,则直接执行第二步;2)查看是否需要向外部总线转发此消息,査看该消息对应的消息配置信息表的表项中外部转发标识的值,若有,则根据该表项中的外部转发列表中各表项设置进行转发;3)接收处理完毕。本发明具有的有益效果是1)统一的内部通信和外部通信接口,接口简单,方便系统开发;2)向通信主体完全屏蔽系统物理分布拓扑结构和本ECU总线情况,当系统升级导致系统物理分布拓扑结构或本ECU总线情况改变后,通信主体代码不需要修改,可以直接被复用;3)自动实现路由功能,通信层实现消息转发过程中自动实现了路由功能,不需要单独的路由程序。具有多条总线的ECU上的通信层,在收到一条外部总线上发来的消息之后,会自动选择是否需要向另外的总线转发消息,进而实现了路由功能。图1是现有技术下多ECU系统中通信模式。图2是本发明设计的多ECU系统通信模式。图3是本发明设计的消息格式。图4是ECU内通信层消息配置信息数据结构。具体实施方式下结合附图和实施例对发明作进一步说明。在整个系统层面的软件体系结构设计上,将通信主体一下的通信层与底层通信总线视作虚拟通信总线。虚拟通信总线向上层通信主体提供发送/接受消息的接口;所有通信主体通过且仅通过虚拟通信总线与其他通信主体进行通信。虚拟通信总线自行维护关于通信主体物理分布的拓扑结构,并据此选择恰当的通路转发消息,并向正确的目标通信主体发送消息。在某一个具体ECU上,虚拟通信总线的概念具体实现为一个底层总线驱动和基于其上的通信层来实现。ECU内的通信层,维护有本ECU内所有通信主体可能发送、接受以及本ECU需要负责转发的消息信息,包括-(1)每个消息是否有本ECU内的通信主体接收,哪个通信主体接收;(2)以及是否有其他ECU上通信主体接收,通过哪条总线发出;(3)收到的消息是否需要向其他总线转发,向哪条总线转发。本发明实现的具体步骤如下-1、设计规划系统内所有消息的类型和用途,为每个消息分配一个消息编号;2、根据消息编号,结合通信主体的物理分布拓扑信息,为每一个ECU的通信层生成消息配置信息;3、通信主体通过消息发送接口向通信层发送消息。通信层收到消息后,根据消息编号査找本地的配置信息。如果有本地通信主体需要接收此消息,则调用通信层接收消息的接口向对应的通信主体发送消息。如果有其他ECU上通信主体需要接收此消息,则在对应总线上发送消息;4、通信层从总线上获得外部发送来的消息后,根据消息编号查找本地配置信息,如果有本地通信主体需要接收此消息,则调用通信层接收消息的接口向对应的通信主体发送消息。如果此消息需要被转发,则调用响应总线的驱动程序进行消息发送;5、通信层接收消息的接口收到消息后,根据消息编号査找本地配置信息,通过配置信息中设置的数据缓冲区或者管道将消息内的数据发送给通信主体,通过配置信息中设置的响应函数通知通信主体新消息的到达;6、当系统需要对物理拓扑结构重新进行设计分配时,只要将消息编号信息与新的通信主体物理分布拓扑结构一起生成新的ECU通信层配置信息,即可在不修改通信主体代码的前提下,完成系统重新设计和部署。如图2所示,介绍本发明中设计的通信机制和接口。图2所示ECU、通信主体、总线数量和分布情况同图1。软件结构上,在图1中的通信主体与总线驱动之间增加一个通信层,提供统一通信接口。所有通信主体,与且仅与所在ECU的通信层通过统一通信接口进行通信。由通信层负责判断目的通信主体是在同ECU上还是其他ECU上,在同ECU上时在ECU内部转发消息,在其他ECU上选择某以总线发送消息。如图3所示,介绍本发明中设计的通信机制所使用的消息格式。本发明中的通信机制所使用的消息,仅包含两个部分消息编号和消息数据。如图4所示,介绍本发明中ECU上的通信层维护消息配置信息时所使用的数据结构。每个ECU上的通信层都维护有一个消息配置信息表,表中的每一个表项对应与一条消息。本ECU上可能发送、接收、转发的每条消息都有且仅有一条表项与之对应,通信层对于没有表项的消息不予处理。消息配置信息表里每条表项中的本地通信主体接收列表分别指向另外一个列表,类型为本地通信主体接收列表。这个列表中每条表项对应于一个接收此消息的通信主体,表项中规定了该通信主体接收此消息时被调用的通知接口和消息数据的传递渠道。列表中表项的数量等于本地接收此消息的通信主体的数量。消息配置信息表里每一条表项中的外接总线转发列表分别指向一个列表,类型为外部总线转发列表。这些外部总线转发列表内的列表项数目相同,等于ECU内外部总线的数量。每个列表中的每个表项,分别保存有该消息在该总线上是否需要被转发,以及转发时使用的函数接口。表1数据结构成员说明<table>tableseeoriginaldocumentpage8</column></row><table>权利要求1、一种自适应通信主体物理拓扑结构的多ECU消息通信方法,其特征在于对于多ECU组成的分布式嵌入式系统,提供统一的接口同时用于同一ECU内通信主体之间的内部通信和不同ECU内通信主体之间的外部通信;通信主体通过ECU内通信层来与其他通信主体通信;通信主体仅向通信层发送消息并仅从通信层获取消息;通信层负责消息的传送,进而屏蔽各通信主体物理分布拓扑信息,以及ECU上总线数量与类型信息。2、根据权利要求1所述的一种自适应通信主体物理拓扑结构的多ECU消息通信方法,其特征在于具体步骤如下1)设计各通信主体间通信时使用的消息,每个消息指定唯一的消息编号;2)根据消息编号、通信主体在各ECU间分布情况,为每个ECU上的通信层生成消息配置信息;3)通信层根据消息配置信息来确定当通信主体申请发送消息和接收到消息时对消息进行的操作。3、根据权利要求2所述的一种自适应通信主体物理拓扑结构的多ECU消息通信方法,其特征在于所述的消息配置信息包括1)ECU内通信层维护一个消息配置信息表,表中每一个表项对应于此ECU需要对之进行操作的消息,表项包括消息编号、本地通信主体接收数量、本地通信主体接收列表、外部总线转发标识、外部总线转发列表;2)其中每个表项中的本地通信主体接收列表包括一系列表项,表项数目等于ECU中接收此消息的通信主体数目,每个表项包括通信主体标识符、通信主体通知接口、通信主体消息传递渠道;3)消息配置信息表项中的外部总线转发列表包括一些表项,表项数目等于ECU中外部总线的数量,每个表项内容包括是否在此总线转发标识、总线转发函数接口。4、根据权利要求1所述的一种自适应通信主体物理拓扑结构的多ECU消息通信方法,其特征在于所述的通信层收到通信主体的发送消息请求后的处理步骤如下l)査看是否有本ECU内的通信主体接收此消息,即此消息对应的消息配置信息表中的表项本地通信主体接收数量的值是否为o,若有,则根据该表项中的本地通信主体接收列表各表项的设置进行消息发送,然后执行第二步;若无,则直接执行第二步;2)查看是否需要向外部总线转发此消息,查看该消息对应的消息配置信息表的表项中外部转发标识的值,若有,则根据该表项中的外部转发列表中各表项设置进行转发;3)发送处理完毕。5、根据权利要求1所述的一种自适应通信主体物理拓扑结构的多ECU消息通信方法,其特征在于通信层接收到从外部总线提交的接收消息请求后的处理步骤如下1)査看是否有本ECU内的通信主体接收此消息,即此消息对应的消息配置信息表中的表项本地通信主体接收数量的值是否为O,若有,则根据该表项中的本地通信主体接收列表各表项的设置进行消息发送,然后执行第二步。若无,则直接执行第二步;2)査看是否需要向外部总线转发此消息,查看该消息对应的消息配置信息表的表项中外部转发标识的值,若有,则根据该表项中的外部转发列表中各表项设置进行转发;3)接收处理完毕。全文摘要本发明公开了一种自适应通信主体物理拓扑结构的多ECU消息通信方法,提供统一的接口同时用于同一ECU内通信主体之间的内部通信和不同ECU内通信主体之间的外部通信;通信主体通过ECU内通信层来与其他通信主体通信;通信主体仅向通信层发送消息并仅从通信层获取消息;通信层负责消息的传送,进而屏蔽各通信主体物理分布拓扑信息,以及ECU上总线数量与类型信息。本发明统一了内部通信和外部通信接口;向通信主体完全屏蔽系统物理分布拓扑接口和本ECU总线情况;自动实现路由功能,通信层实现消息转发过程中自动实现了路由功能,不需要单独的路由程序。文档编号H04L29/08GK101222525SQ200810059488公开日2008年7月16日申请日期2008年1月24日优先权日2008年1月24日发明者凯刘,攀吕,吴朝晖,赵民德,郭晞文,威鲍,龙荣深申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1