Вы находитесь на странице: 1из 19

.

REPORTE

UNIDAD
4

ALUMNO
LUIS ALBERTO SALINAS DIEGO

DOCENTE
M. EN M. JOSÉ MIGUEL HERNÁNDEZ PAREDES
1

RESUMEN
En este documento se reporta el desarrollo para la solución del examen correspondiente a la unidad 4
de la materia Programación Avanzada, el cual consistía en cómo establecer comunicación entre el
microcontrolador PIC y una PC mediante el estándar USB, utilizando la clase Bulk, para la transmisión
y recepción de información, todo esto programado en CCS PIC C Compiler para el microcontrolador y
una interfaz en Visual Studio con QT para la computadora.

INTRODUCCION
El Bus Universal en Serie o USB, es un bus de comunicaciones que sigue un estándar que define los
cables, conectores y protocolos usados para conectar, comunicar y proveer de alimentación eléctrica
entre computadoras, periféricos y dispositivos electrónicos. Su desarrollo partió de un grupo de
empresas del sector que buscaban unificar la forma de conectar periféricos a sus equipos.

Hoy en día este estándar es muy utilizado para la conexión de periféricos como: teclados, ratones,
memorias USB, joysticks, escáneres, cámaras digitales, teléfonos móviles, reproductores
multimedia, impresoras, dispositivos multifuncionales, sistemas de adquisición de datos, entre
muchos otros más. Tal ha sido su éxito, que ha ido desplazando con el tiempo a otros estándares como
lo es el puerto serie, o el paralelo siendo así que los nuevos dispositivos ya no los implementen en su
hardware.

OBJETIVO
Establecer comunicación entre el PIC y la Computadora utilizando el estándar USB Bulk.

PLANTEAMIENTO DEL PROBLEMA


“Se podrá establecer la comunicación USB entre un PIC y una Computadora utilizando PIC C Compiler
y Visual Studio QT”.

MATERIALES Y METODOS
 Microcontrolador PIC 18F4550 de Microchip®.
 Computadora con Visual Studio con QT Add on y PIC C Compiler.
 Tarjeta de Desarrollo para el PIC
 Programador PickIt3

MARCO TEORICO
Bus Universal en Serie (USB)

Es un protocolo de comunicación que permite enlazar diversos


periféricos a un dispositivo electrónico (frecuentemente, un
ordenador) para el intercambio de datos, el desarrollo de
operaciones y, en algunos casos, la carga de la batería del dispositivo
o dispositivos conectados. Es, por tanto, básicamente, un puerto que
funciona de toma de conexión entre diferentes aparatos.

Los equipos que se pueden conectar a una computadora gracias al USB son múltiples. Cámaras de
fotos, teléfonos móviles, ratones y teclados, pendrives, reproductores MP4, webcams, tarjetas de
vídeo, mini altavoces, impresoras, grabadoras de DVD, discos duros externos o PDA son sólo algunos
ejemplos.

Este protocolo fue creado en la década de los años 90 por un conjunto de siete grandes empresas de la
tecnología (Intel, IBM, Northern Telecom, Compaq, Microsoft, NEC) con la única finalidad de alcanzar
un estándar para la conexión de los periféricos a una computadora.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
2

Clase USB - Dispositivo de Interfaz Humana (HID)

El HID o dispositivo de interfaz humana, hace referencia a un tipo de interfaces de usuario para
computadores que interactúan directamente, tomando entradas provenientes de humanos, y pueden
entregar una salida a los humanos.

Clase USB – Clase de Dispositivo de Comunicaciones (CDC)

Es un compuesto de Universal Serial Bus clase de dispositivo. La clase puede incluir más de una
interfaz, como una interfaz de control personalizado, interfaz de datos, audio o almacenamiento
masivo interfaces relacionadas.

La clase de dispositivo de comunicaciones se utiliza para dispositivos de red como una tarjeta de red,
módems, ISDN, fax y aplicaciones de telefonía para realizar llamadas de voz regulares.

Esta clase puede utilizarse para equipos industriales como maquinaria CNC para permitir la
actualización de antiguos controladores seriales RS-232 y la robótica, ya que pueden mantener
compatibilidad de software. El dispositivo se conecta a una línea de comunicación RS-232 y el sistema
operativo en el lado USB hace que el dispositivo USB aparece como un puerto RS-232 tradicional.
Fabricantes de chip como tecnología prolific, FTDI, Microchip, Atmel ofrecen instalaciones para el
desarrollo de dispositivos USB RS-232.

Dispositivos de esta clase también se ejecutan en sistemas embebidos como los teléfonos móviles
para que un teléfono puede ser utilizado como un puerto de módem, el fax o la red. Se utilizan
generalmente las interfaces de datos para realizar transferencia de datos a granel.

Modo USB Bulk

Modo de transferencia de datos USB el cual transmite los datos con mayor velocidad entre el periférico
y la computadora comparado con la clase CDC los cuales estén configurados al mismo PID y VID.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
3

DESARROLLO
La problemática a resolver era establecer comunicación entre el PIC y la PC mediante conexión USB
en modo Bulk, el cual la PC debía de enviar 2 bytes al PIC y este debía de hacer algo con estos 2 bytes
para después mandar 2 bytes al PC y que este pudiese visualizarlos. Todo esto debía de estar en
programado en Visual Studio para la interfaz y en PIC C CCS Compiler para la programación del
microcontrolador.

1. Primero una vez teniendo armado completamente el circuito de la tarjeta de desarrollo para el PIC,
se procedió a realizar la programación para este, en el cual se creó un nuevo proyecto y en el
asistente se configuro para el PIC 18F4550 con un cristal de 20MHz y un reloj de 48MHz, además de
configurar el USB en modo Bulk, en donde definimos algunos parámetros como el Vendor ID y el
Product ID y agregar los Fuses.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
4

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
5

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
6

2. Después se compilo el programa y en la tarjeta de desarrollo se conectó el programador pickit3,


con el que una vez compilado se cargó el archivo hexadecimal .hex en la placa con la ayuda de la
herramienta de software propia del programador. Allí se cargó y se habilito el voltaje de 5V.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
7

3. Una vez cargado el programa se conectó la placa a la PC mediante el puerto USB tipo B, en donde
al conectarla se mostró un mensaje de dispositivo conectado no reconocido, en donde se procedió
a abrir el Administrador de Dispositivos en Windows® 10 y verificar que la PC había detectado la
tarjeta de Desarrollo.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
8

4. Una vez verificada la conexión se procedió a instalar el Controlador adecuado para que la tarjeta
pudiese funcionar correctamente por lo que se procedió a actualizar el controlador manualmente,
ya que era un controlador modificado, al instalarlo nos dio un error debido a que no estaba firmado
digitalmente el controlador, para lo cual se desactivo la verificación de controladores firmados en
la PC desde Configuración->Actualización y Seguridad->Recuperación->Reinicio Avanzado, en
donde se reinició y se seleccionó la opción correspondiente para deshabilitarla.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
9

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
10

5. Una vez hecho esto se reintento la instalación del Controlador, hasta que se instalara y lo
reconociera como un dispositivo USB.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
11

6. Después se creó un proyecto en Visual Studio para crear una aplicación de QT en donde se creó el
programa principal, la interfaz de usuario y se agregaron las librerías y recursos para poder
establecer la comunicación USB Bulk. En las librerías de comunicación se modificaron para poder
enviar y recibir 2 bytes solamente, ya que lo demás ya estaba hecho, (detectar todos los
dispositivos conectados, verificar que estuviese conectado, etc.), bastaba con llamar las funciones
en el programa principal, guardar y mostrar las variables por consola.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
12

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
13

7. Una vez terminado el programa se compilo y se ejecutó el programa en Visual Studio en donde una
vez hecho esto en la tarjeta debía de aparecer que se había enumerado correctamente el
dispositivo USB, además de mostrar en la PC una ventana en donde confirmara la conexión
correcta del dispositivo (esto de acuerdo a la programación que se realizó), después de confirmar
la conexión la computadora debió de haber mandado los 2 bytes hacia la tarjeta, en donde se
debieron mostrar en la pantalla LCD correctamente los bytes que se habían mandado, y
rápidamente el PIC debía de responder mandando otros 2 bytes, por lo que la PC debía de
mostrarlos de igual manera en la Salida de la depuración.

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
14

PROGRAMA PIC EN CCS (HEADER)

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
15

PROGRAMA PIC EN CCS (PRINCIPAL)

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
16

PROGRAMA EN VISUAL STUDIO (PRINCIPAL)

LIBRERÍA COMUNICACIÓN USB(FRAGMENTOS MODIFICADOS)

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
17

RESULTADOS Y ANALISIS
Los Resultados fueron los siguientes:

PIC:

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA
18

Salida Visual Studio:

CONCLUSION
Con el desarrollo de la aplicación de comunicación pudimos reforzar nuestros conocimientos
obtenidos en las tres unidades anteriores, las comunicaciones de dispositivos electrónicos son muy
importantes ya que con esta podemos enviar y recibir información rápidamente, segura y a largas
distancias, con lo cual nos amplía el panorama de saber qué tipo de comunicación escoger ante
determinadas situaciones, además de que nos va a ser útil a futuro cuando se decida crear una
aplicación para transmitir información de algún microcontrolador a una PC o viceversa, los cuales
estén conectados a sensores, actuadores, interfaces u otros dispositivos periféricos.

REFERENCIAS
[1] https://sites.google.com/site/proyectosroboticos/USB-MPUSBAPI-Bulk-Transfer.
[2] https://es.wikipedia.org/wiki/Universal_Serial_Bus

PROGRAMACIÓN AVANZADA
INGENIERÍA MECATRÓNICA

Вам также может понравиться