Vous êtes sur la page 1sur 6

TRANSFERENCIA DE DATOS VA USB CON MATLAB.

A pesar de que MATLAB es un software de computacin y desarrollo de aplicaciones fundamentadas en un anlisis matemtico de nivel elevado, este tambin nos ofrece mltiples herramientas y libreras que hacen de nuestro problema general algo menos complejo. Tal es el caso de la comunicacin USB con un pic gama alta (18FXXX), para lo cual microchip nos proporciona en su pgina web el archivo necesario para una comunicacin eficiente y exitosa. Cabe mencionar que la programacin del pic se lleva a cabo mediante el programa PCWH compiler de CCS. Lo que se pretende con este blog es darle a conocer a los estudiante interesado en dicha comunicacin la manera en como pueden intercambiar informacin a altas velocidades entre un PIC gama alta y la PC.

INTRODUCCIN Con el pasar de los aos no estamos dando cuenta la gran revolucin tecnolgica presentada actualmente, pasamos de ver nuestros programas favoritos en televisores de rayos catdicos a aquellos donde la base de su funcionamiento se basa en la tecnologa tipo LED. Esto se ha logrado en cierta parte a la creacin de dispositivos electrnicos cada vez mas pequeo y con poco consumo de energa, como lo es en el caso del micro controlador .A pesar de que este ultimo nos brinda un sin nmeros de herramientas necesarias para la implementacin de ciertos proyectos, se hace necesario de que este no funcione de manera autnoma si no que por el contrario se requiera que trabaje en conjuntos con una computadora. La finalidad de este blogs es dar a conocer las pautas necesarias para desarrollar una comunicacin entre un micro controlador y el software MATLAB para el tratamiento de los datos de manera ms eficiente.

MARCO TERICO Antes de entrar a explicar la manera en que se realizo dicha comunicacin se hace necesario definir conceptos claves permitirn desarrollar la misma de forma mas sencilla y didctica. HUB: es un elemento plug y play en la estructura USB y es un concentrador al cual, se le pueden agregar ms dispositivos USB, incluyendo otro hub. Cabe mencionar que la velocidad de transferencia depende de la velocidad del hub que se esta utilizando: 480Mb/s en high speed, 12 Mb/s en full speed y 1.5 Mb/s low speed. (Ver figura 1)

El cable USB tiene consta de 4 hilos (ver figura 2):

La arquitectura USB consta de 4 tipos bsicos de transferencia: 1. 2. 3. 4. Control Transfers: se usa para configurar un dispositivo al momento de que se conecte Bulk Data Transfers: entrega el dato por volumen, el ancho de banda puede variar. Interrupt Data Tranfers:se usa para la entrega a tiempo de los dato Isochronous Data Transfers: Ocupar una cantidad predeterminada negociada de ancho de banda USB con una latencia de entrega antes de negociar.

Una vez visto los 4 tipos bsicos de transferencia USB se procede analizar los 3 tipos de funcionamientos de los pic 18Fxxx: 1. USB Human Interface Device (HID): Velocidad Baja, no requiere driver. 2. USB Communication Device Class (CDC): Velocidad Media, requiere driver. Crea un Puerto Serie Virtual. 3. USB Custom Driver: Velocidad Alta, requiere driver. Este es el modo que usa WinUSB.

MPUSBAPI.DLL DE MICROCHIP: Microchip ha creado un archivo dll en el que proporciona las funciones de acceso al puerto USB con un micro controlador de la familia PIC18Fxx5x. Para un funcionamiento correcto, se necesita el driver mchpusb.sys. Dentro de los protocolos hay que especificar el tipo de transferencia de datos a usar (endpoints), VID&PID, nombre y serie del producto que se conecta para que el host identifique al driver y pueda instalarlo con el fin de que el dispositivo pueda formar las pipes tneles para su comunicacin con el host. pVID_PID (Input): String que contiene el PID&VID del dispositivo objetivo. El formato es vid_xxxx&pid_yyyy. Donde xxxx es el valor del VID y el yyyy el del PID, los dos en hexadecimal. Ejemplo: Si un dispositivo tiene un VID=0x04d8 y un PID=0x000b, el string de entrada es: vid_0x04d8&pid_0x000b. PEP (Input): String con el nmero del Endpoint que se va a abrir. El formato es \\MCHP_EPz o \MCHP_EPz dependiendo del lenguaje de programacin. Donde z es el nmero del Endpoint en decimal. Ejemplo: \\MCHP_EP1 o \MCHP_EP1 Este argumento puede ser NULL (nulo) para crear lazos con Endpoints de funciones no especficas. Las funciones especficas que utilizan ste parmetro son: MPUSBRead, MPUSBWrite, MPUSBReadInt.

Handle (Input): Identifica el pipe del Endpoint que se va a leer. El pipe unido tiene que crearse con el atributo de acceso MP_READ. En conclusin, handle es el nmero de pipe que nos arroj la instruccin anterior con dwDir=1. pData (Output): Puntero al buffer que recibe el dato ledo de la pipe. El formato del dato es un arreglo de N bytes, donde N es el nmero de bytes que maneja el device en el arreglo que enva a la PC, generalmente se declara al inicio del programa en el PIC. dwLen (Input): Especifica el nmero de bytes que se espera leer de la pipe. pLenght (Output): Puntero al nmero de bytes ledos. MPUSBRead pone este valor a cero antes de cualquier lectura o de chequear un error. dwMilliseconds (Input): Especifica el intervalo de timeout en milisegundos. La funcin vuelve si transcurre el intervalo aunque no se complete la operacin. Si dwMilliseconds=0, la funcin comprueba los datos de la pipe y vuelve inmediatamente. Si dwMilliseconds es infinito, el intervalo de timeout nunca termina.

Desarrollo de la comunicacin. Para lograr el enlace a USB se utilizaron las funciones USB, incorporadas en el lenguaje C del programa PIC c compiler (ccs), las funciones estn preparadas para que el micro controlador sea reconocido como un dispositivo personalizado usando los descriptores que incluye el mismo lenguaje, se estableci la cantidad de datos a 64 bytes (8 bits por byte) de envo y recepcin hacia la PC, en la PC se descarga el driver que nos proporciona Microchip en su pgina web. Configuracin de hardware: 1) conecte el pic de la siguiente manera:

2) Antes de compilar el cdigo de programa <<daq.c>> adjunto en ste archivo comprimido con PCWH Compiler de CCS versin 3.246 posterior, primero escoja el PIC que Utilice PIC18F2455/2550/4455/4550 en la seccin #include al inicio del programa. Nota: Este ejemplo muestra como desarrollar un sencillo dispositivo USB con el PIC18F2550 (para la serie 18Fxx5x) los drivers que se requiere para ste dispositivo son los que proporciona Microchip en su pagina web. Cuando el dispositivo sea conectado al PC, saldr el asistente para la instalacin del driver. Se instala el driver que nos proporciona Microchip.

Promaga en ccs:

3) Verifique que la configuracin del PLL corresponda a la Frecuencia del Xtal que utiliza. Ejemplo: PLL1 para Xtal de 4Mhz PLL2 para Xtal de 8 Mhz PLL3 para Xtal de 12 Mhz PLL4 para Xtal de 20 Mhz 4) Abra el archivo C:\Archivos de programa\PICC\Drivers\usb_desc_scope.h (donde se instal el compilador de CCS) que es el descriptor del USB ubicado en su PC, avance hasta la seccin start device descriptors (aproximadamente en la lnea 132) y remplace los valores del vendor id, el product id y el device release number como sigue (puede copiar las tres lneas siguiente y pegar en el archivo del descriptor <<usb_desc_scope.h>>): 0xD8,0x04, //vendor id (0x04D8 is Microchip) 0x0B,0x00, //product id 0x01,0x00, //device release number 5) Compile el programa y grbelo en el PIC (Asegrese de que antes de abrir el archivo a compilar presione el botn inicio (ubicado en la parte superior izquierda) Close all del compilador).

Configurando el software: 1) La DLL que proporciona Microchip se puede descargar desde su sitio web. (www.microchip.com ). Busque en la seccin Application and markets //USB// MCHPFSUSB FrameworK// Software/Tools// << Microchip Application Libraries v20100209 >>. En el mismo paquete incluye ejemplos que incluyen el programa fuente para la compresin de su uso. 2) Ejecute el driver descargado en el paso anterior e instale en la direccin que trae ya predeterminada. Este ejecutable trae muchos ejemplos de aplicacin, entre ellos trae el driver que queda ubicado en: C:\MICROCHIP SOLUTIONS\USB TOOLS\MCHPUSB CUSTOM DRIVER\MCHPUSB DRIVER\ RELEASE\. 3) instalar el hardware a la PC de manera similar al que se instala un dispositivo USB. Cundo se solicite los driver proporcione la direccin donde fue descomprimido el driver. 4) verificar en las propiedades del dispositivo instalado el numero de PIV&VID que se configuro en el pic.

5) Programa en matlab.

Vous aimerez peut-être aussi