Search code examples
can-busacceptance

why CAN hardware acceptance filter present in receive?


enter image description here

I interested in CAN HW object.

I aware of CAN Acceptance filter that in change of CAN ID filtering.

why CAN hardware acceptance filter present in receive?

When CAN message received, is CAN arbitration procedure excuted?

When CAN Message transmitted, Is CAN arbitration unnecessary?


Solution

  • Acceptance filters are used to filter received CAN messages according to their IDs, so that the firmware is not interrupted by the messages which it isn't interested in. Filters are applied after the hardware receives the message. If the message can't pass any filter, it's discarded. This prevents unnecessary hardware interrupts.

    TX side doesn't need any filters, because the firmware designer chooses what to send.

    Each node executes the CAN arbitration procedure during transmit, by sampling the bus as it transmits. If the transmitting node looses the arbitration, it stops transmitting to try again later.

    Nodes on the bus receive only the messages that won the arbitration. Arbitration process is an essential & embedded part of the CAN protocol and it's always there and necessary.