Documente Academic
Documente Profesional
Documente Cultură
JULIO 2009
MS-DOS
facilidad
Windows 95
PCI
ISA
?
facilidad
1
PCMCIA
USB - Universal Serial Bus: Dispositivo que permite conectar amplia variedad de perifricos fcilmente a computadores, sin reiniciar ni volver a configurar. Los dispositivos con USB se configuran automticamente tan pronto como se han conectado. Se pueden unir dispositivos en una cadena para conectar ms dispositivos.
transmite una unidad de informacin a la vez. Puede trabajar en dos modos (Especificacin 1.1): - 1,5 Mbps (teclados, ratones) - 12 Mbps (CDROM, altavoces)
Compacto: cable de 4 hilos, 2 para datos y 2 para alimentacin Organiza el bus en estructura de rbol
3
configuracin idntico, incluso un mismo driver sirve para varios dispositivos diferentes.
PlugnPlay (conectar y listo): No tenemos que tocar nada en el hardware y todo es configurable por software.
requieran grandes rangos de transmisin ancho de banda (<12 Mbps, tambien con la opcin de transmisiones a 1.5 Mbps) - ratones, teclados, lectores de CD de baja velocidad (x4, x6), unidades de disquete - tarjetas de video, tarjetas de red a 100 Mbps, discos duros USB 2.0 : 30 o 40 veces ms rpido (360 a 480 Mbps) - conexiones a internet de banda ancha, escneres...
HOST USB:
- Es el computador mismo, concretamente una parte del mismo denominado Controlador USB del Host - Tiene la misin de hacer de interfaz entre el computador y los diferentes dispositivos - Su implementacin es una combinacin software y hardware todo en uno, es decir Firmware.
- Es responsable a nivel hardware dentro del sistema USB de detectar y configurar nuevos dispositivos
- Administra y controla el flujo de datos y de control entre el host y los dispositivos USB.
10
HOST USB:
A nivel de software se encarga de: Enumeracin y configuracin de los dispositivos del sistema. Administracin de control de transferencias de informacin. Administracin avanzada de suministro elctrico a los dispositivos (hasta 500 mA). Administracin de la informacin del bus y los dispositivos USB.
12
A nivel de software: Enumeracin y configuracin de los dispositivos del sistema Administracin de control de transferencias de informacin
FUNCIONES USB: Son todos los dispositivos que pueden conectarse al bus USB, a excepcin de los hubs (ratn, monitor, mdem) Son capaces de recibir y transmitir informacin, ya sea del usuario o de control
11
Ejemplo: Un monitor USB podria tener 3 conectores para teclado, ratn y altavoces; por su parte, el teclado podria tener otro conector para un joystick, y as sucesivamente.
15
17
18
Conexin punto a punto Las comunicaciones son inicializadas por el root hub La sealizacin es half-duplex No manda el clock, transmisin asncrona, (se manda en la trama) Transmisin empaquetada. Transmisin a 12 MHz, pero muestreo de las seales a 48 MHz (mejora de la calidad).
19
Informacin
Sync: sequencia 10101011 , para sincronizar el reloj. El primer byte contiene el Packet Identifier. Diferentes tipos de paquetes. El tamao de la informacin varia de 1 a 1025 bytes.
22
El Bus Serial Universal (USB) transfiere seales de informacin y energa a travs de 4 cables
23
Este sincronismo es transmitido en la misma seal codificada bajo el esquema del NRZI
24
Los cables del USB permiten abarcar distancias desde unos centmetros hasta varios metros Distancia mxima entre USBs: 5 metros Los cables USB tienen protectores de voltaje los cuales al mismo tiempo detectan los nuevos dispositivos conectados
25
Obedece a la especificacin USB V2.0 Soporta comunicacin Low Speed (1.5 Mb/s) y Full Speed (12 Mb/s) compatible con la Maquina de Interfaz Serial (SIE) que permite la comunicacin rpida entre algun Host USB y el PIC. Soporta transferencias de Control, Interrupcin, Iscronas y Masivas Soporta hasta 32 endpoints (16 bidireccional) Acceso dual de 1-Kbyte RAM para USB Incorpora su propio transceiver USB on-chip y un regulador de 3.3V Soporta el uso de transceivers externos y reguladores de voltaje.
26
FSEN: Full Speed UPUEN: Res. Pull-up UTRDIS: Des.Transceiver VM: Entrada DVP: Entrada D+ RCV: Entrada SIE VMO: Salida SIE VPO: Sallida SIE
27
La operacin del modulo USB esta configurado y manejado por 3 registros de control. Asimismo, un total de 19 registros son utilizados para el manejo de las transacciones USB, entre ellos estan:
Registro de Control USB (UCON) Registro de Configuracin USB (UCFG) Registro de Estado de transferencia USB (USTAT) Registro de Direccin del dispositivo USB (UADDR) Registros de Nmeros de Trama (UFRMH:UFRML) Registros de Habilitacin de puntos terminales del 0 al 15 (UEPn)
28
Programacin de la aplicacin para el PIC Programacin de la aplicacin para PC Edicin del Driver suministrado por Microchip
En el sumador se introducen dos nmeros del 00 hasta el 99, luego se envan al PIC en donde se procesar la suma, devolviendo entonces el resultado que se mostrar en la tercera casilla. Por otro lado se tienen los botones, Leds Off, Led Verde On y Led Rojo On, que envan el cdigo correspondiente para cada uno de los casos.
29
PicUSB.h: Este archivo contiene la configuracin del dispositivo USB y los descriptores de:
pic18_usb.h: Driver del Pic USB del CCS que lo provee Microchip para la serie PIC18Fxx5x
usb_init() - Inicializa la pila USB y los perifericos. Habilita las interrupciones. Prototipo: usb_init(); usb_init_cs() - Es mas pequeo que usb_init() y no engancha las unidades al bus USB, ni habilita las interrupciones. Prototipo: usb_init_cs(); usb_put_packet() - Enva un paquete a el Host. Prototipo: usb_put_packet(endpoint,*ptr,len,toggle);
30
usb_kbhit() - Retorna TRUE si el punto terminal de salida contiene un dato de el Host. Prototipo: usb_kbhit(endpoint); usb_get_packet() Obtiene un paquete de el Host. Prototipo: usb_get_packet(endpoint,*ptr,max); usb_detach() Desengancha USB del sistema. Prototipo: usb_dettach(); usb_attach() Engancha USB a el sistema Prototipo: usb_attach();
usb_attached() - Retorna TRUE si el dispositivo esta enganchado a el cable USB Prototipo: usb_attached();
usb_task() Habilita los perifricos y luego habilita las interrupciones Prototipo: usb_task();
31
usb_enumerated() Retorna TRUE si el dispositivo ha sido enumerado por el Host, FALSE si no lo ha sido. Prototipo: usb_enumerated() ; usb_wait_for_enumeration() Se mantiene en una lazo infinito hasta que el dispositivo sea enumerado. Prototipo: usb_wait_for_enumeration(); usb_puts() Envia mltiples paquetes mensaje a el Host. Prototipo: usb_puts(endpoint, *ptr, len, timeout);
usb_gets() Recibe mltiples paquetes de el Host. Prototipo: usb_gets(endpoint, ptr, max, timeout);
32
USB.h: Se encuentran los prototipos y las definiciones usados por el driver del compilador CCS.
USB_MAX_EP0_PACKET_LENGTH (num) Tamao mximo del paquete para el Endpoint 0. USB_EPx_RX_ENABLE (Tipo de transferencia) RX (PC a el dispositivo) Tipos de transferencias:
USB_EPx_RX_SIZE (non 0) Espacio de memoria reservado para la recepcin de paquetes. USB_EPx_TX_ENABLE (Tipo de transferencia) TX (dispositivo a el PC). USB_EPx_TX_SIZE (non 0) Espacio de memoria reservado para la transmisin de paquetes.
33
Al conectar el dispositivo USB al PC, se enciende el Led Rojo hasta que el dispositivo halla sido configurado por el PC, en ese momento se enciende el Led Verde. Espera hasta que reciba un paquete proveniente del PC, de este paquete se comprueba que el primer byte recibido (MODO) sea 0 o 1. Si es 0 entra al modo Suma, donde se realizar una suma de dos operandos, que correspondern a los dos bytes restantes del paquete recibido, una vez realizada la suma enviaremos el paquete con el resultado de vuelta al PC. Si es 1 entra al modo Led, se comprueba el segundo byte del paquete recibido y se verifica si se deben apagar los leds, encender el rojo o el verde.
34
La API del host se entrega en forma de libreras de enlace dinmico para Windows (DLL). La interfaz DLL del host se comunica con el dispositivo a travs del driver instalado y de la pila USB del sistema.
o o
MPUSBGetDLLVersion: Obtiene el nivel de revisin de la mpusbapi.dll DWORD_MPUSBGetDLLVersion(); MPUSBGetDeviceCount: Retorna el num. de dispositivos conectados (VID & PID). VID = 0x04d8 (Microchip) MPUSBGetDeviceCount(string pVID_PID);
35
MPUSBOpen: Retorna el handle del endpoint que coincida con VID & PID Instance (Input) pVID_PID (Input) pEP (Input) dwDir (Input) void*_MPUSBOpen(DWORD instance, string pVID_PID, string pEP, DWORD dwDir, DWORD dwReserved);
MPUSBRead: Recibe en un buffer los datos ledos y el tamao desde buffer Handle (Input) pData (Output) dwLen (Input) pLength (Output) dwMilliseconds (Input) DWORD_MPUSBRead(void*handle, void*pData, DWORD dwLen, DWORD*pLength, DWORD dwMilliseconds);
36
MPUSBWrite: Enva los datos y el tamao hacia el buffer Handle (Input) pData (Input) dwLen (Input) pLength (Output) dwMilliseconds (Input) DWORD_MPUSBWrite(void*handle, void*pData, DWORD dwLen, DWORD*pLength, DWORD dwMilliseconds); MPUSBClose: Cierra el handle correspondiente. bool_MPUSBClose(void*handle);
37
El USB permitir reducir costes de los perifricos ya que no requiere tarjetas adicionales ni transformadores de energa Sigue una especificacin orientada a la comodidad de los usuarios y a la facilidad del manejo por personas sin formacin tcnica Con la introduccin del USB se consigue que las computadores tengan acceso a la instalacin de perifricos de forma segura y rpida
38
Internet www.microsoft.com/hwdev/usb/ www.lvr.com/usb.htm Libros USB Complete (Second edition) Jan Axelson Ed.Lakeview Research USB design by example a practical guide to building I/O devices John Hyde
39