RS232 handshaking or Flow Control (Hardware/ Software)

What is Flow Control (Handshaking)?

Flow Control is a mechanism in which a serial device controls the amount of data being transmitted
to itself. By using flow control signals, the receiver will be able to tell the sending device to pause data
transmission if the receiver is overloading.

There are two types of flow control:

  1. Software flow control - Software flow control uses two control characters: XON and XOFF

  2. Hardware flow control - Hardware flow control makes use of actual hardware signals, such as RTS / CTS, DTR / DSR.

In DTE/DCE communication, before sending the data the DTE asks permission from the DCE by setting
the RTS (Request to Send) output to high. In order to grant permission, DCE sets the CTS (Clear to
Send) output to high. The DTR (Data Terminal Ready) and DSR (Data set Ready) are other forms of
hardware flow control signals generated by devices like printers. DTR simply indicates that the device that
is being connected is ready to accept information. This signal always used in conjunction with DSR
generated by the system to control data flow.

When to use Hardware flow control and Software flow control in Lantronix Serial Device?

By default, flow control is not being enabled in all Lantronix serial devices. But anytime if the Baud rate is above 38400 software flow control or hardware flow control is recommended and if the Baud rate is more than 230400 hardware flow control should be used.


DTR - Data Terminal Ready (DTR) is a control signal in RS-232 serial communications, transmitted from data terminal equipment (DTE), such as a computer.

DSR - Data Set Ready (DSR) is a control signal in RS-232 serial communications, transmitted from Data communications equipment (DCE) example a modem.

RTS - Request To Send ( RTS) When a node wants to transmit data to another node, it sends out an RTS 'Request to Send' packet.

CTS - Clear To Send (CTS) On receiving the RTS signal the receiver node replies with a packet called CTS 'Cleared to Send' packet.