RS-232 serial communication allows simple connections in three configurations:
TD to RD
RD to TD
GND to GND
Both sides must have the same baud rate, parity, and stop bits. Although this method is sufficient for most applications, it is limited when one side is not ready to receive data or is overloaded. This is where handshaking can help.
Two forms of handshaking are popular:
Hardware
XON/XOFF
Hardware handshaking uses the CTS/RTS lines, with one being output and the other input. When the receiver is ready to receive data, it asserts the RTS line. The RTS line is then read by the sender in the CTS line indicating that data can now be sent.
XON/XOFF handshaking is a software handshaking protocol that enables the receiver to send a character XOFF (19) directing the sender to temporarily suspend transmission. Once the receiver is ready to receive, it sends XON (17) to resume communication. The biggest drawback to XON/XOFF handshaking is that decimal 17 and 19 are not available to be used for data.