Técnicas de Programación

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Técnicas de Programación"

Transcripción

1 Técnicas de Programación Tema: Entradas y salidas a través de los puertos Índice de contenido Puertos de E/S...3 Puerto paralelo...5 Norma IEE Registros del puerto paralelo Registro de datos Registro de estado Registro de control...9. Direcciones y nombres en la BIOS y en DOS...0. Señales en los pines y bits de los registros... Protocolo de comunicación Modo compatible Modo EPP (Enhanced Parallel Port o Puerto paralelo mejorado) Modo ECP (Extended Capability Port o Puerto de capacidad extendida)...5 Transferencia de datos por los puertos Modo A: Modo B: Modo C: Modo 2: Modo 3A: Modo 3B:...22 Acceso al hardware del PC...22 MS-DOS/Windows Windows 95/ Windows NT, 2000 y XP...24 Interface con los drivers en modo kernel CREATEFILE CLOSEHANDLE READFILE WRITEFILE DEVICEIOCONTROL Estructura OVERLAPPED...28 Configuración de Windows 2000-XP para acceder a los puertos...29 Ejemplo : Acceso a puerto paralelo mediante aplicación de consola... 3 Puerto serie...34 Propiedades del hardware...34 Los dispositivos hardware que utilizan cables de comunicación serie se dividen en dos categorías, que son:...34 Interconexión entre terminales...37 de 54 Tema: Entrada y salida a través de los puertos

2 --Conexiones null módem con el puerto serie Conexiones null módem con el puerto paralelo...39 El Circuito integrado UART 8250 y compatibles Circuitos integrados Registros de la UART RBR (Receiver Buffer Register) BRSR (Baud Rate Select Register) THR (Transmitter Holding Register) IER (Interrupt Enable Register) IIR (Interrupt Identification Register) FCR (FIFO Control Register) LCR (Line Control Register) MCR (Modem Control Register) LSR (Line Status Register)...5. MSR (Modem Status Register) SCR (Scratch Register) Circuitos de reloj típicos Programación del de 54 Tema: Entrada y salida a través de los puertos

3 Puertos de E/S Los puertos de entrada/salida (E/S o IN/OUT) son el medio por el que el microprocesador de un ordenador se comunica con su entorno. Existen puertos para cada interacción de la unidad de procesamiento principal con sus dispositivos auxiliares. Así, existe un puerto de entrada del teclado, un puerto de salida para el adaptador de vídeo, un puerto de entrada para el ratón, etc. Un ordenador personal o PC puede direccionar hasta 64k puertos de E/S designándose cada puerto por un número. En la tabla vemos las direcciones en hexadecimal de algunos de los puertos de E/S. Dirección Desde Hasta Descripción x0000 x000f Controlador de DMA (acceso directo a memoria) x0020 x002 Controlador programable de interrupciones x0040 x0043 Cronómetro del sistema x0060 x0060 Controlador del teclado x006 x006 Altavoz del sistema x0064 x0064 Controlador del teclado x0070 x007 Sistema CMOS/reloj en tiempo real x008 x0087 x0089 x008f x00a0 x00c0 x00f0 x0200 x02f8 x0278 x02e8 x0378 x03e0 x03f2 x03f8 x0083 x0087 Controlador de acceso directo a memoria x008b x009 x00a Controlador programable de interrupciones x00df Controlador de acceso directo a memoria x00ff Procesador de datos numéricos x0207 Puerto de juegos o Creative Gameport Joystick x02ff Puerto de comunicaciones (COM2) x027f Segundo puerto paralelo LPT2 x02ef Puerto de comunicaciones (COM4) x037f Printer Port (LPT) x03ef Puerto de comunicaciones (COM3) x03f5 Controlador estándar de disquetes x03ff Puerto de comunicaciones (COM) 3 de 54 Tema: Entrada y salida a través de los puertos

4 En Windows 98, en herramientas de sistema encontramos una entrada titulada Información de sistema, donde podemos ver una información detallada de los puertos de nuestro sistema, como vemos en la figura: En la figura siguiente vemos lo mismo que antes para un sistema con Windows 4 de 54 Tema: Entrada y salida a través de los puertos

5 Y en la figura vemos el detalle para un sistema con Windows XP. Puerto paralelo En el año98 IBM introduce el ordenador personal o PC y con él también el puerto paralelo (Standart Parallel Port de acrónimo SPP) para utilizarlo como controlador de las impresoras de matriz de puntos. Este puerto tenía la capacidad de transmitir 8 bits de datos simultáneos del PC a la impresora. Paralelamente aparecieron tres grandes grupos de problemas para desarrolladores y usuarios: Primero: La máxima velocidad de transferencia alcanzable estaba en 50 kbyte/s y era extremadamente dependiente del software Segundo: No había un estándar para la interface eléctrica lo que causaba muchos problemas cuando se quería garantizar la operación en múltiples plataformas Tercero: Su diseño limitaba la distancia de los cables externos hasta un máximo de,8 metros. Desde su introducción el puerto paralelo ha sufrido varias modificaciones para hacerlo más veloz. El puerto original era unidireccional y se creó el puerto bidireccional, que fue introducido con el PS/2. Hasta la actualidad se han creado además el Enhanced Parallel Port (EPP) y el Extended Capability Port (ECP) que son al puerto estándar lo que es el Pentium al 286. Aunque inicialmente el puerto paralelo se creó para ser utilizado en la comunicación con impresoras, en la actualidad se utiliza también para manejar otros periféricos como CD ROM, discos duros, tarjetas de red, scanners, unidades externas de almacenamiento, etc. 5 de 54 Tema: Entrada y salida a través de los puertos

6 Existen por tanto cuatro tipos de puerto paralelo: Puerto paralelo estándar (Standart Parallel Port SPP) Puerto Paralelo PS/2 (bidireccional) Puerto paralelo mejorado (Enhanced Parallel Port EPP) Puerto de capacidad extendida (Extended Capability Port ECP) En la tabla vemos información de cada uno de estos tipos de puertos. SPP PS/2 EPP ECP Fecha de Introducción Fabricante IBM IBM Intel Xircom Zenith Data Systems Hewlett Packard Microsoft Bidireccional No Si Si Si DMA No No No Si Velocidad 50 Kbyte/seg. 2 Mbytes/seg. Debido a la acentuada falta de estandarización del interfaz paralelo surgió Centronics como un estándar en este tipo de conexión y a raíz de este interfaz apareció la norma IEEE 284 para el interfaz paralelo en los ordenadores personales. La transmisión en paralelo entre un ordenador y un periférico, se basa en la transmisión de datos simultáneamente por varios canales, generalmente 8 bits. Por esto se necesitan 8 cables para la transmisión de cada uno de los bits, mas otros tantos cables para controles del dispositivo, dependiendo el numero de estos del protocolo de transmisión utilizado. Los principales tipos y nombres de canales utilizados como control son: STROBE: El ordenador comunica, a través de el, al periférico que esta preparado para transmitir. BUSY: El periférico comunica, a través de el, que no esta preparado para recibir datos, es decir, que está ocupado. ACKNOWLEDGE: El periférico comunica, a través de el, que esta preparado para recibir datos, es decir, que está disponible. SELECT y SELECTIN: Para indicar el tipo de error producido en el periférico. ERROR: Indica que se ha producido un error en el periférico. PE: En el caso de la impresora indica que no tiene papel y en general depende del tipo del periférico. Las líneas son latcheadas, es decir, mantienen siempre el último valor establecido en ellas salvo que se cambien expresamente, coincidiendo sus valores de tensión y corriente con los estándares TTL: V H = 2'4 a 5V, V L = 0 a 0'8V, I OUT(max) = 2'6 ma e I IN(max) = 24 ma En la norma Centronics se establece el nombre y las caracteristicas de 36 líneas eléctricas aunque en realidad, en la tarjeta interface paralelo, para la transferencia de señales de datos y de control solamente se requieren 8 líneas, las restantes son líneas de masa enrolladas alrededor de los cables de señal para proporcionar apantallamiento contra interferencias. Las tarjetas en el PC incorporan un conector hembra tipo Cannon DB-25 y las impresoras un conector hembra tipo Centronics DB de 54 Tema: Entrada y salida a través de los puertos

7 Los cables de impresora se construyen con estos dos conectores según la descripción de líneas que vemos en la tabla siguiente: DB-36 Centronics en la impresora DB-25 DB-36 Señal Dirección PC-PRN DB-25 Cannon en el PC Descripción /STR Strobe. Un nivel bajo indica a la impresora que el dato es válido 2 2 D0 Bit 0 de datos 3 3 D Bit de datos 4 4 D2 Bit 2 de datos 5 5 D3 Bit 3 de datos 6 6 D4 Bit 4 de datos 7 7 D5 Bit 5 de datos 8 8 D6 Bit 6 de datos 9 9 D7 Bit 7 de datos 0 0 /ACK BSY Acknowledge. Un nivel bajo indica que la impresora está lista para recibir datos. Busy. Un nivel alto indica que la impresora está ocupada y no puede recibir datos 2 2 POUT Paper Out o Paper End. Imprsora sin papel 3 3 OFON Impresora conectada y en linea 4 4 /ALF Auto Line Feed. Un nivel bajo indica a la impresora que realice un cambio de línea /ERR Error. Un nivel bajo indica un error en la impresora. 6 3 /INI 7 36 /DSL Initialize Printer. Un nivel bajo provoca un reset en la impresora, siempre que esta lo admita. Select. Un nivel bajo pone en linea a la impresora, siempre que esta lo admita. 8 a 25 9 a 30 y 33 Masa Referencia de tensión para las señales. 6 0V Masa lógica 7 Chasis Conexión al chasis del equipo. 8 +Vcc + 5V DC (50 ma max) 5,34 y 35 No utilizadas 7 de 54 Tema: Entrada y salida a través de los puertos

8 Norma IEE 284 Es la norma "IEEE Std Standard Signaling Method for a Bi-directional Parallel Peripheral Interface for Personal Computers la que provee una alta velocidad de comunicación bi-direccional entre el ordenador y el periférico externo lo que hace la comunicación de 50 a 00 veces mas rápida que el puerto paralelo original. Además del incremento de velocidad la gran ventaja es que la compatibilidad con todos los periféricos existentes que puedan usar el puerto paralelo. La norma 284 define 5 modos de transmisión de datos y cada tipo provee un método de transmisión de datos entre el ordenador y el periférico. Estos modos son: Ordenador - Periférico: Compatibility Mode: "Centronics" en modo standard Periférico - Ordenador: Byte Mode: líneas de datos de 8 bits simultáneos, algunas veces puede funcionar como un puerto bidireccional. Bidireccional. EPP: Puerto Paralelo mejorado, usado principalmente por periféricos como: CD-ROM, cintas, discos duros, adaptadores de redes, etc. excluyendo las impresoras. ECP: Puerto de Capacidad Extendida, usado principalmente por scanners e impresoras de nueva generación. Todos los modos utilizan software solo para la transmisión de datos, el driver se encarga de escribir los datos, comprobar las líneas de unión (BUSY), hacer valer las señales de control apropiadas (STROBE) y luego pasar al siguiente byte. Este software limita la efectiva transmisión de datos a unos ratios de 50 a 00 Kbytes por segundo. La norma 284 nos indica lo siguiente: 5 tipos de operaciones para transmitir datos. Un método para el ordenador y el periférico para determinar el modo de transmisión mantenido y negociar el modo requerido. Define el interfaz físico: Cables y Conectores. Define el interfaz eléctrico: Drivers, Terminación e Impedancia. Registros del puerto paralelo El puerto paralelo está formado por 7 líneas de señales y 8 líneas de tierra. Las líneas de señales están formadas por tres grupos: 4 Líneas de control, usadas para la interface, control e intercambio de mensajes desde el PC a la impresora. Estas líneas son los pines, 4, 6 y 7. 5 Líneas de estado, usadas para intercambio de mensajes, indicadores de estado desde la impresora al PC (falta papel, impresora ocupada, error en la impresora). Estas líneas son los pines 0,, 2, 3 y 5. 8 Líneas de datos que suministran los datos de impresión del PC hacia la impresora. Estas líneas son los pines 2 a 9. Las nuevas implementaciones del puerto permiten una comunicación bidireccional mediante las líneas de datos. Cada una de estas líneas (control, estado, datos) puede ser referenciada de modo independiente mediante un registro. El puerto paralelo tiene por tanto tres registros: Registro de datos. Se trata de un registro de solo escritura, o sea que solo se puede variar mediante la programación, pero ningún dispositivo lo podrá hacer electrónicamente. 8 de 54 Tema: Entrada y salida a través de los puertos

9 Registro de estado. Es un registro de solo entrada, o sea, que en este caso solo un dispositivo electrónico lo puede variar, pero mediante software es imposible. Este puerto es el que utiliza la impresora(o el dispositivo electrónico que tengamos conectado) para darnos información sobre su estado. Registro de control. Se puede modificar tanto por el dispositivo electrónico conectado, como por medio de software. Registro de datos Para mandar una señal por un pin, lo que tenemos que hacer es activar (poner a uno) su bit correspondiente. Con esto se consigue que el ordenador mande una señal de 5 voltios (estado lógico alto) por el pin deseado. Pero debemos tener claro que el ordenador mantendrá ese bit a hasta que lo pongamos a 0. Para activar los bits de este registro enviamos un numero codificado en binario a la dirección del registro, que coincide con la dirección base del puerto paralelo (0x378 en LPT). A continuación se muestra un esquema de este registro con su distribución de pines y datos. Como se puede observar en este registro se utilizan los ocho bits. Registro de datos o printer data output (D) bit Nombre D7 D6 D5 D4 D3 D2 D D0 Hardware pin Registro de estado Este registro refleja la situación de la impresora o dispositivo conectado al puerto paralelo permitiendo controlar su comportamiento. Este registro es solo de entrada, por lo que no podremos modificarlo mediante software, siendo la única forma posible de modificación, la que se realice por medio de un dispositivo conectado al puerto paralelo. Su dirección se obtiene sumándole 0x0 a la dirección base del puerto (0x379 en LPT). También tiene una longitud de ocho bits, aunque en este caso se controlan los pins 0,, 2, 3 y 5 siendo útiles los bit que van desde el 3 al 7. El bit 2 es utilizado para la IRQ y los bits y 2 son reservados. A continuación se muestra un esquema de este registro con su distribución de pines y datos. Como se puede observar en este registro se utilizan cinco bits. Registro de estado o printer status register (S) bit Nombre /BSY /ACK POUT OFON ERR IRQ (Not) Reservada Reservada Hardware pin El bit BSY del registro de estado (bit 7) es invertido por el hardware y, por tanto, la línea tiene un nivel complementario al que aparece en ese bit. Registro de control Este registro permite controlar la transferencia de información con la impresora. Es bidirecional, lo que quiere decir que se pueden modificar sus bits tanto por software, como por un dispositivo conectado al puerto paralelo. Su dirección se obtiene sumándole 0x02 a la dirección base del puerto (0x37A en LPT). 9 de 54 Tema: Entrada y salida a través de los puertos

10 A continuación se muestra un esquema de este registro con su distribución de pines y datos. Registro de control o printer control register (C) bit Nombre No usada No usada Bi-dir IRQ /DSL /INI /ALF /STR Hardware pin El bit 5 (C4) pone disponible la interrupción a través de la linea ACK y el bit 6 (C5) establece la bidireccionalidad del puerto. Direcciones y nombres en la BIOS y en DOS IBM definió tres direcciones base de puerto estándar (según el espacio de direccionamiento de entrada/salida del 80x86). El Adaptador de Impresora podía usar la dirección base 0x378 y más tarde 0x278, mientras que la pantalla monocromática y el adaptador de impresora usan la dirección 0x3BC. La BIOS de IBM define espacio en RAM para 4 direcciones base de puerto paralelo de impresora, almacenado como 4 palabras de 6 bit comenzando en la dirección 0x408 de la memoria principal. Durante el arranque el BIOS comprobará los puertos de impresora en las direcciones base 0x3BC, 0x378, y 0x278 en este orden y almacena las direcciones base de cada uno que encuentre en posiciones consecutivas en esta tabla. Las entradas no usadas deben ser 0 aunque algunas BIOS las llenan con la primera dirección de puerto encontrada. La BIOS detecta estos puertos escribiendo 0xAA en el registro de datos (en la dirección base+0 de entrada/salida) y leyendo ese mismo registro de datos en la misma dirección. Deduciendo que hay un puerto instalado si lee 0xAA. La BIOS también cuenta el número de puertos paralelo encontrados y los guarda en los dos bits siguientes al byte 0x4. Advertencia: Justo antes de esta tabla hay 4 palabras en 0x400 que contienen hasta 4 entradas para direcciones base de los puertos serie. Al menos debemos saber que algún software puede almacenar más de 4 entradas sucesivas solapando la tabla del puerto paralela, aunque esto es bastante raro. El MSDOS Y EL DOS DE IBM establecen un mapa de estos dispositivos como LPTn. La primera entrada en la tabla de la BIOS en 0x408 es para LPT, la segunda para LPT2, y la tercera para LPT3. El dispositivo de MSDOS "PRN" es realmente el alias de software para el puerto que por defecto es LPT. Usando el comando MODE se puede cambiar este alias. Direcciones de los registros en el puerto paralelo Registro de R/W IOAddr Bits Función Datos (Salida) W Base+0 D0-D7 8 salidas LS TTL Estado (Entrada) R Base+ S3-S7 5 entradas LS TTL Control (Salida) W Base+2 C0-C3 4 salidas TTL colector abierto C4 C5 habitila IRQ interna Dato triestado interno (PS/2) 0 de 54 Tema: Entrada y salida a través de los puertos

11 Señales en los pines y bits de los registros Entrada Salida DB25 pin Cent pin Nombre de la señal Bit en los registros -Strobe C0- Notas sobre significado de los bits Establecer un pulso a nivel bajo con duración > 0'5 us para enviarlo. Control de la linea que permite validar el dato que está en el registro de datos. La puesta a indica a la impresora que el carácter del registro de datos es válido y debe aceptarlo. Es decir, para enviar un carácter, además de ponerlo en el registro de datos, debemos resetear este bit del registro de control y validar el dato volviéndolo a poner a. 2 2 Dato 0 D0 Establece el dato menos significativo 3 3 Dato D 4 4 Dato 2 D2 5 5 Dato 3 D3 6 6 Dato 4 D4 7 7 Dato 5 D5 8 8 Dato 6 D6 El registro de datos es de tipo latch de 8 bits y es donde el procesador, en operaciones de salida, pone el dato que se quiere enviar a la impresora. 9 9 Dato 7 D7 Establece el dato mas significativo 0 0 -ACK S6+ IRQ - Pulso bajo ~ 5 us después de aceptar. Indica la transferencia correcta de byte pasando a nivel bajo. Estado alto indica impresora ocupada. +BSY S7- Si está a 0 indica que la impresora está ocupada POUT S5+ Nivel alto indica falta de papel 3 3 +OFON S4+ Cuando está a indica que la impresora no está lista ALF C ERR S3+ En estado alto la impresora produce un cambio de linea (LF) cada vez que recibe un retorno de carro (CR). Cuando está a 0 indica que se ha producido un error en la impresora INI C2+ Para inicializar la impresora establecer un pulso > 50 us DSL C3- = 8 a 25 9, 30, 33, 6, 7 Masas Permite activar impresoras que funcionan bajo el estándar Centronics. Las impresoras paralelo compatibles no utilizan esta línea disponiendo de su propio pulsador online. En el registro de control existe un bit 4 (IRQ) que permite controlar la generación de interrupciones de tipo hardware desde el puerto paralelo. El bit a provoca que el interface genere la petición de interrupción (IRQ7 en LPT e IRQ5 en LPT2). La petición de interrupción se produce en la transición H L de la linea ACK. de 54 Tema: Entrada y salida a través de los puertos

12 Algunos cables, puertos, o conectores pueden no conectar todas las masas. Si la dirección de los datos es Entrada ( ) o Salida ( ) se define desde el punto de vista del PC, no de la impresora. En la tabla siguiente se dan los mismos datos agrupados por registros. Entrada Entrada Salida DB25 pin Cent pin Nombre de la señal Bit en los registros 2 2 Dato 0 D0 3 3 Dato D 4 4 Dato 2 D2 5 5 Dato 3 D3 6 6 Dato 4 D4 7 7 Dato 5 D5 8 8 Dato 6 D6 9 9 Dato 7 D7 Salida DB25 pin Cent pin Nombre de la señal Bit en los registros DSL C INI C ALF C- -Strobe C0- +BSY S ACK S POUT S OFON S ERR S3+ La figura muestra un esquema con la distribución de los pines en un conector hembra con referencia a los registros y a la lógica de cada bit. Las referencias a cada registro del puerto se realizan de la siguiente forma: Registro de datos (base): base+0 Registro de estado: base + Registro de control: base + 2 Por ejemplo, si la dirección base es 0x378, entonces las direcciones de los registros de datos, estado y control serán: Registro de datos: 0x378 Registro de estado: 0x379 Registro de control: 0x37A Permitiendo cada una de ellas el acceso a los siguientes bits: Registro de datos: D0, D, D2, D3, D4, D5, D6, D7 Registro de estado: S3-, S4, S5, S6-, S7 Registro de control: C0-, C-, C2-, C3-2 de 54 Tema: Entrada y salida a través de los puertos

13 Protocolo de comunicación El protocolo de comunicación en el PC y la impresora es el siguiente: El PC pone el dato en el registro de datos y envía un impulso por la línea de comprobación (strobe) para indicar dato válido. La impresora lee las líneas de datos y, mientras los procesa, mantiene activa la línea busy indicando que está ocupada. Una vez procesado el dato se activa la línea de reconocimiento (acknowledge) desactivando busy. Si en la impresora se produce algún error se indica por la línea correspondiente. Modo compatible Se trata de la forma de transmisión descrita anteriormente y que sigue los siguientes pasos en la fase de transmisión:. Escribir los datos en el registro de datos. 2. Leer el registro de estado para comprobar que la impresora no esta ocupada. 3. Si no esta ocupada se escribe el registro de control para validar la línea STROBE. 4. Escribir el registro de control para volver a su estado anterior la línea STROBE. En la figura siguiente se describe mediante un cronograma el método de transmisión descrito: Como se puede observar, para sacar byte de información se necesitan 4 instrucciones de E/S, limitando las capacidades de ancho de banda del puerto al orden de 50 kbytes/segundo. Muchos controladores de E/S integrados han implementado un modo que, conservando su compatibilidad con éste, utiliza un buffer FIFO para transferir datos. Se le conoce como "Fast Centronics" o "Modo FIFO de puerto paralelo". Las velocidades que pueden alcanzarse con él son de mas de 500 kbytes/segundo, aunque este no está descrito en la norma IEEE 284. Modo EPP (Enhanced Parallel Port o Puerto paralelo mejorado) El protocolo EPP fue originalmente desarrollado por Intel, Xircom y Zenith Data Systems, como una manera de obtener un puerto paralelo de alta resolución totalmente compatible con el puerto paralelo estándar. Esta capacidad fue implementada por Intel en el procesador 386SL. Dadas sus ventajas, la mayoría de fabricantes de periféricos que utilizaban puertos paralelos lo adoptaron hasta el punto que una asociación de ochenta fabricantes se unió 3 de 54 Tema: Entrada y salida a través de los puertos

14 para el desarrollo de este protocolo y que se denominó Comité EPP. El protocolo EPP realiza cuatro ciclos de transferencia: Ciclo de escritura de datos Pensados para transferir datos tanto al ordenador 2 Ciclo de lectura de datos como al periférico. 3 Ciclo de escritura de direcciones 4 Ciclo de lectura de direcciones Son usados para transferir direcciones, canales, comandos e información de control. Señales EPP y sus asociadas SPP Señal SPP Nombre EPP In/Out Descripción Strobe Write OUT Autofeed Datastb OUT Selectin Addrstb OUT Inactivo operación de escritura. Activo ciclo de lectura. Init Reset OUT Inactivo resetea periférico Inactivo indica operación de lectura o escritura de datos en proceso. Inactivo indica operación de lectura o escritura de direcciones en proceso. Ack Intr IN El periférico genera una interrupción al ordenador Busy Wait IN Inactivo valida el comienzo del ciclo Activo valida el final del ciclo D[8: Ad[8: BI-DI Direcciones y datos fluyen bi-direccionalmente PE IN Definido por Select IN Diferentes usos según periférico usuario Error IN Las fases de transmisión de un ciclo de escritura de datos son:. El programa ejecuta un ciclo de escritura E/S al puerto 4 (Puerto de datos EPP). 2. La línea Write indica la salida de datos hacia el puerto paralelo. 3. Se confirma el DataStrobe ya que el canal Wait esta desactivado. 4. Reconocimiento del puerto desde el periférico. 5. DataStrobe se desconecta y finaliza el ciclo EPP. 6. El ciclo ISA E/S finaliza. 7. El canal Wait es desactivado para indicar que el próximo ciclo puede comenzar. Vemos esto gráficamente en el siguiente cronograma: 4 de 54 Tema: Entrada y salida a través de los puertos

15 Una de las características mas importantes es que la transferencia de datos ocurre en un ciclo ISA E/S. El resultado es que mediante el uso del protocolo EPP para la transmisión de datos un sistema puede mejorar la velocidad de transmisión desde 500 k hasta 2Mbytes por segundo, de esta manera los periféricos de puertos paralelos pueden operar tan eficientemente como un periférico conectado directamente a la placa. En la anterior figura el canal DataStrobe puede conectarse porque el canal Wait esta desactivado, el canal Wait se desactiva en respuesta a un canal DataStrobe conectado, un canal DataStrobe se desactiva en respuesta a que un canal Wait esta siendo desconectado. La figura siguiente muestra un ejemplo de un ciclo de lectura de direcciones: Modo ECP (Extended Capability Port o Puerto de capacidad extendida) Este protocolo fue propuesto por Hewlett Packard y Microsoft como un modo avanzado para la comunicación de periféricos del tipo escaner e impresora. Proporciona una alta resolución en la comunicación bidireccional entre el adaptador del ordenador y el periférico con los siguientes ciclos en ambas direcciones : Ciclos de Datos Ciclos de Comandos Las características principales del ECP incluyen: RLE (Run Length Encoding) o compresión de datos en los ordenadores; FIFO para los canales directo e inverso, y; DMA. La característica RLE mejora la compresión de datos en tiempo real logrando una compresión superior a 64:. Los pasos en la fase de transmisión directa son:. El ordenador sitúa los datos sobre las líneas de datos, inicia un ciclo de datos activando el HostAck. 2. El ordenador desactiva HostClk para indicar un dato valido. 3. El periférico reconoce el ordenador activando PeriphAck. 4. El ordenador activa HostClk. Este es el punto que debería ser usado para cerrar los datos al periférico. 5. El periférico desactiva PeriphAck indicando que esta preparado para recibir el siguiente byte. 6. El ciclo se repite pero en un ciclo de comando ya que HostAck esta desactivado. La siguiente tabla describe las señales de este protocolo: 5 de 54 Tema: Entrada y salida a través de los puertos

16 Señales EPP y sus asociadas SPP Señal SPP Nombre ECP In/Out Descripción Strobe HostClk OUT Autofeed HostAck OUT Selectin 284Active OUT Init ReverseRequest OUT Ack PeriphClk IN Busy PeriphAck IN Data[8: Data[8: BI-DI Usado con PeriphAck para transmitir datos o direcciones en la dirección directa. Proporciona estado de datos y de comando en la dirección directa. Usado con PeriphClk transfiere datos en la dirección inversa. Se activa cuando el ordenador esta en el modo de transmisión 284. Se desactiva para colocar el canal en dirección inversa. Usado con HostAck para transmisión de datos en la dirección inversa. Usado con HostClk para transmisión de información de datos o direcciones en la dirección directa. Proporciona estado de comandos y datos en la dirección inversa. Usado para proporcionar datos entre el periférico y el ordenador. PE AckReverse IN Desactivado para reconocer Reverse Request. Select Xflag IN Flag de extensibilidad. Desactivado por el periférico para indicar que es Error PeriphRequest IN posible la transferencia inversa. Los pasos en la fase de transmisión directa son:. El ordenador sitúa los datos sobre las líneas de datos, inicia un ciclo de datos activando el HostAck. 2. El ordenador desactiva HostClk para indicar un dato valido. 3. El periférico reconoce el ordenador activando PeriphAck. 4. El ordenador activa HostClk. Este es el punto que debería ser usado para cerrar los datos al periférico. 5. El periférico desactiva PeriphAck indicando que esta preparado para recibir el siguiente byte. 6. El ciclo se repite pero en un ciclo de comando ya que HostAck esta desactivado. La figura siguiente muestra los dos ciclos de transmisión de datos directos. Cuando HostAck esta activado indica que se lleva a cabo un ciclo de datos y cuando esta desactivado se lleva a cabo un ciclo de comandos, los datos representan un calculo de RLE o un canal de direcciones. El bit 8 del byte de datos se usa para indicar una RLE, si el bit 8 es cero entonces los bits del al 7 representan un calculo de la longitud de cadena de transmisión, si el bit es entonces los bits al 7 representan un canal de dirección. 6 de 54 Tema: Entrada y salida a través de los puertos

17 Los pasos en la fase de transmisión inversa son: El ordenador pide una transmisión por el canal inverso desactivando ReverseRequest. El periférico señala que esta de acuerdo para proceder desactivando AckReverse. El periférico sitúa los datos sobre las líneas de datos e indica un ciclo de datos activando PeriphAck. El periférico desactiva PeriphClk para indicar un dato valido. El ordenador reconoce la señal activando HostAck. El periférico PeriphClk. Esta manera debería ser usada para guardar los datos en el ordenador. El ordenador desactiva HostAck para indicar que esta preparado para el siguiente byte. El ciclo se repite pero esta vez es un ciclo de comando porque PeriphAck esta desactivado. La figura siguiente muestra el proceso inverso de transferencia. Con el protocolo ECP los cambios en la dirección de datos deben ser negociados, el ordenador debe pedir una transmisión por el canal inverso desactivando el canal ReverseRequest, entonces esperar que el periférico reconozca la señal desactivando AckReverse. Solamente entonces puede llevarse a cabo una transmisión de datos por canal inverso. Transferencia de datos por los puertos Hay tres modos básicos de conectar puertos paralelo para transferir datos entre ellos. El más común conecta D0-D4 (o D3-D7) de un puerto a S3-S7 de otro puerto, y viceversa. De este modo podemos enviar 4 bits de datos por uno (por ejemplo D0-D3) y leerlos en el otro (por ejemplo S3-S6). Podemos usar otro bit (por ejemplo D4/S7) para la sincronización (por ejemplo: Datos Listo). 7 de 54 Tema: Entrada y salida a través de los puertos

18 En este esquema debemos recordar que S3-S6 son bits de lectura y D0-D3 de escritura. Seguidamente desglosamos los modos de transferencia y la forma de realizar los cableados para la transferencia de datos por el puerto paralelo. Modo A: Utiliza para salida el registro de datos y para entrada el registro de estados. Conector Pin Dirección Pin Conector 2 Conexión D0 2 5 S3+ Directa D 3 3 S4+ Directa D2 4 2 S5+ Directa D3 5 0 S6+ Directa D4 6 S7- Invertida S7-6 D4 Invertida S D3 Directa S D2 Directa S D Directa S D0 Directa GND GND Masa Modo B: Utiliza para salida el registro de datos y para entrada el registro de estados. Conector Pin Dirección Pin Conector 2 Conexión D3 5 5 S3+ Directa D4 6 3 S4+ Directa D5 7 2 S5+ Directa D6 8 0 S6+ Directa D7 9 S7- Invertida S7-9 D7 Invertida S D6 Directa S D5 Directa S D4 Directa S D3 Directa GND GND Masa 8 de 54 Tema: Entrada y salida a través de los puertos

19 Modo C: Utiliza para salida el registro de datos y para entrada el registro de estados. El cableado adicional del registro de estados es para interfaces adicionales. Conector Pin Dirección Pin Conector 2 Conexión D3 5 5 S3+ Directa D4 6 3 S4+ Directa D5 7 2 S5+ Directa D6 8 0 S6+ Directa D7 9 S7- Invertida S7-9 D7 Invertida S D6 Directa S D5 Directa S D4 Directa S D3 Directa C0- (*) C0- Directa C- 4 (*) 4 C- Directa C2+ 6 (*) 6 C2+ Directa C3-7 (*) 7 C3- Directa GND GND Masa (*) Nota: Los bits de salida del registro de control se ponen en estado alto en el receptor (incluso los invertidos, es decir: C0, C, C3=0; C2=). El retorno del registro de control lo puede leer el registro de control del remitente. 9 de 54 Tema: Entrada y salida a través de los puertos

20 Modo 2: Puerto paralelo bidireccional de 8 bits. Esta versión trabaja sólo con puerto paralelo bidireccional cuyo registro de datos sea triestado. El conector receptor debe tener su registro de datos triestado para poder usarlo como registro de entrada de un puerto de 8 bits. Conector Pin Dirección Pin Conector 2 Conexión D0 2 (*) 2 D0 Directa D 3 (*) 3 D Directa D2 4 (*) 4 D2 Directa D3 5 (*) 5 D3 Directa D4 6 (*) 6 D4 Directa D5 7 (*) 7 D5 Directa D6 8 (*) 8 D6 Directa D7 9 (*) 9 D7 Directa S4+ 3 C0- Invertida S C- Invertida S C2+ Directa S7-7 C3- Directa C0-3 Invertida C Invertida C Directa C3-7 7 Directa GND GND Masa (*) Nota: sólo tarjetas bidireccionales; el conector receptor debe ser triestado con C5=. Si dos puertos bidireccionales se conectan de la misma forma, y ambos están habilitados con diferentes datos en sus salidas, entonces el circuito integrado driver 74LS374 tendrá un conflicto. Debemos ser especialmente cuidadosos al hacer un cable de este tipo. Un conector RS-232 puenteado es la forma comercial de un DB25 con sus 25 líneas cableadas, usando 8 resistencias de 0k entre las líneas de Datos correspondientes para limitar la corriente. También es posible situar un dispositivo DIP de resistencias en la placa madre del PC. 20 de 54 Tema: Entrada y salida a través de los puertos

21 Modo 3A: Usa 8 bits como entradas siendo las salidas del registro de control en colector abierto. Esta versión usa 4 salidas del registro de control y 4 del registro de estado como entradas. Conector Pin Dirección Pin Conector 2 Conexión D0 2 (*) C0- Invertida D 3 (*) 4 C- Invertida D2 4 (*) 6 C2+ Directa D3 5 (*) 7 C3- Invertida D4 6 3 S4+ Directa D5 7 2 S5+ Directa D6 8 0 S6+ Directa D7 9 S7- Invertida C0- (*) 2 D0 Invertida C- 4 (*) 3 D Invertida C2+ 6 (*) 4 D2 Directa C3-7 (*) 5 D3 Invertida S D4 Directa S D5 Directa S D6 Directa S7-9 D7 Invertida GND GND Masa (*) Nota: las salidas de control usadas como entradas deben programarse a estado alto: C0, C, C3 a 0 y C2 a. 2 de 54 Tema: Entrada y salida a través de los puertos

22 Modo 3B: Usa 8 bits como entradas siendo las salidas del registro de control en colector abierto. Esta versión usa 3 salidas del registro de control como entradas más 5 entradas del registro de estado. La otra salida del registro de control es bidireccional en el otro conector se establece en estado alto por defecto, el otro conector debe establecerse a nivel bajo con una resistencia (lógica inversa). Conector Pin Dirección Pin Conector 2 Conexión D0 2 (*) C0- Invertida D 3 (*) 4 C- Invertida D2 4 (*) 6 C2+ Directa D3 5 (*) 5 S3+ Directa D4 6 3 S4+ Directa D5 7 2 S5+ Directa D6 8 0 S6+ Directa D7 9 S7- Invertida C0- (*) 2 D0 Invertida C- 4 (*) 3 D Invertida C2+ 6 (*) 4 D2 Directa S3+ 5 (*) 5 D3 Directa S D4 Directa S D5 Directa S D6 Directa S7-9 D7 Invertida C3-7 7 C3- Directa (OC) GND GND Masa (*) Nota: las salidas de control usadas como entradas deben programarse a estado alto: C0, C, C3 a 0 y C2 a. Acceso al hardware del PC Vamos a introducir en este punto la forma de acceso a hardware y los problemas que conlleva bajo entorno operativo Windows. La parte que más nos interesa es la referente a W2K (Windows 2000) y Windows XP aunque introduciremos también sistemas anteriores. MS-DOS/Windows 3. Estos sistemas operativos se ejecutan en el anillo 0 de acceso al hardware de la máquina. Así que cualquier proceso puede acceder directamente a los recursos hardware. De hecho con estos sistemas operativos cada programa era el encargado de implementar los drivers de periféricos que necesitara para poder acceder a dichos periféricos. El acceso a hardware no presentaba mayor problema. En un sistema operativo como estos y un compilador ANSI C como el conocido DJGPP, un programa como el siguiente nos permitirá comprobar los niveles de tensión en las líneas de datos del puerto 22 de 54 Tema: Entrada y salida a través de los puertos

23 paralelo así como forzar los niveles H o L en estas líneas para comprobar si el puerto es bidireccional: #include <stdio.h> #include <conio.h> #include <dos.h> #define PARALELO 0x378 /*Dirección base de LPT*/ void main() { unsigned int entrada, salida; char tecla; do { clrscr(); printf("\t\t*** EL REGISTRO DE DATOS"); printf("del PUERTO PARALELO ***"); entrada = inp(paralelo); printf("\nel dato actual en el puerto"); printf("paralelo es: 0x%0X",entrada); printf("\ndato hexadecimal para"); printf("sacarlo por el puerto paralelo:\n"); scanf("%x",&salida); printf("\ncomprueba o cambia los"); printf("niveles en las lineas de"); printf("datos.\n\n"); outp(paralelo, salida);/*salida del dato por el puerto paralelo */ entrada = inp(paralelo); printf("\n\ndato escrito: 0x%0X", entrada); printf("\dato leido: 0x\%0X", salida); printf("\n\npara terminar pulsar"); printf("\'escape\'. Otra tecla para"); printf("seguir"); tecla = getch(); } while (tecla!= 0xB); } Windows 95/98 Este sistema operativo sigue ejecutando todos los procesos en el anillo 0 de acceso al hardware. Se mantiene la posibilidad de que los propios programas sean los que implementen los drivers para acceso a hardware. Se introduce un nuevo concepto: la estructura Universal driver/minidriver. Mediante esta estructura el sistema operativo proporciona unos drivers básicos para el hardware más común, y sobre estos drivers básicos los fabricantes de dispositivos implementan funciones de interfaz para los programas de usuario que aumentan las capacidades del driver original. Además de esta estructura, también se introducen los llamados VxD s (Virtualizaction Device Drivers) que son drivers de 32 bits que se ejecutan en modo protegido. Estos drivers pueden ser compartidos por más de un programa a la vez. Con la introducción de Windows 98 se amplían los drivers básicos existentes y se introduce una nueva clase de drivers denominados HID (Human Interface Device) destinados a acceder a los dispositivos de entrada como teclados, joystics,... En un sistema operativo como estos y un compilador ANSI C, un programa como el anterior funcionará perfectamente. 23 de 54 Tema: Entrada y salida a través de los puertos

24 Windows NT, 2000 y XP Estos sistemas operativos ya utilizan dos de los anillos de acceso al hardware: el anillo 0 y el anillo 3. Aquellos procesos que se ejecutan en el anillo 0 se dice que se ejecutan en modo kernel y los que se ejecutan en el anillo 3 se dice que se ejecutan en modo usuario. Tan sólo los programas que se ejecutan en modo kernel pueden acceder al hardware. Para que los programas en modo usuario puedan acceder al hardware tienen que hacerlo a través de algún proceso en modo kernel. El siguiente gráfico muestra la estructura de Windows NT Como se puede ver los procesos que se ejecutan en modo usuario no tienen comunicación directa con el hardware. Para acceder a él tienen que pasar por el módulo denominado I/O Manager. Este módulo se encarga de recibir las peticiones de acceso al hardware por parte de los procesos que se ejecutan en modo usuario y reenviar dichas peticiones a los drivers encargados del acceso requerido. Estos drivers son los que se comunican directamente con el hardware (pasando previamente por un filtro denominado HAL o Hardware Abstraction Layer que lo que hace es presentar diferentes arquitecturas hardware, como CISC o RISC, de una forma homogénea al resto de módulos). Estos drivers que están dentro del módulo I/O Manager son lo que se denominan Kernel Mode Drivers (Drivers en Modo Kernel). Estos drivers se pueden dividir en tres categorías: Device Drivers (Drivers de dispositivos): Son los drivers que controlan directamente los dispositivos físicos. 24 de 54 Tema: Entrada y salida a través de los puertos

25 Intermediate Drivers (Drivers intermedios): Son los drivers que no acceden directamente a los dispositivos físicos, sino que acceden a device drivers o a otros intermediate drivers. File System Drivers (FSDs, Drivers de sistemas de archivo: Son los drivers para acceder a la información de los discos según su formato (FAT, HPFS, NTFS, CDFS,...). Al igual que los intermediate drivers no acceden directamente a los dispositivos físicos sino que se basan en otros drivers de nivel inferior. Interface con los drivers en modo kernel Como ya hemos dicho para que nuestras aplicaciones (en modo usuario) puedan acceder al hardware desde Windows NT, 2000 o XP necesitan hacerlo a través de drivers en modo kernel. Estos drivers deben proveer ciertas funciones para que las aplicaciones puedan acceder a ellos. En el caso de los drivers que controlan dispositivos de comunicación (puerto serie, puerto paralelo, módems, y en general dispositivos que permitan establecer un flujo bidireccional de datos) estas funciones son: CreateFile: Se encarga de conectar la aplicación en modo usuario con el driver. CloseHandle: Finaliza la conexión entre la aplicación en modo usuario y el driver. ReadFile: La aplicación utiliza esta función para que el driver le devuelva datos que se encuentran en el dispositivo físico al que quiere acceder. WriteFile: La aplicación utiliza esta función para decirle al driver que quiere enviarle datos al dispositivo físico. DeviceIoControl: Se utiliza para enviarle al driver comandos especiales para el propio driver o para que este realice alguna acción sobre el dispositivo físico. Todos estos drivers de dispositivos de comunicación en modo kernel deben implementar estas funciones. Adicionalmente pueden soportar otro tipo de funciones para mejorar la gestión del dispositivo que controlan (como posteriormente veremos con los drivers del puerto serie). Realmente los drivers lo que hacen es presentar el hardware al resto de los procesos como si fueran ficheros, de ahí que las funciones de interface tengan la apariencia de funciones para manejar ficheros. Vamos a describir detalladamente cada una de estas funciones. CREATEFILE El prototipo de esta función es: HANDLE CreateFile( LPCTSTR lpfilename, DWORD dwdesiredaccess, DWORD dwsharemode, LPSECURITY_ATTRIBUTES lpsecurityattributes, DWORD dwcreationdistribution, DWORD dwflagsandattributes, HANDLE htemplatefile ); Donde: lpfilename: Nombre del recurso de comunicación al que nos vamos a conectar. La longitud de la cadena está limitada a la constante MAX_PATH. 25 de 54 Tema: Entrada y salida a través de los puertos

26 dwdesiredacces: Especifica el tipo de acceso que queremos tener sobre el dispositivo. Tenemos tres posibilidades (que se pueden combinar mediante el operador OR): 0: Sólo queremos acceder a información sobre el dispositivo. No queremos leer información desde él ni enviarle información. GENERIC_READ: Queremos leer información desde el dispositivo. GENERIC_WRITE: Queremos escribir información al dispositivo. dwsharemode: Cómo queremos compartir el dispositivo. Podemos combinar las siguientes opciones: 0: No se quiere compartir el dispositivo. FILE_SHARE_DELETE: Sólo se permitirá abrir el dispositivo para borrar. FILE_SHARE_READ: Sólo se permitirá abrir el dispositivo para leer. FILE_SHARE_WRITE: Sólo se permitirá abrir el dispositivo para escribir. lpsecurityattributes: Puntero a una estructura SECURITY_ATTRIBUTES en la que se indica si procesos hijos pueden heredar el handle del dispositivo. Si es NULL el handle no puede ser heredado. (Este parámetro sólo vale para Windows NT, en Windows 95 es ignorado). dwcreationdistribution: Qué hacer si el fichero no existe. Podemos usar una de las siguientes opciones: CREATE_NEW: Crea un nuevo fichero. Se produce un fallo si el fichero ya existe. CREATE_ALWAYS: Crea un nuevo fichero. Si ya existe uno se sobrescribe. OPEN_EXISTING: Abre el fichero. Si no existe se produce un fallo. OPEN_ALWAYS: Abre el fichero. Si no existe se crea. TRUNCATE_EXISTING: Abre el fichero y lo recorta para que tenga cero bytes. Si el fichero no existe se produce un fallo. Hay que especificar por lo menos acceso GENERIC_WRITE. dwflagsandattributes: Atributos e indicadores para abrir el archivo. En el caso de los dispositivos de comunicación podemos usar: FILE_FLAG_OVERLAPPED: Especifica que las operaciones de lectura (ReadFile) y escritura (WriteFile) se pueden realizar en modo asíncrono. htemplatefile: handle de un fichero cuyos atributos (normales y extendidos) queremos copiar a un fichero nuevo que se vaya a crear. Si la llamada a la función tiene éxito, se devuelve un handle al dispositivo o fichero abierto. Si hay algún fallo entonces se devuelve el valor INVALID_HANDLE_VALUE. En el caso de abrir un dispositivo de comunicación, siempre hay que establecer el parámetro dwcreationdistribution al valor OPEN_EXISTING, y el parámetro htemplate al valor NULL. 26 de 54 Tema: Entrada y salida a través de los puertos

27 CLOSEHANDLE Con esta función se cierra un archivo o dispositivo previamente abierto con CreateFile. El prototipo de esta función es: BOOL CloseHandle( HANDLE hobject ); // Manejador (handle) del objeto a cerrar El parámetro hobject es el handle devuelto por una llamada a la función CreateFile. READFILE Con esta función leeremos datos del fichero o dispositivo abierto con con una llamada previa a la función CreateFile. El prototipo de esta función es: BOOL ReadFile( HANDLE hfile, // handle del fichero a leer LPVOID lpbuffer, // direccion del buffer que recibe datos DWORD nnumberofbytestoread, // numero de bytes a leer LPDWORD lpnumberofbytesread,// direccion del numero de bytes a leer LPOVERLAPPED lpoverlapped // direccion de la estructura para datos ); Donde: hfile: handle del fichero o dispositivo devuelto por la función CreateFile. lpbuffer: Buffer dónde se guardarán los datos que se lean del fichero o del dispositivo. nnumberofbytestoread: Número de bytes que se quieren leer. lpnumberofbytesread: Número de bytes que se han leido. Si lpoverlapped no es NULL entonces este parámetro puede ser NULL. lpoverlapped: Puntero a una estructura OVERLAPPED. Si al abrir el dispositivo se ha usado el indicador FILE_FLAG_OVERLAPPED éste parámetro no puede ser NULL. Si la función se ejecuta con éxito se devuelve un valor distinto de cero. Si ocurre algún error entonces se devuelve cero. WRITEFILE Con esta función escribiremos datos al fichero o dispositivo abierto con con una llamada previa a la función CreateFile. El prototipo de esta función es: BOOL WriteFile( HANDLE hfile, LPVOID lpbuffer, DWORD nnumberofbytestowrite, LPDWORD lpnumberofbyteswritten, LPOVERLAPPED lpoverlapped ); Donde: hfile: handle del fichero o dispositivo devuelto por la función CreateFile. lpbuffer: Buffer dónde están los datos que se van a escribir en el fichero o dispositivo. 27 de 54 Tema: Entrada y salida a través de los puertos

28 nnumberofbytestowrite: Número de bytes que se quieren escribir. lpnumberofbyteswritten: Número de bytes que se han escrito. Si lpoverlapped no es NULL entonces este parámetro puede ser NULL. lpoverlapped: Puntero a una estructura OVERLAPPED. Si al abrir el dispositivo se ha usado el indicador FILE_FLAG_OVERLAPPED éste parámetro no puede ser NULL. Si la función se ejecuta con éxito se devuelve un valor distinto de cero. Si ocurre algún error entonces se devuelve cero. DEVICEIOCONTROL Mediante esta función enviaremos directamente un código de control al driver para que éste realice las operaciones adecuadas sobre el dispositivo. El prototipo de esta función es: BOOL DeviceIoControl( HANDLE hdevice, // handle to device of interest DWORD dwiocontrolcode, // control code of operation to perform LPVOID lpinbuffer, // pointer to buffer to supply input data DWORD ninbuffersize, // size, in bytes, of input buffer LPVOID lpoutbuffer, // pointer to buffer to receive output data DWORD noutbuffersize, // size, in bytes, of output buffer LPDWORD lpbytesreturned, // pointer to variable to receive byte count LPOVERLAPPED lpoverlapped // pointer to structure for async. op. ); Donde: hdevice: handle del dispositivo devuelto por CreateFile. dwiocontrolcode: Código de control de la operación a realizar. Este código dependerá del driver al que nos estemos refiriendo. lpinbuffer: Buffer en el que están los datos que se envían driver. El significado de los datos dependerá del código de control. ninbuffersize: Longitud, en bytes, del buffer de entrada al driver. lpoutbuffer: Buffer en el que están los datos que se reciben del driver. El significado de los datos dependerá del código de control. noutbuffersize: Longitud, en bytes del buffer de salida del driver. lpbytesreturned: Número de bytes que realmente devuelve el driver. lpoverlapped: Puntero a una estructura OVERLAPPED. Si la ejecución de la función es correcta entonces se devuelve un valor distinto de cero. Si tiene algún error se devuelve cero. Estructura OVERLAPPED Esta estructura hay que usarla para poder llamar a las funciones ReadFile, WriteFile y DeviceIoControl de forma asíncrona. Al utilizar esta forma de llamada, inmediatamente después de realizar la llamada a la función, ésta retorna devolviendo cero como respuesta ya que la operación no se habrá completado. Sin embargo la operación que habíamos solicitado con la llamada se estará ejecutando hasta que se complete. La estructura OVERLAPPED nos ayudará a saber cuando se ha completado la operación. 28 de 54 Tema: Entrada y salida a través de los puertos

29 La definición de dicha estructura es la siguiente: typedef struct _OVERLAPPED { DWORD Internal; DWORD InternalHigh; DWORD Offset; DWROD OffsetHigh; HANDLE hevent; } OVERLAPPED; Donde: Internal: Reservado para el sistema operativo. InternalHigh: Reservado para el sistema operativo. Offset: Posición del fichero desde la que debe comenzar la transferencia de datos. En el caso de dispositivos de comunicación se ignora. OffsetHigh: Parte alta de la posición del fichero desde la que debe comenzar la transferencia de datos. En el caso de dispositivos de comunicación se ignora. hevent: handle a un objeto de tipo Evento de Windows. Cuando la operación asíncrona finaliza, el evento se activa. Configuración de Windows 2000-XP para acceder a los puertos Ya hemos indicado que para versiones de Windows con tecnologia NT (2000 o XP) no resulta sencillo el acceso a hardware y funciones tan básicas como outp e intp ya no resultan operativas. Para poder leer y escribir en el puerto paralelo es necesario un driver que comunique el sofware con el hardware. No es propósito de este curso el desarrollo de este driver, pero al resultar imprescindible tendremos que recurrir a uno ya creado, por lo que pasaremos a describir la forma de instalar un driver que permita el acceso al puerto paralelo. En concreto vamos a utilizar uno gratuito denominado PORTTALK que está disponible en la web como vemos en la figura: 29 de 54 Tema: Entrada y salida a través de los puertos

30 Una vez descargado el fichero porttalk22.zip lo descomprimimos en una carpeta cualquiera y tendremos un contenido similar a: Ahora copiamos el archivo porttalk.sys en la carpeta de Windows donde normalmente están los drivers, es decir: C:\Winnt\System32\Drivers para Windows 2000 y XP y hacemos doble clic en el archivo porttalk.reg para ejecutarlo y permitir añadir la información que contiene al registro de Windows. Una vez realizados los pasos anteriores deberemos reiniciar el sistema para que tengan efecto los cambios efectuados. Para comprobar que todo está correcto accedemos a las propiedades de sistema a través del panel de control y seleccionamos según la figura siguiente. 30 de 54 Tema: Entrada y salida a través de los puertos

31 Si todo funciona correctamente la situación será la que vemos en la figura siguiente, donde comprobamos que se encuentra el driver Porttalk: Si no vemos el cambio señalado podemos pulsar sobre el icono de búsqueda de cambios de hardware siguiente: Ejemplo : Acceso a puerto paralelo mediante aplicación de consola Vamos a adaptar el ejemplo citado para el sistema operativo MS-DOS y un compilador ANSI C que nos permitirá comprobar los niveles de tensión en las líneas de datos del puerto paralelo así como forzar los niveles H o L en estas líneas. Lo primero que debemos hacer es incluir en nuestra carpeta de trabajo los dos ficheros siguientes, obtenidos del fichero porttalk22.zip: pt_ioctl.c porttalk_ioctl.h Nuestro directorio de trabajo deberá tener un aspecto similar a: 3 de 54 Tema: Entrada y salida a través de los puertos

32 El código del programa comentado es el siguiente: #pragma hdrstop #include <condefs.h> #include <stdio.h> #include <conio.h> #include <windows.h> //Sustituye a #include <dos.h> #include "pt_ioctl.c" // Fichero de definicion del Interface con los drivers en modo kernel #define PARALELO 0x378 /*Dirección base de LPT*/ // #pragma argsused int main(int argc, char* argv[]) { clrscr(); printf("\t\t*** REGISTRO DE DATOS"); printf(" DEL PUERTO PARALELO ***"); printf("\n\t\t \n\n"); unsigned int entrada, salida; char tecla; do { OpenPortTalk(); //Llamada a la función CreateFile entrada = inportb(paralelo); //Lectura del dato del puerto paralelo printf("\nel dato actual en el puerto"); printf(" paralelo es: 0x%0X",entrada); printf("\n\ndato hexadecimal para escribirlo en el puerto paralelo:"); scanf("%x",&salida); printf("\n\t\t **********************************"); printf("\n\ncomprobacion o cambio de los"); printf(" niveles en las lineas de datos.\n\n"); outportb(paralelo, salida); /*Salida del dato por el puerto paralelo */ entrada = inp(paralelo); printf("\tdato escrito: 0x%0X", entrada); printf("\n\tdato leido: 0x\%0X", salida); printf("\n\npara terminar pulsar"); printf("\'escape\'. Otra tecla para seguir"); tecla = getch(); printf("\n\n*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n"); } while (tecla!= 0xB); //0xB es el código Hex de la tecla ESCAPE ClosePortTalk(); //Llamada a la función CloseHandle para dejar disponible el puerto return 0; } En tiempo de ejecución obtenemos un resultado como el que vemos seguidamente, obtenido tras la introducción de algunos datos y partiendo del estado inicial que normalmente es FF. 32 de 54 Tema: Entrada y salida a través de los puertos

33 33 de 54 Tema: Entrada y salida a través de los puertos

34 Puerto serie Realizar un interface con un puerto serie es más complejo que hacerlo con un puerto paralelo. En la mayoría de los casos, cualquier dispositivo que se conecte al puerto serie necesitará reconvertir la transmisión serie a paralelo para poder utilizarla, y esta es la función de una UART (acrónimo de Universal Asynchronous Receiver/Transmitter o receptor/tramsmisor asíncrono universal). Desde el punto de vista del software debemos atender a muchos más registros que en un puerto paralelo estándar (SPP). Visto lo anterior cabe preguntarse: Cuáles son las ventajas de transferir datos en serie respecto a tranferirlos en paralelo? Vamos a tratar de establecer los motivos: Los cables serie pueden ser más largos que los cables paralelo. En el puerto serie, la transmisión del nivel lógico '' se realiza con una tensión de -3 a -25 voltios y un nivel lógico '0' como +3 a +25 voltios, mientras que un puerto paralelo se transmite un '0' como 0 voltios y un '' como 5 voltios. Por lo tanto el puerto serie tiene un margen de tensiones de trabajo de 50 voltios y, en cambio, el margen de tensiones del puerto paralelo es de 5 voltios. Por lo tanto, las caídas de tensión en el cable no van a ser tanto problema en los cables serie como en los paralelo. Se necesitan menos hilos que en la transmisión paralelo. Si su dispositivo va a montarse a una cierta distancia lejos del ordenador, un conductor de tres hilos (configuración Null Modem) será mucho más económica que un conductor de 9 o 25 hilos. No obstante siempre debemos considerar el coste de la electrónica de interconexión en cada extremo. El empleo cada vez más usual de dispositivos infrarrojos en la vida cotidiana y en la estructura interna de ordenadores. Debemos imaginarnos el problema que se plantea si realizamos transmisiones simultaneas de ocho bits de datos en una habitación para descifrar cual es cual desde el punto de vista de los dispositivos. La transmisión serie solamente envía un bit a la vez. Las primeras especificaciones infrarrojas (IrDA-) ya transmitían a 5,2 k baudios interconectadas a una UART. Sin embargo, en el estándar RS232 se redujo en 3/6 para compatibilizar en los dispositivos más usuales. El creciente empleo de micro controladores. La mayoría integran un dispositivo SCI (Serial Communications Interfaces) para usarlo en las comunicaciones con el exterior. La comunicación serie reduce el número de pines de estos dispositivos. Normalmente solo se emplean dos pines, uno para la transmisión de datos (TXD) y otro para la recepción de datos (RXD), que son bastantes menos que los ocho necesarios en la comunicación paralelo. Propiedades del hardware Los dispositivos hardware que utilizan cables de comunicación serie se dividen en dos categorías, que son: Data Communications Equipment (DCE): equipo de comunicación de datos, que son dispositivos tales como módem, plotter o trazador, etc. Data Terminal Equipment (DTE): equipo terminal de datos, que es el ordenador o terminal. Las especificaciones eléctricas del puerto serie se definen en el estándar RS-232C de la asociación de la industria de la electrónica EIA (Electronics Industry Association), donde se indican todos sus parámetros, algunos de ellos los citamos a continuación: Un "espacio" (0 lógico) estará entre +3 y +25 voltios Una "marca" ( lógico) estará entre -3 y -25 voltios. La región entre +3 y -3 voltios es indefinida. 34 de 54 Tema: Entrada y salida a través de los puertos

35 Una tensión a circuito abierto nunca debe exceder los 25 voltios con referencia a masa. Una corriente de cortocircuito no debe exceder los 500mA. Es muy importante que el conductor pueda soportar está corriente sin sufrir daños. Naturalmente esto no es una una lista completa de caracteristicas del estándar EIA, donde además se incluyen la capacidad de línea, las velocidades máximas, etc. Es interesante destacar sin embargo, que el estándar de RS232C especifica una velocidad máxima de BPS, que es algo lenta para estándares actuales. Por esto se han implementado nuevos estándares, como RS-232D lanzado recientemente. El cuadro siguiente resume los niveles lógicos para entradas y salidas que establece la norma. En la tabla se resumen las características eléctricas. DESCRIPCIÓN MIN MAX Tensión de salida del transmisor: Nivel alto = 0 (En circuito abierto) Nivel bajo = Tensión de salida del transmisor: Nivel alto = 0 (Con carga de 3 a 7 kω) Nivel bajo = Impedancia de salida del Tx sin alimentación -25 V +25 V +5 V -5 V +5V -5 V 300 Ω Corriente de salida del Tx en cortocircuito -500 ma +500 ma Slew Rate (dv/dt) 4 V/μs 30 V/μs Impedancia de entrada del Rx 3 kω 7 kω Tensión de entrada del Rx Espacio = 0 Marca = +3 V -25 V +25 V -3 V A continuación vamos a citar las principales caracteristicas de transmisión, es decir, los parámetros que determinan como se realiza la transmisión:. El número de bits de datos que se transmiten es seleccionable entre 5, 6, 7 y 8, según el número de bits necesario para codificar la información. 2. La velocidad de transmisión expresada en baudios (un baudio es el número de condiciones discretas que se transmiten por segundo. En informática un baudio es igual a un bit por segundo o bps). Las frecuencias en baudios más empleadas son: 0, 300, 600, 200, 800, 2400, 9600, 9200, 28800, 33600, y hasta La paridad como método sencillo de detectar errores en la transmisión que consiste en enviar un bit de datos adicional que depende del tipo de paridad seleccionado y de la composición del dato que se transmite. Puede ser: Sin paridad, en cuyo caso no se añade bit de paridad 35 de 54 Tema: Entrada y salida a través de los puertos

36 Paridad par (even parity), cuando el bit de paridad tiene un valor tal que el número de bits transmitidos en estado lógico " es par. Paridad impar (odd parity), cuando el bit de paridad tiene un valor tal que el número de bits transmitidos en estado lógico " es impar. Marca (mark parity, one), si el bit de paridad que se transmite es un. Espacio (space parity, zero), cuando el bit de paridad que se transmite es un Los bits de sincronismo se envían antes de los bits de datos y después del bits de paridad a fin de que transmisor y receptor puedan evitar los errores por las diferencias de frecuencias en sus circuitos. Estos bits son el bit de arranque, que normalmente es un único bits de valor cero y los bits de parada (stop) que pueden ser,.5 o 2. Los puertos serie se implementan bien con conectores tipo D de 25 o de 9 pines, siendo tipo macho en la parte posterior del PC y necesitando, por tanto, conectores hembra para las interconexiones. La tabla muestra las conexiones tanto para uno como para otro tipo e imágenes de los mismos. Nº de pin DB2 5 DB9 Nombre Función Tierra de protección Se conecta al chasis del equipo 2 3 Transmit Data Transmisión de datos TD Salida de datos serie (TXD). DTE envía datos a DCE 3 2 Receive Data Recepción de datos RD Entrada de datos serie (RXD). DTE recibe datos de DCE Request To Send Petición de envió Clear To Send Preparado para transmitir RTS CTS Esta línea informa al módem que la UART está lista para intercambiar datos. Petición de transmisión de DTE Esta línea indica que el módem está listo para intercambiar datos. Es la respuesta a RTS 6 6 Data Set Ready Modem preparado DS R Indica a la UART que el módem está listo para establecer una conexión. Es la respuesta a DTR 7 5 Signal Ground SG Referencia de tensión para señales 8 Data Carrier Detect Detector portadora de datos CD El módem indica al DTE que recibe la portadora de otro módem vía línea telefónica. Hay conexión establecida Data Terminal Ready Terminal de datos listo DT R Indica al módem que la UART está lista para establecer una conexión. Hace que el módem se conecte a la linea Ring Indicator Indicador de llamada RI El módem detecta una señal de llamada en la línea y se lo indica al DTE a través de esta línea. 36 de 54 Tema: Entrada y salida a través de los puertos

37 Interconexión entre terminales La norma RS-232C utiliza el termino DTE para definir al equipo origen y destino de la información y DCE para referirse al equipo que hace viable la transmisión a través de la línea telefónica (normalmente un módem). Es decir, una conexión estándar RS-232 deberá realizarse según vemos en la figura siguiente: Data Terminal Equipment (DTE) Ordenador RD TD RTS CTS DTR DSR RI CD GND Modem RD TD RTS CTS DTR DSR RI CD GND Data Communications Equipment (DCE) Conexión telefónica Data Communications Equipment (DCE) Modem RD TD RTS CTS DTR DSR RI CD GND Ordenador RD TD RTS CTS DTR DSR RI CD GND Data Terminal Equipment (DTE) Resulta muy interesante poder realizar conexiones entre terminales DTE sin la necesidad de intercalar modems y línea telefónica, como por ejemplo conectar un ordenador con una impresora, un aparato de medida, una capturadora de datos o, incluso, conectarlo con otro ordenador. La posibilidad de realizar esta conexión entre ordenadores es utilizar los puertos serie o paralelo del ordenador. En estos casos la denominación y significado de cada una de las líneas empleadas queda desvirtuado en relación a su previsión inicial. La realización física de este tipo de conexiones recibe el nombre de null módem o módem ficticio. A continuación retomaremos el tema de comunicaciones por el puerto paralelo mediante conexiones null módem centrándonos, por ahora en el puerto serie. Conexiones null módem con el puerto serie Una conexión null módem se utiliza comúnmente como manera barata de transferir datos entre ordenadores usando protocolos de comunicación como Zmodem, Xmodem, etc, aunque también se puede utilizar con sistemas de desarrollo basados en microprocesador. Se pueden realizar cables con muchos tipos de conexiones para disponer de un cable null módem En cualquier caso siempre debemos analizar las caracteristicas de los equipos a conectar para preparar el cable adecuado. En las figuras siguientes vemos algunas de las posibles realizaciones. 37 de 54 Tema: Entrada y salida a través de los puertos

38 Data Terminal Equipment (DTE) PC 2 RD 3 TD 7 RTS 8 CTS 4 DTR 6 DSR 9 RI CD 5 GND DB PC 2 RD TD RTS CTS DTR DSR RI CD GND Data Terminal Equipment (DTE) Data Terminal Equipment (DTE) PC 2 RD 3 TD 7 RTS 8 CTS 4 DTR 6 DSR 9 RI CD 5 GND DB PC 2 RD TD RTS CTS DTR DSR RI CD GND Data Terminal Equipment (DTE) 2 Data Terminal Equipment (DTE) PC 2 RD 3 TD 7 RTS 8 CTS 4 DTR 6 DSR 9 RI CD 5 GND DB PC 2 RD TD RTS CTS DTR DSR RI CD GND Data Terminal Equipment (DTE) Data Terminal Equipment (DTE) PC 2 RD 3 TD 7 RTS 8 CTS 4 DTR 6 DSR 9 RI CD 5 GND DB PC 2 RD TD RTS CTS DTR DSR RI CD GND Data Terminal Equipment (DTE) 3 4 El método preferido es el de la figura 4 ya que requiere solamente 3 hilos (TD, RD y SG) para la conexión. La forma de trabajo es razonablemente fácil y consiste en hacer creer al PC que se está comunicando con un módem y no con otro PC. Cualquier dato transmitido por PC por su terminal TD se debe recibir por PC 2 en su terminal RD. El Data Terminal Ready (DTR), Data Set Ready (DSR) y Data Carrier Detect (CD) se conectan entre sí en ambos terminales DTE. Cuando Data Terminal Ready se activa lo hacen inmediatamente Data Set Ready y Data Carrier Detect, y, en este punto, el PC piensa que el módem virtual con el que está conectado está listo y ha detectado la portadora del otro módem. Siempre que ambos ordenadores se comuniquen a la misma velocidad no debemos preocuparnos de Request to Send y Clear To Send, pudiendo unir entre sí estas dos líneas. Cuando un PC desea enviar datos, la línea Request to Send (petición de envió) y Clear To Send (preparado para transmitir) están activas. La línea Ring Indicator no es necesario conectarla en ninguno de los terminales si no tenemos una conexión a través de una línea telefónica. Esta línea se utiliza solamente para indicar al ordenador que hay una señal de sonido en la línea telefónica. 38 de 54 Tema: Entrada y salida a través de los puertos

39 Una conexión que puede ser sumamente práctica para escribir programas de comunicaciones con el puerto serie RS232 es la que se denomina conector de realimentación, que vemos en la figura siguiente. Data Terminal Equipment (DTE) 2 RD 3 TD 7 RTS 8 CTS 4 DTR 6 DSR 9 RI CD 5 GND Las líneas de recepción y de emisión están conectadas entre si, para que todo lo transmitido por Puerto Serie sea recibido por el mismo puerto. Si conectamos este dispositivo a un puerto serie y se ejecuta un programa de comunicación como hyper Terminal, todo que se escribe será inmediatamente mostrado en la pantalla. Conexiones null módem con el puerto paralelo Si realizamos una conexión como la que vemos en la figura siguiente entre puertos paralelo bidireccionales podremos transferir información entre ordenadores. PC C0 3 S4 2 D0 3 D 4 D2 5 D3 6 D4 7 D5 8 D6 9 D7 C0 3 S4 2 D0 3 D 4 D2 5 D3 6 D4 7 D5 8 D6 9 D7 Vemos que se interconectan las líneas de datos de ambos conectores y que se utilizan las líneas C0 y S4 como líneas de protocolo. El PC que va a enviar datos indicará al receptor la validez del dato presente en el registro de datos mediante la activación de la línea C0 del emisor, mientras que S4 se utilizará para conocer si el receptor está listo para recibilirlos; mientras que en el PC receptor C0 indica la disposición de recibir datos y S4 que el dato en las líneas de entrada es válido. Naturalmente debemos implementar el programa de emisión y recepción para poder aplicar una configuración como la anterior. PC 39 de 54 Tema: Entrada y salida a través de los puertos

40 El Circuito integrado UART 8250 y compatibles UART es el acrónimo de Universal Asynchronous Receiver/Transmitter, y es un circuito integrado que permite interactuar entre la placa madre y dispositivos como el módem La mayoría de placas madre tendrán un circuito integrado UART (normalmente de montaje superficial) que también permita controlar el puerto paralelo, el puerto de juegos, unidad de disquete o unidades de disco duro. La serie 8250, que incluye las UART 6450, 6550, 6650 y 6750, es la más comúnmente usada en ordenadores personales. Una comunicación serie se realiza según el siguiente proceso:. La línea que transmite los datos en serie está inicialmente en estado alto. 2. Al comenzar la transferencia, se envía un bit de inicio (un 0). 3. Se transmiten los 8 bits de datos (en ocasiones son 5, 6 ó 7) que están espaciados con un intervalo temporal fijo y preciso, ligado a la velocidad de transmisión que se esté empleando. 4. Se transmite un bit de paridad generado automáticamente por la UART, aunque no es obligatorio. 5. Finalmente aparecen los bits de parada o bits de stop a (a veces un bit y medio ó dos bits). Medio bit significa que la señal correspondiente en el tiempo a un bit dura la mitad; realmente, en comunicaciones se utiliza el término baudio para hacer referencia a las velocidades, y normalmente un baudio equivale a un bit. La presencia de bits de inicio y parada permite sincronizar la estación emisora con la receptora, haciendo que los relojes de ambas vayan al unisono. A la hora de transmitir los bytes de datos unos tras otros, existe flexibilidad en los tiempos, de ahí que este tipo de comunicaciones se consideren asíncronas. La transmisión de los 8 bits de datos de un byte realmente es síncrona, pero las comunicaciones en serie siempre han sido consideradas asíncronas. Circuitos integrados El circuito integrado 6550 es compatible con los 8250 y los Las únicas diferencias son los pines 24 y 29. En el 8250 el pin 24 es una salida que funciona solamente como indicador de que la salida es activa o no. En las UARTs 8250 y 6450 el pin 29 es de tipo No Conectado. El 6550 introduce en su lugar dos nuevos pines, que son Transmit Ready y Receive Ready (preparado para recibir y/o transmitir) que pueden implementarse con DMA ((Direct Memory Access o acceso directo a memoria). El 8250/6450/6550 son circuitos integrados CMOS Asynchronous Communications Element que integran en un solo chip una UART (Universal Asynchronous Receiver/Transmitter) y un BRG (Baud Rate Generator). Soportan velocidades de hasta baudios con relojes de hasta 0 MHz. El BRG incorporado divide la frecuencia base para conseguir las velocidades estándar de la RS-232-C. La UART es un chip del puerto serie que convierte los datos de formato paralelo utilizados 40 de 54 Tema: Entrada y salida a través de los puertos

41 por el PC en datos de formato serie para su envío. Existen básicamente dos tipos de UARTs:. Sin buffer: Diseñadas cuando los módem más rápidos transmitían a 200 bps. No tienen buffer de carácter extra por lo que dependen del procesador para borrar cada carácter enviado por el módem antes de que el siguiente carácter sea enviado. Las UARTs sin buffer comprenden las series 8250, 6450 y y 8250B: El 8250 es la UART original usada en el IBM PC/XT y el 8250B es una versión un poco más lenta. Esta UART no debe usarse en ordenadores AT o superiores, ya que muchos programas de chequeo muestran un informe erróneo, y existen riesgos ocasionales de error, e incluso pueden producirse fallos si se utilizan en estas máquinas. 8250A: Es una versión mejorada del 8250/8250B que trabaja un poco más rápido sobre el bus del PC, no sobre el módem, y con menos problemas. Este chip es lo suficientemente rápido para trabajar con máquinas basadas en el procesador 8086 diseñado entre.983 y.985, pero no es lo suficientemente rápido para ser aplicado en los tipos AT o superiores. 6450: Es una versión más rápida, también sobre el bus del 8250A que fue diseñado para su uso en máquinas del tipo AT. Un 6450 es lo suficientemente rápido para soportar las velocidades de transmisión de los ordenadores actuales. 6550: Se utilizó durante un corto período de tiempo. Esta UART tiene un buffer interno de 6 bytes que no trabaja. Muchos de los IBM PS/2 incluyen este chip. 2. Con buffer: Diseñadas como apoyo a los módem actuales más rápidos. La UART original con buffer es el circuito integrado 6550A, que puede acumular 6 caracteres en el buffer antes de que el procesador lea el dato. Esto hace que el software del PC tenga una mayor facilidad para comunicarse con el módem, creándose menos errores y una mayor velocidad de transmisión. 6550A: Versión mejorada del 6550, donde el buffer trabaja, y es el standard UART de los 90. El buffer colabora en los sistemas operativos Windows y OS/2. Existen diferentes versiones del 6550A creadas por diferentes fabricantes. Así, hay quienes han optado por poner dos UARTs en un mismo chip. Otros han hecho el "super-i/o", que incluye dos puertos serie, y los controles del disco duro y la diskettera. Estas modificaciones lo han mejorado con el paso del tiempo. StarTech 6650 UART: Este chip es una versión mejorada del 6550A UART, que posee un buffer FIFO de 32 bytes, control de flujo automático y un gran potencial en comunicaciones. Su diseño no lo hace completamente compatible con el 6550A, lo que supone que en algunas ocasiones puede no trabajar con algunas aplicaciones y drivers. Texas Instruments 6750 UART: UART totalmente compatible con el 6550A. El 6750 posee un buffer de 64 bytes y capacidad de control de flujo automático En la figura siguiente vemos el diagrama funcional o de bloques del PC6550D (Universal Asynchronous Receiver/Transmitter con FIFOs). 4 de 54 Tema: Entrada y salida a través de los puertos

42 42 de 54 Tema: Entrada y salida a través de los puertos

43 Y a continuación la distribución de patillas en sus tres encapsulados típicos. Seguidamente describimos la funcionalidad de cada uno de estos pines. Pines a 8 - D0 a D7: Bus de Datos: Bus triestado bidireccional de 8 líneas input/output para transmitir datos, información de control y de estado entre la CPU y la UART. Los datos, palabras de control e información del estado se transmiten a través de este bus. Pin 9 - RCLK: Entrada de reloj para la sección receptora, equivalente a 6 veces la frecuencia empleada en la transmisión y puede proceder del BAUDOUT de la estación remota o de un reloj externo. Pin 0 - SIN: Serial Input. Es la línea de entrada de datos desde el enlace (periférico o módem). Pin SOUT: Serial Output: Salida de datos en serie al enlace (periférico o módem). Una marca 43 de 54 Tema: Entrada y salida a través de los puertos

44 es un '' y un espacio es un '0'. SOUT está en marca cuando se realiza una operación de reset. Pin 2, 3 y 4 - CS0,CS y CS2 :Chip Select. La selección del chip se realiza con CS0 y CS en estado alto y CS2 en estado bajo, permitiendo la comunicación entre la UART y la CPU. Pin 5 BAUDOUT :Esta línea de salida contiene una señal de reloj 6 veces mayor que la frecuencia usada para transmitir. Equivale a la frecuencia de entrada en el oscilador dividida por el BRG. La estación receptora podría emplear esta señal conectándola a RCLK (para compartir el mismo reloj). Pin 6 - XIN (External Crystal Input): Esta entrada se usa con XOUT para conexionar un circuito oscilador para general la señal de reloj del BRG. Si la señal de reloj es externa debemos introducirla por este pin. Pin 7 - XOUT (External Crystal Output): Esta entrada se usa con XIN para conexionar un circuito oscilador para general la señal de reloj del BRG. Si la señal de reloj es externa este pin quedará abierto. Pines 8 y 9 - WR y WR : Cuando WR está en estado alto o WR está en estado bajo el chip está seleccionado y la CPU puede escribir palabras (words) de control o datos en el registro seleccionado de la UART. Pin 20 VSS: Masa o referencia de alimentación (0V). Pines 2 y 22 - RD y RD : Cuando RD está en estado alto o RD está en estado bajo el chip está seleccionado y la CPU puede leer información sobre el estado o datos del registro seleccionado de la UART. Pin 23 DDIS: Driver Disable. Esta salida está a nivel bajo cuando la CPU lee datos de la UART. Una salida activa puede emplearse para inhibir un transceiver externo cuando la CPU está leyendo datos. Pines 24 y 29 - TXRDY y RXRDY : La señal DMA de transmisor y receptor está disponible en los pines 24 y 29. Cuando trabajamos en modo FIFO se puede seleccionar entre dos tipos de acceso DMA a través de FCR3. Si operamos en modo 6450 solamente está permitido el modo 0 de DMA. El modo 0 solo soporta transferencias DMA simples cuando se produce un ciclo de bus de la CPU. El modo soporta multitransferencia DMA de forma continua hasta que se vacía el RCVR o se ha llenado XMIT. Pin 25 ADS: Address Strobe. Cuando esta línea de entrada está activa (por flanco de subida) se enclavan o latchean las líneas A0, A, A2 y las señales Chip Select CS0, CS y CS2.. Pin 26, 27 y 28 - A2, A y A0: Register Select. Líneas de entrada que permiten direccionar el registro de la UART para las operaciones de lectura o escritura de la CPU durante la transferencia de datos. La tabla de direccionamiento es la siguiente: DLAB A2 A A0 Registro Receiver Buffer (read), Transmitter Holding Register (write) Interrupt Enable X 0 0 Interrupt Identification (read) X 0 0 FIFO Control (write) X 0 Line Control X 0 0 MODEM Control X 0 Line Status X 0 MODEM Status X Scratch Divisor Latch (least significant byte) 0 0 Divisor Latch (most significant byte) 44 de 54 Tema: Entrada y salida a través de los puertos

45 Pin 30 INTR: Interrupt. Línea de salida que se activa cuando se produce una interrupción de alguno de estos tipos y está permitida: Flag de error de recepción, dato recibido disponible, registro de retención de transmisión vacío, y estado del módem Esta línea se desactiva (se pone a nivel bajo) con el servicio de interrupción apropiado o ante una operación Master Reset. Pin 3 - OUT2 : Esta salida de propósito general se puede activar (poner a 0) programando un en el bit 3 (OUT2) del registro de control del MODEM. Un operación de reset establece está señal como desactivada (nivel alto). En el modo lazo (LOOP o bucle), está también inactiva. Con componentes XMOS se pueden alcanzar niveles TTL. Pin 32 - RTS : Request To Send. Cuando está a nivel bajo esta línea informa al MODEM que la UART está lista para intercambiar datos. Esta señal se pone en alto en respuesta a MR. Pin 33 DTR : Data Terminal Ready. En estado bajo informa al MODEM o terminal que la UART está lista para establecer una comunicación o enlace. Línea de salida que puede activarse (poner a 0 o nivel bajo) escribiendo un o nivel alto en el bit 0 del registro de control del MODEM. Una operación de reset establece esta señal como un nivel alto o inactiva. En el modo loop o lazo la señal es inactiva. Pin 34 - OUT : Esta salida de propósito general se puede activar (poner a 0) programando un en el bit 2 (OUT) del registro de control del MODEM. Un operación de reset establece está señal como desactivada (nivel alto). En el modo lazo (LOOP o bucle), está también inactiva. Con componentes XMOS se pueden alcanzar niveles TTL. Pin 35 MR: Master Reset. Con la entrada a nivel alto se borran todos los registros (excepto el buffer de recepción, transmisión y latches divisores) y el control lógico de la UART. El estado de varias señales de salida ( SOUT, INTR, OUT, OUT2, RTS, DTR ) se modifica por una activación del MR, como vemos en la tabla siguiente. Pin 36 - CTS : Clear To Send: Línea de entrada. El estado lógico de esta señal puede consultarse en el bit CTS del Modem Status Register (MSR) - como el bit CTS es el bit 4 del MSR se referencia MSR(4). Un cambio en el estado de CTS desde la última lectura 45 de 54 Tema: Entrada y salida a través de los puertos

46 del MSR provoca que se active DCTS (bit MSR(0)). Cuando CTS está activo (a 0) el módem indica que el dato puede ser transmitido. Pin 37 - DSR :Data Set Ready: Línea de entrada. El estado lógico de esta señal puede consultarse en MSR(5). DDSR (bit MSR()) indica si DSR ha cambiado desde la última lectura del MSR. Cuando DSR está activo el módem indica que está listo para intercambiar datos con la UART; lo que depende del estado del DCE (Data Communications Equipment) local y no implica que haya comunicación con la estación remota. Pin 38 - DCD : Data Carrier Detect. Línea de entrada que indica si el módem ha detectado portadora. Se puede consultar su estado lógico en MSR(7). El bit MSR(3) indica si esta línea ha cambiado desde la última lectura del MSR. Esta línea no tiene efecto sobre el receptor. Pin 39 - RI : Ring Indicator. Cuando la línea de entrada tiene un nivel bajo indica que el módem ha detectado que llaman por la línea y puede consultarse en MSR(6). El bit TERI (MSR(2)) indica si esta línea ha cambiado desde la última lectura del MSR. Si las interrupciones están habilitadas (IER(3) activo) esta patilla provoca una interrupción al activarse. RI permanece activo durante el mismo intervalo de tiempo que la zona activa del ciclo de llamada e inactivo en los intervalos de la zona inactiva (o cuando el DCE no detecta la llamada). Pin 40 VDD: Tensión de alimentación de 5 V según especificaciones técnicas dadas por el fabricante. Registros de la UART 8250 El 6550 dispone de 2 registros (el 8250 tiene uno menos) pero sólo 3 líneas de dirección para seleccionarlos. Para distinguir unos de otros, aparte de las líneas de direcciones, se utiliza el sentido de acceso (en lectura o escritura) y el valor del bit 7 del registro LCR (DLAB). Para hacer referencia a un bit de un registro se utiliza la notación: REG(i), donde REG es el nombre del registro e (i) el número de bit, por ejemplo LCR(7) para el caso que estamos tratando. Realmente, DLAB se emplea sólo puntualmente para poder acceder y programar los registros que almacenan el divisor de velocidad; el resto del tiempo, DLAB estará a 0 para acceder a otros registros más importantes. En la tabla siguiente vemos los registros y su direccionamiento. A2 A A0 DLAB Read/Write Nombre Función R RBR (Receiver Buffer Register) Buffer de recepción R/W DLL (Divisor Latch LSB) LSB del divisor de velocidad W THR (Transmitter Holding Register) Registro de retención de la transmisión R/W IER (Interrupt Enable Register) Habilitación de interrupciones 0 0 R/W DLM (Divisor Latch MSB) MSB del divisor de velocidad 0 0 X R IIR (Interrupt Identification Register) Identificación de interrupciones 0 0 X W FCR (FIFO Control Register) Control de FIFO () 0 X R/W LCR (Line Control Register) Control de línea (2) 0 0 X R/W MCR (Modem Control Register) Control del modem 0 X R/W LSR (Line Status Register) Estado de línea 0 X R/W MSR (Modem Status Register) Estado del modem X R/W SCR (Scratch Register) Registro residual () Disponible solamente en el 6550 (2) El bit 7 es DLAB 46 de 54 Tema: Entrada y salida a través de los puertos

47 RBR (Receiver Buffer Register) El circuito receptor del 8250 puede programarse para 5, 6, 7 u 8 bits de datos. En el caso de emplear menos de 8, los bits más significativos de este registro están a 0. Los datos entran en serie por SIN (comenzando por el bit D0) en un registro de desplazamiento gobernado por el reloj de RCLK, sincronizado con el bit de inicio. Cuando un carácter completa el registro de desplazamiento de recepción, sus bits son volcados al RBR y el bit DR del LSR es activado para indicar a la CPU que puede leer el RBR. El diseño del 8250 permite la recepción continua de datos sin pérdidas: el RBR almacena siempre el último carácter recibido dando tiempo suficiente a la CPU para leerlo mientras simultáneamente está cargando el registro de desplazamiento con el siguiente; si la CPU tarda demasiado un nuevo dato podría aparecer en el RBR antes de haber leído el anterior (condición de overrun, bit OE del LSR). BRSR (Baud Rate Select Register) Son los registros DLL y DLM. Estos dos registros de 8 bits conforma dos bytes o un valor de 6 bits que será el divisor que se aplicará a la frecuencia base para seleccionar la velocidad a emplear. Las velocidades más comunes son: Velocidad (BPS) Divisor (Decimal) Byte DLM (Hex.) Byte DLL (Hex.) h 00h h 80h h C0h h 30h h 8h h 0Ch h 06h h 03h h 02h h 0h Para obtener estas velocidades serán necesarias unas frecuencias base que se obtienen como el producto de BRSR en decimal por 6 veces la velocidad, es decir: f base =BRSR 6 V BPS Para 2400 BPS f base = = Hz=,8432 MHz Podemos despejar y obtenemos que: f base BRSR= 6 V BPS Para V =50BPS BRSR= =2304 d =900 h 6 50 Para V =300BPS BRSR= =384 d =80 h Para V =9600BPS BRSR= =2 d =C h Para V =57600BPS BRSR= =2 d=2 h THR (Transmitter Holding Register) En el registro de retención de transmisión se almacena el siguiente carácter que va a ser transmitido en serie mientras el registro de desplazamiento de transmisión está enviando el carácter actual, y una vez enviado el registro de desplazamiento queda vacio 47 de 54 Tema: Entrada y salida a través de los puertos

48 y vuelve a cargarse desde el THR para transmitir el nuevo carácter. Cuando se han transmitido todos los caracteres THR queda vacio y el bit THRE del LSR se activa. Cuando están vacíos tanto el THR como el registro de desplazamiento de transmisión se activa el bit TEMT del LSR. IER (Interrupt Enable Register) Este registro de escritura se utiliza para seleccionar entre cinco tipos de interrupciones de la UART y que, por consiguiente, van a ser solicitadas a la CPU. Cada interrupción (INTR) puede activarse como señal de salida individualmente. Deshabilitar el sistema de interrupciones inhibe el IIR y desactiva la salida INTR. En la tabla se muestra el contenido de IER. Bit Estado (*) (*) (*) (*) Nombre IER(3) IER(2) IER() IER(0) Bit 0 IER0: Cuando se pone a nivel lógico se habilita la interrupción de dato disponible y las interrupciones de temporización en modo FIFO. Bit IER: Cuando se pone a nivel lógico se habilita la interrupción de registro de retención de transmisión vacío. Bit 2 IER2: Cuando se pone a nivel lógico se habilita la interrupción de estado de línea del receptor o error de recepción (bits a 4 del LSR). Bit 3 IER3: Cuando se pone a nivel lógico se habilita la interrupción de estado del modem ante el cambio del registro de estado del modem MSR. Bit 4 a 7: Estos cuatro bits permancen siempre en estado lógico 0. IIR (Interrupt Identification Register) El 8250 genera cuatro niveles de prioridad en las interrupciones:. Estado de la línea de recepción. 2. Dato recibido disponible. 3. Registro de retención de transmisión vacío. 4. Estado del modem. El IIR almacena la información que indica que hay una interrupción pendiente y el tipo de la misma e indica la interrupción de mayor prioridad pendiente. No serán reconocidas otras interrupciones hasta que la CPU envíe la señal de reconocimiento apropiada. En el registro IIR, el estado lógico 0 del bit 0 indica si hay una interrupción pendiente y el estado lógico del bit 0 que no la hay, lo que permite tratar las interrupciones consultando este bit. Los bits y 2 indican el tipo de interrupción. Cuando la CPU solicita acceso se graba l interrupción pero no se cambia la indicación actual hasta que el acceso se ha completado. Bit 0: Se utiliza para indicar si hay una interrupción pendiente. Cuando está en estado lógico 0 indica interrupción pendiente y el contenido del IIR se usa como puntero para la rutina del servicio de interrupciones. Cuando su estado lógico es indica que no hay ninguna interrupción pendiente. Bit y 2: Estos dos bits del IIR se utilizan para identificar el nivel de prioridad de la interrupción como vemos en la tabla siguiente, en la que también se incluye el bit 3. Bit 3: Este bit es el indicador de producción de error (Framing Error -FE). En modo 6450 este bit es 0. En modo FIFO indica que está pendiente la interrupción del TIMEOUT. 48 de 54 Tema: Entrada y salida a través de los puertos

49 Modo FIFO Registro Identificación interrupción Bit 3 Bit 2 Bit Activación de interrupciones y funciones de reset Bit 0 Prioridad Tipo Fuente Control de reset Ninguno Ninguna Primera Línea de estado del receptor Segunda Recibir dato disponible 0 0 Segunda Indicación de Interrupción de Carácter Tercera Registro de retención de información vacio Cuarta Estado del MODEM OE -Error Overrun (desborde) o PE - Error de paridad o se produce un error FE - (Framing Error) o BI- rotura de interrupición Recibir dato disponible o nivel de disparo alacanzado No se han enviado carácteres desde la última entrada o al FIFO RCVR durante los últimos 4 caracteres THRE - Registro de retención de información vacio Clear to Send o Data Set Ready o Ring Indicator o Data Carrier Detect Leer Line Status Register Lectura del buffer del registro receptor o nivel FIFO menor que nivel de disparo Lectura del buffer del registro receptor Leer el registro IIR (si hay fuente de interrupción) o escribir el registro de retención de la transmisión Leer el MODEM Status Register Bit 4: Indicador de rotura de interrupción (BI) que se pone en estado lógico si la entrada de datos se mantiene (estado lógico 0) más tiempo que el de completar una palabra. El bit se pone a cero cuando la CPU lee el contenido de Line Status Register. Bit 5: Bit indicador de Transmitter Holding Register Empty (THRE) e indica que la UART está lista para aceptar un nuevo carácter para su transmisión Bit 6: Bit indicador de Transmitter Empty (TEMT). Se pone a cuando Transmitter Holding Register (THR) y Transmitter Shift Register (TSR) están vacíos y en estado lógico 0 cuando cualquiera de los dos o ambos contienen algún dato. En modo FIFO se pone a cuando el transmisor FIFO y el registro de desplazamiento están vacíos. Bit 7: En modo 6450 es un 0 y en modo FIFO pone a LSR7 cuando hay un error de paridad o se produce un error o existe una indicación de ruptura en FIFO. El LSR7 se pone a cero cuando la CPU lee el LSR y no existen errores en FIFO. FCR (FIFO Control Register) Solamente está disponible en el Bit 0: Habilita el borrado de FIFO, XMIT y RCVR cuando se pone a, estado en el que debe estar para escribir los bits y 2. Los registros de desplazamiento de transmisión y recepción no resultan afectados. Bit : Cuando se pone a y está habilitado por FCR0 = borra la cola RCVR. Los registros de desplazamiento de transmisión y recepción no resultan afectados. Bit 2: Cuando se pone a y está habilitado por FCR0 = borra la cola XMIT. Los registros de desplazamiento de transmisión y recepción no resultan afectados. Bit 3: Se pone a cuando los pines RXRDY y TXRDY cambian de 0 a. Bit 4, 5: Reservados. 49 de 54 Tema: Entrada y salida a través de los puertos

50 Bit 6, 7: Estos dos bits se usan para establecer el nivel de disparo para la interrupción del RCVR FIFO, según las siguientes posibilidades: Bit 7 Bit 6 Tamaño de la cola (Bytes) LCR (Line Control Register) Este registro controla el formato del carácter de datos. Bits 0 y : Permiten seleccionar el tamaño del dato de la recepción o transmisión serie. Se denominan WLS0 y WLS (WLS es el acrónimo de Word Length Select) y los tamaños de datos pueden ser: WLS WLS0 Tamaño del dato (Bits) Bit 2: Bit que se denomina STB e indica el número de bits de stop, que pueden ser (STB=0) ó 2 (STB=), al trabajar con datos de 5 bits STB= implica.5 bits de stop. Bits 3, 4 y 5: El bit 3, denominado PEN (Parity Enable), permite habilitar o no la generación de bit de paridad, EPS (Even Parity Select) --bit 4-- selecciona paridad par si está a (o impar en caso contrario). El bit 5 se denomina Stick Parity y permite forzar el bit de paridad a un estado conocido según el valor de EPS. Las posibles combinaciones para selección de paridad con estos 3 bits son: Stick Parity EPS PEN Paridad Sin paridad Impar Par Marca () Espacio (0) Bit 6: Cuando el bit 6 denominado Break Control se pone a, la salida SOUT se pone en estado espacio (a 0), sólo afecta a SOUT y no a la lógica de transmisión. Esto permite a la CPU transmitir sin caracteres erróneos o extraños siguiendo estos pasos: ) cargar un carácter 0 en respuesta a THRE 2) Activar Break Control en respuesta al próximo THRE 3) Esperar a que el transmisor esté inactivo (TEMT=) y bajar Break Control. Durante el Break, el transmisor puede usarse como un temporizador de carácter muy preciso Bit 7: Se trata del bit DLAB (Divisor Latch Access Bit) que puesto a permite acceder a los Latches divisores DLL y DLM del BRG en lectura y escritura. Para acceder al RBR, THR y al IER debe ser puesto a 0. MCR (Modem Control Register) Controla el interface con el modem. La descripción del registro bit a bit es la siguiente: 50 de 54 Tema: Entrada y salida a través de los puertos

51 Bits Denominación LOOP OUT2 OUT RTS DTR Las líneas de salida correspondientes a los bits 0 (Data Terminal Ready), (Request To Send), 2 ( OUT ) y 3 ( OUT2 ) están directamente controladas por estos bits. Son activas a nivel bajo, por lo que son puestas a 0 escribiendo un en estos bits y viceversa. Estas líneas sirven para establecer protocolos de comunicaciones. El bit 4 (LOOP) pone al 8250 en modo lazo o bucle de autodiagnóstico. Con LOOP activo, SOUT pasa a estado de marca () y la entrada SIN es desconectada. Los registros de desplazamiento empleados en la transmisión y la recepción son conectados entre sí. Las cuatro entradas de control del modem ( CTS, DSR, DC y RI ) se desconectan y en su lugar son internamente conectadas las cuatro salidas de control del modem ( DTR, RTS, OUT y OUT2 ) cuyos pines son puestos en estado inactivo (alto). En esta modalidad de operación (modo lazo o bucle), los datos transmitidos son inmediatamente recibidos, lo que permite comprobar el correcto funcionamiento del integrado. Las interrupciones son completamente operativas en este modo, pero la fuente de estas interrupciones son ahora los 4 bits menos significativos del MCR en lugar de las cuatro entradas de control. Estas interrupciones están aún controladas por el IER. Los 5, 6 y 7 están permanentemente a 0. LSR (Line Status Register) Este suele ser el primer registro consultado tras una interrupción. La descripción del registro bit a bit es la siguiente: Bits Nombre -- TEMT THRE BI FE PE OE DR Denominación -- Transmitter Empty Transmitter Holding Register Empty Break Interrupt Framing Error Parity Error Overrun Error Data Ready Bit 0: El bit DR está activo cuando hay un carácter listo en el RBR y es puesto a 0 cuando se lee el RBR. Bits, 2, 3 y 4: Los bits OE, PE, FE y BI son puestos a 0 al consultarlos (cuando se lee el LSR) y al activarse pueden generar una interrupción de prioridad siempre que esta interrupción esté habilitada. El bit OE se activa para indicar que el dato en el RBR no ha sido leído por la CPU y acaba de llegar otro que lo ha sobreescrito. El bit PE indica si hay un error de paridad. El bit FE indica si el carácter recibido no tiene el bit de stop correcto. El bit BI se activa cuando la entrada de datos es mantenida en espacio (a 0) durante un tiempo superior al de transmisión de un carácter (bit de inicio + bits de datos + bit de paridad + bit de parada). Bit 5: El bit THRE indica que el 8250 puede aceptar un nuevo carácter para la transmisión. Este bit se activa cuando el THR queda libre y se desactiva escribiendo un nuevo carácter en el THR. Se puede producir, si está habilitada; la interrupción THRE (prioridad 3); INTRPT se borra leyendo el IIR. El 8250 emplea un registro interno para ir desplazando los bit y mandarles en serie (el Transmitter Shift Register), dicho registro se carga desde el THR. Bit 6: El bit TEMT se activa cuando los registros THR y el Transmitter Shift están vacíos, y volverá a desactivarse cuando se deje otro dato en el THR hasta que el último bit salga por SOUT. Bit 7: En modo 6450 permanece a 0. En modo FIFO LSR se pone a cuando se produce un error de paridad, de desbordamiento o de ruptura. LSR se pone a 0 cuando la CPU lee el LSR y no existen errores en FIFO. 5 de 54 Tema: Entrada y salida a través de los puertos

52 MSR (Modem Status Register) La descripción del registro bit a bit es la siguiente: Bits Nombre DCD RI DSR CTS DDCD TERI DDSR DCTS Denominación Data Carrier Detect Ring Indicator Data Set Ready Clear To Send Delta Data Carrier Detect Trailing Edge of Ring Indicator Delta Data Set Ready Delta Clear To Send Bit 0,, 2 y 3: Además de la información de estado del modem, los 4 bits menos significativos (DDCD, TERI, DDSR, DCTS) indican si la línea correspondiente, en los 4 bits de mayor peso, han cambiado de estado desde la última lectura del MSR; en el caso de TERI sólo indica transiciones de nivel bajo a alto y no las contrarias. Bit 4: La línea CTS del modem indica si está listo para recibir datos del 8250 a través de SOUT. En modo loop o lazo este bit equivale al bit RTS del MCR. Bit 5: La línea DSR del modem indica que está listo para dar datos al En modo lazo o loop equivale al bit DTR del MCR. Bit 6 y 7: RI y DCD indican el estado de ambas líneas. En modo loop se corresponden con OUT y OUT2 respectivamente. Al leer el MSR, se borran los 4 bits de menor peso pero no los bits de estado o mayor peso. Los bits de estado o más significativos (DCD, RI, DSR y CTS) reflejan siempre la situación de los pines físicos respectivos (estado del modem). Si DDCD, TERI, DDSR ó DCTS están a y se produce un cambio de estado durante la lectura, dicho cambio no será reflejado en el MSR; pero si están a 0 el cambio será reflejado después de la lectura. Tanto en el LSR como en el MSR, la asignación de bits de estado está inhibida durante la lectura del registro: si se produce un cambio de estado durante la lectura, el bit correspondiente será activado después de la misma; pero si el bit ya estaba activado y la misma condición se produce, el bit será borrado tras la lectura en lugar de volver a ser activado. SCR (Scratch Register) Este registro no es utilizado por el 8250, y de hecho no existía en las primeras versiones del integrado. Los 8 bits de lectura/escritura pueden ser empleados por el programador como un byte de memoria temporal. Circuitos de reloj típicos Externo Con cristal Osciladores a cristal típicos Cristal R p R X2 C C 2 3. MHz MΩ.5k 0-30 pf pf.8 MHz MΩ.5k 0-30 pf pf 52 de 54 Tema: Entrada y salida a través de los puertos

53 Programación del 8250 El 8250 se programa a través de los registros de control LCR, IER, DLL, DLM y MCR. Aunque los registros de control pueden ser escritos en cualquier orden, IER debe ser escrito al final porque controla la habilitación de las interrupciones. Una vez que el 8250 ha sido programado, los registros pueden ser actualizados en cualquier momento en que el 8250 no se encuentre enviando o recibiendo datos. En ordenadores compatibles puede haber conectados, de manera normal, hasta 4 puertos serie, nombrados de COM a COM4. En el área de datos de la BIOS (segmento 40h) y justo al principio de la misma, hay 4 palabras con la dirección de memoria base de los puertos serie. A esta dirección de memoria base habrá que sumar el desplazamiento relativo del número de registro a ser accedido. El principal problema reside en que sólo están previstas 2 interrupciones para los puertos serie. Ello implica que generalmente sólo 2 de los puertos podrán emplear interrupciones a un tiempo, debido a la arquitectura del bus ISA. Generalmente COM/COM3 compartirán la IRQ4 (INT 0Ch) y COM2/COM4 la IRQ3 (INT 0Bh). Estas asignaciones pueden ser cambiadas por el usuario actuando sobre los switches de configuración de las tarjetas (que en ocasiones permiten incluso elegir la IRQ5). Por tanto, no está de más tener cuidado en los programas y permitir un cierto grado de configuración en estas cuestiones. En la tabla siguiente muestra los offsets o desplazamientos que hay que sumar a la dirección E/S base del puerto serie para acceder a sus registros. COM suele estar en 3F8h, COM2 en 2F8h, COM3 en 3E8h y COM4 en 2E8h. Sin embargo, es mejor acceder a las variables de la BIOS para obtener la dirección, lo que podemos hacer de la misma forma que hicimos para el puerto paralelo y que en un PC concreto con un solo puerto serie vemos en la imagen siguiente. 53 de 54 Tema: Entrada y salida a través de los puertos

EL PUERTO PARALELO. Puertos de Entrada / Salida (E/S) Aspectos generales

EL PUERTO PARALELO. Puertos de Entrada / Salida (E/S) Aspectos generales EL PUERTO PARALELO Aspectos generales Puertos de Entrada / Salida (E/S) Los puertos de E/S se constituyen en el medio por el cual el microprocesador de un computador se comunica con su entorno. Existen

Más detalles

Conexión y programación con el puerto paralelo

Conexión y programación con el puerto paralelo Metodología de Programación, Programación en C, Aplicaciones electrónicas 1 /16 Conexión y programación con el puerto paralelo Las comunicaciones en paralelo se realizan mediante la transferencia simultánea

Más detalles

TEMA 1. CONCEPTO DE ORDENADOR: ESTRUCTURA Y FUNCIONAMIENTO

TEMA 1. CONCEPTO DE ORDENADOR: ESTRUCTURA Y FUNCIONAMIENTO TEMA 1. CONCEPTO DE ORDENADOR: ESTRUCTURA Y FUNCIONAMIENTO 1.1 Introducción Los ordenadores necesitan para su funcionamiento programas. Sin un programa un ordenador es completamente inútil. Para escribir

Más detalles

Introducción a la Entrada/Salida

Introducción a la Entrada/Salida Introducción a la Entrada/Salida Organización de entrada/salida La familia de procesadores 80x86, presente en el IBM PC, utiliza la arquitectura Von Neumann, que puede verse en la figura 1. El denominado

Más detalles

Utilización de los puertos serial y paralelo de una PC usando LabView

Utilización de los puertos serial y paralelo de una PC usando LabView Universidad del Táchira Departamento de Ingeniería Electrónica Instrumentación Electrónica Utilización de los puertos serial y paralelo de una PC usando LabView Hecho Por: Ing. Rafael Chacón Ing. José

Más detalles

La forma de manejar esta controladora es mediante un ordenador utilizando algún lenguaje de programación (Por ejemplo.: C, Visual Basic, Logo,...).

La forma de manejar esta controladora es mediante un ordenador utilizando algún lenguaje de programación (Por ejemplo.: C, Visual Basic, Logo,...). Instituto de Tecnologías Educativas Circuito de control El circuito de control es la parte más delicada de la controladora, ya que se encarga de controlar las entradas (Puerto LPT, Entradas Analógicas,

Más detalles

DCC (DIrect Cable Conection)

DCC (DIrect Cable Conection) DCC (DIrect Cable Conection) Esta técnica de conexión llamada DCC (Direct Cable Conection Conexión Directa por Cable), es el mas sencillo y barato de todos los tipos de conexión en red existentes. Esta

Más detalles

Un circuito simple y un programa para mostrar las posibilidades de utilizar las salidas del Puerto paralelo.

Un circuito simple y un programa para mostrar las posibilidades de utilizar las salidas del Puerto paralelo. Un circuito simple y un programa para mostrar las posibilidades de utilizar las salidas del Puerto paralelo. Copyright Tomi Engdahl 1996-2000 El Puerto paralelo de una PC puede ser un canal muy útil de

Más detalles

CAPÍTULO 3 LA COMUNICACIÓN SERIAL

CAPÍTULO 3 LA COMUNICACIÓN SERIAL CAPÍTULO 3 LA COMUNICACIÓN SERIAL 3.1 Introducción. La historia de las comunicaciones se remonta a 1810 cuando un señor alemán de apellido Von Soemmering, utilizó 26 cables (1 por cada letra del alfabeto)

Más detalles

2.6 Componentes Conectores. 2.6.1 Puertos serie y paralelos

2.6 Componentes Conectores. 2.6.1 Puertos serie y paralelos 2 2.6 Componentes Conectores 2.6.1 Puertos serie y paralelos 109 Un puerto de I/O es una ruta hacia y fuera de la computadora a través de un conector que se encuentra en su parte posterior. Todos los dispositivos

Más detalles

Trabajo Practico Análisis placa madre

Trabajo Practico Análisis placa madre Trabajo Practico Análisis placa madre Facultad de Tecnología Informática Cátedra: OFC Comisión: 560 Integrantes: Alejo Julián Alfonso Profesor: Sergio Omar Aguilera Año: 1ero. Comentario [S1]: Muy bien.

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores 2. La CPU 1. Estructura de la CPU 2. Ciclo de instrucción 3. Interfaz hardware de una CPU 4. Ciclo de reloj, memoria e instrucción Arquitectura de Computadores La CPU - 1 Vamos

Más detalles

Capítulo 3 Fundamentos de una PC

Capítulo 3 Fundamentos de una PC Fundamentos de una PC Es importante saber reconocer y denominar los componentes básicos de una PC. Una PC es una pequeña red de computadoras. Fundamentos de una PC Componentes electrónicos.- Transistor

Más detalles

Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876.

Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876. Ic-Prog PARA PROGRAMAR MICROCONTROLADORES PIC 16F84 y 16F876. Prof: Bolaños D. En unión del hardware adecuado, el software IC-PROG permite programar gran cantidad de dispositivos electrónicos. Esta guía

Más detalles

TEMA 3: Buses, puertos e interfaces

TEMA 3: Buses, puertos e interfaces TEMA 3: Buses, puertos e interfaces Contenidos 1. Introducción. de buses. 3. Jerarquía de buses. 4. Ejemplos de buses. 5. Puertos e interfaces. 6. Ejemplos de puertos e interfaces. Periféricos de Computadores

Más detalles

Dispositivos periféricos

Dispositivos periféricos Dispositivos periféricos Puerto serie y USB William Marin 2007 Escuela de Ingeniería Electrónica Puerto Serie El puerto serie provee un protocolo estándar y conectores estándar que permite conectar dispositivos

Más detalles

INTERFACE DE TRANSFERENCIA DE DATOS A TRAVÉS DEL BUS USB

INTERFACE DE TRANSFERENCIA DE DATOS A TRAVÉS DEL BUS USB INTERFACE DE TRANSFERENCIA DE DATOS A TRAVÉS DEL BUS USB Ing.Pedro Ignacio Martos, pmartos@fi.uba.ar Facultad de Ingeniería, Universidad de Buenos Aires Resumen: En aplicaciones de control que requieren

Más detalles

FUNDAMENTOS DE INFORMATICA

FUNDAMENTOS DE INFORMATICA FUNDAMENTOS DE INFORMATICA TEMAS QUE SE TRATARÁN: Arquitectura Interna Sistemas Operativos Programación en Visual Basic Bases de Datos Redes e Internet 1 FUNDAMENTOS DE INFORMATICA Tema 1: Arquitectura

Más detalles

Instalación Windows XP Profesional

Instalación Windows XP Profesional Antes de empezar Instalación Windows XP Microsoft Windows XP Antes de instalar Windows XP, debe completar las siguientes tareas, que se describen a continuación, para asegurar que la instalación será correcta:

Más detalles

TARJETA COMPLEMENTARIA PCI DE 2 PUERTOS EN 1 SERIE / PARALELOS I/O

TARJETA COMPLEMENTARIA PCI DE 2 PUERTOS EN 1 SERIE / PARALELOS I/O TARJETA COMPLEMENTARIA PCI DE 2 PUERTOS EN 1 SERIE / PARALELOS I/O Manual de usuario DS-33040-1 Características y beneficios Cumple Con la especificación de bus local PCI, Revisión 2.3 Es compatible con

Más detalles

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. ARQUITECTURAS DE COMPUTADORES 2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5. Unidad de E/S 1 Unidad de E/S Indice Introducción.

Más detalles

COMO PROGRAMAR EL PUERTO PARALELO

COMO PROGRAMAR EL PUERTO PARALELO 1 PRESENTACION 2 El presente documento es una breve recopilación de datos referentes a como se programa el puerto paralelo para su utilización en automatismos, circuitos electronicos controlados por computadora

Más detalles

Manual de usuario BASE LAN USB 2.0

Manual de usuario BASE LAN USB 2.0 Manual de usuario BASE LAN USB 2.0 Versión 1. 0 06/11/2003 Índice 1. INTRODUCCIÓN...3 1.1 CARACTERÍSTICAS Y ESPECIFICACIONES... 3 1.2 REQUISITOS DE SISTEMA... 3 1.3 CONTENIDO DE LA CAJA... 3 1.4 CONEXIONES...

Más detalles

A continuación se representan los componentes básicos de un sistema computacional (ordenador). Figura 5.6.1 Componentes básicos de un ordenador.

A continuación se representan los componentes básicos de un sistema computacional (ordenador). Figura 5.6.1 Componentes básicos de un ordenador. 5.6 ESTRUCTURA BÁSICA DE UN ORDENADOR. TERMINOLOGÍA INFORMÁTICA Las aeronaves modernas utilizan sofisticados sistemas de aviónica que necesitan de sistemas de computación basados en microprocesadores.

Más detalles

TECNOLOGIAS DE LA INFORMACION: ARQUITECTURA DEL ORDENADOR

TECNOLOGIAS DE LA INFORMACION: ARQUITECTURA DEL ORDENADOR TECNOLOGIAS DE LA INFORMACION: ARQUITECTURA DEL ORDENADOR En esta unidad vamos a estudiar el ORDENADOR, sus principios de funcionamiento, elementos que lo componen y las funciones que cumplen dentro del

Más detalles

PUERTO PARALELO. Descripción general

PUERTO PARALELO. Descripción general PUERTO PARALELO Desde el punto de vista del software, el puerto paralelo son tres registros de 8 bits cada uno, ocupando tres direcciones de I/O consecutivas de la arquitectura x86. Desde el punto de vista

Más detalles

Puertos de comunicación del PC.

Puertos de comunicación del PC. Puertos de comunicación 1/7 Puertos de comunicación del PC. PUERTOS DE COMUNICACION: QUE SON Y PARA QUE SIRVEN. Los puertos de comunicación, como su nombre indica, son una serie de puertos que sirven para

Más detalles

Entrada salida y comunicación

Entrada salida y comunicación Entrada salida y comunicación E/S de los computadores Introducción: Variedad de dispositivos. Modo de transfer. Tipo de información. Diferencias de velocidades (tasas de transferencias). Ejemplos de periféricos:

Más detalles

Comunicación NS12 y 3G3MV a través del GateWay

Comunicación NS12 y 3G3MV a través del GateWay Informe Técnico Comunicación Guía entre Rápida NS12 y 3G3MV a través del GateWay 1. Introducción 2. GateWay 3. Conexiones 4. Parametrizaje 3G3MV 5. Software GateWay 6. Configuración del NS 7. Uso de la

Más detalles

Prácticas de Introducción a los Computadores Curso 2000-2001 1 WINDOWS 95

Prácticas de Introducción a los Computadores Curso 2000-2001 1 WINDOWS 95 Prácticas de Introducción a los Computadores Curso 2000-2001 1 Novedades WINDOWS 95 Windows 95 es un sistema operativo orientado a documentos. Permite la asociación de la extensión de cada fichero a un

Más detalles

EL ORDENADOR. HARDWARE Y SOFTWARE

EL ORDENADOR. HARDWARE Y SOFTWARE de juegos, etc. EL ORDENADOR. HARDWARE Y SOFTWARE El ordenador es una máquina electrónica utilizada para procesar información a gran velocidad. Es un sistema que recibe, procesa, almacena y presenta la

Más detalles

2.- PLATAFORMA ARDUINO (HARDWARE)

2.- PLATAFORMA ARDUINO (HARDWARE) 2.- PLATAFORMA ARDUINO (HARDWARE) La plataforma Arduino es una plataforma open-hardware basada en una sencilla placa con entradas y salidas (E/S), analógicas y digitales. El elemento principal el microcontrolador

Más detalles

Computación Tercer Año

Computación Tercer Año Colegio Bosque Del Plata Computación Tercer Año UNIDAD 3 Sistemas Operativos E-mail: garcia.fernando.j@gmail.com Profesor: Fernando J. Garcia Ingeniero en Sistemas de Información Sistemas Operativos Generaciones

Más detalles

Programa de Textos FIRECONTROL para centrales ZXCE

Programa de Textos FIRECONTROL para centrales ZXCE Programa de Textos FIRECONTROL para centrales ZXCE El programa de modificación de textos FIRECONTROL, trabaja bajo entorno de sistema operativo Windows, se precisa realizar una petición de datos de la

Más detalles

Dispositivos de Entrada/Salida

Dispositivos de Entrada/Salida Dispositivos E/S. CPU Memoria Central Tarjeta de Red Red BUS Controlador de Discos Dispositivos E/S Dispositivos E/S. Los dispositivos de Entrada/Salida sirven al ordenador para obtener información del

Más detalles

USB (Universal Serial Bus)

USB (Universal Serial Bus) USB (Universal Serial Bus) USB es una interfaz para transmisión de datos y distribución de energía que ha sido introducida en el mercado de PC s y periféricos para mejorar las lentas interfaces serie (RS-232)

Más detalles

Control Digital en PC con MS-DOS

Control Digital en PC con MS-DOS Control Digital en PC con MS-DOS Abel Alberto Cuadrado Vega 19 de abril de 2006 1. Introducción Un PC puede ser utilizado para realizar un sistema de control digital. Para ello necesita lo siguiente: tarjeta

Más detalles

Guest PC. para Mac OS X. Manual del Usuario. Versión 1.6. Copyright 1996-2005 Lismore Software Systems, Ltd. Todos los derechos reservados.

Guest PC. para Mac OS X. Manual del Usuario. Versión 1.6. Copyright 1996-2005 Lismore Software Systems, Ltd. Todos los derechos reservados. Guest PC para Mac OS X Versión 1.6 Manual del Usuario Copyright 1996-2005 Lismore Software Systems, Ltd. Todos los derechos reservados. Tabla de Contenidos ACERCA DE GUEST PC...1 ACERCA DE TU ORDENADOR

Más detalles

IntesisBox. Modbus Server - M-Bus (EN 13757-3) Pasarela para la integración de medidores M-BUS en sistemas de control basados en Modbus RTU y TCP.

IntesisBox. Modbus Server - M-Bus (EN 13757-3) Pasarela para la integración de medidores M-BUS en sistemas de control basados en Modbus RTU y TCP. IntesisBox Server - M-Bus (EN 13757-3) Pasarela para la integración de medidores M-BUS en sistemas de control basados en y TCP. Integre medidores M-Bus en su dispositivo o sistema master (BMS, SCADA, PLC,

Más detalles

ÍNDICE DE CONTENIDOS

ÍNDICE DE CONTENIDOS ÍNDICE DE CONTENIDOS 1. Conceptos generales sobre redes... 1. 2. Elementos básicos de una red. Hardware y Software... 3. 3. Configuración de una LAN. Protocolo TCP IP... 5. 4. Recursos compartidos en una

Más detalles

Arquitectura basica de un computador

Arquitectura basica de un computador Arquitectura basica de un computador Componentes o División básica de un computador Perifericos: Son todos los dispositivos de entrada (Input) y salida (Output): Monitor, Teclado, Ratón, Unidades de almacenamiento

Más detalles

PROPUESTA DE ESTUDIO (febrero 2004 marzo 2005) SISTEMA DE DESPLIEGUE PANORÁMICO EN TRESCOLORES PARA TEXTO Y ANIMACIONES.

PROPUESTA DE ESTUDIO (febrero 2004 marzo 2005) SISTEMA DE DESPLIEGUE PANORÁMICO EN TRESCOLORES PARA TEXTO Y ANIMACIONES. PROPUESTA DE ESTUDIO (febrero 2004 marzo 2005) TÍTULO: SISTEMA DE DESPLIEGUE PANORÁMICO EN TRESCOLORES PARA TEXTO Y ANIMACIONES. Registro asignado por CGPI: 20040678 CENTRO: CENTRO DE INNOVACIÓN Y DESARROLLO

Más detalles

Operación Microsoft Windows XP

Operación Microsoft Windows XP Entornos de red Concepto de red En el nivel más elemental, una red consiste en dos equipos conectados entre sí mediante un cable de forma tal que puedan compartir datos. Todas las redes, no importa lo

Más detalles

PARTICIONES Y FORMATOS

PARTICIONES Y FORMATOS PARTICIONES Y FORMATOS 1. Función de un disco duro Un disco duro es un dispositivo que permite el almacenamiento y recuperación de grandes cantidades de información. Los discos duros forman el principal

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

Elección De Componentes De Reemplazo Para Una PC

Elección De Componentes De Reemplazo Para Una PC Área y Sub-área: Informatica/Reparacion De PC Educador: _Luis Orozco Ciclo Escolar: 2015 Grado: 5to Secciones: A,B,C y D Elección De Componentes De Reemplazo Para Una PC Gabinete y fuente de energía Antes

Más detalles

Fundamentos básicos sobre computación

Fundamentos básicos sobre computación Universidad del Cauca Fundamentos básicos sobre computación División de Sistemas - División de Recursos Humanos 2007 1 Contenido 1. Introducción-Conceptos básicos... 3 1.1. Qué es un computador?... 3 1.2.

Más detalles

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE TRABAJO PRÁCTICO Nº 6: PUERTO SERIE Introducción a las comunicaciones serie Las comunicaciones serie se utilizan para enviar datos a través de largas distancias, ya que las comunicaciones en paralelo exigen

Más detalles

DISPLAYS DE CRISTAL LIQUIDO

DISPLAYS DE CRISTAL LIQUIDO DISPLAYS DE CRISTAL LIQUIDO INDICE MANUAL DE REFERENCIA DEL LCD 1.- INTRODUCCION 2.- CARACTERISTICAS DEL DISPLAY 2.1.- Aspecto físico 2.2.- Alimentación 2.3.- Los caracteres del LCD 2.4.- La memoria del

Más detalles

Desde el punto de vista físico en un ordenador se pueden distinguir los siguientes elementos:

Desde el punto de vista físico en un ordenador se pueden distinguir los siguientes elementos: Desde el punto de vista físico en un ordenador se pueden distinguir los siguientes elementos: Unidad Central de proceso (CPU/UCP): Unidad que se encarga del control del ordenador, procesando para ello

Más detalles

MODULO 4: EL DISCO DURO

MODULO 4: EL DISCO DURO MODULO 4: EL DISCO DURO Es un dispositivo mecánico por la forma de acceder a la información (cabeza que se mueve sobre el disco) y electrónico ya que guarda los datos en señales magnéticas. Es de alta

Más detalles

MODBUS INDICE. Centro Integrado Politécnico ETI Departamento de Electricidad Fernando Pascual Moisés Pérez MODBUS 1. CARACTERÍSTICAS DEL BUS

MODBUS INDICE. Centro Integrado Politécnico ETI Departamento de Electricidad Fernando Pascual Moisés Pérez MODBUS 1. CARACTERÍSTICAS DEL BUS INDICE 1. CARACTERÍSTICAS DEL BUS 2. PROTOCOLOS 3. CARACTERÍSTICAS DE LOS MENSAJES ENVIADOS 4. INSTRUCCIÓN PMCR 5. EJEMPLO DE APLICACIÓN a. Configuración puerto SCU41 b. Configuración variador V1000 c.

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones

Más detalles

GUÍA DE INSTALACIÓN Y REFERENCIA ECR8200PROGRAMMING UTILITY. Code: 569800

GUÍA DE INSTALACIÓN Y REFERENCIA ECR8200PROGRAMMING UTILITY. Code: 569800 GUÍA DE INSTALACIÓN Y REFERENCIA ECR8200PROGRAMMING UTILITY E Code: 569800 PUBLICACIÓN EDITADA POR: Olivetti S.p.A. www.olivetti.com Copyright 2011, Olivetti Reservados todos los derechos Llamamos su atención

Más detalles

KIT INICIO BASICX-24 S310210

KIT INICIO BASICX-24 S310210 KIT INICIO BASICX-24 S310210 Cómo empezar a utilizar el sistema En este documento encontrará los pasos necesarios para empezar a utilizar el sistema BasicX-24. Se resumen los requisitos del sistema, se

Más detalles

Software de la impresora

Software de la impresora Software de la impresora Acerca del software de la impresora El software Epson contiene el software del driver de la impresora y EPSON Status Monitor 3. El driver de la impresora es un programa que permite

Más detalles

ENTRADA PROCESAMIENTO SALIDA

ENTRADA PROCESAMIENTO SALIDA SEMINARIO DIOCESANO DE CRISTO SACERDOTE TECNOLOGIA E INFORMATICA DOCENTE: CARLOS ARMANDO CABAL MUÑOZ GRADO: 6 TEMA: EL COMPUTADOR OBJETIVOS Identificar los componentes y dispositivos de un sistema computacional.

Más detalles

Sistemas de Almacenamiento y Periféricos. ricos

Sistemas de Almacenamiento y Periféricos. ricos Sistemas de Almacenamiento y Periféricos ricos 1 Sistemas de Almacenamiento y Periféricos ricos -Almacenamiento Interfaces: ATA/IDE, SCSI, SATA Dispositivos: Discos duros, almacenamiento óptico, FLASH

Más detalles

Práctica 3ProgramacionRS232: Programación básica de la RS232

Práctica 3ProgramacionRS232: Programación básica de la RS232 Práctica 3ProgramacionRS232: Programación básica de la RS232 1 Objetivos El objetivo de esta práctica es la iniciación del alumno en la programación de las comunicaciones en un entorno de desarrollo basado

Más detalles

Administrar el almacenamiento de datos

Administrar el almacenamiento de datos Administrar el almacenamiento de datos Contenido 2 Lección: Administrar la compresión de archivos 3 Lección: Configurar el cifrado de archivos 15 Lección: Implementar cuotas de disco 24 2 Administrar el

Más detalles

MANUAL PARA CONFIGURAR UNA RED ENTRE 2 PC S QUE USAN WIN 98SE/XP Y CONEXIÓN COMPARTIDA A INTERNET

MANUAL PARA CONFIGURAR UNA RED ENTRE 2 PC S QUE USAN WIN 98SE/XP Y CONEXIÓN COMPARTIDA A INTERNET MANUAL PARA CONFIGURAR UNA RED ENTRE 2 PC S QUE USAN WIN 98SE/XP Y CONEXIÓN COMPARTIDA A INTERNET INDICE PROPÓSITO DEL MANUAL MATERIALES NECESARIOS CONSEJOS PREVIOS TARJETAS DE RED EN WINDOWS 98 SE TARJETAS

Más detalles

GE Power Management GE_LOCAL. Software de Comunicación. Instrucciones GEK 105568C

GE Power Management GE_LOCAL. Software de Comunicación. Instrucciones GEK 105568C GE Power Management Software de Comunicación GE_LOCAL Instrucciones GEK 105568C ,1',&( 1. INSTALACIÓN...3 1.1. REQUERIMIENTOS DEL SISTEMA...3 1.2. INSTALACIÓN DEL PROGRAMA...3 1.2.1. Instalación con disquetes....3

Más detalles

TARJETA DE INTERFAZ PCI DE SERIE

TARJETA DE INTERFAZ PCI DE SERIE TARJETA DE INTERFAZ PCI DE SERIE Manual de usuario DS-33003 Características y beneficios Cumple Con la especificación de bus local PCI, Revisión 2.3 Es compatible con 2 puertos serie UART Fácil conexión

Más detalles

ENTRADA/SALIDA. Conectar con el mundo real CPU. Arquitectura de Ordenadores. Entrada/Salida. Arquitectura de Ordenadores. Entrada/Salida MEMORIA

ENTRADA/SALIDA. Conectar con el mundo real CPU. Arquitectura de Ordenadores. Entrada/Salida. Arquitectura de Ordenadores. Entrada/Salida MEMORIA ENTRADA/SALIDA UPCO ICAI Departamento de Electrónica y Automática 1 Conectar con el mundo real MEMORIA DATAPATH R0 R1 PC LO L1 LPC MX OA TPC MY X Y RA TAD LA 1 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0

Más detalles

LA COMUNICACIÓN ENTRE ORDENADORES

LA COMUNICACIÓN ENTRE ORDENADORES LA COMUNICACIÓN ENTRE ORDENADORES 1. REDES...1 1.1. Redes de paquete...2 Protocolos de conexión...2 1.2. Tipos de redes...2 1.3. Topología de las redes...2 1.4. Otros dispositivos en la red...3 2. VELOCIDAD

Más detalles

Denominamos Ordenador o Computadora, a una máquina electrónica que es capaz de dar un tratamiento automatizado a la información.

Denominamos Ordenador o Computadora, a una máquina electrónica que es capaz de dar un tratamiento automatizado a la información. INTRODUCCIÓN AL ORDENADOR Denominamos Ordenador o Computadora, a una máquina electrónica que es capaz de dar un tratamiento automatizado a la información. Se compone de dos elementos fundamentales que

Más detalles

USO DEL SOFTWARE PROVIEW 32

USO DEL SOFTWARE PROVIEW 32 USO DEL SOFTWARE PROVIEW 32 Como primera parte se hace la instalación del software Proview 32, observando: Se da clic en el ejecutable y se inicia la instalación. La clave de software viene en el archivo

Más detalles

Contenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S

Contenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S Contenido TEMA ENTRADA / SALIDA Sergio Romero Montiel Depto Arquitectura de Computadores El concepto de interfaz de E/S Direccionamiento de interfaces de E/S Mapa de memoria Organización Mapeada y no mapeada

Más detalles

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA I. INTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA 1.1. Informática Informática (Información Automática) es la ciencia y la técnica del tratamiento automatizado de la información mediante el uso de ordenadores.

Más detalles

Interfaz de Programación del Controlador MCA

Interfaz de Programación del Controlador MCA Interfaz de Programación del Controlador MCA Alan Cox alan@redhat.com David Weinehall Chris Beauregard Interfaz de Programación del Controlador MCA por Alan Cox, David Weinehall, y Chris Beauregard Copyright

Más detalles

Anexo B. Comunicaciones entre mc y PC

Anexo B. Comunicaciones entre mc y PC Anexo B Comunicaciones entre mc y PC En este apartado se hará hincapié en los comandos para el manejo del módulo de comunicaciones desde el PC. Conociendo estos comando se podrá realizar una aplicación

Más detalles

Tema 19. Administración de Sistemas Operativos y Periféricos

Tema 19. Administración de Sistemas Operativos y Periféricos Tema 19. Periféricos i en Windows Administración de Sistemas Operativos y Periféricos Mª Pilar González Férez Índice 1. Introducción 2. Herramientas 3. Instalar dispositivos 4. Desinstalar/Deshabilitar

Más detalles

La arquitectura del 8086/8088

La arquitectura del 8086/8088 Repasamos aquí la arquitectura de un PC. Para más información sobre lo aquí expuesto se puede consultar [PA01] y los capítulos iniciales de [Tej01], [Rod00] y [Nor01]. Anatomía del PC A grandes rasgos,

Más detalles

OPC Server PS/PSS MANUAL DE INSTRUCCIONES

OPC Server PS/PSS MANUAL DE INSTRUCCIONES SERVIDOR DE COMUNICACIONES OPC Server PS/PSS Versión 1.4 MANUAL DE INSTRUCCIONES (M98222901-03-13A) CIRCUTOR S.A. OPC Server PS/ PSS -1- ÍNDICE 1.- INSTALACIÓN DEL SERVIDOR OPC POWERSTUDIO / SCADA... 3

Más detalles

Introducción CAPÍTULO 1. Características del sistema

Introducción CAPÍTULO 1. Características del sistema CAPÍTULO 1 Introducción Los sistemas Dell PowerEdge 300 son servidores de alta velocidad con diseño basado en los microprocesadores Intel Pentium III. Estos sistemas soportan el bus PCI (Peripheral Component

Más detalles

Dpto. de Electrónica 2º GM - EMTT. Tema 8 Buses, Puertos y Cables.

Dpto. de Electrónica 2º GM - EMTT. Tema 8 Buses, Puertos y Cables. Dpto. de Electrónica 2º GM - EMTT Tema 8 Buses, Puertos y Cables. Buses Definición: Es un conjunto de líneas de circuito impreso cuyo objetivo es unir los diferentes elementos de la placa base de forma

Más detalles

COMO CREAR UNA RED ENTRE WINDOWS VISTA Y WINDOWS XP

COMO CREAR UNA RED ENTRE WINDOWS VISTA Y WINDOWS XP COMO CREAR UNA RED ENTRE WINDOWS VISTA Y WINDOWS XP 1.- Introducción. 2.- Códigos de color del conector RJ45. 3.- Requisitos del sistema. 4.- Elección de la tarjeta de red. 5.- Instalación del adaptador.

Más detalles

Intérprete entre el Operador y el Ordenador. En otras palabras, el sistema

Intérprete entre el Operador y el Ordenador. En otras palabras, el sistema Introducción a Windows XP Generalidades El pilar o plataforma para la ejecución de todos los programas en una computadora es el Sistema Operativo, que se define en pocas palabras, como el Intérprete entre

Más detalles

Placa de control MCC03

Placa de control MCC03 Placa de control MCC03 Placa de control MCC03 La placa de control basada en el micro controlador PIC 16F874A de Microchip, es la encargada del procesar los datos que se introducen en el sistema y actuar

Más detalles

Manual de programación de los microcontroladores PIC para su uso en el Proyecto IOCards

Manual de programación de los microcontroladores PIC para su uso en el Proyecto IOCards Manual de programación de los microcontroladores PIC para su uso en el Índice 1. Introducción 2. Material necesario a. Hardware b. Software 3. Conexiónes Hardware 4. Configuración Hardware 5. Instalación

Más detalles

INTRODUCCIÓN AL CAPÍTULO 3 8. INTRODUCCIÓN A RSLOGIX 500 4

INTRODUCCIÓN AL CAPÍTULO 3 8. INTRODUCCIÓN A RSLOGIX 500 4 Curso automatización Pág. 8-1 INTRODUCCIÓN AL CAPÍTULO 3 8. INTRODUCCIÓN A RSLOGIX 500 4 8.1. Descripción general del software... 4 8.2. Instalación del software... 6 8.3. Configuración del autómata y

Más detalles

DESARROLLO DE DRIVERS CON DRIVERWORKS

DESARROLLO DE DRIVERS CON DRIVERWORKS DESARROLLO DE DRIVERS CON DRIVERWORKS El asistente de DriverWorks Para iniciar Visual C++ con soporte para DDK utilizaremos: Programas->Compuware DriverStudio->Tools->DDK Build Settings(SetDDKGo) ->launch

Más detalles

CONCEPTOS BÁSICOS DE INFORMÁTICA. REPRESENTACIÓN DE LA INFORMACIÓN.

CONCEPTOS BÁSICOS DE INFORMÁTICA. REPRESENTACIÓN DE LA INFORMACIÓN. INDICE. CONCEPTOS BÁSICOS DE INFORMÁTICA. REPRESENTACIÓN DE LA INFORMACIÓN. TÉRMINOS BÁSICOS DE LA INFORMÁTICA. REPRESENTACIÓN INTERNA DE LA INFORMACIÓN. El SISTEMA BINARIO DE NUMERACION. El sistema decimal

Más detalles

UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO UNIBERTSITATEA

UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO UNIBERTSITATEA DEPARTAMENTO DE ELECTRONICA Y TELECOMUNICACIONES ESCUELA UNIVERSITARIA DE INGENIERIA VITORIA GASTEIZ UNIVERSIDAD DEL PAIS VASCO EUSKAL HERRIKO UNIBERTSITATEA Ampliación de Sistemas Digitales Manual de

Más detalles

TEMA 6: GESTIÓN DE ENTRADA/SALIDA

TEMA 6: GESTIÓN DE ENTRADA/SALIDA 1. Introducción TEMA 6: GESTIÓN DE ENTRADA/SALIDA Función principal de un S.O.: controlar todos los dispositivos de E/S de la computadora. El Subsistema de E/S se encarga de Emitir órdenes a los dispositivos

Más detalles

ISP (Programación en sistema) de los microcontroladores de NXP (Philips) 89LPC9XX utilizando Flash Magic y la UART (puerto serie) del microcontrolador

ISP (Programación en sistema) de los microcontroladores de NXP (Philips) 89LPC9XX utilizando Flash Magic y la UART (puerto serie) del microcontrolador ISP (Programación en sistema) de los microcontroladores de NXP (Philips) 89LPC9XX utilizando Flash Magic y la UART (puerto serie) del microcontrolador Patricio Coronado, SEGAINVEX ELECTRONICA (Universidad

Más detalles

Cables y conectores más comunes en la plataforma PC

Cables y conectores más comunes en la plataforma PC Cables y conectores más comunes en la plataforma PC 1) CONECTORES EXTERNOS Puerto serial 1 (COM1) 1 CD - Detección de portadora 2 RXD - Recepción de datos 3 TXD - Transmisión de datos 4 DTR - Terminal

Más detalles

Tema 1: Sistemas Informáticos Unit 1 : Computing systems. Parte 1: arquitectura de un ordenador personal Part 1 : architecture of a personal computer

Tema 1: Sistemas Informáticos Unit 1 : Computing systems. Parte 1: arquitectura de un ordenador personal Part 1 : architecture of a personal computer Tema 1: Sistemas Informáticos Unit 1 : Computing systems Parte 1: arquitectura de un ordenador personal Part 1 : architecture of a personal computer Qué vamos a ver? Qué es un sistema informático y qué

Más detalles

GESTIÓN DE DATOS INFORMÁTICA BÁSICA CURSO 2013/2014

GESTIÓN DE DATOS INFORMÁTICA BÁSICA CURSO 2013/2014 Actividades: 1. Señala si las siguientes afirmaciones son correctas: a) Los datos deben proporcionar conocimientos y capacidad de actuación para que constituyan información. FALSO b) Los datos sólo pueden

Más detalles

DESCRIPCION DEL SITEMA MASTER.

DESCRIPCION DEL SITEMA MASTER. DESCRIPCION DEL SITEMA MASTER. ESTRUCTURA. El sistema MASTER (Sistema Modular para Control Adaptativo en Tiempo Real) se ha implementado en base a un computador compatible PC-AT, dotado de una tarjeta

Más detalles

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica A. Da Silva, V. Hernández y J.F. Martínez Departamento de Ingeniería y Arquitecturas Telemáticas.

Más detalles

MANUAL DE USUARIO CENTRO DE CONTROL DE FLOTAS MU-CCF-021-SN AGOSTO 2000 EDICIÓN: 1 REVISIÓN: 0

MANUAL DE USUARIO CENTRO DE CONTROL DE FLOTAS MU-CCF-021-SN AGOSTO 2000 EDICIÓN: 1 REVISIÓN: 0 CENTRO DE CONTROL DE FLOTAS MANUAL DE USUARIO MU-CCF-021-SN EDICIÓN: 1 ÍNDICE 1 INTRODUCCIÓN... 1.1 2 FUNCIONALIDAD... 2.1 3 REQUISITOS DEL SISTEMA... 3.1 4 INSTALACIÓN DEL PROGRAMA... 4.1 5 MANEJO DEL

Más detalles

Controlador Motion de 1,5 ejes

Controlador Motion de 1,5 ejes CHARGE POWER RUN 5 RD 000000 STS SD 6 +4V 0V R88A-MCW5-@ Controlador Motion de,5 ejes Control de movimiento Controlador Motion avanzado. Conexión directa con el servodriver de la serie Sigma-II Controla

Más detalles

Conexión inalámbrica a un CNC (con puerto Serie RS232C)

Conexión inalámbrica a un CNC (con puerto Serie RS232C) Conexión inalámbrica a un CNC (con puerto Serie RS232C) A continuación se describe como conectar un CNC con puerto serie RS232C a un PC a través de una red inalámbrica (o Ethernet) El puerto serie RS232C

Más detalles

Instalación de Microsoft Virtual PC

Instalación de Microsoft Virtual PC Instalación de Microsoft Virtual PC Virtual PC es un software de Microsoft que permite instalar varios sistemas operativos en la misma máquina, sin tener que reiniciar Windows y además de forma segura,

Más detalles

Control y temporización Comunicación con la CPU Comunicación con el dispositivo externo Almacén temporal de datos Detección de errores

Control y temporización Comunicación con la CPU Comunicación con el dispositivo externo Almacén temporal de datos Detección de errores UNIDAD DE ENTRADA SALIDA Conceptos Unidad de entrada-salida (E/S): Elemento que proporciona un método de comunicación eficaz entre el sistema central y el periférico. Funciones Control y temporización

Más detalles

Puertas para Windows Versión 1.2 (alpha)

Puertas para Windows Versión 1.2 (alpha) Universidad Técnica Federico Santa María Laboratorio de Sistemas Digitales Puertas para Windows Versión 1.2 (alpha) Mayo 2001 Andrés Alvarado PUERTASparaWindows, Guia de Usuarios 1 I. Introducción: Que

Más detalles

Introducción a Arduino. 2. Para qué puedo utilizar Arduino?

Introducción a Arduino. 2. Para qué puedo utilizar Arduino? 1. Qué es Arduino? Arduino es una plataforma open-hardware basada en una sencilla placa con entradas y salidas (E/S), analógicas y digitales, y en un entorno de desarrollo que implementa el lenguaje Processing/Wiring.

Más detalles

Tarjeta IEEE 1394. Versión 1.0

Tarjeta IEEE 1394. Versión 1.0 Tarjeta IEEE 1394 Versión 1.0 Contenido 1.0 Qué es IEEE1394?.P.2 2.0 Características de 1394..P.2 3.0 Requisitos de sistema de PC..P.2 4.0 Información técnica..p.3 5.0 Instalación del hardware...p.3 6.0

Más detalles

USB 3.0 SuperSpeed. t e c n o l o g í a usb

USB 3.0 SuperSpeed. t e c n o l o g í a usb t e c n o l o g í a usb Por José Luis Rupérez Fombellida (España) El Bus Serie Universal (USB) nació en 1996 para conectar fácilmente diferentes dispositivos a un ordenador mediante conexión serie. Desde

Más detalles