Universidad de Guadalajara Sistemas Digitales III MODULO IV DISPOSITIVOS DE ENTRADA / SALIDA INTRODUCCIÓN A LA COMUNICACIÓN DE DATOS. Dos estándares comunes indican el significado de los bits de información. Estos son el ASCII y el EBCDIC. El ASCII es extensamente usado con mini y microcomputadoras el EBCDIC (extended binarycode decimal interchange code) se usa casi exclusivamente para la comunicación entre computadoras mainframe de IBM. ASCII (American estándar Code for Information Interchange) es un código estándar que representa la transmisión de caracteres alfanuméricos. El carácter estándar ASCII tiene 8 bits. Siete bits son usados para los 128 caracteres de la tabla ASCII. 27=128 Desafortunadamente algunos de los códigos de control (00-1F) son desconocidos por más de un nombre de cualquier forma los códigos para los caracteres alfanuméricos, operadores matemáticos y símbolos de pronunciación (20-7F) están estandarizados. Casi todas las transmisiones de datos son enviadas en palabras de 8 bits. El octavo bit en una palabra de datos ASCII tiene barios usos: 1. Puede ser transmitido como un parámetro lógico 0 o un parámetro lógico 1, el cual es llamado stuck bit. 2. Puede ser usado como un comando de error. 3. En algunos casos inusuales, puede ser usado para indicar un significado alternativo para los otros 7 bits. Existen diferentes reglas para controlar la organización y el flujo de datos. Las cuales son llamadas protocolos de comunicación de datos. Existen diferentes niveles para cada protocolo por ejemplo el carácter ASCII de establecimiento (set) es realmente un protocolo de comunicación de datos. Este carácter nos dice como esta organizada la información en un byte y que significa realmente esa organización. Debe de existir algún protocolo para nivel de hardware en la transmisión de hardware. Esto es, los dos extremos de un enlace de comunicación de datos debe usar las mismas señales electrónicas para las líneas de datos si estas están para comunicarse una con la otra. La transmisión de datos es a menudo controlada por un saludo (handshaking) entre las líneas. Esto debe ser también necesario en ambos extremos del circuito de transmisión. Por ejemplo, el microprocesador que recibe debe tener una línea de saludo llamada clear to send. El microprocesador usa esta línea para controlar el flujo de datos de tal forma que no se sobrecargue. El microprocesador que transmite vigila esta línea y no envía información hasta que no se le diga que puede enviarla. En el siguiente nivel debe haber un protocolo para la secuencia de caracteres que son intercambiados. Uno de los más comunes comandos que sería preferible usar para enviar, es un comando diciéndole al microprocesador que envía cuando comenzar el flujo de datos y cuando pararlo. Si no se tiene un saludo (handshaking) por hardware para controlar el flujo de datos. Lo anterior debe de hacerse con códigos de control agregados a la cadena de datos. El código ASCII especifica dos caracteres para este propósito. Estos son el DC1(11H) y El DC3 (13H). Estos son también conocidos como CTRL+K y CTRL+S, o XON y XOFF. Estas señales deben ser generadas por el sistema del microprocesador que recibe los datos y deben ser reconocidas por el sistema del microprocesador que recibe los datos. Documento de Trabajo Alberto de la Mora Gálvez 92 Universidad de Guadalajara Sistemas Digitales III Este es un protocolo de comunicación de datos simple. A menudo protocolos más complejos son usados. Si se debe agregar caracteres de control a los datos, se debe incrementar la cabecera (overhead) de comunicaciones. Esto es, algo del tiempo de transmisión es tomado con la información del control en lugar de los datos. Si solo se usara XON y XOFF, la cabecera (overhead) es baja. Si se usara un protocolo de comunicación mas complejo el porcentaje de tiempo de datos nulos (overhead) se hace más grande. Las comunicaciones de datos pueden ser cualquiera sincrona o asincrona. En transmisión sincrona una vez que la transmisión empieza el tiempo entre byte y byte es conocido. En transmisiones asincronas significa que el tiempo entre los bytes es aleatorio y no puede ser predecido por el sistema que envía o transmite. Software especial en los microprocesadores debe ser usado para sincronizar estas palabras aleatorias (asincronas) la mayoría de los sistemas basados en los microprocesadores y computadoras personales usa comunicación de datos asincronos. Algunas comunicaciones de computadoras con mainframe usan transmisión de datos sincronas, transmitiendo un marco de caracteres de una sola vez. El marco comienza con unos caracteres de sincronización seguidos por una cabecera (header). Los caracteres en la cabecera identifican el marco. Esto es seguido por un bloque de datos. El bloque de datos es entonces seguido por algunos caracteres de cierre y algunos caracteres de chequeo de error. S S S S Dato Y O Encabe D zado L Y N T Transpa L rente T N H E X E B Caracter SYN PAD PAD DEL ENQ SOH STX ITB ETB ETX BCC D I D B L C C E S Dato D E T Transpa L T rente X E B P B C C A D Descripción. Synchronous idle Start of frame pad End of frame pad Línea de datos de escape Pregunta Inicio del encabezado Inicio del texto Fin del bloque intermedio Fin de transmisión (Bloque) Fin de texto Bloque de chequeo de caracteres Son usados diferentes protocolos de transmisión de datos sincronos. Uno de los protocolos comúnmente usado por las mainframes de IBM es llamado synchronous data- link control (SDLC). Un protocolo anterior a SDLC es llamado bisync para transmisión sincrona binaria. Normalmente, las transmisiones SDLC in bisync son solamente usadas entre computadoras y mainframe. Documento de Trabajo Alberto de la Mora Gálvez 93 Universidad de Guadalajara Sistemas Digitales III ENTRADA / SALIDA PARALELO Muchos tipos de interfaces transmiten datos al microprocesador la más simple es la interface paralelo. Todos los otros tipos de puertos de I/O comienzan con una entrada salida paralelo, y entonteces convierten la entrada/salida paralelo a alguna otra forma. La siguiente figura es un diagrama a bloques de la tarjeta de un puerto de entrada/salida de 8 bits. Esta tarjeta permite introducir una palabra de 8 bits y sacar una palabra de 8 bits. Las líneas de dirección A0-A7 son colocadas y dirige al decodificador de direcciones de I/O, el cual decodifica 3 direcciones: DATA IN, DATA OUT, STATUS. Por ejemplo, el DATA IN, debe ser direccionado, como Puerto 00, de entrada/salida, el DATA OUT debe ser direccionado como Puerto 01, de entrada y salida, y STATUS puede ser direccionado como Puerto 02 de entrada/ salida. Entrada/Salida Read y Entrada/Salida Write son como las líneas READ y WRITE de la memoria pero son usadas durante las operaciones de entrada y salida. Se puede observar I/O read e I/O write son habilitadas por las salidas del decodificador de direcciones. Este muestra que el I/O Write es habilitado solamente cuando la dirección DATA OUT es decodificada. I/O Read es habilitada cuando cualquiera, DATA IN o STATUS es decodificado. Las señales del bus de datos de la microcomputadora son colocadas en ambas direcciones. Este diagrama a bloques muestra dos buffers de 8 bits, uno para datos en la tarjeta y el otro para datos fuera de la tarjeta estos buffers son habilitados por la línea I/O Read y las línea I/O Write cuando estas líneas son habilitadas por el decodificador de direcciones de la tarjeta. Esta tarjeta paralelo de I/O tiene un registro de estados de dos bit. Este registro de estado permite al microprocesador probar al puerto de estado de I/O. Adicionalmente, 4 líneas de control del registro de estado para un dispositivo externo ayudan a controlar la transferencia de datos. Documento de Trabajo Alberto de la Mora Gálvez 94 Universidad de Guadalajara Sistemas Digitales III Estas 4 líneas de saludo (handshaking) son: Data Out disponible, Output data recibida, Input Data disponible, e Input Data recibida. Cuando el microprocesador envía datos al puerto I/O, direcciona el Data Out y afirma la señal I/O write. Este transfiere el dato del bus del microprocesador al latch de 8 bits y pone el bit de estado de salida. Estableciendo este bit pone en 1 lógico en la línea Data Output Received, diciendo a un dispositivo externo que el dato esta disponible. Cuando el dispositivo externo toma el dato, este afirma el dato de salida recibido, el cual limpia el bit de estado de salida. Después el microprocesador puede leer el registro de estado I/O y, si se limpio el bit 0, entonces se sabe que el dispositivo externo tomó el dato. Si un dispositivo externo quiere enviar datos al microprocesador, este afirma el dato de entrada disponible (input data available). Este limpia el bit de estado de entrada el cual envía una señal de interrupción al microprocesador. El microprocesador registra a los registros de estado en cada puerto I/O hasta encontrar uno con el bit 7 limpio. Para el dato de entrada del puerto I/O de interrupción, el microprocesador direcciona el dato de entrada del puerto I/O y afirma I/O Read. Esto habilita los buffers del dato de entrada, poniendo el dato de entrada en el bus interno del puerto I/O. Además habilita el bus driver para transferir la información al bus de datos del microprocesador. Afirmando el I/O Read también pone el bit de estado de entrada, el cual pone un 1 lógico en el dato de entrada recibido. Un dispositivo externo puede checar el dato de entrada recibido (Input Data Received). Si el Dato de Entrada Recibido es un 1 lógico, quiere decir que el microprocesador ha tomado el dato. Si es un 0 lógico, el dispositivo debe mantener la información en el puerto de entrada porque el microprocesador no está listo aún. En cualquier momento el microprocesador deseara saber cual es el estado del puerto I/O, Este direcciona al STATUS y afirma el I/O Read. Este habilita el bit manejador de estado de entrada y salida, poniendo el bit de dato de estado de salida en D 0 y el bit de dato de estado de entrada en D7 del bus interno de datos. También transfiere la información al bus del microprocesador. Algunas tarjetas de I/O son construidas usado dispositivos discretos TTL SSI y MSI. Otras tarjetas usan circuitos microprocesadores de ayuda LSI especialmente diseñados para usarse con dispositivos I/O. Frecuentemente, un número de puertos de I/O paralelo de 8-bit son incluidos en un solo chip microprocesador o en un circuito de soporte de I/O. Este circuito de soporte hace posible construir el low-chip-count sistemas basados en microprocesadores. El puerto paralelo I/O es el básico de la microcomputadora si los datos son convertidos en otra forma esto es hecho del lado de entradas y salidas del puerto paralelo. Esto es, el microprocesador se comunica con el puerto paralelo de I/O. El puerto paralelo I/O entonces se comunica con los dispositivos externos los cuales convierten los datos a señales de voltaje mas alto (high-power) para transmisiones paralelas, dato serial, datos formateados por un disco, señales análogas, etc. Una forma utiliza un cable multiconductor con 8 líneas para los datos de entrada y ocho líneas para los datos de salida y unas líneas de saludo (hadnshaiking). Esta simple transferencia paralela de entrada salida es usada en muchos sistemas para cortas distancias. La conexión de entrada y salida está limitada por la longitud del cable que los circuitos de entrada y salida pueden conducir. Para simples controladores TTL, esa longitud es uno o dos metros. Aún cuando los controladores de alto voltaje (high-power) son usados, las longitudes del cable estarán limitadas alrededor de los 50m. La capacidad del cable esta limitada por la longitud del cable. La capacidad del cable se incrementa de igual forma que la longitud del cable se incrementa. Cuando la capacidad es mayor que la que pueden soportar los controladores, señales fiables no son transmitidas al extremo receptor. Una interface estándar para transferencia paralela de datos entre instrumentos de prueba electrónicos y sistemas basados en microcomputadoras es conocida como la IEEE-488 o GPIB (general purpose interface bus). Documento de Trabajo Alberto de la Mora Gálvez 95 Universidad de Guadalajara Sistemas Digitales III El estándar IEEE-488 es extensamente utilizado en los Estados Unidos, Canadá, y Europa. Algunos fabricantes de microprocesadores tienen circuitos de soporte LSI para interfazar sus microprocesadores con el bus IEEE-488. Dispositivos agregados al bus IEEE-488 son oyentes, oyentes/hablantes, o controladores. Cada dispositivo en el sistema IEEE-488 es asignado con una dirección. La siguiente figura muestra un ejemplo simple de una microcomputadora basada en el sistema IEEE-488. En este sistema la microcomputadora tiene en control. La microcomputadora le dice al voltimetro (talker-Listener) que rangos y funciones seleccionar. La microcomputadora también le dice al voltimetro cuando poner datos en el bus. Ambos, la impresora (oyente) y la microcomputadora (el controlador) reciben datos La impresora simplemente imprime datos, la microcomputadora pone información adicional en el bus, indicando a la impresora que agregue parámetros calculados para los datos en fila. El bus IEEE-488 puede transferir datos a rangos de 1Mbyte/s o más a distancias de 50m. La velocidad del bus está limitada por la velocidad del dispositivo más lento conectado al bus. El protocolo de comunicación de datos IEEE-488 es complejo. Otras dos formas de interfaces paralelas son comunes con sistemas de computadoras personales. Estas son las interfaces centronics y la SCSI (small computer system interfaces). Las señales en una interface centronics son mostradas en la siguiente figura. Documento de Trabajo Alberto de la Mora Gálvez 96 Universidad de Guadalajara Sistemas Digitales III La interface centronics puede estar limitada para datos de salida de la microcomputadora. De cualquier forma algunas de las microcomputadoras personales permiten la transferencia bidireccional de datos normalmente una interface centronics es usada para transmitir información desde la microcomputadora a la impresora además de las ocho líneas de datos existen líneas de saludo (handshaking) las cuales controlan la transferencia de datos desde la microcomputadora a la impresora. Usualmente, el puerto de datos centronics es dirigido por un TTL el cual limita la longitud del cable a 10 ft o menos. La interface SCSI provee una transferencia paralela de datos más barata que la IEEE-488. SCSI es usada normalmente para conectar microcomputadoras a periféricos de almacenaje masivo, tales como unidades de disco flexible, unidades de disco winchester, y unidades de cinta. COMUNICACIONES SERIALES La mayoría de los periféricos de las computadoras está conectados a computadoras con sistemas de transmisión serial, y la mayoría de las comunicaciones de computadora a computadora son hechas por comunicación serial. ¿Por que muchos de los dispositivos son conectados por líneas de datos seriales cuando los microprocesadores de las computadoras usan transmisión de datos paralela?. La razón es lo caro e inconveniente de las largas líneas de comunicación paralela. Como ya sabemos la distancia de trabajo para un TTL es de 2 mts. La capacidad del cable limita la transferencia de datos unbuffered de alto voltaje (high-power) a esta distancia. Transmisiones en distancias mas largas necesitan circuitos (buffer) conductores. Porque una transmisión paralela necesita un cable para cada bit en la palabra de datos, transferencias de datos con un ancho de un byte son ocho veces tan caras como una transferencia serial. Una transferencia paralela a larga distancia necesita ocho tiempos así como muchos controladores, receptores, y cables como una transmisión serial a larga distancia. Cuando estudiamos la transmisión serial de datos, existen tres partes que se deben aprender: 1. Como los datos paralelos son convertidos en datos seriales, y como los datos seriales son convertidos de vuelta en datos paralelos. 2. Que tipos de circuitos de transmisión y señales electrónicas son usados para enviar datos a largas distancias. 3. Como podemos saber que datos están siendo enviados y como podemos controlar la transmisión. Estas reglas son los protocolos de transmisión serial de datos. LA INTERFASE SERIAL Y EL UART Porque los datos del microprocesador están en forma paralela, una transmisión serial de I/O debe iniciar y terminar con datos paralelos. De cualquier forma, conversiones de paralelo a serial son fáciles de hacer. Los datos paralelos son cargados en un registro de corrimiento (shift register). Después el registro es temporizado. Los datos comienzan a salir del registro por el bit menos significativo (Least Significant BitLSB) a cada tiempo del reloj. El primer bit de una transmisión serial es el dato LSB, el segundo bit es el siguiente LSB, el tercero es el tercer LSB, y así sucesivamente. El ultimo bit de dato transmitido es el MSB (More Significant Bit-MSB). El proceso de conversión de paralelo a serial es mostrado en la siguiente figura. Documento de Trabajo Alberto de la Mora Gálvez 97 Universidad de Guadalajara Sistemas Digitales III Transmitiendo datos paralelos sobre una línea serial. El LSB es enviado primero, y después el siguiente LSB. El proceso continua hasta que el MSB es enviado. Recibir datos seriales y convertirlos a datos paralelos es la operación inversa. Los datos seriales son recorridos dentro de un registro de corrimiento (shift register). Después de que todos los datos están dentro del registro, los datos son sacados del registro en forma paralela y puestos en el sistema del microprocesador. El dispositivo que ejecuta conversión de paralelo a serial y de serial a paralelo es llamado receptor transmisor universal ascíncrno (universal asynchronous reciver tranmitte-UART). El UART es un circuito integrado a gran escala (LSI). Además de ejecutar esas conversiones, el UART también tiene funciones de control y monitores. Tranmitir una palabra de 8 bits de echo requiere enviar 10 bits. El primer bit indica al UART receptor que los datos están llegando. El ultimo bit indica al UART receptor que los datos se terminaron. La figura muestra una palabra de 8 bits con un bit de inicio y un bit de paro. El bit de inicio es siempre un 0 lógico, y bit de paro es un 1 lógico. El UART agrega un bit de inicio y un bit de para a los datos transmitidos. Una palabra de 8 bits con un bit de inicio y un bit de paro. El bit de inicio siempre será un 0 lógico y el bit de paro siempre será un 1 lógico. La velocidad de transmisión del UART es llamada rango de baudios (baud rate). El baud rate, o rango de señalización (signaling rate), indican cuantos bits son transmitidos por segundo. La siguiente tabla muestra los rangos de señalización comunes. Documento de Trabajo Alberto de la Mora Gálvez 98 Universidad de Guadalajara Sistemas Digitales III BAUDIOS 110 150 300 600 1200 2400 4800 9600 19200 38400 BITS POR SEGUNDO (BPS) 10 15 30 60 120 240 480 960 1920 3840 Los rangos de transmisión serial típicos. Otros rangos son usados es situaciones especiales. Es importante entender que el rango de baudios (baud rate) es un rango de señalización para una sola palabra. Después veremos porque el baud rate no se puede medir para mas de una palabra en transmisiones ascincronas. El rango de señalización de 110 baudios usa un formato diferente de los otros rangos. El rango de 110 baudios tiene un bit de inicio y dos bits de paro. Esto hace que la palabra de datos tenga 11 bits de largo. La siguiente figura muestra una palabra de 11 bits usada para un sistema de 110 baudios. Esta señal fue popular para la mayoría de las teleimpresoras mecánicas, pero se esta haciendo obsoleta. Stop paridad D7 D6 D5 D4 D3 D2 D1 D0 Start El dato serial de 11-bits es comúnmente usado para transmisiones de 110 baudios. Este código es muy común en las impresoras electromecánicas que requiere de 1.5 bits de paro Cuando el octavo bit es usado como un código de detección de error, este es llamado bit de paridad (parity bit). La mayoría de los UARTs pueden generar o detectar paridad impar o paridad par. Paridad Par establece el bit de paridad a 1 lógico o 0 lógico, de tal forma que los ocho bits de datos tengan el mismo numero de unos lógicos. Paridad Impar establece el bit de paridad a 0 lógico o 1 lógico, de tal forma que un numero impar de 1s lógicos este en la palabra. En la detección de errores durante la transmisión es utilizada la parida par o impar. Cuando un dato es recibido, el UART examina el tipo de paridad. Si el UART detecta una paridad errónea, el bit del registro de estado del UART se fija para mostrar el error. El software del microprocesador receptor puede entonces preguntar por una retransmisión. Con la paridad se detecta el 50% de los errores en la transmisión. Detecta solamente los errores impares. Si un número par de bits son erróneos, la paridad no cambia y el error no es detectado. La siguiente figura muestra como la transmisión ruidosa de datos seriales puede causar un error de paridad. El bit 4 es cambiado por ruido de 1 lógico a 0 lógico, y por lo tanto un dato erróneo es recibido. El UART también detecta errores framing. Los errores framing ocurren cuando el UART pierde el bit de inicio. Esto significa que el UART recibe la transmisión con el bit de paro e inicio en el lugar erróneo. Documento de Trabajo Alberto de la Mora Gálvez 99 Universidad de Guadalajara Sistemas Digitales III Una transmisión serial con un solo bit detectado como erróneo por el bit de paridad. El ruido durante la transmisión cambia el bit 4 de un 1 lógico a un 0 lógico, que la información recibida sea errónea. INTERFACE PERIFÉRICA PROGRAMABLE 8255 A El PPI 8255 es un dispositivo de E/S general, programable, capaz de controlar 24 líneas con diferentes configuraciones (entrada/salida) y en hasta 3 modos de operación. DESCRIPCIÓN DEL INTEGRADO. DESCRIPCIÓN FUNCIONAL Las dos líneas de direcciones definen cuatro puertos de E/S en la computadora: los tres primeros permiten acceder a los puertos A, B y C; el cuarto sirve para leer o escribir la palabra de control. El 8255 está dividido en dos grupos internos: el grupo A, formado por el puerto A y los 4 bits más significativos del puerto C; y el grupo B, constituido por el puerto B junto a los 4 bits menos significativos del puerto C. El puerto C está especialmente diseñado para ser dividido en dos mitades y servir de apoyo a los puertos A y B en algunos sistemas. Documento de Trabajo Alberto de la Mora Gálvez 100 Universidad de Guadalajara Sistemas Digitales III Conexiones del 8255 con el exterior: D0..D7: Bus de datos bidireccional de 3 estados. Esta señal borra el registro de control y RESET: todos los puertos (A, B y C) son colocados en modo entrada. Utilizada por la CPU para leer -RD: información de estado o datos procedentes del 8255. Utilizada por la CPU para enviar -WR: palabras de control o datos al 8255. Líneas de dirección: permiten A0..A1: seleccionar uno de los tres puertos o el registro de control. Puerto A: puerto de entrada/salida de 8 PA0..PA7: bits. Puerto B: puerto de entrada/salida de 8 PB0..PB7: bits. Puerto C: puerto de entrada/salida de 8 PC0..PC7: bits. PROGRAMACIÓN DEL 8255 El 8255 soporta 3 modos de operación: el modo 0 (entrada y salida básica), el modo 1 (entrada y salida con señales de control) y el modo 2 (bus bidireccional de comunicaciones). Tras un Reset, los 3 puertos quedan configurados en modo entrada, con las 24 líneas puestas a "1" gracias a la circuitería interna. Esta configuración por defecto puede no obstante ser alterada con facilidad. El modo para el puerto A y B se puede seleccionar por separado; el puerto C está dividido en dos mitades relacionadas con el puerto A y el B. Todos los registros de salida son reseteados ante un cambio de modo, incluyendo los biestables de estado. Las configuraciones de modos son muy flexibles y se acomodan a casi todas las necesidades posibles. Los tres puertos pueden ser accedidos en cualquier momento a través de la dirección E/S que les corresponde, como se vio en el apartado anterior. La palabra de control a enviar a la 4ª dirección es: Documento de Trabajo Alberto de la Mora Gálvez 101 Universidad de Guadalajara Sistemas Digitales III Si el bit más significativo de la palabra de control está borrado, es tratada entonces como un comando especial que permite activar o inhibir selectivamente los bits del puerto C: Esto es particularmente útil para los modos 1 y 2, donde las interrupciones generadas por las líneas del puerto C pueden ser activadas o inhibidas simplemente poniendo a 1 ó 0, respectivamente, el flip-flop interno INTE correspondiente a la interrupción que se trate. Todos son puestos a cero tras establecer el modo. EL 8255 EN LA PC. El 8255 es exclusivo de los PC/XT; ha sido eliminado de la placa base de los AT y PS/2, en los que ciertos registros realizan algunas funciones que en los PC/XT realiza el 8255; por ello, en estas máquinas NO se puede programar el 8255 (ha sido eliminado y no existe nada equivalente). El 8255 de los PC/XT está conectado a la dirección base E/S 60h; por ello, los puertos A, B y C se acceden, respectivamente, a través de los puertos de E/S 60h, 61h y 62h; la palabra de control se envía por el puerto 63h: la BIOS del PC y XT programa el 8255 con una palabra de control 10011001b, que configura todos los puertos en el modo 0, con el A y C de entrada y el B de salida. El 8255 es empleado, básicamente, para almacenar los datos que llegan del teclado (puerto A), para leer la configuración de la computadora en los conmutadores de la placa base (puerto C) y para controlar el altavoz y la velocidad en los XT-Turbo (puerto B). Este dispositivo periférico tiene 3 modos de operación: Modo 0: Consta de 2 grupos de pines (entrada/salida), de los cuales pueden ser programados en grupos de 4 para que se comporten como entrada salida. Modo 1: En este otro modo cada grupo puede ser programado para tener 8 líneas de entrada o salida. DE los restantes 4 pines, 3 son usados para handshaking (saludo) y señales de interrupción. Modo 2: Este tercer modo de operación es un modo de bus bidireccional el cual usa 8 líneas para un bus bidireccional y 5 líneas pidiendo una del otro grupo, para hadshaking. La función principal de este dispositivo es la de un componente de entrada salida para una interface periférica hacia el bus del sistema de la computadora. La configuración funcional del 8255 es programada por el software del sistema así que normalmente no es necesario conectar dispositivos lógicos externos. El uso del CI 8255 reduce los dispositivos periféricos lógicos externos normalmente necesitados. El PPI Documento de Trabajo Alberto de la Mora Gálvez 102 Universidad de Guadalajara Sistemas Digitales III reemplaza significativamente la lógica requerida para soportar una variedad de interfaces de entrada y salida de bytes. Todo dispositivo en un sistema de computo usualmente tiene una “rutina de servicio” asociada con ello. Esta rutina maneja la interface de software entre el dispositivo y el CPU. El dato es transmitido o recibido por medio del buffer sobre la ejecución de instrucciones de entrada/salida por medio del CPU. La palabra de control y el estado de información del dispositivo son enviadas a través del bus de datos. Este CI puede trabajar con diversos dispositivos periféricos como son: impresoras, teclados, displays, controladores de discos flexibles, controladores CRT, herramientas de maquina, convertidores digital-analógico y analógico-digital. DESCRIPCIÓN DE LOS PINES. Bus de datos.- este buffer bidireccional de 3-states de 8 bits se usa como interface del 8255 para el bus de datos. El dato es transmitido o recibido del buffer en ejecución de instrucciones del CPU. La palabra de control y los estados de información son transferidos a través del bus de datos. Leer/Escribir y Control.- La función de este bloque es manejar todas las transferencias internas y externa de ambos información y palabras de estado de control. Acepta entradas de la dirección del CPU y busses de control y de regreso, emite comandos para los dos grupos de control. CS (Chip select).- (activo en bajo) este pin de entrada habilita la comunicación entre el 8255 y el CPU. RD (Read).- Lectura (activo en bajo) este pin de entrada habilita el 8255 para enviar el dato o estado de información para el CPU en el bus de datos. En esencia permite al CPU leer del 8255. WR (Write).- Escritura (activo en bajo) este pin de entrada habilita el CPU para escribir un dato o palabra de control en el 8255. A0 y A1 (Elige puerto 0 y Elige puerto 1).- Estas entradas en conjunto con las entradas RD y WR controlan la selección de uno de los tres puertos de los registros de control. Son conectados normalmente del bit menos significativo de la dirección del bus. (A0 y A1). Reset .- (activo en alto) esta entrada limpia el registro de control y los puertos (A,B,C) son establecidos para el modo de entrada. Grupo A y Grupo B.- La configuración funcional de cada puerto es programada por el software del sistema. LA palabra de control contiene información tal que “mode”, “bit set”, “bit reset”, etc., que inicializa la configuración funcional de el 8255. Cada grupo acepta “comandos” de pines Read/Write, recibe la palabra de control del bus de datos interno y emite los comandos para la asociación de puertos. Grupo de control A: Puerto A y Puerto C altos (C7-C4). Grupo de control B: Puerto B y Puerto C bajos (C3-C0). Puertos A, B, y C.- El 8255 contiene 3 puertos de 8 bits (A, B, C). Todos pueden ser configurados en una manera variada de funciones caracteristicas por el software del sistema pero cada uno tiene su “personalidad” para reforzar más allá el poder y flexibilidad del 8255. Documento de Trabajo Alberto de la Mora Gálvez 103 Universidad de Guadalajara Sistemas Digitales III DISTRIBUCION DE PINES TABLA BÁSICA DE OPERACIÓN La siguiente tabla se describe como deben ser configurados los pines A 1,A0 RD, WR, CS para la operación de lectura o escritura en el 8255. A1 0 0 1 A0 0 1 0 RD 0 0 0 WR 1 1 1 CS 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 x 1 x x 1 x x 0 1 X 1 1 1 0 0 Operación de Entrada (Read) Puerto A --- Bus de Datos Puerto B --- Bus de Datos Puerto C --- Bus de Datos Operación de Salida (Write) Bus de Datos --- Puerto A Bus de Datos --- Puerto B Bus de Datos --- Puerto C Bus de Datos --- Control Función de Inhabilitación Bus de datos --- 3-state Condición prohibida Bus de datos --- 3-state. Modo 0 Consta de 2 grupos de pines (entrada/salida), de los cuales pueden ser programados en grupos de 4 para que se comporten como entrada salida. Documento de Trabajo Alberto de la Mora Gálvez 104 Universidad de Guadalajara Sistemas Digitales III Ya sea que se quiera transmitir o recibir información primero se tiene que programar la palabra de control en las líneas (D0-D7) ya que con estas líneas se define como va a trabajar cada puerto si de entrada o de salida. Para programar la palabra de control D7 tiene que estar en 1 si esto no ocurre entonces no se puede programar. Con las líneas (A0,A1) se define el puerto con el que se va a trabajar según la tabla de operación antes mencionada. En seguida se hace una serie de manipulaciones con los pines WR y RD también mencionados en la tabla con el fin de definir la operación si va a ser de escritura o de lectura. En la siguiente tabla se definen los puertos en el Modo 0 A D4 D3 B D1 D0 Grupo Puerto A A Puerto C (upper) # Grupo Puerto B 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Output Output Output Output Output Output Output Output Input Input Input Input Input Input Input Input Output Output Output Output Input Input Input Input Output Output Output Output Input Input Input Input 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Output Output Input Input Output Output Input Input Output Output Input Input Output Output Input Input B Puerto C (lower) Output Input Output Input Output Input Output Input Output Input Output Input Output Input Output Input Modo 1 Este modo vale par los grupos A y B. Los dos grupos se configuran en un puerto de 8 bits de datos en un puerto de control de 4 bits por cada grupo. El puerto de 4 bits se usa para el control, el estado de las señales que afectan al puerto de datos. Estos bits de control tienen la siguientes funciones: /STB (in) (strobe input): Un nivel bajo en esta línea guarda en el registro del puerto los datos que se encuentren en 1. Estos datos son almacenados independientemente de las ordenes enviadas por la CPU hasta que esta haga una operación de lectura. IBF (in) (reconocimiento de almacenamiento): Esta señal se puede usar para interrumpir la CPU cuando un dispositivo de entrada pida este servicio. Cuando INTE (bandera de interrupción) del 8255 este a nivel alto (activada), “INTR” se pone en nivel alto en el flanco de subida de /STB y se pone en bajo en el flaco de bajada de /RD. INTEa del grupo A se activa programando un 1 en el bit 4 (PC4) del puerto C, por medio de la escritura en el registro de control. INTEb del grupo B se programa del mismo modo en el bit 2 (PC2) del puerto C. Estas señales son para la configuración de salida /OBF (indicación del nuevo dato). Estas salidas están en 0 en el flanco de subida de WR, y se ponen en 1 en el flanco de bajada de ACK. Básicamente el periférico indica mediante asta señal que hay un nuevo dato que transmitir. / ACK (reconocimiento de dato): La recepción de esta señal indica que la terminal conectada al puerto ha tomado los datos presentes en 1. Documento de Trabajo Alberto de la Mora Gálvez 105 Universidad de Guadalajara Sistemas Digitales III INTR (out) (Petición de interrupción): Esta señal se puede usar para interrumpir la CPU cuando la terminal este recogiendo los datos del puerto. INTR esta en 1 cuando INTE esta activa y OBF este a nivel alto. Cuando esta en 0 en el flanco de bajada de WR, la activación de INTE se hace de la misma manera que en la configuración de entrada. INTE1 (out): Se usa para generara señales INTR en combinación con /OBF y /ACK. Se activa escribiendo un 1 por PC6. Modo 2. Este modo produce operaciones bidireccionales, usando un bus de 8 bits para las comunicaciones con otras terminales. Este modo solo es valido para el grupo A. Usa el puerto A para el bus y los 5 bits mas significativos del puerto como control. El bus tiene dos registros, uno mas para entrada y otro para salida. Las señales de control del puerto C son similares a las del modo 1, y también pueden interrumpir la CPU usando estas señales. Cuando el grupo A funciona en modo 2, el grupo B puede funcionar en modo 0 o 1. Cuando el grupo A esta en modo 2, las siguientes señales de control están presentes de la siguiente manera: /OBF (out) (Indicación de nuevo dato): Esta salida se pondrá en 0 para indicar que la CPU ha enviado datos al registro interno del puerto A. Cuando esto ocurre, el bus queda flotando (en alta impedancia). /ACK (in) (Reconocimiento del dato): Un nivel bajo en esta entrada produce la transferencia de datos del registro al puerto A. Cuando vuelva a nivel Alto, el bus vuelve a estado de alta impedancia. /STB (in) (Strobe input): Cuando se encuentra a nivel bajo, los datos presentes en el bus son almacenados en el registro de entrada de este, y los datos se transfieren al bus del sistema con la señal RD. IFB (out) (reconocimiento de almacenamiento): Cuando los datos de entrada han sido almacenados en el registro de entrada esta señal esta en 1. INTR (out) (petición de interrupción): Esta salida se usa para interrumpir la CPU y operar de la misma manera que en el modo 1 en entrada o en salida. Documento de Trabajo Alberto de la Mora Gálvez 106 Universidad de Guadalajara Sistemas Digitales III DISPOSITIVOS OPTOELECTRONICOS Un optoacoplador combina un dispositivo semiconductor formado por un fotoemisor, un fotoreceptor y entre ambos hay un camino por donde se transmite la luz. Todos estos elementos se encuentran dentro de un encapsulado que por lo general es del tipo DIP. Funcionamiento del Optoacoplador La señal de entrada es aplicada al fotoemisor y la salida es tomada del fotoreceptor. Los optoacopladores son capaces de convertir una señal eléctrica en una señal luminosa modulada y volver a convertirla en una señal eléctrica. La gran ventaja de un optoacoplador reside en el aislamiento eléctrico que puede establecerse entre los circuitos de entrada y salida. Los fotoemisores que se emplean en los optoacopladores de potencia son diodos que emiten rayos infrarrojos (IRED) y los fotoreceptores pueden ser tiristores o transistores. Cuando aparece una tensión sobre los terminales del diodo IRED, este emite un haz de rayos infrarrojo que transmite a través de una pequeña guia-ondas de plástico o cristal hacia el fotorreceptor. La energía luminosa que incide sobre el fotorreceptor hace que este genere una tensión eléctrica a su salida. Este responde a las señales de entrada, que podrían ser pulsos de tensión. Documento de Trabajo Alberto de la Mora Gálvez 107 Universidad de Guadalajara Sistemas Digitales III Construccion de optoacopladores Construcción mecánica La figura muestra la construcción mecánica y la capacitancia parásita de acople resultante entre la entrada (diodo luminiscente) y la salida (fototransistor). Debido al método de construcción, altas resistencias de aislamiento, de típicamente 10E11 ohmios entre la entrada y la salida, pueden lograrse de manera que en la práctica la resistencia de aislamiento está determinada por el material del circuito impreso y la contaminación superficial que ocurre inevitablemente. Sin embargo, las capacitancias de acople entre el diodo luminiscente y el fototransistor son las que más probablemente limitan el desempeño en operación normal. Aunque la capacitancia, dependiendo del tipo de acoplador, está entre 0.5 y 2 pF y por lo tanto es menos considerable que la capacitancia de acoplamiento de otros dispositivos de aislamiento (transformadores de línea, etc), bajo condiciones extremas puede tener un efecto perturbador. Al respecto, la capacitancia en la conexión del anódo con el diodo luminiscente y la conexión de la base del fototransistor, es particularmente crítica y el efecto aumenta aún más por la capacitancia debida a las pistas del circuito impreso. La conexión de la base es la parte más sensible del acoplador, ya que las corrientes de interferencia acopladas en este punto aparecen de nuevo en la salida, amplificadas por el factor de ganancia de corriente. Si se requiere la máxima supresión de interferencia posible, se recomienda utilizar acopladores en los cuales la conexión de la base del fototransistor no está expuesta. Bajo estas condiciones la operación del fotodiodo con un amplificador altamente sensible no es recomendable, ya que en este caso aún los pequeños voltajes de interferencia entre la entrada y la salida del optoacoplador pueden interferir con el circuito posterior. Documento de Trabajo Alberto de la Mora Gálvez 108 Universidad de Guadalajara Sistemas Digitales III - OPERACION DEL FOTODIODO – Desempeño Dinámico Los datos de conmutación dados en las hojas del fabricante del optoacoplador deben tomarse en consideración junto con los circuitos relevantes de medición. Los últimos se seleccionan de manera que tengan una influencia mínima o nula sobre el acoplador, de manera que únicamente el desempeño del acoplador en sí mismo sea el que se mida. En la práctica el circuito subsecuente reacciona sobre el optoacoplador de manera que en este caso las hojas del fabricante pueden usarse con medida, para determinar el desempeño de conmutación del circuito. Operación del fotodiodo El desempeño de conmutación del optoacoplador en este modo de operación es generalmente medido con una resistencia de carga de 1 K. El tiempo de retardo son determinados por los siguientes parámetros: El tiempo de subida de la radiación desde el diodo luminiscente. La capacitancia de unión del fotodiodo (la capacitancia del diodo depende de el voltaje inverso aplicado) El valor de las resistencias de carga, que junto con la capacitancia del diodo determina la constante de tiempo del circuito de salida. Como esta aplicación sólo se usa si se requieren tiempos de conmutación pequeños, un aumento significativo de la resistencia de carga no se usa en la práctica, de tal forma que prevalezca el efecto de la capacitancia del fotodiodo y la capacitancia del circuito subsecuente tan pequeñas como sea posible. En este caso, la rapidez del circuito subsecuente puede determinarse directamente de las hojas del fabricante. Para el optoacoplador TIL 103, el tiempo de subida y de bajada para la corriente en el diodo son en ambos casos, de 150 ns. Por lo tanto, la duración del ciclo a una frecuencia de entrada máxima es T=2. tr(rise) y tf(fall) son de 300 ns que corresponde a una frecuencia de 3 MHz. Documento de Trabajo Alberto de la Mora Gálvez 109 Universidad de Guadalajara Sistemas Digitales III Enlaces de transmisión simple La interfaz de los optoacopladores electrónicos con circuitos TTL es muy sencilla, tal que éstos pueden manejar circuitos TTL y a su vez pueden ser manejados por circuitos TTL. CIRCUITO DE MEDICION DEL DESEMPEÑO DINAMICO DE OPTOACOPLADORES - OPERACION DEL FOTOTRANSISTOR - Operación del fototransistor La figura muestra el circuito del mediciónpara determinar los tiempos de conmutación en la operación del fototransistor. Básicamente, los argumentos dados para la operación del fotodiodo también se aplican en este caso. Como el fototransistor puede visualizarse como una combinación de un fotodiodo y un transistor NPN. La capacitancia del fotodiodo está en paralelo con la unión base-colector y por lo tanto, actúa como una capacitancia de Miller. Con el voltaje de colector Vb>10 V usado en los circuitos de medición, la capacitancia es relativamente pequeña y la ganancia de voltaje del circuito de medición, con una resistencia de carga RL=100 ohmios es pequeña. En la práctica, una resistencia de carga de varios kiloohms se usan ampliamente, por lo que la ganancia del circuito es 10 o 50 veces más grande que en el circuito de medición. Además, el transistor se activa incluso hasta la saturación, pero con estos voltaje colector-base tan pequeños, la capacitancia del fotodiodo (igual a la capacitancia de la unión colector-base) sube más en un factor de 3 o 4, lo que incrementa más los Documento de Trabajo Alberto de la Mora Gálvez 110 Universidad de Guadalajara Sistemas Digitales III tiempos de subida y de bajada. Esto explica por qué las frecuencias de transmisión de 5 a 10 KHz se obtienen con circuitos relativamente sencillos. CIRCUITO PARA LA DETERMINACION DE LA CORRIENTE DE SALIDA Para determinar la corriente de salida de la compuerta y por lo tanto, la corriente en el diodo luminiscente, en la figura , debe usarse el circuito interno de la compuerta. La figura muestra el circuito equivalente, donde RL1 y RL2 representan las resistencias de línea. La corriente se calcula de la fórmula: Vcc - Vce,satT - Vd - Vf If = ____________________________ R1 + RL1 + RL2 Si se usa un par trenzado, cualquiera de 0,4mm de diámetro se usa como línea, y con una longitud de línea de 100m, la resistencia RL1=RL2=14 ohmios. Por lo tanto, la corriente If del optoacoplador es: 5-0,3-0,7-1,2 If = ________________ = 17,7 mA 130 + 14 + 14 Para el TIL 117, con una razón de transferencia de corriente mínima de 50%, se obtiene una corriente de salida Iol=9 mA Con el fin de tomar en cuenta el proceso de variaciones, que afecta los componentes dentro del SN 7404N, las fluctuaciones en el voltaje de trabajo, y envejecimiento del optoacoplador, el cálculo se continúa con la mitad del valor, Iol=4,5 mA. La resistencia R se selecciona tan baja como sea posible, a fin de conseguir tiempos de conmutación cortos. Vcc R=____________________ Iol - Iil 7404 5 R= _________________ = 1,5 K 4,5E-3 - 1,2E-3 Documento de Trabajo Alberto de la Mora Gálvez 111 Universidad de Guadalajara Sistemas Digitales III DISPOSITIVOS MECANICOS Tipos de relés Un relé es un sistema mediante el cuál se puede controlar una potencia mucho mayor con un consumo en potencia muy reducido. Tipos de relés: Relés electromecánicos: A) Convencionales. B) Polarizados. C) Reed inversores. Relés híbridos. Relés de estado sólido. Estructura de un relé En general, podemos distinguir en el esquema general de un relé los siguientes bloques: Circuito de entrada, control o excitación. Circuito de acoplamiento. Circuito de salida, carga o maniobra, constituido por: - circuito excitador. - dispositivo conmutador de frecuencia. - protecciones. Características generales Las características generales de cualquier relé son: El aislamiento entre los terminales de entrada y de salida. Adaptación sencilla a la fuente de control. Posibilidad de soportar sobrecargas, tanto en el circuito de entrada como en el de salida. Las dos posiciones de trabajo en los bornes de salida de un relé se caracterizan por: - En estado abierto, alta impedancia. - En estado cerrado, baja impedancia. Documento de Trabajo Alberto de la Mora Gálvez 112 Universidad de Guadalajara Sistemas Digitales III Para los relés de estado sólido se pueden añadir : Gran número de conmutaciones y larga vida útil. Conexión en el paso de tensión por cero, desconexión en el paso de intensidad por cero. Ausencia de ruido mecánico de conmutación. Escasa potencia de mando, compatible con TTL y MOS. insensibilidad a las sacudidas y a los golpes. Cerrado a las influencias exteriores por un recubrimiento plástico. Relés electromecánicos. Están formados por una bobina y unos contactos los cuales pueden conmutar corriente continua o bien corriente alterna. Vamos a ver los diferentes tipos de relés electromecánicos. Relés de tipo armadura Son los más antiguos y también los más utilizados. El esquema siguiente nos explica prácticamente su constitución y funcionamiento. El electroimán hace vascular la armadura al ser excitada, cerrando los contactos dependiendo de si es N.O ó N.C (normalmente abierto o normalmente cerrado). Relés de Núcleo Móvil Estos tienen un émbolo en lugar de la armadura anterior. Se utiliza un solenoide para cerrar sus contactos, debido a su mayor fuerza atractiva (por ello es útil para manejar altas corrientes). Documento de Trabajo Alberto de la Mora Gálvez 113 Universidad de Guadalajara Sistemas Digitales III Relé tipo Reed o de Lengüeta Formados por una ampolla de vidrio, en cuyo interior están situados los contactos (pueden se múltiples) montados sobre delgadas láminas metálicas. Dichos contactos se cierran por medio de la excitación de una bobina, que está situada alrededor de dicha ampolla. Relés Polarizados Llevan una pequeña armadura, solidaria a un imán permanente. El extremo inferior puede girar dentro de los polos de un electroimán y el otro lleva una cabeza de contacto. Si se excita al electroimán, se mueve la armadura y cierra los contactos. Si la polaridad es la opuesta girará en sentido contrario, abriendo los contactos ó cerrando otro circuito( ó varios) Relés de estado sólido Un relé de estado sólido SSR (Solid State Relay), es un circuito eléctrónico que contiene en su interior un circuito disparado por nivel, acoplado a un interruptor semiconductor, un transistor o un tiristor. Por SSR se entenderá un producto construido y comprobado en una fábrica, no un dispositivo formado por componentes independientes que se han montado sobre una placa de circuito impreso. Estructura del SSR: Circuito de Entrada o de Control: Control por tensión continua: el circuito de entrada suele ser un LED ( Fotodiodo), solo o con una resistencia en serie, también podemos encontrarlo con un diodo en antiparalelo para evitar la inversión de la polaridad por accidente. Los niveles de entrada son compatibles con TTL, CMOS, y otros valores normalizados ( 12V, 24V, etc.). Documento de Trabajo Alberto de la Mora Gálvez 114 Universidad de Guadalajara Sistemas Digitales III Control por tensión Alterna: El circuito de entrada suele ser como el anterior incorporando un puente rectificador integrado y una fuente de corriente continua para polarizar el diodo LED. Acoplamiento. El acoplamiento con el circuito se realiza por medio de un optoacoplador o por medio de un transformador que se encuentra acoplado de forma magnética con el circuito de disparo del Triac. Circuito de Conmutación o de salida. El circuito de salida contiene los dispositivos semiconductores de potencia con su correspondiente circuito excitador. Este circuito será diferente según queramos conmutar CC, CA. INTERFASE CON EL MUNDO ANALOGICO. Repaso de la representación digital en relación con la analogíca. Una cantidad digital tiene un valor que se especifica por una de las posibilidades, 0 o 1, BAJO o ALTO, falso o verdadero, y así sucesivamente. En la practica, una cantidad digital, como un voltaje, podría tener un valor dentro de los rangos especificados; los valores que están dentro de un rango se definen de modo que representan el mismo valor digital. Por ejemplo, para lógica TTL se sabe que: 0V A 0.8V = 0 LÓGICO 2V a 5V = 1 lógico Cualquier voltaje que se encuentre dentro del rango 0 a 0.8V representa el valor digital 0, y a cualquiera que se encuentre en el rango 2 a 5V se le asigna el valor digital 1. Los valores exactos de los voltajes no son significativos, ya que los circuitos digitales responden de la misma manera para todos que se encuentran dentro de un rango dado. En contraste, una cantidad analógica puede tomar cualquier valor sobre un rango continuo de valores y, lo más importante, su valor exacto si es significativo. Por ejemplo, la salida de un convertidor analógico de temperatura a voltaje podría medirse como 2.76V, valor que tal vez represente una temperatura especifica de 27.6ºC. si el voltaje medido fuese un poco diferente, 2.34V o 3.78V, este representaría una temperatura muy diferente. En otras palabras, cada valor posible de una cantidad analógica tiene un significado distinto. Otro ejemplo de la situación anterior es la salida en voltaje proveniente de un amplificador de audio hacia los altavoces. Este voltaje es una cantidad analógica porque cada uno de sus posibles valores produce una respuesta diferente en el altavoz. Muchas variables físicas son de naturaleza analógica y pueden tomar cualquier valor dentro de un rango continuo dentro de estos. Ejemplos de variables de ese tipo incluyen temperatura, presión, intensidad luminosa, señales de audio, posición, velocidad rotacional, y velocidad de flujo. Los sistemas digitales llevan a cabo todas sus operaciones internas mediante el uso de circuitería y operaciones digitales. Cualquier información que tenga que introducirse en u sistema digital, primero debe ponerse en forma digital. De manera similar, las salidas de un sistema de esta naturaleza siempre son digitales. Cuando un sistema digital, como una computadora, se va a utilizar para vigilar y/o controlar un proceso físico, el diseñador se enfrenta con la naturaleza digital de la computadora y la analogía de las variables del proceso. La fig. 1 ilustra esta situación. El diagrama muestra los cinco elementos que participan cuando una computadora vigila y controla una variable física que se presume es analógica: Transductor. Por lo general, la variable física no es una cantidad eléctrica. Un transductor es un dispositivo que convierte una variable física en una eléctrica. Algunos transductores de uso común son los termistores, las fotoceldas, los fotodiodos, los medidores de flujo, los transductores de presión y los tacómetros. La salida eléctrica de un transductor es la corriente o un voltaje analógico proporcional a la Documento de Trabajo Alberto de la Mora Gálvez 115 Universidad de Guadalajara Sistemas Digitales III variable física que se esta vigilando. Por ejemplo, la variable física podría ser la temperatura del agua contenida que se llena con dos tuberías que transportan, cada una agua caliente y fría. Supongamos que la temperatura del agua varia de 80ºF a 150ºF y que el termistor, junto con la circuitería asociada con este, convierten las variaciones de temperatura a un voltaje que varia de 800 a 1500mV. 3 2 4 Entrada analógica (eléctrica) 5 Control de una variable física Sistema digital (por ejemplo una computadora) DAC ADC Transductor Actu a d o r 1 Variable Física Salida analógica Entradas digitales Salidas digitales Fig. 1. Los convertidores analógico-digital (ADC) y digital-analógico (DAC) se utilizan para conectar la computadora con el mundo analógico de modo que esta pueda vigilar y controlar una variable física. Created with Visio Convertidor analógico-digital (ADC). La salida analógica (eléctrica) del transductor es la entrada al ADC. El ADC convierte esta entrada en una salida digital. Esta ultima consiste de varios bits que representan el valor de la entrada analógica. Por ejemplo, el ADC puede convertir los valores analógicos entre 800 y 1500mV en valores binarios que varían desde 01010000 (80) a 10010110 (150). Observe que la salida binaria del ADC es proporcional al voltaje analógico de entrada, de modo que cada unidad de la salida digital representa 10mV. Computadora. La representación digital de la variable del proceso se transmite desde el ADC hacia la computadora, que lo almacena y procesa de acuerdo las instrucciones del programa en ejecución. El programa efectuara cálculos u otras operaciones sobre la representación digital de la temperatura, para generar una salida digital que eventualmente servirá para controlar la temperatura. Convertidor digital-analógico (DAC). La salida digital de la computadora se conecta a un DAC, que la convierte a un voltaje o corriente proporcional. Por ejemplo, la computadora puede producir una salida que cambia de 00000000 a 11111111, la que el DAC convierte en un voltaje que varia de 0V a 10V. Actuador. A menudo, la señal analógica que proviene del DAC está conectada a algún circuito o dispositivo que sirve como actuador para el control de la variable física. Para el ejemplo del tanque de agua, el actuador puede ser una válvula controlada en forma eléctrica que regula el flujo de agua caliente hacia el tanque, de acuerdo con el voltaje analógico proveniente del DAC. La rapidez de flujo cambia en forma proporcional, de acuerdo con este voltaje analógico; 0V no produce ningún flujo mientras que 10V produce la máxima rapidez de flujo. Es así como se observa que los ADC’s y DAC’s funcionan como interfaces entre un sistema totalmente digital, como una computadora, y el mundo analógico. Esta función cada vez tiene mayor importancia que las microcomputadoras de bajo costo penetran en área de control de procesos donde antes no era factible su uso. CONVERSIÓN DIGITAL-ANALÓGICA. Básicamente, la conversión D/A es el proceso de tomar un valor representado en el código digital (como binario directo o BCD) y convertirlo en un voltaje o corriente que sea proporcional al valor digital. La fig. 2, muestra el diagrama de un convertidor D/A común de cuatro bits. Documento de Trabajo Alberto de la Mora Gálvez 116 Universidad de Guadalajara Sistemas Digitales III Fig. 2. Convertidor de 4 bits con salida de voltaje. Las entradas digitales D, C, B, y A se derivan generalmente del registro de salida de un sistema digital. Los 2 4 = 16 diferentes números binarios. Para cada número de entrada, el voltaje de salida analógico de V SAL es igual en volts al número binario. También podría tener dos veces el número binario o algún otro factor de proporcionalidad. La misma idea sería aplicable si la salida del D/A fuese la corriente I SAL . En general, Salida analógica = K * entradadigital donde K es el factor de proporcionalidad y tiene un valor constante para un DAC dado. Claro que la salida analógica puede ser un voltaje o una corriente. Cuando es un voltaje, k tiene unidades de voltaje y, cuando es una corriente, k tiene unidades de corriente. CIRCUITERIA DE UN CONVERTIDOR D/A Existen varios métodos y circuitos para producir la operación D/A que se a descrito. La fig. 3 muestra el circuito básico para un DAC de 4 bits. Las entradas A, B, C y D son estradas binarias que se suponen tienen valores de 0V a 5V. El amplificador operacional sirve como amplificador sumador, el cual produce los factores de los factores de ponderación de estos voltajes de entrada. Fig. 3 DAC simple que utiliza un amplificador operacional en configuración con resistencias de ponderación binarias. La resolución de este convertidor D/A es igual a la asignación del factor de ponderación del LSB, que es 1/8 *5V= 0.625V. Documento de Trabajo Alberto de la Mora Gálvez 117 Universidad de Guadalajara Sistemas Digitales III DAC con salida de corriente. La figura 4 muestra un esquema básico para generar una corriente de salida analógica que sea proporcional a la entrada binaria. El circuito mostrado es un DAC de 4 bits que emplea resistencias con factores de ponderación binarios. El circuito utiliza cuatro trayectorias paralelas para la corriente, cada una controlada por un interruptor semiconductor tal como la compuerta de transmisión CMOS. El estado de cada interruptor esta controlado por los niveles lógicos de entradas binarias. La corriente que circula por cada trayectoria esta determinada por un voltaje de referencia preciso V REF y una resistencia de precisión que forma parte de la trayectoria. Las resistencias están ponderadas I en forma binaria y la corriente total, SAL es igual a la suma de todas las corrientes. La trayectoria correspondiente al MSB tiene la resistencia de valor más pequeño, R; la siguiente trayectoria una resistencia cuyo valor es dos veces el del primero, y así sucesivamente. La corriente de salida puede circular por una carga R L que es mucho más pequeña que R para que, de esta manera, no tenga ningún efecto sobre el valor de la corriente. Idealmente, R L debe ser un corto circuito a tierra. I SAl B3 xI O B 2 x dondeI0 IO I I B1 x O B0 x 0 2 4 8 V REF R (a) (b) Fig. 4. (a) DAC básico con salida de corriente; (b) conectado a un amplificador operacional convertidor de corriente a voltaje. Documento de Trabajo Alberto de la Mora Gálvez 118 Universidad de Guadalajara Sistemas Digitales III ESPECIFICACIONES DEL DAC. Se dispone de una amplia variedad de DAC’s así como CI’s o bien como paquetes encapsulados autocontenidos. Uno debe estar familiarizados con las especificaciones más importantes de los fabricantes a fin de evaluar un DAC para una determinada aplicación. Resolución Como se menciono antes, la resolución porcentual de un DAC depende únicamente por el número de bits. Por esta razón, los fabricantes por lo general especifican una resolución de DAC como el número de bits. Un DAC de 10 bits tiene una resolución más sensible (mayor exactitud) que uno de 8 bits. Precisión Los fabricantes de DAC tiene varias maneras de especificar la precisión. Las dos más comunes se llaman error de escala completa y error de linealidad, que normalmente se expresan como un porcentaje de la salida a escala completa del convertidor (%F.S.). El error a escala completa es la máxima desviación de la salida del DAC de su valor estimado (ideal), expresado como un porcentaje a escala completa. Por ejemplo, suponga que el DAC de la fig. 3 tiene una exactitud de ±0.01% F.S. como este convertidor tiene un salida a escala completa de 9.375V, este porcentaje se convierte en ±0.01% x 9.375V = ±0.9375mV Esto significa que la salida de este DAC puede, en cualquier instante, variar 0.9375mV den su valor esperado. El error de linealidad es la desviación máxima en el tamaño de paso del tamaño de paso ideal. Por ejemplo, el DAC de la fig. 3 tiene un tamaño de paso estimado de 0.625V. si este convertidor tiene un error de linealidad de ±0.01%F.S., esto significa que el tamaño de paso real podría apartarse del estimado hasta 0.9375mV. Error de desplazamiento (“offset”) En el caso ideal, la salida de un DAC será de cero volts cuando la entrada binaria es toda de ceros. Pero, en la práctica, habrá un voltaje de salida muy pequeño para esta situación y se llama error de desplazamiento. Este error de desplazamiento, si no se corrige, se sumará a la salida esperada del DAC en todos los casos de entrada. Por ejemplo, un DAC de 4 bits tiene un error de desplazamiento de +2mV y un tamaño del paso perfecto de 100mV. La tabla 1 muestra la salida ideal y la real de DAC en todos los casos de entrada. CÓDIGO DE ENTRADA 0000 0001 1000 1111 Salida ideal (mV) SALIDA REAL MV 0 100 800 1500 2 102 802 1502 Tabla 1. Tiempo de establecimiento La velocidad de operación de un DAC por lo general se especifica dando su tiempo de establecimiento, que es el tiempo requerido para que la salida del DAC cambie de 0 a su valor a escala completa cuando todos loa bits de la entrada binaria cambian de 0 a 1. Documento de Trabajo Alberto de la Mora Gálvez 119 Universidad de Guadalajara Sistemas Digitales III Monotonicidad Un DAC es monotónico si su salida aumenta a medida que la entrada binaria se incrementa de un valor a otro. Otra forma de describir esta característica es que la salida en escalera no tendrá pasos hacia abajo a medida que la entrada binaria aumenta de cero a su valor de escala completa. APLICACIONES DEL DAC. Los DAC’s siempre que la salida de un circuito debe proporcionar un voltaje o corriente analógico para manejar un dispositivo analógico. Algunas de las aplicaciones más comunes son: Control La salida de una computadora puede convertirse en una señal de control analógico para ajustar la velocidad de un motor, la temperatura de un horno o bien para controlar casi cualquier variable física. Pruebas automáticas Las computadoras pueden ser programadas para generar las señales analógicas (a través de un DAC) que se necesitan para probar circuitos analógicos. La respuesta de la salida analógica de prueba normalmente se convertirá en un valor digital por un ADC y se alimentara a la computadora para almacenada, exhibida y algunas veces analizada. Reconstrucción de la señal En muchas aplicaciones se digitaliza una señal analógica, lo cual significa que varios puntos sucesivos de esta se convierten en su equivalente digital y se guardan en la memoria. El DAC puede entonces utilizarse para convertir los datos digitales en memoria de regreso, un punto a la vez, a una señal analógica, reconstruyendo de esta manera la señal original. Conversión A/D Los DAC’s son tanto digitales como analógicos. Se pueden utilizar puntas de prueba lógicas y pulsadores en las entradas pero se debe emplear un medidor u osciloscopio para la salida analógica. Existen básicamente dos formas de probar la operación de un DAC la prueba de estática y la prueba de escalera. CONVERSION ANALOGICA DIGITAL (ADC). En el control automático resulta conveniente efectuar las funciones de regulación de sistemas mediante técnicas digitales, sin embargo en la gran mayoría de los procesos la señal disponible es analógica, ya que son muchos los transductores que poseen una salida eléctrica de tipo analógica, correspondiente a la magnitud de la variable de medición como pueden ser las señales de audio, vídeo, los puentes de medición, las celdas extensiometricas, los termopares, etc. Estas características nos obligan a tener que efectuar una conversión analogica-digital (ADC), por otro lado puede ser necesario actuar analógicamente sobre un controlador o elemento de control final, o efectuar una representación analógica sobre un registrador, una pantalla, etc. lo que nos obliga a realizar la conversión inversa, esto es, digital analógica (DAC), es necesario pues disponer de estos elementos capaces de efectuar esta conversión en uno u otro sentido, con unas características de velocidad adecuadas a cada caso. Un convertidor A/D toma un voltaje analógico y después de cierto tiempo produce un código de salida digital que representa la entrada analógica. El proceso de conversión A/D es generalmente más complejo y largo que el proceso D/A, y se han creado y utilizado muchos métodos. Varios tipos importantes de ADC utilizan un DAC como parte de sus circuitos. La fig. 1 es un diagrama de bloque general para esta clase de ADC. La temporización para realizar la operación la proporciona la señal de reloj de entrada. La unidad de control contiene los circuitos lógicos para generar la secuencia de operaciones adecuada a respuesta del comando de INICIO, el cual comienza el proceso de conversión. Documento de Trabajo Alberto de la Mora Gálvez 120 Universidad de Guadalajara Sistemas Digitales III El comparador con amplificador operacional tiene dos entradas analógicas y una salida digital que intercambian estados, dependiendo cuál entrada analógica sea mayor. Fig. 1 Diagrama general de una clase de convertidores ADC. La operación básica de los ADC’s de este tipo consta de los siguientes pasos: 1. El comando de INICIO pasa ALTO, dando inicio a la operación. 2. A una frecuencia determinada por el reloj, la unidad de control continuamente modifica el número binario que está almacenado en el registro. V AX , por el DAC. 4. El comparador compara V AX , con la entrada analógica V A . Mientras que V AX V A , la salida del comparador permanece en ALTO. Cuando V AX excede a V A por lo menos en una cantidad 3. El número binario del registro es convertido en un voltaje analógico, VT (voltaje umbral), la salida del comparador pasa a BAJO y detiene el proceso de modificación del número del registro. En este punto, V AX es un valor muy aproximado a V A El numero digital del registro, que es el equivalente digital de V AX es asimismo el equivalente digital de V A dentro de los limites de la resolución y exactitud del sistema. 5. La lógica de control activa la señal de fin de conversión, FDC, cuando se completa el proceso de conversión. Las diversas variaciones de este esquema de conversión A/D difieren principalmente de la forma en que la sección de control continuamente modifica los números contenidos en el registro. De lo contrario, la idea básica es la misma, con el registro que contiene la salida digital requerida cuando se completa el proceso de conversión. Documento de Trabajo Alberto de la Mora Gálvez 121 Universidad de Guadalajara Sistemas Digitales III TIPOS DE ADC'S. Dado que el numero de bits que se obtienen de un convertidor es finito, el código de salida deberá ser siempre deberá ser siempre el correspondiente al valor mas cercano que puede representarse mediante los bits, la conversión digital efectúa una cuantificación en la entrada analógica, acotándola entre dos niveles consecutivos cuya distancia es precisamente el grado de resolución obtenido. Existen diversos tipos de convertidores en igual forma utilizados para efectuar la conversión, en unos casos se efectúa la conversión directa, por comparación contra una tensión de referencia, en otros casos se efectúa una transformación a una variable intermedia, como puede ser el tiempo, también puede efectuarse la conversión AD efectuando una conversión inversa DA, usando al mismo tiempo una estructura de retroalimentación, si se usa lazo cerrado reciben entonces el nombre de servoconvertidores, según sea el método utilizado se obtienen distintas características de precisión, rapidez de conversión y costo. El proceso de conversión AD es generalmente mas completo y largo que el proceso inverso DA, se han creado y utilizado muchos métodos de conversión AD como es: Aproximaciones sucesivas. Se discute únicamente el método de aproximaciones sucesivas ya que el que usa el ADC 0809, el método AD de aproximaciones sucesivas es uno de los tipos mas ampliamente utilizados. Los convertidores de aproximaciones sucesivas contienen un valor fijo en su tiempo de conversión que no depende del valor de la entrada analógica, la disposición básica es semejante a la de ADC de rampa digital, sin embargo, el convertidor de aproximaciones sucesivas no utiliza ningún contador para dar la entrada en el bloque del convertidor DAC, pero en cambio usa un registro con lógica de control que modifica el contenido del registro bit a bit hasta que los datos del registro son el equivalente digital de la entrada analógica. El tiempo de conversión de los convertidores de aproximaciones sucesivas de "n" bits requieren "n" ciclos de reloj para realizar su conversión sin importar la magnitud del voltaje que esta presente en su entrada, esto se debe a que los circuitos de control tienen que ensayar un 1 lógico en cada posición del bit para ver si se necesita o no, es por esto que los convertidores de aproximaciones sucesivas tienen tiempos de conversión muy rápidos, su uso en aplicaciones de sistemas con adquisición de datos permitirán que se adquieran mas valores de datos en un intervalo de tiempo dado. Esto puede ser muy importante cuando los datos analógicos cambian su valor rápidamente. METODO DE APROXIMACIONES SUCESIVAS. En el método de conversión AD por "Conversión Inversa", utiliza un convertidor DA y tiene la ventaja de su simplicidad, pero se obtiene el inconveniente del retardo de tiempo de conversión que se precisa para realizar el contaje de los "n" bits, la adición de un comparador adicional, para acelerar el contaje cuando e error es mayor que un cierto nivel, nos permite reducir apreciablemente el tiempo de conversión del orden de 2n al de orden 2n/2+1 ; tiempo que aun es posible de acotar si se efectúan "n" comparaciones sucesivas entre la tensión de entrada Vx y la tensión Vh generada durante la conversión, para esto se substituye el contador de "convertidor inverso" por una unidad lógica de comparación que determina la secuencia de conversión del diagrama de conversión de un convertidor ADC de aproximaciones sucesivas. La primera comparación se deberá efectuar entre la tensión de entrada Vx y la tensión Vh=Vmax/2, correspondiente a la palabra 1000, se Vh es mayor o igual a Vx, se determina que el bit de mayor peso debe ser uno, pero si Vh<Vx, se debe memorizar un cero en el registro de salida, en el siguiente impulso de reloj se efectúa una segunda comparación de Vh correspondiente a la palabra 1100, si la comparación anterior había dado positiva, o se compara contra 0100 en caso contrario, la salida del comparador determina el valor que debe memorizarse con un bit de peso Vmax/4, configurándose de esta forma, la palabra de salida digital una vez efectuadas las "n" comparaciones sucesivas. El registro de aproximaciones sucesivas esta constituido básicamente por un contador y un decodificador, que efectúa el direccionamiento de los "n" biestables del registro. Documento de Trabajo Alberto de la Mora Gálvez 122 Universidad de Guadalajara Sistemas Digitales III El ciclo se inicia mediante un impulso de inicio de conversión, que pone a cero el contador al mismo tiempo que se desbloquea el oscilador, durante cada fase, mientras que el reloj esta en nivel alto, el biestable direcionado es puesto en estado " 1 " y al bajar a cero la señal de reloj, queda memorizado el estado del comparador, al quedar abierta la entrada R del biestable correspondiente, de esta forma, al sucederse los " n " impulso de reloj se producen las sucesivas aproximaciones de la palabra de salida. Los convertidores de aproximaciones sucesivas tienes la precisión del convertidos DAC que contienen y poseen un tiempo de conversión que puede llegar a se del orden de 0.1 &s, estos bajo tiempos de conversión y su relativamente bajo costo, hacen que sean los convertidores de 8, 10 y 12 bits mas utilizados, incluso en la mayoría de los sistemas de adquisición de datos en que se requiere de exploración de todas las entradas con un reducido tiempo de ciclo. La señal de entrada proviene de un instrumento transmisor, este Tx produce una corriente que se encuentra en el rango de instrumentación estándar de 4 mA a 20 mA, esta corriente se convierte fácilmente a una señal de tensión en la entrada del " Convertidor ADC " por medio del circuito convertidor de corriente a voltaje, esta tensión en proporcional a la señal del Tx se envía directamente al microcircuito ADC0803. El código resultante en la salida del Convertidor ADC se introduce a un sistema con microprocesador a través del puerto de entrada. FUNCIONAMIENTO DEL ADC0809. Este ADC contiene un circuito equivalente a una red DAC tipo 256R, los interruptores analógicos están secuenciados por una lógica de aproximaciones sucesivas que detecta la diferencia de los voltajes de entrada Vin (+) y Vin (-), con su correspondiente derivación en la red resistiva, el bit mas significativo es el que es comparado primeramente, para realizar 8 comparaciones se necesitan 64 ciclos de reloj, produciendo una salida digital codificada en binario de 8 bits, esto es 111111112 a escala completa, la salida digital se transfiere a un "latch" de salida, y posteriormente se asegura la señal de interrupción, una conversión ADC en proceso puede ser interrumpida en cualquier momento esto se logra cuando es transmitida una segunda señal del START, el dispositivo ADC0809 puede ser operado en modo de carrera libre, al conectar INTR con WR estando CS en 0, con esto se asegura la primera conversión bajo cualquier condición, se requiere un pulso externo en WR cuando se conecta el convertidor por primera vez, la transición de alto a bajo de un pulso de reloj en la entrada WR del ADC0809 comienza el proceso de conversión, la salida digital binaria aparece 100 &micro;sg mas tarde, este convertidor puede realizar mas de 500 conversiones por segundo, sus salidas tienes "buffers" de tres estados lo cual nos permite conectarlos directamente al "bus de datos" de un microprocesador, la ventaja del ADC0809 es que tiene una salida INTR que puede realizar una doble función ya que a parte de señalarle al ADC cuando termina el proceso del conversión, se vuelve muy útil cuando se conecta a dispositivos asincronos mas lentos como por ejemplo un microprocesador. Una parte importante del convertidor es la señal de reloj, esta se puede tomar directamente del CPU o puede sustituirse por alguna red RC, para añadirle así su propia señal de reloj, la entrada CLK IN hace uso de un "Schmidt Trigger", la exactitud del convertidor ADC0809 depende de varios factores, de los cuales es muy importante tomar en cuenta el valor inicial, la estabilidad de la temperatura y el voltaje de referencia, para el Vref/2 los voltajes deben tener un valor nominal de 2.4 VDC causan errores de conversión de &plusmn; 1LSB, en sus aplicaciones en donde se utilizan la reducción del span, los valores iniciales y la estabilidad del Vref/2 vienen a ser muy importantes, por ejemplo, si el span es reducido a 2.5 VDC al voltaje de la entrada analógica del bit menos significativo le corresponde a una reducción del 20 mVDC (5 VDC=Span) a 10 mV y 1LSB en la entrada de Vref/2 llega a ser de 5m VDC. Se debe hacer notar que para un span mas pequeño de 2.5 VDC requiere de condiciones iniciales mas exactas, en general, la magnitud del voltaje de referencia requerirá siempre de un ajuste inicial, la resolución de este convertidor es particular es de ( 1 / 255 ) X ( 28 -1) de la tensión analógica a escala completa, a cada incremento de 0.02 VDC, le corresponde un valor de ( 1/255 ) X ( 5 VDC )=0.02 VDC. Documento de Trabajo Alberto de la Mora Gálvez 123 Universidad de Guadalajara Sistemas Digitales III La salida en código binario se incrementa en 1LSB, por tanto, si la entrada analógica es igual a 0.1 VDC la salida binaria será del : ( 0.1 VDC )/( 0.002 VDC )=5, su correspondiente valor codificado en binario natural con 8 bits es 0000 0101. CALIBRACION DEL ADC 0809 Se coloca una señal de 2.55 VDC exactamente en la entrada Vx, realizando la medición con el multimetro digital. Después de hacer esto se revisa que todas las salidas digitales se encuentren en un nivel alto es decir todas en 1's lógicos, esto es 255 10 o 1111 1111 en código binario natural o lo que es lo mismo FFH en el código hexadecimal. Si no se logra obtener el código FFH se acciona lentamente el potenciometro del divisor de voltaje que ajusta el voltaje de referencia en el pin numero 14 del circuito integrado hasta lograr el rango deseado, que es 1111 1111, enseguida se prueba con otros valores de voltaje de entrada y deberá aparecer su correspondiente valor binario en los leds indicadores. Documento de Trabajo Alberto de la Mora Gálvez 124