SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Table 24-746 shows the structure of a message object.
The highlighted fields are those parts of the message object which are represented in dedicated registers. For example, the transmit request flags of all message objects are represented in centralized transmit request registers.
UMask | Msk[28:0] | MXtd | MDir | EoB | unused | NewDat | MsgLst | RxIE | TxIE | IntPnd | RmtEn | TxRqst |
MsgVal | ID[28:0] | Xtd | Dir | DLC[3:0] | Data 0 | Data 1 | Data 2 | Data 3 | Data 4 | Data 5 | Data 6 | Data 7 |
Field Name | Value | Description |
---|---|---|
MsgVal | Message valid | |
0 | The message object is ignored by the message handler. | |
1 | The message object is to be used by the message handler. | |
Note: This bit may be kept at level ‘1’ even when the identifier bits ID[28:0], the control bits Xtd, Dir, or the data length code are changed. It should be reset if the Messages Object is no longer required. The software must reset the MsgVal bit of all unused Messages Objects during the initialization before it resets the INIT bit in the DCAN_CTL register. | ||
UMask | Use acceptance mask | |
0 | Mask bits (Msk[28:0], MXtd and MDir) are ignored and not used for acceptance filtering. | |
1 | Mask bits are used for acceptance filtering. | |
Note: If the UMask bit is set to one, the message object’s mask bits have to be programmed during initialization of the message object before MsgVal is set to one. | ||
ID[28:0] | Message identifier | |
ID[28:0] | 29-bit (“extended”) identifier bits | |
ID[28:18] | 11-bit (“standard”) identifier bits | |
Msk[28:0] | Identifier mask | |
0 | The corresponding bit in the message identifier is not used for acceptance filtering (don’t care). | |
1 | The corresponding bit in the message identifier is used for acceptance filtering. | |
Xtd | Mask extended identifier | |
0 | The extended identifier bit (IDE) has no effect on the acceptance filtering. | |
1 | The extended identifier bit (IDE) is used for acceptance filtering. | |
Note: When 11-bit (“standard”) Identifiers are used for a message object, the identifiers of received data frames are written into bits ID[28:18]. For acceptance filtering, only these bits together with mask bits Msk[28:18] are considered. | ||
Dir | Message direction | |
0 | Direction = receive: On TxRqst, a remote frame with the identifier of this message object is transmitted. On reception of a data frame with matching identifier, the message is stored in this message object. | |
1 | Direction = transmit: On TxRqst, a data frame is transmitted. On reception of a remote frame with matching identifier, the TxRqst bit of this message object is set (if RmtEn = one). | |
MDir | Mask message direction | |
0 | The message direction bit (Dir) has no effect on the acceptance filtering. | |
1 | The message direction bit (Dir) is used for acceptance filtering. | |
EOB | End of block | |
0 | The message object is part of a FIFO Buffer block and is not the last message object of this FIFO Buffer block. | |
1 | The message object is a single message object or the last message object in a FIFO Buffer Block. | |
Note: This bit is used to concatenate multiple message objects to build a FIFO Buffer. For single message objects (not belonging to a FIFO Buffer), this bit must always be set to one. | ||
NewDat | New data | |
0 | No new data has been written into the data bytes of this message object by the message handler since the last time when this flag was cleared by the software. | |
1 | The message handler or the software has written new data into the data bytes of this message object. | |
MsgLst | Message lost (only valid for message objects with direction = receive) | |
0 | No message was lost since the last time when this bit was reset by the software. | |
1 | The message handler stored a new message into this message object when NewDat was still set, so the previous message has been overwritten. | |
RxIE | Receive interrupt enable | |
0 | IntPnd will not be triggered after the successful reception of a frame. | |
1 | IntPnd will be triggered after the successful reception of a frame. | |
TxIE | Transmit interrupt enable | |
0 | IntPnd will not be triggered after the successful transmission of a frame. | |
1 | IntPnd will be triggered after the successful transmission of a frame. | |
IntPnd | Interrupt pending | |
0 | This message object is not the source of an interrupt. | |
1 | This message object is the source of an interrupt. The interrupt Identifier in the interrupt register (DCAN_INT) will point to this message object if there is no other interrupt source with higher priority. | |
RmtEn | Remote enable | |
0 | At the reception of a remote frame, TxRqst is not changed. | |
1 | At the reception of a remote frame, TxRqst is set. | |
TxRqst | Transmit request | |
0 | This message object is not waiting for a transmission. | |
1 | The transmission of this message object is requested and is not yet done. | |
DLC[3:0] | Data length code | |
0 - 8 | Data frame has 0 - 8 data bytes. | |
9 - 15 | Data frame has 8 data bytes. | |
Note: The data length code of a message object must be defined to the same value as in the corresponding objects with the same identifier at other nodes. When the message handler stores a data frame, it will write the DLC to the value given by the received message. | ||
Data 0 | 1st data byte of a CAN data frame | |
Data 1 | 2nd data byte of a CAN data frame | |
Data 2 | 3rd data byte of a CAN data frame | |
Data 3 | 4th data byte of a CAN data frame | |
Data 4 | 5th data byte of a CAN data frame | |
Data 5 | 6th data byte of a CAN data frame | |
Data 6 | 7th data byte of a CAN data frame | |
Data 7 | 8th data byte of a CAN data frame | |
Note: Byte Data 0 is the first data byte shifted into the shift register of the CAN core during a reception, byte Data 7 is the last. When the message handler stores a data frame, it will write all the eight data bytes into a message object. If the data length code is less than 8, the remaining bytes of the message object may be overwritten by undefined values. |