0
\$\begingroup\$

Since I2C, SPI, etc all communicate bits in some serial fashion, is there an equivalent name to refer to the type of communication/protocol that occurs on the TX/RX pins (associated with UART) of a micro-controller other than "Serial" regardless of whether its voltages are TTL (3.3V,5.0V) level or RS-232?

\$\endgroup\$
2
\$\begingroup\$

The best answer is "TTL-Level RS-232-Style serial communications" Sometimes with additional specifiers (parity, no parity | 7/8/whatever bits per byte | 1/2/1.5 stop bits, etc...), but those options are defined in the standard..

RS-232, EIA-232 and TIA-232 are all the same protocol, in general. There may be minor differences in the specs, but they generally interoperate without issue. Mostly, it's just an issue of which standard body you're listening to.

In general parlance, "Serial", without additional specifiers is generally assumed to mean asynchronous serial with data patterning following the RS-232 standards, though the signaling levels can vary (generally either TTL or -12V - +12V).

Saying something goes through the UART tells you nothing, unless a specific UART on a specific chip is specified. There are UARTs out there that do all sorts of interesting, non-traditional-serial protocols.


Saying "UART Communications" is similar to saying "Vehicle Travel". Most people would probably think of a Car, until one guy shows up in a plane, the next guy a boat, and one random wacko in a giant hamster ball. They're all still vehicles, and as such all technically correct.

You should never make assumptions like that unless you know the person who says "UART" well enough to feel confident [s]he means what you think [s]he means.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ I don't think it makes any sense to reference the RS-232 standard. The standard specifies mark/space voltage levels, cable length vs. baud rate, driver impedance, and similar parameters that do not apply at all to a logic-level serial data stream. Using the term "TTL" also implies certain voltage levels that in fact need not be at traditional TTL levels. \$\endgroup\$ – Joe Hass Aug 8 '13 at 11:08
  • \$\begingroup\$ I don't think EIA-232C/D etc (was RS-232) ever mentions the actual communications protocol, just the physical layer (cables, connectors, signal allocations, line lengths and drive levels) TTL is certainly not an EIA-232 physical layer. The signal rise times and thus potential baudrates would depend on the actual electronics, cable construction and termintion. As these standards were set down many years ago they have serious deviated due to modern semiconductors and industry trends. \$\endgroup\$ – Jason Morgan Aug 8 '13 at 18:28
  • \$\begingroup\$ RS-232 is not +/-12V, is is +/-5V to +/-15V at the transmitter with +/-3V min at the receiver. \$\endgroup\$ – Jason Morgan Aug 8 '13 at 18:28
  • \$\begingroup\$ This is the correct answer. The important details come from the RS-232 standard. What is changed in this case is that we are talking about the signaling voltage and polarity not of the external cable, but rather that used used by logic devices inboard of line drivers/receivers such as the 1488/1489, their predecessors, or their successors such as the MAX232 style devices. \$\endgroup\$ – Chris Stratton Aug 8 '13 at 18:47
  • 1
    \$\begingroup\$ @Chris Stratton: Actually none of the importand details come from the TIA-EIA-232F standard, I've just checked. The TIA-EIA-232F (F is the latest revision published in 1997) standard talks about connectors, back channels, multiple channels, definitions of DTE and DCE, physical interface. Yes, it does cover timing, but is limited to 20kbps at upto 50m. I'm not going to pay $150 for the whole standard just to prove a point..... \$\endgroup\$ – Jason Morgan Aug 8 '13 at 19:08
0
\$\begingroup\$

The communications protocol used by UARTs is peculiar to UARTs, and so it is called "UART communication".

| improve this answer | |
\$\endgroup\$
  • 4
    \$\begingroup\$ What? No it's not. "UART" isn't even a word, it's an acronym for the multiple communication modes the UART can be configured to use. \$\endgroup\$ – Connor Wolf Aug 7 '13 at 23:19
  • \$\begingroup\$ @ConnorWolf: From a practical perspective, the term "UART" more specifically conveys the type of communication than any other one- or two-syllable term (there exist other async formats such as Manchester coding, so the term "async" isn't as unambiguous). \$\endgroup\$ – supercat Aug 8 '13 at 3:24
  • \$\begingroup\$ @supercat - Saying "UART" tells you about nothing. It lets you establish that the communicaiton is asynchronous. I have some MCUs where the UART supports all sorts of weird encoding. 38 KHz infrared remote protocol? Yep. Quadrature Encoder? Yep. Hell, "UART" doesn't even tell you if it's a parallel or serial interface. \$\endgroup\$ – Connor Wolf Aug 8 '13 at 7:42
  • \$\begingroup\$ @ConnorWolf: There is one format of data which is used sufficiently with UARTs that in the absence of any other qualifier applying the term "UART" to a pair of pins implies that they use that format. If a connection uses a fixed bit rate that was a power-of-two factor of 38400 or a power-of-two multiple of 57600, describing a connection as e.g. 38400-N-8-1 (pronounced "thirty-eight-four-en-eight-one") would be clear and concise, but if the baud rate does not itself suggest byte-framed asynchronous non-return-to-zero communication, I think "UART" does so clearly and concisely. \$\endgroup\$ – supercat Aug 8 '13 at 15:25
  • \$\begingroup\$ @supercat - I would agree that saying "UART comms", generally, in a purely colloquial sense, means asynchronous serial. However, using terms in their colloquial sense, particularly without noting that you're using it in it's colloquial sense, is a baaaaaad idea. \$\endgroup\$ – Connor Wolf Aug 9 '13 at 0:20
0
\$\begingroup\$

You almost have the answer in your question. It's full title would be "Duplex serial UART Communications"

UART means "Universal Asyncronous Receiver Transmitter".

Duplex because it supports either alternating or simultanous data flow directions.

Sometimes an 'S' is added - USART - when synchronous protocols are also supported. Some UARTs support more than one protocol over the same pair of pins depending on how they are configured. For example HDLC.

There are many synchchronous and asynchronous serial protocols, one of the most common is 8 Bits, No parity, one stop bit. (8N1)

As you correctly state in your question UART defines the data transport protocol, not the physical layer, the voltages or wires. Your question specifically asks about the physical link or pins comparing them to similar pins that support other serial protocols.

There is some confusion about the use of the indusctry standards RS232 or ANSI/EIA/TIA-232 (or for that matter many other physical interfaces or higher level protocol specifications) All of which talk about the signals after the pins or the way the data is interpreted at a high level.

This citation states the UART was coined by IBM in the 1960s.

| improve this answer | |
\$\endgroup\$
  • 4
    \$\begingroup\$ No, UART is the device which implements it, not the communication scheme itself. That would be "Asynchronous Serial" or something even more specific as to the timing, bit order, etc - not the user-level details such as number of bits, presence of parity, or baud rate. \$\endgroup\$ – Chris Stratton Aug 8 '13 at 2:49
  • \$\begingroup\$ @Chris Strattion. This can't be true as I've written UART interfaces in VHDL, the 'device' was an FPGA, the interface is a UART with the external presentation as a pair of TxRx pins. The UART implements Asynchronous Serial in both directions, duplex, as per my original answer. \$\endgroup\$ – Jason Morgan Aug 8 '13 at 18:33
  • \$\begingroup\$ You can chose to call what you implemented a UART, a data sheet writer at TI might choose to call it an SCI... but that is the name of the functional block, not the name of the protocol it implements. Expand the acronym - universal asynchronous receiver transmitter. Receivers and Transmitters are devices, not protocols. The protocol they happen to implement historically precedes someone combining that functionality into one chip, making it obvious that the protocol cannot be named after one particular take on the implementation, which only came later! \$\endgroup\$ – Chris Stratton Aug 8 '13 at 18:35
  • 1
    \$\begingroup\$ Don't post false claims. Your citation does not say that IBM coined the term UART in the 1960s. It's also a very amateur piece of a writing. \$\endgroup\$ – Chris Stratton Aug 8 '13 at 20:46
  • \$\begingroup\$ @JasonMorgan I've written several UART's in VHDL and I agree with Chris. The proper name of this type of protocol is "Asynchronous Serial". This web page credits Gordon Bell at Digital Equipment Corporation for inventing the first UART: en.wikipedia.org/wiki/Universal_asynchronous_receiver/… \$\endgroup\$ – user3624 Aug 8 '13 at 21:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.