Informe Examen Transmision Usb

21
1 FACULTAD DE INGENIERÍAS CARRERA ELECTRÓNICA SISTEMAS MICROPROCESADOS I INFORME EXAMEN TRANSMISIÓN USB INTEGRANTES: LUIS HERNADEZ JUAN DAVID HERRERA

Transcript of Informe Examen Transmision Usb

Page 1: Informe Examen Transmision Usb

1

FACULTAD DE INGENIERÍAS

CARRERA ELECTRÓNICA

SISTEMAS MICROPROCESADOS I

INFORME EXAMEN TRANSMISIÓN USB

INTEGRANTES:

LUIS HERNADEZ

JUAN DAVID HERRERA

Page 2: Informe Examen Transmision Usb

2

Tema: TRANSMISIÓN USB Problema planteado: Realizar un programa que permita transmitir una señal vía USB desde el microcontrolador al computador utilizando LabVIEW, se debe visualizar la señal en la pantalla, como si fuera un osciloscopio. Materiales: • PIC 18F2550 • Cristal oscilador de 20Mhz • Conector USB • Condensador de 2.2uF • Resistencia 10K • Potenciómetro 250k • Cable USB. Algoritmo: Entradas: • Puerto A • Señal analógica enviada al RA0 • Datos enviados por labVIEW para habilitar la transmisión USB. Proceso: • Declarar las variables y la interface • Configurar el USB Buffer • Configurar el ADC ADCOn= 0 • Realizar la comunicación entre Labview y pic • Leer los datos de la señal de entrada Salidas: • Señal desplegada en LabVIEW.

Page 3: Informe Examen Transmision Usb

3

Diagrama de flujo:

Page 4: Informe Examen Transmision Usb

4

Código del programa (Realizado en Proton):

'Selecciona el microcontrolador y la velocidad Device = 18F2550 XTAL = 48 'Comunicación con el programa en LabVIEW USB_DESCRIPTOR = "OSCILOSCOPIODESC.inc" 'USB Buffer... Symbol USBBufferSizeMax = 8 Symbol USBBufferSizeTX = 8 Symbol USBBufferSizeRX = 8 Dim USBBuffer[USBBufferSizeMax] As Byte ' Configura flags... Dim PP0 As Byte SYSTEM ' USBPOLL pregunta a la interface USB para saber si se adjunta al BUS Symbol CARRY_FLAG = STATUS.0 ' regresa un valor alto si el microcontrolador no tiene control sobre el buffer Symbol ATTACHED_STATE = 6 ' El valor USB es adjuntado ' ************************************************************ GoSub AttachToUSB ' lee el valor del ADC Declare ADIN_RES 8 ' resultado de 8 bits Declare ADIN_TAD FRC ' OSC RC escogido Declare ADIN_STIME 50 ' permite 50u segundos Dim VAR1 As Byte Dim dato As Byte TRISA = 255 ' configura AN0 ADCON1 = 0 ' configure la entrada análoga en el puerto A ProgramLoop: GoSub DoUSBOut GoTo ProgramLoop ' * recibe los datos del BUS USB DoUSBIn: USBIn 1, USBBuffer, USBBufferSizeRX, DoUSBIn Return ' * transmite los datos del bus USB DoUSBOut: VAR1 = ADIn 0 ' Guarda la conversion ADC en una nueva variable USBBuffer[0]=VAR1 USBOut 1, USBBuffer, USBBufferSizeTX, DoUSBOut Return ' * espera por la interface USB * AttachToUSB: Repeat USBPoll Until PP0 = ATTACHED_STATE Return

Page 5: Informe Examen Transmision Usb

5

Esquemático:

Simulaciones:

Page 6: Informe Examen Transmision Usb

6

Page 7: Informe Examen Transmision Usb

7

Breve Explicación Del Proyecto:

Este proyecto realiza una transmisión de datos que son recibidos por el PIC mediante un potenciómetro, que envía una señal analógica a la Entrada A0 del PIC, el PIC realiza una conversión analógica-digital y envía estos datos vía USB al computador, cuando los datos llegan al computador el programa labVIEW es el encargado de codificar los dados recibidos y mostrarlos una grafica, como si fuera un osciloscopio.

Descripción del programa en LabVIEW:

Este programa de LabVIEW tiene dos partes principales:

1. La parte CLAVE es la encargada de enviar un dato, al PIC mediante el puerto USB con el objetivo de permitir la adquisición de datos del PIC. Como el programa del PIC está configurado para usar dos bytes de recepción, por lo que justamente se envían 2 bytes, el primero es el decimal equivalente a O mayúscula, y el segundo a la letra K, datos que el PIC se queda esperando para empezar con la conversión A/D y comunicarse con la PC.

Page 8: Informe Examen Transmision Usb

8

2. La segunda parte principal es la encargada de recibir los datos usando el puerto USB. Usa una configuración en la que se espera por un evento dentro de un tiempo de espera t, si no se recibe ningún dato Labview lanzará un error, y todo quedará estático, por eso hay que asegurarse de que todas las interface del pic estén funcionando. Como desde el PIC se transmiten 3 bytes hacia la PC, precisamente tendremos un vector o arreglo de 2 bytes (cable azul), al cual lo debemos descomponer para obtener de forma individual los datos recibidos.

2.1 Los datos recibidos pueden ser interpretados según la aplicación que el usuario realice.

Para esta demostración lo que se pretende es simular un voltímetro digital de 0 a 5V usando la conversión analógica digital, y presentar los datos en una gráfica, y cada 10 segundos guardar un registro de estos datos en una tabla de Excel

2.2 Los bytes son recibidos en el mismo sentido en el que se enviaron desde el PIC, es

Page 9: Informe Examen Transmision Usb

9

decir que, en el primer byte del buffer de salida del PIC se cargo el decimal 150, y en segundo el número 300, LABVIEW recibe en el mismo orden . Como el programa del PIC usa justificación a la izquierda para el ADC, ADRESH tiene los 8 bits más significativos de la conversión, por lo que al byte alto se lo multiplica por 4 para tener 255*4=1020, y al byte bajo se lo divide para 48 para tener un valor de 4 en lugar de 192 (valor máximo recibido del byte 2). Al sumar estos dos resultados tenemos un valor de 0 a 1024, lo multiplicamos por 5, y luego dividimos para 1000 y tenemos un voltímetro digital de 0 a 5,12 V. 2.3. El vector recibido tiene una representación Unsigined 8 (U8 - valor de 0 a 255), por lo que primero se lo convierte a U16 para poder multiplicar el dato y más adelante se transforma al dato en uno tipo double, para tener los decimales.

Page 10: Informe Examen Transmision Usb

10

Nota: para realizar este programa se necesita tener instalado las librerías VISA de labVIEW.

Una vez que ya tengamos creados el programa para el PIC y el programa en LabVIEW necesitaremos que el computador reconozca los datos que enviamos vía USB, para esto necesitamos seguir varios pasos mostrados a continuación:

CONFIGURACION DEL PUERTO USB A UTILIZAR

Para configurar el puerto utilizaremos el Driver Wizard que vienen en labVIEW una vez instalada la librería de VISA.

Todos estos pasos se deben hacer una vez ya esté conectado el circuito mediante el bus USB al computador.

1. Damos clic en INICIO/TODOS LOS PROGRAMAS/National Instruments/VISA/Driver Wizard.

Page 11: Informe Examen Transmision Usb

11

2. Luego de haber realizado aparecerá la siguiente pantalla aquí escogeremos el tipo de hardware que necesitamos, para nuestro caso damos clic en USB y luego en siguiente.

3. Luego nos aparece una pantalla donde nos pedirá el “Vendor ID” y el “Product ID”.

Page 12: Informe Examen Transmision Usb

12

Para obtener estos valores necesitamos el programa USBview

Damos doble clic sobre el icono y aparece esta pantalla

Page 13: Informe Examen Transmision Usb

13

Aquí saldrán todos los puertos que estemos utilizando o no, buscamos el puerto donde diga device conected, el cual será el que tenga nuestros datos.

Al hacer esto al lado derecho de la pantalla aparecen varios valores.

Page 14: Informe Examen Transmision Usb

14

Buscamos los que digan idVendor e idProduct

Estos valores 1781 y 07D0 son el Vendor ID y el Product ID respectivamente, los cuales nos pedía el Driver Wizard.

4. Copiamos los valores de idProduct e idVendor que encontramos en el USBView en sus respectivos casilleros y damos clic en siguiente

5. Aparece esta pantalla y damos clic en siguiente

Page 15: Informe Examen Transmision Usb

15

6. Aparece el siguiente cuadro de dialogo y damos clic en OK.

7. Al hacer esto nos preguntara si queremos instalar los archivos generados, damos clic en finalizar y ya hemos configurado nuestro bus USB.

Page 16: Informe Examen Transmision Usb

16

8. Verificamos que todo este correcto ditigiendonos a INICIO/TODOS LOS PROGRAMAS/National Instruments/Measurement & Automation

Page 17: Informe Examen Transmision Usb

17

9. Aparece la siguiente pantalla

10. Aquí nos dirigimos a devices and interfaces para buscar nuestra interfaz generada

Page 18: Informe Examen Transmision Usb

18

Como vemos aquí aparece usb “Juan” que es el nombre que le he puseto a la interfaz, este nombre se cambia dando doble clic en usb”….” Y en el cuadro de texto donde dice VISA Alias on My System escribimos el nombre que queramos darle a la interfaz en este caso Juan.

Esto nos servirá para encontrar la interfaz de una manera mas rápida en labview.

Una vez realizado todos estos pasos procedemos a abrir nuestro programa en labview

Ya en labview, nos dirigimos al diagrama de bloques

Y procedemos a colocar el nombre de nuestro interfaz, en lugar de OSCILOSCOPIO, que estaba por defecto.

Page 19: Informe Examen Transmision Usb

19

Al realizar esto ya tenemos direccionado de manera correcta nuestro bus de datos, y la transmisión se podrá hacer de manera correcta, si no está bien direccionado, aparecerá un mensaje de error en la pantalla.

Ahora si procedemos a ejecutar el programa, una vez hecho esto, variamos el potenciómetro y se verá las variaciones de la señal en la pantalla.

Page 20: Informe Examen Transmision Usb

20

Page 21: Informe Examen Transmision Usb

21

Conclusiones:

• Al trabajar con conexión USB Una característica importante es que permite a los dispositivos trabajar a velocidades mayores, en promedio a unos 12 Mbps, esto es más o menos de 3 a 5 veces más rápido que un dispositivo de puerto paralelo y de 20 a 40 veces más rápido que un dispositivo de puerto serial.

• Este proyecto utiliza conversión analógica digital la cual nos ayuda al enviar los datos vía USB de manera más sencilla.

• Ya que el pic 18F2550 tiene una Interface USB 2.0 de alta velocidad (12Mbit/s) nos permite transmitir los datos de una manera eficaz, casi sin perdida y así poder generar una onda mas exacta mediante labview.

• El valor que se le da al oscilador es de vital importancia para el correcto funcionamiento y comunicación con labVIEW.

Bibliografía:

• http://www.bilbaoelectronics.com/pic-modulo-usb.html

• http://proton.ucting.udg.mx/tutorial/ • http://www.ni.com/support/visa/vintro.pdf

• http://www.todoexpertos.com/categorias/ciencias-e-ingenieria/respuestas/1070173/transmision-de-datos-por-puerto-usb