UNIVERSIDADMODELO
ESCUELADEINGENIERÍA
MAESTRÍAENMECATRÓNICA
Transferenciayprocesam ientodedatosaaltavelocidad,medianteelusodeMATLAB,elpuerto
USB2.0yPIC18F2455deMicrochip™
PRESENTA:
ING.GABRIELJESÚSPOOLBALAM
PARALAMATERIA:
DISEÑOMECATRÓNICO
PROFESOR:
DR.ALEJOMOSSOVAZQUEZ
MÉRIDA,YUCATÁNA4
DEJULIODE2009
TransferenciadedatosentreMATLAB,elpuertoUSB2.0yPIC18F2455deMicrochip™2/15
Agradecimientos:
Al Centro de Investigación científica de
Yucatán A. C. (www.cicy.mx
) sobre todo al
departamento de Instrumentación
representado por Ing. Leonardo Gus
Peltinovich por su apoyo para la realización
deéstetrabajo.
JUNIO2009
TransferenciadedatosentreMATLAB,elpuertoUSB2.0yPIC18F2455deMicrochip™3/15
RESUMEN
MATLAB ("matrix laboratory") es un
software de computación y desarrollo de
aplicaciones, diseñado para llevar a cabo
proyectos que impliquen cálculos
matemáticos de nivel elevado y su
representacióngráfica. MATLAB integra
análisis
numérico, cálculo matricial, proceso
de señal y visualización gráfica en un
entorno tal que los problemas y sus
soluciones son expresados del mismo modo
enqueseescribirían,sinnecesidaddehacer
usodelaprogramacióntradicional.MATLAB
es capaz de manejar librerías y dll’s de
diferentesdispositivosinstaladosenla
PC.
Microchip™ proporciona en su
página weblosdrivers y archivos necesarios
para establecer la comunicación por puerto
USB con la familia del PIC18F2455. A través
de ellos se puede efectuar transacciones de
hasta 64 bytes por paquete cada
milisegundo, por cada túnel abierto. El PIC
es programado mediante “PCWH
Compiler
de CCS”, versión 3.246. Los descriptores
utilizados para la comunicación USB están
basados en los archivos que contiene el
propiocompilador.
Enestetrabajo semuestraque,con
estasherramientasymanipulandoelarchivo
mpusbapi.dll, se puede transferir datos a
alta velocidad del PIC18F2455 a la PC de
manera
bidireccional, con la finalidad de
procesarlos matemáticamente y/o
graficarlos.Unejemplodeestaaplicaciónse
muestra en este trabajo, y consiste en la
obtención decurvas de arranque de
motores de CD sin carga, a efectos de su
caracterizacióncomopasoprevioaldiseñoo
seleccióndesucontrolador.
INTRODUCCIÓN
Hoy en día, la miniaturización de
componentes electrónicos, la disminución
de su consumo de corriente y el tama ño de
los semiconductores, permite la
construcción de circuitos más complejos,
inteligentes y eficientes. No ha sido la
excepción con el microcontrolador, ya que
éste se ha desarrollado notablemente, al
puntode hacermás
grandesuscapacidades
de comunicación, memoria, circuitos de
apoyo adicionales (ADC, oscilador interno,
puertos, etc.). Dichos microcontroladores,
requieren de muy poco componentes de
soporte externo para implementarse y sus
tecnologías se han perfeccionado, de tal
manera, que casi no fallan. Algunos
fabricantes tal como Microchip, se
preocupan en desarrollar las
herramientas
parasuprogramación, tales como lenguajes
de alto nivel para compil ar el programay
programadores económicos para descargar
el programa en el chip. Debido a éstas
herramientas, éste chip se ha vuelto muy
popular al grado que se proponen como
materiasacursarenlasescuelas.
Porotrolado,ya
nobastacontener un
chip inteligente que funcione de manera
autónoma, ahora se requiere que trabajen
en conjunto con la PC especialmente donde
serequierenimportardatosdeeventosmuy
rápidos como por ejemplo:El arranque de
unmotor(velocidadconrespectoaltiempo)
que tiene una duración aproximada
de 1
décima de segundo. Esto se puede lograr
coneldesarrollodeunsoftwarecomoVisual
TransferenciadedatosentreMATLAB,elpuertoUSB2.0yPIC18F2455deMicrochip™4/15
Basic, Visual C, C++, ó cualquier otro
paquete de preferencia gráfico para hacer
más fácil la interfaz de usuario.
Desafortunadamente, cuando se requieren
procesar matemáticamente éstos datos
(graficarlos, aplicar operaciones de
estadística, procesar con filtros digitales,
etc.),sevuelveliteralmenteimposible.
ConMATLABseresuelveeseproblema,
peroexiste undetalle,
el hechodeimportar
los datos en tiempo real con alguna tarjeta
de adquisición de datos requiere
compatibilidadconésteprogramasincontar
adicionalmenteconlos recursoseconómicos
para la compra de ésta tarjeta.
Afortunadamente MATLAB ha evolucionado
al grado de que se puede conectar casi con
cualquier dispositivo, y
su manejo es
relativamente fácil e incluye una ayuda en
línea.
La finalidad de éste trabajo es
desarrollar una comunicación entre un
micro controlador y éste software para el
tratamiento de datos de manera más
económica y sin algún software ejecutable
quesirvadeintermediario.
ANTECEDENTES
1.LAARQUITECTURADELPUERTO
USB
A pesar de que el pu erto USB nos
ofrece más ventajas que sus predecesores,
su complejidad para implementarlo es
enorme, ya que su funcionamiento está
basadoenprotocolosdesoftware.
SólopuedehaberunHostenelbusque
maneja a todos los componentes
conectadoscomoseindicaen
lafigura1.
Fig.1TopologíadelBUS
Elhubesunelementoplugandplayen
la estructura USB (Figura 2) y es un
concentrador al cual, se le pued e n agregar
másdispositivosUSB,incluyendootrohub.
La velocidad de transferencia depende
de la velocidad del HUB que
se esté
utilizando. Ver figura 3. Las velocidades
típicas son:480Mb /s en high speed,
12Mb/sfull‐speedy1.5Mb/s enLow‐speed.
Fig.2HUBUSB
Fig.3MúltiplevelocidadenunBUS
TransferenciadedatosentreMATLAB,elpuertoUSB2.0yPIC18F2455deMicrochip™5/15
Elcablequetípicamenteesusadonoes
largo,debidoalavelocidaddetransferencia
ytienelaestructuramostradaenlafigura4.
Sus terminales son del tipo diferencial y
constade4hilos.
Fig.4CableUSB
La arquitectura USB comprende cuatro
tiposbásicosdetransferenciadedatos:
• Control Transfers:Es usado para
configurarundispositivoalmomento deque
se conecta. Los datos entregados pueden
perderse.
• Bulk Data Transfers: Entrega el dato por
volumen,elanchodebandapuede variar.Es
usado en escáner ó cámaras. La ráfaga de
datosessecuencial.
• Interrupt
Data Transfers: Used for timely
but reliable delivery of data, for example,
characters or coordinates with human‐
perceptible echo or feedback response
characteristics.
• Isochronous Data Transfers: Occupy a
prenegotiated amount of USB bandwidth
with a prenegotiated delivery latency. (Also
calledstreamingrealtimetransfers).
Aunque el PIC no puede
funcionar
como host, ya que se requiere de una gran
capacidad de manejo de datos para
administrar a cada componente del BUS, es
suficiente que se pueda administrar como
un “device”, para esto se requiere
“memorizarle”los protocolos necesarios
paraenlazarsealhost.
Estos protocolos se le llaman
descriptores y
sirve para informarle al host
todo lo necesario para que pueda
administrarlo.
Recordemos que los PICs de la serie
18Fxx5x tienen tres modos de
funcionamiento:
1. USB Human Interface Device
(HID): Velocidad Baja, no
requieredriver.
2. USB Communication Device
Class (CDC): Velocidad Media,
requiere driver. Crea un Puerto
SerieVirtual.
3. USB Custom Driver: Velocidad
Alta, requiere driver. Este es el
modo que usa WinUSB (para
windows vista) y el mpusbapi
(windows2000yposterior).
Dentro de los protocolos hay que
especificar el tipo de transferencia de datos
ausar(endpoints),VID&PID,nombreyserie
del producto que se conecta
para que el
host identifique al driver y pueda instalarlo
conelfindequeeldispositivo puedaformar
las “pipes” ó túneles para su comunicación
conelhost(verfigura5).
Fig5.FlujodecomunicaciónUSB