Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
0011010010101110
Si en este diagrama de tiempos borramos los "unos" y los "ceros" que están puestos
encima de la señal digital, de cualquier forma podemos recuperar la información
escribiéndola de nuevo gracias a los pulsos sincronizados de la "señal de reloj".
Obsérvese que el envío de una "señal de reloj" es un complemento indispensable en
la transmisión serial de una señal digital. Sin esta señal de reloj, el receptor no tiene
forma alguna de saber cuándo y en dónde empieza un "cero" y termina un "uno" o
viceversa, como tampoco tiene forma alguna de saber cuál es la duración de cada
intervalo de tiempo que subdivide a los "bits" que están siendo enviados. Aunque a
primera vista pudiera creerse que la subdivisión del tiempo puede ser extraída por
el receptor del intervalo de tiempo más corto detectado en una señal entre un "uno"
y un "cero", esto no ofrece garantía alguna. En efecto, si enviamos las siguientes
señales digitales de 16 bits, una tras otra:
Queda pues fuera de toda discusión la necesidad de tener que enviar una "señal de
reloj" junto con la señal 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 "señal de reloj". El
cable telefónico consta en esencia de tan sólo dos alambres, de tan sólo dos líneas,
un cable es usado para enviar la señal de corriente eléctrica, y el otro cable es
utilizado como "tierra eléctrica" para recibir la corriente de retorno. No existe un
tercer cable a través del cual podamos enviar una señal de reloj.
¿Entonces cómo es posible que una computadora pueda enviar y recibir una señal
de Internet a través de la línea telefónica?
La primera respuesta tiene que ver directamente con la selección del formato con el
cual están codificados los datos binarios, lo cual requiere tratar un tema que
habíamos dejado pendiente hasta ahora.
Otra variante es el método NRZ-I (Non Return to Zero Inverted) en la cual solo
ocurre una transición cuando aparece un "1" (un "0" no produce ningún cambio). La
ventaja de este método es que es más fácil para los circuitos eléctricos detectar un
cambio de voltaje que estar midiendo niveles absolutos de voltajes. Este método es
el utilizado en las comunicaciones que se llevan a cabo en los puertos USB de las
computadoras caseras. La desventaja de este método es que no hay cambio alguno
cuando hay una secuencia formada por puros "ceros" además de que no lleva
consigo ninguna información que permita al receptor sincronizar su propio "reloj"
con el "reloj" con que fue construído el dato recibido. Para superar esta deficiencia,
en 1949 hizo su aparición el esquema de codificación Manchester, utilizado
ampliamente en las redes de computadoras conectadas bajo la convención
Ethernet, en el cual se utiliza una transición de un voltaje bajo a un voltaje alto a la
mitad del bit para representar un "1" y una transición de un voltaje alto a un voltaje
bajo a la mitad del bit para representar un "0". Para lograr una codificación
Manchester, la señal NRZ-L es sometida junto con la señal de "reloj" a una
operación de OR-EXCLUSIVO, lo cual transforma a una señal codificada como NRZ-L
en una señal Manchester. La ventaja del método Manchester es que envía al mismo
tiempo el dato y la información sincronizadora de los pulsos del reloj con los cuales
se construyó la palabra binaria, ya que tiene una transición 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 transmisión de la señal se duplica, de modo
tal que una señal 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 continuación se muestran los tres esquemas NRZ-L,
Manchester y NRZ-I:
Puesto que el primer gran problema a resolver cuando hicieron su aparición las
computadoras de escritorio fue el tratar de intercambiar información a través de la
línea telefónica, algo indispensable para la creación de Internet, para poder llevar a
cabo las primeras comunicaciones asíncronas a través 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 (acrónimo del inglés
Universal Asynchronous Receiver Transmitter, que significa "Receptor Transmisor
Asíncrono Universal).
Con el UART, dos microcomputadoras situadas en puntos remotos que tengan
necesidad de comunicarse entre sí lo harán bajo la siguiente configuración:
Así como los microprocesadores Intel 8086 y Motorola 6800 marcaron la pauta a
seguir para los diseños de los microprocesadores utilizados en las computadoras
actuales, del mismo modo también
hubo dos "grandes abuelos" que
han marcado la pauta de los
estándares a seguir en
comunicaciones seriales
asíncronas: el UART 16450
En este último dibujo tenemos el diseño esencial de una computadora personal (PC)
de escritorio cuyo componente central es, naturalmente, un microprocesador (µP)
con sus memorias RAM y ROM. La línea 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 través del UART, bajo la
coordinación externa de otro componente esencial para
que la acción 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, acrónimo del
inglés Programmable Interrupt Controller).
Otro componente muy popular con un elevado nivel de integración para auxiliar al
microprocesador en su manejo de unidades periféricas es el conocido como
Interfaz Programable Periférica (simbolizada en la literatura como PPI,
acrónimo del inglés Programmable IPeripheral Inteface), de la cual el circuito
integrado 8255 (o su equivalente el 82C55) es quizá uno de los más conocidos. Su
relación de terminales "pins" es la siguiente:
El siguiente diagrama nos muestra cómo se utilizaría el PPI 82C55 para construír un
circuito para llevar cabo la lectura de una de las 16 teclas de un teclado externo:
Obsérvese cómo las teclas del teclado externo están 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 máxima capacidad, este mismo diseño se
puede ampliar fácilmente 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.
Es importante señalar 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" lógico está especificado como un voltaje positivo de +15 volts, y el "0"
lógico como un voltaje negativo de -15 volts), se requiere otro componente que
pueda garantizar las conversiones eléctricas 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:
nos indica que si la terminal de entrada para convertir señales con niveles
TTL/CMOS es la terminal 11 (T1IN), entonces las señales ya convertidas a niveles
RS-232 se podrán obtener en la terminal 14 (T1OUT); mientras que si la terminal de
entrada para convertir señales con niveles RS-232 es la terminal 13 (R1IN),
entonces las señales ya convertidas a niveles TTL/CMOS se podrán obtener en la
terminal 12 (RIOUT). El circuito integrado proporciona otros dos pares de terminales
para lograr lo mismo, los pares 10/7 (conversión TTL/CMOS a RS-233) y 8/9
(conversión RS-232 a TTL/CMOS).
Lo interesante del circuito integrado MAX232 es que aunque puede generar las
señales de voltaje RS-232 de +15 volts y -15 volts, lo puede hacer alimentado con
una fuente de voltaje de +5 volts.
Consideraremos que el bit B0=0 está siendo usado como bit de paridad. Obsérvese
que antes y después de la transmisión 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 terminación (STOP) puesto después del byte, en este caso igual a "1".
Existe otro esquema que es precisamente el mismo que fue utilizado inicialmente
para la transmisión de señales digitales a través de la línea telefónica usando para
ello los primeros modems caseros: mediante señales de tonos audibles. Bajo este
concepto, cuando se transmite una señal a través del cable telefónico se hace
utilizando dos ondas de frecuencias diferentes para identificar al "0" y al "1". Este
esquema es conocido como modulación de frecuencia (aunque también es
conocido como FSK o Frequency Shift Keying), esquema en el cual la frecuencia de
la señal portadora es alternada entre dos frecuencias diferentes en una manera
como la que se muestra a continuación:
Junto con el UART podemos hablar de otro circuito integrado que además de las
capacidades para comunicaciones asíncronas del UART incorpora la capacidad para
poder establecer comunicaciones síncronas. Se trata del USART, cuyas siglas
significan Universal Synchronous/Asynchronous Receiver-Transmitter, del
cual el gran "abuelo" prototipo que marcó la pauta en los diseños posteriores que
habrían de seguir es el 8251:
Existen varias ventajas del estándard USB sobre el estándard RS-232. La primera
ventaja es que se pueden conectar varios equipos (impresoras, cámaras digitales,
escáners, teclados MIDI, etc.) a una misma
computadora sin necesidad de tener que construírle 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
periféricas distintas enviando información serial a la
misma computadora a través de la misma entrada USB
de la computadora (anteriormente, si se quería
conectar un equipo con modo de comunicación serial a
una computadora, había que desconectar el equipo que ya estuviese instalado,
frecuentemente la impresora, para utilizar dicho puerto de entrada como canal de
intercomunicación con la computadora, lo cual hoy ya no es necesario). Bajo el
estándard USB, hasta 127 piezas de equipo (lo cual incluye los hubs expansores de
capacidad) se pueden conectar a una misma computadora. El estándard inicial USB
fué el USB 1.0, apoyado por sistemas operativos como Windows 98, ofreciendo una
capacidad de transmisión de datos de hasta 12 Megabits por segundo; el cual está
siendo superado por el USB 2.0 que ofrece las mismas características pero a una
velocidad de intercomunicación mucho mayor (40 veces mayor) de 480 Megabits
por segundo con las unidades periféricas que se le conecten a la computadora. El
siguiente paso evolutivo programado para este estándard es el USB 3.0 que debe
poder ofrecer una capacidad de transmisión serial de datos de hasta 4.8 Gigabytes
por segundo. Otra ventaja del estándard USB sobre el estándard RS-232 es que las
unidades periféricas se pueden conectar, desconectar y volver a conectar en el
orden que sea a las entradas USB de la computadora tiempo después de que haya
sido encendida la máquina (esta característica es conocida en la literatura técnica
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 máquina los programas de "arranque" (contenidos en el BIOS) para los
puertos seriales inicializaban todo al inicio y no era posible alterar posteriormente la
comunicación.
Aquí puede surgir una duda sobre cómo es posible que una computadora pueda
distinguir entre las diversas señales digitales que le están enviando varias unidades
periféricas a través de lo que es esencialmente una sola línea de entrada. ¿Cómo
evitar confundir una señal digital que le está llegando desde una cámara Web con
una señal digital que le está llegando de una impresora? La respuesta radica en el
hecho de que bajo el estándard 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
periférica de la otra. De hecho, la primera vez que se conecta con un cable USB
una unidad periférica a una computadora en la que nunca antes se había utilizado,
lo primero que hará la computadora será buscar entre su "catálogo de equipos USB"
interno el "nombre propio" y apellidos de tal unidad periférica, y al no encontrarlo el
sistema operativo le pedirá al usuario el disco CD de instalación de los programas
drivers que le permitan al sistema operativo poder procesar la información que le
envíe dicha unidad periférica. Una vez que se ha llevado a cabo este procedimiento,
el sistema operativo agrega tal unidad periférica a su "catálogo interno", de modo
tal que la próxima vez que tal unidad periférica se vuelva a conectar a la misma
computadora se llevará a cabo la búsqueda de rigor en dicho catálogo interno, y al
encontrar que los programas drivers para tal unidad periférica ya están
almacenados en el disco duro el sistema operativo cargará dichos drivers en la
memoria RAM para poder intercomunicarse con dicha unidad periférica.
Aunque aún es posible ver muchas computadoras que tienen en su parte trasera un
puerto para interconectar las impresoras a un conector basado en el estándard RS-
232, la mayoría de las nuevas impresoras en el mercado están equipadas ya con un
puerto USB para ser interconectadas de este modo a la computadora. De cualquier
modo, aunque el estándard RS-232 termine siendo desplazado por completo,
mucho de lo que hemos aprendido en este Suplemento sigue siendo
completamente válido porque los principios esenciales siguen siendo los mismos, al
igual que las tres funciones lógicas básicas AND, NOT y OR sobre las cuales a fin de
cuentas se viene basando el diseño de cualquier computadora.