一种通信控制方法、装置及存储介质与流程

文档序号:17002923发布日期:2019-03-02 01:53阅读:155来源:国知局
一种通信控制方法、装置及存储介质与流程
本发明涉及汽车控制领域,更具体地说是涉及一种通信控制方法、装置及存储介质。
背景技术
:随着汽车技术的不断发展,为了满足用户对节能减排、安全及舒适性等方面的要求,目前市面上的汽车通常都会安装大量的ecu(electroniccontrolunit,电子控制单元),并利用can(controllerareanetwork,控制器局域网)总线构建通信通道,实现报文数据等信息的接收或发送。在实际应用中,如图1所示的现有的通信控制系统,电子控制单元中的具有通信需求的各通信请求模块之间的耦合性较大,导致代码可移植性较差;当某时间存在多个通信请求模块,如图1中的sw(software)1、sw2、sw3对同一通信通道具有通信需求,很容易出现对该通信通道的使用冲突。技术实现要素:鉴于上述问题,本发明提供了一种通信控制方法、装置及存储介质,降低了各通信请求模块之间的耦合性,避免了多个通信请求模块对同一通信通道具有通信请求时产生的使用冲突情况。为了解决上述技术问题,本发明提供了以下技术方案:本发明实施例提供了一种通信控制方法,所述方法包括:监听到通信请求对象的通信请求;解析所述通信请求,得到相应通信请求对象的对象id;从预存的信息配置表中,获取与得到的对象id一一对应的对象类型及通信属性;基于所述通信请求对象的对象类型及通信属性,按照对象优先级权衡机制,响应所述通信请求对象的通信请求。可选的,所述基于所述通信请求对象的对象类型及通信属性,按照对象优先级权衡机制,响应所述通信请求对象的通信请求,包括:确定所述通信请求对象所请求的通信通道;检测针对该通信通道的通信请求对象是否包含第一对象;如果包含所述第一对象,依据预存的所述第一对象的通信属性,对该通信通道进行处理;如果未包含所述第一对象,检测针对该通信通道的通信请求对象是否包含第二对象;如果包含所述第二对象,依据预存的所述第二对象的通信属性,对该通信通道进行处理;如果未包含所述第二对象,检测针对该通信通道的通信请求对象是否包含第三对象;如果包含所述第三对象,依据预存的所述第三对象的通信属性,对该通信通道进行处理;如果未包含所述第三对象,并查询到上一次监听到针对该通信通道的通信请求对象包含所述第二对象,请求该通信通道关闭本地通信模式;其中,所述第一对象、所述第二对象和所述第三对象是不同对象类型的通信请求对象。可选的,所述基于所述通信请求对象的对象类型及通信属性,按照对象优先级权衡机制,响应所述通信请求对象的通信请求,还包括:检测所述通信请求对象所请求的通信通道是否处于开启状态;如果处于开启状态,检测针对该通信通道的通信请求对象是否包含第四对象,所述第四对象是区别于所述第一对象、所述第二对象和所述第三对象的对象类型的通信请求对象;如果包含所述第四对象,并查询到上一次监听到针对该通信通道的通信请求对象未包含所述第四对象,依据预存的所述第四对象的通信属性,请求关闭该通信通道报文的收发功能;如果未包含所述第四对象,并查询到上一次监听到针对该通信通道的通信请求对象包含所述第四对象,依据预存的所述第四对象的通信属性,请求开启该通信通道报文的收发功能。可选的,所述依据预存的所述第一对象的通信属性,对该通信通道进行处理,包括:依据预存的所述第一对象的通信属性,请求关闭该通信通道;所述依据预存的所述第二对象的通信属性,对该通信通道进行处理包括:依据预存的所述第二对象的通信属性,请求开启该通信通道的本地通信模式;所述依据预存的所述第三对象的通信属性,对该通信通道进行处理包括:依据预存的所述第三对象的通信属性,请求开启该通信通道的远程通信模式。可选的,如果包含所述第一对象,所述方法还包括:查询上一次监听到针对该通信通道的通信请求对象是否包含所述第一对象;如果否,执行步骤所述依据预存的所述第一对象的通信属性,对该通信通道进行处理;如果包含所述第二对象,所述方法还包括:查询上一次监听到针对该通信通道的通信请求对象是否包含所述第二对象;如果否,执行步骤所述依据预存的所述第二对象的通信属性,对该通信通道进行处理;如果包含所述第三对象,所述方法还包括:查询上一次监听到针对该通信通道的通信请求对象是否包含所述第三对象;如果否,执行步骤所述依据预存的所述第三对象的通信属性,对该通信通道进行处理。可选的,所述方法还包括:获取运行状态下具有通信需求的各通信请求对象;为每一个通信请求对象分配一一对应的对象id;依据每一个通信请求对象的通信特点,确定相应通信请求对象的对象类型及通信属性;利用获取的所述通信请求对象各自的对象id、对象类型及通信属性,生成信息配置表。可选的,所述通信属性包括通道属性和报文属性;所述通道属性用于表明相应对象类型的通信请求对象请求控制的通信通道;所述报文属性用于表明相应对象类型的通信请求对象请求控制的该通信通道报文的发送或接收。可选的,所述具有通信需求的各通信请求对象的对象id为连续编号;所述通道属性为32位十六进制整数,所述报文属性为8位十六进制整数。本发明实施例还提供了一种通信控制装置,所述装置包括:监听模块,用于监听到通信请求对象的通信请求;解析模块,用于解析所述通信请求,得到相应通信请求对象的对象id;获取模块,用于从预存的信息配置表中,获取与得到的对象id一一对应的对象类型及通信属性;响应模块,用于基于所述通信请求对象的对象类型及通信属性,按照对象优先级权衡机制,响应所述通信请求对象的通信请求。本发明实施例还提供了一种存储介质,其上存储有程序,所述程序被处理器执行时实现如上所述的通信控制方法。由此可见,与现有技术相比,本发明提供一种通信控制方法、装置及存储介质,监听到通信请求对象的通信请求后,通过确定各通信请求对象的对象类型及通信属性,以确定各通信请求对象对其通信请求的处理方式,及所请求通信的是哪个通信通道,这样,若当前存在多个通信请求对应同一个通信通道,能够按照预设的对象优先级权衡机制,响应各通信请求,满足实际工作需求,避免多个通信请求对象同时对同一通信通道具有通信要求时,对该通信通道的使用冲突。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1示出了现有的一种通信控制系统的网络架构示意图;图2示出了本发明实施例提供的一种通信控制系统的网络架构示意图;图3示出了本发明实施例提供的一种通信控制方法的流程示意图;图4示出了现有一种通信控制系统的场景示意图;图5示出了本发明实施例提供的另一种通信控制方法的流程示意图;图6示出了本发明实施例提供的又一种通信控制方法的流程示意图;图7a示出了本发明实施例提供的又一种通信控制方法的流程示意图;图7b示出了本发明实施例提供的又一种通信控制方法的流程示意图;图7c示出了本发明实施例提供的又一种通信控制方法的流程示意图;图8示出了本发明实施例提供的又一种通信控制方法的流程示意图;图9示出了本发明实施例提供的一种通信控制装置的结构示意图;图10示出了本发明实施例提供的另一种通信控制装置的结构示意图;图11示出了本发明实施例提供的又一种通信控制装置的结构示意图;图12示出了本发明实施例提供的又一种通信控制装置的结构示意图。具体实施方式对于如图1所示的现有的通信控制系统,本发明的发明人发现,sw(software)1模块、sw2模块和sw3模块这三个具有通信需求的通信请求模块,均对nm(networkmanagement,网络管理)1模块和com(communication,通信)模块有控制要求;sw2模块和sw3模块这两个通信请求模块均对nm2模块有控制要求;sw3模块和nm2模块均对can2(controlareanetwork,控制器局域网)模块有控制要求;sw1模块、sw2模块、sw3模块、nm1模块和nm2模块均对com模块有控制要求。这样,当sw1模块、sw2模块和sw3模块这三个通信请求模块的状态发生变化,且变化顺序不同,将会导致同时对同一通信通道的使用产生冲突,也就是说,现有的这种网络架构中的各通信请求模块之间的耦合性较大,导致做代码移植时,工作量大,难度高。其中,nm1模块和nm2模块可以是网络管理模块,用来管理sw1模块、sw2模块及sw3模块执行所需通信通道的开启/关闭,及该通信通道对报文的发送/接收;com模块这个通信模块可以是管理报文发送/接收的模块,本实施例可以将其记为报文管理模块,can1模块和can2模块可以是驱动网络报文发送/接收的模块,可以称为can驱动模块,在实际应用中,可以连接不同的通信通道。为了改善上述问题,本发明的发明人提出调整如图1所示的网络架构,降低各具有通信需求的通信请求模块之间的耦合性,经过不断尝试发现,可以设置一个通信管理模块comm(communicationmanager),来统一管理各通信请求模块sw的通信需求,及报文管理模块com对报文数据的接收/发送,并设置一个网络管理集成模块nmin(networkmanagementintegrate),来统一响应各通信请求模块sw的通信需求,控制多个网络管理模块nm,触发相应的can驱动模块,开启/关闭对应的至少一个通信通道,以结束各通信请求模块sw对网络管理模块nm和报文管理模块com的直接控制要求,以及各网络管理模块nm对报文管理模块com的直接控制要求,从而降低了各通信请求模块sw之间的依赖性,即降低了各通信请求模块sw之间的耦合性,进而提高了代码可移植性。需要说明,本发明对基于上述核心构思得到的新的通信控制系统的网络架构不做限定。为了使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参照图2,示出了本发明实施例提供的用来实现通信控制方法的通信控制系统的网络架构图,基于上文描述的构建该系统网络架构的核心构思,如图2所示,该系统可以包括但并不局限于以下功能模块:多个通信请求模块sw(如图2中的sw1、sw2及sw3等在运行状态下具有通信需求的软件功能模块)、多个网络管理模块nm(如图2中的nm1和nm2)、与该多个网络管理模块nm一一对应连接的多个can驱动模块(如图2中的can1和can2等)、报文管理模块com,以及分别连接多个通信请求模块sw(如图2中的sw1、sw2、sw3)、报文管理模块com的通信管理模块comm,分别连接通信管理模块comm和多个网络管理模块nm的网络管理集成模块nmin。从系统结构来看,相对于上图1所示的网络架构,本实施例将由通信管理模块comm为多个通信请求模块sw提供统一的通信管理接口,如图2所示,多个通信请求模块sw由原来网络结构中,直接与网络管理模块nm、报文管理模块com或can驱动模块的连接,更改为仅与该通信管理模块comm连接,再由该通信管理模块comm连接其他模块,对于网络管理模块nm,则是通过网络管理集成模块nmin与该通信管理模块comm连接,并一一对应连接can驱动模块,使得网络管理模块nm、can驱动模块以及报文管理模块com都不再直接受控于通信请求模块sw,且报文管理模块com也不再直接受控于各网络管理模块nm、通信请求模块sw。可见,本实施例提出的如图2所示的网络结构的通信控制系统,极大降低了各通信请求模块sw、网络管理模块nm、报文管理模块com及can驱动模块之间的关联程度,即降低了通信请求模块sw之间的耦合性,提高了代码可移植性。基于上文描述的本实施例提供的通信控制系统的网络架构,将由通信管理模块comm根据当前监听到的多个通信请求对象的通信请求的请求内容,如请求通信的通信通道及对该通信通道的开启或关闭通信要求等,按照对象优先级权衡机制,决定是否请求网络管理集成模块nmin响应通信请求,具体是响应哪个通信请求对象的通信请求,响应通信请求可以包括开启或关闭网络管理模块nm对应的网络通信功能,使能/禁能报文管理模块com是否发送/接收报文。可见,本实施例在监听到当前存在多个通信请求对象的通信请求的情况下,将依据各通信请求对象的处理优先级,确定对响应相应的多个通信请求的响应处理,而不是按照各通信请求的产生顺序,依次响应通信请求,满足了ecu当前工作要求,避免了不同通信请求对同一通信通道的通信要求相反,导致对该通信通道的使用冲突问题。如,sw1模块是电源管理软件,预设高压时禁止通信;sw2模块是点火开关采集软件,预设点火开关处于有效状态时,使能通信。按照图1所示的网络架构,若ecu先发生高压故障,然后点火开关处于有效状态,系统会使能通信,这与预设的高压时禁止通信违背;若ecu点火开关先处于有效状态,然后发生高压故障,系统会控制通信处于禁能状态,这与预设的点火开关处于有效状态时使能通信相违背。此时若采用如图2所示的网络架构搭建系统,同一时间监听到电源管理软件模块发生高压故障,点火开关处于有效状态,本发明将依据这两个通信请求对象优先级高低,先处理优先级更高的通信请求对象的通信请求,如若发生高压故障这一通信请求对象的优先级更高,即便在此之前存在对同一通信通道的通信请求,也会先响应这一通信请求对象的通信请求,即禁止通信,关闭通信通道的通信功能,并禁能报文的发送/接收,解决了上述现有通信控制方案存在的技术问题。结合上图2所示的通信控制系统的网络架构,本发明提出了一种通信控制方法实施例的流程示意图,该方法可以应用于车载控制器等设备,如图3所示,该方法可以包括但并不局限于以下步骤:步骤s11,监听到通信请求对象的通信请求;本实施例中,可以将能够控制通信通道开启或关闭、使能/禁能报文发送/接收的对象,即能够引起通信接口状态改变,或者触发通信通道开启或关闭的对象,记为通信请求对象。通信请求对象的通信请求可以是指请求开启或关闭通信通道的通信功能要求,及使能/禁能报文发送/接收,这可以根据预先针对ecu存在的各通信请求对象的通信特点确定,本实施例对各通信请求对象的通信请求内容不做限定。参照图4所示的汽车网络系统架构,整个汽车网络系统可以分成若干个网络,这若干个网络可以通过网关gateway连接成整车网络,如图4所示,整个网络可以通过can接口或lin(localinterconnectnetwork,局域互联网络)接口,实现各子网络之间的通信,这些子网络可以包括通过不同can接口连接的powertrain(动力传动系统)、diagnostics(诊断系统)、comfort(舒适模式,即汽车行驶模式)及infotainment(汽车多媒体系统)等,这四个子网络具体包含的功能模块如下,但并不局限于本文列举的功能模块:powertrain系统中可以包括esp(electronicstabilityprogram,电子稳定控制系统)、tcu(transmissioncontrolunit,自动变速箱控制单元)、ems(enginemanegementsystem,发动机管理系统)及afs(adaptivefrontlightingsystem,自适应照明系统),且该afs系统可以通过lin接口连接lampmotor(灯罩马达);diagnostics系统可以包括diagtool(系统诊断工具);comfort系统可以包括bcm(bodycontrolmodule,车身控制模块),该bcm还可以包括通过lin接口连接的rainsensor(雨量传感器);infotainment系统可以包括nav(navigation,导航)。结合汽车通信控制领域常识,如图4所示的每个网络都可以包括若干i/o设备、通信接口(如上述can接口或lin接口),对于通信接口的开启或关闭的控制,不仅取决于i/o设备的状态,还可以取决于各网络的网络状态,因此,本实施例监听到的通信请求对象可以包括各种具有通信需求的事件,也可以是具有通信需求的条件。如上文图4所示的汽车网络系统,本实施例的通信请求对象可以是开启点火开关(即动力传动系统中的一个i/o设备)事件,由网络状态确定的条件,如can总线上的某网络节点发送网络管理报文等。可选的,通信请求对象可以基于客户的需求描述文件确定,该需求描述文件可以包含对通信通道开启或关闭条件或事件的描述,因此,本实施例可以将该需求描述文件中描述的,有通信需求的条件及事件记为通信请求对象,并提取出这些通信请求对象,据此监听通信管理接口是否接收到针对这些通信请求对象的通信请求。需要说明,上述需求描述文件可以是在项目开始之前,客户根据自身对汽车控制需求确定的,本实施例对其包含的具体内容不作限定,对于不同类型的客户来说,其确定的需求描述文件的内容可能不同,由此得到的通信请求对象的内容也可能有所差异,本发明对此不作详述。且,上述通信管理接口可以是图2所示的网络架构中的通信管理模块comm的数据接口,本实施例对该通信管理接口的类型以及对其监听方法不做限定。步骤s12,解析监听到的各通信请求,得到相应通信请求对象的对象id;本实施例可以预先确定网络系统中存在的具有通信需求的各通信请求对象,为每一个通信请求对象分配唯一的对象id,如从0开始的编号,即0、1、2…等。这样,本实施例中,各通信请求对象可以使用各自的对象id请求通信管理模块comm,通过监听该通信管理模块comm的通信管理接口,监听到的各通信请求对象的通信请求可以携带对象id,解析该通信请求,可以得到监听到的各通信请求对象的对象id。步骤s13,从预存的信息配置表中,获取与各通信请求对象的对象id一一对应的对象类型及通信属性;本实施例中,可以基于通信请求对象的具体通信要求,对ecu中的多个通信请求对象进行分类,得到多个对象类型,分别可以记为lock(锁定)对象(也可以记为第一对象)、local(本地)对象(也可以记为第二对象)、remote(远程)对象(也可以记为第三对象)及disable(失能)对象(也可以记为第四对象)。其中,lock对象的通信要求可以是关闭某通信通道;local对象的通信要求可以是开启某个通信通道的本地通信,即利用某通信通道进行本地通信;remote对象的通信要求可以是开启某个通信通道的远程通信功能,即利用某个通信通道进行远程通信;disable对象的通信要求可以是关闭某个通信通道的报文发送/接收,即禁止某通信通道传输报文数据。可见,不同类型的通信请求对象的通信要求往往是不同的,本实施例实际应用中,可以先确定监听到的通信请求对象的对象类型,再按照预设的该对象类型的通信要求,响应该通信请求对象的通信请求。对于本实施例提出的通信请求对象的通信属性,可以包括通道属性和报文属性。其中,通信请求对象的通道属性可以表征该通信请求对象控制哪些通信通道,报文属性可以表征通信通道接收/发送的应用报文/网络管理报文。通常情况下,ecu的通信通道(即网络通道)数量大于1,为了方便控制各通信通道,可以为各通信通道分配一个唯一逻辑通道号,如0、1、2、3…,由于ecu的通信通道数量往往不大于32,因此,本实施例可以用一个32位的十六进制整数表示通道属性,通过转换成的二进制数中的各位数值来表示通信请求对象是否允许控制对应的通信通道的开启/关闭,如某位上的数值1可以表示通信请求对象具有对应通信通道的控制权。如,通信请求对象的通道属性为0x000c,由于其转换成二进制数后,每一位表示一个通信通道,即位0表示逻辑通信通道0,位1表示逻辑通信通道1,位2表示逻辑通信通道2,位3表示逻辑通信通道3,……等,由该通道属性的二进制数可以得知位2和位3被置1,所以说,通信请求对象的通信请求影响了逻辑通信通道2和逻辑通信通道3的通信,实现对通信通道的通信控制的方法不做限定。可选的,对于通信请求对象的报文属性,可以用一个8位的十六进制整数表示,位0(即最低有效位)表示应用报文的发送,位1表示应用报文的接收,位2表示网络管理报文的发送,位3表示网络管理报文的接收。举例说明,若通信请求对象的报文属性为0x05(对应二进制数为0101),bit0和bit2置1则表示该通信请求对象发起通信请求时,禁止其通道属性所指定的哪些通道的应用报文和网络管理报文的发送。结合上文对通道属性和报文属性的分析,上述通信属性可以用来指示通信请求对象能够控制的哪一个或多个通信通道开启/关闭,以及利用该通信通道发送/接收什么类型的报文的多个数字,具体由不同位上数值来表示该含义,具体可以参照上文对通道属性和报文属性的分析,本实施例不再对该通信属性中各个位上的数值表示的含义进行说明。在本实施例实际应用中,对于ecu可能存在的具有通信需求的多个通信请求对象,可以预先确定各通信请求对象的对象类型及通信属性,并为其设定了对象id,存储至信息配置表中,因此,在监听到通信请求对象的通信请求,并确定每个通信请求对象的对象id后,可以直接从信息配置表中查找与该对象id一一对象的对象类型和通信属性,即为当前监听到的相应通信请求对象的对象类型和通信属性。可见,信息配置表可以包含不同对象类型的通信请求对象,具体如何实现通信控制,包括如何控制ecu的各通信通道的开启或关闭,及如何实现报文的发送/接收。本实施例对该信息配置表的生成方法不做限定,具体可以采用下文相应的实施例的描述的生成方法。步骤s14,基于各通信请求对象的对象类型及通信属性,按照对象优先级权衡机制,响应各通信请求对象的通信请求。在本实施例实际应用中,若监听到当前时刻存在多个通信请求对象的通信请求,且通过获取的各通信请求对象的通信属性,确定对同一通信通道具有通信需求的通信请求对象的数量为多个,本实施例在获取这多个通信请求对象的对象类型后,可以依据不同对象类型的通信请求对象的通信属性,确定处理各对象类型的通信请求对象的通信请求的优先级,即生成对象优先级权衡机制,具体生成方法本实施例不做限定。可选的,本实施例中对同一通信通道具有通信需求的多个通信请求对象的优先级,可以按照通信请求对象类型设定,如优先级从高到低的顺序依次可以是:lock对象、local对象、remote对象、disable对象。因此,当ecu存在多个对象类型的通信请求对象,且当前时刻存在多个通信请求对象对同一个通信通道具有通信需求的情况下,可以按照设定的各对象类型的通信请求对象的处理优先级,对监听到的多个通信请求对象的通信请求进行处理。其中,当前时刻对同一个通信通道具有通信需求的多个通信请求对象,可以同时发起通信请求,也可以在不同时刻发起通信请求,但因发起的通信请求并未释放,使得当前时刻存在针对该通信通道的多个通信请求,为了避免对该通信通道的使用冲突,本实施例将按照对象优先级权衡机制,处理当前时刻存在的多个通信请求。需要说明,在该对象优先级权衡机制中,对不同对象类型的通信请求对象的通信请求的处理要求如下:对于lock对象,通常请求通信管理模块comm关闭某一个或多个通信通道,当对该通信通道有控制要求的有该对象类型的通信请求对象,不管其他对象类型的通信请求对象对该通信通道有何要求,通信管理模块comm都可以向网络管理集成模块nmin请求关闭该通信通道的通信功能。当对该通信通道有控制要求的通信请求对象不存在lock对象,通信管理模块comm可以对其他对象类型的通信请求对象的通信请求进行处理。对于local对象,通常要求开启某一个或多个通信通道的本地通信。由于其优先级仅低于lock对象,对该通信通道有控制要求的通信请求对象中,只要不存在lock对象,就可以执行该local对象的通信要求,即在未监听到lock对象的情况下,确定对该通信通道有控制要求的通信请求对象包含有local对象,通信管理模块comm都可以向网络管理集成模块nmin请求开启该通信通道的本地通信功能;若确定对该通信通道有控制要求的通信请求对象未包含lock对象和local对象,通信管理模块comm可以响应其他对象类型的通信请求对象的通信请求。对于remote对象,通常要求开启某一个或多个通信通道的远程通信功能,由于该对象类型的处理优先级低于lock对象和local对象,当对通信通道有控制要求的通信请求对象不存在lock对象和local对象,且存在至少一个remote对象,通信管理模块comm都可以向网络管理集成模块nmin请求开启该通信通道的远程通信功能。其中,当remote对象是满足远程通信功能的条件,可以不需要通信管理模块comm的请求,网络管理模块nm内部自动关闭,实现通信通道的远程通信。对于disable对象,通常要求关闭某一个或多个通信通道发送/接收报文。具体在通信通道的本地/远程通信功能开启的情况下,即执行local/remote对象后,对该通信通道有控制要求的通信请求对象包含至少一个disable对象,通信管理模块comm向报文管理模块com请求关闭该通信通道对报文的发送/接收;当对该通信通道有控制要求的通信请求对象不存在disable对象后,通信管理模块comm才会向报文管理模块com请求开启该通信通道对报文的发送/接收。由此可见,只有未监听到lock对象的通信请求,才会响应local对象的通信请求以及对local对象的释放,其中,未监听到lock对象的通信请求说明当前已释放该lock对象的通信请求。而remote对象的通信请求不需要释放,其是由汽车网络管理机制决定。基于上文对各对象类型的通信请求对象的处理优先级分析,本实施例得到当前监听到多个通信请求对象的对象类型后,可以确定出通信管理模块comm如何响应对该多个通信请求对象的通信请求,即按照各对象类型的通信请求对象的处理优先级从高到低的顺序,响应相应通信请求对象的通信请求。可选的,对于上文实施例中的信息配置表,可以按照以下方式生成通信请求对象的信息配置表,但并不局限于本实施例描述的这种生成方式,如图5所示,该方法可以包括:步骤s21,获取运行状态下具有通信需求的各通信请求对象;如上述分析,本实施例可以将能够引起通信通道开启或关闭的对象记为通信请求对象,其具体可以是汽车控制网络系统中i/o设备引起的事件,如开启点火开关,或由网络状态确定的条件,如某网络节点发送网络管理报文等。可选的,本实施例可以通过对客户的需求描述文件进行分析,得到当前ecu存在的所有具有通信需求的通信请求对象,具体实现方法不做限定。通常情况下,获取的具有通信需求的通信请求对象的数量为多个。步骤s22,为每一个通信请求对象分配一一对应的对象id;在实际应用中,一个通信请求对象可以同时控制多个通信通道,且很多通信请求对象之间是相互独立的,就会出现某时间内多个通信请求对象控制一个通信通道,为了区分各通信请求对象,本实施例可以为每一个通信请求对象分配唯一的对象id。需要说明,本实施例对上述对象id的内容不做限定,可以是连续编号或者字符等等,本文以对象id为从0开始的编号为例进行说明,即0、1、2…依次分配给获取的多个通信请求对象。步骤s23,依据每个通信请求对象的通信特点,确定该通信请求对象的对象类型及通信属性;本实施例中,各通信请求对象的通信特点可以预先确定,具体可以根据当前场景下实际工作需求确定,如电源高压或低压故障,要求关闭通信;总线错误故障,要求禁止报文发送和执行故障恢复;点火开关开启,要求开启本地通信等等,本实施例在此不再一一列举。其中,上述高压故障、总线错误故障、点火开关开启可以认为是事件或条件,如上文分析,其也可以是通信请求对象的某一状态。因此,本实施例可以根据实际需要,预先确定各通信请求对象不同状态下的具体通信要求,并将其记为该通信请求对象的通信特点。可见,ecu中各通信请求对象的通信特点可以预先设定,本实施例对各通信请求对象的通信特点的确定方法及其包含的内容不做限定,并不局限于上文举例内容。另外,本实施例可以基于上文实施例相应部分描述的,各类的通信请求对象的通信要求及预设的通信特点,确定获取的多个通信请求对象属于什么类型对象,具体可以将获取的多个通信请求对象的通信特点,与预设的各类型的对象的通信要求进行比对,得到各通信请求对象的对象类型。需要说明,每一个通信请求对象只能属于一个对象类型,且同一对象类型的各通信请求对象的通信请求内容相同,在预设的对象优先级权衡机制中的优先级也是相同的。步骤s24,利用确定的多个通信请求对象各自的对象id、对象类型及通信属性,生成信息配置表。可见,本实施例生成的信息配置表能够表示不同对象id对应的,相应通信请求对象的对象类型及通信属性,在实际应用中,可以基于对象id查询当前通信请求对象的对象类型及通信属性,以实现通信控制。需要说明,本实施例对信息配置表的数据存储形式不做限定,即对于表示上述对象id、对象类型及通信属性之间的对应关系的方式不做限定,可以是表格形式,也可以是对应关系图形式等等。本实施例在此仅以表格形式为例进行说明,如表1所示的信息配置表:表1:信息配置表对象id对象类型通信属性1(通道属性)通信属性2(报文属性)0lock对象0x000c0x051local对象0x000a0x032remote对象………………………………ndisable对象0x00090x06综上,本实施例可以按照上述方式,生成如表1所示的信息配置表,并对其进行存储,这样,如上文图3对应的实施例描述的通信控制方法,在实际应用中,监听到多个通信请求对象的通信请求后,可以基于确定的对象id,从该信息配置表中查找对应的对象类型和通信属性,确定各通信请求对象请求通信的通信通道,若针对同一通信通道的通信请求有多个,将按照上述对象优先级权衡机制,对这多个通信请求进行处理。作为本发明一可选实施例,可以参照图6所示的方式实现上述步骤s14,如图6所示,具体可以包括但并不局限于以下步骤:步骤s31,确定通信请求对象所请求的通信通道;如上述分析,ecu中的通信通道有多个,不同通信请求对象可以根据各自通信特点,针对相应的通信通道发起通信请求,且各通信请求对象发起通信请求可以是独立的,因此,对于每一个通信通道来说,其可能在一段时间内接收到多个通信请求对象的通信请求,针对这种通信通道,本实施例可以按照预设的对象优先级权衡机制进行处理,具体处理方式如下各步骤描述内容,但并不局限于此。步骤s32,检测是否存在lock对象的通信请求,如果是,进入步骤s33;如果否,执行步骤s34;结合上文关于对象优先级权衡机制的描述内容,本实施例按照各类型的通信请求对象的处理优先级从高到低的顺序,响应针对同一个通信通道的多个通信请求对象的通信请求。因此,本实施例可以先检测针对该通信通道的通信请求对象中是否具有lock对象,即处理优先级最高的对象类型,如存在,将优先处理lock对象的通信请求;若不存在,将按照处理优先级从高到低的顺序,依次进行检测。具体的,如上述实施例的分析,本发明可以通过查询信息配置表,获取监听到的各通信请求对象的对象类型,之后,直接对获取的对应于不同通信通道的至少一个对象类型进行检测,以确定针对各通信通道是否存在lock对象这一对象类型的通信请求对象。步骤s33,依据lock对象的通信属性对该通信通道进行处理;本实施例中,该通信属性即为上文描述的对lock对象的处理内容,即关闭该通信通道,具体按照预设的lock对象的通信属性内容,来关闭该通信通道,即按照该lock对象的通信属性内容,向各通信通道输入相应高/低信号,来关闭该通信通道。可选的,在本实施例实际应用中,确定针对该通信通道的通信请求包括lock对象的通信请求,即对该通信通道具有通信需求的通信请求对象包括lock对象,如图7a所示,本实施例可以先检测上一次针对该通信通道的通信请求对象是否包括lock对象,如果包含,那么上一次必然已经响应过该lock对象的通信请求,即已关闭该通信通道,此时不需要再次关闭,可以直接结束流程;反之,再执行步骤s33,即关闭该通信通道。具体可以由通信管理模块comm基于该检测结果,请求网络管理集成模块nmin关闭该通信通道。由此可见,在上述步骤s32中,确定针对该通信通道的通信请求对象中包括lock对象后,如图7a所示,本实施例可以先检测上一次针对该通信通道的通信请求对象是否包含lock对象,如果是,结束本次处理流程;如果否,按照lock对象的通信属性,请求关闭该通信通道。步骤s34,检测是否存在local对象的通信请求,如果是,进入步骤s35;如果否,执行步骤s36;确定该通信通道不存在lock对象的情况下,进一步检测得到的至少一个通信请求对象的对象类型是否为local类型,如果是,系统将先响应属于该local对象类型的通信请求对象的通信请求;反之,进一步检测是否存在下一优先级对象类型的通信请求对象。步骤s35,依据local对象的通信属性对该通信通道进行处理;与上述步骤s33的处理类似,本实施例在确定存在有local对象(不存在lock对象的情况下),将按照预存的local对象的通信属性,属于该对象类型的至少一个通信请求对象的通信请求进行处理,具体的,输入符合该通信属性的控制信号,将开启该通信通道的本地通信功能。可选的,该步骤s35的触发条件及执行方式,与上文步骤s33的触发条件及执行方式类似,具体可以参照图7b所示的流程示意图,由步骤s34确定针对该通信通道的通信请求对象不存在lock对象,但存在local对象,本实施例可以检测上一次针对该通信通道的通信请求对象是否包含local对象,如果是,可以认为当前该通信通道的本地通信功能已经开启,可以直接结束该流程,如果否,可以按照local对象的通信属性,请求开启该通信通道的本地通信模式。步骤s36,检测是否存在remote对象的通信请求,如果是,进入步骤s37;如果否,执行步骤s38;本实施例在确定当前针对该通信通道的通信请求对象不存在lock对象和local对象的情况下,系统才会控制该通信通道响应remote类型的通信请求对象的通信请求;反之,本实施例将按照上文描述的对象优先级权限机制进行处理。步骤s37,依据remote对象的通信属性对该通信通道进行处理;参照上文对步骤s33和步骤s35的描述,本实施例确定针对该通信通道的通信请求对象不存在lock对象和local对象,但存在remote对象,在执行该remote对象的通信请求之前,如图7c所示,可以先检测上一次针对该通信通道的通信请求对象是否存在remote对象,如果存在,可以结束流程,如果不存在,再按照该remote对象的通信属性,请求开启该通信通道的远程通信模式。步骤s38,查询上一次监听到的针对该通信通道的通信请求对象中是否存在local对象,如果不存在,结束流程,如果存在,进入步骤s39。步骤s39,请求关闭该通信通道本地通信模式。其中,该步骤s39与上述步骤s35的实现相同,可以参照上述步骤s35相应部分的描述。在本实施例实际应用中,确定本次针对该通信通道的通信请求对象中不存在lock对象、local对象及remote对象,可以通过查询上一次监听到的针对该通信通道的通信请求对象的对象类型,响应针对该通信通道的至少一个通信请求,具体上一次监听到针对该通信通道的local对象,本实施例可以请求关闭该通信通道的本地通信模式,从而使得对lock对象和local对象的释放,具体实现方法不做限定。其中,需要说明,在本发明各实施例中,若针对某通信通道的通信请求对象中未包含某一对象类型,说明该对象类型的通信请求对象针对该通信通道得到了释放。但对于remote对象来说,其是由网络管理模块nm采用的汽车网络管理机制决定,并不需要释放,可以由对应的网络管理模块nm来关闭,具体实现方法本实施例不做限定。综上所述,本实施例实际应用中,通信控制系统中的通信管理模块comm对其通信管理接口进行监听,当前监听到多个通信请求对象的通信请求,且有两个以上通信请求的对象是一个通信通道,本实施例可以检测这多个通信请求的通信请求对象的对象类型,并按照对象优先级从高到低的顺序,确定响应哪个通信请求,而不是按照监听到的这多个通信请求的监听顺序,满足了实际工作需求。由此可见,本发明提供的通信控制系统中的网络管理模块nm和can驱动模块,都能够执行对象优先级权衡机制,来满足不同工作通信需求。解决了现有汽车行业,网络管理模块nm虽然遵循autosar规范的cannm,或准许osek规范的oseknm,但其与can驱动模块都不能提供通信管理接口,也不会实现优先级权衡机制,导致无法满足实际工作通信需求的问题。且,由于本实施例的通信控制方法基于上图2所示的网络架构实现,降低了各通信请求模块sw之间的关联程度,这样,当通信控制系统中的多个网络管理模块nm的需求发生变化,由于各通信请求模块sw不会直接调用网络管理模块nm的接口,也就不会导致各通信请求模块sw的变更。如,对于通信控制系统的网络管理模块nm,a项目使用osek网络管理机制,b项目使用autosar网络管理机制,c项目使用自定义的网络管理机制,即在不同项目中,该网络管理模块nm采用的网络管理机制可以不同,但如上图2所示的网络架构,各网络管理模块nm由网络管理集成模块nmin管理,并通过通信管理模块comm实现与各通信请求模块sw的连接,各网络管理模块nm不再直接与通信请求模块sw连接,这样,即便通信控制系统执行不同项目,也不需要更改通信请求模块sw,也就是说,各通信请求模块sw适用于采用不同网络管理机制的多个项目,提高了代码可移植性,降低了工作量。进一步地,上述实施例基础上,本发明可以按照如图8所示的方法,响应disable对象的通信请求,具体的,由于该disable对象的通信请求是请求开启或关闭通信通道对报文的接收/发送,即通信管理模块comm向报文管理模块com请求,开启或关闭该通信通道报文的发送/接收,如上图2所示的网络架构,这与网络管理模块nm的控制路线不同,所以,本实施例在确定监听到的各通信请求对象的对象类型及通信属性,并确定监听到通信请求对象请求通信的通信通道之后,如图8所示,还可以包括但并不局限于以下方法步骤:步骤s41,检测通信请求对象所请求的通信通道是否处于开启状态,如果是,进入步骤s42,如果否,结束流程;在本实施例实际应用中,可以检测针对该通信通道的通信请求对象是否包含local对象或remote对象,即检测当前该通信通道是否处于本地通信模式或远程通信模式,如果是,说明该通信通道处于开启状态,可以进一步执行后续检测步骤,反之,不会执行以下检测步骤。需要说明,本实施例该步骤s41可以在上述可选实施例确定通信请求对象所请求的通信通道后执行,并不局限于上述可选实施例哪一检测步骤,也就是说,在检测是否存在其他对象类型的同时,还可以执行本实施例提供的检测内容,本实施例与上述可选实施例组合后得到的实施例,本发明在此不再一一详述。步骤s42,检测针对该通信通道的通信请求对象中是否包含disable对象,如果是,进入步骤s43;如果否,执行步骤s45;如上文分析,对于监听到的通信请求对象,本实施例将会基于对象id,得知各通信请求对象的对象类型,且当监听到多个通信请求对象的情况下,往往会存在对象类型相同的通信请求对象,对于同一对象类型的通信请求对象的优先级相同,且通信请求的内容相同,因此,在响应某对象类型的通信请求对象的通信请求时,往往是响应属于该对象类型的所有通信请求对象。另外,本实施例可以针对不同对象类型设置一一对应的标签,如编号或名称(如上文的lock、local、remote、disable)等,因此,可以通过检测监听到的至少一个通信请求对象的对象类型,来确定是否包含disable这一对象类型的通信请求对象,本发明对步骤s43的具体检测方式不做限定。步骤s43,检测上一次针对该通信通道的通信请求对象中是否包含disable对象,如果是,结束流程;如果否,执行步骤s44;本发明对关闭通信通道或其某通信功能时,可以先检测该通信通道是否已经关闭,具体可以确定上一次按照本实施例提供的检测方式,是否曾检测到针对该通信通道的disable对象,如果是,说明该通信通道或其某通信功能已经关闭,可以直接结束流程,如果否,本次再执行该disable对象的通信请求。步骤s44,依据该disable对象的通信属性,请求关闭该通信通道报文的收发功能;步骤s45,检测上一次针对该通信通道的通信请求对象中是否包含disable对象,如果否,结束流程;如果是,执行步骤s46;其中,步骤s45与上述步骤s43的实现过程类似,本实施例不再赘述。步骤s46,依据该disable对象的通信属性,请求开启该通信通道报文的收发功能。综上所述,对于disable对象的通信请求,需要该通道处于本地/远程通信开启的情况下才可响应,结合上文可选实施例描述的对该通信通道的其他通信请求的处理方式,满足了实际工作需求。需要说明的,本发明对ecu中各通信请求对象的对象类型划分方式不作限定,即并不局限于本实施例提供的对象类型及其划分方式,且针对不同对象类型的通信请求对象,可以根据实际需要预先设定,以便在实际监听到该类型的通信请求对象,并响应其通信请求时,能够直接调用预设的通信属性进行处理。关于本发明预先设置的各对象类型的通信属性内容,并不局限于本发明各实施例描述的内容,技术人员可以根据实际需要,按照发明人提出的核心构思,进行适应性调整,本发明对此不再一一详述。如图9所示,为本发明实施例提供的一种通信控制装置的结构示意图,该装置可以应用于车载控制器,具体可以包括但并不局限于以下结构:监听模块91,用于监听到通信请求对象的通信请求;解析模块92,用于解析通信请求,得到相应通信请求对象的对象id;获取模块93,用于从预存的信息配置表中,获取与得到的对象id一一对应的对象类型及通信属性;响应模块94,用于基于该通信请求对象的对象类型及通信属性,执行对象优先级权衡机制,响应该通信请求对象的通信请求。可选的,如图10所示,该响应模块94可以包括:通信通道确定单元941,用于确定通信请求对象所请求的通信通道;第一检测单元942,用于检测针对该通信通道的通信请求对象是否包含第一对象;第一处理单元943,用于在第一检测单元942的检测结果为是,依据预存的第一对象的通信属性,对该通信通道进行处理;在本实施例实际应用中,第一处理单元943具体可以用于依据预存的第一对象的通信属性,请求关闭该通信通道。可选的,本实施例提供的装置还可以包括:第一查询单元,用于查询上一次监听到针对该通信通道的通信请求对象是否包含第一对象,当查询结果为否,触发该第一处理单元943执行上述步骤。第二检测单元944,用于在第一检测单元942的检测结果为否,检测针对该通信通道的通信请求对象是否包含第二对象;第二处理单元945,用于在第二检测单元944的检测结果为是,依据预存的第二对象的通信属性,对该通信通道进行处理;同理,该第二处理单元945具体可以用于依据预存的第二对象的通信属性,请求开启该通信通道的本地通信模式;可选的,在上述实施例的基础上,该装置还可以包括:第二查询单元,用于查询上一次监听到针对该通信通道的通信请求对象是否包含第二对象,当查询结果为否,触发该第二处理单元945执行上述步骤。第三检测单元946,用于在第二检测单元944的检测结果为否,检测针对该通信通道的通信请求对象是否包含第三对象;第三处理单元947,用于在第三检测单元946的检测结果为是,依据预存的第三对象的通信属性,对该通信通道进行处理;同理,该第三处理单元947具体可以用于依据预存的第三对象的通信属性,请求开启该通信通道的远程通信模式;可选的,在上述实施例的基础上,该装置还可以包括:第三查询单元,用于查询上一次监听到针对该通信通道的通信请求对象是否包含第三对象,当查询结果为否,触发该第三处理单元947执行上述步骤。第一查询处理单元948,用于在第三检测单元946的检测结果为否,查询上一次监听到针对该通信通道的通信请求对象包含第二对象,请求该通信通道关闭本地通信模式。需要说明的是,本实施例的第一对象、第二对象和第三对象是不同对象类型的通信请求对象,具体的,第一对象可以是上述方法实施例中的lock对象,第二对象可以是local对象,第三对象可以是remote对象,并将disable对象记为第四对象。作为另一可选实施例,如图11所示,在上述实施例的基础上,响应模块94还可以包括:第四检测单元949,用于检测通信请求对象所请求的通信通道是否处于开启状态;第五检测单元9410,用于在第四检测单元949的检测结果为是,检测针对该通信通道的通信请求对象是否包含第四对象;其中,第四对象是区别于第一对象、第二对象和第三对象的对象类型的通信请求对象;第二查询处理单元9411,用于在第五检测单元9410的检测结果为是,并查询到上一次监听到针对该通信通道的通信请求对象未包含第四对象,依据预存的第四对象的通信属性,请求关闭该通信通道报文的收发功能;第三查询处理单元9412,用于在第五检测单元9410的检测结果为否,并查询到上一次监听到针对该通信通道的通信请求对象包含第四对象,依据预存的第四对象的通信属性,请求开启该通信通道报文的收发功能。综上所述,本实施例在监听到多个通信请求对象的通信请求的情况下,可以先确定当前时间针对同一通信通道的多个通信请求对象的对象类型,再按照预设的对象优先级权衡机制,按照各对象类型的通信请求对象的优先级处理顺序和处理方法,响应针对各通信通道的通信请求,满足实际工作需求。作为本发明又一可选实施例,如图12所示,在上述实施例的基础上,该装置还可以包括:通信请求对象获取模块95,用于获取运行状态下具有通信需求的各通信请求对象;对象id分配模块96,用于为每一个通信请求对象分配一一对应的对象id;确定模块97,用于依据每一个通信请求对象的通信特点,确定相应通信请求对象的对象类型及通信属性;生成模块98,用于利用获取的各通信请求对象的对象id、对象类型及通信属性,生成信息配置表。本实施例该信息配置表的生成过程可以参照上述方法实施例相应部分的描述。可见,本实施例可以利用上述功能模块,预先生成能够表明不同对象类型的通信请求对象的处理方法的信息配置表,在实际监听到通信请求对象后,能够直接对该信息配置表进行查询,确定各通信请求对象的对象类型及其处理方法,从而按照各对象类型的优先级处理顺序,实现对通信通道的控制,满足当前工作需求。本发明实施例还提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现如上述的通信控制方法。可选的,该存储介质可以是存储器,如计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。本发明实施例还提供了一种处理器,该处理器用于运行程序,该程序运行时可以执行上述通信控制方法,该通信控制方法的实现步骤可以按照上述方法实施例的描述。在实际应用中,该处理器具体可以是车载控制器等,本实施例对结构及其所在的产品形态不做限定。最后,需要说明的是,关于上述各实施例中,诸如第一、第二等之类的关系术语仅仅用来将一个操作或单元与另一个操作或单元区分开来,而不一定要求或者暗示这些单元或操作之间存在任何这种实际的关系或者顺序。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、存储介质而言,由于其与实施例公开的方法对应,所以描述的比较简单,相关之处参见方法部分说明即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1