Serial transport

Modbus RTU frame format, CRC and timing

RTU places the Modbus protocol data unit inside a compact serial frame. Receivers identify frame boundaries from silence on the line, then use the CRC to detect transmission errors.

Frame layout

┌────────────┬────────────┬─────────────────────┬───────────────┐
│ Unit ID    │ Function   │ Function data       │ CRC-16        │
│ 1 byte     │ 1 byte     │ 0..252 bytes        │ 2 bytes       │
└────────────┴────────────┴─────────────────────┴───────────────┘
  Modbus RTU ADU: at most 256 bytes
The PDU is the function byte followed by function-specific data. RTU adds a one-byte server address before it and a two-byte CRC after it.

The unit address identifies the destination on a serial line. Address zero is reserved for broadcast requests in the serial-line model; a broadcast write is not answered. An ordinary request is directed to one unit. A response echoes the unit identifier and identifies the result through its function code and data.

The CRC is calculated across the unit address and PDU. Its low-order byte is transmitted first. Do not include an RTU CRC when examining a PDU-only example in protocol documentation.

Silence separates frames

RTU has no explicit start or end delimiter byte. The serial guide defines a frame boundary using an interval of at least 3.5 character times without communication. A gap longer than 1.5 character times between characters within a frame makes that frame incomplete under the guide's timing rules.

At baud rates above 19,200 bit/s, the guide recommends fixed values of 750 microseconds for the inter-character timer and 1.750 milliseconds for the inter-frame delay. These timing values assume the implementation can apply them accurately; actual serial adapters and operating-system scheduling can affect observed behavior.

Serial settings must match

Both ends must use compatible baud rate, parity, data bits and stop bits. A mismatch can corrupt characters or the CRC even when the wires are connected correctly. The serial guide describes an 11-bit character frame: one start bit, eight data bits and parity plus stop bits, or an equivalent no-parity arrangement.

RS-485 is a common physical layer for multi-drop serial lines, but the electrical interface does not define Modbus application behavior. Wiring, termination and biasing depend on the bus design and interface devices. Avoid connecting two active masters to the same half-duplex bus.

A practical frame check

  1. Confirm the master and target use the same serial settings.
  2. Check the destination unit identifier and confirm only one master is transmitting.
  3. Inspect the received bytes, function code and CRC before interpreting the data.
  4. Check that a complete frame has a sufficient silent interval before the next request.

For a structured diagnosis, continue to Modbus troubleshooting. For the distinction between a unit address and a register address, see register addressing.

Sources