Está en la página 1de 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. Control Transfers: se usa para configurar un dispositivo al momento de que se conecte


2. Bulk Data Transfers: entrega el dato por volumen, el ancho de banda puede variar.
3. Interrupt Data Tranfers:se usa para la entrega a tiempo de los dato
4. 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.

También podría gustarte