200 likes | 341 Views
USB en Windows. Propósito. Tratamos aquí la relación de la interfaz USB con el Sistema Operativo. Para ello vamos a observar todos los pasos que tienen lugar desde que se inserta un dispositivo en el bus hasta que una aplicación de usuario puede acceder al dispositivo.
E N D
Propósito • Tratamos aquí la relación de la interfaz USB con el Sistema Operativo. Para ello vamos a observar todos los pasos que tienen lugar desde que se inserta un dispositivo en el bus hasta que una aplicación de usuario puede acceder al dispositivo.
Enumeración de los dispositivos • La enumeración es el proceso por medio del cual el dispositivo es integrado en el sistema.
1.- El usuario inserta el dispositivo en el enchufe usb.2.- El hub detecta el dispositivo.
3.- El host conoce la existencia del nuevo dispositivo. - Get_port-status request • (Todo dispositivo tiene que responder a un conjunto de peticiones por medio de las cuales el sistema es capaz de identificar las características del dispositivo)
Comandos que debe admitir el dispositivo USB desde el driver
Drivers en el S.O. • En el host existe una pila de drivers que gestionan el uso y la configuración de USB. • Los Bus Drivers son los encargados de el trabajo administrativo: • -root-hub driver (se encarga de las inicializaciones) • -bus-class driver (se encarga de la enumeración y las transacciones) • -host-controller driver (se encarga del acceso al medio)
Llamadas a funciones API de Win32 APLICACIONES ENTORNO DE USUARIO Paquetes de solicitud de I/O Aplicaciones SUBSISTEMA WIN32 Paquetes de solicitud de I/O Aplicaciones DRIVERS DE FUNCION NUCLEO DEL S.O. Aplicaciones DRIVERS DE BUS Interfaz específica con el hardware Aplicaciones HARDWARE
APLICACIONES FILTRO SUPERIOR Añaden características específicas A la clase DRIVER DEFINIDO POR EL USUARIO PARA MANEJAR HARDWARE ESPECÍFICO DRIVER DE CLASE DEFINIDOS PARA CLASES ESTÁNDARES FILTRO INFERIOR Añaden características específicas A la clase USB HUB DRIVER (USBHUB.SYS) (inicializa los puertos) USB BUS-CLASS DRIVER (USBD.SYS) (gestiona transacciones, alimentación, enumeración) HOST CONTROLLER DRIVER (UHCI.SYS, OPENHCI.SYS, EHCI.SYS) (se comunican con el hardware
4.- El hub detecta si un dispositivo es de baja o alta velocidad: • Actualmente se soportan tres velocidades: • baja: 1.5 Mb por segundo • full, 12Mb por segundo • High (2.0): 480Mb. (IEEE-1394 400 Mbps y 3.2Gbps)
5 el hub resetea el dispositivo • Set_Port_Feature • 6 el host identifica la velocidad del dispositivo. • Low • Full • High
7.-El hub establece una vía entre el dispositivo y el bus. • 8.- El host envía un Get_Descriptor • Máximo tamaño de paquete por el default pipe
Descriptores • Los dispositivos organizan la información en torno a descriptores jerárquicos. • Estos descriptores informan de características sobre el dispositivo, y luego más específicamente sobre las funciones que este ofrece
9.- El host asigna una dirección. • Set_Address • (a partir de este momento el dispositivo responde a su dirección) • 10.- El host se informa acerca de las capacidades del dispositivo. • Get_Descriptor
11.- El host asigna y carga el driver del dispositivo.12.- El driver del dispositivo selecciona una configuración. Set_Configuration. • El device driver o Function Driver es una interfaz de cara a la aplicación. • Ofrece a las aplicaciones un formato estándar de acceso a los dispositivos CreateFile, ReadFile, WriteFile.
Selección del driver Con los datos del Descriptor del driver • Vendedor • Producto • Clase • Subclase Explora los archivo *.inf del sistema (C:\WINDOWS\inf) que describen los drivers existentes. Si coincide alguno, lo selecciona.
Acceso al driver por la aplicación • La aplicación accede al driver por medio de las API de Windows (???) • CreateFile (abre un dispositivo de comunicación) • ReadFile (lee del dispositivo) • WriteFile (Escribe en el dispositivo)
fin USB Complete 2º Ed. Everything you need to develop custom USB peripherals... Jan Axelson Lakeview Research Usb in a nutshell Craig Peacock 2002 USB 1.1 specification