A CAN device that supports a plurality n (where n.gtoreq.3) of message
objects, including a plurality of registers associated with each message
object, including at least one object match ID register that contains a
multi-bit object match ID field, and at least one object mask register
that contains a multi-bit object mask field; and, a CAN/CAL module that
processes incoming messages. The CAN/CAL module assembles a multi-bit
screener ID from selected bits of each incoming message to be acceptance
filtered, compares the bits comprising the screener ID with corresponding
bits of the object match ID field associated with each of at least
designated ones of the plurality n of message objects, disregarding any
bits of each object match ID field that are masked by corresponding bits
of the associated object mask field, and then determines whether any of
the comparisons results in a match. Any selected one or more bits of the
object match ID field associated with each of the plurality n of message
objects can be set to `1` or `0`, and any selected one or more bits of the
object mask field associated with each of the plurality n of message
objects can be set to `1` or `0` in order to mask any selected one or more
bits of the associated object match ID field, whereby the combination of
the object match ID field and the object mask field associated with each
of the plurality n of message objects constitutes a fully programmable
match and mask filter. The CAN/CAL module has the capability to perform
acceptance filtering on incoming messages constituting either standard or
extended CAN frames. If more than one match is detected, a lowest-numbered
(or, alternatively, highest-numbered) one of the message objects is
designated to be the matching message object.