为什么 CAN 硬件接受过滤器存在于接收中?

问题描述

enter image description here

我对 CAN HW 对象感兴趣。

我知道 CAN 接受过滤器改变了 CAN ID 过滤。

为什么在接收中存在 CAN 硬件接受过滤器?

当收到CAN报文时,是否执行CAN仲裁程序?

发送CAN报文时,是否不需要CAN仲裁?

解决方法

接受过滤器用于根据接收到的 CAN 报文的 ID 对其进行过滤,这样固件就不会被它不感兴趣的报文所中断。过滤器是在硬件收到报文后应用的。如果消息无法通过任何过滤器,则将其丢弃。这可以防止不必要的硬件中断。

TX 端不需要任何过滤器,因为固件设计者选择发送什么。

每个节点在发送期间通过对总线进行采样来执行 CAN 仲裁程序。如果发送节点仲裁失败,则停止发送,稍后再试。

总线上的节点只接收赢得仲裁的消息。仲裁过程是 CAN 协议必不可少的嵌入部分,它始终存在且必要。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...