Codificacion Manchester

Embed Size (px)

Citation preview

  • Sin lugar a dudas, la comunicacin paralela en la cual se pueden enviar simultneamente varios dgitos binarios (bits) a la vez a travs de varios alambres independientes es la que ofrece la mayor rapidez posible. Esto es precisamente lo que se hace al interior de una microcomputadora, en donde a travs de un bus formado por ocho o ms lneas independientes podemos enviar informacin en forma paralela. Sin embargo, hay ocasiones en las que esto no se puede llevar a cabo. Frecuentemente queremos enviar hacia el exterior informacin digital pero no contamos con el lujo de varias lneas independientes que nos permitan enviar simultneamente dgitos binarios diferentes que representen distintos valores. Un ejemplo de ello es la lnea telefnica, en donde no contamos ni siquiera con un grupo de cuatro cables que nos permitan enviar a travs de la lnea telefnica cuatro bits a la vez. Otro ejemplo de ello es la comunicacin satelital, en donde al enviar o recibir algo de un satlite lo logramos mediante una seal electromagntica de alta frecuencia. En tales casos, nos vemos forzados a llevar a cabo la comunicacin en forma serial en donde en vez de enviar varios bits a la vez tenemos que enviar de uno en uno. En principio, esto requiere del envo simultneo de una seal de reloj que le permita al receptor saber cmo distinguir entre un bit y el siguiente. A manera de ejemplo, considrese la siguiente seal digital de 16 bits:

    0011010010101110

    Suponiendo que la seal sea enviada siguiendo un orden de izquierda a derecha, entonces se enviar primero un "0", tras lo cual se enviar otro "0", tras lo cual se enviar un "1" y despus el "1" que le sigue, seguido de un "0", y as sucesivamente. Desde el punto de vista de presencia y ausencia de voltajes en la lnea para denotar los "unos" y los "ceros", conforme avanza el tiempo esta seal mostrar el siguiente aspecto:

    Si en este diagrama de tiempos borramos los "unos" y los "ceros" que estn puestos encima de la seal digital, de cualquier forma podemos recuperar la informacin escribindola de nuevo gracias a los pulsos sincronizados de la "seal de reloj". Obsrvese que el envo de una "seal de reloj" es un complemento indispensable en la transmisin serial de una seal digital. Sin esta seal de reloj, el receptor no tiene forma alguna de saber cundo y en dnde empieza un "cero" y termina un "uno" o viceversa, como tampoco tiene forma alguna de saber cul es la duracin de cada intervalo de tiempo que subdivide a los "bits" que estn siendo enviados. Aunque a primera vista pudiera creerse que la subdivisin del tiempo puede ser extrada por el receptor del intervalo de tiempo ms corto detectado en una seal entre un "uno" y un "cero", esto no ofrece garanta alguna. En efecto, si enviamos las siguientes seales digitales de 16 bits, una tras otra:

    1111111111111111 0000000000000000 1111111100000000 0000000011111111

    y el receptor se basa nicamente en la duracin del intervalo ms corto, que correspondera a la secuencia "11111111", errneamente podra conclur que se le ha enviado una seal compuesta de tan slo 8 bits, la seal "11001001", cuando en realidad se le ha enviado una seal de 64 bits. El problema que tenemos para decodificar la seal basada en los tiempos de transmisin es el mismo que el que

  • tenan los telegrafistas de antao para comunicarse a travs de sus primitivos aparatos mediante el "cdigo Morse". (Generalmente, los telegrafistas trataban de mantener cierto "tiempo" razonable entre la transmisin de cada letra, un "tiempo razonable" que pudiera ser ledo "razonablemente" por ambos, y an as era necesario que el receptor despus de haber recibido el mensaje telegrfico retransmitiera el mensaje al que lo envi para ver si no se haba cometido error alguno. El problema que tenemos aqu es que en la transmisin de datos digitales estamos transmitiendo no el equivalente de una letra del alfabeto cada dos segundos, sino el equivalente de miles de bits de informacin a velocidad electrnica con la cual ningn humano se podra dar abasto.)

    Queda pues fuera de toda discusin la necesidad de tener que enviar una "seal de reloj" junto con la seal digital para que el receptor pueda recuperar ntegramente el mensaje. El problema estriba en que en muchas ocasiones no tenemos ni siquiera el lujo de contar con un cable extra que nos permita enviar dicha "seal de reloj". El cable telefnico consta en esencia de tan slo dos alambres, de tan slo dos lneas, un cable es usado para enviar la seal de corriente elctrica, y el otro cable es utilizado como "tierra elctrica" para recibir la corriente de retorno. No existe un tercer cable a travs del cual podamos enviar una seal de reloj.

    Entonces cmo es posible que una computadora pueda enviar y recibir una seal de Internet a travs de la lnea telefnica?

    Hay dos respuestas a este dilema.

    La primera respuesta tiene que ver directamente con la seleccin del formato con el cual estn codificados los datos binarios, lo cual requiere tratar un tema que habamos dejado pendiente hasta ahora.

    Empezaremos hablando acerca de algunos tipos de formatos usados para la codificacin de datos digitales en preparacin para su transmisin a travs de un canal de comunicaciones. Un esquema que es la representacin ms sencilla de todas es el mtodo No Regreso al Nivel Cero (Non Return to Zero Level NRZ-L) en el cual el "0" es representado como ningn voltaje (o mejor dicho, cero voltaje) y el "1" es representado por un nivel alto de voltaje. Esta es una representacin a la que ya deberamos de estar acostumbrados, puesto que es precisamente la representacin con la cual hemos construdo casi todos los diagramas de tiempo mostrados en este libro desde el principio, es el mismo formato que se ha estado utilizando en la construccin de todo los diagramas de tiempo relacionados con el comportamiento de los circuitos digitales combinatorios y secuenciales.

    Otra variante es el mtodo NRZ-I (Non Return to Zero Inverted) en la cual solo ocurre una transicin cuando aparece un "1" (un "0" no produce ningn cambio). La ventaja de este mtodo es que es ms fcil para los circuitos elctricos detectar un cambio de voltaje que estar midiendo niveles absolutos de voltajes. Este mtodo es el utilizado en las comunicaciones que se llevan a cabo en los puertos USB de las computadoras caseras. La desventaja de este mtodo es que no hay cambio alguno cuando hay una secuencia formada por puros "ceros" adems de que no lleva consigo ninguna informacin que permita al receptor sincronizar su propio "reloj" con el "reloj" con que fue construdo el dato recibido. Para superar esta deficiencia, en 1949 hizo su aparicin el esquema de codificacin Manchester, utilizado ampliamente en las redes de computadoras conectadas bajo la convencin Ethernet, en el cual se utiliza una transicin de un voltaje bajo a un voltaje alto a la mitad del bit para representar un "1" y una transicin de un voltaje alto a un voltaje bajo a la mitad del bit para representar un "0". Para lograr una codificacin Manchester, la seal NRZ-L es sometida junto con la seal de "reloj" a una operacin de OR-EXCLUSIVO, lo cual transforma a una seal codificada como NRZ-L en una seal Manchester. La ventaja del mtodo Manchester es que enva al mismo tiempo el dato y la informacin sincronizadora de los pulsos del reloj con los cuales se construy la palabra binaria, ya que tiene una transicin para cada ciclo sin

  • importar que la palabra binaria est formada por una larga secuencia de "unos" y "ceros". La enorme desventaja es que al recurrir a transiciones a la mitad de cada bit,el ancho de banda requerido para la transmisin de la seal se duplica, de modo tal que una seal codificada en formato NRZ-L que pueda ser enviada en un ancho de banda de 200 Megahertz requerir un ancho de banda de 400 Megahertz para poder ser enviada. A continuacin se muestran los tres esquemas NRZ-L, Manchester y NRZ-I:

    Una derivacin del mtodo Manchester es el esquema Manchester diferencial (differential Manchester), en el cual si un "1" es representado por una transicin, entonces el "0" es representado por dos transiciones, y viceversa. En el siguiente diagrama tenemos tres palabras binarias distintas, la palabra "000", la palabra "101" y la palabra "011", codificadas bajo el esquema "Manchester diferencial":

    Otro esquema es el esquema de Regreso a Cero (Return to Zero RZ) en el cual cada vez que aparece un "1" se eleva la seal de un nivel de voltaje bajo a un nivel de voltaje alto, tras lo cual la seal es regresada a su nivel de voltaje bajo:

  • Existen tambin otros mtodos tales como NRZ-M (Non Return to Zero Mark) en el cual la polaridad de la seal cambia cuando lo que va a ser enviado es "1" y en el cual no hay cambio alguno en la polaridad de la seal cuando lo que va a ser enviado es un "0"; y NRZ-S (Non Return to Zero Space) que trabaja igual que NRZ-M excepto que la polaridad de la seal cambia cuando lo que va a ser enviado es un "0", no habiendo cambio alguno cuando lo que va a ser enviado es un "1". A continuacin se presentan los diagramas de tiempo mostrando la palabra binaria enviada "101100101" en los formatos NRZ-L, NRZ-M y NRZ-S:

    As pues, con la seleccin de un formato de codificacin de los datos binarios como el cdigo Manchester, es posible transmitir en forma simultnea una serie de datos binarios as como los pulsos de "reloj" que permitan establecer una sincronizacin entre el transmisor y el receptor.

    La segunda respuesta al dilema de transmitir tanto los datos

    digitales como la seal sincronizadora radica en uno de los muchos trucos que hay en el costal del ingeniero electrnico. Consiste en "romper" la transmisin de la seal digital que ser enviada, subdividindola en "paquetes" iguales formados cada uno de ellos una cantidad de algo as como ocho bits (un byte), y al enviar la seal digital -bit por bit- a lo largo de la lnea injertamos entre cada "paquete" una serie de pulsos sincronizadores de alta precisin de la manera como se muestra en la siguiente figura:

    Como puede verse en este diagrama de tiempos, al inicio de las comunicaciones el transmisor enva cuatro pulsos "sincronizadores" de reloj al receptor para permitirle al receptor poder sincronizar su propio reloj con el reloj del transmisor, los cuales son

    seguidos del primer dato byte que ser enviado, la palabra 00110100, tras lo cual el receptor enva nuevamente otros cuatro pulsos "sincronizadores" para permitirle al receptor volver a sincronizar nuevamente su propio reloj con el reloj del transmisor para compensar por cualquier diferencia pequea que se haya ido acumulando debido a la imposibilidad fsica de poder construr dos relojes distintos con calibraciones idnticas. Esencialmente, desde el lado del "transmisor", lo que se est haciendo es convertir la informacin paralela que est siendo enviada por el microprocesador a informacin serial que puede ser enviada bit-por-bit a travs de

    un solo canal de intercomunicacin:

    con pulsos sincronizadores de alta precisin aadidos entre cada "paquete". Se sobreentiende que, del lado del "receptor", habr electrnica lo suficientemente precisa como para poder extraer del torrente digital que

  • le est llegando las seales de reloj con las cuales se ir "sincronizando" con el reloj del "transmisor" con el fin de poder ir reconstruyendo los datos digitales que le estn llegando en "paquetes". Tanto el transmisor como el receptor cuentan con relojes de alta precisin ajustados a la misma frecuencia. Al llegar la seal digital al receptor, lo primero que hace es "sincronizar" su reloj de alta precisin usando para ello la serie de pulsos sincronizadores que est recibiendo al inicio del mensaje. Hecho esto, una vez sincronizados los relojes de ambos, se enva la seal digital en el sobreentendido de que los unos y los ceros estarn subdivididos en el tiempo de acuerdo a lo que marcan los relojes sincronizados. En virtud de que no se est enviando una "seal de reloj" de manera independiente sino que se est incorporando dentro de la misma seal, a este modo de comunicaciones se les conoce como comunicaciones asncronas.

    De hecho, cuando una computadora se est conectando a Internet a travs de la lnea telefnica o a travs de cualquier otro medio, ya sea cable, seal satelital, o cualquier otra cosa que se llegue a inventar en el futuro, despus de marcar la lnea telefnica la computadora lo que hace es enviar una serie de pulsos preliminares con los cuales trata de que el servidor Web del otro lado se "sincronice" con su seal. Si el receptor no "entiende" el mensaje sincronizador, entonces va ajustando su propia velocidad de dilogo -su propio "reloj interno"- hacia arriba o hacia abajo segn se requiera hasta que pueda empezar a sacar sentido alguno del mensaje que est recibiendo. Esta transaccin se lleva a cabo a alta velocidad hasta que ambos llegan a un "acuerdo" y se fija una velocidad de transmisin comn en ambas vas. Como ya se dijo, es necesario estar enviando los pulsos sincronizadores entre cada "paquete" de informacin debido a que dos relojes diferentes, por precisos que sean, eventualmente se comenzarn a desfasar, porque siempre uno de ellos ser un poquito ms lento o ms rpido que el otro, aunque sea por una diezmillonsima de segundo, y cuando se estn enviando muchos datos digitales a alta velocidad, cualquier desfase se puede acumular rpidamente arruinando la recepcin de la seal.

    Puesto que el primer gran problema a resolver cuando hicieron su aparicin las computadoras de escritorio fue el tratar de intercambiar informacin a travs de la lnea telefnica, algo indispensable para la creacin de Internet, para poder llevar a cabo las primeras comunicaciones asncronas a travs de los primeros modems se dise un circuito integrado que al igual que el microprocesador ha ido evolucionando con el paso del tiempo hasta convertirse por cuenta propia en algo tan complejo como los primeros microprocesadores: el UART (acrnimo del ingls Universal Asynchronous Receiver Transmitter, que significa "Receptor Transmisor Asncrono Universal).Con el UART, dos microcomputadoras situadas en puntos remotos que tengan necesidad de comunicarse entre s lo harn bajo la siguiente configuracin:

    Como puede verse en el anterior diagrama, el proceso de intercomunicacin entre dos microcomputadoras (que en su nivel ms bsico es en realidad un proceso de intercomunicacin entre dos microprocesadores) requiere de

    dos UARTs, uno instalado cerca de cada mquina.Cuando compramos en la tienda una tarjeta de modem para darle capacidad de intercomunicacin Internet por la lnea telefnica a una computadora que an no tiene dicha capacidad, en realidad lo que estamos comprando es un sofisticado UART montado en una tarjeta de circuito impreso, junto con el programa de software driver que le permite a la computadora reconocer al modem durante el proceso de instalacin.

    As como los microprocesadores Intel 8086 y Motorola 6800 marcaron la pauta a seguir para los diseos de los microprocesadores utilizados en las computadoras

  • actuales, del mismo modo tambin hubo dos "grandes abuelos" que han marcado la pauta de los estndares a seguir en comunicaciones seriales asncronas: el UART 16450

    (tambin conocido como el circuito integrado 8250) y el UART 16550, ambos circuitos integrados de 40

    pins. A continuacin se muestra la relacin de pins para los dos:

    El empaque mostrado en ambos diseos es el tipo de encapsulamiento conocido como DIP (Dual In-line Package). El UART 16550 tambin se puede obtener comercialmente en un empaque "cuadrado" de 44 pins (11 pins colocados a cada lado del cuadrado):

    Es comn ver instalado en casi todas las computadoras de antao en muchas tarjetas de modem un UART que est implementando para su comunicacin con el mundo exterior un protocolo de comunicaciones seriales conocido como el estndard RS-232:

    En este ltimo dibujo tenemos el diseo esencial de una computadora personal (PC) de escritorio cuyo componente central es, naturalmente, un microprocesador (P)

    con sus memorias RAM y ROM. La lnea roja gruesa que podemos apreciar en el dibujo es esencialmente el bus de datos por medio del cual se pueden sacar datos tanto de la memoria RAM como de la memoria ROM para ser canalizados hacia afuera a travs del UART, bajo la coordinacin externa de otro componente esencial para que la accin del UART se pueda sincronizar con las labores llevadas a cabo por el microprocesador: el Controlador Programable de Interrupciones (simbolizado en la literatura como PIC, acrnimo del ingls Programmable Interrupt Controller).

    Un Controlador Programable de Interrupciones PIC es casi una necesidad cuando se estn implementando no slo comunicaciones seriales con el mundo exterior a travs

    de un modem sino inclusive cuando la computadora simplemente est recibiendo informacin serial de componentes que le son perifricos a la misma tales como el teclado. Cuando oprimimos una tecla en el teclado, esencialmente le estamos

  • enviando al microprocesador una seal de requisicin de interrupcin (denotada como IRQ, acrnimo de la expresin inglesa Interrupt Request) dicindole "necesito que detengas momentneamente lo que ests haciendo, porque te estoy enviando un dato que necesito que proceses de manera inmediata). Si hubiera un solo componente envindole seales de interrupcin al microprocesador, la tarea sera relativamente fcil y el mismo microprocesador podra atender estas peticiones sin perder mucho tiempo en procesarlas. Pero cuando hay varios componentes tales como un teclado, un mdem, una impresora serial, etc., todos ellos envindole seales de interrupcin al microprocesador, el microprocesador por potente que sea puede terminar muy atareado atendiendo estas requisiciones, distrayndose de sus labores principales de procesamiento de informacin. Es por ello que, con el fin de aligerar la carga de trabajo del microprocesador, se desarroll el Controlador Programable de Interrupciones, el cual se encarga de darles su prioridad respectiva a cada una de las interrupciones que se estn efectuando en el entorno del microprocesador. Como un ejemplo de un Controlador Programable de Interrupciones, podemos citar el circuito integrado 8259 diseado y comercializado originalmente por Intel, cuya relacin de pins es la siguiente:

    Este componente tambin es un circuito integrado sofisticado por dentro, como podemos verlo en el diagrama esquemtico de su lgica interna:

    Esencialmente, el Controlador Programable de Interrupciones proporciona una interfaz entre el microprocesador y otros componentes perifricos que requieran la atencin del microprocesador, entre ellos el UART. A continuacin tenemos un

    bosquejo de cmo la seal de interrupcin enviada por un UART 16550 es canalizada a travs del Controlador Programable de Interrupciones 8259 hacia un microprocesador 80x86:

  • El lector atento se habr dado cuenta de que el anterior esquema puede manejar hasta 16 requisiciones de interrupcin, desde la IRQ0 hasta la IRQ15, provenientes de hasta 16 unidades perifricas, siendo que la relacin de pins dada para el PIC 8259 nicamente tiene capacidad para poder manejar hasta ocho requisiciones de interrupcin, desde la IRQ0 hasta la IRQ7 (desde el pin 18 hasta el pin 25 en el circuito integrado mostrado ms arriba). Y se habr preguntado ya, de dnde viene esta capacidad extra para manejar requisicines de

    interrupcin? La respuesta a esto es sencilla: por diseo, se pueden conectar dos PICs en una configuracin Maestro-Esclavo que permite ampliar la capacidad en el manejo de seales de interrupcin. A continuacin se muestra la manera en la cual se debe llevar a cabo esta inteconexin entre dos PICs:

    Ahora puede ver claramente el lector cul es el verdadero propsito de los pins 12, 13 y 15 (CAS0, CAS1 y CAS2) en el dibujo de la relacin de pins del PIC 8259. Son pins para inteconexin en cascada para aumentar la capacidad en el manejo de seales de requisicin de

    interrupcin.

    A continuacin se muestra un diseo ms completo en donde se han interconectado en una tarjeta de circuito impreso dos PICs 8259 para aumentar la capacidad de procesamiento de requisiciones de interrupcin (como de costumbre, las lneas D0-D7 representan las lneas del bus de datos, para el manejo paralelo de informacin de los ocho bits de un byte, mientras que las lneas A0-A15 representan las lneas del bus de domicilios):

    Otro componente muy popular con un elevado nivel de integracin para auxiliar al microprocesador en su manejo de unidades perifricas es el conocido como Interfaz Programable Perifrica (simbolizada en la literatura como PPI, acrnimo del ingls Programmable IPeripheral Inteface), de la cual el circuito

  • integrado 8255 (o su equivalente el 82C55) es quiz uno de los ms conocidos. Su relacin de terminales "pins" es la siguiente:

    A continuacin tenemos otro diagrama que muestra al PPI 82C55 no con la asignacin fsica de "pins" arriba mostrada sino con las terminales reacomodadas de modo funcional para que el funcionamiento de este circuito integrado sea un poco ms comprensible:

    Como puede verse, hay tres puertos disponibles para la canalizacin paralela de datos binarios, el puerto A (port A, seleccionable con una entrada de A1A0 = 00), el puerto B (port B, seleccionable con una entrada de A1A0 = 01) y el puerto C (port C, seleccionable con una entrada de A1A0 = 10). La entrada A1A0 = 11 est reservada para girarle una instruccin a este componente para que lleve a cabo alguna de las funciones que

    puede llevar a cabo. Las lneas D0 a la D7 son para canalizar los datos de entrada o de salida de una palabra de 8 bits a travs de uno de los tres puertos. En un sistema, este componente se conectara de una manera como la siguiente:

    El siguiente diagrama nos muestra cmo se utilizara el PPI 82C55 para construr un circuito para llevar cabo la lectura de una de las 16 teclas de un teclado externo:

    Obsrvese cmo las teclas del teclado externo estn dispuestas en un arreglo rectangular de renglones (conectados independientemente a cuatro de las ocho terminales del puerto A) y columnas (conectadas independientemente a cuatro de las ocho terminales del puerto B). A su mxima capacidad, este mismo diseo se puede ampliar fcilmente para leer cada una de las teclas de un teclado de 64 teclas no muy diferente al que est usando el lector en estos momentos.

    Como el nombre del componente lo indica, el PPI 82C55 es programable. A continuacin tenemos la forma en la cual la ejecucin de las instrucciones se puede llevar a cabo:

    Como ya se mencion previamente, la entrada A1A0 = 11 est reservada para girarle una indicacin al PPI 82C55 de que una instruccin ser llevada a cabo. Al poner esta entrada, los ocho bits a la entrada del puerto A se convierten en un byte de comando (Command Byte A), y los ocho bits a la entrada del puerto B tambin se convierten en otro byte de comando (Command Byte B). Dependiendo del valor

  • que tenga cada uno de estos ocho bits en cada uno de estos dos bytes de comando, se obtendr un resultado diferente. Por ejemplo, si al bit 4 del byte de comando A se le pone un valor de 1 lgico, entonces el puerto A se convertir en un puerto para la entrada de datos, y si se le pone un valor de 0 lgico, se convertir en un puerto para la salida de datos. El bit 2 del byte de comando A es interesante, porque nos permite seleccionar uno de los modos de operacin del PPI 82C55, el cual funcionalmente puede trabajar de hasta tres modos distintos (designados por los fabricantes como mode 0, mode 1, mode 2) de acuerdo con lo que indican los siguientes diagramas:

    Existen otros controladores perifricos programables ms recientes, adems de los ya mencionados que marcaron la pauta a seguir, tales como el PIC12C508/509, el PIC16F84A, el PIC16F628 el PIC18F4550, y el PIC16F87X.

    No se entrar ms a fondo aqu en el estudio de este tipo de componentes porque ello requerira de un libro como este.

    Es importante sealar que para poder utilizar un UART con el fin de que el microprocesador pueda llevar a cabo comunicaciones seriales hacia el mundo exterior bajo un estandard de comunicaciones seriales como la norma RS-232 (en la cual el "1" lgico est especificado como un voltaje positivo de +15 volts, y el "0" lgico como un voltaje negativo de -15 volts), se requiere otro componente que pueda garantizar las conversiones elctricas de los niveles de voltaje usados por los otros componentes con los que trabaja el microprocesador (por ejemplo, los niveles de cero volts para un "0" y de +3 volts para un "1" con que funcionan los circuitos integrados TTL), un componente como el transceptor (transceiver) MAX232:

    Con la adicin de cinco capacitores externos de bajo costo especificados por el fabricante, la conversin realizada por este circuito es llevada a cabo en forma directa sin mayor ciencia:

    El diagrama funcional del circuito integrado MAX232:

    nos indica que si la terminal de entrada para convertir seales con niveles TTL/CMOS es la terminal 11 (T1IN), entonces las seales ya convertidas a niveles RS-232 se podrn obtener en la terminal 14 (T1OUT); mientras que si la terminal de entrada para convertir seales con niveles RS-232 es la terminal 13 (R1IN),

  • entonces las seales ya convertidas a niveles TTL/CMOS se podrn obtener en la terminal 12 (RIOUT). El circuito integrado proporciona otros dos pares de terminales para lograr lo mismo, los pares 10/7 (conversin TTL/CMOS a RS-233) y 8/9 (conversin RS-232 a TTL/CMOS).

    Lo interesante del circuito integrado MAX232 es que aunque puede generar las seales de voltaje RS-232 de +15 volts y -15 volts, lo puede hacer alimentado con una fuente de voltaje de +5 volts.

    A continuacin se muestra la transmisin de un byte con el cambio de niveles de voltaje en el pin de salida del UART (o y +5 volts) a los niveles de voltaje mayores (-12 volts y +12 volts) requeridos para la transmisin bajo el estndard RS-232, usando el caracter ASCII que representa a la letra "J" (B7B6B5B4B3B2B1=01001010):

    Consideraremos que el bit B0=0 est siendo usado como bit de paridad. Obsrvese que antes y despus de la transmisin del byte se requiere agregarle dos bits al dato que ser enviado:

    (1) Un bit de comienzo (START) puesto antes del byte, en este caso igual a "0".

    (2) Un bit de terminacin (STOP) puesto despus del byte, en este caso igual a "1".

    Al comienzo de la transmisin de cada byte, es necesario aadir el bit de comienzo START para hacerle saber al receptor que un byte de datos va a ser enviado, el cual le permitir al receptor poder sincronizarse con los bits posteriores. El bit de terminacin STOP proporciona un perodo de tiempo antes de que el siguiente bit de comienzo (START) sea transmitido, y tiene un nivel ( sentido) opuesto al bit de comienzo para permitirle al bit de comienzo el poder ser "visto" por el receptor. El proceso de "enmarcar" un dato entre un bit de comienzo START y un bit de terminacin STOP es conocido en la literatura tcnica como framing, y podemos representar un "marco" de la siguiente manera:

  • en donde el bit de comienzo START est representado a la izquierda de color verde, el bit de paridad que le sigue est representado de color marrn, los siete bits que representan un smbolo ASCII son de color ciano, y el bit de terminacin STOP est representado a la derecha de color rojo.

    En el siguiente diagrama esquemtico simplificado de una microcomputadora tenemos la presencia ineludible de un UART, el UART 16C550, junto con el PPI 82C55 (designado en el diagrama como un bloque funcional PIO, un acrnimo del ingls que significa Programmable Input Output, lo cual para nuestros propsitos no es ms que otra designacin para los componentes PIC y PPI utilizados en conjuncin con el UART para el manejo de las unidades perifricas), junto con el imprescindible MAX232 para el envo y recepcin de seales seriales RS-232 de y hacia equipo perifrico.

    En el captulo 5, vimos que un "0" lgico y un "1" lgico pueden estar representados no slo como la ausencia de un voltaje y la presencia de un voltaje de, digamos, +5 volts, sino tambin como un campo magntico de cierta orientacin y un campo magntico de orientacin contraria. De hecho, hay muchas otras maneras en las cuales podemos representar un "0" y un "1", tales como la ausencia y la presencia de un rayo de luz. Es as como es posible transmitir seales digitales a travs de un cable de fibras pticas en las cuales el medio de tranmisin es la luz y no un potencial elctrico. Y aunque podemos transmitir a lo largo de un alambre metlico "pulsos" de voltaje con una forma de onda cuadrada como la que hemos visto en los diagramas de tiempos (esta es precisamente la manera en la cual se llevaba a cabo la transmisin de datos a travs del telgrafo mediante el cdigo Morse), no es necesario estar limitados a este tipo de formato. La enorme flexibilidad en la forma en la cual podemos representar un "0" y un "1" nos permite elaborar otros esquemas que suelen ser mucho ms eficientes que la simple transmisin de "pulsos" de voltaje de corriente directa, los cuales de cualquier manera no pueden ser utilizados para la transmisin de datos digitales a travs de una antena transmisora hasta una antena receptora. El ejemplo ms notorio de ello es la representacin de un "1" como un "pulso" que en realidad es una onda de alta frecuencia. Esto requiere modular una seal ondulatoria continua usando el nivel de "1" lgico para convertirla en un pulso ondulatorio de alta frecuencia de una manera como la siguiente en la cual la onda portadora (carrier) del "1" es modulada por un "1" convencional produciendo un resultado modulado:

    Este esquema conocido como un esquema de modulacin de amplitud identifica una seal digital ondulatoria como un "1" lgico, y la ausencia de la misma como un "0" lgico. De este modo, un torrente continuo de informacin que empieza con la siguiente seal digital binaria mostrada de color azul siendo modulada por la seal ondulatoria de color verde producir la seal modulada de color rojo que ser transmitida hacia afuera:

    El aparato transmisor que cambia a la seal digital modulndola antes de ser transmitida recibe el nombre de modulador, mientras que el aparato receptor encargado de recuperar la seal digital removiendo su componente ondulatorio se llama demodulador. Este es precisamente el origen de la palabra modem, MODulador-DEModulador, el aparato capaz de modular seales digitales para enviarlas hacia afuera a travs de la lnea telefnica en forma de pulsos ondulatorios, y capaz tambin de demodular los pulsos ondulatorios enviados desde fuera por un transmisor, el cual era un

    aditamento externo a las computadoras caseras:

  • antes de ser incorporado adentro de las mismas computadoras cuando los constantes avances de la microelectrnica permitieron miniaturizar todos los componentes de los modems para permitir su insercin en un circuito integrado de alta densidad dentro de la tarjeta madre o como una tarjeta accesoria para ser insertada dentro de una de las ranuras especiales que muchas computadoras tienen para ello.

    Existe otro esquema que es precisamente el mismo que fue utilizado inicialmente para la transmisin de seales digitales a travs de la lnea telefnica usando para ello los primeros modems caseros: mediante seales de tonos audibles. Bajo este concepto, cuando se transmite una seal a travs del cable telefnico se hace utilizando dos ondas de frecuencias diferentes para identificar al "0" y al "1". Este esquema es conocido como modulacin de frecuencia (aunque tambin es conocido como FSK o Frequency Shift Keying), esquema en el cual la frecuencia de la seal portadora es alternada entre dos frecuencias diferentes en una manera como la que se muestra a continuacin:

    Uno de los primeros circuitos integrados utilizados justo para la construccin de los modems que empezaron operando mediante el concepto de tonos es el circuito integrado 4412 fabricado con tecnologa CMOS por la empresa Motorola:

  • Este circuito integrado hoy obsoleto que fue uno de los pioneros para la construccin a gran escala de los primeros modems (externos) trabaja de la siguiente manera: el paquete convierte datos binarios seriales ("unos" y "ceros"), usualmente enviados de y hacia un UART, en el sistema de "tonos" audibles propios para la comunicacin telefnica compatibles con el llamado "sistema 103". En el modo Originar, un "0" es transmitido como una seal con una frecuencia de 1070 Hertz (ciclos por segundo) y un "1" es transmitido como una seal con una frecuencia de 1270 Hertz. En el modo Contestar, un "0" es transmitido como una seal con

    una frecuencia de 2025 Hertz y un "1" es transmitido como 2225 Hertz. Puesto que los modems se usan en pares, el receptor responde con el grupo de tonos que no est siendo transmitido. Esta es precisamente la forma en la cual se lleva a cabo la comunicacin en servicios de Internet de baja velocidad. La entrada de la transmisin es compatible con la familia de circuitos lgicos TTL y responde a una transferencia de datos de 300 bauds o menos. La amplitud de una onda tpica de la seal de salida es de 300 milivolts rms hacia una carga resistiva de 100 mil ohms. La entrada al receptor debe provenir de un filtro activo sofisticado y bien diseado y un limitador simtrico con distorsin controlado de algo llamado el "retardo del grupo" (group delay). Esta entrada es compatible con las familias lgicas TTL y CMOS. La salida del Receptor de Datos (terminal "pin" 7) sigue a esta entrada despus del proceso de demodulacin.

    Junto con el UART podemos hablar de otro circuito integrado que adems de las capacidades para comunicaciones asncronas del UART incorpora la capacidad para poder establecer comunicaciones sncronas. Se trata del USART, cuyas siglas significan Universal Synchronous/Asynchronous Receiver-Transmitter, del cual el gran "abuelo" prototipo que marc la pauta en los diseos posteriores que habran de seguir es el 8251:

    desarrollado originalmente por la empresa Intel, cuyo diagrama funcional de bloques es el siguiente:

    Existe disponible en Internet, como una cortesa de la Universidad de Hamburgo en Alemania, un programa animado que muestra con una simulacin el funcionamiento en modo asncrono de un USART, la cual se puede accesar en el siguiente domicilio:

  • http://tams-www.informatik.uni-hamburg.de/applets/hades_________/webdemos/50-rtlib/65-usart8251/usart-transmit.html

    En esta demostracin, si hacemos "clic" sobre el "monitor" que est bosquejado en el extremo derecho del diagrama que contiene al USART 8251, aparecer una "ventana" tpica de las ventanas de texto de la poca en la que los monitores de las computadoras slo tenan capacidad para el trazado de texto sobre un fondo negro y no de grficos; y lo que se est simulando es una simple terminal receptora de texto a la cual le llega el mensaje clsico que dice "Hello, world!" (Hola, mundo!). Esta "estacin terminal" puede ser configurada en su velocidad (baud) y en la paridad que ser utilizada para la deteccin de errores (paridad par, paridad impar, o ninguna paridad). Al entrar en esta pgina se activa de inmediato el simulador de diagramas de tiempo "Hades Waveform Viewer". El botn derecho del mouse, cuando el cursor est puesto dentro de la "ventana" de simulacin del circuito, abre una lista vertical de opciones de men, en la cual el punto de inicio es la opcin "simulacin" (simulation) que nos d las tres posibilidades: stop (detener la simulacin), pause (pausar la simulacin) y run (correr la simulacin), mismas opciones que se encuentran tambin disponibles en el borde inferior de la ventana principal del simulador. Si la ventana de diagramas de tiempo "Hades Waveform Viewer" no aparece, en este men del "mouse" la podemos invocar con la opcin view de donde escogemos show waveform viewer; y con esta misma opcin la podemos seguir invocando cuantas veces sea necesario a lo largo de una simulacin. Dentro de la ventana del Hades Waveform Viewer, la punta de la flecha del cursor tiene anexadas permanentemente una lnea horizontal y una lnea vertical, las cuales nos permiten localizar en forma precisa dentro de la ventana del "Viewer" con el cursor vertical un tiempo especfico situado dentro del tiempo de la simulacin, y con el cursor horizontal uno de los parmetros (RESET, nCS, CnD, nRD, nWR, DATA, nTXC, TXD,TXRDY, TXE y nCTS) cuyo valor binario ser desplegado inmediatamente en el rengln como "Value:". Hay una lnea adicional aqu titulada "comment" en la cual se nos describe lo que est sucediendo en cierto intervalo de tiempo. Por su parte, la ventana principal en donde est el circuito (no la ventana Hades Viewer) tiene en su parte inferior un botn i para imprimir el status del simulador, un botn de doble flecha apuntando hacia la izquierda para "reajustar" el tiempo de simulacin hasta t=o, un botn de doble flecha apuntando hacia la derecha para correr la simulacin en modo "perpetuo" (interactivo) y un botn con una sola flecha apuntando hacia la derecha que nos permite seleccionar un intervalo de tiempo de simulacin, el cual tenemos que especificar previamente en la ventana numrica a su derecha as como las unidades de tiempo del intervalo de simulacin (nanosegundos, microsegundos, milisegundos, segundos, minutos, horas). Es necesario oprimir este "botn" dos veces para ir ms all del tiempo inicial de simulacin programado por el "StimuliGen" con una duracin de 0.83 segundos. Los tres "foquitos" LED a la derecha nos indican que la simulacin est detenida (foquito rojo), la simulacin est pausada (foquito amarillo), o la simulacin est corriendo (foquito verde). Se puede afirmar que esta simulacin, para haber sido elaborada con propsitos meramente educativos, es una simulacin bastantes sofisticada.

    Hasta ahora, al hablar acerca de las comunicaciones seriales lo hemos hecho teniendo en mente el protocolo de comunicacin serial basado en el estndard RS-232. Es importante sealar aqu que, en buena medida, el protocolo RS-232 para el cual fueron diseados varios de los circuitos integrados que hemos visto en este Suplemento est siendo superado por un nuevo estndard de comunicaciones seriales ms universal, el conocidsimo estndard USB (Universal Serial Bus), el cual es implementado con sus propios circuitos integrados que tambin se pueden obtener comercialmente en el mercado para el desarrollo de proyectos o la construccin de computadoras.

    Existen varias ventajas del estndard USB sobre el estndard RS-232. La primera ventaja es que se pueden conectar varios equipos (impresoras, cmaras digitales,

  • escners, teclados MIDI, etc.) a una misma computadora sin necesidad de tener que construrle a la computadora puertos de entrada adicionales, ya que se puede utilizar el mismo puerto de entrada USB de la computadora ampliando la capacidad de dicho puerto con un hub expansor:de modo tal que es posible tener tres o cuatro unidades perifricas distintas enviando informacin serial a la misma computadora a travs de la misma entrada USB de la computadora (anteriormente, si se quera conectar un equipo con modo de comunicacin serial a

    una computadora, haba que desconectar el equipo que ya estuviese instalado, frecuentemente la impresora, para utilizar dicho puerto de entrada como canal de intercomunicacin con la computadora, lo cual hoy ya no es necesario). Bajo el estndard USB, hasta 127 piezas de equipo (lo cual incluye los hubs expansores de capacidad) se pueden conectar a una misma computadora. El estndard inicial USB fu el USB 1.0, apoyado por sistemas operativos como Windows 98, ofreciendo una capacidad de transmisin de datos de hasta 12 Megabits por segundo; el cual est siendo superado por el USB 2.0 que ofrece las mismas caractersticas pero a una velocidad de intercomunicacin mucho mayor (40 veces mayor) de 480 Megabits por segundo con las unidades perifricas que se le conecten a la computadora. El siguiente paso evolutivo programado para este estndard es el USB 3.0 que debe poder ofrecer una capacidad de transmisin serial de datos de hasta 4.8 Gigabytes por segundo. Otra ventaja del estndard USB sobre el estndard RS-232 es que las unidades perifricas se pueden conectar, desconectar y volver a conectar en el orden que sea a las entradas USB de la computadora tiempo despus de que haya sido encendida la mquina (esta caracterstica es conocida en la literatura tcnica como hot swapping), mejor conocida desde el punto de vista del sistema operativo Windows como PnP (Plug-and-Play), lo cual no era posible anteriormente ya que al encender la mquina los programas de "arranque" (contenidos en el BIOS) para los puertos seriales inicializaban todo al inicio y no era posible alterar posteriormente la comunicacin.

    En su esencia, un cable USB para comunicaciones seriales entre una computadora y una unidad perifrica consta de nicamente cuatro alambres aislados en su interior: dos cables para envo de energa elctrica identificados de la manera usual como power (voltaje) y ground (tierra elctrica) as como dos alambres identificados como D+ y D-. Los cables de energa elctrica son requeridos cuando la unidad perifrica que est siendo conectada carece de su propia fuente de energa y tiene que ser energizada por la computadora, como es el caso de los flash drives. Cuando una unidad perifrica se conecta a la computadora, la computadora (o el hub) detecta la presencia de la unidad perifrica mediante una resistencia elctrica que acta como pullup dependiendo de que la unidad perifrica sea una de baja velocidad (USB 1.0) o de alta velocidad (USB 2.0). Una resistencia pullup puesta en el cable que corresponde a la seal D- indica que se trata de una unidad de baja velocidad, mientras que una unidad perifrica de alta velocidad tiene una resistencia pullup en el cable D+. Para el manejo de las seales USB, hay varios circuitos integrados en el mercado, uno de los cuales es el PIC 16C745, de la empresa Microchip. Este Controlador Programable de Interrupciones es en su interior un circuito integrado tan complejo y tan sofisticado que en la literatura tcnica se le identifica tambin como un microprocesador, aunque en el sentido estricto de la palabra no lo es. A continuacin tenemos un bosquejo de un PIC 16C745 dispuesto para el manejo de una unidad perifrica de baja velocidad, con una resistencia pullup puesta en la lnea D-:

  • A continuacin tenemos en mayor detalle un proyecto construdo como parte de una tarea escolar por dos estudiantes canadienses como parte de los requerimientos para poder obtener su grado en Ingeniera Fsica en la University of British Columbia, el cual como puede verse est configurado para ser de baja velocidad:

    En la esquina superior derecha de este diagrama esquemtico podemos ver las asignaciones que bajo el estandrd USB se deben hacer a cada una de las terminales de un conector USB.

    Aqu puede surgir una duda sobre cmo es posible que una computadora pueda distinguir entre las diversas seales digitales que le estn enviando varias unidades perifricas a travs de lo que es esencialmente una sola lnea de entrada. Cmo evitar confundir una seal digital que le est llegando desde una cmara Web con una seal digital que le est llegando de una impresora? La respuesta radica en el hecho de que bajo el estndard USB cada pieza de equipo tiene su propio identificador, algo as como su "nombre propio" y sus apellidos, lo cual le permite a la computadora el poder distinguir -con la ayuda del sistema operativo- una unidad perifrica de la otra. De hecho, la primera vez que se conecta con un cable USB una unidad perifrica a una computadora en la que nunca antes se haba utilizado, lo primero que har la computadora ser buscar entre su "catlogo de equipos USB" interno el "nombre propio" y apellidos de tal unidad perifrica, y al no encontrarlo el sistema operativo le pedir al usuario el disco CD de instalacin de los programas drivers que le permitan al sistema operativo poder procesar la informacin que le enve dicha unidad perifrica. Una vez que se ha llevado a cabo este procedimiento, el sistema operativo agrega tal unidad perifrica a su "catlogo interno", de modo tal que la prxima vez que tal unidad perifrica se vuelva a conectar a la misma computadora se llevar a cabo la bsqueda de rigor en dicho catlogo interno, y al encontrar que los programas drivers para tal unidad perifrica ya estn almacenados en el disco duro el sistema operativo cargar dichos drivers en la memoria RAM para poder intercomunicarse con dicha unidad perifrica.

    Aunque an es posible ver muchas computadoras que tienen en su parte trasera un puerto para interconectar las impresoras a un conector basado en el estndard RS-232, la mayora de las nuevas impresoras en el mercado estn equipadas ya con un puerto USB para ser interconectadas de este modo a la computadora. De cualquier modo, aunque el estndard RS-232 termine siendo desplazado por completo, mucho de lo que hemos aprendido en este Suplemento sigue siendo completamente vlido porque los principios esenciales siguen siendo los mismos, al igual que las tres funciones lgicas bsicas AND, NOT y OR sobre las cuales a fin de cuentas se viene basando el diseo de cualquier computadora.