What is the difference between DTR / DSR and RTS / CTS flow control?

What is the difference between DTR / DSR flow control and RTS / CTS? When is each of them used? Why do we need more than one type of hardware flow control? :)

+70
protocols serial-port
Jun 05 '09 at 18:21
source share
4 answers
  • DTR - data terminal is ready
  • DSR - Dataset Ready
  • RTS - Request for Shipment
  • CTS - Clear to send

There are several ways to do something because there have never been any built-in protocols in the standards. You use any special “standard” of your equipment.

Just based on the names, RTS / CTS may seem natural. However, it is back from the needs that have evolved over time. These signals were created at the time when the terminal sent a packet transmission of a screen filled with data, but the receiver might not be ready, so there was a need for flow control. Later, the problem will be reversed, because the terminal did not keep up with the data coming from the host, but the RTS / CTS signals go in the wrong direction - the interface is not orthogonal, and there are no corresponding signals going in the opposite direction. Equipment manufacturers adapted as best they could, including using DTR and DSR signals.

EDIT

To add a little more detail, this is a two-level hierarchy, so that “officially” both must occur in order for communication to take place. The behavior is defined in the original CCITT (now ITU-T) V.28 standard.

enter image description here

DCE is a modem connecting a terminal to a telephone network. There was another piece of equipment on the telephone network that disconnected from the data network, for example. X.25.

The modem has three states: off, ready (the data set is ready for operation) and connected (detection of data carrier)

The terminal cannot do anything until the modem is connected.

When the modem wants to send data, it picks up the RTS and the modem sends a request from the CTS. The modem lowers the CTS when its internal buffer is full.

So nostalgic!

+57
Jun 05 '09 at 18:38
source share

The difference between the two is that they use different contacts. Seriously, that is. The reason they both exist is because RTS / CTS was not supposed to ever be a flow control mechanism, initially; it was for half duplex modems to coordinate transmit and receive. RTS and CTS were misused for flow control so often that they became standard.

+28
Jun 05 '09 at 18:42
source share

I added in my diap pi-pi-pi

0
07 Feb '19 at 9:23
source share

An important difference is that some UARTs (in particular, 16550) immediately stop receiving characters if their host tells them to disable DSR. In contrast, characters will still be received if the CTS is inactive. I believe that it is implied here that the DSR indicates that the device is no longer listening, and therefore sending any further characters does not make sense, while the CTS indicates that the buffer is full; the latter allows a certain amount of “skidding” when the flow control line changes state between the DTE performing the sampling and the next transmitted symbol. In (relatively) later devices that support hardware FIFO, it is possible that a series of characters may be transmitted after the DCE sets the CTS to an inactive state.

-one
Apr 01 '19 at 1:28
source share



All Articles