|
RS232 es el nombre del interfaz de comunicación serie más utilizado del mundo. La norma serie está disponible en prácticamente el 99% de los ordenadores.
La norma RS232 fue originalmente diseñada para conectar terminales de datos con dispositivos de comunicación (como modems y AITs). Desde un principio, fue también utilizada para conectar casi cualquier dispositivo imaginable. Los usos de la RS232 en el entorno doméstico son muchos y ampliamente conocidos. Desde la conexión del ratón, el fax/modem, agendas electrónicas de bolsillo, impresoras serie, grabadores de memoria (tipo EPROM), digitalizadores de vídeo, radios de AM/FM, etc. La lista sólo está limitada por la imaginación de los diseñadores.
En el entorno industrial el peso de la RS232 es también muy importante. Si bien existen soluciones de comunicación serie más robustas y versátiles, como la RS422 o la RS475, la RS232 sigue siendo por su sencillez, su diseño económico y, sobre todo, por su gran difusión, la norma más frecuente. Así, es fácil ver cómo robots industriales, manipuladores, controles de todo tipo, utilizan la RS232. Existen hasta cafeterías industriales (de las utilizadas en bares y restaurantes) que disponen de una RS232 para ser conectadas a un PC e informar de cuántos cafés han hecho en el transcurso del día, permitiendo al gerente de la empresa un control de caja, estadísticas de uso, etcétera.
TRANSMISIÓN SERIE/PARALELO.
Conceptualmente una transmisión paralelo consiste en utilizar simultáneamente varios circuitos de transmisión serie. Dejando al margen problemas específicos de una transmisión en paralelo, como puede ser el efecto crosstalk o interferencia inducida de símbolos, la transmisión paralelo es el recurso lógico cuando un solo circuito no proporciona un ancho de banda suficiente. Si en un diseño, un problema de transmisión puede resolverse (a coste similar) con una transmisión serie, esta opción es en principio deseable frente a una paralelo. Piénsese que en una transmisión con múltiples circuitos la probabilidad de fallo de línea y la necesidad de mantenimiento es proporcional al número de líneas utilizadas.
TRANSMISIÓN SÍNCRONA/ASÍNCRONA.
Independientemente de si la transmisión es serie o paralelo, ésta puede ser síncrona o asíncrona. Para entender la diferencia es interesante fijarse en la etimología de las palabras. Ambas vienen del griego cronos -tiempo (reloj)-. Síncrona significa "mismo reloj" y asíncrona lo contrario, es decir, relojes distintos.
Entre dos equipos, emisor y receptor, existe un problema básico en la identificación de los distintos símbolos (bits en este caso) que se transmiten por una línea de transmisión. Supongamos dos computadores A y B, y una línea de transmisión por la que se comunican. Supongamos que A manda a B 50 bits a una velocidad de 1000 bits/segundo. Esto quiere decir que cada bit estará en la línea de transmisión una milésima de segundo. La máquina B necesita conocer este dato y necesita un reloj, o base de tiempos, que le permita medir con precisión esa milésima de segundo para saber cuándo está en la línea el segundo bit, el tercer bit, etcétera. El lector debe conocer que la forma normal en que el equipo receptor decide si un bit es "0" o "1" es muestreando (haciendo un muestreo de) la línea de transmisión durante el intervalo del bit, preferiblemente a mitad del intervalo.
Es evidente que si el reloj utilizado por el receptor no mide el tiempo con precisión y la secuencia de bits es lo suficientemente larga, entonces cometerá un error en el muestreo de la línea e identificará una secuencia de bits incorrecta. Si, por ejemplo, el reloj receptor atrasa y cuando indica al sistema que ha pasado 1mseg en realidad ha pasado 1,1mseg (un error del 10%, sin duda un poco exagerado) entonces se producirá un primer error de muestreo en el 6º a 7º bit transmitido (si asumimos que el primer bit lo muestreó correctamente en el centro del intervalo del bit) (ver figura).
La figura muestra claramente cuál es el problema. Debe quedar claro que aunque el planteamiento del ejemplo hace culpable al reloj del receptor, en una situación real encontraremos que, de usar dos relojes, es imposible garantizar que ambos midan el tiempo exactamente igual. Y aunque el error entre ambos sea mucho menor, nótese que si la secuencia de bits es lo suficientemente larga, el error de muestreo terminará por ocurrir.
En la transmisión síncrona... ¿cómo se hace para que ambos computadores usen un único reloj?
1. Si se utiliza el reloj de una de las dos máquinas (o un reloj tercero) se puede transmitir la señal de reloj por una línea auxiliar a la otra máquina. La figura muestra como a partir de la señal de reloj el muestreo es siempre exacto.
2. El emisor puede utilizar una codificación para los datos de las denominadas "auto-reloj", como por ejemplo el código Mánchester (utilizado p.e. en redes locales Ethernet).
La figura muestra una secuencia de bits codificada en código Mánchester.
Se puede observar que la codificación Mánchester tiene la propiedad de que existe siempre una transmisión en la mitad del intervalo del bit. El receptor aprovecha esta propiedad para sincronizarse en cada bit. Es como si hubiera un reloj entre los datos que marca el ritmo del muestreó que debe hacer el receptor, de ahí el nombre de auto-reloj.
En la transmisión asíncrona,... ¿Cómo se hace para sincronizar al principio de cada carácter?
Cuando el emisor no transmite, en el periodo entre caracteres, la línea se mantiene a "1" lógico. Cuando decide transmitir un carácter, primero transmite un "0" que se denomina bit de START y sirve para que el receptor sincronice (empieza a contar tiempos desde ese momento). El instante de sincronismo es el flanco de bajada de la señal (ver figura). Tras el bit de START se transmiten los bits de datos y después es obligatorio al menos un bit de STOP a "1" lógico. La secuencia se repite tantas veces como caracteres se transmitan. Obsérvese que este mecanismo de sincronización con el bit de START impide que la deriva de muestreo por diferencias entre los relojes continúe en el siguiente carácter. Se asume que la deriva de muestreo no debe ser tan grande que provoque un error de muestreo en los bits de cada carácter.
|