SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
2.5.3 Puertos E/S: Puertos USB


§1 Antecedentes

Hemos señalado repetidamente que el PC adolece de una serie de deficiencias que podíamos
llamar "congénitas", heredadas de un diseño deficiente en algunos aspectos [1], entre las que
cabría destacar la escasez de determinados recursos. Básicamente líneas de interrupción IRQs
( H2.4), y canales de acceso directo a memoria DMA ( H2.3). En ambos casos las
capacidades del diseño inicial tuvieron que ser dobladas en 1984, tres años después de su
lanzamiento, aprovechando la aparición de la gama AT.

La instalación de periféricos ha sido un constante quebradero de cabeza para los
ensambladores, que debían asignar los escasos recursos disponibles entre la creciente
variedad dispositivos que debían conectarse a los sistemas. En este sentido, aunque el
estándar PnP ("Plug and Play") vino a aliviar en parte las dificultades mecánicas de cambiar
"jumpers" en las placas, el problema seguía ahí, ya que desde la aparición del AT el diseño del
PC no había sufrido cambios sustanciales.

Como resultado de un intento de dotar al PC de un bus de alta velocidad que ofreciera las
características ideales PnP de universalidad; facilidad de conexión y desconexión, incluso en
caliente ("Hot Swappable"), y sobre todo, que consumiese pocos recursos. Intel y otros líderes
de la industria diseñaron el Bus Universal Serie, más comúnmente conocido por su acrónimo
inglés USB ("Universal Serial Bus"). Que como su nombre indica, es un bus serie bidireccional
y de bajo coste. Diseñado como una extensión en la arquitectura estándar del PC y orientado
principalmente en la integración de periféricos, que aparecen como un solo puerto en lo que se
refiere a utilización de recursos.

    Nota: En sus orígenes el interés primordial del bus USB se centraba en la integración de
    dispositivos telefónicos CTI ("Computer Telephony Integrations") en los ordenadores.


§2 Estándares

La tecnología USB ha sido promovida principalmente por Intel, aunque le han seguido todos los
grandes fabricantes, de forma que se ha convertido en un estándar importante. En sus
comienzos los interesados en esta tecnología se agruparon en un foro, el USB Implementers
Forum Inc., USB-IF, que agrupa a más de 460 compañías [4], y ha publicado diversas
revisiones de la norma:

    •   USB 0.9: Primer borrador, publicado en Noviembre de 1995.
    •   USB 1.0: Publicada en 1996 establece dos tipos de conexión: La primera, denominada
        velocidad baja ("Low speed"), ofrece 1.5 Mbps, y está pensada para periféricos que
        no requieren un gran ancho de banda, como ratones o joysticks. La segunda,
        denominada velocidad completa ("Full speed"), es de 12 Mbps, y está destinada a los
        dispositivos más rápidos.
    •   USB 1.1: Publicada en 1998, añade detalles y precisiones a la norma inicial; es el
        estándar mínimo que debe cumplir un dispositivo USB.
•   USB 2.0: Su versión final fue publicada en Abril del 2000; es una extensión de la norma
        compatible con las anteriores. Permite velocidades de hasta 480 Mbps, denominada
        alta velocidad ("High speed")

Un buen sitio para información al respecto es USB.org, patrocinado por el USB-IF:
www.usb.org


§3 Historia

El primer ordenador que incluyó un puerto USB de forma estándar fue el iMac de Apple,
presentado en Marzo de 1998, que utilizaba esta conexión para el teclado y el ratón. Por su
parte el mundo del PC solo comenzó a utilizarlo cuando Microsoft introdujo los controladores
correspondientes en la versión OSR 2.1 de Windows 95. Fue a partir de Windows 95C cuando
los sistemas de MS incorporan de forma estándar soporte para este bus. En el ámbito de
servidores la incorporación se produjo en Windows 2000.

Los primeros dispositivos que empezaron a utilizar este tipo de conexión fueron las cámaras de
video-conferencia, aunque actualmente (2005) pueden encontrarse todo tipo de dispositivos.
El resultado es que, junto con los dispositivos inalámbricos (algunos de los cuales se conectan
también a través de esta interfaz), la conexión USB se ha convertido en el método universal de
conexión de periféricos, incluyendo dispositivos de almacenamiento y los denominados HID
("Human Interface Device") - principalmente ratones y teclados-.


§4 Topología

Los dispositivos USB adoptan una topología de estrella y se organiza por niveles a partir de un
controlador host instalado en la placa base, que actúa de interfaz entre el bus de ésta
(generalmente a la interfaz PCI      6.4) y el primer dispositivo USB, el denominado
concentrador raíz ("Root hub"), instalado también en la placa. El controlador de host es
único; suele ser un chip Intel con una denominación como 82371AB/EB; 82801DB, etc. Dada
la proliferación de este tipo de dispositivos, las placas modernas pueden disponer de varios
concentradores raíz, cada uno con su propia salida (generalmente 2 conectores del tipo "A"
por cada uno de ellos). Cada uno de estos concentradores se considera el origen de un bus
(numerados sucesivamente a partir del 0), del que cuelgan los dispositivos en el orden en que
son detectados por el Sistema.

El bus USB soporta intercambio simultáneo de datos entre un ordenador anfitrión y un amplio
conjunto de periféricos. Todos los periféricos conectados comparten el ancho de banda del
bus por medio de un protocolo de arbitraje basado en testigos ("Tokens"). El bus permite
conexión y desconexión dinámica, es decir, que los periféricos se conecten, configuren,
manipulen y desconecten mientras el sistema anfitrión y otros periféricos permanecen en
funcionamiento.

    Nota: A pesar de lo anterior, dado que una vez instalados, los discos USB son
    contemplados como parte de sistema de ficheros, estos dispositivos requieren un
    tratamiento especial para su desconexión. El proceso garantiza que los ficheros sean
    propiamente cerrados; que que se grabe el contenido de las cachés correspondientes; que
    (en su caso) las cabezas de lectura escritura se sitúen en sus zonas de aparcamiento, y
    que no puedan ser accedidos accidentalmente por otra aplicación mientras son retirados,
    lo que podría producir corrupciones en el sistema de ficheros.
En Windows, pulsando con el botón derecho del ratón sobre el icono de la unidad en el
    explorador y seleccionando "Expulsar".

    En Linux, si estamos en un entorno gráfico (por ejemplo como KDE), podemos pulsar con
    el botón derecho sobre el icono de la unidad y seleccionar "Unmount". Si estamos en un
    entorno texto (Shell del sistema) podemos utilizar la orden umount (consulte el manual).
    Generalmente este tipo de dispositivos se instalan en los directorios /mnt o /media.


En un bus USB existen dos tipos de elementos: Anfitrión ("host") y dispositivos; a su vez, los
dispositivos pueden ser de dos tipos: concentradores y funciones [2].

    •   Los concentradores ("Hubs") son el centro de una estrella, y sirven para conectar con
        el sistema anfitrión, con otro hub o con una función. Cada hub puede conectar hasta 7
        dispositivos, aunque lo normal es que sean de 4 salidas, y proporcionar 500 mA de
        energía de alimentación (hasta 2.5 W) a cada uno de ellos, ya que el cable de conexión
        tiene hilos de señal (datos) y de alimentación (5 V. CC ± 0.25 V).
    •   Una función es un dispositivo capaz de transmitir o recibir datos o información de
        control en un bus USB, suele conectarse como un dispositivo independiente enlazado
        por un cable de menos de 5 metros, a un puerto del hub o directamente al sistema
        anfitrión.

De esta descripción se desprende que cada segmento del bus representa una conexión apunto
a punto de alguno de los tipos siguientes:

Sistema anfitrión   = Función
Sistema anfitrión   = Concentrador
Concentrador    = Concentrador
Concentrador    = Función.

Que un hub pueda estar conectado a otro hub, significa que pueden conectarse dispositivos en
cascada; el sistema soporta un total de 127 dispositivos. Una característica importante es que
el concentrador (hub), proporcionan la energía necesaria a la función por el cable de conexión
(que transporta fuerza y datos ), lo que evita la necesidad de fuentes de alimentación
independientes a las funciones.


§4 Funcionamiento

El bus serie USB es síncrono, y utiliza el algoritmo de codificación NRZI ("Non Return to Zero
Inverted"). En este sistema existen dos voltajes opuestos; una tensión de referencia
corresponde a un "1", pero no hay retorno a cero entre bits, de forma que una serie de unos
corresponde a un voltaje uniforme; en cambio los ceros se marcan como cambios del nivel de
tensión, de modo que una sucesión de ceros produce sucesivos cambios de tensión entre los
conductores de señal.

A partir de las salidas proporcionadas por los concentradores raíz (generalmente conectores
del tipo "A" ) y utilizando concentradores adicionales, pueden conectarse más dispositivos
hasta el límite señalado.
Nota: Actualmente la mayoría de las placas-base incluyen un controlador USB integrado
    en el chipset. Para sistemas antiguos que no dispongan de USB pueden instalarse
    tarjetas PCI (e incluso PC-CARD para portátiles) que incluyen un controlador de host y un
    concentrador raíz con varios conectores de salida.


El protocolo de comunicación utilizado es de testigo, que guarda cierta similitud con el sistema
Token-Ring de IBM. Puesto que todos los periféricos comparten el bus y pueden funcionar de
forma simultánea, la información es enviada en paquetes; cada paquete contiene una
cabecera que indica el periférico a que va dirigido. Existen cuatro tipos de paquetes distintos:
Token; Datos; Handshake, y Especial; el máximo de datos por paquete es de 8; 16; 32 y 64
Bytes. Se utiliza un sistema de detección y corrección de errores bastante robusto tipo CRC
("Cyclical Redundancy Check").

El funcionamiento está centrado en el host, todas las transacciones se originan en él. Es el
controlador host el que decide todas las acciones, incluyendo el número asignado a cada
dispositivo (esta asignación es realizada automáticamente por el controlador "host" cada vez
que se inicia el sistema o se añade, o elimina, un nuevo dispositivo en el bus), su ancho de
banda, etc. Cuando se detecta un nuevo dispositivo es el host el encargado de cargar los
drivers oportunos sin necesidad de intervención por el usuario.

El sistema utiliza cuatro tipos de transacciones que resuelven todas las posibles situaciones de
comunicación. Cada transacción utiliza un mínimo de tres paquetes, el primero es siempre un
Token que avisa al dispositivo que puede iniciar la transmisión.

    •   Transferencia de control ("Control transfer"): Ocurre cuando un dispositivo se conecta
        por primera vez. En este momento el controlador de host envía un paquete "Token" al
        periférico notificándole el número que le ha asignado.
    •   Transferencia de pila de datos ("Bulk data transfer"): Este proceso se utiliza para
        enviar gran cantida de datos de una sola vez. Es útil para dispositivos que tienen que
        enviar gran cantidad de datos cada vez, como escáneres o máquinas de fotografía
        digital.
    •   Transferencia por interrupción ("Interrupt data transfer"): Este proceso se utiliza
        cuando se solicita enviar información por el bus en una sola dirección (de la función al
        host).
    •   Transferencia de datos isócrona ("Isochronous data transfer"): Este proceso se
        utiliza cuando es necesario enviar datos en tiempo real. Los datos son enviados con
        una cadencia precisa ajustada a un reloj, de modo que la transmisión es a velocidad
        constante.

    Nota: Las comunicaciones asíncronas ponen más énfasis en garantizar el envío de datos,
    y menos en su temporización ("cuando" lleguan); por su parte las comunicaciones
    isócronas son justamente lo contrario, ponen más énfasis en la oportunidad de la
    transmisión que en la velocidad. Esta sincronización es importante en situaciones como la
    reproducción de video, donde no debe existir desfase entre las señales de video y audio.


§5 Cables y conectores

El cable de bus USB es de 4 hilos, y comprende líneas de señal (datos) y alimentación, con lo
que las funciones pueden utilizar un único cable.
Existen dos tipos de cable: apantallado y sin
apantallar. En el primer caso el par de hilos de señal     Pin Nombre Descripción Color
es trenzado; los de tierra y alimentación son rectos, y     1 VBUS       + 5 V. CC    rojo
la cubierta de protección (pantalla) solo puede
                                                            2 D-         Data -       azul
conectarse a tierra en el anfitrión. En el cable sin
apantallar todos los hilos son rectos. Las conexiones       3 D+         Data +       amarillo
a 15 Mbps y superiores exigen cable apantallado.            4 GND        Tierra       verde

    Nota: Una forma de identificar que los concentradores (hubs) USB están realmente
    adaptados a la norma 2.0 es por su cable apantallado.


                              Se utilizan diámetros estándar para los hilos de alimentación del
AWG mm Ø Long. Máx.           bus. Para cada sección se autoriza una longitud máxima del
  28    0.321 0.81 m          segmento. En la tabla izquierda se muestran estas distancias [3];
  26    0.405 1.31 m          a la derecha se muestran la disposición de pines y colores de
                              identificación.
  24    0.511 2.08 m
  22    0.644 3.33 m           Se usan dos tipos de conectores, A y B. Ambos son polarizados
  20    0.812 5.00 m           (solo pueden insertarse en una posición) y utilizan sistemas de
                               presión para sujetarse. Los de tipo A utilizan la hembra en el
                               sistema anfitrión, y suelen usarse en dispositivos en los que la
conexión es permanente (por ejemplo, ratones y teclados). Los de tipo B utilizan la hembra en
el dispositivo USB (función), y se utilizan en sistemas móviles (por ejemplo, cámaras
fotográficas o altavoces). En general podemos afirmar que la hembra de los conectores A
están en el lado del host (PC) o de los concentradores (hubs), mientras las de tipo B están del
lado de los periféricos.




                            Conector tipo A                                   Conector tipo B


§6 Identificación y diagnóstico

§6.1 Windows dispone de un programa específico para ver los puertos USB reconocidos y
sus parámetros de configuración, es el programa Usbview.exe, que puede encontrarse en el
CD de instalación de Windows 98, en el directorio ToolsReskitDiagnose
En la figura se muestra el resultado de conectar distintos dispositivos a un hub externo colgado
de una de las dos salidas USB que proporciona el hub raíz del sistema (señaladas Port1 y
Port2). Los cuatro puertos están ocupados por los siguientes dispositivos:

    •   Grabadora DVD
    •   Disco de estado sólido (aparece como USB mass storage device)
    •   Webcam
    •   Scaner



§6.2 Linux dispone de varias utilidades relacionadas con el manejo de estos puertos.

La primera, usbview, una utilidad de interfaz gráfica GTK, que es un remedo exacto de la
utilidad Windows comentada en el párrafo anterior (es raro que se instale por defecto, de modo
que seguramente deberá instalarla ex profeso). Además de mostrar una vista jerárquica de los
dispositivos conectados, informa de las particularidades de cada uno. Puede ser útil para
comprobar si un dispositivo ha sido detectado y está funcionando correctamente.

En cuanta a la operación en modo texto (desde el Sehell), como es casi seguro que si su
equipo dispone de salidas USB, tenga su controlador de host conectado al bus PCI. Lo
primero sería averiguar que dispositivos están conectados a esta interfaz. Para ello puede
utilizarse el comando lspci, que produce una salida similar a la que sigue (se ha resaltado la
información relacionada con el controlador de host USB que es lo interesante aquí).

00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host
bridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge
(rev 03) (prog-if 00 [Normal decode])
00:02.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
00:02.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
(prog-if 80 [Master])
00:02.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
(prog-if 00 [UHCI])
00:02.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:03.0 CardBus bridge: Texas Instruments PCI1251B
00:03.1 CardBus bridge: Texas Instruments PCI1251B
00:06.0 Communication controller: Lucent Microelectronics WinModem 56k
(rev 01)
00:07.0 Multimedia audio controller: ESS Technology ES1969 Solo-1
Audiodrive (rev 02)
01:00.0 VGA compatible controller: Neomagic Corporation NM2200
[MagicGraph 256AV] (rev 20) (prog-if 00 [VGA])
02:00.0 Ethernet controller: Abocom Systems Inc RTL8139 [FE2000VX]
CardBus Fast Ethernet Attached Port Adapter (rev 10)



La indicación UHCI (o EHCI) se refiere al tipo de controlador USB utilizado en el Kernel. Si
quiere ver los módulos relacionados con USB puede utilizar el comando lsmod | egrep -E
'usb|Size'. En nuestro caso produce la siguiente salida [6]:

Module                        Size Used by Not tainted
usbserial                    20508 0 (autoclean) (unused)
cpia_usb                      4408 0 (autoclean)
cpia                         31736 0 [cpia_usb cpia_pp]
usb-storage                  65344 1
scsi_mod                     98068 6 [sd_mod st sr_mod sg usb-storage]
usb-uhci                     22224 0 (unused)
usbcore                      58668 1 [usbserial scanner cpia_usb usb-
storage usb-uhci]

Como puede verse, usbcore es utilizado por los demás módulos USB (usbserial y usb-
uhci).

Los detalles de los dispositivos conectados pueden obtenerse con la utilidad lsusb. que
proporciona una relación resumida:

Bus 001 Device 001: ID 0000:0000
Bus 001 Device 002: ID 0409:0058           NEC Corp. USB2.0 Hub Controller
Bus 001 Device 003: ID 152e:e003
Bus 001 Device 004: ID 0ea0:6803           Ours Technology, Inc.
Bus 001 Device 005: ID 0553:0002           STMicroelectronics Imaging Division
(VLSI Vision) CPiA WebCam
Bus 001 Device 006: ID 03f0:0605           Hewlett-Packard ScanJet 2200c

Aquí son significativas las indicaciones de número de bus y de dispositivo. Debemos recordar
que el número de dispositivo depende del orden en que los encuentra el kernel.

Si quiere ver los módulos (controladores) del Kernel asociados con un dispositivo USB
conectado al Sistema, puede utilizar la utilidad usbmodules en la forma usbmodules --
device /proc/bus/usb/Bus/Device. En nuestro caso, para comprobar los utilizados por
la WebCam se utilizaría la orden:
usbmodules --device /proc/bus/usb/001/005

El resultado es cpia_usb. Análogamente se obtiene que los módulos del hub NEC y del disco
sólido de Ours Technology son respectivamente usbcore y usb_storage.

Si, como es el caso, existe más de un dispositivo conectado, puede utilizar la opción lusb -t,
que proporciona una visión en árbol ("Tree") de las conexiones, similar a la obtenida con los
programas de interfaz gráfica (GUI) ya comentados:

us# 1
`-Dev# 1 Vendor 0x0000 Product 0x0000
  `-Dev# 2 Vendor 0x0409 Product 0x0058
    |-Dev# 3 Vendor 0x152e Product 0xe003
    |-Dev# 4 Vendor 0x0ea0 Product 0x6803
    |-Dev# 5 Vendor 0x0553 Product 0x0002
      `-Dev# 6 Vendor 0x03f0 Product 0x0605

Con la información anterior es posible inspeccionar los detalles de cualquiera de los
dispositivos mediante lsusb -v -s bus:device. En nuestro caso, para ver los detalles de
la grabadora DVD (que no tiene identificación interna del fabricante), el comando:

lsusb -v -s 001:003

proporciona los siguientes datos:

Bus 001 Device 003: ID 152e:e003
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 Interface
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x152e
  idProduct          0xe003
  bcdDevice            0.01
  iManufacturer           1 HL-DT-ST DVDRAM GSA-5163D
  iProduct                2 Super Multi DVD Rewriter
  iSerial                 3 4B13E216
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower            100mA
    Interface Descriptor:
bLength               9
      bDescriptorType       4
      bInterfaceNumber      0
      bAlternateSetting     0
      bNumEndpoints         2
      bInterfaceClass       8 Mass Storage
      bInterfaceSubClass    6 SCSI
      bInterfaceProtocol   80 Bulk (Zip)
      iInterface            0
      Endpoint Descriptor:
        bLength               7
        bDescriptorType       5
        bEndpointAddress   0x01 EP 1 OUT
        bmAttributes          2
          Transfer Type          Bulk
          Synch Type             none
        wMaxPacketSize       64
        bInterval             0
      Endpoint Descriptor:
        bLength               7
        bDescriptorType       5
        bEndpointAddress   0x82 EP 2 IN
        bmAttributes          2
          Transfer Type          Bulk
          Synch Type             none
        wMaxPacketSize       64
        bInterval             0
Language IDs: (length=4)
   0409 English(US)

Entre otras características de menor
importancia, podemos destacar la
indicación Self Powered. Señala que
el dispositivo dispone de su propia
alimentación además de la que puede
obtener de la interfaz. También el valor
MaxPower (100 mA en este caso) que es
la energía obtenida de la conexión USB.

    Nota: Recordemos que la intensidad
    máxima que puede proporcionar esta
    conexión es de 500 mA . De
    forma que si el dispositivo USB
    necesita más (como en el caso
    anterior), el fabricante debe recurrir a
    una fuente de alimentación externa.
    Sin embargo, he visto dispositivos de
    bajo precio, principalmente discos
    móviles USB, cuyas exigencias
    sobrepasan este límite [7], en los
    que, a fin de aprovechar la exigua cantidad de energía que puede obtenerse de la patilla 4
    del conector mini-DIN de del puerto de teclado/ratón PS/2 (   7.1), se ha recurrido a
utilizar cables en "Y" como el que se muestra en la figura. El conector izquierdo es el
    conector USB tipo A normal del dispositivo; el derecho va conectado al contenedor
    ("Housing") del disco. El del centro es el referido conector mini-DIN. Puede observarse
    que, con el fin de que puedan seguir utilizándose el ratón o teclado en el referido puerto,
    es un conector "de paso". Personalmente creo que se trata de una verdadera chapuza, y
    aconsejo vívamente huir de dispositivos que adopten este sistema.



También es digno de mención el mensaje bInterfaceSubClass 6 SCSI. Indica que el
controlador USB realiza una emulación SCSI del dispositivo ( 6.3), de forma que el Sistema
Operativo considera como tal la grabadora DVD. Podemos confirmarlo mediante el comando

dmesg | grep scsi

que proporciona la siguiente salida:

scsi0 : SCSI emulation for USB Mass Storage devices
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
sr0: scsi-1 drive

También mediante el comando sginfo -l. que permite comprobar la asignación que le ha
correspondido al dispositivo:

/dev/scd0 /dev/sr0
/dev/sg0 [=/dev/scd0          scsi0 ch=0 id=0 lun=0]

    Nota: Esta emulación SCSI es frecuente en muchos dispositivos de almacenamiento de
    conexión USB. No solo en discos móviles; también cámaras, lectores de tarjeta, etc. En
    estos casos, para transferir sus contenidos (fotos) a Linux, solo es necesario montar el
    dispositivo y a continuación copiar los ficheros; bien mediante una interfaz gráfica o en
    modo texto mediante el Shell (mv o cp). Una vez montados en el sistema, es posible
    incluso utilizar estos dispositivos (cámaras por ejemplo) como sistemas auxiliares de
    almacenamiento pasándoles los ficheros correspondientes [8].


Si se desea conocer la distribución interna de la unidad puede recurrir a la utilidad fdisk. Por
ejemplo, en otra ocasión se ha conectado un disco móvil USB. Las salidas a los comandos
anteriores presentan el siguiente aspecto (# es el "Propt" del shell):

# dmesg | grep scsi
scsi0 : SCSI emulation for USB Mass Storage devices
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
#
# sginfo -l
/dev/sda
/dev/sg0 [=/dev/sda scsi0 ch=0 id=0 lun=0]
#
# fdisk -l /dev/sda

Disk /dev/sda: 10.0 GB, 10056130560 bytes
240 heads, 63 sectors/track, 1299 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot          Start            End        Blocks       Id     System
/dev/sda1   *               1             271      2048728+       b     Win95 FAT32
/dev/sda2                 272            1299      7771680        f     Win95 Ext'd (LBA)
/dev/sda5                 272             536      2003368+       b     Win95 FAT32
/dev/sda6                 537             801      2003368+       b     Win95 FAT32
/dev/sda7                 802            1066      2003368+       b     Win95 FAT32
/dev/sda8                1067            1299      1761448+       b     Win95 FAT32
#



§6.4 Por su parte, el foro de desarrolladores USB (USB-IF), ha publicado diversas
herramientas para comprobación de las características de los dispositivos USB, entre las que
se encuentran las siguientes:

    •   USBCV ("USB Command Verifier"). Es una herramienta de diagnóstico y verificación
        para comprobar que dispositivos USB de alta y baja velocidad se ajustan a las normas.
    •   USB Check. Esta herramienta permite verificar dos enlaces; uno para comprobar
        dispositivos de alta velocidad funcionando a alta velocidad, y otro para comprobar
        dispositivos de velocidad completa y baja; también dispositivos de alta velocidad
        funcionando a velocidad completa.
    •   USBHTT ("USB2 Hub Transaction Translator Test Suite"). Es una herramienta de
        verificación para concentradores USB 2.0.
    •   USBHSET ("USB High Speed Electrical Test Tool Kit"). Este sistema de prueba
        contiene software y procedimientos diseñados para verificar diversos parámetros
        eléctricos, incluyendo la calidad de señal en dispositivos USB de alta velocidad.
        Incluye también procedimientos detallados para comprobación de controladores host,
        concentradores y funciones USB de alta velocidad. Este software también permite
        comprobar la calidad de señal en dispositivos de velocidad completa y baja, así como
        verificaciones de suministro energético.

Estas herramientas están disponibles para su descarga en:        www.usb.org

SSTD ("Single Step Transaction Debugger"). Herramienta de depuración y desarrollo de bajo
nivel que permite enviar transacciones simples a un dispositivo de alta velocidad.
www.usb.org


§7 Enlaces de interés

Los enlaces que siguen pueden ser de interés si deseas ampliar conocimientos, buscas drivers,
información, utilidades, solución de problemas, etc. sobre este puerto tan versátil y actual.

   USB-man         www.usbman.com

               En palabras de sus creadores: "Free USB and USB 2.0 Help, Information, Tips,
               Tricks, Troubleshooting and Forum Board".

   Trace Systems        www.tracesystemsinc.com
Esta compañía comercializa tres herramientas: HIDmaker, un generador de
           código para comunicación de dispositivos mediante USB; USB Watch, una
           herramienta de diagnóstico que incluye un analizador de tráfico, y AnyHID, un
           programa de test para dispositivos HID [5].

USB-Info      http://lpt.usbfireinfo.com/

           Este portal ofrece distintas utilidades para utilización, verificación y diagnóstico
           del puerto USB.

Más contenido relacionado

La actualidad más candente

Placabase carlosálvarez
Placabase carlosálvarezPlacabase carlosálvarez
Placabase carlosálvarezcarloos77
 
Puertos ordenador
Puertos ordenadorPuertos ordenador
Puertos ordenadorclaudialicc
 
Periféricos de procesamiento de datos (parte interna)
Periféricos de procesamiento de datos (parte interna)Periféricos de procesamiento de datos (parte interna)
Periféricos de procesamiento de datos (parte interna)Elbori Rodríguez
 
Ranuras para instalar tarjetas en una board
Ranuras para instalar tarjetas en una boardRanuras para instalar tarjetas en una board
Ranuras para instalar tarjetas en una boardTimoteo Fagua Sanchez
 
Conectores ide & sata
Conectores ide & sataConectores ide & sata
Conectores ide & sataeqipo5
 
INFOGRAFIA PLACA BASE
INFOGRAFIA PLACA BASEINFOGRAFIA PLACA BASE
INFOGRAFIA PLACA BASEltguevara
 

La actualidad más candente (14)

Placabase carlosálvarez
Placabase carlosálvarezPlacabase carlosálvarez
Placabase carlosálvarez
 
Puertos ordenador
Puertos ordenadorPuertos ordenador
Puertos ordenador
 
Placa base
Placa basePlaca base
Placa base
 
Periféricos de procesamiento de datos (parte interna)
Periféricos de procesamiento de datos (parte interna)Periféricos de procesamiento de datos (parte interna)
Periféricos de procesamiento de datos (parte interna)
 
Ranuras para instalar tarjetas en una board
Ranuras para instalar tarjetas en una boardRanuras para instalar tarjetas en una board
Ranuras para instalar tarjetas en una board
 
PUERTOS Y RANURAS
PUERTOS Y RANURASPUERTOS Y RANURAS
PUERTOS Y RANURAS
 
Chipset puente sur
Chipset puente surChipset puente sur
Chipset puente sur
 
Motherboard
MotherboardMotherboard
Motherboard
 
Jeisson cubides 10 5
Jeisson cubides 10 5Jeisson cubides 10 5
Jeisson cubides 10 5
 
Mainboard
MainboardMainboard
Mainboard
 
Motherboard
MotherboardMotherboard
Motherboard
 
Conectores ide & sata
Conectores ide & sataConectores ide & sata
Conectores ide & sata
 
INFOGRAFIA PLACA BASE
INFOGRAFIA PLACA BASEINFOGRAFIA PLACA BASE
INFOGRAFIA PLACA BASE
 
Tarjetamadre.pptx
Tarjetamadre.pptxTarjetamadre.pptx
Tarjetamadre.pptx
 

Similar a Usb jm

PUERTO DE ENTRADA Y SALIDA DE UNA PC ::::: http://leymebamba.com
PUERTO DE ENTRADA Y SALIDA DE UNA PC ::::: http://leymebamba.comPUERTO DE ENTRADA Y SALIDA DE UNA PC ::::: http://leymebamba.com
PUERTO DE ENTRADA Y SALIDA DE UNA PC ::::: http://leymebamba.com{|::::::. ELDAVAN .:::::::|}
 
Puertos y conectores
Puertos y conectoresPuertos y conectores
Puertos y conectoresCarlos Gomez
 
Usb Ruben Tapia Soporte Computacional
Usb Ruben Tapia Soporte ComputacionalUsb Ruben Tapia Soporte Computacional
Usb Ruben Tapia Soporte Computacionallansd
 
Usb Ruben Tapia Soporte Computacional
Usb Ruben Tapia Soporte ComputacionalUsb Ruben Tapia Soporte Computacional
Usb Ruben Tapia Soporte Computacionallansd
 
Puertos (1) (2)
Puertos (1) (2)Puertos (1) (2)
Puertos (1) (2)karenyese
 
Clase iii fundamentos jonathan palacios
Clase iii fundamentos jonathan palaciosClase iii fundamentos jonathan palacios
Clase iii fundamentos jonathan palaciosJonathan Palacios
 
Puertos del computador
Puertos del computadorPuertos del computador
Puertos del computadorrocio1816
 
Que es el puerto usb
Que es el puerto usbQue es el puerto usb
Que es el puerto usbhadish80
 
Puertos de conexión de una computadora
Puertos de conexión de una computadoraPuertos de conexión de una computadora
Puertos de conexión de una computadoraYakariKumul
 
Puerto usb
Puerto   usbPuerto   usb
Puerto usbLian03
 
Puerto usb
Puerto   usbPuerto   usb
Puerto usbLian03
 
las targetas de expancion
las targetas de expancionlas targetas de expancion
las targetas de expancionBarreralilian17
 
7 busesyconectoresdedatos-090712055824-phpapp01
7 busesyconectoresdedatos-090712055824-phpapp017 busesyconectoresdedatos-090712055824-phpapp01
7 busesyconectoresdedatos-090712055824-phpapp01Lour Nikol
 

Similar a Usb jm (20)

PUERTO DE ENTRADA Y SALIDA DE UNA PC ::::: http://leymebamba.com
PUERTO DE ENTRADA Y SALIDA DE UNA PC ::::: http://leymebamba.comPUERTO DE ENTRADA Y SALIDA DE UNA PC ::::: http://leymebamba.com
PUERTO DE ENTRADA Y SALIDA DE UNA PC ::::: http://leymebamba.com
 
Puertos y conectores
Puertos y conectoresPuertos y conectores
Puertos y conectores
 
Usb
UsbUsb
Usb
 
Usb Ruben Tapia Soporte Computacional
Usb Ruben Tapia Soporte ComputacionalUsb Ruben Tapia Soporte Computacional
Usb Ruben Tapia Soporte Computacional
 
Usb Ruben Tapia Soporte Computacional
Usb Ruben Tapia Soporte ComputacionalUsb Ruben Tapia Soporte Computacional
Usb Ruben Tapia Soporte Computacional
 
Puertos (1) (2)
Puertos (1) (2)Puertos (1) (2)
Puertos (1) (2)
 
Clase iii fundamentos jonathan palacios
Clase iii fundamentos jonathan palaciosClase iii fundamentos jonathan palacios
Clase iii fundamentos jonathan palacios
 
Trabajo
TrabajoTrabajo
Trabajo
 
Puertos del computador
Puertos del computadorPuertos del computador
Puertos del computador
 
Placa madre
Placa madrePlaca madre
Placa madre
 
Que es el puerto usb
Que es el puerto usbQue es el puerto usb
Que es el puerto usb
 
Puertos de conexión de una computadora
Puertos de conexión de una computadoraPuertos de conexión de una computadora
Puertos de conexión de una computadora
 
Puerto usb
Puerto   usbPuerto   usb
Puerto usb
 
Puerto usb
Puerto   usbPuerto   usb
Puerto usb
 
Placa madre
Placa madrePlaca madre
Placa madre
 
las targetas de expancion
las targetas de expancionlas targetas de expancion
las targetas de expancion
 
Puertos de comunicación
Puertos de comunicaciónPuertos de comunicación
Puertos de comunicación
 
PeriféRicos-pcpi
PeriféRicos-pcpiPeriféRicos-pcpi
PeriféRicos-pcpi
 
Placa base
Placa basePlaca base
Placa base
 
7 busesyconectoresdedatos-090712055824-phpapp01
7 busesyconectoresdedatos-090712055824-phpapp017 busesyconectoresdedatos-090712055824-phpapp01
7 busesyconectoresdedatos-090712055824-phpapp01
 

Más de Jose Manuel Mansilla Carrasco

Más de Jose Manuel Mansilla Carrasco (20)

Esquemario electricidad inter jm
Esquemario electricidad inter jmEsquemario electricidad inter jm
Esquemario electricidad inter jm
 
Sls t allgemein vmt jm
Sls t allgemein vmt jmSls t allgemein vmt jm
Sls t allgemein vmt jm
 
Manual usuario-papyre613 jm
Manual usuario-papyre613 jmManual usuario-papyre613 jm
Manual usuario-papyre613 jm
 
2005 abril m-30_jm
2005 abril  m-30_jm2005 abril  m-30_jm
2005 abril m-30_jm
 
Tuneles guadarrama sur_paraguas
Tuneles guadarrama sur_paraguasTuneles guadarrama sur_paraguas
Tuneles guadarrama sur_paraguas
 
Drone jm
Drone jmDrone jm
Drone jm
 
Dron jm
Dron jmDron jm
Dron jm
 
Fusible_jm
Fusible_jmFusible_jm
Fusible_jm
 
Motor cc
Motor ccMotor cc
Motor cc
 
Junkers cerapur zwbc 24 28-2 c_jm
Junkers cerapur zwbc 24 28-2 c_jmJunkers cerapur zwbc 24 28-2 c_jm
Junkers cerapur zwbc 24 28-2 c_jm
 
Partes saunier duval jm
Partes saunier duval jmPartes saunier duval jm
Partes saunier duval jm
 
Thema c saunier duval jm
Thema c saunier duval jmThema c saunier duval jm
Thema c saunier duval jm
 
Compresor michelin jm
Compresor michelin jmCompresor michelin jm
Compresor michelin jm
 
NEOTION 3000 spain_jm
NEOTION 3000 spain_jmNEOTION 3000 spain_jm
NEOTION 3000 spain_jm
 
Info plc simbologia
Info plc simbologiaInfo plc simbologia
Info plc simbologia
 
Simbología jm
Simbología jmSimbología jm
Simbología jm
 
Manual esquemas Moeller
Manual esquemas MoellerManual esquemas Moeller
Manual esquemas Moeller
 
Estandarización de esquemas
Estandarización de esquemasEstandarización de esquemas
Estandarización de esquemas
 
Realizar esquemas de circuito jm
Realizar esquemas de circuito jmRealizar esquemas de circuito jm
Realizar esquemas de circuito jm
 
Esquemas ascensor inapelsa
Esquemas ascensor inapelsaEsquemas ascensor inapelsa
Esquemas ascensor inapelsa
 

Usb jm

  • 1. 2.5.3 Puertos E/S: Puertos USB §1 Antecedentes Hemos señalado repetidamente que el PC adolece de una serie de deficiencias que podíamos llamar "congénitas", heredadas de un diseño deficiente en algunos aspectos [1], entre las que cabría destacar la escasez de determinados recursos. Básicamente líneas de interrupción IRQs ( H2.4), y canales de acceso directo a memoria DMA ( H2.3). En ambos casos las capacidades del diseño inicial tuvieron que ser dobladas en 1984, tres años después de su lanzamiento, aprovechando la aparición de la gama AT. La instalación de periféricos ha sido un constante quebradero de cabeza para los ensambladores, que debían asignar los escasos recursos disponibles entre la creciente variedad dispositivos que debían conectarse a los sistemas. En este sentido, aunque el estándar PnP ("Plug and Play") vino a aliviar en parte las dificultades mecánicas de cambiar "jumpers" en las placas, el problema seguía ahí, ya que desde la aparición del AT el diseño del PC no había sufrido cambios sustanciales. Como resultado de un intento de dotar al PC de un bus de alta velocidad que ofreciera las características ideales PnP de universalidad; facilidad de conexión y desconexión, incluso en caliente ("Hot Swappable"), y sobre todo, que consumiese pocos recursos. Intel y otros líderes de la industria diseñaron el Bus Universal Serie, más comúnmente conocido por su acrónimo inglés USB ("Universal Serial Bus"). Que como su nombre indica, es un bus serie bidireccional y de bajo coste. Diseñado como una extensión en la arquitectura estándar del PC y orientado principalmente en la integración de periféricos, que aparecen como un solo puerto en lo que se refiere a utilización de recursos. Nota: En sus orígenes el interés primordial del bus USB se centraba en la integración de dispositivos telefónicos CTI ("Computer Telephony Integrations") en los ordenadores. §2 Estándares La tecnología USB ha sido promovida principalmente por Intel, aunque le han seguido todos los grandes fabricantes, de forma que se ha convertido en un estándar importante. En sus comienzos los interesados en esta tecnología se agruparon en un foro, el USB Implementers Forum Inc., USB-IF, que agrupa a más de 460 compañías [4], y ha publicado diversas revisiones de la norma: • USB 0.9: Primer borrador, publicado en Noviembre de 1995. • USB 1.0: Publicada en 1996 establece dos tipos de conexión: La primera, denominada velocidad baja ("Low speed"), ofrece 1.5 Mbps, y está pensada para periféricos que no requieren un gran ancho de banda, como ratones o joysticks. La segunda, denominada velocidad completa ("Full speed"), es de 12 Mbps, y está destinada a los dispositivos más rápidos. • USB 1.1: Publicada en 1998, añade detalles y precisiones a la norma inicial; es el estándar mínimo que debe cumplir un dispositivo USB.
  • 2. USB 2.0: Su versión final fue publicada en Abril del 2000; es una extensión de la norma compatible con las anteriores. Permite velocidades de hasta 480 Mbps, denominada alta velocidad ("High speed") Un buen sitio para información al respecto es USB.org, patrocinado por el USB-IF: www.usb.org §3 Historia El primer ordenador que incluyó un puerto USB de forma estándar fue el iMac de Apple, presentado en Marzo de 1998, que utilizaba esta conexión para el teclado y el ratón. Por su parte el mundo del PC solo comenzó a utilizarlo cuando Microsoft introdujo los controladores correspondientes en la versión OSR 2.1 de Windows 95. Fue a partir de Windows 95C cuando los sistemas de MS incorporan de forma estándar soporte para este bus. En el ámbito de servidores la incorporación se produjo en Windows 2000. Los primeros dispositivos que empezaron a utilizar este tipo de conexión fueron las cámaras de video-conferencia, aunque actualmente (2005) pueden encontrarse todo tipo de dispositivos. El resultado es que, junto con los dispositivos inalámbricos (algunos de los cuales se conectan también a través de esta interfaz), la conexión USB se ha convertido en el método universal de conexión de periféricos, incluyendo dispositivos de almacenamiento y los denominados HID ("Human Interface Device") - principalmente ratones y teclados-. §4 Topología Los dispositivos USB adoptan una topología de estrella y se organiza por niveles a partir de un controlador host instalado en la placa base, que actúa de interfaz entre el bus de ésta (generalmente a la interfaz PCI 6.4) y el primer dispositivo USB, el denominado concentrador raíz ("Root hub"), instalado también en la placa. El controlador de host es único; suele ser un chip Intel con una denominación como 82371AB/EB; 82801DB, etc. Dada la proliferación de este tipo de dispositivos, las placas modernas pueden disponer de varios concentradores raíz, cada uno con su propia salida (generalmente 2 conectores del tipo "A" por cada uno de ellos). Cada uno de estos concentradores se considera el origen de un bus (numerados sucesivamente a partir del 0), del que cuelgan los dispositivos en el orden en que son detectados por el Sistema. El bus USB soporta intercambio simultáneo de datos entre un ordenador anfitrión y un amplio conjunto de periféricos. Todos los periféricos conectados comparten el ancho de banda del bus por medio de un protocolo de arbitraje basado en testigos ("Tokens"). El bus permite conexión y desconexión dinámica, es decir, que los periféricos se conecten, configuren, manipulen y desconecten mientras el sistema anfitrión y otros periféricos permanecen en funcionamiento. Nota: A pesar de lo anterior, dado que una vez instalados, los discos USB son contemplados como parte de sistema de ficheros, estos dispositivos requieren un tratamiento especial para su desconexión. El proceso garantiza que los ficheros sean propiamente cerrados; que que se grabe el contenido de las cachés correspondientes; que (en su caso) las cabezas de lectura escritura se sitúen en sus zonas de aparcamiento, y que no puedan ser accedidos accidentalmente por otra aplicación mientras son retirados, lo que podría producir corrupciones en el sistema de ficheros.
  • 3. En Windows, pulsando con el botón derecho del ratón sobre el icono de la unidad en el explorador y seleccionando "Expulsar". En Linux, si estamos en un entorno gráfico (por ejemplo como KDE), podemos pulsar con el botón derecho sobre el icono de la unidad y seleccionar "Unmount". Si estamos en un entorno texto (Shell del sistema) podemos utilizar la orden umount (consulte el manual). Generalmente este tipo de dispositivos se instalan en los directorios /mnt o /media. En un bus USB existen dos tipos de elementos: Anfitrión ("host") y dispositivos; a su vez, los dispositivos pueden ser de dos tipos: concentradores y funciones [2]. • Los concentradores ("Hubs") son el centro de una estrella, y sirven para conectar con el sistema anfitrión, con otro hub o con una función. Cada hub puede conectar hasta 7 dispositivos, aunque lo normal es que sean de 4 salidas, y proporcionar 500 mA de energía de alimentación (hasta 2.5 W) a cada uno de ellos, ya que el cable de conexión tiene hilos de señal (datos) y de alimentación (5 V. CC ± 0.25 V). • Una función es un dispositivo capaz de transmitir o recibir datos o información de control en un bus USB, suele conectarse como un dispositivo independiente enlazado por un cable de menos de 5 metros, a un puerto del hub o directamente al sistema anfitrión. De esta descripción se desprende que cada segmento del bus representa una conexión apunto a punto de alguno de los tipos siguientes: Sistema anfitrión = Función Sistema anfitrión = Concentrador Concentrador = Concentrador Concentrador = Función. Que un hub pueda estar conectado a otro hub, significa que pueden conectarse dispositivos en cascada; el sistema soporta un total de 127 dispositivos. Una característica importante es que el concentrador (hub), proporcionan la energía necesaria a la función por el cable de conexión (que transporta fuerza y datos ), lo que evita la necesidad de fuentes de alimentación independientes a las funciones. §4 Funcionamiento El bus serie USB es síncrono, y utiliza el algoritmo de codificación NRZI ("Non Return to Zero Inverted"). En este sistema existen dos voltajes opuestos; una tensión de referencia corresponde a un "1", pero no hay retorno a cero entre bits, de forma que una serie de unos corresponde a un voltaje uniforme; en cambio los ceros se marcan como cambios del nivel de tensión, de modo que una sucesión de ceros produce sucesivos cambios de tensión entre los conductores de señal. A partir de las salidas proporcionadas por los concentradores raíz (generalmente conectores del tipo "A" ) y utilizando concentradores adicionales, pueden conectarse más dispositivos hasta el límite señalado.
  • 4. Nota: Actualmente la mayoría de las placas-base incluyen un controlador USB integrado en el chipset. Para sistemas antiguos que no dispongan de USB pueden instalarse tarjetas PCI (e incluso PC-CARD para portátiles) que incluyen un controlador de host y un concentrador raíz con varios conectores de salida. El protocolo de comunicación utilizado es de testigo, que guarda cierta similitud con el sistema Token-Ring de IBM. Puesto que todos los periféricos comparten el bus y pueden funcionar de forma simultánea, la información es enviada en paquetes; cada paquete contiene una cabecera que indica el periférico a que va dirigido. Existen cuatro tipos de paquetes distintos: Token; Datos; Handshake, y Especial; el máximo de datos por paquete es de 8; 16; 32 y 64 Bytes. Se utiliza un sistema de detección y corrección de errores bastante robusto tipo CRC ("Cyclical Redundancy Check"). El funcionamiento está centrado en el host, todas las transacciones se originan en él. Es el controlador host el que decide todas las acciones, incluyendo el número asignado a cada dispositivo (esta asignación es realizada automáticamente por el controlador "host" cada vez que se inicia el sistema o se añade, o elimina, un nuevo dispositivo en el bus), su ancho de banda, etc. Cuando se detecta un nuevo dispositivo es el host el encargado de cargar los drivers oportunos sin necesidad de intervención por el usuario. El sistema utiliza cuatro tipos de transacciones que resuelven todas las posibles situaciones de comunicación. Cada transacción utiliza un mínimo de tres paquetes, el primero es siempre un Token que avisa al dispositivo que puede iniciar la transmisión. • Transferencia de control ("Control transfer"): Ocurre cuando un dispositivo se conecta por primera vez. En este momento el controlador de host envía un paquete "Token" al periférico notificándole el número que le ha asignado. • Transferencia de pila de datos ("Bulk data transfer"): Este proceso se utiliza para enviar gran cantida de datos de una sola vez. Es útil para dispositivos que tienen que enviar gran cantidad de datos cada vez, como escáneres o máquinas de fotografía digital. • Transferencia por interrupción ("Interrupt data transfer"): Este proceso se utiliza cuando se solicita enviar información por el bus en una sola dirección (de la función al host). • Transferencia de datos isócrona ("Isochronous data transfer"): Este proceso se utiliza cuando es necesario enviar datos en tiempo real. Los datos son enviados con una cadencia precisa ajustada a un reloj, de modo que la transmisión es a velocidad constante. Nota: Las comunicaciones asíncronas ponen más énfasis en garantizar el envío de datos, y menos en su temporización ("cuando" lleguan); por su parte las comunicaciones isócronas son justamente lo contrario, ponen más énfasis en la oportunidad de la transmisión que en la velocidad. Esta sincronización es importante en situaciones como la reproducción de video, donde no debe existir desfase entre las señales de video y audio. §5 Cables y conectores El cable de bus USB es de 4 hilos, y comprende líneas de señal (datos) y alimentación, con lo que las funciones pueden utilizar un único cable.
  • 5. Existen dos tipos de cable: apantallado y sin apantallar. En el primer caso el par de hilos de señal Pin Nombre Descripción Color es trenzado; los de tierra y alimentación son rectos, y 1 VBUS + 5 V. CC rojo la cubierta de protección (pantalla) solo puede 2 D- Data - azul conectarse a tierra en el anfitrión. En el cable sin apantallar todos los hilos son rectos. Las conexiones 3 D+ Data + amarillo a 15 Mbps y superiores exigen cable apantallado. 4 GND Tierra verde Nota: Una forma de identificar que los concentradores (hubs) USB están realmente adaptados a la norma 2.0 es por su cable apantallado. Se utilizan diámetros estándar para los hilos de alimentación del AWG mm Ø Long. Máx. bus. Para cada sección se autoriza una longitud máxima del 28 0.321 0.81 m segmento. En la tabla izquierda se muestran estas distancias [3]; 26 0.405 1.31 m a la derecha se muestran la disposición de pines y colores de identificación. 24 0.511 2.08 m 22 0.644 3.33 m Se usan dos tipos de conectores, A y B. Ambos son polarizados 20 0.812 5.00 m (solo pueden insertarse en una posición) y utilizan sistemas de presión para sujetarse. Los de tipo A utilizan la hembra en el sistema anfitrión, y suelen usarse en dispositivos en los que la conexión es permanente (por ejemplo, ratones y teclados). Los de tipo B utilizan la hembra en el dispositivo USB (función), y se utilizan en sistemas móviles (por ejemplo, cámaras fotográficas o altavoces). En general podemos afirmar que la hembra de los conectores A están en el lado del host (PC) o de los concentradores (hubs), mientras las de tipo B están del lado de los periféricos. Conector tipo A Conector tipo B §6 Identificación y diagnóstico §6.1 Windows dispone de un programa específico para ver los puertos USB reconocidos y sus parámetros de configuración, es el programa Usbview.exe, que puede encontrarse en el CD de instalación de Windows 98, en el directorio ToolsReskitDiagnose
  • 6. En la figura se muestra el resultado de conectar distintos dispositivos a un hub externo colgado de una de las dos salidas USB que proporciona el hub raíz del sistema (señaladas Port1 y Port2). Los cuatro puertos están ocupados por los siguientes dispositivos: • Grabadora DVD • Disco de estado sólido (aparece como USB mass storage device) • Webcam • Scaner §6.2 Linux dispone de varias utilidades relacionadas con el manejo de estos puertos. La primera, usbview, una utilidad de interfaz gráfica GTK, que es un remedo exacto de la utilidad Windows comentada en el párrafo anterior (es raro que se instale por defecto, de modo que seguramente deberá instalarla ex profeso). Además de mostrar una vista jerárquica de los dispositivos conectados, informa de las particularidades de cada uno. Puede ser útil para comprobar si un dispositivo ha sido detectado y está funcionando correctamente. En cuanta a la operación en modo texto (desde el Sehell), como es casi seguro que si su equipo dispone de salidas USB, tenga su controlador de host conectado al bus PCI. Lo primero sería averiguar que dispositivos están conectados a esta interfaz. Para ello puede utilizarse el comando lspci, que produce una salida similar a la que sigue (se ha resaltado la información relacionada con el controlador de host USB que es lo interesante aquí). 00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03) 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) (prog-if 00 [Normal decode]) 00:02.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
  • 7. 00:02.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master]) 00:02.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI]) 00:02.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:03.0 CardBus bridge: Texas Instruments PCI1251B 00:03.1 CardBus bridge: Texas Instruments PCI1251B 00:06.0 Communication controller: Lucent Microelectronics WinModem 56k (rev 01) 00:07.0 Multimedia audio controller: ESS Technology ES1969 Solo-1 Audiodrive (rev 02) 01:00.0 VGA compatible controller: Neomagic Corporation NM2200 [MagicGraph 256AV] (rev 20) (prog-if 00 [VGA]) 02:00.0 Ethernet controller: Abocom Systems Inc RTL8139 [FE2000VX] CardBus Fast Ethernet Attached Port Adapter (rev 10) La indicación UHCI (o EHCI) se refiere al tipo de controlador USB utilizado en el Kernel. Si quiere ver los módulos relacionados con USB puede utilizar el comando lsmod | egrep -E 'usb|Size'. En nuestro caso produce la siguiente salida [6]: Module Size Used by Not tainted usbserial 20508 0 (autoclean) (unused) cpia_usb 4408 0 (autoclean) cpia 31736 0 [cpia_usb cpia_pp] usb-storage 65344 1 scsi_mod 98068 6 [sd_mod st sr_mod sg usb-storage] usb-uhci 22224 0 (unused) usbcore 58668 1 [usbserial scanner cpia_usb usb- storage usb-uhci] Como puede verse, usbcore es utilizado por los demás módulos USB (usbserial y usb- uhci). Los detalles de los dispositivos conectados pueden obtenerse con la utilidad lsusb. que proporciona una relación resumida: Bus 001 Device 001: ID 0000:0000 Bus 001 Device 002: ID 0409:0058 NEC Corp. USB2.0 Hub Controller Bus 001 Device 003: ID 152e:e003 Bus 001 Device 004: ID 0ea0:6803 Ours Technology, Inc. Bus 001 Device 005: ID 0553:0002 STMicroelectronics Imaging Division (VLSI Vision) CPiA WebCam Bus 001 Device 006: ID 03f0:0605 Hewlett-Packard ScanJet 2200c Aquí son significativas las indicaciones de número de bus y de dispositivo. Debemos recordar que el número de dispositivo depende del orden en que los encuentra el kernel. Si quiere ver los módulos (controladores) del Kernel asociados con un dispositivo USB conectado al Sistema, puede utilizar la utilidad usbmodules en la forma usbmodules -- device /proc/bus/usb/Bus/Device. En nuestro caso, para comprobar los utilizados por la WebCam se utilizaría la orden:
  • 8. usbmodules --device /proc/bus/usb/001/005 El resultado es cpia_usb. Análogamente se obtiene que los módulos del hub NEC y del disco sólido de Ours Technology son respectivamente usbcore y usb_storage. Si, como es el caso, existe más de un dispositivo conectado, puede utilizar la opción lusb -t, que proporciona una visión en árbol ("Tree") de las conexiones, similar a la obtenida con los programas de interfaz gráfica (GUI) ya comentados: us# 1 `-Dev# 1 Vendor 0x0000 Product 0x0000 `-Dev# 2 Vendor 0x0409 Product 0x0058 |-Dev# 3 Vendor 0x152e Product 0xe003 |-Dev# 4 Vendor 0x0ea0 Product 0x6803 |-Dev# 5 Vendor 0x0553 Product 0x0002 `-Dev# 6 Vendor 0x03f0 Product 0x0605 Con la información anterior es posible inspeccionar los detalles de cualquiera de los dispositivos mediante lsusb -v -s bus:device. En nuestro caso, para ver los detalles de la grabadora DVD (que no tiene identificación interna del fabricante), el comando: lsusb -v -s 001:003 proporciona los siguientes datos: Bus 001 Device 003: ID 152e:e003 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 Interface bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x152e idProduct 0xe003 bcdDevice 0.01 iManufacturer 1 HL-DT-ST DVDRAM GSA-5163D iProduct 2 Super Multi DVD Rewriter iSerial 3 4B13E216 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor:
  • 9. bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 8 Mass Storage bInterfaceSubClass 6 SCSI bInterfaceProtocol 80 Bulk (Zip) iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type none wMaxPacketSize 64 bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type none wMaxPacketSize 64 bInterval 0 Language IDs: (length=4) 0409 English(US) Entre otras características de menor importancia, podemos destacar la indicación Self Powered. Señala que el dispositivo dispone de su propia alimentación además de la que puede obtener de la interfaz. También el valor MaxPower (100 mA en este caso) que es la energía obtenida de la conexión USB. Nota: Recordemos que la intensidad máxima que puede proporcionar esta conexión es de 500 mA . De forma que si el dispositivo USB necesita más (como en el caso anterior), el fabricante debe recurrir a una fuente de alimentación externa. Sin embargo, he visto dispositivos de bajo precio, principalmente discos móviles USB, cuyas exigencias sobrepasan este límite [7], en los que, a fin de aprovechar la exigua cantidad de energía que puede obtenerse de la patilla 4 del conector mini-DIN de del puerto de teclado/ratón PS/2 ( 7.1), se ha recurrido a
  • 10. utilizar cables en "Y" como el que se muestra en la figura. El conector izquierdo es el conector USB tipo A normal del dispositivo; el derecho va conectado al contenedor ("Housing") del disco. El del centro es el referido conector mini-DIN. Puede observarse que, con el fin de que puedan seguir utilizándose el ratón o teclado en el referido puerto, es un conector "de paso". Personalmente creo que se trata de una verdadera chapuza, y aconsejo vívamente huir de dispositivos que adopten este sistema. También es digno de mención el mensaje bInterfaceSubClass 6 SCSI. Indica que el controlador USB realiza una emulación SCSI del dispositivo ( 6.3), de forma que el Sistema Operativo considera como tal la grabadora DVD. Podemos confirmarlo mediante el comando dmesg | grep scsi que proporciona la siguiente salida: scsi0 : SCSI emulation for USB Mass Storage devices Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0 sr0: scsi-1 drive También mediante el comando sginfo -l. que permite comprobar la asignación que le ha correspondido al dispositivo: /dev/scd0 /dev/sr0 /dev/sg0 [=/dev/scd0 scsi0 ch=0 id=0 lun=0] Nota: Esta emulación SCSI es frecuente en muchos dispositivos de almacenamiento de conexión USB. No solo en discos móviles; también cámaras, lectores de tarjeta, etc. En estos casos, para transferir sus contenidos (fotos) a Linux, solo es necesario montar el dispositivo y a continuación copiar los ficheros; bien mediante una interfaz gráfica o en modo texto mediante el Shell (mv o cp). Una vez montados en el sistema, es posible incluso utilizar estos dispositivos (cámaras por ejemplo) como sistemas auxiliares de almacenamiento pasándoles los ficheros correspondientes [8]. Si se desea conocer la distribución interna de la unidad puede recurrir a la utilidad fdisk. Por ejemplo, en otra ocasión se ha conectado un disco móvil USB. Las salidas a los comandos anteriores presentan el siguiente aspecto (# es el "Propt" del shell): # dmesg | grep scsi scsi0 : SCSI emulation for USB Mass Storage devices Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 # # sginfo -l /dev/sda /dev/sg0 [=/dev/sda scsi0 ch=0 id=0 lun=0] # # fdisk -l /dev/sda Disk /dev/sda: 10.0 GB, 10056130560 bytes 240 heads, 63 sectors/track, 1299 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes
  • 11. Device Boot Start End Blocks Id System /dev/sda1 * 1 271 2048728+ b Win95 FAT32 /dev/sda2 272 1299 7771680 f Win95 Ext'd (LBA) /dev/sda5 272 536 2003368+ b Win95 FAT32 /dev/sda6 537 801 2003368+ b Win95 FAT32 /dev/sda7 802 1066 2003368+ b Win95 FAT32 /dev/sda8 1067 1299 1761448+ b Win95 FAT32 # §6.4 Por su parte, el foro de desarrolladores USB (USB-IF), ha publicado diversas herramientas para comprobación de las características de los dispositivos USB, entre las que se encuentran las siguientes: • USBCV ("USB Command Verifier"). Es una herramienta de diagnóstico y verificación para comprobar que dispositivos USB de alta y baja velocidad se ajustan a las normas. • USB Check. Esta herramienta permite verificar dos enlaces; uno para comprobar dispositivos de alta velocidad funcionando a alta velocidad, y otro para comprobar dispositivos de velocidad completa y baja; también dispositivos de alta velocidad funcionando a velocidad completa. • USBHTT ("USB2 Hub Transaction Translator Test Suite"). Es una herramienta de verificación para concentradores USB 2.0. • USBHSET ("USB High Speed Electrical Test Tool Kit"). Este sistema de prueba contiene software y procedimientos diseñados para verificar diversos parámetros eléctricos, incluyendo la calidad de señal en dispositivos USB de alta velocidad. Incluye también procedimientos detallados para comprobación de controladores host, concentradores y funciones USB de alta velocidad. Este software también permite comprobar la calidad de señal en dispositivos de velocidad completa y baja, así como verificaciones de suministro energético. Estas herramientas están disponibles para su descarga en: www.usb.org SSTD ("Single Step Transaction Debugger"). Herramienta de depuración y desarrollo de bajo nivel que permite enviar transacciones simples a un dispositivo de alta velocidad. www.usb.org §7 Enlaces de interés Los enlaces que siguen pueden ser de interés si deseas ampliar conocimientos, buscas drivers, información, utilidades, solución de problemas, etc. sobre este puerto tan versátil y actual. USB-man www.usbman.com En palabras de sus creadores: "Free USB and USB 2.0 Help, Information, Tips, Tricks, Troubleshooting and Forum Board". Trace Systems www.tracesystemsinc.com
  • 12. Esta compañía comercializa tres herramientas: HIDmaker, un generador de código para comunicación de dispositivos mediante USB; USB Watch, una herramienta de diagnóstico que incluye un analizador de tráfico, y AnyHID, un programa de test para dispositivos HID [5]. USB-Info http://lpt.usbfireinfo.com/ Este portal ofrece distintas utilidades para utilización, verificación y diagnóstico del puerto USB.