栏目分类
发布日期:2024-12-10 15:16 点击次数:177
32位硬件过滤器与16位硬件过滤器相通具有两种步地32位记号符步地与32位屏蔽位步地。
32位和16位在使用端正上莫得太大的区别,唯独存在区别的是寄存器的ID映射区域不同,下文左证不同步地区分进行32位硬件过滤器实例分析。
32位记号符列表32位记号符步地较16位更好清醒,一个CAN_FxRx寄存器不再拆分,这么就不错更完好意思的过滤ID,比如16位寄存器无法的膨大ID的第14位到第0位进行端正匹配,而32位就不错完好意思法例ID过滤端正,比如下图列举的过滤端正:
将CAN_FxR1[31:0]为0x200002,IDE为低,RTR为高,法例仅收受设施辛勤帧,由于为设施帧,ID通过CAN_FxR1[31:21]法例为1,轮廓来看此端正订阅CAN仅收受ID为1的设施辛勤帧。
将CAN_FxR2[31:0]为0x400004,IDE为高,RTR为低,法例仅收受膨大数据帧,由于为膨大,ID通过CAN_FxR2[31:3]法例为0x80000,轮廓来看此端正订阅CAN仅收受ID为0x80000的膨大数据帧。
32位屏蔽位步地与16位屏蔽位步地端正一致,记号符寄存用具来存储端正,屏蔽位寄存用具于是否开启判断,就不再赘述。
例如评释:
将记号符寄存器CAN_FxR1[31:0]为0x200000,屏蔽位寄存器CAN_FxR2[31:0]为0x200000,屏蔽位寄存器CAN_FxR2的IDE与RTR均为低,代表不错通过设施帧、膨大帧、数据帧、辛勤帧,由于设施与膨大的ID判断的映射区域不同,分开进行分析。
• 设施帧阐发经过:记号符寄存器的CAN_FxR1[31:21]为1,何况屏蔽位寄存器的对应位也为1,代表不错收受该bit位为1的设施帧ID(即仅收受设施ID为奇数的CAN帧),轮廓前置调遣,该设置可通过设施ID为奇数的辛勤帧与数据帧。
• 膨大帧阐发经过:记号符寄存器的CAN_FxR1[31:3]为0x40000,何况屏蔽位寄存器的对应位也为1,代表不错收受第20位bit为高的膨大帧,比如ID为0x40000、0x4FFFF、0x7000等ID的膨大辛勤帧和数据帧。
通过法例IDE位可收场设施ID与膨大ID的法例,比如底下这个设置案例,法例IDE为低(记号符寄存器的IDE映射位为低,屏蔽位寄存器的IDE映射位为高)达到法例可秉承的ID类型为设施数据帧和设施辛勤帧两种的成果,再加上设施帧ID的映射区数值为0x1,屏蔽位寄存器的ID映射区也为0x1,代表该法例仅收受设施ID为奇数的数据帧与辛勤帧。
接下来的例如法例可收受的数据帧为设施ID为奇数的数据帧。
下图的例如将收受数据帧法例为膨大ID(记号符寄存器的IDE映射位为高,屏蔽位寄存器的IDE映射位为高),再加上膨大帧ID的映射区数值为0x1,法例条目也为0x01,代表下图设置仅收受膨大ID为奇数的辛勤帧与数据帧。
下图设置同期法例ID类型与帧类型,仅收受膨大ID为奇数的数据帧。
过滤器优先级不少芯片相沿多组CAN过滤器设置,比如CH32V307最多相沿28组过滤器设置,若出现某个报文数据不错通过多个过滤器的过滤,则收受邮箱中存放的过滤器编号会左证过滤器的优先级端正来决定存放哪个过滤器编号,过滤器的优先级端正如下:
①扫数32位的过滤器优先级均高于16位的过滤器;
②关于同宽度的过滤器,记号符列表的过滤器优先级高于屏蔽位步地的过滤器;
③宽度和步地齐一致的过滤器,编号小的过滤器优先级更高。