Académique Documents
Professionnel Documents
Culture Documents
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
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?
A continuación, se ilustra la idea principal del proyecto con los elementos que se trabajarán
durante la realización del mismo.
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.
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:
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
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
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).
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.
4.5
3.5
2.5
1.5
0.5
-6 -4 -2 0 2 4 6
-3
x 10
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:
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.
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.
( )
∑
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.
4. CONCLUSIONES
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.
5. TRABAJOS FUTUROS
Otra expectativa es usar un acelerador en el software MATLAB para obtener una respuesta en
tiempo más aproximada al tiempo real.
REFERENCIAS