尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

[AutoSar]BSW_Com016 硬件滤波、软件滤波、mask、code 配置

[AutoSar]BSW_Com016 硬件滤波、软件滤波、mask、code 配置 目录关键词平台说明一、背景二、硬件滤波和软件滤波2.1 硬件滤波2.1.1硬件滤波在vector cfg中的配置处2.2 软件滤波2.3 软件滤波和硬件滤波对比三、CanFilterCodeValue 和 CanFilterMaskValue3.1 Filter Mask3.2 Filter Code关键词嵌入式、C语言、autosar、OS、BSW平台说明项目ValueOSautosar OSautosar厂商vector EB芯片厂商TI 英飞凌编程语言CC编译器HighTec (GCC)autosar版本4.3.1回到总目录一、背景什么是CAN 滤波讲人话就是个筛选器哪些报文需要哪些不需要筛选一下就行。通过配置就可以实现上述功能。二、硬件滤波和软件滤波2.1 硬件滤波硬件滤波实现是在CAN Drv 。MCU会提通过相关存器来实现对标准11bit或者扩展29bit ID 的过滤。下图为TC3XX系列相关寄存器说明有兴趣自行查看2.1.1硬件滤波在vector cfg中的配置处2.2 软件滤波软件滤波在CANIF中通过相关配置实现。2.3 软件滤波和硬件滤波对比CPU消耗硬件滤波 软件滤波效率硬件滤波 软件滤波范围硬件滤波 2n例如0x0-0x1,0x0-0x3,0x0-0x7,0x0-0xF。软件滤波任意范围帧。三、CanFilterCodeValue 和 CanFilterMaskValue满足下面公式的报文才能通过滤波receiveID Mask Code Mask3.1 Filter Mask翻译为掩码。标准帧11bit扩展帧29bit。如果对这个bit关心则置为1否则为0.例如接收ID范围0x400–0x43F0x400 二进制0100 0000 00000x43F 二进制0100 0011 1111bit111098765432100X4000100000000000X43F010000111111mask011111000000①bit11超出范围不关心置为0。②bit10-bit8收到的报文这3bit必须为1 0 0即0x4,所以这三位都必须关心因此mask这三bit分别置为1 1 1。③bit7-bit4bit7和bit6在0x0变为0x3的过程中没有任何变化所以收到的报文这两位必须是0因此这两位必须被关心mask bit7 bit6 被置为1.而bit5 和bit6 在0x0变为0x3的过程中都被改变过所以不管收到的报文这两位是什么值我们都不必关心因此mast 的bit5和bit6 被置为0.④bit3 -bit0bit3 -bit0 在0x0变为0xF的过程中都被改变过所以不管收到的报文这四位是什么值我们都不必关心因此mast 的bit3 -bit0 被置为0.因此mask 0x7C0.3.2 Filter Code翻译为滤波区号即滤波区间码。官方手册说得有点复杂这里提供一种取巧的计算方式在保证mask计算无误的情况下用滤波范围内的任意一个值mask 就能得出code。如3.1中的0x400–0x43F取任意一个值0x4310x4310x7C0 0x400code回到总目录
返回列表