Vous êtes sur la page 1sur 10

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

INTERFACE DE TRANSFERENCIA DE DATOS A TRAVS DEL BUS USB


Ing.Pedro Ignacio Martos, pmartos@fi.uba.ar Facultad de Ingeniera, Universidad de Buenos Aires
Resumen: En aplicaciones de control que requieren que el procesamiento de la informacin se realice en una computadora personal (PC) la velocidad de transferencia de datos desde y hacia la computadora puede ser un factor limitante. Para superar esta limitacion se propone utilizar el bus USB como interface. En este articulo se muestra un ejemplo aplicado al control de un brazo robot y como el cambio a una interface USB permite mejorar la tasa de transferencia de datos entre la computadora y el sistema de control del brazo robot. Palabras clave: USB, universal serial bus, transferencia serie.

1. Descripcin del sistema El sistema Brazo Robot consiste en un manipulador robtico de seis grados de libertad controlado por una PC para ser utilizado en aplicaciones didcticas y como ayuda para personas con discapacidades motrices. Esquemticamente puede representarse de la siguiente manera:

Alimentacion de Actuadores

Computadora (PC)

Comunicacin de datos

Interface de Control y Potencia


Posicion de articulaciones

Manipulador Robtico (sensores y actuadores)

Manipulador robtico: El manipulador robtico consiste en seis articulaciones movidas por motores de corriente continua con encoders de posicin en el eje del cada motor. Estos motores son alimentados desde la Interface de Control y Potencia para regular la alimentacin del motor y asi controlar la posicin final del eje del mismo. Para ello la interface de control y potencia recibe informacin de la posicin de las articulaciones en forma de pulsos generados por los encoders conectados al eje de cada motor. Interface de control y potencia: La interface de control y potencia consiste en dos elementos: Una fuente de alimentacin de corriente continua de potencia utilizada para la alimentacin de los motores del manipulador. Una interface de control realizada con circuitos integrados LM629 (controladores PID de motores) y L297 (puentes H para control de motores de corriente continua)

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

Esta interface se conectaba directamente a la computadora y reciba las constantes necesarias para realizar un control PID de la posicin final del eje del motor. Computadora: La funcin de la computadora es analizar la informacin de la posicion de las articulaciones y generar las constantes de control adecuadas a la trayectoria que se desea que realice el manipulador. Para ello le enva a la interface de control las constantes PID para el motor de cada articulacin y la posicin final deseada de dicha articulacin. Los controladores LM629 utilizan estas constantes para generar la curva de velocidad del eje del motor que permite alcanzar la posicin final establecida. 2. Descripcin de la actual interface de comunicacin de datos La Interface de Comunicacin de Datos estaba centrada en el circuito integrado i8255 PPI (Parallel Port Interface) de Intel, el cual proporciona 24 lineas de entrada/salida y su interface a la PC se realiza a travs del bus ISA. Las 24 lineas de entrada/salida del C.I. i8255 se utilizaban para generar las seales de control y datos que utilizan los circuitos integrados LM629 de la Interface de Control y Potencia. Esta interface posea las siguientes limitaciones: Al estar basada en el bus ISA, era necesaria su actualizacin frente a la ausencia de este bus como puerto de expansin en las computadoras actuales. La interface se colocaba dentro del gabinete de la PC, por lo que desde la PC salan 24 seales con informacin de control y datos. Esto implicaba el uso de cables multihilo de 24 hilos de ms de 2 metros de largo, con gran riesgo de rotura del mismo. La evolucin de la familia de sistemas operativos Microsoft Windows lleva a que las aplicaciones no puedan acceder directamente al hardware, sino solo a travs del sistema operativo y mediante programas controladores especficos, por lo que la interface actual no seria accesible en forma directa utilizando las nuevas versiones de los sistemas operativos Microsoft Windows, limitandose al uso de Windows ME. En base a estas limitaciones, se plante redisear la interface de comunicacin de tal manera que cumpliera con los siguientes objetivos: La interface deberia poder colocarse fuera de la PC, preferentemente integrada a la interface de control y potencia. La transferencia de datos entre la interface y la computadora debera ser a travs de una conexin serie. La interface de comunicacin debera comunicarse con la PC a travs de un bus estndar de las PC actuales. Las aplicaciones deberan poder acceder a la interface de una manera simple y directa, utilizando llamadas a funciones del sistema operativo y/o programas controladores que formen parte del mismo.

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

3. Arquitectura de hardware de la nueva interface de comunicacin de datos La interface usb implementada consisti en el agregado de un circuito integrado USBN9603 que implementa el protocolo USB y tiene una interface compatible con microcontroladores de 8 bits para su gestin. Asimismo se agreg un microcontrolador 8051 que gestiona la informacin recibida desde la PC a travs de la interface USB y transfiere esa informacin a los controladores LM629 de la Interface de Control y Potencia, de acuerdo al siguiente diagrama:
Bus USB

Interface USB

PC
Bus de datos Bus de direcciones Microcontrolador Bus de control Bus de comunicacin Interface de Control y Pontencia

Interface USB implementada PC: computadora que realiza el clculo de las constantes necesarias para el control PID de los motores del brazo robt. USB: Bus serial standard de la PC mediante el cual se realiza la comunicacin entre la interface USB implementada y la PC. Interface USB: Dispositivo que permite la comunicacin entre el microcontrolador y la PC a travs del bus USB. La PC v a la interface USB como un dispositivo USB y el microcontrolador la v como una memoria RAM. Bus de datos: La transferencia de informacin entre la interface USB y el microcontrolador se realiza sobre este bus. Bus de direcciones: El microcontrolador utiliza este bus para seleccionar los diferentes registros de la interface USB. Bus de control: Mediante este bus se realiza la solicitud de transferencias de datos entre la interface USB y el microcontrolador. Bus de comunicacin: Bus por el que se realizan las transferencias de informacin entre la interface de control y potencia y la interface USB. Interface de control y potencia: Interface que realiza el control y accionamiento de los motores del brazo robot 4. Arquitectura de software de la nueva interface de comunicacin de datos Al definirse una nueva interface, se hizo necesario desarrollar una nueva arquitectura de software del sistema, para que la aplicacin que realiza el control del brazo robt se comunique con el hardware a travs del bus USB. A fin de simplificar el desarrollo de software, se hizo que la interface usb implementada emulara un dispositivo HID (Human Interface Device), para el cual el sistema operativo Microsoft Windows provee controladores standard.

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

De esta manera, la arquitectura del software implementado, junto con su relacin con los componentes de hardware, tiene la siguiente estructura:

Aplicacin File Handler User Mode Kernel Mode HID Driver

URBs USB Driver

I/O Control Requests PCI Driver + HAL

Configuracin Registros de Hardware PCI Bus Manager

Bus PCI USB Host

Bus USB Interface USB

Microcontrolador Firmware

Componentes de Software a desarrollar Componentes de Software del sistema operativo Componentes de Hardware

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

Aplicacin: Es el componente de software que calcula las constantes PID de los motores de acuerdo a la posicin, se debi modificar para trasmitir y recibir informacin a travs del bus USB. File Handler: La aplicacin se comunica con los controladores (drivers) del sistema operativo a travs de una abstraccin que consiste en considerar a todos los dispositivos de hardware como archivos, de los que se puede recibir o enviar bytes. El File Handler de un dispositivo es un identificador que el sistema operativo provee a las aplicaciones para comunicarse con ese dispositivo HID Driver: Es el controlador del sistema operativo encargado de gestionar los dispositivos HID. URBs: El controlador HID se comunica con el controlador USB a travs de estructuras denominadas URB (USB Request Block), que contienen toda la informacin necesaria para la transferencia de datos desde y hacia el dispositivo USB. USB Driver: Es el controlador del sistema operativo encargado de gestionar los dispositivos USB I/O Control Requests: El controlador USB se comunica con el controlador del bus PCI y la HAL del sistema operativo a travs de llamadas a funciones denominadas I/O Control Request. Estas funciones son las encargadas de recibir y devolver la informacin entre el hardware y el controlador del bus cuando este es distinto del bus de sistema (normalmente el bus PCI). PCI Driver + HAL: El controlador PCI es el controlador del sistema operativo encargado de gestionar el bus PCI, e indirectamente, todos los perifricos conectados a l. La HAL (Hardware Abstraction Layer) es el componente del sistema operativo que se encarga de transferir informacin desde y hacia el hardware. Su funcin es presentar una abstraccin de todo el hardware sobre el que corre el sistema operativo, de tal manera de ocultar las diferentes implementaciones de hardware (circuitos integrados de diferentes fabricantes para una misma funcin, diferentes implementaciones de buses, etc.) Configuracin de registros de hardware: La HAL configura a los componentes de hardware mediante la lectura y escritura de sus diferentes registros de configuracin y control. PCI Bus Manager: Es el componente de hardware encargado de generar las diferentes seales elctricas que componen la trasmisin de informacin en el bus PCI. Bus PCI: Es el bus principal del sistema. Todos los dispositivos de hardware estan directa o indirectamente conectados a este bus. USB Host: Es el componente de hardware que realiza un puente para pasar la informacin desde el bus PCI al bus USB. Esta conectado al bus PCI y se encarga de generar las seales elctricas para trasmitir informacin a travs del bus USB Bus USB: Es el bus al que esta conectada la interface USB.

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

Interface USB: Es la interface de comunicacin entre la PC y la interface de control y potencia del brazo robt Microcontrolador: Es el componente de hardware que comanda la interface USB y la gestiona de tal manera que para la PC y su sistema operativo se trata de un dispositivo HID. Firmware: Es el componente de software de la interface USB. Es responsable de convertir la informacin proveniente de la interface de control y potencia del brazo robot en informacin que la PC interpreta como proveniente de un dispositivo HID y viceversa. 5. Implementacion Hardware La implementacin de la interface USB se realizo con componentes standard, excepto el C.I. USBN9603, que solo se provee en encapsulado de montaje superficial. Como microcontrolador se utiliz el AT89S52, por poseer 8KB de memoria FlashRom y ser de facil obtencin en el mercado local. En las siguientes imgenes se observa el diagrama de circuito.

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

Sofware La implementacin del firmware del microcontrolador corresponde al siguiente diagrama de estados:

Encendido del dispositivo

Inicializacin

Conexin al bus USB

Identificacin del dispositivo

Recepcin comando

Dispositivo listo para procesar comandos

Dispositivo reconocido y configurado por el bus USB

Identificacin y validacin del comando

Comando de lectura

Comando Invalido

Comando de escritura

Lectura de datos Bus Comunicacio nes

Trasmisin comando no valido Bus USB

Escritura de datos Bus Comunicacio nes

Trasmisin de dato Bus USB

Trasmisin Resultado operacin Bus USB

Los distintos bloques del diagrama representan los siguientes estados: Encendido del dispositivo: Este estado inicial sucede cuando la interface USB es energizada a travs de una alimentacin externa de 12Vcc. Inicializacin: Luego del encendido, se procede a la inicializacin de los registros internos del dispositivo, fijacin de valores iniciales de variables globales, y se invoca a la rutina de inicializacin de la interface USBN9603 Conexin al bus USB: La rutina de inicializacin de la interface USBN9603 configura la misma para la comunicacin mediante el EndPoint 0 (EP0Bidirectional, Control Transfers) para la gestin del dispositivo por parte de la PC y mediante dos EndPoints de los ocho disponibles en la interface para la transferencia de datos entre la interface USB y la PC (EP1-IN, Interrupt Transfer y EP1-OUT, Interrupt Transfer). Una vez hecho 7

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

esto, configura al dispositivo para que se identifique en el bus USB. Este proceso se conoce como Node Attach en la terminologia de la especificacin USB Identificacin del dispositivo: La identificacin por parte de la PC del nuevo dispositivo incorporado al bus USB (denominada device enumeration) comprende la descripcin del dispositivo, el tipo de transferencias que acepta, el tamao mximo de datos por transferencia y la frecuencia de la misma. El dispositivo puede tener distintas combinaciones de estos datos, a fin de poder identificarse correctamente bajo distintas condiciones del bus. Dispositivo reconocido y configurado por el bus USB: Si el bus usb puede cumplir con alguna de las combinaciones de requerimientos que le ofrece el dispositivo, le comunica cual de ellas le asigna y lo pasa al estado de configurado. Dispositivo listo para procesar comandos: una vez configurado el dispositivo, este puede realizar transferencias de datos con las aplicaciones de la computadora a la que esta conectado, ya que hasta este momento solo interactuaba con el sistema operativo. Recepcin comando: en este estado se ha producido una transferencia de datos desde la computadora al dispositivo Identificacin y validacin del comando: una vez recibidos los datos, el firmware verifica que sea un comando reconocido (de lectura, escritura o establecimiento de valores en el puerto paralelo disponible en la interface) Comando de lectura: una vez validado el comando de lectura, el microcontrolador realiza una operacin de lectura sobre el bus de comunicaciones Lectura de datos Bus de Comunicaciones: para la lectura de datos en el bus de comunicaciones el microcontrolador sincroniza las seales correspondientes y accede a los registos de acuerdo a los requerimientos del comando de lectura Trasmisin de datos Bus USB: una vez realizada la lectura sobre el bus de comunicaciones, el microcontrolador configura la interface USBN9603 para transferir el dato leido a travs del bus USB y realiza la transferencia del mismo. Comando invalido: si el comando recibido no es reconocido, el mismo es descartado y se le comunica a la computadora esta situacin. Trasmisin comando invalido Bus USB: una vez reconocido el comando invalido, el microcontrolador configura la interface USBN9603 para transferir esta informacin a travs del bus USB y realiza la transferencia de la misma. Comando de escritura: una vez validado el comando de escritura, el microcontrolador realiza una operacin de escritura sobre el bus de comunicaciones Escritura de datos Bus de Comunicaciones: para la escritura de datos en el bus de comunicaciones el microcontrolador sincroniza las seales correspondientes y accede a los registos de acuerdo a los requerimientos del comando de escritura Trasmisin resultado de la operacin Bus USB: una vez realizada la escritura sobre el bus de comunicaciones, el microcontrolador configura la interface USBN9603 para transferir el resultado de la operacin a travs del bus USB y realiza la transferencia del mismo. 8

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

A su vez, la aplicacin fue modificada para trabajar en dos capas, de acuerdo al siguiente esquema:

SO FTW ARE CAPA DE APLICACIN

Interface Aplicacin Sistem a O perativo

Interface Sistem a Operativo Dispositivo

CAPA DE INTERFACE

Capa de aplicacin: en esta capa se encuentra el software que realiza el calculo de las constantes para el movimiento de los motores y los entrega al sistema operativo para su trasmisin a travs del bus USB a travs de la interface aplicacin-sistema operativo

Capa de interface: en esta capa se producen las transformaciones de la informacin a un formato standard a utilizar por parte del software de la capa de aplicacin. Comprende los siguientes componentes: o Interface aplicacin-sistema operativo: Esta interface consiste en que el sistema operativo le ofrezca a la aplicacin una abstraccin del dispositivo mediante la cual este es visto por la aplicacin como un archivo, sobre el que se puede leer o escribir informacin. La abstraccin presentada por el sistema operativo oculta toda la gestin del bus usb necesaria para la trasferencia de la informacin, ya que la misma es gestionada por el sistema operativo o Interface sistema operativo Dispositivo: Esta interface se compende los distintos controladores de bus PCI y USB, junto con los controladores de dispositivo especficos que permiten el intercambio de informacin entre el dispositivo y el sistema operativo

6. Conclusiones: Luego de implementada la interface y comparada la misma con la anterior implementacin se obtuvieron las siguientes conclusiones: El aumento de la tasa de transferencia de datos permiti realizar un control mas preciso del movimiento de los motores. Se pas de una tasa de transferencia de 2.4Kbytes/Seg a 6.4Kbytes/Seg. La transferencia de datos utilizando el tipo de transferencia por interrupcin (que garantiza tiempos de latencia mximos entre transferencias), resulto una mejora para esta aplicacin, no obstante resulta recomendable utilizar el tipo de transferencia en bloque (bulk transfer), que permite mayores tasas de transferencia de datos en la medida en que el ancho de banda del bus este disponible. Con este tipo de transferencia es posible conseguir tasas de hasta 600 Kbytes/Seg, pero es necesario desarrollar el software de un controlador especfico para la aplicacin. 9

AADECA 2006 XX Congreso Argentino de Control Automtico Seccin Aplicon 28 al 30 de agosto de 2006 Buenos Aires, Argentina.

7. Mejoras posibles Interface USB: actualmente se implementa la interface al bus USB con el dispositivo USBN9603, un diseo mas ptimo consiste en reemplazar la interface USBN9603 y el microcontrolador AT89S8252 por un microcontrolador de la familia 8051 que tenga integrada la interface USB, tal como el dispositivo AN2131 de Cypress. Tensin de alimentacin: actualmente el sistema funciona con una tensin nominal de alimentacin de 5Vdc, un diseo mas optimo consiste en elegir componentes que trabajen a 3.3Vdc, de manera de poder utilizar la alimentacin disponible en el propio bus USB y no requerir fuente externa, reduciendo componentes y por ende mejorando la confiabilidad del sistema. Tecnologa de componentes: actualmente solo la interface USB es un componente de montaje superficial, una optimizacin desde el punto de vista del rea de circuito impreso ocupada sera utilizar todos los componentes del tipo de montaje superficial, a fin de reducir el rea de circuito impreso o implementar mas funcionalidad en la misma rea. Confiabilidad del firmware: Se evalu la confiabilidad del firmware del sistema a travs de la complejidad McCabe (nmero ciclomtico), obteniendose la contribucin a la confiabilida de las distintas rutinas, segn el siguiente grfico:
Contribucin porcentual de cada funcin a la confiabilidad del firmware
20%
Contribucin porcentual a la confiabilidad

18.9%

18% 16% 14% 12% 10% 8% 6% 4% 2% 0%


9.4% 9.4% 8.5% 7.5% 6.6% 6.6% 5.7% 4.7% 2.8% 2.8% 1.9% 1.9% 1.9% 1.9% 0.9% 0.9% 0.9% 0.9% 0.9% 0.9% 0.9% 0.9% 0.9% 0.9%

Del grfico se observa que las funciones Rx_0 ,GetStatus y USB_Isr son las que mayor contribucin hacen a la confiabilidad del firmware, por lo que para aumentar la confiabilidad del mismo seria conveniente descomponerlas en varias funciones, a fin de reducir su nmero ciclomtico, y por ende lograndose un aumento de la confiabilidad del sistema a travs de un aumento en la confiabilidad del software (firmware) 10

G Rx et _ 0 st a U tus Se sb G nd_ _is et r de 8d sc ata Se rip tfe tor C atu lr f r Pr ea e oc tu es re ar C Tx om _0 an do Se Tx tc on Us _1 fig b_ ur alt at io n R x_ O 1 na k0 W Ma rit in e_ us b Le Es er cr ib B ir its e B t itc G lr et id Se le G tid et le r Se epo tr rt ep In or it_ t us b
Funciones

Vous aimerez peut-être aussi