All Forums
 Hardware
 Ethernet, IR, Serial, CAN and high speed data
 EIA/TIA-232 Serial Handshaking: Revision C vs. E
 Forum Locked  Topic Locked
 Send Topic to a Friend
 Printer Friendly
Author Topic  

akidder

1519 Posts

Posted - 01 May 2002 :  13:53:17  Show Profile  Email Poster
EIA/TIA-232 Serial Handshaking: Revision C vs. E

EIA/TIA-232 revision E (aka. RS-232E) reoriented the use of the serial handshaking (flow control) signals to support high-speed, peer-to-peer communications. Previous standards (e.g.RS-232C) assumed that the PC would be much faster than the device to which it was communicating. The standard was updated to RS-232E when serial communications advanced to the point that modems and printers were able to return data as fast as they received it.

This post describes the differences between the two standards and illustrates the differences with diagrams.


232C Mode

232C mode is the original specification. It expected that one side of the communications channel (the DTE) processed data significantly slower than the other (DCE, eg. a line printer or teletype). There is no handshaking on the host side (assumes it can receive data as fast as the DCE sends it).

In CE, this is called "Toggle" mode. Set fRtsControl=RTS_CONTROL_TOGGLE when configuring a serial port in CE.

Linux does not mention this mode in its drivers. The Linux code employs the symmetric operation of 232E.


232E Mode

232E mode is based on the more current EIA/TIA-232E standard, which assumes that both sides of the communications channel are high-speed devices, and that either may exceed the other's ability to process the data. Both sides of the channel can ask the other side to stop sending data.

Windows CE calls this "Handshake" mode. Set fRtsControl=RTS_CONTROL_HANDSHAKE.

Linux uses this mode in its standard drivers.


Timing Diagrams

These RS-232 handshaking timing diagrams(PDF, 11kB) illustrate the timing of these two types of handshaking.



Response Times

Note in the diagrams that it takes some time before a device will respond to a request to stop sending data. A UART will always complete sending the current data byte, but may send additional bytes before it stops.

The StrongARM UART doesn't check the CTS input while sending data; once data is in the FIFO, it is sent out in its entirety. The software drivers must trade off efficiency (filling the FIFO) with responsiveness to the CTS line.

Where quick response times and high efficiency are important, the best solution is a UART with built-in flow control hardware. We have successfully used one such UART, the 16C654, on the Graphics Master. The Linux drivers didn't even need to be updated to make use of the extended feature.


Terms and Definitions

The following terms are used in the diagrams:
  • DTE Data Terminal Equipment: Host computer

  • DCE Data Communications Equipment: Teletype, printer, terminal, modem, etc.

  • RTS Request to Send: Signal from DTE indicating it has data to transmit

  • CTS Clear to Send: Signal from DCE indicating it is ready to receive data

  • RTR Ready to Receive: RTS signal renamed in RS232E; now indicates that DTE is ready to receive data (as CTS)

  • UART Universal Asynchronous Receiver/Transmitter: Integrated circuit that serializes and buffers data for use in serial communications. May have added functions such as large FIFOs, hardware flow control and specialized interrupt flags to indicate when data is received, FIFOs are full or empty, etc.

  • FIFO First In First Out: Type of buffer used for data in the UART. Placing data in the FIFO allows the processor to work on other tasks while the data is being transmitted.



  • For related information, please see the Serial Communications topic index.

    -----------------------
    Drew Kidder
    ADS Technology Transfer


    Edited by akidder 27-Feb-2003: Edit for more general use: Add Linux information and reduce emphasis on CE. Add information about flow control timing. Update topic title. Move from CE forum to communications forum.
    Edited by akidder 20-Mar-2003: Add thumbnail drawing of document.

    rhallet

    4 Posts

    Posted - 14 May 2003 :  16:05:38  Show Profile  Email Poster
    Hello,
    So is it safe to say that the StrongARM UART doesn't support CTS?
    What is ADS's method of ensuring integrity during serial communications?

    Thanks,
    Rick

    Go to Top of Page

    akidder

    1519 Posts

    Posted - 15 May 2003 :  10:24:43  Show Profile  Email Poster
    Hi Rick. I've posted a reply at topic 950....
    Go to Top of Page
      Topic  
     Forum Locked  Topic Locked
     Send Topic to a Friend
     Printer Friendly
    Jump To:
    Eurotech Support Forums © Eurotech Inc. Go To Top Of Page
    This page was generated in 0.03 seconds. Snitz Forums 2000