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 comunmente 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 simultanea, 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 tipo 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 es trenzado; los de tierra y alimentación son rectos, y la cubierta de protecció (pantalla) solo puede conectarse a tierra en el anfitrión. En el cable sin apantallar todos los hilos son rectos. Las conexiones a 15 Mbps y superiores exigen cable apantallado.
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 bus. Para cada sección se autoriza una longitud máxima del segmento. En la tabla izquierda se muestran estas distancias [3]; a la derecha se muestran la disposición de pines y colores de identificación.
Se usan dos tipos de conectores, A y B. Ambos son polarizados (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 Tools\Reskit\Diagnose
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.
[1] En realidad, más que de "deficiencias" deberíamos decir "imprevisiones" en un diseño que fue rápidamente sobrepasado por su propio éxito. Algo que, por otra parte, ocurre con mucha frecuencia en los diseños informáticos.
[2] Algunos dispositivos pueden ser de los dos tipos al mismo tiempo. Por ejemplo, una pantalla USB (función) puede ser a su vez un concentrador con dos o más conexiones auxiliares para conectar otros dispositivos.
[3] AWG ("American Wired Gauge"). Un sistema de medir diámetros de cables utilizado en USA y otros países. A mayor número el diámetro es más pequeño. Más información en "Medida de los conductores" ( 12.4.2a).
[4] El consejo directivo está formado por representantes de las siguientes compañías: Compaq Computer Corporation; Hewlett-Packard; Intel Corporation; Lucent Technologies; Microsoft Corporation; NEC Corporation y Philips.
[5] HID ("Human Interface Device"). Se refiere a dispositivos USB que cumplen la especificación HID, una ampliación de la norma USB para facilitar a los fabricantes la construcción de este tipo de dispositivos. La norma especifica como deben extraer los datos de los dispositivos USB los drivers HID. Más información en http://www.usb.org/developers/hidpage/
[6] El argumento "Size" es para que incluya la línea de cabecera.
[7] Los discos estándar de 2.5 pulgadas que suelen montar estos dispositivos, tienen un consumo típico de 500 mA. Aunque en los momentos de arranque y de "Seeking" pueden exceder momentáneamente dicho valor.
[8] En palabras de Ian Shields, "Linux allow your camera to be used as an exotic replacement for a floppy disk". -IBM Hardware and architecture. Junior Level Administration (LPIC-1) topic 101.