interfases de e/s -...

28
Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S CAPITULO 1 1.2 - INTERFASES DE E/S 1.2.1 Introducción Un sistema de cómputo está compuesto por más elementos que el procesador y su memoria. Habitualmente el procesador debe poder comunicarse con periféricos. Los mismos son los encargados en última instancia de conducir de y hacia el exterior procesamiento de datos; en tal categoría entran los discos, monitor, teclado, mouse, impresora, placas de red; que no pueden conectarse directamente al bus del sistema por las siguientes razones: Existe una amplia variedad de periféricos con varios métodos de operación. La velocidad de transferencia de datos de los periféricos es mucho más lenta que la de la memoria o la CPU. Muchas veces, los periféricos utilizan diferentes formatos de datos y longitudes de palabra, a diferencia de la computadora con la que están conectados. Cuando se necesita que el procesador tenga la posibilidad de comunicarse con un periférico es necesario una interfase de entrada y salida de datos. Diagrama en bloques Como todas las operaciones de entrada y salida que realiza el procesador son conducidas por medio del bus de datos, es decir tienen lugar en un canal común al cual están conectados todos los recursos disponibles, como ocurre en el caso de las memorias, la interfase estará compuesta por una sección que analizando lo que ocurre en los BUSES DE DIRECCIONES y CONTROL habilite o no la operación de esta. El diagrama en bloques de esta sección es el siguiente. 1.2 -1

Upload: dokien

Post on 19-Sep-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

CAPITULO 1 1.2 - INTERFASES DE E/S

1.2.1 Introducción

Un sistema de cómputo está compuesto por más elementos que el procesador y su memoria. Habitualmente el procesador debe poder comunicarse con periféricos. Los mismos son los encargados en última instancia de conducir de y hacia el exterior procesamiento de datos; en tal categoría entran los discos, monitor, teclado, mouse, impresora, placas de red; que no pueden conectarse directamente al bus del sistema por las siguientes razones: Existe una amplia variedad de periféricos con varios métodos de operación.

La velocidad de transferencia de datos de los periféricos es mucho más lenta que la de la

memoria o la CPU. Muchas veces, los periféricos utilizan diferentes formatos de datos y longitudes de palabra, a

diferencia de la computadora con la que están conectados. Cuando se necesita que el procesador tenga la posibilidad de comunicarse con un periférico es

necesario una interfase de entrada y salida de datos. Diagrama en bloques

Como todas las operaciones de entrada y salida que realiza el procesador son conducidas por medio del bus de datos, es decir tienen lugar en un canal común al cual están conectados todos los recursos disponibles, como ocurre en el caso de las memorias, la interfase estará compuesta por una sección que analizando lo que ocurre en los BUSES DE DIRECCIONES y CONTROL habilite o no la operación de esta. El diagrama en bloques de esta sección es el siguiente.

1.2 -1

Page 2: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S La sección de habilitación será aproximadamente igual independientemente de que periférico se trata, pues en definitiva las tareas son similares, en cambio la interfase y su relación con el periférico en si, tendrá una complejidad variable dependiendo de las características de las funciones a realizarse. Es decir entonces que a la interfase llegan desde el bus del sistema, las señales:

Direcciones: A0 – A24 , que permiten direccionar la unidad. Control : IOR – IOW , especifican la operación a realizar. Datos: D0 – D15 , transportan la información digital.

Mientras que la relación entre la interfase de E/S y el dispositivo periférico se hace a través de las señales y registros de:

Control: que determina la operación a realizar. Estado: que indican el estado del dispositivo, ejemplo: ocupado, disponible,

transferencia, encendido, apagado. Datos: que tiene la forma de un grupo de bits por donde se transfieren los datos binarios.

En general, las interfases de E/S modernas disponen de memorias FIFO que actúan como buffer para poder almacenar los datos en forma temporal, para adaptar las diferencias de velocidad entre el bus del sistema y el periférico. Funciones de la Interfase E/S Por lo dicho, la interfase es la responsable del control del periférico y del intercambio de datos entre este y la memoria principal y/o los registros de la CPU, de aquí que las funciones o requerimientos principales que deberá cumplir son:

Control y temporarización. Comunicación con la CPU. Comunicación con el dispositivo periférico. Buffer de datos. Detección de error.

Estructura de las interfases de E/S Las interfases de E/S varían en forma considerable en complejidad y en la cantidad de dispositivos periféricos que controlan. Estas interfases deben trabajar de forma tal de permitir a la CPU que visualice a los periféricos en forma sencilla, por lo que deben encargarse de manejar los detalles de temporización, formatos y aspectos mecánicos de los dispositivos externos (periféricos) de forma tal que la CPU pueda operar con comandos simples de lectura y escritura, o apertura y cierre de archivos. Así una interfase que tome la mayoría de la carga de procesamiento detallado, se denomina Procesador de E/S, como es el ejemplo de una placa de red, mientras que las interfases muy primitivas que requieran de un control muy detallado por parte de la CPU, se denominan Controladores de E/S, como la interfase centronics para impresoras.

1.2 -2

Page 3: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S Mapeado en memoria y E/S Memoria El procesador posee dos formas diferentes de comunicarse con los dispositivos que comparten el BUS. En la primera de ellas el dispositivo se comporta y responde como si fuese una dirección de memoria. Obviamente la dirección específica a la cual responde estará dada por la lógica de habilitación, correspondiendole a este modo el nombre de mapeado en memoria (memory mapped), en el cual intervienen como líneas de control MEMW (Memory Write) y MEMR (Memory Read). Funciones en C que utilizan este modo son: de lectura (peak), de escritura (poke) y transferencias en bloques, muy utilizadas actualmente como (memcopy) y (memmove) Entrada/Salida En la segunda de estas formas, el dispositivo se comporta y responde como periférico, para lo cual el procesador se dirige a ellos con un protocolo que se diferencia de cuando requiere memoria, siendo necesario que este sea reconocido por la lógica de habilitación. Cuando la forma de conexión es esta se dice que el dispositivo está mapeado en E/S (mapped I/O), para este intervienen las líneas de control IOW (Input/Output Write) y IOR (Input/Output Read). Las funciones en C que utilizan este modo son: inport y outport Modos de Transferencia Entrada/Salida Los distintos modos de entrada/salida de datos hacia periféricos son: Programado (encuesta), Interrupción o Acceso Directo a Memoria (DMA). Programado: también denominado de encuesta (polling), en este caso los datos se intercambian entre la CPU y la interfase de E/S. Es decir que la transferencia de datos se realiza bajo el control de la CPU ejecutando un programa que posee instrucciones de E/S, como las mostradas. Interrupciones: en este modo, la interrupción causa que la computadora detenga la ejecución del programa en curso para saltar a la rutina de interrupción, que poseerá instrucciones de E/S que ejecutadas por la CPU permitirá la entrada o salida de datos hacia el periférico. Acceso Directo a Memoria (DMA): consiste en la transferencia de datos desde la interfase a la memoria principal directamente, resultando en un proceso completamente controlado por hardware, que consiste en suspender la ejecución del programa hasta que el controlador de DMA complete la transferencia. El controlador de DMA es un dispositivo adicional que posee el computador, que le permite tomar el control del sistema.

1.2 -3

Page 4: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

Diagrama en Bloques de DMA

BUS DEL SISTEMA

HLDA HRQ Registro E/S

CPU

DISCO DACKX

DRQX CONTROLADOR

DE DMA

Contador Base Dirección Base Registro de Modo Registro de Estado

MEMORIA

PRINCIPAL RAM

Transferencia en DMA

Transferencia en Encuesta

La transferencia por encuesta pasa por el registro E/S de la CPU, mientras que la DMA es entre periferico y memoria directamente.

La configuración de una transferencia por DMA consiste en programar los registros del controlador de DMA, con información solicitada al sistema operativo de acuerdo a la asignación de memoria y cantidad de elementos que tenga el puntero a los datos de la adquisición: Contador Base: la cantidad de datos (muestras) a transferir. Dirección Base: desde que dirección en memoria se almacenan los datos adquiridos. Registro de Modo: en que dirección se transfieren (periférico a memoria) o a la inversa. 1.2.2 Interfase Paralelo

Una interfase estandar de la computadora PC, es la de impresora llamada centronics o simplemente puerto paralelo, de amplia utilización y características sencillas. Esta representa un ejemplo muy claro para mostrar el comportamiento de una interfase en el proceso de transferencia hacia y desde el periférico. En el siguiente diagrama en bloques se muestra en detalle esta interfase con registros típicos, que permiten su configuración, transferencia y estado de la misma. Aparecen también, las direcciones de mapeado E/S asignadas para el acceso a estos registros.

1.2 -4

Page 5: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

D0 D7

ACK BSY PAP

ONOF

A0 A9 IOR

IOW

IRQ7

D0 D7

Registro de Control

( 37A h)

Registrode Datos ( 378 h )

Registrode Estado ( 379 h )

Decodificadorde

Direcciones

Diagrama en Bloques del Puerto de Impresora

* 1 14 * * 2 15 * * 3 16 * * 4 17 * * 5 18 * * 6 19 * * 7 20 * * 8 21 * * 9 22 * * 10 23 * * 11 24 * * 12 25 * * 13

STR

ALF

INI

DSL

CONECTOR PARALEO

DE IMPRESORA ( CENTRONIC )

Lógica de

Interrupción

B

U

S I

S

A

Líneas de la Interfase Paralelo Las líneas del puerto de impresora están distribuidos como se indica en la siguiente figura de acuerdo a la norma IEEE, y la función que cumplen es : Líneas de ESTADO: son de entrada a la PC, y permiten conocer el estado de la impresora. ACK : Indica que la impresora a recibido un caracter y está disponible para recibir más. BSY : Buffer de impresora completo / Impresora ocupada PAP : Indica sin papel / fuera de papel. OFON : Impresora en línea (ON line) Líneas de CONTROL: son de salida y actúan sobre la impresora controlando su funcionamiento. ALF : (Auto Line Feed) . Alimentación automática de línea INI : inicializa la impresora.

1.2 -5

Page 6: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S DSL : (Device Select). Selecciona la impresora ( cuando hay más de un dispositivo conectado a este puerto, ejemplo: un scanner. ERR : Activo cuando ocurre un error en la transferencia de datos. STR : (Strobe). Indica la transmisión de un dato a la impresora. Los pasos más sencillos que deberá seguir un driver de impresora, para sacar datos por impresora :

Escribir el dato de salida en el registro de datos. Bajar la línea STR (Strobe) indicando a la impresora que tiene un dato. La impresora lee el dato indicando que lo recibió poniendo ACK en bajo, y esta lista

para recibir otro dato. 1.2.3 Diseño de una Interfase de E/S en Bus de Expansión ISA Introducción Una alternativa en el diseño de una interfase de entrada/salida paralelo compatible con el bus de expansión ISA (Industry Standard Arquitecture) de las PC, consiste en sintetizar la lógica combinacional y secuencial necesaria en un solo CI (Circuito Integrado), utilizando para ello un dispositivo de lógica programable (PLD). Se describe el funcionamiento de un circuito que cumpla las funciones de interfase paralelo con 2 entradas/salidas digitales de 16 bits y a partir de estas, el método de diseño para la integración del mismo, en un dispositivo de lógica programable, utilizando el sistema de desarrollo provisto libre y gratuitamente por Lattice® Semiconductor, compuesto por: el editor y captura esquemático, editor y compilador para el Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de tiempos. El uso de estas herramientas permite analizar los resultados que se obtendrían sin tener que armar el circuito, representando un ahorro sustancial de tiempo de desarrollo. Desde el punto de vista de un desarrollo, la principal diferencia entre el diseño de un circuito por lógica cableada utilizando CI estándares SSI (Small Scale Integrated,) o por lógica programable, radica en la forma como se interconectan los elementos constructivos básicos de los mismos, como las compuertas y registros (Flip-Flop). En el primer caso, esta interconexión se realiza mediante trazos conductores sobre el impreso, mientras que en el segundo se logra mediante un proceso que comprende distintos pasos de programación. Estos consisten en el diseño del circuito en su forma esquemática (diagrama circuital) o modelizándolo mediante sus ecuaciones lógicas con algún lenguaje de lógica programable como el conocido ABEL de Data I/O. El próximo paso es la compilación para obtener el archivo que finalmente se utilizará para programar el integrado, removiendo las conexiones que no son necesarias para el diseño y manteniendo las que definen la función del dispositivo programado. El diseño mostrado utilizar un Arreglo Lógico Genérico, GAL 22V10, basado en que es uno de los PLD's más populares y de fácil adquisición. Dispone de 12 entradas y 10 salidas, que pueden ser combinacionales o registradas y con tercer estado, características que lo hace muy apropiado para una aplicación como la propuesta. Estos dispositivos son una excelente opción como medio de implementación de circuitos digitales en aplicaciones donde son factores críticos tanto el tamaño y la complejidad de las placas, como su confiabilidad, flexibilidad y velocidad.

1.2 -6

Page 7: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S Bus de Expansión

Toda comunicación a través del bus de expansión de la PC es interpretada como una entrada o salida de datos a/desde un dispositivo externo, para lo cual existen muchas direcciones asignadas a determinados periféricos clásicos en todo sistema de cómputos como ser placa de video, teclado, mouse, impresora, interfase serie etc . Estas direcciones son fijas y figuran en el mapeado de entrada/salida de la PC, pero además existen direcciones permitidas para el desarrollo de prototipos utilizadas en este diseño.

Bajo esta modalidad cuando el procesador ejecuta una salida coloca sobre las líneas A0-A9 la dirección del dispositivo sobre el cual desea realizar la operación, en las líneas D0-D15 coloca la representación binaria del dato a salir y al mismo tiempo, como indicación de la operación a realizar con este dato la línea de control IOW (I/O Write) en bajo indica que se trata de una operación de salida. Esta secuencia es generada por la instrucción en Lenguaje C outport (port, dato), donde port es la dirección del dispositivo y dato representa el valor a ser enviado. Se utilizan sólo las diez primeras líneas de direcciones, porque con estas se accede a las posiciones permitidas para el desarrollo de prototipos, que se mantienen reservadas en todas las actualizaciones de PC.

Si la operación es de entrada los pasos seguidos por el procesador son similares excepto que es la línea IOR (I/O Read) la que con un nivel bajo indica que se trata de entrada de datos desde el periférico direccionado. Esta secuencia es producida por el procesador mediante la instrucción en lenguaje C dato=inport(port), donde port es la dirección del periférico cuyo valor ingresado será asignado a la variable dato. Cada lenguaje de programación posee sus instrucciones equivalentes para la entrada/salida sobre periféricos, aquí se muestran las utilizadas en este proyecto, que corresponden a transferencia de datos de 16bits.

Debido a que en la arquitectura de una PC existe la posibilidad de realizar transferencias de datos por acceso directo a memoria (DMA) entre periféricos y la memoria utilizando la misma secuencia de señales, se necesita diferenciar entre una operación de DMA y una entrada/salida de datos efectuada por el procesador. Para esto el controlador de DMA (82X37) utilizado en las PC, entrega una señal denominada AEN (Address ENable) disponible en el bus de expansión, que indica con un nivel alto que hay una operación de DMA en progreso. Por lo tanto tendremos que verificar además de las líneas de DIRECCION (A0-A9) y CONTROL (IOR ó IOW), que la línea AEN se encuentre en estado bajo para asegurar que la operación sea controlada por el procesador.

Además deberá generarse la línea CS16 (Chip Select), que es de entrada al bus y le indica al

procesador que la transferencia de entrada/salida de datos es de 16 bits.

1.2 -7

Page 8: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

La figura muestra la relación entre los buses de expansión y los dispositivos relacionados con este:

procesador 80X86, controlador de DMA y controlador de interrupciones PIC. Registros de una interfase

Las operaciones de entrada/salida hacia un periférico se efectúan comunmente sobre registros que

este posee, a fín de almacenar temporalmente sobre estos la información necesaria.

Como registros se utilizan CI que permanecen en tercer estado hasta ser habilitados, para poder compartir el Bus de Datos con el resto del sistema. Para las operaciones de salida se pueden utilizar CI con memoria (Latchs de 8 bits) como por ejemplo el 74LS373, que mediante la habilitación (estado alto) en el pin de enable (E) toma el contenido del bus de datos y lo presenta en sus salidas, las que permanecen en este estado hasta que otra operación de salida cambie las mismas.

Para la entrada se utilizan CI separadores (Buffers) como por ejemplo el 74LS244, que cuando son habilitados (estado bajo) en la pata output enable (OE) transfiere la palabra digital desde su entrada hacia el Bus de Datos del sistema, permaneciendo en todo otro momento con sus salidas en estado de alta impedancia.

1.2 -8

Page 9: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

1.2 -9

Descripción del circuito decodificador de direcciones

El diagrama circuital de esta interfase se muestra en la siguiente figura. Las líneas de direccionamiento A3-A9 del bus de expansión de la PC se comparan en IC1 (74LS688) con una referencia dada por SW1 que le permite configurar la dirección base de la plaqueta como 300 ó 310 (en hexadecimal). El resto de las direcciones A0-A2 se decodifican en IC2 (74LS138) junto con AEN para asegurarse que esa dirección es válida. Posteriormente las salidas Y0 a Y7 de IC2 presentarán un "0" lógico cuando se seleccionen las 8 direcciones consecutivas a partir de la dirección base configurada. Así combinando estas líneas Y0-Y7 con las de control IOW e IOR, mediante las compuertas NOR (74LS02), se habilitan la escritura sobre los bloques LATCH o la lectura sobre los bloques BUFFER. Además, la interfase debe informar a la CPU que debe ejecutar operaciones de 16 bits, para lo cual se combinan en una NAND de 4 entradas las salidas Y0 a Y3 que habilitan un nivel bajo en CS16.

74LS02

74LS02

74LS40

Sw 1 : 0 -> 30X 1 -> 31X

Diagrama circuital de la interfase Descripción de los dispositivos PLD Los Arreglos Lógicos Genéricos son PLD de arquitectura programable que pueden ser borrados y reprogramados electricamente usando técnicas similares a las empleadas en memorias EEPROM. Sus características mas importantes son :

Page 10: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S Uno solo de estos dispositivos puede imitar o reemplazar mas de 20 dispositivos PAL

Puede configurarse para realizar cualquier tipo de lógica combinacional o secuencial.

Son extremadamente rápidos, con retardos de propagación típicos de 10 ns y permiten protección electrónica respecto de su copiado.

La clave de su universalidad son las Macroceldas Lógicas de Salida (OLMCs = Output Logic Macro Cells) que como se muestra en la Figura 2, consisten en estructuras programables constituidas por : Multiplexores, Elementos Lógicos (AND-OR-NOT etc.) y Registros. También se puede aprovechar cada línea de salida de esta estructura como entrada a otra, relacionandolas en forma combinacional y/o secuencial y pudiendo adoptar distintas estados lógicos: activa alta, activa baja o tercer estado.

Estructura de una macrocelda lógica de salida En la nomenclatura de los GAL, en nuestro ejemplo 22V10, la primer cifra (22) se refiere al número de entradas de propósitos generales y la segunda (10) el número de macroceldas de salida. En contraste con los PAL, que son dispositivos OTP (programables una sola vez), los GAL pueden ser borrados eléctricamente y reprogramados las veces que sea necesario, permitiendo así una corrección fácil, rápida y económica de errores de diseño . Diseño con GAL La metodología de diseño de circuitos lógicos con GAL es básicamente la misma de cualquier dispositivo de lógica programable, para lo cual se requiere de: un editor de texto, un compilador lógico y un programador (grabador). El archivo de texto, denominado archivo de ecuaciones contiene la descripción lógica del diseño, que consiste en definir las relaciones entre las entradas y salidas, mediante ecuaciones Booleanas. Luego es convertido por el compilador en un archivo JEDEC (Join Electron Device Engineering Council) estandar. Así el archivo de ecuaciones se identifica con la extensión .EQN y el archivo JEDEC

1.2 -10

Page 11: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S con la extensión .JED, el cual es utilizado por el programador para determinar que contactos mantener y cuales no. Con el fin de mostrar los pasos para el desarrollo de un diseño, el objetivo es sintetizar la interfase propuesta, cuyo diagrama circuital es el mostrado. El diseño consiste inicialmente en seleccionar el dispositivo sobre el cual trabajar, para este caso el GAL22V10 reúne las características requeridas . Luego, como es común en estas plataformas de desarrollo, se declara un Proyecto que abarque los archivos fuentes que intervienen en el mismo. Estos pueden ser esquemáticos, ABEL HDL, vector de ensayo y de reporte. Editor de esquemáticos El primer diagrama generado es el mostrado en la siguiente figura y corresponde al esquemático que abarca el circuito decodificador de direcciones y habilitación de registros descripto completo, donde se puede observar como señales de salida, las habilitaciones de los registros LATCH1, LATCH2, BUFFER1, BUFFER2 y operación de 16 bits CS16. Esto significa que se sintetizan 5 CI en un GAL. El archivo que resulta de este diagrama tiene la extensión .sch.

Esquemático del decodificador y habilitación

Este diagrama se diseña en el editor de esquemáticos, que permite incorporar cualquier tipo de compuertas, registros o unidades aritméticas simples, soportadas por la librería del sistema para el dispositivo seleccionado. Estos símbolos se encuentran dentro de la opción de menú Symbol. Luego se realiza la interconexión entre dispositivos mediante la opción Wire y la identificación de los nodos de referencia con el comando especial Net Name, procediendo luego a la asignación de pines de entrada/salida, mediante I/O Marker. Los nodos etiquetados sirven de referencia para la distribución de pines del integrado y los diagramas de tiempo en las simulaciones.

I_5

DEMULTIABCG1G2

Y0Y1Y2Y3

En el diagrama mostrado se utilizan compuertas NOR y AND estándar (extraídas de la librería del sistema) y dos bloques denominados COMPARE8 y DEMULTI que se conocen como bloques símbolo (Block Symbol), diseñados para cumplir funciones combinacionales de comparador de 8 bits (análogo al

I_8

I_7*

I_1

I_2

I_3

I_4

I_6

COMPARE8A3A4A5A6A7A8A9BASE

OUT

A0A1 LATCH1A2

A3A4

LATCH2A5A6A7A8 BUF1A9

BASEBUF2

AEN

IOW

IOR

CS16

1.2 -11

Page 12: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S 74LS688) y demultiplexor de 1 a 4 (como el 74LS138), respectivamente. Para programar el comportamiento de cada uno de estos bloques símbolo se debe crear un archivo fuente en lenguaje ABEL. Si bien se podría diseñar el circuito completo en este lenguaje, se optó por mostrar las compuertas en esquemático, para enfatizar la versatilidad y sencillez de las opciones de desarrollo de este sistema. Lenguaje de programación ABEL Este lenguaje es utilizado para describir el funcionamiento del hardware y soporta varias formas de entrada, incluyendo ecuaciones de alto nivel, diagrama de estado y tablas de verdad. La estructura básica de este lenguaje está dividida según la Tabla I:

TABLA I: ESTRUCTURA BÁSICA DEL LENGUAJE ABEL

Parte Descripción Encabezamiento

Module: le da el nombre usado en el bloque símbolo. Title: es opcional y se lo utiliza para describir el funcionamiento del módulo

Declaraciones

Declarations: declaraciones de los argumentos que intervienen en esta Estructura como : constantes, asignación de pines, nodos, sets de señales etc.

Descripción lógica

Equations: grupo de ecuaciones, diagrama de estados, o tablas de verdad que describen el diseño lógico.

Vector de ensayo

Test vectors: se utilizan para la simulaciones

Final

End: finaliza el grupo de sentencias que comprende el módulo.

Posee operadores lógicos, aritméticos, relacionales y de asignación, descriptos en la Tabla lI. Puede observarse que estos operadores son comunes a los utilizados en otros lenguajes de programación como el C.

TABLA II : DESCRIPCIÓN DE LOS OPERADORES

Operador Tipo Descripción

! Lógico NOT

& Lógico AND

# Lógico OR

$ Lógico XOR

1.2 -12

Page 13: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

!$ Lógico XNOR

A+B Aritmético Suma

A-B Aritmético Diferencia

A*B Aritmético Producto

A/B Aritmético División

== Relacional Igual

!= Relacional Distinto

< Relacional Menor

<= Relacional Menor o igual

> Relacional Mayor

>= Relacional Mayor o igual

En la sintaxis de este lenguaje, para los comentarios se utiliza el símbolo ", las salidas combinacionales se especifican con el signo =, las secuenciales o de registro con el signo := y las combinatorias habilitables con la extensión .OE. En las declaraciones para la asignación de patas se utiliza pin y se puede armar una cadena de señales bajo un mismo nombre, nombre[ ], que permite efectuar cualquier operación sobre cada elemento del conjunto con un solo operador. A continuación se muestra el listado correspondiente al bloque símbolo COMPARE8. Se observa la asignación de pines a las líneas de direcciones (A3 a A9) y BASE utilizadas para setear la dirección base. A partir de la misma con las líneas A2, A1 y A0, se seleccionan los correspondientes lugares de registro. BASE = 1 determina que los registros estarán a partir de 310 (en notación hexadecimal), mientras que BASE = 0 indica que los registros se ubicarán a partir de 300. La salida del bloque símbolo es OUT y será verdadera (= 1) cuando se cumpla la dirección base seteada. Module COMPARE8 Title 'COMPARADOR DE 8 BITS' Declarations "Entradas A3,A4,A5,A6,A7,A8,A9,BASE pin 4,5,6,7,8,9,10,11; "Salidas OUT pin ; "no hay asignación, el compilador determinará el pin que este disponible Equations OUT = ( A9 & A8 & !A7 & !A6 & !A5 & !A3 ) & (A4 !$ BASE); End

1.2 -13

Page 14: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S Otra forma de expresar lo mismo es utilizando operadores de bloque When-Then-Else, If-Then-Else, Case y With y agrupando las líneas de dirección en un conjunto DIRECCION[ ]. Podemos simplificar estas expresiones de la siguiente forma: Declarations DIRECCION = [A9..A3]; Equations WHEN (BASE == 1) THEN OUT = ( DIRECCION == ^H62 ); ELSE OUT = ( DIRECCION == ^H60 ); En el ejemplo anterior, ^H62 indica que debe interpretarse el número 62 en base hexadecimal. El funcionamiento del bloque símbolo DEMULTI, deberá responder al de un demultiplexor de 1 a 4 con salida negada. En el siguiente listado de programa las entradas de habilitación son G1 (activa alta) G1 y G2 (activa baja) y las de selección son A, B y C que determinan que salida Yn adoptará el valor cero. Module DEMULTI Title 'Demultiplexor de 1 a 4' Declarations "Entradas A,B,C,G1,G2 pin ; "Salidas Y0,Y1,Y2,Y3 pin ; Equations Y0 = !(G1 & !G2 & !C & !B & !A ); Y1 = !(G1 & !G2 & !C & !B & A ); Y2 = !(G1 & !G2 & !C & B & !A ); Y3 = !(G1 & !G2 & !C & B & A ); End Aquí nuevamente se puede simplificar este listado utilizando la representación a nivel bloques, quedando: Declarations DIRECCION = [C,B,A]; OUT = [Y0..Y3]; Equations WHEN (G1 & !G2) THEN OUT = ![(DIRECCION == 0 ), (DIRECCION == 4 ), (DIRECCION == 2 ), (DIRECCION == 6 )]; ELSE OUT = 15;

1.2 -14

Page 15: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S Simulación del diseño A partir del diseño terminado y antes de compilar los archivos, se puede simular el comportamiento del GAL, para lo cual se arman las ecuaciones correspondientes dentro del denominado vector de ensayo (test vector). La función de este es generar los distintos estados de las entradas para poder observar las salidas que resultan, en un diagrama de tiempos que produce el simulador de formas de onda, esto es de mucha utilidad dado que permite verificar el funcionamiento del diseño, antes de programar el dispositivo. El vector de ensayo mostrado, simula las direcciones asignadas a los distintos registros, que combinadas con las señales de control apropiadas, producirán las habilitaciones esperadas. Module dec_isa; x = .x.; A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,BASE,AEN,IOR,IOW,LATCH1,LATCH2,BUF1,BUF2 PIN; Test_Vectors ([ A0, A1, A2, A3, A4, A5, A6, A7, A8, A9,BASE,AEN,IOR,IOW] -> [ LATCH1,LATCH2,BUF1,BUF2,CS16]) [ 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 1 , 0 ] -> [ x , x , x , x , x ]; [ 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 1 , 0 ] -> [ x , x , x , x , x ]; [ 0 , 1 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 1 ] -> [ x , x , x , x , x ]; [ 1 , 1 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 0 , 1 ] -> [ x , x , x , x , x ]; [ 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 ] -> [ x , x , x , x , x ]; [ 0 , 1 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 ] -> [ x , x , x , x , x ]; End El diagrama de tiempos resultante se muestra en la siguiente figura, donde se puede observar, la ocurrencia de las direcciones (DIRECCION) asignadas a la placa propuesta, las señales de control de entrada (AEN, IOR, IOW) y salida (CS16) del bus ISA y las señales de habilitación de los registros (LATCH1, LATCH2, BUF1, BUF2). Este visualizador de tiempos posee un cursor que permite situarse en cualquier ciclo de ejecución y consultar fácilmente las características y estados de cada una de las señales mostradas.

Diagrama de tiempos de la simulación

1.2 -15

Page 16: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S Placa de adquisición básica Como un ejemplo que reuna las características de un sistema como el descripto y que pueda abarcar las direcciones 300h a 30fh, el siguiente diagrama circuital corresponde a una placa de adquisición básica. En esta la asignación de direcciones se tiene la siguiente distribución de funciones:

Dirección Operación Función 300h Salida Comienzo de conversión 300h Entrada Lectura de conversión 301h Salida Ganancia 302h Salida Número de canal 303h Entrada Entrada digital 304h salida Salida digital

Diagrama circuital de una placa de adquisición básica

1.2 -16

Page 17: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S 1.2.4 Diseño de una interfase completa con CPLD

Introducción

Como una aplicación de interfase totalmente integrada en un circuito integrado CPLD, se muestra el diseño de un generador de formas de onda arbitrarias compatible con PC, de muy bajo costo, capaz de generar cualquier tipo de forma de onda, controlar la frecuencia y amplitud de salida. Se conecta a la PC por medio del puerto paralelo, y mediante programa permite seleccionar algunas de las formas de onda más utilizadas, como senoidal, diente de sierra, triangular y cuadrada, o cualquier forma de onda, mediante un archivo de texto que debe contener 4096 valores correspondientes a un periodo de una señal arbitraria. La frecuencia de salida también es programable (0.6 Hz a 1 MHz). El error en frecuencia medido es menor al 0.12% en todo el rango. Una vez programadas la forma de onda, la frecuencia y la amplitud de salida, el circuito queda funcionando en forma autónoma, permitiendo que la PC pueda usarse para otros propósitos (por ejemplo la adquisición de la respuesta de un sistema bajo prueba).

Principio de funcionamiento

Este generador se basa en el método de Síntesis Digital Directa (DDS), que se muestra a continuación.

mento de fase de 360 grados/puntos, donde puntos es la longitud de

rmanece fija, simplificando notablemente su implementación frente a otro que requiera un Fc variable.

Fig. 1:Diagrama en Bloques de un DDS

En un sistema DDS los valores de amplitud de un ciclo completo de una señal arbitraria, se almacenan secuencialmente en una memoria RAM. A medida que se modifican las direcciones de la RAM, el DAC transforma los datos en una forma de onda de tensión. Después de filtrar los pasos de tensión (con un filtro antialiassing), se recupera la forma de onda analógica original. Cada dirección de la RAM se corresponde con un increla onda almacenada en la memoria.

Para variar la frecuencia de salida los DDS utilizan la técnica de acumulación de fase. Esta técnica controla las direcciones de la RAM. En cada ciclo de clock, la constante M cargada en el registro de incrementos de fase (PIR), se añade al resultado existente en ese momento en el acumulador de fase. Los bits más significativos de la salida del acumulador de fase se utilizan para direccionar la RAM. Al cambiar la constante del PIR, cambia el número de ciclos de clock necesarios para recorrer la RAM, cambiando en consecuencia la frecuencia de salida. Para obtener buena resolución en frecuencia se utilizan gran cantidad de bits. Una importante ventaja de este metodo para variar la frecuencia de salida, con respecto a otra posibilidad que seria variar la frecuencia del clock (Fclock) a la que se lee la RAM, es que la frecuencia de corte Fc del Filtro Pasa Bajos (antialiassing) pe

Phase Increment Register +

Phase Register

0 32K

0 360o

4095 0

RAM 32K x 12

Memory Address (Points)

add

data

DAC LPF

~ Fclock

MSB's SUMADOR (15 bits)

24 bit

24 bit

24 bit

1.2 -17

Page 18: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S Los DDS encapsulados en un solo C.I. por distintos fabricantes tienen limitaciones al generar solo formas de ondas senoidales, mientras que con el método propuesto se puede generar cualquier tipo de forma de onda.

Circuito desarrollado

A partir del principio de funcionamiento descripto, el circuito desarrollado se muestra en el siguiente diagrama en bloques (Fig2), que consiste en una Memoria RAM de 32KBytes, un conversor D/A, un amplificador de salida, un LPF, un generador de clock de 10MHz y un CPLD de Lattice ispLSI1032 que integra las funciones más importantes de este generador mostradas en la Fig3, como son el Registro de Fase (PR), el Registro de Incremento de Fase (PIR) y el Sumador (ADDER). Aprovechando el nivel de integración que este permite, además se incorporó en el mismo la interfase Centronics hacia la PC.

Como se puede observar la idea central del funcionamiento de este DDS, se logró dentro del CPLD, cuyo diseño fue realizado con el entorno de desarrollo de Lattice, que permite trabajar a nivel esquemático como se muestra en el diagrama circuital, acelerando notablemente el proceso de diseño y su posterior interpretación.

De acuerdo al funcionamiento de este sistema se obtienen los siguientes rangos de trabajo:

La frecuencia de salida se calcula como Fout = Fclock * M /(224-1) donde Fclock=10MHz. De la ecuación anterior se deduce que la fmin = 0.6Hz cuando M=1, y fmax=1MHz para que la forma de onda de salida por lo menos este conformada por 10 muestras. La mínima variación de M (1) permite que la resolución en frecuencia sea de 0.6Hz en todo el rango de M (1 M int(224/10)).

Para la amplitud de salida se generan los valores correspondientes por programa de acuerdo a la forma de onda seleccionada y ajustando la amplitud máxima al rango dináamico del conversor D/A (0 a 4095), luego son enviados por el puerto paralelo hacia la memoria RAM.

Fig 2: Diagrama en bloques del sistema

d

DATA bits bitsInterfase Centronics PC

RAM x 2 32 KB

LatticeIspLSI1032

Address

ata

DAC AMPLIFIER and LPF

Out

ADD0 ADD14

Data0 Data7

D0 D11WR! CS1 CS2 OE!

Generador CLK de Clock

Add/Data IOW

1.2 -18

Page 19: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

Diagrama esquemático del CPLD

En este diseño se logro con un circuito muy simple (integrado mayormente en un CPLD), un instrumento de muy buena calidad, portable y de bajo costo, con todas las ventajas de utilizar la técnica DDS para la generación de señales y su conexión al puerto paralelo de la PC. Además aprovechando las ventajas de los lenguajes de programación actuales pueden hacerse interfases gráficas para su manejo e incluso puede ser accedido y manejado en red.

I198

FD21

CD

D0 Q0

I196

FD21

CD

D0 Q0

I184

FD11

D0 Q0

I162

I163

I161

ADDF8

A0A1A2A3A4A5A6A7B0B1B2B3B4B5B6B7

CI

CO

Z0Z1Z2Z3Z4Z5Z6Z7

I199

I158

I165

I166

I155

I197

I145

MUX2

A0A1

S0

Z0

I139

FD28

CD

D0D1D2D3D4D5D6D7

Q0Q1Q2Q3Q4Q5Q6Q7

I140

FD28

CD

D0D1D2D3D4D5D6D7

Q0Q1Q2Q3Q4Q5Q6Q7

I141

FD28

CD

D0D1D2D3D4D5D6D7

Q0Q1Q2Q3Q4Q5Q6Q7

I129

ADDF16A

A0A1

A10A11A12A13A14A15

A2A3A4A5A6A7A8A9

B0B1

B10B11B12B13B14B15

B2B3B4B5B6B7B8B9

CI

CO

Z0Z1

Z10Z11Z12Z13Z14Z15

Z2Z3Z4Z5Z6Z7Z8Z9

I113

DMUX4E

A0

ENS0S1

Z0Z1Z2Z3

I114

DMUX4E

A0

ENS0S1

Z0Z1Z2Z3

I115

DMUX2

A0

S0

Z0Z1

I116

DMUX2

A0

S0

Z0Z1

I147*

I148*

I149*

I150*

I84*

I91*

I90*

I89*

I88*

I87*

I86*

I85*

I117

FD14

D0D1D2D3

Q0Q1Q2Q3

I72

FD18

D0D1D2D3D4D5D6D7

Q0Q1Q2Q3Q4Q5Q6Q7

I132

FD18

D0D1D2D3D4D5D6D7

Q0Q1Q2Q3Q4Q5Q6Q7

I71

FD18

D0D1D2D3D4D5D6D7

Q0Q1Q2Q3Q4Q5Q6Q7

I146*

I156*

I157*

I151*

I47*

I49*

I50*

I48*

I51*

I52*

I53*

I54*

I55*

I56*

I57*

I58*

I59*

I60*

I61*

I142*

I112*

I118*

I21*

I14*

I20*

I19*

I18*

I17*

I16*

I15*

I152

I153

I73

I182

I134

I75

I74

IOWGND CK

R9 ADD0M0 S0 R0

IOW! M1 S1 R1R10 ADD1

M2 S2 R2M3 S3 R3

VCC Y0 R11 ADD2M4 S4 R4

Y1M5 S5 R5

Y2 R12 ADD3M6 S6 R6

Y3M7 S7 R7

R13 ADD4M8 S0M9 S1

R14 ADD5M10 S2 RSTM11 S3

R15 ADD6bit[2] M12 S4

Y4 CKbit[1] M13 S5

Y5 S8 R8 R16 ADD7bit[0] M14 S6

Y6 S9 R9bit[3] M15 S7

Y7 S10 R10 R17 ADD8R0 S8

S11 R11R1 S9

S12 R12 R18 ADD9RST R2 S10

S13 R13R3 S11

add_data S14 R14 R19 ADD10R4 S12

Y0 S15 R15R5 S13

IOW! R20 ADD11R6 S14R7 S15bit[0]

M0 RST R21 ADD12R8bit[1]

M1R9bit[2]

M2 R22 ADD13CLK R10bit[3]

M3 CKR11

WRbit[4]

M4 S16 R16 R23 ADD14R12bit[5]

M5 S17 R17Y5 R13bit[6]

M6 S18 R18R14bit[7]

M7 S19 R19R15 cs_1 CS1

IOW! S20 R20CK Y1

S21 R21IOW! cs_2 CS2

S22 R22CTL0

S23 R23CTL0 OE!

M16bit[0]M8

M17bit[1]M9 WR WR!

M18 RSTRST

bit[2]M10

M19CTL0

bit[3]M11

cs_2 M20 S16Y5

bit[4]M12

M21 S17bit[5]M13

M22 S18bit[0]

D0bit[6]M14 Y5

WR M23 S19bit[7]M15 CTL0

R16 S20Y5

bit[1]D1

cs_1 Y2 R17 S21RST CTL0

IOW! R18 S22RST

R19 S23bit[2]

D2R20

bit[0]M16 R21 bit[3]

D3bit[1]M17 R22

bit[2]M18 R23

bit[3]M19

bit[4]D4

bit[4]M20

bit[5]M21 bit[5]

D5bit[6]M22

bit[0] CTL0bit[7]

M23bit[6]

D6Y4

IOW!bit[7]

D7

data[7]bit[7]

bit[0]D8

data[6]bit[6]

Y5CTL0

data[5]bit[5]

bit[1]D9

data[4]bit[4]

data[3]bit[3] bit[2]

D10

data[2]bit[2]

bit[3]D11

data[1]bit[1]

data[0]bit[0]

bit[7:0]

ispLSI1032

ADD and DATA Decoder

PIRADDER

PR

Mode Selector

BUFFER

El objetivo principal que se busca mostrar en este diseño, es la generación de cualquier forma de onda mediante la técnica DDS, por esta razón no entramos en detalles como el ajuste de amplitud de salida y otras opciones que pueden incorporarse fácilmente a este diseño.

1.2.5 Interfases Serie Norma RS232 A diferencia de una interfase paralelo, una interfase serie es aquella que toma el contenido en el bus de datos, en el cual está representado por los valores que asumen al mismo momento un conjunto de líneas ( en nuestro caso DO a D7 ) y envían tales valores en forma secuencial bit por bit .

1.2 -19

Page 20: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S El uso de tal característica de transmisión se hace evidente cuando se requiere transportar datos a distancias considerables del procesador, en este caso el costo y complejidad de un sistema de tantas líneas como las necesarias para realizar el transporte representa niveles prohibitivos; en cambio con un método serie se requiere una sola línea o par.

b6b5b4b3b2b1 b0

S T A R T

Un caracter completo

STOP MARCA

b7

tbit= tiempo de duración de un bit Velocidad de transmisión: baudios = 1/tbit

tbit

Debe existir una convención precisa acerca de la velocidad y el número de bits que compondrán cada envío entre el emisor y el receptor en una comunicación de tipo serie, pues de otra manera la misma es imposible. La velocidad se define en función de cuantos bits es posible transferir en un segundo (incluyendo los bits de arranque y de parada) que se expresa en bits por segundo (bits/s) y se conoce como baudios. Estas velocidades se establecen en valores estandar y varían con la aplicación, son usuales velocidades desde: 1200, 2400, 4800, 9600, 19200 baudios. La mayoría de las computadoras pueden trabajar a cualquiera de estas velocidades pero por lo general los periféricos están limitados a sus velocidades más bajas.

Comunicación directa entre PC

Terminales cercanas

Periféricos: mouse, impresoras..

Comunicación telefónica (sin modulación)

Velocidades en Baudios: 1200 2400 4800 9600 19,2K 56K 115,2K

Los tres componentes fundamentales de una comunicación de datos como se muestran en la siguiente figura son: - Un emisor o transmisor: el que genera los datos. - Un receptor: recibe los datos (suponiendo que se encuentre listo). - Un medio de comunicación: a través del cual se transmitirán las señales.

1.2 -20

Page 21: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S La interfase serie RS232 se diseñó para comunicar un DCE con un DTE. Se denomina DCE (Data Communications Equipment) a un modem o un line driver, es decir, un dispositivo de comunicación que permite la conversión de señales analógicas en digitales y viceversa. Un DTE (Data Terminal Equipment) puede ser una computadora, una terminal, una impresora, un plotter o una unidad de cinta. Si bien la interfase fue diseñada para comunicar un DCE con un DTE, eventualmente se puede adaptar para comunicar dos DTEs (como por ejemplo dos computadoras), creando lo que se llama Null Modem.

Comunicación

Medio de ReceptorEmisor

Adicionalmente al dato y a los bits de arranque y parada se puede agregar un bit de paridad (PARITY BIT) el cual sirve a propósitos de verificación de la integridad de la recepción, la paridad puede ser PAR o IMPAR. Este bit no contiene información en sí mismo pero hace que el número total de unos que tenga el mensaje sea par o impar, en tales casos se dice que trabaja con paridad PAR o IMPAR. Esto permite que si en el camino de transmisión se introduce ruido que altere uno de los bits, el chequeo de paridad no se verifica y el receptor estará en condiciones de requerir el dato nuevamente.

Valores de Tensiones Normalizados

Tabla de asignación de señales en los pines de un conector Com Pin Sigla Nombre Dirección Función

1 DCD Data Carrier Detect hacia DTE Enlace de datos instalándose

2 RD Received Data hacia DTE Entrada de datos al DTE

3 TD Transmitted Data hacia DCE Salida de datos del DTE

4 DTR Data Terminal Ready hacia DCE Pone a trabajar el modem

5 GND Ground Conexión de masa

6 DSR Data Set Ready hacia DTE DCE listo para comunicar con DTE

7 RTS Request to Send hacia DCE DTE desea cambiar a modo transmisión

8 CTS Clear to Send hacia DTE DCE listo para transmitir

1.2 -21

Page 22: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

Cable Null-módem Null módem es un método para conectar dos terminales usando un cable serie RS-232. En la confección null módem las lineas de transmisión y recepción están cruzadas. Existe más de una forma de realizar una conexión null módem ya que no hay ningún estándar que defina esta conexión. Estos cables son comunmente usados para la trasferencia de archivos. En el sistema operativo Microsoft Windows la conexión directa por cable se puede realizar con un cable null módem. Las últimas versiones de MS-DOS traian el programa Interlink. El mismo permitía trabajar con el disco rígido de la computadora remota como un disco de red. Hay que aclarar que no se necesitaba ningún hardware adicional como una placa de red, la conexión se podía realizar fácilmente con un cable null módem. La conexión habitual de un cable null-módem es: PCPC1 PC1 PC2 Hardware de la Interfase Serie El procesamiento de transformación de un dato paralelo a serie (transmisión) o serie a paralelo (recepción) es realizado por un dispositivo electrónico denominado UART (Transmisor Receptor Asincrónico Universal) al cual solamente es necesario proveerle o extraerle el dato en el momento adecuado. Actualmente los puertos para comunicación serie que poseen las PC están incorporadas en la Motherboard. Los canales normalizados pueden ser COM1 y COM2 o COMA y COMB. En estos adaptadores serie toda la lógica está a cargo de un único CI (por ejemplo el 8250 ó el 16450) que se encarga de gestionar los datos recibidos y transmitidos y las funciones de control.

1.2 -22

Page 23: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

Registro de desplazamiento

Transmisor

Registro de desplazamiento

Receptor

Control del

MODEM

Buffer Bus de

Datos

Registro de

Control Lectura / Escritura

RX

RD WR CS

CTS

RTS

DTR

DSR

TX

BUS DEL SISTEMA

1.2.6 Interfase USB (Universal Serial Bus)

El protocolo USB nació cuando un grupo de 7 compañías: Compaq, Digital Equipment, IBM, Intel, Microsoft y Northern Telecom decidieron crear un conjunto de especificaciones que sustituyan las conexiones como RS232, Puerto de impresora y PS2 por un solo conector común en una PC

La interfase USB ofrece a los usuarios una conectividad simple que elimina los distintos tipos

conectores. Cuando se trabaja con USB los dip switches ya no son necesarios para setear direcciones, IRQs o canales de DMA. Soporta distintos tipos de datos desde entradas lentas del mouse hasta las más veloces de audio y video digitalizado.

Con este conector se evita tener que abrir y apagar la PC cuando se agrega un nuevo periférico; el

mismo es detectado e instalado automáticamente. Es posible conectar hasta 127 dispositivos a la PC a través de este bus.

Topología USB La topología USB se denomina “Tiered Star” (Estrella en gradas. Ver fig.1) . Los HUBs son

puentes que interconectan dispositivos y aumentan la capacidad de la red. Los Hubs también son dispositivos USB con una cierta inteligencia para detectar cambios en la topología de la red, e informar de ellos al Host. El dispositivo “Host” (típicamente una PC) incluye el “root hub” que hace de nexo de

1.2 -23

Page 24: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S todas las conexiones a dispositivos. El Host es el controlador maestro del sistema y como tal controla todas las actividades de comunicación.

Los periféricos controlados por USB son esclavos y responden a comandos del Host. Cuando un periférico es conectado al puerto USB, el Host se comunica con el dispositivo, reconoce su identidad y le asigna el driver necesario en un proceso llamado enumeración.

Para que los periféricos funcionen sobre este bus es necesario que cumplan con estándares

mecánicos y eléctricos. El estándar USB especifica 2 clases de cables y 2 variantes de conectores. Los cables de alta

velocidad para 12Mbps de transferencia están mejor blindados que los de 1.5Mbps. La especificación USB revisión 2.0 cubre tres velocidades 480Mbps, 12 Mbps y 1.5Mbps. El

termino “Hi-Speed USB” se refiere solo a la velocidad de 480 Mbps. Cada cable tiene un conector “A” en un extremo y un tipo “B” en el otro. Dado que los dos tipos son diferentes físicamente, es imposible instalar un cable de forma incorrecta.

La longitud máxima del cable es de 5 metros, debido a retardos de propagación.

Conectores Serie A y Serie B

1.2 -24

Page 25: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S Funciones de los pines en el conector USB

La interfase física USB consiste de 4 cables (tabla 1): 2 para alimentación de periféricos y 2 para señales de datos (Data+ y Data-). Los cables de alimentación suministran 5 volts y 500mA como máximo. Los cables llamados DATA+ y DATA- manejan la comunicación entre el host (computadora) y el dispositivo. Estas señales son bi-direccionales y sus niveles diferenciales. Cuando Data+ tiene un nivel alto Data- tiene un nivel bajo, pero en algunos casos Data+ y Data- tienen el mismo nivel (EOP end of packet, o en estado inactivo del bus ). De acuerdo al estándar USB las señales Data+ y Data- deben manejar niveles altos entre 3 y 3.6Volts.

La siguiente tabla muestra la asignación de pines sobre un conector USB.

Contact number Signal name Typical wiring assignment

1 VBUS Red

2 D- White

3 D+ Green

4 GND Black

Tabla 1: Asignaciones de pines en el conector USB

La conexión y desconexión de un dispositivo USB se detecta por medio del sensado de la

impedancia sobre las líneas Data+ y Data-. Para dispositivos de baja velocidad es necesario colocar una resistencia de pull-up de 1.5K entre Data- y Vcc; para dispositivos de alta velocidad esta resistencia se coloca entre Data+ y Vcc. El host detectara un nuevo dispositivo teniendo en cuenta este pull-up.

Después que el Host detecta un nuevo dispositivo, este comienza a comunicarse con el de acuerdo al protocolo USB físico. Este protocolo como el RS232 se basa en la transferencia sincrónica de datos, por lo tanto es necesario sincronizar el trasmisor y el receptor para llevar a cabo la comunicación. Para ello el trasmisor enviara un pequeño encabezado (sync pattern) antes de enviar los datos. Este encabezado consiste en una secuencia de unos y ceros (10101000), luego de la cual se trasmiten los datos. Para mantener la sincronización esta secuencia se debe repetir cada milisegundo en el caso de

1.2 -25

Page 26: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S ispositivos full-speed o que ambas líneas sean llevadas a cero en el caso de dispositivos de baja

velocidad. En los receptores USB esta sincronización se logra con un PLL.

aracodific

que consiste de 2 ceros en ambas líneas de datos. La señal de EOP es seguida por un corto tiempo ocioso (mínim

ync Field (sync pattern), PacketID (PID), Address field (ADDR), Endpoint field (ENDP), Data, RC)

Token: indica el tipo de transacción.

d

P mantener el sincronismo cuando se envia una secuencia larga de unos o ceros se utiliza ación NRZI (Non-Return-to-Zero Inverted) en las líneas de datos. La finalización de la transferencia de datos se realiza por medio de EOP (end-of-packet)

o de 2 periodos de datos). Después de esto es posible realizar una próxima transacción.

La cadena de datos esta compuesta por paquetes constituidos por varios campos: S

y Cyclic redundancy check (C

Tipos de paquetes USB Existen cuatro tipos de paquetes:

SOF (start of frames) : indica el comienzo de un nuevo cuadro

Data: datos.

Handshake: utilizado para reconocimiento de datos y reporte de errores

1.2 -26

Page 27: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

tro tipos de transferencias de datos:

ión y comandos entre el dispositivo y

o el tiempo de entrega no es critico.

as cantidades de datos que necesitan atención inmediata. Utilizado en mouse y teclado.

ona): es utilizada en procesos donde los datos deben ser entregados en un ierto tiempo. Se utiliza en transferencias de audio y video.

final es una porción direccionable del periférico que es receptor o transmisor de datos. Existen cuatro bits que definen la dirección del “endpoint”. La dirección 0 se reserva para transfe

producto roduct ID), tipos de transferencias, tamaño máximo de paquetes de datos, intervalos de tiempo entre

de banda necesario. Una vez que el host recibe estos datos, establece conexiones a los endpoint a través de tubos virtuales, los cuales tienen un cierto tamaño (ancho de banda).

indows 95. Desafortunadamente desarrollar drivers para dispositivos USB no es una tarea sencilla, la buena noticia es que en la mayoría de los casos los drivers provist

os de omunicación en una pila de drivers. La aplicación se comunica con las clases o con los drivers de

dispositivos propios en el WDM, a través de llamadas a las API de windows. Dentro del “WDM stack” los datos se transfieren a bajo nivel usando IRP (I/O request packets) además de llamadas a APIs.

USB soporta cua

Control: transfiere configuraciones, cambios de configuracel host.

Bulk (Bloques): transfiere grandes cantidades de datos cuandLas aplicaciones típicas incluyen impresoras y escáneres.

Interrupt (Interrupciones): utilizado para intercambiar pequeñ

Isochronous (Isocrc

Comunicación USB Las comunicaciones en USB se llevan a cabo entre el host y puntos finales (endpoints) ubicados

en los periféricos. Un punto

rencias de control, dejando libres 15 direcciones bidireccionales dentro de cada endpoint como fuentes o destinos de datos.

La idea de los endpoints deja un concepto importante en las transacciones USB, la de los Pipes o

Tubos. Todas las transferencias ocurren a través de tubos virtuales que conectan los endpoints de los periféricos con el host. Cuando se establece una comunicación con el periférico, cada endpoint retorna un “descriptor”. Un descriptor es una estructura de datos que informa al host acerca de la configuración del endpoint. Estos datos incluyen identificación del fabricante (Vendor ID), identificador del(Ptransferencias, y ancho

El Driver del Host El protocolo USB es un estándar complejo que requiere un complicado soporte de software tanto

en el lado del host como del lado del dispositivo (firmware). En la mayoría de los casos en el lado del host estará una PC corriendo un sistema operativo. El

protocolo USB solo es soportado a partir de W

os en Windows podrán manejar su propio periférico. Para entender esto veremos como funcionan los drivers de Windows.

El Win32 Driver Model (WDM), tiene diferentes capas para diferenciar los proces

c

1.2 -27

Page 28: INTERFASES DE E/S - hildalarrondotnethildalarrondo.net/wp-content/uploads/2010/11/Capitulo-1.2-Interfa... · Lenguaje Descriptor de Hardware ABEL-HDL y el simulador de diagrama de

Instrumentación virtual aplicada al estudio de sistemas complejos Capítulo 1:1.2- Interfases E/S

1.2 -28

El “USB bus driver” maneja la enumeración y varias transacciones. Debajo el “Host controller” se comunica directamente con el hardware USB en la PC. Estos drivers se suministran en las nuevas versiones de Windows y no deben ser modificados.

Windows como también las especificaciones USB dividen los drivers en clases que manejan

interfases similares. Una clase define la base de las especificaciones para un determinado conjunto de capacidades. Todos los dispositivos que dependen de una clase requieren soporte de software similar. Un ejemplo es la clase HID (Human Interface Device), que soporta dispositivos como el mouse, joystick y teclado.

Windows 98, 2000 y Xp incluyen una completa clase HID, por lo cual si su periférico requiere

soporte HID, puede utilizar este driver sin necesidad de escribir código para el host. Una alternativa a los drivers de clases son los drivers personalizados (custom drivers) que

explotan al máximo las capacidades de hardware de un dispositivo USB. Un ejemplo tipico es un driver para un sistema de adquisición ya que no hay driver de clases para esta aplicación. De manera similar si un dispositivo tiene capacidades mas alla de las que soporta el estándar de la clase, se deberá escribir un driver personalizado.

Para compilar un WDM driver puede hacerce con Visual C++, descargando el Driver

Development Kit de Microsoft (DDK), que incluye códigos de ejemplo de varios drivers USB.

El Driver del periférico Algunos fabricantes ofrecen versiones de microcontroladores que incluyen un Port USB tales

como el Microchip (PIC 16C745) o el Atmel (AT43USB321).