Bus Serie Universal
Gómez, J. C.; Escudero, G. Centro de Investigación y Desarrollo en Telecomunicaciones, Electrónica e
Informática (CITEI)
INTRODUCCIÓN Y OBJETIVOS
Como consecuencia de las complicaciones que se generan al instalar y configurar nuevos periféricos en una computadora personal (PC), surgió la necesidad de buscar sistemas que realicen esta tarea de una forma mas simple y sin depender del grado de experticidad del usuario.
Como respuesta a esta inquietud un conjunto de empresas implementaron una especificación conocida como Universal Serial Bus (USB) [1]. Esta normativa describe las características de un bus serie de alta velocidad que permite conectar simultáneamente hasta 127 dispositivos periféricos a una PC.
Se considera al USB como el paso necesario para convertir por completo a la PC en un sistema Plug & Play, puesto que basta simplemente con conectar el dispositivo al port correspondiente y la computadora automáticamente lo detecta, instala el driver apropiado y lo configura.
Con el objetivo de incorporar esta tecnología en los desarrollos que habitualmente se llevan a cabo en nuestro centro, se realiza un dispositivo USB de propósitos generales que permite implementar diferentes clases de dispositivos.
MATERIALES Y MÉTODOS
Acorde al objetivo propuesto, se comenzó por el estudio de la norma y se consultó bibliografía[2] y artículos específicos sobre el tema.
Como resultado de las investigaciones preliminares se decidió centrar el trabajo en los dispositivos de la clase Human Interface Device (HID). Estos poseen las características necesarias para que el usuario interactúe con una PC. Además, los drivers para los mismos están ya incluidos en el sistema operativo.
Se seleccionó un circuito integrado controlador USB1 para construir el hardware necesario para la realización del trabajo. La función del mismo es, por un lado proveer los niveles eléctricos de las señales que intervienen en la comunicación, y por otro llevar el control de la misma acorde al protocolo, facilitando así la conexión con un microcontrolador de uso habitual.
Hecho esto se pasó a diseñar las rutinas básicas del software del microcontrolador para lograr la correcta interconexión con el controlador USB. Esta es la primer etapa para lograr una comunicación con la PC.
Cuando un dispositivo USB se conecta a una PC comienza un dialogo entre ellos conocido como enumeración, en el cual la PC interroga al dispositivo para identificarlo y conocer sus características, por ejemplo: tipo de dispositivo, forma en que envía la información, etc. Se amplió el software para que lleve a cabo la enumeración de forma tal que el dispositivo fuera reconocido por la PC.
Una vez logrado esto quedó sentada la base para agregar funcionalidad al dispositivo, ya que a grandes rasgos se puede decir que esta parte es común para una amplia gama de los mismos.
Como paso siguiente se construyeron diferentes clases de dispositivos con grado de complejidad creciente:
Joystick.
Teclado (Keypad).
Adquisidor de datos.
En los dos primeros casos se utilizó la definición del tipo de dispositivo descripta por la norma HID[3]. De esta manera el driver USB intercepta los datos provenientes del dispositivo estándar y los direcciona al controlador correspondiente.
1 USBN9603 National Semiconductor
4º Jornadas de Desarrollo e Innovación, Noviembre 2002
1
Para el último caso se empleó la opción que la norma brinda para que un fabricante defina su propio tipo de dispositivo. Haciendo, de esta manera, que la aplicación desarrollada por el fabricante, busque e interprete los datos.
Una vez establecida la comunicación entre el dispositivo y la PC, fue necesario desarrollar herramientas para permitir la depuración del software de los dispositivos construidos, lo cual se realizó en Visual C++ para sistema operativo Windows y utilizando el soporte brindado por el Driver Development Kit ( DDK ) de Microsoft.
Estas herramientas permitieron en principio verificar la correcta enumeración del dispositivo y en una etapa posterior corroborar su correcto funcionamiento.
Para la realización de las mismas se estudió la estructura que dentro del sistema operativo Windows soporta una interfáz USB.
base para desarrollar diferentes tipos de dispositivos.
Se desarrollan y prueban los tres dispositivos ya mencionados.
Para los dos primeros casos, se comprueba su funcionamiento mediante los drivers y aplicaciones estándar del sistema operativo.
Para el caso del adquisidor de datos se construye una aplicación específica y se verifica su correcto funcionamiento.
Con la construcción del prototipo quedan las bases para construir en un futuro dispositivos que incorporen la interfáz USB.
Referencias
[1] USB Implementers’ Forum, “Universal Serial Bus Specification”, Revision 1.1 [2] John Hyde, “USB Design by Example”, John Wiley & Sons, Inc. 1999. [2] USB Implementers’ Forum, “Device Class Definition for Human Interface Devices (HID) – Firmware Specification”, Version 1.1, 4/7/99.
RESULTADOS Y CONCLUSIONES
Se logra la construcción de un Hardware y su Firmware asociado, que sirve como
Para mayor información contactarse con:
Gustavo Escudero - tavo@inti.gov.ar Juan Carlos Gómez - juanca@inti.gov.ar
Volver a página principal
2
4º Jornadas de Desarrollo e Innovación, Noviembre 2002
Ver+/-