2007 Microchip Technology Inc.
DS21664D-page 23
MCP2502X/5X
4.3.2
OUTPUT MESSAGES
The data frame sent in response to the information
request message is defined as an output message.
If the data fame is in response to a remote frame, it will
have the same identifier (standard or extended) and
contain the same number of data bytes specified by the
DLC of the remote frame (per the CAN 2.0B
specification).
If the output message is in response to a data frame,
the lower-three LSb’s of the identifier (standard or
extended) must be the same as the received message,
as well as the upper-seven MSb’s in the case of a
standard identifier, or the upper 25 MSb’s in the case of
an extended identifier. Bit 3 of a standard or extended
identifier of the output message will differ from the
received information request message in that the value
equals ‘1’ for an IRM and equals ‘0’ for the resulting
output message.
Output messages contain the requested data (in the
data
field).
Example:
The
information
request
message Read CAN error is a remote transmit request
received by the MCP2502X/5X with a DLC of 3. The
responding output message will return a data frame
that contains the same identifier (standard or extended)
as the receive message. The accompanying data bytes
will contain the values of the predefined GPIO registers
and related control/status registers, as shown in
4.3.3
INPUT MESSAGES
Input messages are received into receive buffer 1 and
are used to change the values of the pre-defined
groups of registers. There is also an input message
that can change a single register’s contents. The
primary purpose of input messages are to reconfigure
MCP2502X/5X parameters (if needed) while in an
operating CAN system and are, therefore, optional in
system implementation. These messages are in the
form of standard (or extended) data frames (per the
CAN 2.0B specification) that have identifiers which
pass the MCP2502X/5X’s mask/filter process (using
RXF1). After passing the mask and filter, the lower-
three
bits
of
the
standard
identifier
(RXF1SIDL.SID2:SID0) will indicate which register(s)
are to be written. The values for the register(s) are
contained in the data byte registers as defined in
4.4
Dynamic Message Handling
The design insures that transmit and receive messages
are
handled
properly
for
variable
bus-loading
conditions and different transmit/receive combinations.
4.4.1
MESSAGE ACCEPTANCE/
REJECTION
Messages received that meet the Mask/RXFn criteria
are then compared to the requirements for input
messages or IRMs, as determined by the filter used to
accept the message. If the message meets the
requirements of one of the associated input or
information request messages, the appropriate actions
for that message function are taken.
4.4.2
RECEIVING MULTIPLE MESSAGES
The MCP2502X/5X can only receive and process one
message at a time. While the MCP2502X/5X should
have ample time to process any received message
before another is completely received, a second
message received before the first message is finished
processing will be lost.
However, the MCP2502X/5X has the ability to notify the
network if a message is lost. TXID1 can be configured
to transmit a message if a receive overflow occurs
(OPTREG2.CAEN = 0).
Note: If the DLC of the incoming remote frame
differs
from
the
message
definitions
resulting output message will limit itself to the
erroneous
DLC
that
was
received
(to
maintain compliance with the Bosch CAN
specification). The output message will
concatenate the number of data bytes for an
erroneous DLC that is less than the defined
number. For an erroneous DLC that is
greater
than
the
defined
number,
the
MCP2502X/5X will extend the number of
data bytes, with the data value of the last
defined data byte being repeated in the extra
bytes in the data field.
Note: If using more than one controlling node, the
MCP2502X/5X must be set up to accept
input messages with different identifiers in
order to avoid possible message collisions in
the DLC or data bytes if transmitted at the
same time.
Note 1: IRMs can theoretically be sent by more
than one controlling node because the
message is a predefined constant and
destructive collisions will not occur.
2: The number of data bytes in an input
message must match the DLC number as
user specifies and transmits an input
message with a DLC that is less than the
required number of data bytes, the
MCP25020 will operate on corrupted data
for the bytes that it did not receive and
unknown results will occur.