Difference between revisions of "Asynchronous serial line"
(move mark/space to ser line) |
m (→See also: +QBUS asynchronous serial interfaces) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
'''Asynchronous serial lines''' were the most common interface to computers for many decades; originally they connected printing [[terminal]]s like the [[Teletype]], and later [[video terminal]]s such as the [[VT100]]. In general, asynchronous [[serial line]] interfaces were bi-directional, using separate wires for each direction (although there are counter-examples, such as printers). | '''Asynchronous serial lines''' were the most common interface to computers for many decades; originally they connected printing [[terminal]]s like the [[Teletype]], and later [[video terminal]]s such as the [[VT100]]. In general, asynchronous [[serial line]] interfaces were bi-directional, using separate wires for each direction (although there are counter-examples, such as printers). | ||
− | There is no separate clock or other control signal; rather, the data stream itself has [[synchronization]] information, which marks the start and end of each character. | + | There were two different common electrical interface specifications, [[20mA current loop serial line interface]], and later [[EIA RS-232 serial line interface]], but they both used the same logical interface protocol at a higher layer, and differed only at the [[physical layer]] ([[voltage]], [[current]], etc). EIA supported operation through [[modem]]s, but 20mA was mostly used for local devices. |
+ | |||
+ | There is no separate [[clock]] or other control signal; rather, the data stream itself has [[synchronization]] information, which marks the start and end of each character. | ||
[[Image:AsynSerialLine.jpg|right|Transmission format]] | [[Image:AsynSerialLine.jpg|right|Transmission format]] | ||
− | Characters are sent as sequence (see image, right) of up to four fields: a 1-bit ''start'' marker; 5-8 data bits; an optional parity bit; and a ''stop'' marker of 1, 1.5 or 2 bits. The speed, data size, and parity must be externally configured into the transmitter and receiver; the stop width is set in the former. | + | Characters are sent as sequence (see image, right) of up to four fields: a 1-[[bit]] ''start'' marker; 5-8 data bits; an optional [[parity]] bit; and a ''stop'' marker of 1, 1.5 or 2 bits. The speed, data size, and parity must be externally configured into the transmitter and receiver; the stop width is set in the former. |
− | The line starts at idle; when a character is ready to be sent, one 'start' bit of space (confusingly, on an EIA interface, high voltage) marks the start of a character. The data is then sent, one bit at a time, least-significant-bit first. Finally, the appropriate number of 'stop' bits are sent as mark (low on an EIA interface). If no other characters are ready to be sent, the line is then left at idle ( | + | The line starts at idle; when a character is ready to be sent, one 'start' bit of space (confusingly, on an EIA interface, high voltage) marks the start of a character. The data is then sent, one bit at a time, least-significant-bit first. Finally, the appropriate number of 'stop' bits are sent as mark (low voltage on an EIA interface). If no other characters are ready to be sent, the line is then left at idle (space), otherwise the sending of the next character starts immediately, with another start bit. |
− | + | ==Break== | |
− | == | + | If the line is held in the 'space' state for longer than a character time, this is called a '''break''' condition, and it can be detected by the receiver and sent specially. This is often used to [[interrupt]] the computer on the other end of the line from the terminal. |
+ | |||
+ | ==Common settings== | ||
+ | |||
+ | A common setting uses 8 data bits, no parity bit, and 1 stop bit; with the required start bit, this leads to a [[character]] size, in the transmission, of exactly 10 bits, which makes throughput calculations simple (bits-per-second/10 = characters per second). | ||
− | + | A common setting for remote terminals was to force all capital letters, which only needed 5 bits per character (which did not, however have enough code points to allow for numerals, as well as the complete alphabet - 2^5=32). It was thought that it would speed throughput, but at such low data rates, the savings were not significant. | |
==UART== | ==UART== | ||
− | The complete | + | The complete [[circuit]]ry needed to originate and interpret serial line signals, including the serial-[[parallel]] conversion, was implemented in one of the first [[MSI]] [[integrated circuit|chips]], the [[Universal Asynchronous Receiver/Transmitter]] (UART). The circuitry needed to produce the [[voltage]]s and [[current]]s needed by the particular interface type was outside the chip, so a UART could be used with either [[EIA RS-232 serial line interface|EIA]] or [[20mA current loop serial line interface|20mA]] interfaces. |
+ | |||
+ | ==See also== | ||
+ | |||
+ | * [[Synchronous serial line]] | ||
+ | * [[QBUS asynchronous serial interfaces]] | ||
+ | |||
+ | ==External links== | ||
+ | |||
+ | * [https://www.tldp.org/HOWTO/html_single/Serial-HOWTO/#ss20.1 Linux Serial HOWTO] | ||
− | [[Category: | + | [[Category: Serial Lines]] |
Latest revision as of 14:06, 25 July 2024
Asynchronous serial lines were the most common interface to computers for many decades; originally they connected printing terminals like the Teletype, and later video terminals such as the VT100. In general, asynchronous serial line interfaces were bi-directional, using separate wires for each direction (although there are counter-examples, such as printers).
There were two different common electrical interface specifications, 20mA current loop serial line interface, and later EIA RS-232 serial line interface, but they both used the same logical interface protocol at a higher layer, and differed only at the physical layer (voltage, current, etc). EIA supported operation through modems, but 20mA was mostly used for local devices.
There is no separate clock or other control signal; rather, the data stream itself has synchronization information, which marks the start and end of each character.
Characters are sent as sequence (see image, right) of up to four fields: a 1-bit start marker; 5-8 data bits; an optional parity bit; and a stop marker of 1, 1.5 or 2 bits. The speed, data size, and parity must be externally configured into the transmitter and receiver; the stop width is set in the former.
The line starts at idle; when a character is ready to be sent, one 'start' bit of space (confusingly, on an EIA interface, high voltage) marks the start of a character. The data is then sent, one bit at a time, least-significant-bit first. Finally, the appropriate number of 'stop' bits are sent as mark (low voltage on an EIA interface). If no other characters are ready to be sent, the line is then left at idle (space), otherwise the sending of the next character starts immediately, with another start bit.
Break
If the line is held in the 'space' state for longer than a character time, this is called a break condition, and it can be detected by the receiver and sent specially. This is often used to interrupt the computer on the other end of the line from the terminal.
Common settings
A common setting uses 8 data bits, no parity bit, and 1 stop bit; with the required start bit, this leads to a character size, in the transmission, of exactly 10 bits, which makes throughput calculations simple (bits-per-second/10 = characters per second).
A common setting for remote terminals was to force all capital letters, which only needed 5 bits per character (which did not, however have enough code points to allow for numerals, as well as the complete alphabet - 2^5=32). It was thought that it would speed throughput, but at such low data rates, the savings were not significant.
UART
The complete circuitry needed to originate and interpret serial line signals, including the serial-parallel conversion, was implemented in one of the first MSI chips, the Universal Asynchronous Receiver/Transmitter (UART). The circuitry needed to produce the voltages and currents needed by the particular interface type was outside the chip, so a UART could be used with either EIA or 20mA interfaces.