Sunteți pe pagina 1din 9

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA

Licenciatura en ciencias de la electrnica

ASIGNATURA: Tpicos Especiales de Sistemas Digitales.

Prctica #1: Procesamiento a nivel pixel en un microcontrolador

Profesor: ALDRIN BARRETO FLORES

ALUMNOS:
BESNIER LOPEZ MANUEL 200618308
CIRILO SALVADOR EDUARDO 200604919 FLORES CASTRO JORGE A. NARVAEZ CHAVEZ JORGE 200719748 20062545

VIERNES 28 DE OCTUBRE DE 2011

Benemrita Universidad autnoma de Puebla

Practica No. 1
Tpicos Especiales de Sistemas Digitales
Introduccin:
A lo largo de los ltimos aos han cobrado especial inters las tcnicas basadas en diseo de sistemas empotrados. Mediante estas tcnicas es posible dividir las tareas a realizar (particionado software/hardware) de manera que parte de ellas son implementadas mediante un hardware de propsito especfico y otras mediante la programacin de un microprocesador de propsito general (computadora personal). De esta manera, las tareas ms complejas y crticas se implementan en hardware mientras que aquellas que se adaptan mejor a la ejecucin de un microprocesador y en las que se requiere mayor flexibilidad se programan. La existencia de las herramientas proporcionadas por microchip y manipulando el archivo mpusbapi.dll, se puede transferir datos a alta velocidad del PIC18F4550 a la PC de manera bidireccional permiten el desarrollar sistemas complejos sin demasiada dificultad.

Desarrollo:
Implementacin del diseo electrnico:

ENLACE A LA PC MEDIANTE USB. Para lograr el enlace a USB se utilizaron las funciones USB, incorporadas en el lenguaje C del programa CCS para PICS, dichas funciones estn preparadas para que el microcontrolador 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 proporciona Microchip en su pgina web. Por parte del Hardware, armar el diagrama esquemtico anterior para conectar al PIC el puerto serie usb.

Objetivo:
OBJETIVO GENERAL * Implementar la operacin complemento de una imagen en un microcontrolador OBJETIVOS ESPECFICOS: * Implementar y explicar la forma de procesamiento a nivel pixel en un microcontrolador * Explicar los elementos ms importantes de la propuesta de implementacin (cdigo) * Explicar los elementos ms importantes para la comunicacin USB o en su caso serial (uso de libreras) * Implementar una estrategia que permita medir los tiempos de procesamiento de la imagen en el microcontrolador y en el software Matlab *Mostrar el funcionamiento en el microcontrolador

Configuracin del Hardware


1. Conectar el PIC 2. Antes de compilar el cdigo de programa <<practica.c>> presentado en el Anexo 1.1 archivo comprimido con PCWH Compiler de CCS. Verificar 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, etc.

Benemrita Universidad autnoma de Puebla


4. Abrir el archivo C:\Archivos de programa\PICC\Drivers\usb_desc_sc ope.h (donde se instal el compilador de CCS) que es el descriptor del USB ubicado en la PC, avanzar hasta la seccin start device descriptors (aprox en la linea 132) y reemplazar los valores del vendor id, el product id y el device release number como sigue: 0xD8,0x04, //vendor id (0x04D8 is Microchip) 0x0B,0x00, //product id 0x01,0x00, //device release number 5. Compilar el programa y grabarlo en el PIC. NOTA IMPORTANTE: De no completar stos pasos la PC NO detectar al PIC CCS compilar correctamente pero al conectarse el PIC en la PC, el dispositivo no reconocer el driver.

Configuracin del Hardware


1. La DLL que proporciona Microchip se puede descargar desde su sitio web. (www.microchip.com ) Intentar obtener la versin ms actual busque en la seccin <<Aplication and markets>> << USB>> <<Software/Tools>> << MCHPFSUSB Framework >> <<Microchip Application Libraries Download Page>> <<Microchip Application Libraries v201107-14 Windows>> 2. Ejecute el driver descargado en el paso anterior e instale en la direccin que trae ya predeterminada, el driver que queda en la direccin: "C:\MICROCHIP SOLUTIONS\USB\ TOOLS\MCHPUSB CUSTOM DRIVER\MCHPUSB DRIVER\ RELEASE\" 3. Instale el hardware a la PC de manera similar al que se instala un dispositivo USB: conectar el dispositivo a la PC, en cuanto le solicite los driver, proporcionar la direccin del paso anterior. Si todo es correcto se debe de observar en el administrador de dispositivos un nuevo hardware que se agreg tal como se muestra en la figura siguiente. NOTA: Si no se sustituye correctamente en el descriptor las 3 lneas que se comentan en el cdigo del programa, el compilador

Fig. Instalacin del PIC en la PC

ENLACE DEL MATLAB AL PIC PARA TRANSFERENCIA DE DATOS.


Para poder iniciar el enlace con el PIC es necesario que se haya concluido satisfactoriamente la instalacin del paquete de drivers de Microchip. En el mismo paquete que se descarg de la red se obtienen instrucciones y ejemplos en C++ que muestran como manipular el driver y los parmetros requeridos para aplicarlo. Para hacer la conexin con MATLAB simplemente se copiaron las instrucciones al lenguaje de Matlab y se acondicionaron las variables para que la DLL pueda reconocerlo. NOTA: En el Anexo1.2 se encuentra el cdigo de MATLAB <<practica.m>> que es un demo de cmo el programa enva y recibe datos del PIC, los archivos _mpusbapi.h y mpusbapi.dll son necesarios para la ejecucin en MATLAB y deben de estar en la misma carpeta que el archivo practica.m

Benemrita Universidad autnoma de Puebla


Pasos para el comunicacin desarrollo de la
Formato: [my_in_pipe] = calllib('libreria', 'MPUSBOpen',uint8 (0), vid_pid_norm, in_pipe, uint8 (1), uint8 (0)); De donde: vid_pid_norm = libpointer('int8Ptr', [uint8('vid_04d8&pid_000b') 0]); in_pipe = libpointer ('int8Ptr', [uint8('\MCHP_EP1') 0]); f. Leer los datos de la pipe (solamente si la pipe est abierta) Formato: [aa,bb,data_in,dd] = calllib('libreria', 'MPUSBRead',my_in_pipe, data_in,uint8(64), uint8(64), uint8(10)); De donde: data_in = eye(1,64,'uint8'); g. Escribir los datos de la pipe (solamente si la pipe est abierta) Formato: calllib('libreria', 'MPUSBWrite', my_out_pipe, data_out, uint8(64), uint8(64), uint8(10)); De donde: data_out = eye(1,64,'uint8'); h. Cerrar la(s) pipe(s) abierta(s), cada vez que finalice el programa, ya que si quedan abiertas Windows genera errores y se pierde la comunicacin. Formato: calllib('libreria', 'MPUSBClose', my_in_pipe); calllib('libreria', 'MPUSBClose', my_out_pipe); IMPORTANTE: Al terminar el programa descargue la librera de memoria, ya que no se puede cargar ms de una vez. Formato: unloadlibrary librera; Una vez enlazado con el PIC, los datos pueden fluir las veces que sea necesario de un sentido a otro y manipularlos como se desee, ya que se tiene el completo control del software del PIC (por parte del Compilador C) y en la PC (por parte de

La funcin Loadlibrary permite manipular directamente la dll de una manera directa y sin intermediarios. Para iniciar con la implementacin del cdigo, primero inicie el programa de MATLAB Las instrucciones que se requieren implementar en MATLAB tienen la siguiente secuencia y formato: a. Primero copiar los archivos _mpusbapi.h y mpusbapi.dll en la misma carpeta de trabajo (los archivos se obtienen de la descarga del driver en la pgina de microchip y queda ubicado en C:\MICROCHIP SOLUTIONS\USB\ TOOLS\MCHPUSB CUSTOM DRIVER\Mpusbapi\Dll\Borland_C, b. Abrir el editor de MATLAB e iniciar cargando la librera en memoria. Formato: loadlibrary mpusbapi_mpusbapi.h alias librera c. Identificar el nmero de dispositivos conectados con el PID&VID y ubicar el que corresponde al hardware de su desarrollo. Formato: [conectado] = calllib ('libreria', 'MPUSBGetDeviceCount',vid_pid_norm) De donde: vid_pid_norm = libpointer('int8Ptr', [uint8('vid_04d8&pid_000b') 0]); d. Seguidamente se abre la pipe para leer (si no se desea leer se puede omitir ste paso). Formato: [my_out_pipe] = calllib('libreria', 'MPUSBOpen',uint8 (0), vid_pid_norm, out_pipe, uint8(0), uint8 (0)); De donde: vid_pid_norm = libpointer('int8Ptr', [uint8('vid_04d8&pid_000b') 0]); out_pipe = libpointer('int8Ptr', [uint8('\MCHP_EP1') 0]); e. Siguiendo con la secuencia, se abre la pipe para escribir (si se requiere escribir se puede omitir ste paso).

Benemrita Universidad autnoma de Puebla


MATLAB). En caso de perderse la comunicacin con el PIC (en casos donde el programa en MATLAB genere errores por cuestiones ajenas a la comunicacin) se debe desinstalar el dispositivo Microchip Custom USB Device desde el administrador de dispositivos, desconectar el PIC del puerto USB, descargar la librera de memoria desde el MATLAB con unloadlibrary librera en la lnea de comandos de MATLAB y resetear el PIC. Al volver a conectar de nuevo el PIC al puerto USB de la computadora se restaurara la comunicacin, entre MATLAB y el PIC.

CONCLUSIONES
-El microcontrolador PIC18f4550 presento: Facilidad de uso para esta prctica, hay gran cantidad de informacin disponible en libros, revistas e Internet y tiene herramientas de desarrollo muy accesibles. -Hacer la operacin de una imagen a nivel pixel con un pic ayuda a la comprensin del procesamiento de una imagen. -La creacin de sistemas complejos puede resolverse de manera sencilla al dividir el sistema en software/hardware

RESULTADOS
A) Explicacin de los elementos ms importantes de implementacin -Anexo 1.2 B) Funcionamiento en el microcontrolador -Anexo 1.1 C) Estrategia para medir los tiempos de procesamiento de la imagen en el microcontrolador: 1 se configura el TIMER del PIC en el Anexo1.1, para obtener el tiempo que tarda en hacer la inversin de una fila y al invertir todas las filas enva el dato del TIMER a la computadora. 2 Al saber cunto tiempo tarda el PIC en realizar la inversin de una fila, se saca el tipo total multiplicando en el Anexo1.2 D) Estrategia para medir los tiempos de procesamiento de la imagen en el microcontrolador -Anexo1.3 E) Tiempos de procesamiento de imagen en el microcontrolador t=16ms y en el software Matlab t=3ms la

REFERENCIAS
Autor Garcia Breijo, Eduardo Titulo Compilador C CCS y simulador PROTEUS para microcontroladores PIC Editorial Alfaomega, Marcombo 2008 http://www.mathworks.com/matlabcentra l/fileexchange/24417-comunicacion-entrematlab-y-pic-de-microchip-usando-puertousb www.google.com.mx PIC18f4550 USB. bsqueda

Benemrita Universidad autnoma de Puebla


Anexo1.1 <<practica.c>>

Benemrita Universidad autnoma de Puebla

Benemrita Universidad autnoma de Puebla


Anexo1.2 <<practica.m>>

Benemrita Universidad autnoma de Puebla

Anexo1.3 <<invertir_en_matlab.m>>

S-ar putea să vă placă și