Exponsor

CURSO TÉCNICO INSTALADOR DE ENERGÍA SOLAR TÉRMICA

Visita el siguiente enlace: http://enersolartermica.blogspot.com.es/ ¡No pierdas esta magnifica oportunidad de poder formarte en esta profesión con gran demanda de empleo! Ahora por oferta de lanzamiento y por tiempo limitado puedes adquirir este curso por solo 9,95€, cuando su valor de mercado es de 49€.

viernes, 24 de abril de 2009

EL AMPLIFICADOR OPERACIONAL ( I )

La enorme ventaja de los circuitos lógicos es que no se requiere tener muchos conocimientos de electrónica para poder comprender cómo trabajan funcionalmente dichos circuitos. Y en efecto, en los ocho capítulos principales del libro, prácticamente no se tocó gran cosa que tuviera que ver con cuestiones eléctricas, exceptuando el hecho de que por lo general identificábamos un valor de un "1" lógico con un voltaje generalmente positivo (como +5 volts) y un "0" lógico con un nivel de cero volts, el equivalente a "tierra" eléctrica que en una batería no vendría siendo más que el polo negativo de la batería marcado con el signo menos (-). No hubo ninguna necesidad de entrar en detalles tales como resistencias eléctricas, capacitores, inductores, la ley de Ohm, potencia eléctrica, amperaje, etc. Pudimos avanzar muy bien sobre todos los capítulos sin tener que incursionar en estos detalles.Existen muchos sistemas digitales en los que la mayoría del sistema basa su funcionamiento en electrónica puramente digital. Las computadoras de escritorio son un buen ejemplo de ello. Sin poseer conocimientos detallados de electrónica, cualquiera que haya asimilado los principios esenciales del libro puede muy bien ensamblar un circuito lógico, comprar en el mercado una fuente de poder que proporcione los voltajes requeridos para que los componentes del circuito puedan trabajar, y conectar todo de modo apropiado para que pueda funcionar.Sin embargo, existen también sistemas en los cuales es necesario interconectar componentes propios de la electrónica digital (bloques AND, OR y NOT) que siempre trabajan con valores discretos de voltaje, con componentes propios de la electrónica analógica, en donde se trabaja con voltajes que pueden variar continuamente entre dos límites pudiendo tomar cualquier valor posible entre dichos límites. Estos sistemas son esencialmente sistemas híbridos que combinan en un solo diseño aspectos de la electrónica digital y de la electrónica analógica.El texto principal del libro no presupone de parte del lector conocimiento alguno de electrónica analógica. Sin embargo, no se descarta la posibilidad de que entre los lectores haya técnicos con algunos conocimientos básicos de electrónica analógica que estén tal vez interesados en instruírse un poco más en aquellos circuitos integrados con los cuales los circuitos integrados propios de la electrónica digital suelen interactuar. Es con este auditorio en mente que se ha preparado este Suplemento que trata sobre uno de los componentes más versátiles para el diseños de circuitos analógicos: el amplificador operacional.Así como en la familia lógica de circuitos integrados TTL el circuito integrado 7400 es el componente fundamental de referencia del cual parten todos los demás, y así como en en el mundo de los microprocesadores el microprocesador 8008 marcó la pauta a seguir por todos los demás microprocesadores que le sucedieron, del mismo modo en el mundo de los amplificadores operacionales el punto de referencia es un amplificador designado con el número 741.Si fuéramos a comprar en el mercado un amplificador operacional 741 fabricado por la empresa Motorola, dicho componente tendría el siguiente aspecto físico:


El diagrama esquemático de este circuito integrado en relación con sus ocho terminales muestra las siguientes designaciones funcionales de cada una de dichas terminales o "pins":



Esencialmente, el amplificador operacional es representado en los diagramas esquemáticos tal y como se muestra arriba, como un triángulo, con dos terminales de entrada, una entrada inversora (inverting input) identificada con un símbolo menos (-) y una terminal no-inversora (non-inverting input) identificada con un símbolo más (+).
Precaución: Los términos terminal inversora y terminal no-inversora en un amplificador operacional no tienen absolutamente nada que ver con las definiciones usadas en el mundo de los circuitos lógicos en relación con el bloque NOT.El símbolo triangular utilizado para representar un amplificador operacional encierra cómodamente para nosotros algo que es esencialmente un circuito analógico algo complejo, cuyo esquemático detallado es el siguiente:


Aunque el amplificador operacional lo podemos usar como una "caja negra" sin tener que preocuparnos por los detalles internos que muestra este último diagrama, de cualquier modo tenemos que saber cómo llevar a cabo conexiones externas al mismo para poder obtener del mismo algunas funciones analógicas que nos puedan ser de utilidad. Como su nombre lo indica, este componente es un amplificador, un amplificador de una señal analógica que puede variar continuamente entre un rango de valores. Y al amplificar la señal, lo puede hacer invirtiendo la polaridad de la señal con respecto a la señal de entrada (convirtiendo los valores de voltaje positivos a negativos, y los valores de voltaje negativos a positivos) , en cuyo caso lo usamos como amplificador inversor, o dejando que la polaridad de la señal de salida se mantenga con la misma polaridad que la señal de entrada, o sea como un amplificador no-inversor. Para poder utilizarlo en cualquiera de estas dos maneras, es necesario conectarle a cada configuración unas resistencias eléctricas externas como lo muestran los siguientes diagramas:
En el diagrama superior tenemos un amplificador inversor, y en el diagrama inferior tenemos un amplificador no-inversor. Antes de entrar en detalles sobre el funcionamiento de estos circuitos, observemos primero que para poder trabajar adecuadamente el amplificador operacional requiere de dos voltajes, un voltaje positivo +V aplicado en la terminal 7, y un voltaje negativo -V aplicado en la terminal 4. Si fueramos a proporcionar estos voltajes con baterías externas de modo tal que el voltaje positivo sea +V=+15 volts y el voltaje negativo sea -V=-15 volts, lo haríamos utilizando algo como lo siguiente:



Obsérvese en los diagramos de los dos circuitos amplificadores mostrados arriba que no es necesario conectar ninguna de las terminales del amplificador operacional al punto intermedio entre las dos baterías designado en el esquemático como la tierra eléctrica. Una fuente dual de voltajes fácil de implementar con dos baterías desechables proporcionando un voltaje positivo +V=+9 volts y un voltaje negativo -V=-9 volts sería la siguiente:


Sin embargo, como la desventaja de una fuente dual de voltajes construída con baterías desechables es que las baterías tienen una vida de uso limitada, para un diseño fijo que no se estará moviendo mucho de un lugar a otro se puede construír una fuente dual de voltajes alimentada con corriente alterna de línea como la que se muestra a continuación:


Regresemos ahora a los circuitos amplificadores. La señal de entrada una vez amplificada será proporcionada por el amplificador operacional u op-amp en su terminal de salida 6 (output). La ganancia (gain) del op-amp es la medida de la amplificación de voltaje del circuito y se define simplemente como el valor instantáneo del voltaje de salida Vout en la terminal 6 entre el valor del voltaje Vin de entrada:



De este modo, si el voltaje de entrada es de 1 volt y el voltaje de salida es de 10 volts, el op-amp estará amplificando la señal por un factor de 10: la señal de salida será diez veces más grande que la señal de entrada.Si el diseño que utilizaremos será el de un amplificador inversor, entonces usaremos el circuito designado arriba como "inverting amplifier", y la señal de entrada a ser amplificada deberá ser aplicada en la terminal 2 (inverting input). En este caso, nosotros podemos escoger el factor de amplificación mediante una cuidadosa selección de las resistencias R1 y R2. La ganancia (Gain) del circuito, como podemos ver en la fórmula anexa al circuito, será igual al valor de R2 dividido entre el valor de R1. Si queremos un factor de amplificación de cinco tantos, entonces la resistencia R2 deberá ser cinco veces más grande que la resistencia R1. Una vez escogidos los valores de las resistencias R1 y R2 el valor de la resistencia R3 estará prácticamente prefijado por la fórmula que nos dice cuál debe ser el valor de dicha resistencia (en algunos diseños, se prescinde de esta resistencia por completo). En la fórmula de la ganancia:
Gain = -R2/R1el signo menos indica que la polaridad de la señal estará invertida con respecto a la polaridad de la señal de entrada, que es justo lo que debe hacer un amplificador inversor.Si por el contrario queremos diseñar un amplificador no-inversor, entonces usamos el circuito designado arriba como "non-inverting amplifier", y la señal de entrada a ser amplificada deberá ser aplicada en la terminal 3 (non-inverting input) directamente. Aquí también nosotros podemos escoger el factor de amplificación mediante una cuidadosa selección de las resistencias R1 y R2. La ganancia (Gain) del circuito, como podemos ver en la fórmula anexa al circuito, será igual a 1 sumado al valor de R2 dividido entre el valor de R1. Si queremos un factor de amplificación de tres tantos, entonces la resistencia R2 deberá ser dos veces más grande que la resistencia R1, lo cual sumado a la unidad nos dá una ganancia de tres:
Gain = 1 + (R2/R1) = 1 + (2/1) = 1 + 2 = 3Los valores de las resistencias generalmente deben estar seleccionados en el rango de los miles de ohms (K ohms). Valores demasiado bajos de resistencias, situados por debajo de 1 Kohm, producen corrientes eléctricas grandes que pueden producirle daño al circuito, mientras que valores demasiado grandes de resistencias, situados por encima de 1 Megohm, inducen un efecto indeseable conocido como el ruido térmico (en inglés, thermal noise) o ruido Johnson-Nyquist. A continuación tenemos un amplificador no-inversor construído en torno a un op-amp en el cual se han seleccionado resistencias R1 y R2 con valores respectivos de 1K (mil ohms) y 15K (15 mil ohms), con lo cual obtenemos un factor de multiplicación de 16 sobre la señal de entrada:


jueves, 23 de abril de 2009

LAS COMUNICACIONES ASÍNCRONAS ( IV )

En artículos anteriores vimos que un "0" lógico y un "1" lógico pueden estar representados no sólo como la ausencia de un voltaje y la presencia de un voltaje de, digamos, +5 volts, sino también como un campo magnético de cierta orientación y un campo magnético de orientación 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 señales digitales a través de un cable de fibras ópticas en las cuales el medio de tranmisión es la luz y no un potencial eléctrico. Y aunque podemos transmitir a lo largo de un alambre metálico "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 transmisión de datos a través del telégrafo mediante el código 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 más eficientes que la simple transmisión de "pulsos" de voltaje de corriente directa, los cuales de cualquier manera no pueden ser utilizados para la transmisión de datos digitales a través de una antena transmisora hasta una antena receptora. El ejemplo más notorio de ello es la representación de un "1" como un "pulso" que en realidad es una onda de alta frecuencia. Esto requiere modular una señal ondulatoria continua usando el nivel de "1" lógico 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 modulación de amplitud identifica una señal digital ondulatoria como un "1" lógico, y la ausencia de la misma como un "0" lógico. De este modo, un torrente continuo de información que empieza con la siguiente señal digital binaria mostrada de color azul siendo modulada por la señal ondulatoria de color verde producirá la señal modulada de color rojo que será transmitida hacia afuera:





El aparato transmisor que cambia a la señal digital modulándola antes de ser transmitida recibe el nombre de modulador, mientras que el aparato receptor encargado de recuperar la señal digital removiendo su componente ondulatorio se llama demodulador. Este es precisamente el origen de la palabra modem, MODulador-DEModulador, el aparato capaz de modular señales digitales para enviarlas hacia afuera a través de la línea telefónica en forma de pulsos ondulatorios, y capaz también 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 microelectrónica permitieron miniaturizar todos los componentes de los modems para permitir su inserción 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 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:





Uno de los primeros circuitos integrados utilizados justo para la construcción de los modems que empezaron operando mediante el concepto de tonos es el circuito integrado 4412 fabricado con tecnología CMOS por la empresa Motorola:





Este circuito integrado hoy obsoleto que fue uno de los pioneros para la construcción 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 comunicación telefónica compatibles con el llamado "sistema 103". En el modo Originar, un "0" es transmitido como una señal con una frecuencia de 1070 Hertz (ciclos por segundo) y un "1" es transmitido como una señal con una frecuencia de 1270 Hertz. En el modo Contestar, un "0" es transmitido como una señal 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 comunicación en servicios de Internet de baja velocidad. La entrada de la transmisión es compatible con la familia de circuitos lógicos TTL y responde a una transferencia de datos de 300 bauds o menos. La amplitud de una onda típica de la señal 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 diseñado y un limitador simétrico con distorsión controlado de algo llamado el "retardo del grupo" (group delay). Esta entrada es compatible con las familias lógicas TTL y CMOS. La salida del Receptor de Datos (terminal "pin" 7) sigue a esta entrada después del proceso de demodulació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:





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



Existe disponible en Internet, como una cortesía de la Universidad de Hamburgo en Alemania, un programa animado que muestra con una simulación el funcionamiento en modo asíncrono 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 demostración, si hacemos "clic" sobre el "monitor" que está bosquejado en el extremo derecho del diagrama que contiene al USART 8251, aparecerá una "ventana" típica de las ventanas de texto de la época en la que los monitores de las computadoras sólo tenían capacidad para el trazado de texto sobre un fondo negro y no de gráficos; y lo que se está simulando es una simple terminal receptora de texto a la cual le llega el mensaje clásico que dice "Hello, world!" (Hola, mundo!). Esta "estación terminal" puede ser configurada en su velocidad (baud) y en la paridad que será utilizada para la detección de errores (paridad par, paridad impar, o ninguna paridad). Al entrar en esta página se activa de inmediato el simulador de diagramas de tiempo "Hades Waveform Viewer". El botón derecho del mouse, cuando el cursor está puesto dentro de la "ventana" de simulación del circuito, abre una lista vertical de opciones de menú, en la cual el punto de inicio es la opción "simulación" (simulation) que nos dá las tres posibilidades: stop (detener la simulación), pause (pausar la simulación) y run (correr la simulación), mismas opciones que se encuentran también 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 opción view de donde escogemos show waveform viewer; y con esta misma opción la podemos seguir invocando cuantas veces sea necesario a lo largo de una simulación. Dentro de la ventana del Hades Waveform Viewer, la punta de la flecha del cursor tiene anexadas permanentemente una línea horizontal y una línea vertical, las cuales nos permiten localizar en forma precisa dentro de la ventana del "Viewer" con el cursor vertical un tiempo específico situado dentro del tiempo de la simulación, y con el cursor horizontal uno de los parámetros (RESET, nCS, CnD, nRD, nWR, DATA, nTXC, TXD,TXRDY, TXE y nCTS) cuyo valor binario será desplegado inmediatamente en el renglón como "Value:". Hay una línea 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 botón i para imprimir el status del simulador, un botón de doble flecha apuntando hacia la izquierda para "reajustar" el tiempo de simulación hasta t=o, un botón de doble flecha apuntando hacia la derecha para correr la simulación en modo "perpetuo" (interactivo) y un botón con una sola flecha apuntando hacia la derecha que nos permite seleccionar un intervalo de tiempo de simulación, el cual tenemos que especificar previamente en la ventana numérica a su derecha así como las unidades de tiempo del intervalo de simulación (nanosegundos, microsegundos, milisegundos, segundos, minutos, horas). Es necesario oprimir este "botón" dos veces para ir más allá del tiempo inicial de simulación programado por el "StimuliGen" con una duración de 0.83 segundos. Los tres "foquitos" LED a la derecha nos indican que la simulación está detenida (foquito rojo), la simulación está pausada (foquito amarillo), o la simulación está corriendo (foquito verde). Se puede afirmar que esta simulación, para haber sido elaborada con propósitos meramente educativos, es una simulación bastantes sofisticada.

Hasta ahora, al hablar acerca de las comunicaciones seriales lo hemos hecho teniendo en mente el protocolo de comunicación serial basado en el estándard RS-232. Es importante señalar aquí que, en buena medida, el protocolo RS-232 para el cual fueron diseñados varios de los circuitos integrados que hemos visto en este Suplemento está siendo superado por un nuevo estándard de comunicaciones seriales más universal, el conocidísimo estándard USB (Universal Serial Bus), el cual es implementado con sus propios circuitos integrados que también se pueden obtener comercialmente en el mercado para el desarrollo de proyectos o la construcción de computadoras.

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.

En su esencia, un cable USB para comunicaciones seriales entre una computadora y una unidad periférica consta de únicamente cuatro alambres aislados en su interior: dos cables para envío de energía eléctrica identificados de la manera usual como power (voltaje) y ground (tierra eléctrica) así como dos alambres identificados como D+ y D-. Los cables de energía eléctrica son requeridos cuando la unidad periférica que está siendo conectada carece de su propia fuente de energía y tiene que ser energizada por la computadora, como es el caso de los flash drives. Cuando una unidad periférica se conecta a la computadora, la computadora (o el hub) detecta la presencia de la unidad periférica mediante una resistencia eléctrica que actúa como pullup dependiendo de que la unidad periférica 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 señal D- indica que se trata de una unidad de baja velocidad, mientras que una unidad periférica de alta velocidad tiene una resistencia pullup en el cable D+. Para el manejo de las señales 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 técnica se le identifica también como un microprocesador, aunque en el sentido estricto de la palabra no lo es. A continuación tenemos un bosquejo de un PIC 16C745 dispuesto para el manejo de una unidad periférica de baja velocidad, con una resistencia pullup puesta en la línea D-:





A continuación tenemos en mayor detalle un proyecto construído como parte de una tarea escolar por dos estudiantes canadienses como parte de los requerimientos para poder obtener su grado en Ingeniería Física 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 esquemático podemos ver las asignaciones que bajo el estandárd USB se deben hacer a cada una de las terminales de un conector USB.

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.

Para obtener más datos sobre los detalles técnicos de los UART, se recomienda consultar el siguiente enlace:

http://www.freebsd.org/doc/en_US.ISO8859-1/articles/serial-uart/

Por otro lado, se puede obtener mayor información sobre el estándard de comunicaciones seriales RS-232 consultando la Wikipedia en el siguiente enlace:

http://en.wikipedia.org/wiki/RS-232

También en la misma Wikipedia se puede obtener mayor información en el siguiente enlace acerca del estándard USB que está desplazando rápidamente al estándard RS-232:

http://en.wikipedia.org/wiki/USB

LAS COMUNICACIONES ASÍNCRONAS ( III )

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:



A continuación tenemos otro diagrama que muestra al PPI 82C55 no con la asignación física de "pins" arriba mostrada sino con las terminales reacomodadas de modo funcional para que el funcionamiento de este circuito integrado sea un poco más comprensible (ampliar imagen):


Como puede verse, hay tres puertos disponibles para la canalización 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 instrucción a este componente para que lleve a cabo alguna de las funciones que puede llevar a cabo. Las líneas D0 a la D7 son para canalizar los datos de entrada o de salida de una palabra de 8 bits a través de uno de los tres puertos. En un sistema, este componente se conectaría de una manera como 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.

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



Como ya se mencionó previamente, la entrada A1A0 = 11 está reservada para girarle una indicación al PPI 82C55 de que una instrucción 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 también 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 lógico, entonces el puerto A se convertirá en un puerto para la entrada de datos, y si se le pone un valor de 0 lógico, 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 operación 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 periféricos programables más recientes, además 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á más a fondo aquí en el estudio de este tipo de componentes porque ello requeriría de un libro como este.

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:



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



El diagrama funcional del circuito integrado MAX232 (ampliar imagen):



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.

A continuación (ampliar imagen) se muestra la transmisión 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 transmisión bajo el estándard 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. 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".

Al comienzo de la transmisión de cada byte, es necesario añadir 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 terminación STOP proporciona un período 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 terminación STOP es conocido en la literatura técnica 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 marrón, los siete bits que representan un símbolo ASCII son de color ciano, y el bit de terminación STOP está representado a la derecha de color rojo.

En el siguiente diagrama esquemático 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 acrónimo del inglés que significa Programmable Input Output, lo cual para nuestros propósitos no es más que otra designación para los componentes PIC y PPI utilizados en conjunción con el UART para el manejo de las unidades periféricas), junto con el imprescindible MAX232 para el envío y recepción de señales seriales RS-232 de y hacia equipo periférico (ampliar imagen):