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

邮箱过滤器的掩码计算方法、装置和电子设备

文献发布时间:2024-04-18 20:01:23


邮箱过滤器的掩码计算方法、装置和电子设备

技术领域

本发明涉及汽车零部件的技术领域,尤其是涉及一种邮箱过滤器的掩码计算方法、装置和电子设备。

背景技术

很多MCU自带的CAN/CANFD(即控制器)的MailBox(即邮箱)数量有限,且不是所有CAN/CANFD通道都支持FIFO模式(即队列模式),尤其是在CANFD模式下,每个通道上资源更加紧张。此时,当CAN/CANFD总线网络上需要收发的报文较多,尤其当超出当前硬件通道MailBox(邮箱)总数量,且MailBox Filter(邮箱过滤器)已无法全部采用Full CAN模式(一个邮箱只接收一个报文的模式)时,一般采用Basic CAN模式(一个邮箱能接收多个报文的模式)以接收更多报文,但在Basic CAN模式下,该CAN/CANFD通道会接收到车身网络中一些无用报文,因为报文都是通过中断方式接收的,因此,增加了CAN/CANFD接收报文的中断触发频次,一方面会导致MCU负载增加,另外,当报文频率较高,处理不及时的时候,可能会导致报文丢失或报文数据内容被破坏的现象。

综上,如何对MailBox Filter(邮箱过滤器)进行配置,从而最大限度的过滤掉无用报文,进而降低CAN/CANFD接收报文的中断触发频次成为目前亟需解决的技术问题。

发明内容

有鉴于此,本发明的目的在于提供一种邮箱过滤器的掩码计算方法、装置和电子设备,以缓解现有技术无法对邮箱过滤器进行有效配置,进而导致接收邮箱接收到大量无用报文的技术问题。

第一方面,本发明实施例提供了一种邮箱过滤器的掩码计算方法,包括:

从整车DBC中获取当前CAN/CANFD通道的所有存在的车身报文ID、各所述存在的车身报文ID对应的报文周期、需要接收的报文ID、各所述需要接收的报文ID对应的报文周期、需要外发的报文ID和各所述需要外发的报文ID对应的报文周期;

获取MCU在所述当前CAN/CANFD通道的可用于通信的邮箱数量,并基于所述需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据所述可用于通信的邮箱数量和所述发送邮箱数量计算当前CAN/CANFD的接收邮箱数量;

当基于所述需要接收的报文ID和所述接收邮箱数量确定得到需要接收的报文数量大于所述接收邮箱数量时,则采用负载平衡算法对所述存在的车身报文ID、各所述存在的车身报文ID对应的报文周期、所述需要接收的报文ID、各所述需要接收的报文ID对应的报文周期进行负载平衡计算,得到目标过滤器掩码组合,以通过所述目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。

进一步的,基于所述需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据所述可用于通信的邮箱数量和所述发送邮箱数量计算当前CAN/CANFD的接收邮箱数量,包括:

根据所述需要外发的报文ID确定需要外发的报文数量;

根据所述需要外发的报文数量和预设的发送报文复用发送邮箱的比例计算当前CAN/CANFD所需的发送邮箱数量;

将所述可用于通信的邮箱数量与所述发送邮箱数量的差值作为当前CAN/CANFD的接收邮箱数量。

进一步的,所述方法还包括:

当基于所述需要接收的报文ID和所述接收邮箱数量确定得到所述需要接收的报文数量不大于所述接收邮箱数量时,则将所有所述接收邮箱配置为Full CAN模式。

进一步的,采用负载平衡算法对所述存在的车身报文ID、各所述存在的车身报文ID对应的报文周期、所述需要接收的报文ID、各所述需要接收的报文ID对应的报文周期进行负载平衡计算,包括:

将所述需要接收的报文ID转换成二进制,并将转换后的需要接收的报文二进制ID录入过滤器掩码矩阵,将对应的报文周期作为所述需要接收的报文二进制ID的权值;

将所述存在的车身报文ID中的无用报文ID转换成二进制,并将转换后的无用报文二进制ID录入所述过滤器掩码矩阵,将对应的报文周期的倒数作为所述无用报文二进制ID的权值;

在所述需要接收的报文二进制ID中查找仅有目标数量个bit位不同的需要接收的报文二进制ID,得到目标数量个bit位不同的需要接收的报文二进制ID组合,直至得到预设数量个需要接收的报文二进制ID组合;

根据各所述需要接收的报文二进制ID组合确定对应的需要接收的报文二进制ID组合对应的过滤器掩码,并根据各所述需要接收的报文二进制ID组合中各所述需要接收的报文二进制ID的权值计算对应的过滤器掩码的初始权值;

根据所述无用报文二进制ID和所述无用报文二进制ID的权值对对应的过滤器掩码的初始权值进行修正,得到过滤器掩码的目标权值;

在所述预设数量个过滤器掩码中筛选得到多组过滤器掩码组合,并根据每组所述过滤器掩码组合中所包含的过滤器掩码的目标权值对每组所述过滤器掩码组合进行评分,得到各组所述过滤器掩码组合的组合评分;

根据各组所述过滤器掩码组合的组合评分确定所述目标过滤器掩码组合,以通过所述目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。

进一步的,所述目标数量个为从1个到N个的遍历,其中,N为过滤器的位数。

进一步的,在将所述存在的车身报文ID中的无用报文ID转换成二进制之前,所述方法包括:

根据所述存在的车身报文ID、所述需要接收的报文ID和所述需要外发的报文ID确定所述存在的车身报文ID中的无用报文ID;

根据各所述需要接收的报文二进制ID组合中各所述需要接收的报文二进制ID的权值计算对应的过滤器掩码的初始权值,包括:

将每个所述需要接收的报文二进制ID组合中各所述需要接收的报文二进制ID的权值的和作为对应的过滤器掩码的初始权值。

进一步的,在所述预设数量个过滤器掩码中筛选得到多组过滤器掩码组合,包括:

在每组所述过滤器掩码组合中,Rx Msg

根据每组所述过滤器掩码组合中所包含的过滤器掩码的目标权值对每组所述过滤器掩码组合进行评分,包括:

对每组所述过滤器掩码组合中所包含的过滤器掩码的目标权值进行加和,得到各组所述过滤器掩码组合的初始组合评分;

若目标过滤器掩码组合中,存在过滤器掩码的目标权值小于预设阈值,则将所述目标过滤器掩码组合的初始组合评分乘以预设比例,得到所述目标过滤器掩码组合的组合评分,并将其它所述过滤器掩码组合的初始组合评分作为对应的过滤器掩码组合的组合评分。

第二方面,本发明实施例还提供了一种邮箱过滤器的掩码计算装置,包括:

获取单元,用于从整车DBC中获取当前CAN/CANFD通道的所有存在的车身报文ID、各所述存在的车身报文ID对应的报文周期、需要接收的报文ID、各所述需要接收的报文ID对应的报文周期、需要外发的报文ID和各所述需要外发的报文ID对应的报文周期;

计算单元,用于获取MCU在所述当前CAN/CANFD通道的可用于通信的邮箱数量,并基于所述需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据所述可用于通信的邮箱数量和所述发送邮箱数量计算当前CAN/CANFD的接收邮箱数量;

负载平衡计算单元,用于当基于所述需要接收的报文ID和所述接收邮箱数量确定得到需要接收的报文数量大于所述接收邮箱数量时,则采用负载平衡算法对所述存在的车身报文ID、各所述存在的车身报文ID对应的报文周期、所述需要接收的报文ID、各所述需要接收的报文ID对应的报文周期进行负载平衡计算,得到目标过滤器掩码组合,以通过所述目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。

第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述机器可运行指令在被处理器调用和运行时,所述机器可运行指令促使所述处理器运行上述第一方面任一项所述的方法。

在本发明实施例中,提供了一种邮箱过滤器的掩码计算方法,包括:从整车DBC中获取当前CAN/CANFD通道的所有存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期、需要外发的报文ID和各需要外发的报文ID对应的报文周期;获取MCU在当前CAN/CANFD通道的可用于通信的邮箱数量,并基于需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据可用于通信的邮箱数量和发送邮箱数量计算当前CAN/CANFD的接收邮箱数量;当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,则采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,得到目标过滤器掩码组合,以通过目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。通过上述描述可知,本发明的邮箱过滤器的掩码计算方法中,当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,能够采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,从而得到目标过滤器掩码组合,该目标过滤器掩码组合能够最大限度的过滤掉无用报文,从而降低CAN/CANFD接收报文的中断触发频次,缓解了现有技术无法对邮箱过滤器进行有效配置,进而导致接收邮箱接收到大量无用报文的技术问题。

附图说明

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

图1为本发明实施例提供的一种邮箱过滤器的掩码计算方法的流程图;

图2为本发明实施例提供的一种邮箱过滤器的掩码计算装置的示意图;

图3为本发明实施例提供的一种电子设备的示意图。

具体实施方式

下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有技术无法对邮箱过滤器进行有效配置,增加了CAN/CANFD接收报文的中断触发频次,并且接收邮箱会接收到大量无用报文。

基于此,本发明的邮箱过滤器的掩码计算方法中,当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,能够采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,从而得到目标过滤器掩码组合,该目标过滤器掩码组合能够最大限度的过滤掉无用报文,从而降低CAN/CANFD接收报文的中断触发频次。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种邮箱过滤器的掩码计算方法进行详细介绍。

实施例一:

根据本发明实施例,提供了一种邮箱过滤器的掩码计算方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种邮箱过滤器的掩码计算方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,从整车DBC中获取当前CAN/CANFD通道的所有存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期、需要外发的报文ID和各需要外发的报文ID对应的报文周期;

在本发明实施例中,先获取整车DBC,也就是整车信号矩阵,对其进行分析,提取得到当前CAN/CANFD通道的所有存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期、需要外发的报文ID和各需要外发的报文ID对应的报文周期。

步骤S104,获取MCU在当前CAN/CANFD通道的可用于通信的邮箱数量,并基于需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据可用于通信的邮箱数量和发送邮箱数量计算当前CAN/CANFD的接收邮箱数量;

具体的,根据客户的定义确定MCU在当前CAN/CANFD通道的可用于通信的邮箱数量,例如,一共有32个邮箱,客户定义其中2个邮箱不能用于通信,那么,可以计算得到可用于通信的邮箱数量为30个。

下文中再对发送邮箱数量和接收邮箱数量的计算过程进行详细描述,在此不再赘述。

步骤S106,当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,则采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,得到目标过滤器掩码组合,以通过目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。

上述计算得到的目标过滤器掩码组合能够最大限度的过滤掉无用报文,进而降低CAN/CANFD接收报文的中断触发频次。

在本发明实施例中,提供了一种邮箱过滤器的掩码计算方法,包括:从整车DBC中获取当前CAN/CANFD通道的所有存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期、需要外发的报文ID和各需要外发的报文ID对应的报文周期;获取MCU在当前CAN/CANFD通道的可用于通信的邮箱数量,并基于需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据可用于通信的邮箱数量和发送邮箱数量计算当前CAN/CANFD的接收邮箱数量;当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,则采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,得到目标过滤器掩码组合,以通过目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。通过上述描述可知,本发明的邮箱过滤器的掩码计算方法中,当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,能够采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,从而得到目标过滤器掩码组合,该目标过滤器掩码组合能够最大限度的过滤掉无用报文,从而降低CAN/CANFD接收报文的中断触发频次,缓解了现有技术无法对邮箱过滤器进行有效配置,进而导致接收邮箱接收到大量无用报文的技术问题。

上述内容对本发明的邮箱过滤器的掩码计算方法进行了简要介绍,下面对其中涉及到的具体内容进行详细描述。

在本发明的一个可选实施例中,基于需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据可用于通信的邮箱数量和发送邮箱数量计算当前CAN/CANFD的接收邮箱数量,具体包括如下步骤:

(1)根据需要外发的报文ID确定需要外发的报文数量;

(2)根据需要外发的报文数量和预设的发送报文复用发送邮箱的比例计算当前CAN/CANFD所需的发送邮箱数量;

上述发送报文复用发送邮箱的比例可以为10个发送报文复用1个发送邮箱的比例,即Tx MailBox

(3)将可用于通信的邮箱数量与发送邮箱数量的差值作为当前CAN/CANFD的接收邮箱数量。

具体的,Rx MailBox

在本发明的一个可选实施例中,该方法还包括:

当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量不大于接收邮箱数量时,则将所有接收邮箱配置为Full CAN模式。

具体的,当Rx MailBox

在本发明的一个可选实施例中,采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,具体包括如下步骤:

(1)将需要接收的报文ID转换成二进制,并将转换后的需要接收的报文二进制ID录入过滤器掩码矩阵,将对应的报文周期作为需要接收的报文二进制ID的权值;

具体的,将所有需要接收的报文ID分解成二进制,并录入二进制的过滤器掩码矩阵,将报文Cycle(周期,单位毫秒)作为矩阵每一行权值。

(2)将存在的车身报文ID中的无用报文ID转换成二进制,并将转换后的无用报文二进制ID录入过滤器掩码矩阵,将对应的报文周期的倒数作为无用报文二进制ID的权值;

在将存在的车身报文ID中的无用报文ID转换成二进制之前,先根据存在的车身报文ID、需要接收的报文ID和需要外发的报文ID确定存在的车身报文ID中的无用报文ID,具体的,无用报文ID=存在的车身报文ID-需要接收的报文ID-需要外发的报文ID。

具体的,将总线上所有存在的车身报文ID中的无用报文ID分解成二进制,并录入二进制的过滤器掩码矩阵,将报文Cycle(单位换算为秒)的倒数作为矩阵每一行权值。

(3)在需要接收的报文二进制ID中查找仅有目标数量个bit位不同的需要接收的报文二进制ID,得到目标数量个bit位不同的需要接收的报文二进制ID组合,直至得到预设数量个需要接收的报文二进制ID组合;

具体的,目标数量个为从1个到N个的遍历,其中,N为过滤器的位数。

实现时,依次遍历查找需要接收的报文二进制ID中仅有1个Bit位不同的需要接收的报文二进制ID(可能找到0对、1对、2对等),其次是2个Bit位不同的需要接收的报文二进制ID,再次是3个Bit位不同的需要接收的报文二进制ID,以此类推,数量超过100时,仅保留优先查找到的前100个需要接收的报文二进制ID组合,不足100,则提前停止查找,查找成功的需要接收的报文二进制ID组合即为各个组合。

(4)根据各需要接收的报文二进制ID组合确定对应的需要接收的报文二进制ID组合对应的过滤器掩码,并根据各需要接收的报文二进制ID组合中各需要接收的报文二进制ID的权值计算对应的过滤器掩码的初始权值;

具体的,根据各需要接收的报文二进制ID组合与不同的Bit位位号计算出该组合对应的过滤器掩码,进而根据各需要接收的报文二进制ID组合中各需要接收的报文二进制ID的权值计算对应的过滤器掩码的初始权值。

具体的,将每个需要接收的报文二进制ID组合中各需要接收的报文二进制ID的权值的和作为对应的过滤器掩码的初始权值。

其中,结合报文周期(各需要接收的报文二进制ID组合中各需要接收的报文二进制ID的权值,权值=周期(毫秒))对组合内所有需要接收的报文二进制ID的权值相加,得出各需要接收的报文二进制ID组合的初始权值,也即各需要接收的报文二进制ID组合对应的过滤器掩码的初始权值。将所有需要接收的报文二进制ID组合内容、对应的过滤器掩码及过滤器掩码对应的初始权值全部记录下来。

(5)根据无用报文二进制ID和无用报文二进制ID的权值对对应的过滤器掩码的初始权值进行修正,得到过滤器掩码的目标权值;

具体的,根据(3)中查找到的需要接收的报文二进制ID组合,结合所有存在但不需接收的报文(即无用报文)二进制ID及周期,对所有组合中每一组过滤器掩码进行分析,如此,过滤器掩码除能接收到需要报文外,还能接收到总线上存在的其他不需接收的报文(即无用报文),根据无用报文周期,则对此组过滤器掩码减权(权值=1/周期(秒)),能接收的无用报文周期越小,减权越多。

(6)在预设数量个过滤器掩码中筛选得到多组过滤器掩码组合,并根据每组过滤器掩码组合中所包含的过滤器掩码的目标权值对每组过滤器掩码组合进行评分,得到各组过滤器掩码组合的组合评分;

具体的,在每组过滤器掩码组合中,Rx Msg

如上举例,从100个过滤器掩码中,筛选出多组过滤器掩码组合,假设各组合所有过滤器掩码能接收的需要接收的报文ID的总数量为N,该过滤器掩码组合需满足:Rx Msg

上述根据每组过滤器掩码组合中所包含的过滤器掩码的目标权值对每组过滤器掩码组合进行评分,具体包括如下步骤:

(61)对每组过滤器掩码组合中所包含的过滤器掩码的目标权值进行加和,得到各组过滤器掩码组合的初始组合评分;

(62)若目标过滤器掩码组合中,存在过滤器掩码的目标权值小于预设阈值,则将目标过滤器掩码组合的初始组合评分乘以预设比例,得到目标过滤器掩码组合的组合评分,并将其它过滤器掩码组合的初始组合评分作为对应的过滤器掩码组合的组合评分。

具体的,组合评分先将每组过滤器掩码的目标权值相加,如存在其中某些过滤器掩码得分小于0,需将该过滤器掩码组合整体评分乘以70%(因为可能存在其他过滤器掩码很理想,但单个过滤器掩码出问题概率较高),最后得出各过滤器掩码组合的组合评分。

(7)根据各组过滤器掩码组合的组合评分确定目标过滤器掩码组合,以通过目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。

具体的,结合组合评分选出排名前三的过滤器掩码组合作为推荐组合(即目标过滤器掩码组合),输出组合评分前三组合的过滤器掩码的目标权值及组合评分(所有过滤器掩码的目标权值越均衡,组合评分越高)。

输出组合评分前三组合的Filter Mask(过滤器掩码)与MailBox(邮箱)的对应关系。

需要说明的是,如得分都不理想,可结合实际Log,对同一过滤器内不会并发的报文做手动加权。

本发明的邮箱过滤器的掩码计算方法中,当需要使用的CAN/CANFD报文数量超出该通道上MailBox(邮箱)总数量时,本发明的方法,充分利用所有MCU所有Mail Box Filter(邮箱过滤器),尽量过滤掉车身上无用报文,只接收需要使用的报文,并且使所有MailBox(邮箱)所收取的报文频率达到最理想的均衡状态,避免CAN/CANFD报文出现丢帧、撞帧等情况(避免同一MailBox中CAN/CANFD报文前一帧报文还未及时处理,下一帧报文到达后覆盖了前一帧报文导致报文丢失问题;避免同一MailBox中CAN/CANFD报文前一帧报文处理一半时,下一帧报文到达后覆盖了前一帧报文导致报文数据错误问题;过滤车身上对于该控制器的无用报文,减少CAN/CANFD报文中断频次,降低MCU总体负载,提升MCU整体性能)。

本发明的邮箱过滤器的掩码计算方法采用负载平衡算法,根据Rx MailBox(接收邮箱)数量、接收报文ID&cycle、通道所有报文ID&cycle,在充分利用所有Rx MailBox数量前提下,尽量过滤掉车身无效报文,在无法全部过滤情况下,优先过滤优先级较高(ID小)、频率高的报文,同时通过MailBox Filter均衡分配每个Rx MailBox(接收邮箱)需要接收的报文,使每个Rx MailBox接收报文的频率都处于平衡状态。本发明合理分配TxMailBox(发送邮箱)与RxMailBox(接收邮箱),在保证功能前提下,降低了CAN/CANFD中断触发频次,提升了MCU性能。

实施例二:

本发明实施例还提供了一种邮箱过滤器的掩码计算装置,该邮箱过滤器的掩码计算装置主要用于执行本发明实施例一中所提供的邮箱过滤器的掩码计算方法,以下对本发明实施例提供的邮箱过滤器的掩码计算装置做具体介绍。

图2是根据本发明实施例的一种邮箱过滤器的掩码计算装置的示意图,如图2所示,该装置包括:获取单元10、计算单元20和负载平衡计算单元30,其中:

获取单元,用于从整车DBC中获取当前CAN/CANFD通道的所有存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期、需要外发的报文ID和各需要外发的报文ID对应的报文周期;

计算单元,用于获取MCU在当前CAN/CANFD通道的可用于通信的邮箱数量,并基于需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据可用于通信的邮箱数量和发送邮箱数量计算当前CAN/CANFD的接收邮箱数量;

负载平衡计算单元,用于当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,则采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,得到目标过滤器掩码组合,以通过目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。

在本发明实施例中,提供了一种邮箱过滤器的掩码计算装置,包括:从整车DBC中获取当前CAN/CANFD通道的所有存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期、需要外发的报文ID和各需要外发的报文ID对应的报文周期;获取MCU在当前CAN/CANFD通道的可用于通信的邮箱数量,并基于需要外发的报文ID计算当前CAN/CANFD所需的发送邮箱数量,进而根据可用于通信的邮箱数量和发送邮箱数量计算当前CAN/CANFD的接收邮箱数量;当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,则采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,得到目标过滤器掩码组合,以通过目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。通过上述描述可知,本发明的邮箱过滤器的掩码计算装置中,当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量大于接收邮箱数量时,能够采用负载平衡算法对存在的车身报文ID、各存在的车身报文ID对应的报文周期、需要接收的报文ID、各需要接收的报文ID对应的报文周期进行负载平衡计算,从而得到目标过滤器掩码组合,该目标过滤器掩码组合能够最大限度的过滤掉无用报文,从而降低CAN/CANFD接收报文的中断触发频次,缓解了现有技术无法对邮箱过滤器进行有效配置,进而导致接收邮箱接收到大量无用报文的技术问题。

可选地,计算单元还用于:根据需要外发的报文ID确定需要外发的报文数量;根据需要外发的报文数量和预设的发送报文复用发送邮箱的比例计算当前CAN/CANFD所需的发送邮箱数量;将可用于通信的邮箱数量与发送邮箱数量的差值作为当前CAN/CANFD的接收邮箱数量。

可选地,该装置还用于:当基于需要接收的报文ID和接收邮箱数量确定得到需要接收的报文数量不大于接收邮箱数量时,则将所有接收邮箱配置为Full CAN模式。

可选地,负载平衡计算单元还用于:将需要接收的报文ID转换成二进制,并将转换后的需要接收的报文二进制ID录入过滤器掩码矩阵,将对应的报文周期作为需要接收的报文二进制ID的权值;将存在的车身报文ID中的无用报文ID转换成二进制,并将转换后的无用报文二进制ID录入过滤器掩码矩阵,将对应的报文周期的倒数作为无用报文二进制ID的权值;在需要接收的报文二进制ID中查找仅有目标数量个bit位不同的需要接收的报文二进制ID,得到目标数量个bit位不同的需要接收的报文二进制ID组合,直至得到预设数量个需要接收的报文二进制ID组合;根据各需要接收的报文二进制ID组合确定对应的需要接收的报文二进制ID组合对应的过滤器掩码,并根据各需要接收的报文二进制ID组合中各需要接收的报文二进制ID的权值计算对应的过滤器掩码的初始权值;根据无用报文二进制ID和无用报文二进制ID的权值对对应的过滤器掩码的初始权值进行修正,得到过滤器掩码的目标权值;在预设数量个过滤器掩码中筛选得到多组过滤器掩码组合,并根据每组过滤器掩码组合中所包含的过滤器掩码的目标权值对每组过滤器掩码组合进行评分,得到各组过滤器掩码组合的组合评分;根据各组过滤器掩码组合的组合评分确定目标过滤器掩码组合,以通过目标过滤器掩码组合中所包含的目标过滤器掩码对对应的过滤器进行配置,进而实现对对应的接收邮箱所接收的报文的过滤。

可选地,目标数量个为从1个到N个的遍历,其中,N为过滤器的位数。

可选地,该装置还用于:根据存在的车身报文ID、需要接收的报文ID和需要外发的报文ID确定存在的车身报文ID中的无用报文ID;负载平衡计算单元还用于:将每个需要接收的报文二进制ID组合中各需要接收的报文二进制ID的权值的和作为对应的过滤器掩码的初始权值。

可选地,负载平衡计算单元还用于:在每组过滤器掩码组合中,Rx Msg

本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

如图3所示,本申请实施例提供的一种电子设备600,包括:处理器601、存储器602和总线,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线通信,所述处理器601执行所述机器可读指令,以执行如上述邮箱过滤器的掩码计算方法的步骤。

具体地,上述存储器602和处理器601能够为通用的存储器和处理器,这里不做具体限定,当处理器601运行存储器602存储的计算机程序时,能够执行上述邮箱过滤器的掩码计算方法。

处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。

对应于上述邮箱过滤器的掩码计算方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述邮箱过滤器的掩码计算方法的步骤。

本申请实施例所提供的邮箱过滤器的掩码计算装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

再例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述邮箱过滤器的掩码计算方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

技术分类

06120116546063