Vous êtes sur la page 1sur 19

2012

Tpicos selectos de programacin


Alumno: Jos Manuel Castrejn Antnez

Profesor: Ing.: Jimnez Vzquez Mario

UNIDAD 6

Programacin de puertos e interrupciones

ndice 6.1 Interrupciones 6.2 GENERALIDADES DE LOS PUERTOS 6.3.1 USB 6.3.2 Infrarrojo 6.3.3 Firewire 6.4 Paralelo y sus variantes 6.5 Interrupciones que intervienen en cada puerto 6.5.1 Direcciones bases 6.5.2 Registros 6.6 Envo y recepcin de los datos. 6.7 Ejemplos de programacin entre puertos y dispositivos.

6.1 INTERRUPCIONES

Concepto de interrupcin: Ya que un procesador no puede procesar simultneamente varios trozos de informacin (procesa un trozo de informacin por vez), un programa que est siendo ejecutado puede, gracias al pedido de interrupcin, ser momentneamente suspendido mientras se produce una interrupcin. El programa interrumpido puede continuar ejecutndose luego. Existen 256 direcciones de interrupcin diferentes. Una interrupcin se convierte en una interrupcin de hardware cuando es solicitada por uno de los componentes de hardware del equipo. En efecto, existen varios perifricos en un equipo. Estos perifricos necesitan generalmente utilizar los recursos del sistema aunque slo sea para comunicarse con el sistema mismo. Cuando un perifrico desea acceder a un recurso, enva un pedido de interrupcin al procesador para llamar su atencin. Los perifricos cuentan con un nmero de interrupcin que se denomina IRQ (Peticiones de Interrupcin. Es como si cada perifrico tirara de un hilo que est atado a una campana para sealarle al equipo que desea que le preste atencin. Este hilo es, de hecho, una lnea fsica que conecta cada ranura de expansin as como cada interfaz E/S a la placa madre. Para una ranura ISA de 8 bits, por ejemplo, hay 8 lneas IRQ que unen ranuras ISA de 8 bits a la placa madre (IRQ0 a IRQ7). Estos IRQ estn controlados por un controlador de interrupcin que se encarga de cederle la palabra al IRQ que posee la mayor prioridad.

Los mtodos interrupt que se manejan en Java. Son 3 1. 2. 3. Interrupt() Interrupted() isInterrupted()

Interrupciones Sintaxis Public void interrupt () Interrumpe este thread

Primero el mtodo checkAccess de este thread es invocado, lo cual puede causar una Security Exception. Si este thread es bloqueado al invocar el wait(), wait(long), o wait(long, int) mtodos de la clase objeto, o de los mtodos join(), join(long), join(long,int), sleep(long), o sleep(long, int) de esta clase entonces los mismos interrupts(de la misma clase) sern despejados y se recibir un Interrupted Exception. Si este thread es bloqueado en una operacin de E/S ante un canal interrumpidle, entonces el canal se cerrar, el estado de interrupt del thread se fijara, y el thread recibir un Closed by Interrupt Exception. Si este thread es bloqueado en un selector, entonces el estado del thread de intrrupt ser fijado, y retornara inmediatamente de la operacin de seleccin, posiblemente con un valor diferente a cero, justo como si el mtodo del selector wakeup hubiera sido invocado. Si ninguna de las condiciones pasadas se cumple, entonces el estado en interrupt del thread ser fijado (activado). Throws: Secutity Exception. Si el thread actual no puede cambiar el thread. Interrupted (interrumpido) Sintaxis Public static boolean interrupted () Hace una prueba si el thread actual a sido interrumpido. El estado de interrupcin del thread es deshecho por este mtodo. En otras palabras, si este mtodo se llamara dos veces, la segunda vez devolvera un valor falso (al menos que el thread actual sea interrumpido de nuevo, despus de que la primera llamada haya terminado su interrupcin y antes de que la segunda empiece). Returns: Verdadero si el thread actual a sido interrumpido, falso de lo contrario IsInterrupted Sintaxis Public boolean isInterrupted () Hace una prueba para ver si este thread a sido interrumpido. El estado de interrupcin del thread no es afectado por este mtodo.

6.2 GENERALIDADES DE LOS PUERTOS

Canales Grupos de cables a travs de los cuales viaja la informacin entre los componentes del sistema. Tienen 8, 16 o 32 cables y este nmero indica la cantidad de bits de informacin que puede transmitir al mismo tiempo. Los canales ms anchos pueden transmitir informacin con ms rapidez que los canales angostos. Ranuras de expansin: Se conectan al bus elctrico comn. Algunos canales estn conectados a ellas en la caja del computador. Los usuarios pueden personalizar sus mquinas insertando tarjetas de circuitos (o tarjetas) de propsito especial en estas ranuras. Existen tarjetas de expansin de RAM, adaptadores de color y de grficos, fax mdem, puertos, coprocesadores (procesadores adicionales que incrementan la capacidad o velocidad de procesamiento del sistema), etc. Puertos Son puntos de conexin en la parte exterior del chasis de la computadora a los que se conectan algunos canales. El puerto permite una conexin directa con el bus elctrico comn de la PC. los puertos pueden ser: Puertos series Permiten la transmisin en serie de datos, un bit a la vez. Este tipo de puertos permiten una interfaz con impresoras y mdems de baja velocidad. Puertos paralelos Permiten la transmisin paralela de datos, es decir que se transmiten varios bits simultneamente. Permiten la interfaz con dispositivos tales como impresoras de alta velocidad, unidades de cinta magntica de respaldo y otras computadoras. Las ranuras de expansin y los puertos simplifican la adicin de dispositivos externos o perifricos.

6.3 PUERTO SERIAL Y SUS VARIANTES


Definicin:

Un puerto es el lugar donde el CPU se comunica con otros dispositivos, existen de varios tipos, hay puertos de entrada, de salida y ambos. Adems estos pueden ser seriales o paralelos.

Puertos de entrada:

Estos puertos recogen datos de algn dispositivo externo, externo se refiere a estar fuera del CPU, no del gabinete. Existen muchos dispositivos perifricos que se conectan a un puerto de entrada, por ejemplo tenemos al teclado y al mouse, tambin estn los lpices pticos, los lectores de cdigo se barras, etc.

6.3.1 USB
El Universal Serial Bus (USB) (bus universal en serie BUS) es un estndar industrial desarrollado en los aos 1990 que define los cables, conectores y protocolos usados en un bus para conectar, comunicar y proveer 2 de alimentacin elctrica entre ordenadores y perifricos y dispositivos electrnicos. La iniciativa del desarrollo parti de Intel que cre el USB Implementers Forum junto con IBM,Northern Telecom, Compaq, Microsoft, Digital Equipment Corporation y NEC. Actualmente agrupa a ms de 685 4 compaas. USB fue diseado para estandarizar la conexin de perifricos, como mouse, teclados, joysticks, escneres, cmaras digitales,telfonos mviles, reproductores multimedia, impresoras, dispositivos multifuncionales, sistemas de adquisicin de datos, mdems,tarjetas de red, tarjetas de sonido, tarjetas sintonizadoras de televisin y grabadora de DVD externa, discos duros externos y disquetera externas. Su xito ha sido total, habiendo desplazado a conectores como el puerto serie, puerto paralelo, puerto de juegos, Apple Desktop Bus o PS/2 a mercados-nicho o a la consideracin de dispositivos obsoletos a eliminar de los modernos ordenadores, pues muchos de ellos pueden sustituirse por dispositivos USB que implementen esos conectores. Su campo de aplicacin se extiende en la actualidad a cualquier dispositivo electrnico o con componentes, desde los automviles (las radios de automvil modernas van convirtindose en reproductores multimedia con conector USB o iPod) a los reproductores de Blu-ray Disc o los modernos juguetes como Pleo. Se han implementado variaciones para su uso industrial e incluso militar. Pero en donde ms se nota su influencia es en los telfonos inteligentes (Europa ha creado una norma por la que todos los mviles debern venir con un cargador microUSB), tabletas, PDAs y videoconsolas, donde ha reemplazado a conectores propietarios casi por completo. Desde 2004, aproximadamente 6 mil millones de dispositivos se encuentran actualmente en el mercado 5 global, y alrededor de 2 mil millones se venden cada ao. Algunos dispositivos requieren una potencia mnima, as que se pueden conectar varios sin necesitar fuentes de alimentacin extra. Para ello existen concentradores (llamados USB hubs) que incluyen fuentes de alimentacin para aportar energa a los dispositivos conectados a ellos, pero algunos dispositivos consumen tanta energa que necesitan su propia fuente de alimentacin. Los concentradores con fuente de alimentacin pueden proporcionarle corriente elctrica a otros dispositivos sin quitarle corriente al resto de la conexin (dentro de ciertos lmites). En el caso de los discos duros, slo una selecta minora implementa directamente la interfaz USB como conexin nativa, siendo los discos externos mayoritariamente IDE o Serial ATA con un adaptador en su interior. Incluso existen cajas externas y cunas que implementan conectores eSATA y USB, incluso USB 3.0. Estas y las mixtas USB/FireWire han expulsado del mercado de discos externos a SCSI y las conexiones por puerto paralelo.

6.3.2 INFRARROJO
El nombre de infrarrojo, que significa por debajo del rojo, proviene al ser observada por primera vez al dividir la luz solar en diferentes colores por medio de un prisma que separaba la luz en su espectro de manera que a ambos extremos aparecen visibles los componentes del rojo al violeta (en ambos extremos Las comunicaciones infrarrojas estn basadas en el principio de la luz infrarroja, que es una radiacin electromagntica cuya frecuencia la hace invisible al ojo humano, La luz visible viaja en haces de luz que van desde los 400 ngstroms, violeta oscuro, a 700 ngstroms, rojo oscuro. Las frecuencias del infrarrojo es de 700 a 1,000 ngstroms. Conforme a los estndares del IrDA (Infrared Data Association) la mayora de las computadoras personales y equipo de comunicaciones se mantienen entre los 850 y 900 ngstroms Aunque la comunicacin infrarroja est basada en luz, utiliza pulsos para transmitir datos. Estos pulsos varan con respecto a los digitales, mientras los anteriores son constantes durante un ciclo de reloj los pulsos IrDA duran slo una fraccin del ciclo bsico de reloj o celda estndar de bit. Estos pulsos son distribuidos ampliamente entre ellos, lo que los hace fciles de recibir y distinguir en el receptor IrDA.

6.3.3 Firewire
QUE ES UN PUERTO FIREWIRE. Firewire se denomina al tipo de puerto de comunicaciones de alta velocidad desarrollado por la compaaApple. La denominacin real de esta interfaz es la IEEE 1394. Se trata de una tecnologa para la entrada/salida de datos en serie a alta velocidad y la conexin de dispositivos digitales. Esta interfaz se caracteriza principalmente por: - Su gran rapidez, siendo ideal para su utilizacin en aplicaciones multimedia y almacenamiento, como videocmaras, discos duros, dispositivos pticos, etc... - Alcanzan una velocidad de 400 megabits por segundo, mantenindola de forma bastante estable. - flexibilidad de la conexin y la capacidad de conectar un mximo de 63 dispositivos. - Acepta longitudes de cable de hasta 425 cm. - Respuesta en el momento. FireWire puede garantizar una distribucin de los datos en perfecta sincrona. - Alimentacin por el bus. Mientras el USB 2.0 permite la alimentacin de dispositivos que consuman un mximo de 5v, , los dispositivos FireWire pueden proporcionar o consumir hasta 25v, suficiente para discos duros de alto rendimiento y bateras de carga rpida. En este punto hay que hacer resea de que existe un tipo de puerto Firewire que no suministra alimentacin, tan slo da servicio de comunicacin de datos. Estos puertos tienen slo 4 contactos, en lugar de los 6 que tiene un puerto Firewire alimentado. - Conexiones de enchufar y listo, conocidas como plug & play. No tenemos ms que enchufar un dispositivo para que funcione. - Conexin en caliente (permite conectar dispositivos con el PC encendido sin ningn riesgo de rotura).

6.4 PUERTO PARALELO Y SUS VARIANTES


Los puertos paralelos pueden ser usados para conectar una multitud de componentes perifricos: Impresoras Escner Quemadores de CD Discos duros externos Iomega Zip removible drives Adaptadores de Red Las impresoras recuerdan inmediatamente la imagen mental del puerto paralelo, ya que es sta la interfaz mayormente empleada para la conexin de dicho perifrico. Durante el diseo de los primeros PC, IBM introdujo dicho puerto, con el objetivo de conectar una impresora.

Adems de las impresoras, el puerto paralelo ha sido un medio eficaz para la conexin de muchos otros perifricos, como escneres, algunas grabadoras de CD, discos duros externos, discos ZIP, etc. El funcionamiento del puerto paralelo se basa en el envo de un byte completo en cada transferencia, siendo necesarios, por tanto, 8 cables dedicados al intercambio de informacin. El puerto serie necesita 8 operaciones de transferencia para enviar un byte, lo cual sugiere que el puerto paralelo puede trabajar a una velocidad notablemente superior. Como dato prctico, el puerto paralelo estndar alcanza velocidades entre 50 y 100 kB por segundo.

El conector vuelve a ser el DB-25. Las seales disponibles se muestran en la Figura 3. Otra variante muy conocida es el conector Centronics de 36 terminales que, a pesar de la diferencia en el nmero de terminales, presenta las mismas seales que el conector DB-25. El puerto paralelo original era unidireccional, y por tanto las seales viajaban desde el PC hacia la impresora, nunca en el sentido opuesto. Tras el lanzamiento del PS/2, IBM ofreci una nueva versin del puerto paralelo (denominado Standard Parallel Port o SPP). Este nuevo diseo era bidireccional, y consigui reemplazar al puerto paralelo original. En principio, los terminales 2-9 se usan para el envo de datos, lo que implica que en cada transferencia los datos viajan del PC al dispositivo externo o viceversa, pero no es posible la transferencia simultnea en ambos sentidos. En otras palabras, la comunicacin es half duplex. Por fortuna, los terminales 18 al 25, originalmente empleados como masas, pueden usarse tambin como terminales de datos, permitiendo la comunicacin bidireccional simultnea (full-duplex). Con el paso del tiempo, nuevas variantes del puerto paralelo han ido apareciendo, como el puerto EPP (Enhanced Parallel Port), que permite enviar entre 500 kb y 2 Mb de datos cada segundo. Seales empleadas por el puerto paralelo Al igual que las seales del puerto serie estn orientadas al uso de un mdem, las seales del puerto paralelo se encuentran particularmente en lnea con el control de una impresora. A continuacin se describe el propsito de las seales mostradas en el grfico.

10

Strobe Esta seal produce un cambio de tensin cada vez que el PC enva un byte de datos. De esta forma, la impresora detecta que ya se han establecido los estados lgicos deseados en las 8 lneas de datos, y por tanto se puede leer la informacin (un byte). Data0 - Data7. Contienen los datos enviados a la impresora (8 bits cada vez). Acknowledge. La impresora indica que ha recibido el byte enviado, y est lista para recibir un nuevo byte. Busy. Al igual que ocurra en el puerto serie (seales CTS y RTS), la impresora utiliza esta seal para indicar que an no est preparada para recibir ms datos.

Paper end. La impresora indica que se ha quedado sin papel. Select. La impresora indica que se encuentra en lnea.

Auto Feed. Cuando se recibe un retorno de carro, existen dos formas de interpretarlo. Algunas impresoras simplemente retornan al comienzo de la lnea. Sin embargo, otras aaden -adems- un avance de lnea. La seal auto feed permite conmutar entre dichos modos de funcionamiento.

Error. La impresora emplea esta seal para notificar cualquier tipo de error detectado.

Init. Ante un cambio de estado lgico en esta seal, la impresora se reinicializa.

Select In. Esta seal permite poner a la impresora fuera de servicio. GND. Terminales de masa (referencia de tensin para todas las dems seales).

11

6.5 INTERRUPCIONES QUE INTERVIENEN EN CADA PUERTO


Manejo de la interrupcin del puerto paralelo. El bit 4 del puerto de control se denomina IRQEN. Este bit habilita o permite que se produzca la interrupcin asociada a la entrada ACK#. Cuando este bit est a 1 y la seal ACK# pasa del nivel lgico 1 al nivel 0 se produce una peticin de interrupcin, que es la IRQ7. En el diseo original del PC, IBM reserv 8 interrupciones hardware, comenzando por la interrupcin 08h, para expansin de interrupciones, que son comnmente conocidas como IRQ0 a IRQ7. As la IRQ0 se corresponde con la interrupcin 08h, la IRQ1 con la 09h, etc. La IRQ7 se corresponde pues con la 0Fh, estando sus vectores a partir de la direccin 0000:003Ch. Para que una peticin de una IRQ llegue a la CPU, sta debe estar permitida, no enmascarada. El puerto 021h est asociado con la mscara de interrupciones de las IRQ. Para habilitar una determinada interrupcin se deber escribir un cero en la posicin correspondiente, sin modificar el resto. As, si lo que se quiere es permitir la IRQ7 habr que poner a cero el bit ms significativo del puerto 021h, como muestra el cdigo siguiente: in al,021h ; lee la mscara de las IRQ and al, 01111111b ; impone un 0 en el bit ms significativo, IRQ7. No modifica el resto out 021h, al ; escribe la mscara Con estas operaciones quedar habilitada la IRQ7. Una vez atendida de la forma que se haya previsto, el programa debe indicar a la CPU que la interrupcin ya ha sido procesada, para ello debe escribir un 1 en el bit 5 del puerto 020h, es decir:

mov al, 020h ; carga en al 0010 0000 b out 020h, al ; lo escribe en al puerto 020h

12

Finalmente, tan slo queda por activar el bit que permite que la seal ACK# genere una peticin de IRQ7. Para ello se deber poner a 1 el bit 4 del puerto de control , sin modificar el resto. Cuando no se quiera que se produzca una IRQ7, basta con poner a cero este bit. Al finalizar el programa, no slo se deben restablecer los vectores de interrupcin modificados, sino que tambin se debe inhibir la IRQ7, dejando la mscara del puerto 021h como estaba. Un programa que utilice la interrupcin del puerto paralelo puede tener esta estructura, en lo que se refiere al manejo de dicha interrupcin:

6.5.1 DIRECCIONES BASES Cada controlador de hardware del sistema que realiza operaciones de E/S (entrada/salida) tiene que tener una direccin base nica para que el sistema pueda localizarlo. Esta direccin de memoria es un nmero hexadecimal de tres o cuatro dgitos, que coincida con la configuracin del adaptador y que no cause ningn conflicto con ningn otro dispositivo de hardware del sistema. Las direcciones base vlidas aparecen al configurar el adaptador. La direccin base de E/S es la direccin inicial correspondiente a un rea nica de memoria asignada al control de la entrada/salida de datos de un adaptador de hardware especfico. Por ejemplo, 0x240 o 240 es la direccin base de E/S por defecto del adaptador de red SMC 8013EWC. La direccin base de E/S tiene que coincidir con la de configuracin del hardware del adaptador y ningn otro dispositivo puede usar dicha direccin base de E/S.

13

6.5.2 REGISTROS Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son direccionables por medio de un nombre. Registros de Propsito General [editar] Los registros de propsito general AX, BX, CX y DX son los caballos de batalla del sistema. Son nicos en el sentido de que se les puede direccionar como una palabra o como un byte. Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmtica. Registro BX: El registro BX es el registro base, y es el nico registro de propsito general que puede ser un ndice para direccionamiento indexado. Tambin es comn emplear el BX para clculos. Registro CX: El registro CX es conocido como el registro contador. Puede contener un valor para controlar el nmero de veces que un ciclo se repite o un valor para corrimiento de bits. Registro DX: El registro DX es el registro de datos. Algunas operaciones de entrada/salida requieren su uso, y las operaciones de multiplicacin y divisin con cifras grandes suponen al DX y AX trabajando juntos. Registro SI: El registro ndice fuente de 16 bits es requerido por algunas operaciones con cadenas de caracteres. El SI est asociado con el registro DS. Registro DI: El registro ndice destino tambin es requerido por algunas operaciones con cadenas de caracteres. El DI est asociado con el registro ES. Registros Apuntadores, Los registros SP (apuntador de pila) y BP (apuntador base) estn asociados con el registro SS y permiten al sistema accesar datos en el segmento de la pila. Registro SP: El apuntador de pila de 16 bits est asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que est siendo procesada en la pila. El sistema maneja de manera automtica este registro.

14

Registro BP: El apuntador base de 16 bits facilita la referencia de parmetros, los cuales son datos y direcciones transmitidos va la pila. Registro de Banderas [editar]Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la mquina y el resultado del procesamiento. Muchas instrucciones aritmticas y de comparacin cambian el estado de las banderas y apoyndose de ellas determinan la accin subsecuente. Los bits de las banderas son las siguientes: OF (overflow, desbordamiento): Indica desbordamiento del bit de mayor orden despus de una operacin aritmtica de nmeros signados (1=existe overflow; 0=no existe overflow). Para operaciones sin signo, no se toma en cuenta esta bandera. DF (direccin): Controla la seleccin de incremento o decremento de los registros SI o DI en las operaciones con cadenas de caracteres (1=decremento automtico; 0=incremento). La bandera DF se controla con las instrucciones STD y CLD. IF (interrupcin): Indica que una interrupcin externa sea procesada o ignorada (1=habilita la interrupcin; 0=deshabilita la interrupcin). El estado de la bandera IF se controla con las instrucciones STI y CLI. TF (trampa): Permite la operacin del procesador en modo de depuracin (paso a paso) SF (signo): Contiene el signo resultante de una operacin aritmtica (0=positivo; 1=negativo). ZF (cero): Indica el resultado de una operacin aritmtica o de comparacin (0=resultado diferente de cero; 1=resultado igual a cero). AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmtica especializada. Esta bandera se prueba con las instrucciones DAA y DAS para ajustar el valor de AL despus de una suma o resta BCD. PF (paridad): Indica paridad par o impar en una operacin de datos de ocho bits (0=paridad impar; 1=paridad par). CF (acarreo): Contiene el acarreo de los bits de mayor orden despus de una operacin aritmtica; tambin almacena el contenido del ltimo bit en una operacin de corrimiento o de rotacin.

15

Registro CS: El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro CS. Esta direccin de segmento, ms un valor de desplazamiento en el registro apuntador de instruccin (IP), indica la direccin de una instruccin que es buscada para su ejecucin. Para propsitos de programacin normal, no se necesita referenciar el registro CS. Registro DS: La direccin inicial de un segmento de datos de programa es almacenada en el registro DS. Esta direccin, ms un valor de desplazamiento en una instruccin, genera una referencia a la localidad de un byte especfico en el segmento de datos. Registro SS: El registro SS permite la colocacin en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la direccin de inicio del segmento de pila de un programa en el registro SS. Esta direccin de segmento, ms un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que est siendo direccionada. Para propsitos de programacin normal, no se necesita referenciar el registro SS. Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra de segmento para manejar el direccionamiento de memoria. El registro ES est asociado con el registro DI (ndice). Un programa que requiere el uso del registro ES puede inicializarlo con una direccin de segmento apropiada. Registro Apuntador de Instrucciones [editar]El registro IP de 16 bits contiene el desplazamiento de direccin de la siguiente instruccin que se ejecuta. El IP est asociado con el registro CS en el sentido de que el IP indica la instruccin actual dentro del segmento de cdigo que se est ejecutando actualmente.

16

6.6 ENVIO Y RECEPCION DE DATOS

El envi y recepcin de datos es solamente le programacin de cmo se va a transmitir la informacin y a travs de que puertos por ejemplo el USB.

Este puerto ha supuesto un importante avance cuando se trata de conectar varios dispositivos externos, ya que mejora el nmero de ellos que es posible conectar de manera simultnea, y con una importante velocidad de transferencia.

USB (Universal Serial Bus) permite conectar hasta 127 dispositivos y ya es un estndar en los ordenadores de ltima generacin, que incluyen al menos dos puertos USB 1.1, o puertos USB 2.0 en los ms modernos.

Pero qu otras ventajas ofrece este puerto? Es totalmente Plug & Play, es decir, con slo conectar el dispositivo y en caliente (con el ordenador encendido), el dispositivo es reconocido e instalado de manera inmediata. Slo es necesario que el Sistema Operativo lleve incluido el correspondiente controlador o driver, hecho ya posible para la mayora de ellos sobre todo si se dispone de un Sistema Operativo como por ejemplo Windows XP, de lo contrario el driver le ser solicitado al usuario.

Posee una alta velocidad en comparacin con otro tipo de puertos, USB 1.1 alcanza los 12 Mb/s y hasta los 480 Mb/s (60 MB/s) para USB 2.0, mientras un puerto serie o paralelo tiene una velocidad de transferencia inferior a 1 Mb/s. El puerto USB 2.0 es compatible con los dispositivos USB 1.1

El cable USB permite tambin alimentar dispositivos externos a travs de l, el consumo mximo de este controlador es de 5 voltios. Los dispositivos se pueden dividir en dispositivos de bajo consumo (hasta 100 mA) y dispositivos de alto consumo (hasta 500 mA) para dispositivos de mas de 500 mA ser necesario alimentacin externa. Debemos tener en cuenta tambin que si utilizamos un concentrador y ste est alimentado, no ser necesario realizar consumo del bus. Hay que tener en cuenta que la longitud del cable no debe superar los 5 mts. y que ste debe cumplir las especificaciones del Standard USB iguales para la 1.1 y la 2.0

Y cmo se conectan varios dispositivos?

17

Para conectar varios dispositivos USB es necesario un concentrador o HUB, de tal forma que ser el concentrador quin se conecte al puerto USB del PC y alrededor del Hub se conecten los dispositivos. Estos dispositivos a su vez pueden actuar como HUB para otros dispositivos.

Tambin es posible conectar al HUB otros HUB consiguiendo as una topologa de ESTRELLA de varios niveles o TIERED STAR, siendo el nmero total de HUB que es posible conectar de 5, que se corresponde con 7 niveles. Ni que decir tiene que los dispositivos USB 2.0 slo pueden ser conectados a puertos USB 2.0 aunque los dispositivos USB 1.1 s pueden ser conectados a puertos USB 2.0 adems del propio USB 1.1

Debemos tener claro el siguiente concepto, el puerto USB del que partimos, pertenece a un controlador fsico que puede estar en la propia placa base o en una tarjeta de expansin, a este conector se le denomina concentrador raz. Este controlador suele disponer de dos conectores. Esto es importante, ya que no es lo mismo conectar dos dispositivos al mismo controlador que cada uno de ellos a un controlador distinto: en el primer caso deben compartir el ancho de banda y en el segundo caso no, es decir, tanto el ancho de banda como la alimentacin deben ser repartidas entre todos los dispositivos conectados a un mismo bus.

6.7 EJEMPLOS DE PROGRAMACION ENTRE PUERTOS Y DISPOSITIVOS El objetivo bsico de una interrupcin es ejecutar una funcin que responda a la peticin de un dispositivo de hardware. Un vector interrupcin contiene la direccin de esta funcin. En un sistema basado en el 8086 el primer Kbyte de memoria (desde 00000H a 003FFH) es utilizado como una tabla de vectores de interrupcin. Para apuntar a qualquier direccion del mapa de memoria son necesarios cuatro bytes. 16 bits para el desplazamiento y 16 bits para el el segmento. Luego, un Kbyte de memoria permite almacenar 256 vectores de interrupcin. Algunos de los 256 vectores de interrupcin son utilizados por el sistema, otros estan libres para ser usados por los programas de usuario. Para instalar una rutina de interrupcin de usuario es posible utilizar un programa como el del ejemplo. El programa instala una rutina de interrupcin en el canal de interrupcin IRQ1, que es el reloj de sistema. Este timer genera una interrupcion 18.2 veces por segundo. En la rutina de servicio de la interrupcin, se incrementa una variable global. Cuando esta variable es igual a 18 se presenta en la pantalla. Luego obtendremos un contador de segundos (aprox.).

18

Vous aimerez peut-être aussi