uso de puertos para control externo

75
Ingeniería Electrónica UNSA ________________________________________________________________ _____________ USO DE PUERTOS PARA CONTROL EXTERNO INDICE 1. Describir los pines del puerto paralelo LPT1, identificar los tipos de puertos y sus direcciones con las que podemos usarlas. 2. Como configuramos el puerto paralelo para transmitir datos en forma bidireccional. 3. Describir los parámetros con los cuales usamos las instrucciones de entrada y salida de datos por los puertos de E/S de la PC. 4. Describa los pines del puerto serial COM, identificar los pines en el puerto y usar comandos DOS para poder configurar y transferir información. 5. Como configuramos el integrado de comunicaciones para transmitir datos a través del puerto serial. 6. Determinar el uso del puerto USB del Sistema, características 7. Determinar el uso de los slots de Expansion ISA y PCI 8. Lenguajes de Programación con las instrucciones de lectura y escritura de puertos.(falta no la tengo ) 9. Programas Aplicativos para uso de puertos 1

Upload: marcelo-vilca

Post on 25-Sep-2015

17 views

Category:

Documents


1 download

DESCRIPTION

USO DE PUERTOS PARA CONTROL EXTERNO

TRANSCRIPT

Ingeniera Electrnica UNSA

_____________________________________________________________________________

USO DE PUERTOS PARA CONTROL EXTERNOINDICE

1. Describir los pines del puerto paralelo LPT1, identificar los tipos de puertos y sus direcciones con las que podemos usarlas.

2. Como configuramos el puerto paralelo para transmitir datos en forma bidireccional.

3. Describir los parmetros con los cuales usamos las instrucciones de entrada y salida de datos por los puertos de E/S de la PC.

4. Describa los pines del puerto serial COM, identificar los pines en el puerto y usar comandos DOS para poder configurar y transferir informacin.

5. Como configuramos el integrado de comunicaciones para transmitir datos a travs del puerto serial.

6. Determinar el uso del puerto USB del Sistema, caractersticas

7. Determinar el uso de los slots de Expansion ISA y PCI

8. Lenguajes de Programacin con las instrucciones de lectura y escritura de puertos.(falta no la tengo )

9. Programas Aplicativos para uso de puertos

USO DE PUERTOS PARA CONTROL EXTERNO

1. Describir los pines del puerto paralelo LPT1, identificar los tipos de puertos y sus direcciones con las que podemos usarlas.

El puerto paralelo de una PC es ideal para ser usado como herramienta de control de motores, rels, LED's, etc. El mismo posee un bus de datos de 8 bits (Pin 2 a 9) y muchas seales de control, algunas de salida y otras de entrada que tambin pueden ser usadas fcilmente.

Las PC's generalmente poseen solo uno de estos puertos (LPT1) pero con muy poco dinero se le puede adicionar una tarjeta con un segundo puerto paralelo (LPT2).

En reglas generales la direccin hexadecimal del puerto LPT1 es igual a 0x378 (888 en decimal) y 0x278 (632 en decimal) para el LPT2. Esto se puede verificar fcilmente en el setup de la PC o bien en el cartel que generalmente la PC muestra en el momento del booteo. Puede darse el caso que el LPT1 asuma la direccin 0x3BC (956 en decimal) y el LPT2 0x378, en ese caso habr que tratar de corregir el setup y/o los jumper de las tarjetas en caso que sea posible. De lo contrario se puede modificar el software que veremos mas adelante para aceptar esas direcciones.

Pin

Nombre

Dir

Descripcin

1

/STROBE

Strobe

2

D0

Data Bit 0

3

D1

Data Bit 1

4

D2

Data Bit 2

5

D3

Data Bit 3

6

D4

Data Bit 4

7

D5

Data Bit 5

8

D6

Data Bit 6

9

D7

Data Bit 7

10

/ACK

Acknowledge

11

BUSY

Busy

12

PE

Paper End

13

SELIN

Select In

14

/AUTOFD

Autofeed

15

/ERROR

Error

16

/INIT

Initialize

17

/SEL

Select

18

GND

--

Signal Ground

19

GND

--

Signal Ground

20

GND

--

Signal Ground

21

GND

--

Signal Ground

22

GND

--

Signal Ground

23

GND

--

Signal Ground

24

GND

--

Signal Ground

25

GND

--

Signal Ground

Breve descripcin del puerto paralelo:

El puerto paralelo de un PC posee un conector de salida del tipo DB25 hembra cuyo diagrama y seales utilizadas podemos ver en la siguiente figura:

Si deseamos escribir un dato en el bus de salida de datos (pin 2 a 9) solo debemos escribir el byte correspondiente en la direccin hexadecimal 0X378 (888 en decimal) cuando trabajamos con el LPT1 y 0x278 (632 en decimal) cuando trabajamos con el LPT2. Los distintos pins (bits) de salida correspondientes al bus de datos no pueden ser escritos en forma independiente, por lo que siempre que se desee modificar uno se debern escribir los ocho bits nuevamente.

Para leer el estado de los pins de entrada (10, 12, 13 y 15) se debe realizar una lectura a la direccin hexadecimal 0x379 (889 en decimal) si trabajamos con el LPT1 o bien leer la direccin 0x279 (633 en decimal) si trabajamos con el LPT2. La lectura ser devuelta en un byte en donde el bit 6 corresponde al pin 10, el bit 5 corresponde al pin 12, el bit 4 corresponde al pin 13 y el bit 3 corresponde al pin 15.

En la siguiente tabla se puede ver lo antedicho en una forma ms grfica:

Escritura: Salida de Datos

Escritura en direccin 0x378 (LPT1) o 0x278 (LPT2)

DATO

BIT 7

BIT 6

BIT 5

BIT 4

BIT 3

BIT 2

BIT 1

BIT 0

DB25

Pin 9

Pin 8

Pin 7

Pin 6

Pin 5

Pin 4

Pin 3

Pin2

CN5

TTL 7

TTL 6

TTL 5

TTL 4

TTL 3

TTL 2

TTL 1

TTL 0

CN4

No usar

HP 6

HP 5

HP 4

HP 3

HP 2

HP 1

HP 0

Lectura: Entrada de Datos

Lectura en direccin 0x379 (LPT1) o 0x279 (LPT2)

DATO

BIT 7

BIT 6

BIT 5

BIT 4

BIT 3

BIT 2

BIT 1

BIT 0

DB 25

No usar

Pin 10

Pin 12

Pin 13

Pin 15

No usar

No usar

No usar

CN6

No usar

Input 3

Input 2

Input 1

Input 0

No usar

No usar

No usar

La interfaz nos provee 8 salidas TTL, 7 salidas de potencia (500ma) y cuatro entradas TTL. Es importante tener en cuenta que las salidas TTL entregan una tensin de 5v y solo se les puede exigir un mnimo de corriente, apenas suficiente para activar un transistor o bien un par de compuertas TTL.

As mismo las entradas TTL deben ser alimentadas con una tensin mxima de 5v o de lo contrario el chip resultar daado. Esta tensin se obtiene desde VDD a travs del regulador U1 (7805).

Las 7 salidas de potencia no son mas que la amplificacin mediante un array de transistores Darlington (ULN2003) de las salidas TTL 0 a 6 (la salida 7 no es usada). Este chip puede drenar una corriente mxima de 500ma, lo que es suficiente para activar un LED, un rel y hasta un motor DC de bajo consumo (tipo motor de grabador).

La teora de funcionamiento es muy simple, solo se usan unas compuertas del tipo Buffer (74HC245) para poder conectarnos con seguridad al puerto paralelo, y un array de transistores Darlington (ULN2003) para brindar una salida de mayor potencia.

Cabe aclarar que los dos integrados 74HC245 se alimentan del regulador de voltaje 7805, el cual se encarga de reducir la tensin de entrada (VDD) a 5v (Vcc). La tensin VDD debe estar comprendida entre 9 y 12v.La tensin de entrada VHH alimenta directamente al ULN2003 para obtener mayor voltaje en caso de querer manejar un rel o bien un pequeo motor. La tensin VHH debe estar comprendida entre 3 y 15v. VHH podr conectarse directamente a VDD (y de esa forma usar solo un fuente de alimentacin) siempre que esto no provoque problemas de ruido.

En los siguientes diagramas se pueden apreciar un ejemplo de conexionado de un LED y un Rel a las salidas de potencia. En forma anloga podramos conectar tambin un pequeo motor DC.

2. Como configuramos el puerto paralelo para transmitir datos en forma bidireccional.

A pesar del avanza de nuevos puertos como el USB es aun normal incluir un puerto paralelo en los ordenadores personales. Este puerto incluye 8 lineas de datos paralelas, lo cual nos permite transmitir de byte en byte. El puerto paralelo que se usa actualmente se basa en el estndar IEEE-1284. Esta norma define distintos modos de funcionar del puerto paralelo. En ella quedaban ciertos aspectos sin definir, como los conectores. En este aspecto se impusieron sobre todo 2 tipos de conectores los db25 y los Centronics. En nuestro caso usaremos el db25. El puerto paralelo usa niveles TTL, es por ello que la comunicacin con un microcontrolador es muy sencilla.

El puerto paralelo ha ido soportando distintos tipos de transmisin a medida que los perifricos que se conectaban a el evolucionaban.

Modos de funcionamiento del puerto paralelo.

Modo estndar o compatible(SPP)

El modo original. Este modo fue el primero que se cre. El puerto paralelo se usaba en una direccin, mandado datos desde el PC hacia el perifrico por 8 lineas paralelas. El perifrico poda devolver su estado por algunas lineas de estado (BUSY, PAPER..,...). Tambin se definan ciertas lineas de control desde el PC hacia el perifrico.

Modo Nibble

Configuracin especial del modo compatible para lograr un transmitir un nibble de forma bidireccional. esto se logra conexionando 4 lineas de control a 4 lineas de datos.

Modo Bidireccional (Byte Mode)

Una implicacin del modo estndar. En este modo es posible utilizar las 8 lineas de datos en modo bidireccional. Es el modo que usaremos.

Puerto paralelo extendido (EPP)

Utilizado para perifricos CDROM, cintas, discos duros. Inclua varios estados: ciclo lectura de datos, de escritura de datos y lectura y escritura de direcciones .

Puerto paralelo mejorado (ECP)

El mas avanzado. Este modo es el que mayor velocidad ofrece. Es bidireccional y el handsake (secuencia de inicializacin de la comunicacin con el perifrico) es generado por hardware (ahorro de CPU).

Usando el modo Byte.

De entre los distintos modos de funcionamiento tenamos que elegir uno. El elegido fue el "modo byte" .

Porque?

Cual es el motivo de usar el modo byte cuando el modo ECP parece mas avanzado? La razn estriba en que el modo ECP genera por hardware toda la secuencia de "handsake". Esto, que a la hora de comunicarnos con perifricos que soporten dicho modo es una gran ventaja (es ms rpido que la generacin de handsake por software), se convierte en un problema cuando queremos aprovechar algunas de la lineas de control del puerto para comunicacin.

Necesitamos mandar datos con cierta velocidad desde el uC al PC (usar todo un byte), vemos que el modo SPP y el modo nibble. quedan descartados tambin.

Ya solo nos queda el modo byte, ya que es el nico que nos permite un control de todas las lineas (tanto de datos como de control) y el uso bidireccional de las lineas de datos (para poder recibir por ellas en vez de enviar).

Lineas de transmisin

En nuestro caso, aparte de las 8 lineas de datos que usaremos para mandar un byte desde el microcontrolador hacia el PC, necesitaremos tambin 4 lineas de datos desde el PC hacia el uC, as como una linea de ACK desde el uC hacia el PC.

Las lineas que usaremos sern las siguientes:

8 lineas de datos. Desde el pin 2 del conector db25 hasta el pin 9

4 lineas de comando, pines 1,14,16 y 17

Una linea de ACK desde el uC hacia el PC. Pin 12.

Para la conexin con en uC solamente usaremos unas resistencias que limiten la corriente en las lineas de datos (entre 1k y 4k7 por ejemplo) conectando directamente el resto de lineas.

Pasando de modo ECP a modo byte

Para asegurarnos de que estamos trabajando en el modo Byte lo primero sera pasar del modo ECP (si es que el PC en concreto lo soporta) a modo byte.

En el modo ECP se utiliza un registro de configuracin en la direccin de memoria (direccin base del puerto paralelo) + 0x402. Si usamos el primer puerto paralelo la direccin base sera 0x378 a la que le sumarermos 0x402 . A este registro de control se le llama "Extended Control Register" (ECR). En este registro de configuracin hay un terceto de bits con el cual elegiremos el modo de funcionamiento del puerto.

El esquema del registros es el que sigue:

Direccin del registro | Funcin -----------------------|---------------------------------------------- Base + 0 | Puerto de Datos (Aqui recibiremos los datos) Base + 1 | Puerto de Estado (Aqui tendremos el ACK) Base + 2 | Puerto de Control (Aqui mandaremos los comandos) Base + 402h | Puerto de Control Extendido (ECR) (Used by all modes)

Las funciones de los bits del resgistro de control extendido son:

Bit| Funcin ---|----------------------------------- 7:5| Elegir el mode de funcionamiento | 000 Standard Mode | 001 Byte Mode (el que vamos a usar) | 010 Parallel Port FIFO Mode | 011 ECP FIFO Mode | 100 EPP Mode | 101 Reserved | 110 FIFO Test Mode | 111 Configuration Mode ---|----------------------------------- 4 | ECP Interrupt Bit 3 | DMA Enable Bit 2 | ECP Service Bit 1 | FIFO Full 0 | FIFO Empty

Por lo tanto deberemos escribir un 001 en los bits numero 5,6 y 7 de este registro. El resto no tendremos que modificarlos.

El registro de control (base + 2) tiene los siguientes bits:

Bit| Funcin ---|----------------------------------- 7 | Unused 6 | Unused 5 | Enable Bi-Directional Port (Activamos el modo bidireccional) 4 | Enable IRQ Via Ack Line 3 | Select Printer (linea de control PC->uC) 2 | Initialize Printer (Reset) (linea de control PC->uC) 1 | Auto Linefeed (linea de control PC->uC) 0 | Strobe (linea de control PC->uC)

Por ultimo el mapa de bits del registro de estado (base + 1) es el siguiente:

Bit| Funcin ---|----------------------------------- 7 | Busy 6 | Ack 5 | Paper Out (Aqui pondremos la seal ACK) 4 | Select In 3 | Error 2 | IRQ (Not) 1 | Reserved 0 | Reserved

Para completar un listado de los pines del puerto en un conector db25 y las seales que le corresponden:

out pin pin Signal Bit Function Notes ------ ---- ---- -------- --- ----------------------------- => 1 1 -Strobe C0- Set Low pulse >0.5 us to send => 2 2 Data 0 D0 Set to least significant data => 3 3 Data 1 D1 ... => 4 4 Data 2 D2 ... => 5 5 Data 3 D3 ... => 6 6 Data 4 D4 ... => 7 7 Data 5 D5 ... => 8 8 Data 6 D6 ... => 9 9 Data 7 D7 Set to most significant data MODE COM2:1200,E,7,2 (puerto COM2 que trabaje a una velocidad de 1.200 buadio, con 7 bits de datos, paridad par 2 bits de parada) Un truco para comprobar la existencia de un puerto serie es intentando hacer una copia de una archivo desde MS-DOS. Supongamos que tenemos un archivo llamado INDEX.TXT. Para copiarlo teclearamos: C:\COPY INDEX.TXT COM1

Si se crea un archivo llamado COM1 es que no est instalado este puerto. Por el contrario, si nos da un error al ejecutar el comando anterior es que est presente.

RELACIONES ENTRE DISPOSITIVOS

A la hora de conectar dos dispositivos usando la norma RS-232-C se establece una relacin entre los circuitos determinada y que vamos a mostrar en los siguientes esquemas:

6. Determinar el uso del puerto USB del Sistema, caractersticas

Las siglas USB corresponden a Universal Serial Bus, Bus Serie Universal, por lo que como su nombre indica, se trata de un sistema de comunicacin entre dispositivos electrnicos-informticos que slo transmite una unidad de informacin a la vez. El bus USB puede trabajar en dos modos, a baja velocidad (1,5 Mbps, para dispositivos como teclados, ratones, que no barajan grandes cantidades de informacin) y a alta velocidad (12 Mbps, para dispositivos como unidades de CDROM, altavoces, mdems RTC e ISDN, etctera). En cuanto a la comodidad, el bus USB se compacta en un cable de cuatro hilos, dos para datos, dos para alimentacin. Esto supone un gran ahorro, tanto de espacio como de material. Deacuerdo a estos parmetros, una de las principales ventajas que se obtiene de USB es precisamente su diseo.

El USB organiza el bus en una estructura de rbol descendente, con mltiples dispositivos conectados a un mismo bus, en la que unos elementos especiales, llamados hubs(perifrico que ser descrito especficamente mas adelante), enrutan las seales en su camino desde un dispositivo al host o viceversa. Primero est el controlador del bus, Este es el interfaz entre el bus USB y el bus del ordenador. De l cuelgan los dispositivos USB. Los hubs, como son un dispositivo USB ms, tambin cuentan. A un hub se puede conectar uno o ms dispositivos, que a su vez pueden ser otros hubs, asi tenemos varios dispositivos conectados a un slo controlador; como mximo alrededor de 126.

Ahora, es conveniente resaltar que todos los dispositivos deben seguir reglas de comportamiento bsicas, estandarizadas. Por tanto, todos los dispositivos se configuran de la misma forma, y es mucho ms fcil gestionar los recursos que proveen; sin embargo, esto no significa que todos los dispositivos son iguales, sino, que todos tienen un sistema de configuracin idntico. Para proteger sus identidades, existe una clasificacin estandarizada,(gestionada por el controlador) y en funcin de esa clasificacin, los dispositivos se manejan de una forma u otra, siempre cumpliendo los estndares, permitindo entre otras cosas, una simplificacin en la gestin de los dispositivos, ya que un mismo driver sirve para varios dispositivos de diferentes tipos, aparte de poder tener un nmero casi ilimitado de dispositivos idnticos en un mismo sistema (siempre se pueden aadir nuevos controladores). Adems, el hecho de que no tengamos que tocar (inicialmente) nada en el hardware del dispositivo en s y que todo sea configurable por software nos lleva a la llamada tecnologa Plug'n'Play (conectar y listo).

Objetivos del bus serie universal

Los objetivos de sta no muy nueva tecnologa, apuntan claramente hacia la vista del usuario, USB es una especificacin que posibilita conectar dispositivos a una computadora de forma encadenada, sin tener que abrir en absoluto la caja de la computadora o tener que insertar tarjetas. Todo dispositivo USB tiene la capacidad de ser conectado al computador en pleno funcionamiento, sin tener que reiniciarlo, adems la configuracin del dispositivo nuevo es inmediata y completamente transparente al usuario, tras lo cual el dispositivo est listo para ser empleado sin tocar un tornillo, menos jumpers, canales, IRQs, etc. El proceso de conexin USB es tan sencillo como se muestra en la siguiente Figura.

Adems, y quizs uno de los objetivos fundamentales de la USB, es que ha sido diseada para que la PC y las comunicaciones remotas especialmente con MODEM, sean una sola unidad. Y es que las tendencias de computacin actuales, apuntan a un mundo totalmente intercomunicado electrnicamente empleando uno de los dispositivos mas conocidos como es el computador personal y el medio de comunicacin mas diseminado del mundo: el telfono.

Beneficios del bus serie universal

El trabajo involucrado dentro de la especificacin USB es realmente completo, es un estudio realmente minucioso, que comprende aspecto tales como:

Arquitectura del Bus

Definiciones de protocolos

Tipos de transacciones

Administracin del bus

Seales elctricas

Especificaciones electrnicas

Conectores

Formas de transmisin

Pero todo esto se puede traducir en beneficios tangibles para el usuario, como los siguientes:

Fcil expansin de perifricos en la PC, no debe hacer falta, mas que conectar el perifrico y emplearlo (sin abrir la computadora).

Bajo costo para aplicaciones que demandan velocidades por los 12 Mbps, particularmente aplicaciones multimediales: micrfonos, parlantes, telfonos, etc.

Soporte completo para transmisin en tiempo real de voz, audio, y video.

Flexibilidad de protocolos para transmisiones mixtas isocronicas y asincrnicas (las cuales sern analizadas mas adelante, ya que es el eje de transmisin de USB).

Cmoda integracin de dispositivos de tecnologa y fabricantes diferentes.

Soporte para plataformas diversas de la lnea de las PCs compatibles (como ya se vio, algunos problemas para MACINTOSH)

Posibilitar la produccin de nuevos dispositivos capaces de aprovechar sus ventajas.

Las funciones del USB y el host USB

Dentro de la terminologa USB, el computador o la PC que soporta este tipo de bus, se denomina Host USB; mientras que por su parte y dentro de la misma terminologa, todo perifrico y/o dispositivo, se denomina Funcin USB, adems de esta significacin, no existe ningn otro termino oculto dentro de estas dos denominaciones.

Hodt USB:

A diferencia de los dispositivos y los hubs, existe tan solo un host dentro del sistema USB, que como ya dijimos es el computador mismo, particularmente una porcin del mismo denominado Controlador USB del Host. Este tiene la misin de hacer de interfaz entre el computador mismo y los diferentes dispositivos. Existen algunas particularidades respecto a este controlador. Su implementacin es una combinacin de hardware y software todo en uno, es decir Firmware. Puede proveer de uno o dos puntos de conexin iniciales, denominados Hub raz, a partir de los cuales y de forma ramificada iran conectndose los perifricos.

FUNCIONES USB:

Dentro de la terminologa USB, todos los dispositivos que pueden ser conectados a este bus, a excepcin de los Hubs, se denominan Funciones. Son funciones tpicas: el ratn, el monitor, altoparlantes, MODEM, etc.

Las funciones o dispositivos perifricos, son capaces de recibir y transmitir informacin, ya sea del usuario o de control. El comn denominador de todas las funciones USB es su cable y el conector del mismo, diseado y fabricado de acuerdo a las especificaciones del bus, por lo que no cabe preocuparse por la compatibilidad entre equipos de diferentes fabricantes; solamente hay que recordar la empresas que respaldan esta tecnologa.

Un aspecto interesante de las funciones, es que pueden ser a la vez nuevos hubs. La siguiente figura muestra un esquema en el que la PC tiene tres puertos, la siguiente funcin que puede ser un monitor 4, el siguiente 3 y adicionalmente un Hub, provee 4 puertos mas, es un esquema tan sencillo, donde existen 14 puertos disponibles para todo tipo de perifrico, entre los que podemos citar: ratn, tablilla digitalizadora, lpiz ptico, teclado impresora, un telfono ISDN, etc.

Host USB - Hardware y software:

El computador o Host USB trabaja con los diferentes dispositivos valindose del controlador de host compuesto por una parte de hardware y otra de software, de esta forma conjunta, el host es responsable al nivel de hardware, de los siguientes aspectos dentro del sistema USB:

detectar tanto la conexin de nuevos dispositivos USB al sistema como la remocin de aquellos ya conectados, y por supuesto, configurarlos y ponerlos a disposicin del usuario, tarea que involucra acciones por software.

Administrar y controlar el flujo de datos entre el host y los dispositivos USB, es decir el movimiento de informacin generada por el mismo usuario.

Administrar y regular los flujos de control entre el host y los dispositivos USB, es decir la informacin que se mueve con el objeto de mantener el orden dentro de los elementos del sistema.

Recolectar y resumir estadsticas de actividad y estado de los elementos del sistema.

Proveer de una cantidad limitada de energa elctrica para aquellos dispositivos que pueden abastecerse con tan solo la energa proveniente del computador (teclado, ratn son dos ejemplos claros).

Por otra parte, a nivel de software las funciones del controlador de Host se incrementan y complican:

Enumeracin y configuracin de los dispositivos conectados al sistema

Administracin y control de transferencias isocrnicas de informacin

Administracin y control de transferencias asincrnicas

Administracin avanzada de suministro elctrico a los diferentes dispositivos

Administracin de la informacin del bus y los dispositivos USB

Caractersticas y arquitectura general del USB

En los anteriores prrafos, se haba hablado de algunos beneficios que esta tecnologa entregaba tanto al usuario como a las empresas fabricantes, pero las caractersticas de USB son muchas mas, aunque algunas revisten ciertos trminos tcnicos, vale la pena enumerar todas las caractersticas de este Bus:

Todos los dispositivos USB deben tener el mismo tipo de cable y el mismo tipo de conector, ms all de la funcin que cumplan

Los detalles de consumo y administracin elctrica del dispositivo deben ser completamente transparentes para el usuario

El computador debe identificar automticamente un dispositivo agregado mientras opera, y por supuesto configurarlo

Los dispositivos pueden ser desconectados mientras el computador est en uso

Deben poder compartir un mismo bus tanto dispositivos que requieren de unos pocos Kbps como los que requieren varios Mbps

Ms de 127 dispositivos diferentes pueden estar conectados simultneamente y operando con una misma computadora sobre el Bus Serial Universal

El bus debe permitir perifricos multifuncin, es decir aquellos que pueden realizar varias tareas a la vez, como lo son algunas impresoras que adicionalmente son fotocopiadoras y mquinas de fax

Capacidad para manejo y recuperacin de errores producidos por un dispositivo cualquiera

Soporte para la arquitectura Conectar y Operar (Plug&Play)

Bajo costo

No se necesita un cable extra de alimentacin - la mayora de los perifricos USB obtienen la alimentacin del bus USB, con lo cual no requieren un cable de alimentacin adicional

Ms rpido - USB transfiere los datos 10 veces ms rpido que los puertos serie tradicionales

Vale la pena mencionar que todos los puntos citados anteriormente son caractersticas disponible del Bus Serial Universal, es decir que los usuarios pueden beneficiarse de absolutamente todas estas capacidades. Es importante destacar que esta especificacin y como lo veremos en el siguiente punto, no es un trabajo superfluo, ya que ha sido estudiado hasta el detalle mximo.(basta nuevamente recordar el gran soporte de esta tecnologa).

Caractersticas principales:

Plug and Play

El puerto USB, y por tanto todos los dispositivos con conexin USB, son verdaderamente Plug.n play, es decir, el dispositivo es detectado automticamente al conectarlo al equipo y el sistema operativo instala el driver adecuado o nos pide el disco de instalacin. An ms, no es necesario apagar, ni siquiera re iniciar, el equipo para conectar o desconectar los dispositivos, cargndose y descargndose automticamente de memoria el driver correspondiente.

Hot plugginn (conectar en caliente)

No es necesario apagar, ni siquiera reinicial, el equipo para instalar o desinstalar un dispositivo USB. Algo especialmente interesante si olvidamos conectar un dispositivo al encender el equipo o si simplemente no tenemos suficientes conectores para todos los dispositivos USB. Adems, esto permite conservar recursos de memoria, pues cada dispositivo conectado requiere un driver residente, que de este modo slo se carga cuando se necesita y se descarga al dejar de necesitarlo.

Recursos del dispositivo

Quiz una de las mayores ventajas para los equipos actuales es el hecho de que el puerto USB solamente necesita una IRQ y una direccin de memoria y todos los dispositivos conectados a l, solamente necesitan una ID para su identificacin (como en el bus SCSI) dentro de la cadena de 127 dispositivos, sin necesitar ms recursos. Si tenemos en cuenta que los puertos estndar (dos serie, un paralelo, un PS/2 para ratn, uno para teclado, un puerto para joystick) consumen 5 IRQs, algunas DMA y mltiples direcciones de memoria, al utilizar dispositivos USB nos estamos ahorrando valiosos recursos del sistema.

Simplicidad

El manejo de los dispositivos USB se hace por software, concretamente por el propio sistema operativo, por lo que los dispositivos USB son ms fciles de fabricar y por tanto ms baratos. Adems, USB es una tecnologa abierta por la que no hay que pagar derechos, lo que siempre abarata los costos de fabricacin.

Dispositivos

Se puede conectar hasta un total de 127 dispositivos en cadena o utilizando HUBs USB (concentradores de puertos USB), y cada dispositivo puede tener un cable de hasta 5 metros de longitud, frente a 1 metro para el puerto serie y 4 metros para el puerto paralelo. Adems, conectndolos en cadena, el ltimo dispositivo puede estar a 635 metros del ordenador.

Actualmente se encuentran en el mercado monitores, teclados, ratones, cmaras, joysticks, mdem, escneres, impresoras e incluso altavoces (sin necesidad de tarjeta de sonido) con conexin USBN, dispositivos de almacenamiento unidad ZIP, unidad LS-120, CD-ROMs, discos duros externos, etc.

Lo que se debe olvidar a la hora de comprar un dispositivo USB es que cada dispositivo puede funcionar como HUB, es decir, incluir uno o ms conectores USB, de modo que podamos conectar un dispositivo a otro en cadena, y as, por ejemplo un teclado, puede incluir dos conectores USB, uno para el ratn y otro para el joystick, de igual modo el monitor puede servir de HUB y permitir conectar a l por ejemplo los altavoces, o el teclado, al cual a su vez se conectan el ratn y el joystick, etc. Hay que tener en cuenta que muchos dispositivos USB actuales no son ms que conversiones de dispositivos existentes por lo que mucho an no implementan su uso como HUBs, por lo que quizs valga la pena esperar un poco a que haya ms dispositivos disponibles.

Velocidad

El puerto serie es capaz de transmitir hasta 112,5 KB/s y el puerto paralelo entre 600KB/s y 15MB/s, pero el puerto USB es capaz de llegar a alcanzar entre 1,5MB/s y 12MB/s, por lo que es la conexin ideal para mdem de 56K, escneres (como alternativa de similar costo a los de puerto paralelo), CD-ROMs externos, dispositivos de copia de seguridad externos, etc. Sin embargo, para dispositivos de almacenamiento (especialmente discos duros externos), conexiones de red, cmaras, etc. quizs sea interesante tambin mostrar, la nueva versin del estndar de conexin, FIREWIRE (IEEE 1394), que maneja transferencias entre 100MB/s y 400MB/s, que permite conectar hasta 63 dispositivos y un cable de 4.5 metros por dispositivo, permitiendo al igual que el USB la conexin en caliente. El puerto USB no esta destinado a desaparecer (de hecho no hay en el mercado placas con este conector pues los chipsets actuales no lo soportan), sin que se destinar a cierto tipo de dispositivos que requieren una transferencia de datos baja o media (teclados, ratones, joysticks, etc.) mientras que el bus FIREWIRE se destinar a dispositivos que requieren una alta transferencia (escneres, impresoras, disco duro, DVD, etc.). Sin embargo, no hay que olvidar, que USB esta modificando sus caractersticas, para poder absorber velocidades hasta los 480 Mbps, lo cual dar una dura pelea al estndar IEEE 1394 (del cual se hablar mas adelante)

Plataforma

Para poder utilizar dispositivos USB, hay recordar que el sistema operativo instalado en nuestro equipo debe soportar este nuevo bus. Windows 95 en sus versiones OSR2.1 y OSR2.5 detecta el puerto USB y soporta dispositivos USB (la versin OSR2.0 tambin aadiendo el SUPLEMENTO USB), pero es realmente con el sistema operativo Windows 98 que los ya abundantes dispositivos USB no han dado problemas de instalacin y funcionamiento, no dejando de lado las ultimas versiones de Windows NT.

Si queremos que los dispositivos USB funcionen, adems en la BIOS de nuestra tarjeta madre debemos habilitar la opcin ASSIGN USB IRQ - ENABLED. Si queremos utilizar un teclado USB con nuestro equipo, debemos habilitar USB KEYBOARD SUPPORT VIA BIOS en vez de VIA OS si queremos utilizar el teclado cuando "Reiniciamos equipo en modo MS-DOS" para ejecutar programas de diagnstico. Si no lo hacemos as, por ejemplo, no accederemos a la BIOS del sistema al pulsar SUPR/DEL, ni anularemos el test de memoria al pulsar ESC, ni accederemos al "Men de inicio" al pulsar F8, aunque el teclado funcionar correctamente en Windows 9X.

Uno de los problemas del puerto USB es que suministra solamente 500 miliamperios de electricidad para los dispositivos conectados, que aunque es suficiente potencia para la mayora de los dispositivos que se conectan a este puerto, resulta escaso cuando conectamos varios dispositivos sin fuente de alimentacin propia. Lo que s podemos hacer es comprar un HUB USB con toma de alimentacin elctrica, para proporcionar la potencia necesaria a aquellos dispositivos que lo requieran (especialmente escneres e impresoras).

Conectores USB de Seria "A" y serie "B"

Existen dos tipos de conectores dentro del Bus Serial Universal. El conector Serie A est pensado para todos los dispositivos USB que trabajen sobre plataformas de PCs. Sern bastante comunes dentro de los dispositivos listos para ser empleados con host PCs, y lo ms probables es que tengan sus propios cables con su conector serie A. Sin embargo, esto no se dar en todos los casos, existirn dispositivos USB que no posean cable incorporado, para los cuales el conector Serie B ser una caracterstica. Sin embargo este no es un problema, ya que ambos conectores son estructuralmente diferentes e insertarlos de forma equvoca ser imposible por la forma de las ranuras. La primera figura muestra los diferentes tipos de conectores USB, y la Figura siguiente las respectivas ranuras.

Topologa del Bus

La forma fsica en la que los elementos se interconectan dentro del sistema USB, puede asemejarse a la topologa estrella estratificada piramidalmente. El centro de cada estrella es un hub, un dispositivo que por un lado se conecta al computador o a otro hub y por otro lado, permite conectar al mismo varios dispositivos o en su defecto nuevos hubs.

Esta disposicin significa que los computadores con soporte para USB han de tener tan solo uno o dos conectores USB, pero ello no representa poder contar con tan solo dos dispositivos de esta clase, quien sabe un ratn y un teclado. Muchos dispositivos USB han de traer conectores USB adicionales incorporados, por ejemplo un monitor puede tener 3 4 conectores USB donde pueden ir el teclado, el ratn, y algn otro dispositivo. Por su parte el teclado puede tener otros ms, y as sucesivamente hasta tener ms de 127 dispositivos, todos funcionando simultneamente.

An as, existirn dispositivos especficos destinados a ampliar la cantidad de conectores, estos se denominan hubs, y su funcionamiento como apariencia fsica est muy cercana a la de los hubs de redes Ethernet. Un hub de 8 puertos o conectores, puede ser acoplado a uno de los puertos USB del computador, ampliando la cantidad de dispositivos que se pueden emplear.

Funcionamiento bsico y mbito de aplicacin

Todo el sistema USB es inteligente, esto significa que una vez que se ha insertado un nuevo dispositivo al sistema, el bus automticamente determina que recursos del host requiere, incluyendo controladores de software (drivers), ancho de banda necesario (el ancho de banda se refiere a la capacidad del canal de comunicaciones que requiere un dispositivo cualquiera para enviar sus datos. Mientras ms informacin manipule el dispositivo, ms ancho de banda necesitar, y a la inversa). El mismo proceso se da al remover un dispositivo del equipo, ya que el host automticamente elimina todos los componentes asociados al mismo con el fin de disponer de los recursos otorgados en su momento para futuros dispositivos.

Este mismo proceso, hace que la configuracin y manipulacin del software o hardware, sea prcticamente mnima para el usuario, proporcionando una gran ayuda en lo que la interconexin de dispositivos al computador, pudiendo ser utilizado en cualquier lugar fsico en que se tenga esta tecnologa.

Controladores (drivers) de hardware

Las ltimas versiones del sistema operativo Windows 95 trae una gran cantidad de controladores para una gama amplia de dispositivos USB, por lo tanto, lo ms probable es que el mismo sistema operativo reconozca y configure el dispositivo de forma inmediata y transparente. (aunque de todas maneras se han detectado fallas de funcionamiento); Adicionalmente el sistema operativo Windows 98, trae especiales refuerzos en cuanto a cantidad de controladores para dispositivos USB y calidad de funcionamiento se refiere. Aunque estos sistemas operativos nunca soportaran a todos, ni mucho menos controladores de dispositivos que se fabricarn en el futuro, razn por la cual, Windows 95/98 solicitar el disquete o CD de instalacin, para aquellos perifricos que no pueda configurar adecuadamente.

Los sistemas operativos ganan en simplicidad. Los drivers para USB estn definidos por capas, de forma que la gestin del bus, la configuracin bsica de los dispositivos, su manejo, etc... lo lleva el sistema operativo, mientras que cada driver especfico slo maneja los dispositivos con los que pueda tratar. De esta forma, tendremos una serie de mdulos apilados con unas misiones especficas, que no interfieren la una con la otra.

El driver est organizado por la ya comentada estructura de capas. La parte principal es el USBD, o Universal Serial Bus Driver (gestor del USB). Aqu estn contenidas todas las llamadas que los drivers necesitarn para acceder a sus dispositivos.

Debajo de esta capa est el HCD, el Host Controller Driver, que es la parte del sistema USB que se dedica a hablar con cada controlador en particular (esto es necesario ya que as se da soporte a todo tipo de controladores, aunque inicialmente solo existen dos, los UHCI y los OHCI (acrnimos que significan Host Controller Interface -interfase del controlador-, universal para la U y Open -abierto- para la O).

Por encima del USBD, y como driver est el HUBD, el driver de los hubs, que es parte obligada del sistema USBD, ya que es parte activa de la gestin de la configuracin de los dispositivos. Esta parte consta de un demonio en activo dentro del mismo ncleo llamado khubdd (Kernel Hub Driver Daemon, demonio en el ncleo del driver de hubs). Este demonio se dedica a esperar a que ocurra algo en los puertos de los hubs donde se conectan los dispositivos, y cuando algo ocurre, lo notifica al USBD, que acta en consecuencia, lanzando secuencias de desconexin, configuracin, desconfiguracin, cambio de configuracin o forma de trabajo, etc ... en los dispositivos.

Los drivers actan de una forma similar al HUBD. Un driver, cuando se carga o inicializa, se registra a s mismo en el sistema USB. Cuando se conecta un dispositivo, se recorre la lista de drivers registrados en busca del que pueda ser ms conveniente para este. Cuando se encuentra, se le pide que configure el dispositivo. Si no lo logra, se busca otro; si no se encuentra ninguno, se pedir que se cargue un mdulo con un driver para ese dispositivo. En caso de que no haya ninguno, se dar por imposible y se dejar el dispositivo como no configurado y esperando a que se cargue un driver que lo pueda configurar.

Caractersticas "Must have"

El trmino "Must Have" (Debe Tener), est rutinariamente mencionado en este informe. Est claro que el trmino hace referencia a la capacidad que debe tener una computadora para soportar el bus USB.

Adicionalmente, el sistema operativo ms difundido en el mundo Windows 95/98, que es distribuido con los mismos equipos por una gran cantidad de fabricantes, viene provisto por todos los controladores (drivers) necesarios para poder manipular este bus sin ningn tipo de problema. El resultado son PCs que estn saliendo al mercado con uno o dos puertos USB en su parte posterior listos para ser empleados, como se observa en la siguiente figura.

Por supuesto, estas computadoras incluyen los puertos habituales mientras la transicin hacia USB se va desarrollando.

Literalmente, todos los fabricantes del mundo han arrancado su produccin de dispositivos y computadoras USB, nuevos modelos, vistosas publicidades para equipos como joysticks digitales, teclados, altoparlantes, monitores, etc., pueden ser vistos por todos los rincones de Internet, especialmente en los sitios web de aquellas empresas que venden por esta va.

Un aspecto ms, no todos los sistemas operativos Windows 95 instalados en todas las computadoras del mundo tiene la misma versin, aunque todos ellos presenten como portada ese logo. La especificacin USB es soportada por los sistemas operativos Windows 95 cuya versin sea la 4.00.950B o superior (como se sealo anteriormente). Para averiguar este dato, se debe hacer clic con el botn derecho del ratn sobre el icono Mi PC del escritorio, y seleccionar la opcin Propiedades.

Modelo lgico funcional del USB

El diagrama de la Figura anterior, ilustra el flujo de datos USB a partir de tres niveles lgicos: entre el Software Cliente y la Funcin, el Controlador USB y el dispositivo, y finalmente la capa fsica, donde la transmisin realmente sucede. Es importante entender que este modelo es muy parecido al OSI, el estndar de redes, y su comprensin radica en el hecho de que si bien existe un solo canal fsico, pero los datos son manejados en cada punto por unidades homlogas o idnticas, tal como si estuviesen sosteniendo una comunicacin directa. Por esta razn se las denomina Capas Lgicas.

El nivel superior lgico es el agente de transporte de datos que mueve la informacin entre el Software Cliente y el dispositivo. Existe un Software Cliente en el host, y un Software De Atencin al mismo en cada una de las funciones o perifricos USB. A este nivel, el host se comunica con cada uno de los perifricos en alguna de las varias formas posibles de transmisin que soporta USB. El Software Cliente solicita a los dispositivos diversas tareas y recibe respuestas de ellos a travs de esta capa.

La capa lgica intermedia es administrada por el Software de Sistema USB, y tiene la funcin de facilitarles las tareas particulares de comunicacin a la capa superior, cabe decir, administra la parte del perifrico con la que la capa superior desea comunicarse, maneja la informacin de control y comando del dispositivo, etc. Su objetivo es permitir a la capa superior concentrarse en las tareas especficas tendientes a satisfacer las necesidades del usuario, adicionalmente gestiona el control interno de los perifricos.

El acceso al bus es bajo la modalidad de Ficha o Token, lo que involucra siempre complejidad de protocolos, especialmente si agregamos dos velocidades posibles: 12Mbps 1.5Mbps. Todos estos algoritmos y procesos son administrados por el Host USB, reduciendo la complejidad del perifrico, y lo ms importante, el costo final de los dispositivos USB.

La capa fsica del modelo lgico USB comprende los puertos fsicos, el cable, los voltajes y seales, el hardware y funcionamiento del hardware. Esta capa tiene el objetivo de liberar a las capas superiores de todos los problemas relacionados a la modulacin, voltajes de transmisin, saltos de fase, frecuencias y caractersticas netamente fsicas de la transmisin.

Electrnica y transmisin del USB

Interfase fsica (elctrica)

El interfaz de Bus Universal en Serie (USB) se identifica con este icono que se encuentra en la parte posterior de la computadora:

Los pines del conector se identifican a continuacin.

Conector

Pin

Seal

1

+5V

2

Datos -

3

Datos +

4

A Tierra

El Bus Serial Universal transfiere seales de informacin y energa elctrica a travs de 4 cables, cuya disposicin se muestra en las siguientes figuras.

Por su parte las seales se mueven sobre dos cables y entre segmentos comprendidos entre un par de dispositivos USB, con rangos de velocidad de 12Mbps o 1.5Mbps, para transmisiones de alta y baja velocidad respectivamente. Ambos modos de transmisin son controlados automticamente por medio de los dispositivos USB de manera transparente al usuario. Es importante notar que siempre ha sido un serio problema manejar velocidades diferentes de transmisin de datos por un mismo cable, y esto no sera posible sin que todos los dispositivos estn preparados para tal efecto.

Los pulsos de reloj o sincronismo son transmitidos en la misma seal de forma codificada bajo el esquema NRZI (Non Return To Zero Invert), uno de los ms interesantes sistemas de codificacin de informacin que no vale la pena mencionarlo ahora por su complejidad elctrica-electrnica.

Los otros dos cables VBus y GND tienen la misin de llevar suministro elctrico a los dispositivos, con una potencia de +5V para VBus. Los cables USB permiten una distancia que va de los pocos centmetros a varios metros, ms especficamente 5 metros de distancia mxima entre un dispositivo USB y el siguiente. La Figura siguiente muestra el detalle.

Es importante indicar que los cables USB tienen protectores de voltaje a fin de evitar cualquier dao a los equipos, son estos mismos protectores los que permiten detectar un dispositivo nuevo conectado al sistema y su velocidad de trabajo.

Protocolo del bus

Toda transferencia de datos o transaccin que emplee el bus, involucra al menos tres paquetes de datos. Cada transaccin se da cuando el Controlador de Host decide qu dispositivo har uso del bus, para ello enva un paquete al dispositivo especfico. Cada uno de los mismos tiene un nmero de identificacin, otorgado por Controlador de Host cuando el computador arranca o bien cuando un dispositivo nuevo es conectado al sistema. De esta forma, cada uno de los perifricos puede determinar si un paquete de datos es o no para s. Tcnicamente este paquete de datos se denomina Paquete Ficha o Token Packet. Una vez que el perifrico afectado recibe el permiso de transmitir, arranca la comunicacin y sus tareas especficas; el mismo informar al host con otro paquete que ya no tiene ms datos que enviar y el proceso continuar con el siguiente dispositivo.

Este protocolo tiene un sistema muy eficiente de recuperacin de errores, empleando uno de los modelos ms seguros como es el CRC (Cdigo de Redundancia Cclica). Y puede estar implementado al nivel de software y/o hardware de manera configurable. De hecho si el control es al nivel de hardware, no vale la pena activar el control por software, ya que sera duplicar tareas innecesariamente.

Transmisin del USB

Transmisin asincrnica

Las distintas formas de transmisin de datos a distancia siempre fueron seriales, ya que el desfase de tiempos ocasionada por la transmisin paralela en distancias grandes impide pensar en esta ltima como apta para cubrir longitudes mayores a algunos pocos metros.

Sobre ello, la transmisin serial ha topado con el problema de que la informacin generada en el transmisor sea recuperada en la misma forma en el receptor, para lo cual es necesario ajustar adecuadamente un sincronismo entre ambos extremos de la comunicacin. Para ello, tanto el receptor como el transmisor deben disponer de relojes que funcionen a la misma frecuencia y posibilite una transmisin exitosa. Como respuesta a este problema surgi la transmisin asincrnica, empleada masivamente aos atrs para la comunicacin entre los equipos servidores conocidos como hosts y sus terminales.

En este modelo cabe entender que ambos equipos poseen relojes funcionando a la misma frecuencia, por lo cual, cuando uno de ellos desea transmitir, prepara un grupo de bits encabezados por un BIT conocido como de arranque, un conjunto de 7 u 8 bits de datos, un BIT de paridad (para control de errores), y uno o dos bits de parada. El primero de los bits enviados anuncia al receptor la llegada de los siguientes, y la recepcin de los mismos es efectuada. El receptor conocer perfectamente cuntos bits le llegarn, y da por recibida la informacin cuando verifica la llegada de los bits de parada. El esquema de los datos se muestra en la Figura siguiente.

Se denomina transmisin asincrnica no porque no exista ningn tipo de sincronismo, sino porque el sincronismo no se halla en la seal misma, mas bien son los equipos mismos los que poseen relojes o clocks que posibilitan la sincronizacin. La sincrona o asincrona siempre se comprende a partir de la seal, no de los equipos de transmisin o recepcin.

Transmisin sincrnica:

En este tipo de transmisin, el sincronismo viaja en la misma seal, de esta forma la transmisin puede alcanzar distancias mucho mayores como tambin un mejor aprovechamiento de canal. En la transmisin asincrnica, los grupos de datos estn compuestos por generalmente 10 bits, de los cuales 4 son de control. Evidentemente el rendimiento no es el mejor. En cambio, en la transmisin sincrnica, los grupos de datos o paquetes estn compuestos por 128 bytes, 1024 bytes o ms, dependiendo de la calidad del canal de comunicaciones.

Las transmisiones sincrnicas ocupan en la actualidad gran parte del mundo de las comunicaciones seriales, especialmente las que emplean el canal telefnico.

Transmisiones isocrnicas:

Inicialmente vale la pena aclarar el origen de este trmino tan extrao, ISO(algn) CRONOS(tiempo). La transmisin isocrnica ha sido desarrollada especialmente para satisfacer las demandas de la transmisin multimedial por redes, esto es integrar dentro de una misma transmisin, informacin de voz, video, texto e imgenes. La transmisin isocrnica es una forma de transmisin de datos en la cual los caracteres individuales estn solamente separados por un nmero entero de intervalos, medidos a partir de la duracin de los bits. Contrasta con la transmisin asincrnica en la cual los caracteres pueden estar separados por intervalos aleatorios. La transferencia isocrnica provee comunicacin continua y peridica entre el host y el dispositivo, con el fin de mover informacin relevante a un cierto momento. La transmisin isocrnica se encarga de mover informacin relevante a algn tipo de transmisin, particularmente audio y video.

Transmisin bulk:

La transmisin Bulk, es una comunicacin no peridica, explosiva tpicamente empleada por transferencias que requieren usar todo el ancho de banda disponible o en su defecto son demoradas hasta que el ancho de banda completo est disponible. Esto implica particularmente movimientos de imgenes o video, donde se requiere de gran potencial de transferencia en poco tiempo. USB permite dos tipos ms de transferencias de datos:

Transmisiones de control:

Es un tipo de comunicacin exclusivamente entre el host y el dispositivo que permite configurar este ltimo, sus paquetes de datos son de 8, 16, 32 o 64 bytes, dependiendo de la velocidad del dispositivo que se pretende controlar.

Transmisiones de interrupcin:

Este tipo de comunicacin est disponible para aquellos dispositivos que demandan mover muy poca informacin y poco frecuentemente. Tiene la particularidad de ser unidireccional, es decir del dispositivo al host, notificando de algn evento o solicitando alguna informacin. Su paquete de datos tiene las mismas dimensiones que el de las transmisiones de control

7. Determinar el uso de los slots de Expansion ISA y PCI

Ranuras ISA

Las ranuras ISA (Industry Standard Architecture) hacen su aparicin de la mano de IBM en 1980 como ranuras de expansin de 8bits (en la imagen superior), funcionando a 4.77Mhz (que es la velocidad de pos procesadores Intel 8088).

Se trata de un slot de 62 contactos (31 por cada lado) y 8.5cm de longitud.

Su verdadera utilizacin empieza en 1983, conocindose como XT bus architecture.

En el ao 1984 se actualiza al nuevo estndar de 16bits, conocindose como AT bus architecture.

En este caso se trata de una ranura (en realidad son dos ranuras unidas) de 14cm de longitud. Bsicamente es un ISA al que se le aade un segundo conector de 36 contactos (18 por cada lado). Estas nuevas ranuras ISA trabajan a 16bits y a 8Mhz (la velocidad de los Intel 80286).

Ranuras EISA

En 1988 nace el nuevo estndar EISA (Extended Industry Standard Architecture), patrocinado por el llamado Grupo de los nueve (AST, Compaq, Epson, Hewlett-Packard, NEC Corporation, Olivetti, Tandy, Wyse y Zenith), montadores de ordenadores clnicos, y en parte forzados por el desarrollo por parte de la gran gigante (al menos en aquella poca) IBM, que desarrolla en 1987 el slot MCA (Micro Channel Architecture) para sus propias mquinas.

Las diferencias ms apreciables con respecto al bus ISA AT son:

Direcciones de memoria de 32 bits para CPU, DMA, y dispositivos de bus master.

Protocolo de transmisin sncrona para transferencias de alta velocidad.

Traduccin automtica de ciclos de bus entre maestros y esclavos EISA e ISA.

Soporte de controladores de perifricos maestros inteligentes.

33 MB/s de velocidad de transferencia para buses maestros y dispositivos DMA.

Interrupciones compartidas.

Configuracin automtica del sistema y las tarjetas de expansin (el conocido P&P).

Los slot EISA tuvieron una vida bastante breve, ya que pronto fueron sustituidos por los nuevos estndares VESA y PCI.

Ranuras VESA

Movido ms que nada por la necesidad de ofrecer unos grficos de mayor calidad (sobre todo para el mercado de los videojuegos, que ya empezaba a ser de una importancia relevante), nace en 1989 el bus VESA

El bus VESA (Video Electronics Standards Association) es un tipo de bus de datos, utilizado sobre todo en equipos diseados para el procesador Intel 80486. Permite por primera vez conectar directamente la tarjeta grfica al procesador.

Este bus es compatible con el bus ISA (es decir, una tarjeta ISA se puede pinchar en una

ranura VESA), pero mejora la calidad y la respuesta de las tarjetas grficas, solucionando el problema de la insuficiencia de flujo de datos que tenan las ranuras ISA y EISA.

Su estructura consista en una extensin del ISA de 16 bits. Las tarjetas de expansin VESA eran enormes, lo que, junto a la aparicin del bus PCI, mucho ms rpido en velocidad de reloj y con menor longitud y mayor versatilidad, hizo desaparecer al VESA. A pesar de su compatibilidad con las tarjetas anteriores, en la prctica, su uso se limit casi exclusivamente a tarjetas grficas y a algunas raras tarjetas de expasin de memoria.

Ranuras PCI

En el ao 1990 se produce uno de los avances mayores en el desarrollo de los ordenadores, con la salida del bus PCI (Peripheral Component Interconnect).

Se trata de un tipo de ranura que llega hasta nuestros das (aunque hay una serie de versiones), con unas especificaciones definidas, un tamao menor que las ranuras EISA (las ranuras PCI tienen una longitud de 8.5cm, igual que las ISA de 8bits), con unos contactos bastante ms finos que stas, pero con un nmero superior de contactos (98 (49 x cara) + 22 (11 x cara), lo que da un total de 120 contactos).

Con el bus PCI por primera vez se acuerda tambin estandarizar el tamao de las tarjetas de expansin (aunque este tema ha sufrido varios cambios con el tiempo y las necesidades). El tamao inicial acordado es de un alto de 107mm (incluida la chapita de fijacin, o backplate), por un largo de 312mm. En cuanto al backplate, que se coloca al lado contrario que en las tarjetas EISA y anteriores para evitar confusiones, tambin hay una medida estndar (los ya nombrados 107mm), aunque hay una medida denominada de media altura, pensada para los equipos extraplanos.

Las principales versiones de este bus (y por lo tanto de sus respectivas ranuras) son:

PCI 1.0: Primera versin del bus PCI. Se trata de un bus de 32bits a 16Mhz.

PCI 2.0: Primera versin estandarizada y comercial. Bus de 32bits, a 33MHz

PCI 2.1: Bus de 32bist, a 66Mhz y seal de 3.3 voltios

PCI 2.2: Bus de 32bits, a 66Mhz, requiriendo 3.3 voltios. Transferencia de hasta 533MB/s

PCI 2.3: Bus de 32bits, a 66Mhz. Permite el uso de 3.3 voltios y sealizador universal, pero no soporta seal de 5 voltios en las tarjetas.

PCI 3.0: Es el estndar definitivo, ya sin soporte para 5 voltios.

Ranuras PCIX

Las ranuras PCIX (no confundir con las ranuras PCIexpress) salen como respuesta a la necesidad de un bus de mayor velocidad. Se trata de unas ranuras bastante ms largas que las PCI, con un bus de 66bits, que trabajan a 66Mhz, 100Mhz o 133Mhz (segn versin). Este tipo de bus se utiliza casi exclusivamente en placas base para servidores, pero presentan el grave inconveniente (con respecto a las ranuras PCIe) de que el total de su velocidad hay que repartirla entre el nmero de ranuras activas, por lo que para un alto rendimiento el nmero de stas es limitado.

En su mxima versin tienen una capacidad de transferencia de 1064MB/s.

Sus mayores usos son la conexin de tarjetas Ethernet Gigabit, tarjetas de red de fibra y tarjetas controladoras RAID SCSI 320 o algunas tarjetas controladoras RAID SATA.

Ranuras PCI-Express

Las ranuras PCIe (PCI-Express) nacen en 2004 como respuesta a la necesidad de un bus ms rpido que los PCI o los AGP (para grficas en este caso).

Su empleo ms conocido es precisamente ste, el de slot para tarjetas grficas (en su variante PCIe x16), pero no es la nica versin que hay de este puerto, que poco a poco se va imponiendo en el mercado, y que, sobre todo a partir de 2006, ha desbancado prcticamente al puerto AGP en tarjetas grficas.

Entre sus ventajas cuenta la de poder instalar dos tarjetas grficas en paralelo (sistemas SLI o CrossFire) o la de poder utilizar memoria compartida (sistemas TurboCach o HyperMemory), adems de un mayor ancho de banda, mayor suministro de energa (hasta 150 watios).

Este tipo de ranuras no debemos confundirlas con las PCIX, ya que mientras que stas son una extensin del estndar PCI, las PCIe tienen un desarrollo totalmente diferente.

El bus de este puerto est estructurado como enlaces punto a punto, full-duplex, trabajando en serie. En PCIe 1.1 (el ms comn en la actualidad) cada enlace transporta 250 MB/s en cada direccin. PCIE 2.0 dobla esta tasa y PCIE 3.0 la dobla de nuevo.

Cada slot de expansin lleva 1, 2, 4, 8, 16 o 32 enlaces de datos entre la placa base y las

tarjetas conectadas. El nmero de enlaces se escribe con una x de prefijo (x1 para un enlace simple y x16 para una tarjeta con diecisis enlaces .Los tipos de ranuras PCIe que ms se utilizan en la actualidad son los siguientes:

PCIe x1: 250MB/s

PCIe x4: 1GB/s (250MB/s x 4)

PCIe x16: 4GB/s (250MB/s x 16)

Como podemos ver, las ranuras PCIe utilizadas para tarjetas grficas (las x16) duplican (en su estndar actual, el 1.1) la velocidad de transmisin de los actuales puertos AGP. Es precisamente este mayor ancho de banda y velocidad el que permite a las nuevas tarjetas grficas PCIe utilizar memoria compartida, ya que la velocidad es la suficiente como para comunicarse con la RAM a una velocidad aceptable para este fin.

Cada vez son ms habituales las tarjetas que utilizan este tipo de ranuras, no slo tarjetas grficas, sino de otro tipo, como tarjetas WiFi, PCiCard, etc.

Incluso, dado que cada vez se instalan menos ranuras PCI en las placas base, existen

adaptadores PCIe x1 - PCI, que facilitan la colocacin de tarjetas PCI (eso s, de perfin bajo) en equipos con pocas ranuras de ste tipo disponibles

8. Lenguajes de Programacin con las instrucciones de lectura y escritura de puertos.

Comunicaciones seriales en Lenguaje C.

En lenguaje C, existe una instruccin especial para manejar las comunicaciones seriales. Esta instruccin posee la siguiente sintaxis:

int bioscom (int cmd, char abyte, int port);

En realidad, esta instruccin acude a la interrupcin 14H para permitir la comunicacin serial sobre un puerto. Para este caso, cada uno de los parmetros tiene el siguiente significado:

cmd

Especifica la operacin a realizar

abyte

es un caracter que se enviar por el puerto serial

port

es la identificacin del puerto serial (desde 0 para COM1 hasta 3 para COM4)

El parmetro cmd puede tener los siguientes valores y significados:

0 Inicializa el puerto port con los valores dados por abyte

1 Enva el caracter abyte por el puerto port

2 Lee el caracter recibido por el puerto port

3 Retorna el estado del puerto port

Para la inicializacin del puerto, el caracter abyte tiene las interpretaciones que se muestran en la siguiente Tabla.

0x02 0x03

7 bits de datos 8 bits de datos

0x00 0x04

1 bits de parada 2 bits de parada

0x00 0x08 0x18

Sin paridad Paridad impar Paridad par

0x00 0x20 0x40 0x60 0x80 0xA0 0xC0 0xE0

110 baudios 150 baudios 300 baudios 600 baudios 1200 baudios 2400 baudios 4800 baudios 9600 baudios

Para configurar el puerto con algunos parmetros, bastar con realizar una operacin OR con los deseados, por ejemplo, para 1200 baudios, sin bit de paridad, sin bit de parada y 8 bits, bastar con selecconar la palabra dada por:

abyte = 0x80 | 0x00 | 0x00 | 0x03

o lo que es equivalente,

abyte = 0x83

Para la lectura de un caracter que se haya recibido o del estado del puerto, se deben utilizar variables en las cuales se almacenarn los valores de retorno; en ambos caso se obtienen valores de 16 bits. Para la lectura de un dato recibido, los 8 bits menos significativos corresponden al dato y los 8 ms significativos al estado del puerto; si alguno de estos ltimos est en "1 ", un error ocurri; si todos estn en "0", el dato fue recibido sin error.

Cuando el comando es 2 3 (leer el caracter o el estado del puerto), el argumento abyte no se tiene en cuenta. Para configurar el puerto COM1 con los parmetros del ejemplo dado anteriormente, bastar con la instruccin:

bioscom (0,0x83,0); /*(inicializar, parmetros, COM1)*/

La utilizacin de los comandos y las instrucciones para la configuracin de los puertos aqu expuestos slo tendrn sentido en la medida en que utilicemos el puerto serial para establecer una comunicacin bien con otros computadores o bien con dispositivos electrnicos como microcontroladores.

Comunicacin con el puerto paralelo en Lenguaje C. El lenguaje C permite tanto la lectura como la escritura de los puertos paralelo. Para leer el puerto existen las instrucciones inport e inportb, mientras que para escribir estn las instrucciones outport y outportb. La sintaxis de estas instrucciones es la siguiente:

unsigned inport (unsigned portid); unsigned char inportb (unsigned portid); void outport (unsigned portid, unsigned value); void outportb (unsigned portid, unsigned char value);

Ejemplo:

Palabra = inport(puerto); outport (puerto,Palabra); Byte = inportb (puerto); outportb (puerto,Byte);

Las instrucciones que terminan en b ese refieren a la lectura o escritura de un byte, mientras que las que no terminan en esta letra se refieren a una palabra(dos byte). La variable puerto debe contener la direccin de memoria del puerto paralelo, este valor puede ser 378h, 3BCh 278h. Por ultimo no hay que olvidar colocar la siguiente directiva del preprocesador que le indica al C que se usarn las funciones inport, outport, inportb u outportb, declaradas en el archivo dos.h.

#include

El siguiente programa consulta la direccin del primer puerto paralelo disponible:

#include #include void main(void) { int puerto;

clrscr(); puerto=peekb(0x40,0x8); printf("Direccin: %Xh",puerto); getch(); }

Como vern la utilizacin del puerto paralelo es mucho ms sencillo que la serial.

9. Programas Aplicativos para uso de puertos

Obtencin del puerto

Como ya se mencion anteriormente las direcciones de i/o de los puertos paralelo se almacenan en una tabla ubicada en 40h:8h (0h:408h). entonces, ste sera un mtodo de obtener las direcciones. a continuacin se muestra como obtener dichas direcciones en distintos lenguajes.

Ensamblador

;en si tengo la direccin de memoria:

;lpt1 = 0408h

;lpt2 = 0408h + 2h = 040ah

;lpt3 = 040ah + 2h = 040ch

mov si,0408h ;si = 0408h

xor ax,ax ;ax = 0

push ds ;mete ds en la pila

mov ds,ax ;ds = ax = 0

mov ax,word ptr [si] ;ax = [0h:si]

pop ds ;recupero ds de la pila

;ahora en ax tengo la direccin base pascal

{en la variable lptadr guardo la direccin del puerto.

en lpt debo guardar el nmero del puerto paralelo, antes de ejecutar la siguiente instruccin.}

lptadr := memw($0040,$8+(lpt-1)*2);

{lo que hace esta lnea es utilizar el array memw que directamente accede a la memoria en el segmento y offset especificados}

c

/* en portnum debo guardar el nmero de puerto (1,2,3).

en la variable lptadr, tipo unsigned, obtengo la direccin.*/

portnum--;

lptadr = peek(0x0040,0x0008+portnum*2);

quickbasic

en la variable lptnum debo guardar el nmero de puerto

en la variable lptadr, obtengo direccin

def seg 0 cambio a segmento 0 para prxima inst. peek

lptadr = peek(8+(lptnum-1)*2)

def seg restauro a segmento de basic

1