一种标识符接收滤波器的配置方法及装置与流程

文档序号:12729376阅读:390来源:国知局
一种标识符接收滤波器的配置方法及装置与流程

本发明涉及报文接收领域,尤其涉及一种标识符接收滤波器的配置方法及装置。



背景技术:

如图1所示,采用CAN总线技术进行通信时,CAN总线最大的特点是任一节点所发送的数据信息不包括发送节点和接收节点的物理地址,发送端根据标识符进行优先级仲裁,接收端根据标识符进行滤波,当接收端接收到报文信息时,利用接收滤波器判断报文是否与本节点相关,若相关则接收此报文,若不相关则丢弃次报文。因此,在实际应用时,需要通过对标识符接收滤波器进行配置,进而对接收到的报文进行滤波。

现有技术中,通常采用手动或者海明距离法对标识符接收滤波器进行配置,采用手动的方法效率低且易出错;而采用海明距离法可能会出现同一报文通过多个接收滤波器的现象,从而导致滤波过程出错。



技术实现要素:

有鉴于此,本发明实施例公开了一种标识符接收滤波器的配置方法及装置,解决了现有技术中同一报文通过多个接收滤波器的现象,并提高了滤波效率。

本发明实施例公开了一种标识符接收滤波器的配置方法,包括:

判断接收到的报文中标准帧和扩展帧的总数是否大于预设的接收滤波器的数量;

若大于预设的接收滤波器的数量,判断接收到的报文中是否包含网络管理报文;

若包含网络管理报文,从预设的接收滤波器中为所述网络管理报文分配一组接收滤波器,并依据获得的所述网络管理报文的基地址和节点数量对网络管理接收滤波器中的接收寄存器和掩码寄存器进行配置;其中,所述网络管理接收滤波器为分配给所述网络管理报文的接收滤波器;

依据非网络管理报文中标准帧或者扩展帧占所述非网络管理报文的比例以及所述非网络管理接收滤波器的数量,分别计算为所述非网络管理报文中标准帧和扩展帧分配的非网络管理接收滤波器的数量;其中,所述非网络管理报文为所述接收到的报文中除所述网络管理报文之外的报文,所述非网络管理滤波器为所述预设的接收滤波器中除网络管理滤波器之外的接收滤波器;

依据非网络管理报文中各个标准帧对应的标识符的大小和为所述非网络管理报文中标准帧分配的非网络管理接收滤波器的数量,将所述非网络管理报文中的标准帧进行分组,并依据非网络管理报文中各个扩展帧对应的标识符的大小和为所述非网络管理报文中扩展帧分配的非网络管理接收滤波器的数量,将所述非网络管理报文中的扩展帧进行分组,并为每组分配一个非网络管理接收滤波器;

依据预设的配置规则和分配给每个非网络管理接收滤波器的各个报文的标识符,对每组非网络管理接收滤波器的接收寄存器和掩码寄存器进行配置。

可选的,所述从预设的接收滤波器中为所述网络管理报文分配一组接收滤波器,并依据获得的所述网络管理报文的基地址和节点数量对网络管理接收滤波器中的接收寄存器和掩码寄存器进行配置,包括:

将所述网络管理报文的基地址作为所述网络管理接收滤波器中接收寄存器的值;

依据所述节点数量对所述网络管理接收滤波器中掩码寄存器的值进行配置,以使所述网络管理接收滤波器能够接收所有节点发送的网络管理报文。

可选的,所述依据非网络管理报文中标准帧或者扩展帧占所述接收到的非网络管理报文的比例以及所述非网络管理接收滤波器的数量,分别计算为所述非网络管理报文中标准帧和扩展帧分配的非网络管理接收滤波器的数量,包括:

依据所述非网络管理报文中标准帧占所述非网络管理报文的比例等于分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量占所述非网络管理接收滤波器的数量的比例,计算分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量;

将所述非网络管理接收滤波器的数量减去分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量,得到分配给所述非网络管理报文中扩展帧的非网络管理接收滤波器的数量。

可选的,所述依据预设的配置规则和分配给每个非网络管理接收滤波器的各个报文的标识符,对每组非网络管理接收滤波器的接收寄存器和掩码寄存器进行配置,包括:

将每个非网络管理接收滤波器对应的各个报文中最小的标识符作为对应的非网络管理接收滤波器中接收寄存器的值;

对每个非网络管理接收滤波器对应的各个报文的标识符进行异或计算,得到每个接收滤波器中掩码寄存器的值。

可选的,所述判断接收到的报文中标准帧和扩展帧的总数是否大于预设的接收滤波器的数量,之后还包括:

若接收到的报文中标准帧和扩展帧的总数不大于预设的接收滤波器的数量,在预设的接收滤波器中为每一个报文分配一组接收滤波器。

可选的,还包括:

将每个报文对应的标识符的值作为每个报文对应的接收滤波器中接收寄存器的值;

依据预设的规则对掩码寄存器进行设置,以使每个接收滤波器只能接收报文的标识符的值与相对应的接收寄存器的值一致的报文。

本发明实施例公开了一种标识符接收滤波器的配置装置,所述装置包括:

数量判断单元,用于判断接收到的报文中标准帧和扩展帧的总数是否大于预设的接收滤波器的数量;

网络管理报文判断单元,用于若大于预设的接收滤波器的数量,判断接收到的报文中是否包含网络管理报文;

网络管理接收滤波器配置单元,用于若包含网络管理报文,从预设的接收滤波器中为所述网络管理报文分配一组接收滤波器,并依据获得的所述网络管理报文的基地址和节点数量对网络管理接收滤波器中的接收寄存器和掩码寄存器进行配置;其中所述网络管理接收滤波器为分配给所述网络管理报文的接收滤波器;

比例分组单元,用于依据非网络管理报文中标准帧或者扩展帧占所述非网络管理报文的比例以及所述非网络管理接收滤波器的数量,分别计算为所述非网络管理报文中标准帧和扩展帧分配的非网络管理接收滤波器的数量;其中,所述非网络管理报文为所述接收到的报文中除所述网络管理报文之外的报文,所述非网络管理滤波器为所述预设的接收滤波器中除网络管理滤波器之外的接收滤波器;

位分组单元,用于依据非网路管理报文中各个标准帧对应的标识符的大小和为所述非网络管理报文中标准帧分配的非网络管理接收滤波器的数量,将所述非网络管理报文中的标准帧进行分组,并依据非网路管理报文中各个扩展帧对应的标识符的大小和为所述非网络管理报文中扩展帧分配的非网络管理接收滤波器的数量,将所述非网络管理报文中的扩展帧进行分组,并为每组分配一个非网络管理接收滤波器;

非网络管理接收滤波器配置单元,用于依据预设的配置规则和分配给每个非网络管理接收滤波器的各个报文的标识符,对每组非网络管理接收滤波器的接收寄存器和掩码寄存器进行配置。

可选的,所述网络管理接收滤波器配置单元,包括:

将所述网络管理报文的基地址作为所述网络管理接收滤波器中接收寄存器的值;

依据所述节点数量对所述网络管理接收滤波器中掩码寄存器进行配置,以使所述网络管理接收滤波器能够接收所有节点发送的网络管理报文。

可选的,所述比例分组单元,包括:

标准帧分配子单元,用于依据所述非网络管理报文中标准帧占所述非网络管理报文的比例等于分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量占所述非网络管理接收滤波器的数量的比例,计算分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量;

扩展帧分配子单元,用于将所述非网络管理接收滤波器的数量减去分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量,得到分配给所述非网络管理报文中扩展帧的非网络管理接收滤波器的数量。

可选的,所述非网络管理接收滤波器配置单元,包括:

接收寄存器配置子单元,用于将每个非网络管理接收滤波器对应的各个报文中最小的标识符作为对应的非网络管理接收滤波器中接收寄存器的值;

掩码寄存器配置子单元,用于对每个非网络管理接收滤波器对应的各个报文的标识符进行异或计算,得到每个接收滤波器中掩码寄存器的值。

本实施例中,首先判断接收到的报文中标准帧和扩展帧的总数是否大于预设的接收滤波器的数量,若大于,判断接收到的报文中是否包含网络管理报文,若包含从预设的接收滤波器中为所述网络管理报文分配一组接收滤波器,并依据获得的所述网络管理报文的基地址和节点数量对网络管理接收滤波器中的接收寄存器和掩码寄存器进行配置;然后对报文中的非网络管理报文采用比例分组法,计算分配给非网络管理报文中的标准帧和扩展帧的数量。再采用位分组算法分别对非网络管理报文中的的标准帧和扩展帧进行分组,并为每组分配一个非网络管理接收滤波器,最后依据预设的配置规则和每个非网络管理接收滤波器对应的报文的标识符对每组非网络管理接收滤波器的接收寄存器和掩码寄存器进行配置。因此,本发明实施例不仅可以按照报文功能区分报文,而且可以将网络管理报文单独进行处理,防止大范围通过其他报文,提高了滤波效果,除此之外,还有效的避免了同一报文被多个滤波器接收的问题。

附图说明

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

图1为CAN总线通信的示意图;

图2为本发明实施例提供的一种标识符接收滤波器的配置方法的流程示意图;

图3为本发明位分组算法的原理示意图;

图4为本发明实施例提供的一种标识符接收滤波器的配置装置的结构示意图。

具体实施方式

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

参考图1,示出了本发明实施例一种标识符接收滤波器的配置方法,在本实施例中,所述方法可以包括:

S101:判断接收到的报文中标准帧和扩展帧的总数是否大于预设的接收滤波器的数量。

本实施例中,需要说明的是,CAN总线进行通信时,包括发送端节点和接收端节点,由发送端节点发送报文,由接收端节点接收报文;其中,接收到的报文可以包括标准帧和扩展帧。

本实施例中,若接收到的报文中标准帧和扩展帧的总数不大于预设的接收滤波器的数量,在预设的接收滤波器中为每一个报文分配一组接收滤波器。

本实施例中,为每个报文分配了一组滤波器后,需要对每组滤波器中的接收寄存器和掩码寄存器进行配置,具体的可以包括:将每个报文对应的标识符的值作为每个报文对应的接收滤波器中接收寄存器的值;依据预设的规则对掩码寄存器进行设置,以使每个接收滤波器只能接收报文的标识符的值与相对应的接收寄存器的值一致的报文。

本实施例中,需要说明的是,对于掩码寄存器的设置需要依据具体芯片对于掩码寄存器的接收码和比较码的定义,其中,对于某些芯片将掩码寄存器的每一位1定义为接收码,将每一位0定义为比较码;而另外一些芯片,还可以将掩码寄存器的每一位0定义为接收码,将每一位1定义为比较码。当滤波器接收报文时,当掩码寄存器中某一位设置为接收码时,表示该位上报文标识符的值与该位上接收寄存器的值不进行比较,并继续判断下一位;当该位设置为比较码时,表示该位上报文的标识符的值与该位上接收寄存器的值进行比较,若该位上报文的标识符的值与该位上接收寄存器的值相同,则继续判断下一位;若该位上报文的标识符的值与该位上接收寄存器的值不相同,则不接收该报文。当判断完报文中所有标识符的值时,若报文所有位的标识符与对应位上寄存器的值相同,或者与寄存器不相同的位无需比较,则接收此报文,否则不接收。例如:当某芯片中,对掩码寄存器定义的接收码为1,比较码为0时;假设设置的掩码寄存器中第一位为1,则接收到的报文的标识符第一位无需与接收寄存器的第一位进行比较,然后继续第二位的判断;假设掩码寄存器中第二位为0,当接收寄存器第二位设置为1时,若报文的第二位的标识符为1,则继续进行下一位的判断;若报文的第二位的标识符为0,则不接收此报文。

因此,本实施例中,若要使分配给所述报文的接收滤波器只能接收与所述接收寄存器的值相同的报文,则可以将分配给该报文的接收滤波器的掩码寄存器每一位都设置为比较码。

S102:若大于预设的接收滤波器的数量,判断接收到的报文中是否包含网络管理报文。

本实施例中,CAN总线进行通信时,接收端节点接收的报文类型可以包括网络管理报文、诊断报文以及通信报文等。

S103:若包含网络管理报文,从预设的接收滤波中为所述网络管理报文分配一组滤波器,并依据获得的所述网络管理报文的基地址和节点数量对网络管理接收滤波器中的接收寄存器和掩码寄存器进行配置;其中,所述网络管理滤波器为分配给所述网络管理报文的接收滤波器。

在本实施例中,接收网络管理报文时,需要大范围的接收某一范围内的所有报文,若在此滤波器中再分配一帧非网络管理报文,有可能会导致该接收滤波器接收到不允许接收的报文,降低了滤波效果,因此在本实施例中为所有的网络管理报文分配了一组接收滤波器。

本实施例中,为接收到的网络管理报文分配了接收滤波器后,可以依据获得的所述网络管理报文的基地址和节点数量对网络管理接收滤波器中的接收寄存器和掩码寄存器进行配置,具体的可以包括:

将所述网络管理报文的基地址作为所述网络管理接收滤波器中接收寄存器的值;依据所述节点数量对所述网络管理接收滤波器中掩码寄存器的值进行配置,以使所述网络管理接收滤波器能够接收所有节点发送的网络管理报文。

举例说明:假设接收到的网络管理报文的基地址为0x400,节点数量为256,为了能接收到所有节点发送的网络管理报文,即为了可以接收0x400~0x4ff内的所有的网络管理报文,分配给所有网络管理报文的滤波器的接收寄存器的值可以为0x400,而掩码寄存器的值可以为0xff。

S104:依据非网络管理报文中标准帧或者扩展帧占所述非网络管理报文的比例以及所述非网络管理接收滤波器的数量,分别计算为所述非网络管理报文中标准帧和扩展帧分配的非网络管理接收滤波器的数量;其中,所述非网络管理报文为所述接收到的报文中除所述网络管理报文之外的报文,所述非网络管理滤波器为所述预设的接收滤波器中除网络管理滤波器之外的接收滤波器。

本实施例中,可以依据预设的比例分组算法,计算非网络管理报文中标准帧和扩展帧分别可以分配到的接收滤波器的数量,具体的可以包括:

依据所述非网络管理报文中标准帧占所述非网络管理报文的比例等于分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量占所述非网络管理接收滤波器的数量的比例,计算分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量;

将所述非网络管理接收滤波器的数量减去分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量,得到分配给所述非网络管理报文中扩展帧的非网络管理接收滤波器的数量。

举例说明:其中,非网络管理接收滤波器的数量为F,非网络管理报文中标准帧的数量为S,非网络管理报文中扩展帧的数量为E,假设分配给非网络管理报文中标准帧的非网络管理滤波器的数量为X,分配给非网络管理报文中扩展帧的非网络管理滤波器的数量为Y,其中F、S、E均为已知量,而X和Y为未知量,可以依据以下公式1)计算X,依据以下公式2)计算Y。

1)

2)Y=F-X。

S105:依据非网络管理报文中各个标准帧对应的标识符的大小和为所述非网络管理报文中标准帧分配的非网络管理接收滤波器的数量,将所述非网络管理报文中的标准帧进行分组,并依据非网络管理报文中各个扩展帧对应的标识符的大小和为所述非网络管理报文中扩展帧分配的非网络管理接收滤波器的数量,将所述非网络管理报文中的扩展帧进行分组,并为每组分配一个非网络管理接收滤波器。

举例说明:假设接收到的报文的标识符为0x31、0x51、0x23a、0x729、0x73c,其中每个标识符对应的二进制可以为0x31:00000110001,0x51:00001010001,0x23a:01000111010,0x729:11100101001,0x73c:11100111100,可以依据标识符的大小,将这些报文按照从大到小的顺序进行排序:0x73c、0x729、0x23a、0x51、0x31,然后可以对这些报文的二进制值进行比较,从高位开始,标识符同为1的报文分到一组,已经分过的报文不再进行分组,若是对非网络管理报文中的标准帧进行分组,在S104中已经获知分配给非网络管理报文中的标准帧的接收滤波器的数量,若数量为n,则将非网络管理报文中的标准帧分到n-1组后,没有被分配的报文被分配为一组,故0x31、0x51、0x23a、0x729、0x73c报文的分组可以为:第一组:0x73c和0x729;第二组:0x23a;第三组:0x51和0x31(如图3所示)。

S106:依据预设的配置规则和分配给每个非网络管理接收滤波器的各个报文的标识符,对每组非网络管理接收滤波器的接收寄存器和掩码寄存器进行配置。

S106具体的可以包括:

将每个非网络管理接收滤波器对应的各个报文中最小的标识符作为对应的非网络管理接收滤波器中接收寄存器的值;对每个非网络管理接收滤波器对应的各个报文的标识符进行异或计算,得到每个接收滤波器中掩码寄存器的值。

举例说明:假设一组滤波器对应的报文的标识符为ID1ID2ID3…IDn,其中ID1的值最小,则将ID1作为该组接收滤波器的接收寄存器的值,以0x73c和0x729为例,这两个报文被分为一组,对分配给该组的滤波器的接收寄存器和掩码寄存器进行配置时,将0x73c和0x729中较小的标识符的值作为接收寄存器的值,即接收寄存器=0x729,则掩码寄存器的值为0x15。

本实施例中,首先判断接收到的报文中标准帧和扩展帧的总数是否大于预设的接收滤波器的数量,若大于,判断接收到的报文中是否包含网络管理报文,若包含从预设的接收滤波器中为所述网络管理报文分配一组接收滤波器,并依据获得的所述网络管理报文的基地址和节点数量对网络管理接收滤波器中的接收寄存器和掩码寄存器进行配置;然后对报文中的非网络管理报文采用比例分组法,计算分配给非网络管理报文中的标准帧和扩展帧的数量。再采用位分组算法分别对非网络管理报文中的的标准帧和扩展帧进行分组,并为每组分配一个非网络管理接收滤波器,最后依据预设的配置规则和每个非网络管理接收滤波器对应的报文的标识符对每组非网络管理接收滤波器的接收寄存器和掩码寄存器进行配置。因此,本发明实施例不仅可以按照报文功能区分报文,而且可以将网络管理报文单独进行处理,防止大范围通过其他报文,提高了滤波效果,除此之外,还可以有效的避免了同一报文被多个滤波器接收的问题。

参考图4,示出了本发明实施例一种标识符接收滤波器的配置装置,在本实施例中,所述装置可以包括:

数量判断单元201,用于判断接收到的报文中标准帧和扩展帧的总数是否大于预设的接收滤波器的数量;

网络管理报文判断单元202,用于若大于预设的接收滤波器的数量,判断接收到的报文中是否包含网络管理报文;

网络管理接收滤波器配置单元203,用于若包含网络管理报文,从预设的接收滤波器中为所述网络管理报文分配一组接收滤波器,并依据获得的所述网络管理报文的基地址和节点数量对网络管理接收滤波器中的接收寄存器和掩码寄存器进行配置;其中所述网络管理接收滤波器为分配给所述网络管理报文的接收滤波器;

比例分组单元204,用于依据非网络管理报文中标准帧或者扩展帧占所述非网络管理报文的比例以及所述非网络管理接收滤波器的数量,分别计算为所述非网络管理报文中标准帧和扩展帧分配的非网络管理接收滤波器的数量;其中,所述非网络管理报文为所述接收到的报文中除所述网络管理报文之外的报文,所述非网络管理滤波器为所述预设的接收滤波器中除网络管理滤波器之外的接收滤波器;

位分组单元205,用于依据非网络管理报文中各个标准帧对应的标识符的大小和为所述非网络管理报文中标准帧分配的非网络管理接收滤波器的数量,将所述非网络管理报文中的标准帧进行分组,并依据非网络管理报文中各个扩展帧对应的标识符的大小和为所述非网络管理报文中扩展帧分配的非网络管理接收滤波器的数量,将所述非网络管理报文中的扩展帧进行分组,并为每组分配一个非网络管理接收滤波器;

非网络管理接收滤波器配置单元206,用于依据预设的配置规则和分配给每个非网络管理接收滤波器的各个报文的标识符,对每组非网络管理接收滤波器的接收寄存器和掩码寄存器进行配置。

可选的,所述网络管理接收滤波器配置单元,包括:

第一接收寄存器配置单元,用于将所述网络管理报文的基地址作为所述网络管理接收滤波器中接收寄存器的值;

第一掩码寄存器配置单元,用于依据所述节点数量对所述网络管理接收滤波器中掩码寄存器进行配置,以使所述网络管理接收滤波器能够接收所有节点发送的网络管理报文。

可选的,所述比例分组单元,包括:

标准帧分配子单元,用于依据所述非网络管理报文中标准帧占接收到的非网络管理报文的比例等于分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量占所述非网络管理接收滤波器的数量的比例,计算分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量;

扩展帧分配子单元,用于将所述非网络管理接收滤波器的数量减去分配给所述非网络管理报文中标准帧的非网络管理接收滤波器的数量,得到分配给所述非网络管理报文中扩展帧的非网络管理接收滤波器的数量。

可选的,所述非网络管理接收滤波器配置单元,包括:

接收寄存器配置子单元,用于将每个非网络管理接收滤波器对应的各个报文中最小的标识符作为对应的非网络管理接收滤波器中接收寄存器的值;

掩码寄存器配置子单元,用于对每个非网络管理接收滤波器对应的各个报文的标识符进行异或计算,得到每个接收滤波器中掩码寄存器的值。

可选的,还包括:

接收滤波器分配单元,用于若接收到的报文中标准帧和扩展帧的总数不大于预设的接收滤波器的数量,在预设的接收滤波器中为每一个报文分配一组接收滤波器。

可选的,还包括:

第二接收寄存器配置单元,用于将每个报文对应的标识符的值作为每个报文对应的接收滤波器中接收寄存器的值;

第二掩码寄存器配置单元,用于依据预设的规则对掩码寄存器进行设置,以使每个接收滤波器只能接收报文的标识符的值与相对应的接收寄存器的值一致的报文。

通过本实施例提供的装置,不仅可以按照功能区分报文,即可以将同一类型的报文用同一滤波器进行过滤,而且可以将网络管理报文单独进行处理,防止大范围通过其他报文,提高了滤波效果,除此之外,还有效的避免了同一报文被多个滤波器接收的问题。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1