Transmisi’on de datos serie
Vicente González Ruiz
November 25, 2013
Contents
1 Serial VS parallel
- Computers make use of relatively short parallel connections between
interior components, but use a serial bus to convert signals for most
external communications.
- With a serial connection, information is sent across one wire, one data bit
at a time. The 9-pin serial connector on most PCs uses two loops of wire,
one in each direction, for data communication, plus additional wires to
control the flow of information. In any given direction, data is still flowing
over a single wire.
- A parallel connection sends the bits over more wires simultaneously. In the
case of the 25-pin parallel port on your PC, there are eight data-carrying
wires to carry 8 bits simultaneously. Because there are eight wires to carry
the data, the parallel link theoretically transfers data eight times faster
than a serial connection. So based on this theory, a parallel connection
sends a byte in the time a serial connection sends a bit.
- If parallel is faster than serial, is parallel more suitable for connecting to
a WAN? In reality, it is often the case that serial links can be clocked
considerably faster than parallel links, and they achieve a higher data rate,
because of two factors that affect parallel communications: clock skew and
crosstalk interference.
- In most cases, serial communications are considerably cheaper to
implement. Serial communications use fewer wires, cheaper cables, and
fewer connector pins.
2 Closk skew
In a parallel connection, it is wrong to assume that the 8 bits leaving the sender at
the same time arrive at the receiver at the same time. Rather, some of the bits get
there later than others. This is known as clock skew. Overcoming clock skew is not
trivial. The receiving end must synchronize itself with the transmitter and
then wait until all the bits have arrived. The process of reading, waiting,
latching, waiting for clock signal, and transmitting the 8 bits adds time to the
transmission. In parallel communications, a latch is a data storage system used
to store information in sequential logic systems. The more wires you use
and the farther the connection reaches, compounds the problem and adds
delay. The need for clocking slows parallel transmission well below theoretical
expectations.
This is not a factor with serial links, because most serial links do not need
clocking. Serial connections require fewer wires and cables. They occupy less
space and can be better isolated from interference from other wires and
cables.
3 Mutual interference (crosstalk)
Parallel wires are physically bundled in a parallel cable, and signals can
imprint themselves on each other. The possibility of crosstalk across the wires
requires more processing, especially at higher frequencies. The serial buses on
computers, including routers, compensate for crosstalk before transmitting
the bits. Since serial cables have fewer wires, there is less crosstalk, and
network devices transmit serial communications at higher, more efficient
frequencies.
Serial cables can be longer than parallel cables, because there is much less
interaction (crosstalk) among the conductors in the cable.
4 Modelos de transmisi’on
- A la hora de transmitir m’as de un bit de datos existen dos posibilidades:
(1) enviar todos los bits a la vez utilizando tantos enlaces como bits o
(2) enviar los bits uno detr’as de otro. En el primer caso hablamos de
transmisi’on paralela porque muchos bits llegan hasta el receptor a la
vez, en paralelo, mientras que en el segundo caso utilizamos el t’ermino
transmisi’on serie para indicar que los bits llegan al receptor formando
una hilera.
- La transmisi’on paralela presenta la ventaja de que si existen hasta N
l’ineas de transmisi’on, el tiempo de transmisi’on serie se divide entre N,
aunque necesita N enlaces. Por este motivo se utiliza en distancias cortas
como son los buses de datos de las computadoras, impresoras, etc.
- La transmisi’on serie presenta la ventaja de que es N veces m’as barata en
t’erminos de enlace y por esto se emplea cuando las distancias que separan
el emisor y el receptor son grandes, o cuando simplemente s’olo existe un
medio de transmisi’on (por ejemplo, un enlace por radio). En redes de
computadoras, y en general, en cualquier red de transmisi’on de datos la
forma m’as frecuente de transmisi’on es la serie.
- Cuando se trata de enviar grandes cantidades de bits es normal agruparlos
en bloques que faciliten su transmisi’on. Aparecen as’i los conceptos de
car’acter y trama de datos. Un car’acter suele tener un tamaño de 8 bits y
una trama de datos suele estar formada por una secuencia de caracteres,
aunque tambi’en podemos encontrarnos casos donde los caracteres sean
s’olo de 7 bits y las tramas de una longitud arbitraria.
- Cuando los caracteres son transmitidos espor’adicamente y adem’as cada
transmisi’on puede, a priori, realizarse en cualquier instante, se dice
que la transmisi’on es as’incrona (por ejemplo, la transmisi’on que se
realiza entre un teclado y la CPU). Sin embargo, cuando los caracteres
se transmiten sin pausa (formando una trama de datos, como ocurre
por ejemplo cuando leemos un bloque de disco) se habla de transmisi’on
s’incrona de ese bloque de caracteres [2].
5 Señalizaciones bipolares
6 Sincronizaci’on
7 Delimitaci’on de tramas
- El uso de bits de sincronismo plantea un problema evidente: ¿Qu’e hacer si
aparecen dentro de los datos a transmitir? El receptor podr’ia interpretar
que algunos bits de datos son bits de sincronismo, cuando esto no es as’i.
- Para evitar este problema existen b’asicamente dos t’ecnicas:
- El recuento de caracteres, que consiste en incluir al comienzo de cada
trama un campo que indica cu’antos caracteres contiene la trama (v’ease
la Figura
3). Aqu’i se puede apreciar adem’as que es posible usar la
propia t’ecnica de recuento de caracteres para mantener
constantemente sincronizados el emisor y el receptor: cuando no
se transmiten datos se env’ian constantemente tramas vac’ias.
El principal inconveniente del recuento de caracteres radica en que es
bastante sensible al ruido de transmisi’on puesto que una alteraci’on en
un bit del campo que indica la longitud de la trama afecta a su
longitud, lo que genera inmediatamente un error de delimitaci’on de
trama. Para salir de esta situaci’on, el receptor debe buscar los bits
de sincronizaci’on iniciales que preceden a toda trama de datos
y recuperar as’i la sincronizaci’on. Un ejemplo de protocolo de
transmisi’on s’incrona que utiliza el recuento de caracteres es
el DDCMP (Digital Data Communication Message Protocol)
[4].
- La Insercci’on de delimitadores que consiste en colocar delante y detr’as
de la trama un(os) car’acter(es) especial(es) que identifique(n) el comienzo
y fin de trama. Una de las t’ecnicas m’as simples (y usadas) para la
delimitaci’on de tramas basada en la inserci’on de delimitadores es el
relleno de caracteres (character stuffing en ingl’es) que se emplea en
los protocolos serie s’incronos BISYNC (BInary SYNchronous
Communication) y PPP (Point to Point Protocol) [4]. El car’acter que
indica el comienzo de trama se denomina STX (Start of TeXt) y el que
especifica el fin, ETX (End of TeXt). Hasta aqu’i todo perfecto, pero ¿qu’e
ocurre si estos caracteres aparecen dentro de la trama de datos?
Para evitar un error de delimitaci’on de trama el emisor inserta
delante de cualquiera de estos caracteres otro car’acter especial
llamado DLE (Data Link Escape) para indicar que la trama no
acaba o comienza ah’i. Entonces, ¿qu’e ocurre si el car’acter DLE
aparece dentro de la trama de datos? Para evitar que el receptor
lo tome como un car’acter especial el emisor lo precede de otro
DLE. De esta forma, el receptor siempre que recibe un DLE lo
ignora como dato y no atiende al significado de delimitaci’on del
siguiente car’acter; sea lo que sea se trata de datos. En la Figura
4 se presenta unos ejemplos de relleno de caracteres.
La principal desventaja del relleno de caracteres es que los datos deben
organizarse en caracteres. Para evitar esta limitaci’on existe una t’ecnica
semejante pero que delimita las tramas a nivel de bits. Por esto se llama
relleno de bits o bit stuffing. Ejemplo, la t’ecnica de relleno que utiliza
en el protocolo HDLC (High-level Data Link Control) [4]. Ejemplos en la
Figura
5. En HDLC, el comienzo y el fin de cada trama se delimita mediante la
secuencia 0111 1110. Cuando esta aparece entre los datos, el emisor la
rompe insertando un 0 antes del ’ultimo 1. En otras palabras, lo que el
emisor hace es buscar y romper cualquier secuencia de m’as de 5 unos
consecutivos. As’i, el receptor no tiene problema para delimitar la
trama porque s’olo tiene que encontrar 6 unos consecutivos. De
nuevo, ¿qu’e ocurre si la secuencia 0111 110 aparece en los datos?
Como el receptor va a considerar el ’ultimo bit como un bit de
relleno, el emisor lo precede de un bit a 0. As’i la recepci’on es
correcta.
El relleno de bits tiene dos grandes ventajas. La primera de ellas es que el
overhead (exceso de datos redundantes) introducido por el protocolo de
transmisi’on para delimitar las tramas es menor que para el caso del
relleno de caracteres: el relleno genera s’olo un bit de redundancia frente a
ocho. Sin embargo, la mayor ventaja proviene de que existe la seguridad de
que en ning’un instante de la transmisi’on se emiten m’as de 6 unos
consecutivos.
8 Señalizaciones auto-reloj
- Si los bits de sincronismo sirve para determinan cu’ando comienzan a
recibirse bits, las señalizaciones auto-reloj se utilizan para estimar la
duraci’on de los bits en las transmisiones serie, especialmente en las
s’incronas.
- Si analizamos la señaliaci’on NRZL, podemos ver que los principales
problemas para el receptor llegan cuando se reciben largas series de ceros
o unos, porque mientras esto no sea as’i, la propia señalizaci’on indica
cu’ando comienzan y acaban los bits.
- Para evitar esto existen b’asicamente dos t’ecnicas:
- Emplear señalizaciones diferenciales. Por ejemplo, la señalizaci’on NRZI
(Not Return to Zero Inverted) o señalizaci’on sin retorno a nivel cero
invertida (s’olo) cambia cuando enviamos un 1, lo que aumenta las
posibilidades de sincronizaci’on durante la transmisi’on de las secuencias
de 1’s. V’ease la Figura
6.
- Transmitir la señal de sincromismo (reloj) junto con los datos, cuando el
ancho de banda disposible lo permita. Esto ocurre, por ejemplo, en la
señalizaci’on Manchester donde se env’ia una transici’on +A →−A
(donde A es el nivel m’aximo de amplitud de la señal) cada vez que
transmitimos un 0 y una transici’on −A → +A para un 1. En la Figura
7 se presenta un ejemplo de señalizaci’on Manchester.
- Tambi’en existe una versi’on diferencial conocida como señalizaci’on
Manchester diferencial (v’ease la Figura
8) donde una transici’on al principio del intervalo transmite un 0 y en la
mitad del intervalo un 1.
- Finalmente, indicar que una señalizaci’on NRZI donde en lugar de
bascular con los unos basculemos con los ceros, o una señalizaci’on AMI,
son especialmente convenientes para ser utilizadas con el relleno de
bits ya que los problemas de sincronizaci’on quedan autom’aticamente
resueltos.
9 Señalizaciones resistentes a errores
- El ruido presente en el medio de transmisi’on puede alterar la recepci’on
de la señal y para evitar esto en la medida de lo posible, se idearon
señalizaciones que ayudan al receptor a percatarse de los errores. La
idea, b’asicamente, consiste en que el ruido, cuando exista, genere
elementos de señalizacion que no est’an permitidos, haciendo posible
que el receptor se percate de ello y corriengo el correspondiente error.
Ejemplos:
- Señalizaci’on con inversi’on de marca alternada o AMI (Alternate
Mark Inversion). Utiliza la ausencia de señal para codificar un 0 y
un nivel con polaridad alternante para señalizar un 1 [5]. Como
puede verse, la media de la señal es cero y adem’as cada 1 aporta
informaci’on de sincronismo. En AMI, para que un 0 se convierta
en un 1, debe crearse un nivel de tensi’on suficiente y adem’as
cambiar la polaridad respecto del 1 anterior. V’ease la Figura
9.
- Señalizaci’on B8ZS. Semejante a AMI, pero evita la ausencia de
transiciones (y por tanto, la desincronizaci’on). Cada secuencia 0000 0000
se sustituye por 000V B0VB donde una V significa “violaci’on de la
polaridad” y una B significa “polaridad correcta” respecto de la polaridad
anterior [5, 2]. En la Figura
10 hay un ejemplo.
- Señalizaci’on HDB3. En este caso la secuencia 0000 se sustituye por B00V
si el n’umero de unos desde la ’ultima sustituci’on es par, y por 000V si es
impar [5, 2]. V’ease la Figura
11.
10 Agrupacin de bits
References
[1] Joe Campbell. Comunicaciones Serie. Gu’ia de Referencia del
Programador en C. Anaya Multimedia, 1987.
[2] Behrouz Forouzan. Introduction to Data Communications and
Networking. WCB/McGraw-Hill, 1998.
[3] Tom Perera. HISTORY, THEORY, & CONSTRUCTION OF
THE ELECTRIC TELEGRAPH W1TP TELEGRAPH & SCIENTIFIC
INSTRUMENT MUSEUMS.
http://www.chss.montclair.edu/\~{}pererat/pertel.htm, 2002.
[4] Larry L. Petterson and Bruce S. Davie. Computer Networks: A System
Approach (2nd Edition). Morgan Kaufmann, 2000.
[5] William Stallings. Comunicaciones y Redes de Computadores (6a
Edici’on). Prentice Hall, 2000.