Ginkgo USB-CAN过滤器的设置

[复制链接]
1048|0
手机看帖
扫描二维码
随时随地手机跟帖
junyi12|  楼主 | 2017-5-23 09:35 | 显示全部楼层 |阅读模式

Ginkgo USB-CAN过滤器的设置

设置好过滤器可以只接收对自己有用的数据,这样可以减小适配器的工作压力,也能提高数据分析效率,下面我们就针对Ginkgo USB-CAN适配器的过滤器的使用做详细说明。
Ginkgo USB-CAN过滤器有以下几个特点:
  • 每个通道最多有14个过滤器;
  • 每个过滤器可配置为屏蔽位模式或者标识符列表模式;
  • 可单独对IDE和RTR位进行屏蔽或者过滤;
  • 可以对扩展帧ID的每一位进行对比;
标识符列表模式:
这种模式设置最简单,过滤原理就是接收到的帧ID如果和设置的帧ID完全一样就接收数据,否则就不接收数据,IDE位和RTR位也会进行对比,所以其帧类型和帧格式都要一一对应才能接收,标识符列表模式下屏蔽码将不起作用。下面我们就举例说明,设置适配器工作于环回模式下,也就是自发自收,这样就不用多个适配器但也能验证其功能。
过滤器我们做如下设置:

图一
我们将验收码ID设置为1,其他都设置为0,这样设置就是说只能接收到标准ID数据帧,且ID值为1的帧,我再发送些数据测试下看实际上是不是这样的,发送的数据如下图所示:

图二
从上图我们看到我们确实只接收到了标准数据帧且ID值为1的数据。
下面我们将IDE和RTR都设置为1试试,这样设置理论上也只能接收到扩展远程帧且ID值为1的数据,过滤器设置如下:

图三
我们分别发送4种类型的帧,每种帧有多个ID值,测试结果如下图所示,由图中可看出,虽然我们发送很各种不同帧的数据,但是只接收到了我们想接收到的数据。

图四
在设置过滤器的时候有一点需要注意,当选择IDE为有效的时候,需要对帧ID类型也选择相应的类型,比如IDE设置为1的时候,帧ID类型要选择为扩展ID。
屏蔽位模式:
这种模式相对较为复杂,标识符列表模式只能接收特定ID的数据,而这种屏蔽位模式可以接收特定范围ID的数据,下面我们就以举例的方式来介绍下这种模式的用法。
比如我现在有这么一个需求,我需要接收标准ID值为0~3的所有数据,其他的数据都不接收,根据屏蔽位模式的原理,我们可以设置屏蔽码最低2位无效而高位的任何位都必须为0,其设置如下图所示:


图五
我们发送8帧ID从0到7的标准数据帧,结果发现确实只有ID为0~3的帧被接收了,如下图所示:

图六
同样,若需要接收ID的第2bit位为1的数据则可参考如下图设置:

图七
再发送一些数据后由接收到的数据可知,只要ID值的第2bit位为1则该帧被接收了,如下图所示:

图八
若我们只需要接收标准ID的远程帧,则我们可以将RTR位设置为1,其他都设置为0,如下图所示:

图九
由接收结果可知,只要是远程帧的数据都被接收到了,数据帧都没被接收,如下图所示:

图十

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

189

帖子

2

粉丝