A Data Frame broadcasts a message, the actual data, to the CAN bus, either due to change of an event (for example, the change of an input signal, a timer event, etc.) or as a response to a message request.
The data frame, identified by a unique message ID, may be accepted by any number of nodes in the network according to the individual application needs, but can only be transmitted by the (one and only) node associated with the data message.
Between the Start of Frame (SOF) bit and the end of the message identifier, both frames, Data Frames and Remote Frames, are absolutely identical. A Data Frame is detected by a low (dominant) RTR (Remote Transmission Request) bit.
Each receiving node in a CAN network, when detecting a low RTR bit, will now know that the received message is a Data Frame. In fact the RTR bit is part of the arbitration portion of a message frame.
The remote frame and the requested data frame use the same message identifier (see also Chapter 4.4 - Remote Frame). Both frames are distinguished by the RTR (Remote Transmission Request) bit, which is part of the arbitration field. In case a data frame and a remote frame using the same message ID try to access the bus simultaneously, the data frame will gain the bus access over the remote frame, since it uses a dominant RTR bit.
Picture 4.3.2 shows the complete Data Frame. Since the Data Frame and the Remote Frame are built very similar, a detailed description of both frames’ building stones is provided in a dedicated section, Chapter 4.5 - Message Frame Format.