34.9.2 Rx Buffer and FIFO Element
Up to 64 Rx Buffers and two Rx FIFOs can be configured in the Message RAM. Each Rx FIFO section can be configured to store up to 64 received messages. The structure of a Rx Buffer / FIFO element is shown in the table below. The element size can be configured for storage of CAN FD messages with up to 64 bytes data field via register RXESC.
31 |
30 |
29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
R0 |
E S I |
X T D |
R T R |
ID[28:0] | ||||||||||||||||||||||||||||
R1 |
A N M F |
FIDX[6:0] |
F D F |
B R S |
DLC[3:0] | RXTS[15:0] | ||||||||||||||||||||||||||
R2 | DB3[7:0] | DB2[7:0] | DB1[7:0] | DB0[7:0] | ||||||||||||||||||||||||||||
R3 | DB7[7:0] | DB6[7:0] | DB5[7:0] | DB4[7:0] | ||||||||||||||||||||||||||||
... | ... | ... | ... | ... | ||||||||||||||||||||||||||||
Rn | DBm[7:0] | DBm-1[7:0] | DBm-2[7:0] | DBm-3[7:0] |
-
R0 Bit 31 - ESI: Error State Indicator
0 : Transmitting node is error active.
1 : Transmitting node is error passive.
-
R0 Bit 30 - XTD: Extended Identifier
Signals to the Host whether the received frame has a standard or extended identifier.
0 : 11-bit standard identifier.
1 : 29-bit extended identifier.
-
R0 Bit 29 - RTR: Remote Transmission Request
Signals to the Host whether the received frame is a data frame or a remote frame.
0 : Received frame is a data frame.
1 : Received frame is a remote frame.
Note: There are no remote frames in CAN FD format. In case a CAN FD frame was received (EDL = ‘1’), bit RTR reflects the state of the reserved bit r1.
-
R0 Bits 28:0 - ID[28:0]: Identifier
Standard or extended identifier depending on bit XTD. A standard identifier is stored into ID[28:18].
-
R1 Bit 31 - ANMF: Accepted Non-matching Frame
Acceptance of non-matching frames may be enabled via GFC.ANFS and GFC.ANFE.
0 : Received frame matching filter index FIDX.
1 : Received frame did not match any Rx filter element.
-
R1 Bits 30:24 - FIDX[6:0]: Filter Index
0-127 : Index of matching Rx acceptance filter element (invalid if ANMF = ‘1’).
Note: Range is 0 to SIDFC.LSS-1 for standard and 0 to XIDFC.LSE-1 for extended.
-
R1 Bits 23:22 - Reserved
-
R1 Bit 21 - FDF: FD Format
0 : Standard frame format.
1 : CAN FD frame format (new DLC-coding and CRC).
-
R1 Bit 20 - BRS: Bit Rate Search
0 : Frame received without bit rate switching.
1 : Frame received with bit rate switching.
-
R1 Bits 19:16 - DLC[3:0]: Data Length Code
0-8 : CAN + CAN FD: received frame has 0-8 data bytes.
9-15 : CAN: received frame has 8 data bytes.
9-15 : CAN FD: received frame has 12/16/20/24/32/48/64 data bytes.
-
R1 Bits 15:0 - RXTS[15:0]: Rx Timestamp
Timestamp Counter value captured on start of frame reception. Resolution depending on configuration of the Timestamp Counter Prescaler TSCC.TCP.
-
R2 Bits 31:24 - DB3[7:0]: Data Byte 3
-
R2 Bits 23:16 - DB2[7:0]: Data Byte 2
-
R2 Bits 15:8 - DB1[7:0]: Data Byte 1
-
R2 Bits 7:0 - DB0[7:0]: Data Byte 0
-
R3 Bits 31:24 - DB7[7:0]: Data Byte 7
-
R3 Bits 23:16 - DB6[7:0]: Data Byte 6
-
R3 Bits 15:8 - DB5[7:0]: Data Byte 5
-
R3 Bits 7:0 - DB4[7:0]: Data Byte 4
...
-
Rn Bits 31:24 - DBm[7:0]: Data Byte m
-
Rn Bits 23:16 - DBm-1[7:0]: Data Byte m-1
-
Rn Bits 15:8 - DBm-2[7:0]: Data Byte m-2
-
Rn Bits 7:0 - DBm-3[7:0]: Data Byte m-3