Course contentsShow
← Embedded Systems & Computer Architecture
Lesson 395 of 9365. Communication Protocols and Data TransferFree lesson

Remote Transmission Requests in CAN

Utilize the Remote Transmission Request bit to query data from a specific node, enabling a request-response communication pattern within the CAN bus architecture.

Remote Transmission Requests in CAN

In this lesson, you will learn how to use the Remote Transmission Request (RTR) bit to query data from a specific node, effectively enabling a request-response communication pattern on the CAN bus.

The Purpose of the RTR Bit

Up until now, we have looked at the CAN Data Frame as a way for a node to broadcast information to the rest of the bus. However, in many embedded systems, you don't want a sensor to constantly flood the bus with data. Instead, you want to "ask" a specific node for its current status only when you need it.

This is where the RTR bit in the CAN frame comes into play. Located within the Arbitration Field, the RTR bit acts as a toggle:

  • RTR = Dominant (0): Indicates a Data Frame. The node is providing data.
  • RTR = Recessive (1): Indicates a Remote Frame. The node is requesting data.

How it Works

When a controller (the Requester) sends a Remote Frame, it sets the RTR bit to recessive. Crucially, the Remote Frame contains the Identifier of the data the requester wants. All other nodes on the bus listen to this identifier. The node responsible for that data (the Responder) recognizes its own ID, sees the RTR bit is set, and responds by sending a standard Data Frame containing the requested information.

From a configuration perspective, setting up a Remote Frame looks conceptually like this:

// Pseudo-code to configure a Remote Frame
CAN_Frame frame;
frame.id = 0x123;         // The ID of the data we want
frame.is_remote = true;   // Sets RTR bit to 1 (Recessive)
frame.dlc = 4;            // The requester specifies how many bytes they expect
CAN_Transmit(frame);      // Send the request across the bus

Why use it?

Using Remote Frames keeps the bus clean. Instead of every sensor broadcasting data periodically—which could lead to bus congestion—you only pull data when the system logic requires it. This helps manage bandwidth efficiently, ensuring that high-priority messages can still win arbitration while non-essential data is only transmitted on demand.

Key Takeaway: The RTR bit transforms a CAN frame from a broadcast data packet into a query, allowing nodes to request specific information from others and enabling a structured request-response communication flow.