CH32FV系列CAN设备过滤器配置

描述

简介

CAN作为总线通信协议,在总线上可能会有大量的数据包同时传输,适当的过滤机制可以提升数据处理的效率,节省处理器的资源。通过配置CAN过滤器定义自己的数据接收规则,只接收和处理符合规程的CAN数据帧,规则之外的数据直接丢弃,此过程外设自动处理,尽量减少软件对报文筛选的干预。
 

 

本文仅适用于采用CH32F2x、CH32V2x、CH32V3x微控制器系列的CAN设备过滤器说明,其他微处理器也可参考本文学习。

 

以CH32V307为例,最多支持28组过滤器配置,可选16位或32位过滤模式,支持两种方式过滤(屏蔽位或标识符列表)。

16位标识符列表

表 16位列表模式

设备

RTR:1远程帧,0数据帧
 

IDE:1扩展帧,0标准帧

STID:标准帧ID

EXID:扩展帧ID

在16位标识符列表模式下,寄存器组被拆分成四个寄存器,四个寄存器都用作标识符寄存器。

 

标准ID对应表(IDE=0)

设备

扩展ID对应表(IDE=1)

设备

将CAN_FxR1[15:0]、CAN_FxR1[31:16]、CAN_FxR2[15:0]、CAN_FxR2[31:16]分别配置为0xFFE0、0x0FF0、0x1009、0x101F。第一个寄存器代表仅接收ID为7FF的标准数据帧;第二个寄存器代表仅接收ID为7F的标准远程帧,第三个寄存器代表仅接收扩展ID的28位、15位为高并且ID第27位到第16位为低的扩展数据帧,第四个寄存器代表仅接收ID的28位、第17位到第15位为高并且第27位到第18位为低的扩展远程帧。
 

设备

按上图配置CAN硬件过滤,仅可接收下述符合规则的CAN数据帧:

① ID为7FF的标准数据帧

② ID为7F的标准远程帧

③ ID为10008000到1000FFFF的扩展数据帧

④ ID为10038000到1003FFFF的扩展远程帧

16位屏蔽位模式

表 16位屏蔽位模式

设备

在16位模式下,寄存器组被拆分成四个寄存器,包含2组16位标识符寄存器和16位屏蔽寄存器。

 

ID对应关系与16位列表模式一致,只是高16位做MARK(掩码),低16位做标识符,掩码位为高时,代表接收CAN的帧对应ID应与标识符寄存器对应位一致(或帧格式一致),否则数据被过滤,反之不进行该位验证。

 

以下图为例:

设备

(1)将CAN_FxR1[15:0]配置位0x0020,CAN_FxR1[31:16]配置为0x0038,标识符寄存器的IDE与RTR为低,Mark的IDE与RTR为高,代表仅接收标准数据帧。再看标识符寄存器的STID的第0位为高,Mark也为高,代表接收奇数ID,综合一下CAN_FxR1寄存器限制CAN仅接收ID为奇数标准数据帧。

 

(2)将CAN_FxR2[15:0]配置位0xFFFF,CAN_FxR2[31:16]配置为0XFFFF,标识符寄存器的IDE与RTR为高,Mark的IDE与RTR也为高,代表仅接收扩展远程帧。CAN_FxR2[15:5]与CAN_FxR2[2:0]都为高,代表ID从15位开始到28位全部为高,同时对应的Mark也为高,代表ID在0x1FFF8000-1FFFFFFF才会被接收。

 

 

相关推荐

设备

★ CAN总线 ǀ 串口服务器

高性能CAN-Bus总线分析仪,兼容USB2.0总线全速规范,构成现场总线、工业控制、汽车电子网络等控制节点。串口服务器提供串口转网络功能,能够将串口数据转换成TCP/IP协议数据,实现串口与网络的双向透明传输。
 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分