Vous êtes sur la page 1sur 11

Tarjeta de Adquisición de Datos en MATLAB

Carlos Linares Valentín


clinaresv@uincca.edu.co
Programa de Ingeniería Electrónica, Universidad INCCA de Colombia (Bogotá D.C.)

John Jairo Simbaqueva Valiente


jjsimbaquevav@uincca.edu.co
Programa de Ingeniería Electrónica, Universidad INCCA de Colombia (Bogotá D.C.)

Abstract:

The present work is related about the design and development of a data acquisition card
based in a USB interface to establish communications between PC and microcontroller
PIC18F4550 high-end, with improved performance based in a usb bulk protocol, making the
subsequent signal conditioning and its display with the graphics interfaces using MATLAB
software.

1. INTRODUCCIÓN

En este trabajo, se utilizará la interfaz usb-bulk, la cual permitirá la interacción entre el PC y el


PIC de una manera más eficiente ya que permite mayor velocidad de transferencia y evita la
asignación dinámica en el número de puerto cada que se hace una nueva conexión, también se
lleva a cabo la evaluación de la interfaz de comunicación RS-232 y se propone la visualización
de los datos recibidos a través de un emulador de terminal de uso común como Hyperterminal,
luego de adquirir los datos, estos se observan en una gráfica desarrollada con MATLAB.

1.1. PLANTEAMIENTO DEL PROBLEMA

Se construye un S.A.D (Sistema de Adquisición de Datos) mediante USB y serial para


visualización de datos en Matlab con el uso de un microcontrolador PIC18F4550 teniendo en
cuenta las siguientes limitaciones:
Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

 Frecuencia máxima de 24 MHz según el teorema de Nyquist («Sistemas de adquisición y


Procesamiento de datos», 2011, p. 5).
 Frecuencia máxima de operación de USB del Microcontrolador es de 48
MHz.(Microchip, 2007)
 Velocidad de operación de USB es 12 Mbps/s. (Microelectrónicos, 2015)
 Velocidad máxima de operación de RS232 es de 961000 baudios. (Canto Quintal, 2006)

Por lo tanto se plantea la siguiente pregunta de investigación: ¿Se consigue una mejora sustancial
en la velocidad de adquisición de datos incluyendo en el sistema el modo de transferencia bulk
en la interface USB para la comunicación entre el PC y el Micro controlador?

1.2. DESARROLLO DE CONTENIDOS

A continuación, se ilustra la idea principal del proyecto con los elementos que se trabajarán
durante la realización del mismo.

1.2.1. USB BULK

Se utiliza para la transmisión de importantes cantidades de información, como la de tipo control,


además, este enlace no presenta un volumen de pérdida de datos significativo. Este tipo de
transferencia es útil cuando la razón de transferencia no es crítica como por ejemplo, el envío de
un archivo a imprimir o la recepción de datos desde un escáner («Sistemas de adquisición y
Procesamiento de datos», 2011).

1.2.2. Drivers USB

Se hace uso de los drivers que proporciona Microchip. Los cuales se han modificado para la
realización y configuración del protocolo usb bulk.

MPUSBAPI.DLL: El PIC se identifica en cualquier puerto USB sólo a través del VID&PID.
Con esta "Clase" de driver se obtienen velocidades de transferencias (comunicación) muy
superiores.

Universidad INCCA de Colombia 2


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

MPUSBGETDLL VERSION (VOID): Lee el nivel de revisión del MPUSAPI.dll. Es un nivel de


revisión de 32bits. Esta función no devuelve la versión del código, no realiza nada con el USB.
Devuelve la versión de la DLL en formato hexadecimal de 32bits.

USB_DESC_SCOPE.H: Es el que ayudará a Windows a reconocer al PIC18 como parte del


hardware de la PC (Microchip, 2007).

1.2.3. RS-232

Esta norma fue diseñada para comunicación punto a punto, en donde se tiene una computadora
(en la norma RS232 se le denomina DTE, Data Terminal Equipment) que se encuentra
trasmitiendo hacia un equipo esclavo (en la norma conocido como DCE, Data Communications
Equipment) ubicado a distancias no mayores a 15 metros (aunque en la práctica alcanza
distancias de hasta 50 metros) y a una velocidad máxima de 19,200 bps. Este tipo de trasmisión
se le conoce como "single ended" porque usa en el cable un solo retorno (GND). Es un modo de
trasmisión muy simple, pero también vulnerable al ruido aditivo en la línea y por esa razón es
empleada para comunicación a distancias cortas. (Punto Flotante S.A. 2011. Recuperado de
http://www.puntoflotante.net/RS485.htm)

1.2.4. HYPERTERMINAL

Es un programa del tipo emulador de terminal que puede utilizarse para conectarse con otros
equipos, sitios telnet de internet, realizar la configuración de comunicación PIC-PC, este
programa interactúa con los puertos seriales definidos como COM de las computadoras.

2. PROCEDIMIENTO

Teniendo en cuenta el problema planteado se pretende dar una solución mediante los siguientes
pasos:

 Diseño de programación del Microcontrolador.


 Adquisición de datos en el emulador de terminal Hyperterminal para ambos protocolos.
 Adquisición de datos en interfaz de MATLAB.

Universidad INCCA de Colombia 3


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

 Diseño e implementación de tarjeta de adquisición con dos protocolos de comunicación.

El modelo de tarjeta construido es de bajo costo con relación a:

 Precio Módulo de Adquisición de datos National Instruments $480.000


 Precio Móulo de adquisición de datos USB 10-bits 4 Canales Análogos $158.000
 Sistema de Adquisición de datos USB o Canales Análogos 4 Dig DI-149 $220.000
(Microelectrónicos, 2015)

Los parámetros establecidos en la comunicación de datos se muestran a continuación.

Figura 1. Diagrama de la adquisición de datos y comunicación en bloques.

2.1. ESQUEMA PROTOCOLO RS-232

Inicialmente se implementa la comunicación RS232 mediante simulación de PROTEUS teniendo


en cuenta la velocidad de transmisión es de 9600 baudios a 8 bits.

Universidad INCCA de Colombia 4


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

Figura 2. Ejemplo de esquema circuito RS-232

2.2. PROTOCOLO USB BULK

Del mismo modo que se realiza la comunicación RS232, se implementa la comunicación USB en
el simulador de Proteus

J1
Vcc del USB
1
VCC
3
D+
2
D-
4
GND
USBCONN

X1

U1
2 15
CRYSTAL RA0/AN0 RC0/T1OSO/T1CKI
3 16
RA1/AN1 RC1/T1OSI/CCP2/UOE
4 17
RA2/AN2/VREF-/CVREF RC2/CCP1/P1A
5 23
RA3/AN3/VREF+ RC4/D-/VM
6 24
RA4/T0CKI/C1OUT/RCV RC5/D+/VP
7 25
RA5/AN4/SS/LVDIN/C2OUT RC6/TX/CK
14 26
RA6/OSC2/CLKO RC7/RX/DT/SDO
13
OSC1/CLKI
33 19
RB0/AN12/INT0/FLT0/SDI/SDA RD0/SPP0
34 20
RB1/AN10/INT1/SCK/SCL RD1/SPP1
35 21
RB2/AN8/INT2/VMO RD2/SPP2
D1 36
RB3/AN9/CCP2/VPO RD3/SPP3
22
LED-RED 37 27
RB4/AN11/KBI0/CSSPP RD4/SPP4
38 28
RB5/KBI1/PGM RD5/SPP5/P1B
39 29
RB6/KBI2/PGC RD6/SPP6/P1C
40 30
RB7/KBI3/PGD RD7/SPP7/P1D
8
RE0/AN5/CK1SPP
9
RE1/AN6/CK2SPP
10
RE2/AN7/OESPP
18 1
VUSB RE3/MCLR/VPP Vcc del USB
PIC18F4550

CAPACITOR
47u

Figura 3. Esquema circuito USB BULK.

2.3. ESQUEMA PCB CON RS-232 Y USB BULK

Basados en los protocolos de comunicación empleados, se elabora el prototipo de la tarjeta de


adquisición mostrado en la figura 4.

Universidad INCCA de Colombia 5


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

J7 U1 J4
1 2 15 1
J8 RA0/AN0 RC0/T1OSO/T1CKI J9
2 3 16 2
RA1/AN1 RC1/T1OSI/CCP2/UOE J5
2 3 4 17 3 1
C1 RA2/AN2/VREF-/CVREF RC2/CCP1/P1A
1 4 5 23 4 1 2
RA3/AN3/VREF+ RC4/D-/VM
5 6 24 5 2 3
RA4/T0CKI/C1OUT/RCV RC5/D+/VP
SIL-100-02 6 7 25 6 3 4
RA5/AN4/SS/LVDIN/C2OUT RC6/TX/CK
22pF 14 26 7 4
RA6/OSC2/CLKO RC7/RX/DT/SDO
SIL-100-06 13 SIL-100-04
OSC1/CLKI
SIL-100-07
SIL-100-04
C2 1 33 19 1
J3 RB0/AN12/INT0/FLT0/SDI/SDA RD0/SPP0
2 34 20 2
RB1/AN10/INT1/SCK/SCL RD1/SPP1
1 3 35 21 3
U3 J11 4 36
RB2/AN8/INT2/VMO RD2/SPP2
22 4 SIL-100-08
7805 SIL-100-02 RB3/AN9/CCP2/VPO RD3/SPP3
5 37 27 5
RB4/AN11/KBI0/CSSPP RD4/SPP4 J6
6 38 28 6
RB5/KBI1/PGM RD5/SPP5/P1B
1 3 7 39 29 7
VI VO RB6/KBI2/PGC RD6/SPP6/P1C
CONN-SIL1 8 40 30 8

GND
RB7/KBI3/PGD RD7/SPP7/P1D
J13J1 J12

1
2
SIL-100-08 8 1
RE0/AN5/CK1SPP
1 1 9 2 SIL-100-03
RE1/AN6/CK2SPP

2
2 2 10 3
J2 RE2/AN7/OESPP
18 1
VUSB RE3/MCLR/VPP
C9 C8 SIL-100-02
TBLOCK-I2 R1 DSW1
1uF 10k PIC18F4550
OFF ON
R2 10k 8 1
C3 7 2
33n 6 3
5 4

C4 DIPSW_4

1 3 U2
J10
1
C1+ C1-
2
11 14 3
T1IN T1OUT
12 13 4
R1OUT R1IN
10 7 5
T2IN T2OUT
9 8
R2OUT R2IN C7 CONN-H5
2
VS+
6
VS-
1uF
C2+ C2-
C6
1uF
4 C5 5

8 pin nesecita R?

MAX232

Figura 4. Esquema circuito implementando RS232 y USB BULK.

El resultado de la tarjeta de adquisición diseñada en ARES se puede ver en la figura 5. Además,


las partes que componen la tarjeta son:

1) ACONDICIONAMIENTO DE USB BULK: Configuración componentes, para


reconocimiento del protocolo y voltaje de referencia
2) ACONDICIONAMIENTO DE RS-232: componentes para el funcionamiento del protocolo
RS-232
3) PROGRAMACIÓN: Pines para la programación del pic
4) ALIMENTACIÓN: Utilizada dependiendo de la aplicación con la cual se requiera o se
adiciona un circuito externo.
5) DIP-SWITCH: utilizado para elegir protocolo con el cual se desee realizar la adquisición de
datos.

Universidad INCCA de Colombia 6


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

Figura 5. Esquema del prototipo de la tarjeta de adquisición de datos.

2.4. IMPLEMENTACIÓN EN MATLAB

Se genera un código en script de MATLAB para recibir los datos que llegan al buffer de la
comunicación serial. Se limita a enviar y recibir paquetes de 8 bits, con una velocidad de
transmisión de 128000 baudios. En el PIC se muestra el dato en el puerto A y en MATLAB se
muestra el dato recibido en la línea de comandos de MATLAB. ANÁLISIS DE RESULTADOS

Durante el avance del proyecto, se han probado dos métodos diferentes de comunicación entre el
PC y el microcontrolador 18f4550: serial y usb («USB 2.0 Microchip», 2013).

Con el funcionamiento de los protocolos en una tarjeta, el siguiente paso es probar la


comunicación PC-PIC y observar la información en MATLAB para hacer un análisis de los
datos obtenidos en tiempo real. Tomando como referencia el parámetro de Nyquist («Sistemas de
adquisición y Procesamiento de datos», 2011) con fs >= 2 fo.

En el osciloscopio, se graba la imagen en formato CSV que es un archivo que genera dos celdas
donde están guardados los datos del tiempo y el voltaje de la señal. Luego se exporta a
MATLAB, donde se grafican los datos de la señal obtenida en el osciloscopio como se ve en la
figura 6.

Universidad INCCA de Colombia 7


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

4.5

3.5

2.5

1.5

0.5
-6 -4 -2 0 2 4 6
-3
x 10

Figura 6. Datos obtenidos del osciloscopio guardados en MATLAB.

El ancho de banda de la comunicación serial es de 110kbps, estableciendo un factor limitante


para la adquisición de los datos en MATLAB.

El cálculo del error cuadrático medio estima una comparación con la señal senoidal del
generador de onda con los siguientes parámetros:

 Voltaje offset de 2.5V


 Frecuencia de 100 Hz.

Representada en el osciloscopio, aplicando la misma señal al conversor análogo digital del PIC y
la representación en la línea de comando de MATLAB se obtiene lo ilustrado en la figura 7.

Universidad INCCA de Colombia 8


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

4.5

3.5

2.5

1.5

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4
-3
x 10

Figura 7. Información analógica recibida en MATLAB de la tarjeta en comparación con la señal del
osciloscopio.

El error cuadrático medio es:

( )

Con siete muestras tomadas, el error de cálculo es de 0.75 %. Con más datos, el error aumenta
debido a que la cantidad de muestras tomadas en MATLAB de la tarjeta y entre los datos
generados por el osciloscopio aparentan ser iguales pero son diferentes. Esto se debe a que el
procesador del computador se enfoca en las demás tareas que cumple al iniciar la BIOS, por lo
tanto, los datos recibidos en MATLAB no tienen la prioridad que otros programas.

3. OBSERVACIONES

Con el presente trabajo, se han encontrado algunos resultados esperados como que la
comunicación realizada por USB es mucho más rápida si se usa un método diferente de
comunicación como HID o bulk a diferencia de CDC porque la velocidad manejada por los otros
protocolos está en el rango de 1 Mbps y 1.5 Mbps. Se encontró un inconveniente imprevisto
relacionado con la simulación realizada en MATLAB, esta no es eficiente debido a que la
memoria del procesador no termina de recibir tanta información hasta que se detiene
manualmente, lo cual hace que el computador no procese toda la información con eficiencia.

Universidad INCCA de Colombia 9


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

4. CONCLUSIONES

Un problema común en sistemas operativos convencionales es el manejo de tiempos con


exactitud. En una aplicación no se puede garantizar con precisión de milisegundos la ejecución
de tareas a nivel usuario.

La respuesta del sistema tarda en ser visualizada en la gráfica al usuario, el retraso se debe a que
MATLAB no hace uso completo del procesador del computador.

En el diseño de la tarjeta se presentaron inconvenientes en los drivers que reconocen la tarjeta a


través del protocolo USB, se emplearon métodos de hardware y software como lo fueron la
integración de elementos capacitivos e instalación de drivers de otras fuentes.

5. TRABAJOS FUTUROS

Como expectativas del trabajo, la idea es enlazar el proyecto a un sistema emisor-receptor de


microondas para captar y procesar la información en tiempo real usando una interfaz gráfica más
veloz, además poder procesar cualquier cantidad de información recibida en las entradas del
Microcontrolador usando multicanalización para obtener datos de diferentes fuentes de
información.

Otra expectativa es usar un acelerador en el software MATLAB para obtener una respuesta en
tiempo más aproximada al tiempo real.

REFERENCIAS

Canto Quintal, C. E. (2006). El Puerto serie RS232. Presentado en Microcontroladores,


Universidad Autónoma de San Luis Potosí, México. Recuperado a partir de
http://galia.fc.uaslp.mx/~cantocar/microcontroladores/SLIDES_8051_PDF/EL_RS232.P
DF

Universidad INCCA de Colombia 10


Tarjeta de Adquisición de Datos en MATLAB septiembre de 2015

Microchip. (2007). PIC18F2455/2550/4455/4550 Data Sheet. Microchip Technology Inc.


Recuperado a partir de http://m.dugi-doc.udg.edu/handle/10256/947

Microelectrónicos. (2015). Componentes electronicos circuitos integrados y robótica en


Colombia Bogotá - Adquisición de Datos. Recuperado 8 de septiembre de 2015, a partir
de http://microelectronicos.com/shopdisplayproducts.asp?id=9&cat=Como+nuevos

Sistemas de adquisición y Procesamiento de datos. (2011). En Tecnología Informática y


Computación (pp. 1-21). Alicante (España): Universitat d’Alacant. Recuperado a partir
de
http://rua.ua.es/dspace/bitstream/10045/19119/1/Sistemas%20de%20adquisici%C3%B3n
%20y%20Procesamiento%20de%20datos.pdf

USB 2.0 Microchip. (2013). Recuperado a partir de


http://www.muchotrasto.com/USB2Microchip.php

Universidad INCCA de Colombia 11

Vous aimerez peut-être aussi