Sach LabVIEW - Bai 10 Cac Ung Dung Voi Card Hocdelan USB 9001 Va HDL-9000
Comunicacion USB Labview
-
Upload
javier-khan-sanchez -
Category
Documents
-
view
32 -
download
1
Transcript of Comunicacion USB Labview
-
5/20/2018 Comunicacion USB Labview
1/18
1
Implementacin de Comunicacin USB con Microcontrolador
PIC18F4550 y LabVIEW
Lic. Fsica Yohan Prez-Moret
PCB por La Derecha
1. Resumen
Se presenta el desarrollo, simulacin e implementacin de la comunicacin USB
con un microcontrolador PIC18F4550 y LabVIEW. El cdigo programado al microcontro-lador PIC enva cclicamente la lectura de su conversor anlogo-digital (AD) y el estado del
pin RA4 a una computadora personal a travs del bus USB. El cdigo del microcontrolador
fue escrito en lenguaje C, con el compilador CCS 4.018. En LabVIEW 8.0 se gener eldriver para el dispositivo USB y se dise un instrumento virtual (VI) para atender la co-
municacin. El VI se encarga de graficar la lectura AD del PIC y a peticin del usuario que
lo opera de enviarle un valor de un byte, el cual es cargado en el puerto B del PIC. Se rea-
liza la simulacin utilizando Proteus 7.2 y el VI diseado. Por ltimo se muestra la imple-mentacin prctica en la placa de demostracin PICDEM 2 plus, la cual fue modificada
para la funcionalidad USB.
Palabras claves: USB, microcontrolador PIC, LabVIEW, PICC, MPLAB, Instrumenta-
cin, PICDEM.
2. Introduccin
El bus serie universal o en sus
siglas en ingls: USB, posee algunas ca-
ractersticas como son:
Integridad de la seal por el uso de
apantallamientos, drivers y receptores
diferenciales.
Los dispositivos USB de clase HID(Human Interface Device) son sopor-
tados por los sistemas operativos des-
de Windows Millennium en adelante.
En dispositivos USB 2.0 se pueden
transmitir datos a razn de 480 mega-bits por segundo.
Los cables USB individuales pueden
extenderse hasta 5 m de distancia y
ms con el uso de multiplexores depuertos o HUB.
El bus USB puede suplir hasta 500
mA @ 5 V a cada uno de los disposi-
tivos conectados, eliminando el uso
de fuentes y cables externos en apli-
caciones de baja potencia.
Esas caractersticas, por citar solo
algunas, hacen del bus USB una opcin
til en aplicaciones de instrumentacinelectrnica. Muchos fabricantes de mi-
crocontroladores programables como Mi-crochip, estn incluyendo un modulo
USB en sus dispositivos. Facilitando el
desarrollo de aplicaciones de instrumen-
tacin que aprovechen las capacidadesUSB.
Por otra parte, el soporte brindado
por los fabricantes de computadoras per-
sonales (PC) a los puertos seriales RS-
232 y paralelos Centronics, de amplio usoentre los instrumentistas, cada vez es me-
nor. En la actualidad es comn que una
PC incluya solo un puerto serial RS232,o ninguno en el caso de algunas portti-
les, y s varios puertos USB.
En el presente trabajo se presenta
el uso del mdulo USB que posee el mi-
-
5/20/2018 Comunicacion USB Labview
2/18
2
crocontrolador PIC18F4550 (1) del fabri-cante Microchip y su atencin utilizando
LabVIEW 8.0.
2.1. Estructura USB
La funcionalidad de los dispositi-
vos USB est estructurada en capas, vaselaFig. 1.La capa de mayor jerarqua, des-
pus del dispositivo en s, es la de confi-guracin. Un dispositivo puede tener ml-
tiples configuraciones. Por ejemplo, un
dispositivo puede tener varias exigencias
de energa segn el modo en que est:
auto-energizado o bus-energizado.
Fig. 1. Estructura de capas del USB
Por cada capa de configuracin
pueden existir mltiples capas de interfa-
ces. Por debajo de la interfaz estn losendpoints. Los datos son transferidos di-
rectamente a ese nivel. El endpoint-0 es
siempre de control y cuando un dispositi-vo se conecta al bus debe estar disponi-
ble.
La informacin comunicada al bus
est agrupada en paquetes temporales de1 ms conocidos como frames. Cada frame
puede contener tantas transacciones como
dispositivos y enpoints estn conectados.
Transferencias
Hay cuatro tipos de transferencias
especificadas por la norma USB (2). Isocrnica: Provee un mtodo para
transferir grandes cantidades de datos
(hasta 1023 bytes) con una temporiza-cin de envo asegurada (isocrnica:
de igual tiempo); aunque la integridad
de los datos no se asegura. Utilizado
en aplicaciones de transmisin conti-
nua (streaming) y donde pequeas
prdidas de datos no son crticas, co-
mo en el caso de transmisin de au-dio.
Bulk: Este mtodo de transferencia
permite el envo de grandes cantida-des de datos, asegurando su integri-
dad. Pero no se garantiza la tempori-zacin entre envos.
Interrupcin:Este mtodo asegura latemporizacin y la integridad de los
datos para pequeos bloques de datos.
Control:Este tipo de transferencia espara configuracin y control del dis-
positivo conectado al bus USB.
Los dispositivos de alta velocidadsoportan todos los tipos de transferencia;
el resto est limitado a transferencias por
interrupcin y control.
3. Materiales y Mtodos
Para la implementacin y montaje
de la comunicacin USB se utilizaron lassiguientes herramientas:
-
5/20/2018 Comunicacion USB Labview
3/18
3
compilador de C PIC-C versin4.018 (3): para la escritura del cdigo
fuente y la generacin del archivo de
programacin HEX del PIC.
Proteus 7.2 (4): entorno de captura y
simulacin de circuitos electrnicos.La versin 7.2 incluye libreras para el
microcontrolador PIC18F4550 y la
simulacin USB.
LabVIEW 8.0: Entorno de programa-
cin grfica.
PICDEM 2 Plus de Microchip: Placade demostracin para el trabajo con
los microcontroladores de la gama
media y alta. Posee mdulos de hard-
ware prediseados de alimentacin,visualizacin con LCD y LED, so-
ckets de 18, 28 y 40 pines as como
terminales para fcil acceso a los
puertos.
Cable de conexin USB tipo A plugpara conexin del PIC a la PC.
Microcontrolador PIC18F4550
Si no se dispone de recursos mate-
riales como el PIC18F4550 y el PICDEM
2 Plus, el trabajo puede realizarse hasta laetapa de simulacin con el uso de PICC y
Proteus.
Fig. 2. Circuito diseado en Proteus solo para fines de simulacin USB con el PIC18F4550En Proteus se mont el circuito de
laFig. 2con el fin de simular el compor-
tamiento del microcontrolador
PIC18F4550 y el bus USB. Al puerto B
del PIC se conectaron diodos LED para
visualizar el dato de tipo byte recibido vaUSB.
El PIC fue programado en Proteus
con el archivo tipo COF generado durante
la compilacin del cdigo fuente. Esteltimo se muestra en el anexo A y al cual
volveremos ms adelante.
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA3/AN3/VREF+5
RA4/T0CKI/C1OUT/RCV6
RA5/AN4/SS/LVDIN/C2OUT7
RA6/OSC2/CLKO14
OSC1/CLKI13
RB0/AN12/INT0/FLT0/SDI/SDA33
RB1/AN10/INT1/SCK/SCL34
RB2/AN8/INT2/VMO35
RB3/AN9/CCP2/VPO36
RB4/AN11/KBI0/CSSPP37
RB5/KBI1/PGM38
RB6/KBI2/PGC39
RB7/KBI3/PGD40
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2/UOE 16
RC2/CCP1/P1A 17
VUSB18
RC4/D-/VM 23
RC5/D+/VP 24
RC6/TX/CK 25
RC7/RX/DT/SDO 26
RD0/SPP0 19
RD1/SPP1 20
RD2/SPP2 21
RD3/SPP3 22
RD4/SPP4 27
RD5/SPP5/P1B 28
RD6/SPP6/P1C 29
RD7/SPP7/P1D 30
RE0/AN5/CK1SPP 8
RE1/AN6/CK2SPP 9
RE2/AN7/OESPP 10
RE3/MCLR/VPP 1
U1
PIC18F4550
VCC 1
D+ 3
D- 2
GND 4
J1
USBCONN
RV1
1k
VDD
RA4
470R
10k
470R
-
5/20/2018 Comunicacion USB Labview
4/18
4
3.1. Configuracin del Reloj del PIC
para el uso del mdulo USB
El PIC18F4550 incluye un sistema
de generacin de reloj distinto a los mi-
crocontroladores de su misma gama. Ello
para poder cumplir los requerimientos delUSB en alta y baja velocidad. El
PIC18F4550 incluye un sistema de pres-calers y postscalers que garantizan la fre-
cuencia del mdulo USB en alta y baja
velocidad a partir de diferentes valores deun oscilador primario. Sucede que el m-
dulo USB solo acepta 6 MHz para el mo-
do de baja velocidad o 48 MHz para altavelocidad, respectivamente. Por ello, el
microcontrolador ofrece un juego de fusi-
bles, que bien configurados, permitenlograr dichas velocidades a partir de otrasfrecuencias del reloj externo utilizado. En
la seccin 2.0 de la referencia (1) se danlos detalles sobre la configuracin del
reloj del mdulo USB.
Cuando se disea el cdigo fuentepara usar el mdulo USB del
PIC18F4550, en la lnea que define la
frecuencia del oscilador se debe incluir la
frecuencia a usar en el ncleo del micro-
controlador, que no necesariamente tieneque coincidir con la del oscilador utiliza-
do. Por ejemplo, en nuestro caso se em-ple un oscilador activo de 4 MHz, no
obstante, en la lnea 39 del cdigo fuente,
ver anexo A, se defini otro valor de fre-cuencia: 24 MHz, el cual corresponde a la
frecuencia a la que trabajar el ncleo del
microcontrolador al ser activado el PLL
multiplicador de frecuencia, necesario eneste caso para generar la frecuencia co-
rrecta al mdulo USB.
Luego, en la lnea 40, se progra-maron los fusibles USBDIV, PLL y
CPUDIV con valores tales que garanticen
que a partir de los 4 MHz del oscilador
externo, el mdulo USB trabaje a la fre-
cuencia de 48 MHz definida en la lnea39.
Es importante sealar tambin quepara utilizar el mdulo USB no cualquier
valor de reloj es vlido. En la seccin 2.3
de la referencia (1) se muestra una tablacon las frecuencias y tipos de osciladores
compatibles con el USB, relacionados
con los valores de los fusibles de configu-racin USBDIV, PLL y CPUDIV. Una
seccin de esa tabla se reproduce en la
Fig. 3. Por ejemplo, si se dispone del os-cilador HS de 24 MHz de la columna
Input Oscillator frecuency de la Fig. 3,
entonces las frecuencias posibles para elncleo del microcontrolador seran
24 MHz, 12 MHz, 8 MHz y 6 MHz, se-
gn la columna Microcontroller ClockFrecuency. Suponiendo que escogemos
la frecuencia de 8 MHz para el ncleo
tendramos que escribir las siguientes
lneas de cdigo en PICC:
#fuse delay(clock=8000000)
#fuses HS, NOWDT, NOPROTECT, NOLVP,
NODEBUG, USBDIV, PLL6, CPUDIV3,
VREGEN
Ntese que en la primera lnea de
cdigo anterior, no se defini la frecuen-
cia del oscilador externo HS de 4 MHz,sino la frecuencia de trabajo resultante del
PLL y CPUDIV escogidos.
-
5/20/2018 Comunicacion USB Labview
5/18
5
Fig. 3. Seleccin de la frecuencia USB a partir de la frecuencia del oscilador de entrada
3.2. Descriptores USB
Cuando un dispositivo USB esconectado a la PC el sistema operativo es
capaz de reconocer su fabricante, identifi-cador de producto e instalarle un driver
estndar HID o abrir un asistente para
encontrar el adecuado. Tambin muestramensajes sobre el estado del dispositivo,
marca, modelo, etc. Toda esa informacin
que requiere el sistema operativo paraidentificar al dispositivo USB est alma-
cenada en el microcontrolador PIC, en
una zona de memoria RAM USB. En par-ticular en el banco 4 de la RAM USB,
destinado al buffer de descriptores.
Los descriptores son archivos que
se incluyen junto al cdigo fuente para sergrabados a esa zona de memoria RAM
USB. El diseo de un descriptor es el
tema de mayor complejidad en el uso de
la comunicacin USB. Las referencias (2;
5) brindan informacin sobre el diseo dedescriptores. En nuestro caso tomamos y
adaptamos el descriptor brindado en unode los ejemplos USB del compilador CCS
los cuales tambin son una referencia de
consulta vlida.El anexo B muestra el descriptor
agregado al cdigo fuente del microcon-
trolador. La inclusin del descriptor en elarchivo fuente se realiz a travs de la
directiva include de la lnea 64de este
ltimo.En el descriptor se incluyen el
identificador del fabricante del dispositi-
vo (VID) y el identificador del producto
(PID). Esos identificadores son utilizadospor el sistema operativo de la PC para
encontrar el driver apropiado al dispositi-
vo USB. Las lneas 184 y 185 del descrip-
-
5/20/2018 Comunicacion USB Labview
6/18
6
tor, vase el anexo B, contienen el VID yel PID, respectivamente. La lnea 131
declara el tipo de transferencia que sopor-
tar el dispositivo, en este caso el cdigo
significa transferencia por interrupcin.
3.3. Driver e instrumento Virtual en
LabVIEW para el dispositivo USB
Para que nuestro dispositivo USB
pueda ser controlado desde LabVIEW es
necesario que este lo reconozca comopropio, con un driver USB desarrollado
en LabVIEW. Para ello LabVIEW brinda
una utilidad llamada VISA Driver Deve-lopment Wizard Hardware Bus, vase
laFig. 4.Esta da la posibilidad de desarro-
llar un driver para dispositivos PCI, USBo FireWire.
Fig. 4. Utilidad para desarrollar Driver USB de LabVIEW
En el siguiente paso del mismo
asistente se encuentran los campos delVID y del PID. Estos campos se llenan en
correspondencia con las lneas 184 y 185
del descriptor del anexo B, tal y como semuestra en laFig. 5.
Despus de especificar el PID y el
VID el asistente crear un archivo de tipoINF en el directorio y nombre especifica-
dos en el paso mostrado en laFig. 6.
Fig. 5. Especificacin del VID y del PID del driver
Fig. 6. Finalizacin del asistente, nombre y lugar del
driver .inf a crear.
Con el cdigo del microcontrola-dor listo y el driver en LabVIEW dispo-
nible, podemos iniciar la simulacin del
microcontrolador USB y observar cmoeste es detectado por el sistema operativo.
3.3.1. Simulacin del dispositivo con
Proteus
Al iniciar la simulacin del circui-
to de laFig. 2el sistema operativo detecta
la presencia de un dispositivo USB, ini-
ciando el proceso de enumeracin que
bsicamente consiste en asignarle unadireccin en el bus al dispositivo. Des-
pus de esto se abre el asistente paraHardware nuevo encontrado, tal y como
se muestra en laFig. 7.Con este asistente
-
5/20/2018 Comunicacion USB Labview
7/18
7
se localiza el driver INF creado en Lab-VIEW, instalndolo desde una lista o ubi-
cacin especfica,Fig. 8.
Fig. 7. Asistente para localizar el driver del dispositivo
Fig. 8. Localizacin del driver INFDespus del paso anterior el asis-
tente concluye de instalar el driver para el
dispositivo,Fig. 9yFig. 10.
Fig. 9. Finalizacin del asistente
Fig. 10. Confirmacin de Windows
Si ahora observamos el adminis-
trador de Hardware de Windows XP po-
dremos percatarnos de que se ha agregado
una nueva categora, la categora de dis-positivos USB de National Instruments(NI-VISA USB). Y bajo esta ltima apa-
recer nuestro dispositivo USB. Ello sig-
nifica que a partir de ahora LabVIEW
reconoce nuestro dispositivo como propioy estaremos en condiciones de controlarlo
con un VI, empleando las VISAS de
LabVIEW. LaFig. 11muestra la categora
de NI-VISA USB Devices en el adminis-
trador de dispositivos de Windows XP.
Fig. 11. Presencia del dispositivo en el Administrador de
Dispositivos de Windows
-
5/20/2018 Comunicacion USB Labview
8/18
8
3.3.2. Instrumento Virtual
Antes de pasar al desarrollo de un instrumento virtual o VI para la comunicacin
con nuestro dispositivo USB es conveniente obtener su resource name. Ello se puede
hacer ejecutando la utilidad de LabVIEW llamada Visa Interactive Control, mostrada en
laFig. 12.De ella podremos determinar que el VISA resource name de nuestro dispositivo
es la cadena: USB0::0x04D8::0x1121::NI-VISA-0::RAW, con ella podremos referenciar a nues-tro dispositivo desde un VI.
Ntese como en el resource name
del dispositivo aparecen los cdigos PID yVID que habamos programado al microcon-
trolador en su descriptor. En la Fig. 13 se
observa el panel frontal del VI desarrollado.
Al fondo de este el circuito desarrollado en
Proteus interactuando con el VI. Los cam-bios realizados en el potencimetro RV1
eran registrados por el instrumento virtualcclicamente y al activar el botn LEDs del
Puerto B del VI el circuito responda po-
niendo en alto todos los pines del puerto B,
se enviaba el cdigo hexadecimal 0xFF ha-cia el PIC o el cdigo 0x00 en caso de des-
activar el botn de Activar LEDs del VI.
Fig. 13. Panel Frontal del VI desarrollado y simulacin en Proteus
Fig. 12. Visa Interactive Control para determinar el VISA
Resource Name
-
5/20/2018 Comunicacion USB Labview
9/18
9
La ventana de cdigo
del VI desarrollado
se muestra en la Fig.
14. Se programaron
dos ciclos indepen-dientes, uno para el
envo y otro para la
recepcin de las lec-turas AD del PIC. La
llegada de un dato al
puerto USB de la PCes detectada por el
VI a travs de una
interrupcin USB.El envo y la
recepcin se realizanindependientemente
la una de la otra, full
dplex.
Fig. 14. Diagrama de cdigo del VI desarrollado
-
5/20/2018 Comunicacion USB Labview
10/18
10
4. Implementacin Prctica
Para el montaje prctico del
PIC18F4550 se adapt el PICDEM 2
Plus, incluyndole un conector Header de
4 pines en su rea de prototipo. Los pines
2 y 3 del conector Header se unieron atravs de cables con los pines 23 y 24 del
socket de 40 pines del PICDEM, respec-tivamente. Los pines 23 y 24 se corres-
ponden con las seales diferenciales D- y
D+ respectivamente. El pin 1 del conectorHeader se conect al comn del PICDEM
2 plus y el pin 5 al terminal de 5 V de la
misma placa de demostracin, con el ob-jetivo de alimentarla directamente del bus
USB.
Los resultados obtenidos con elmontaje prctico fueron los mismos quecon la simulacin en Proteus 7.2. El VI
diseado se comport de igual manera ys se not la diferencia de velocidad entre
el montaje prctico y la simulacin, esta
ltima ms lenta que la primera. Al co-nectar el dispositivo USB por primera vez
a la PC Windows ya lo reconoca y pudo
cargar el driver correspondiente que pre-
viamente haba sido instalado en la fase
de simulacin con Proteus.
5. Conclusiones
Se logr realizar la simulacin y la
implementacin prctica de la comunica-
cin USB utilizando un microcontroladorPIC18F4550 y un VI diseado en Lab-
VIEW.
El desarrollo de los descriptores
USB an debe profundizarse ya que estosconstituyen una gran parte de la configu-
racin del dispositivo USB.
7. Referencias
1. Inc., Microchip Technology.
PIC18F2455/2550/4455/4550 Data Sheet.
s.l. : Microchip, 2004. DS39632B.
2. USB Specification, version 2.0: Chapter 9.
[Online] http://www.usb.org.
3. CCS.[Online] http://www.ccsinfo.com/.
4. [Online] http://www.labcenter.co.uk/.
5. Condit, Reston.TB054: An Introduction to
USB Descriptors with a Game Port to USB
Game Pad Translator Example. s.l. :
Microchip Technology, 2004. DS91054C.
6. Dearborn, Scott.AN971: USB Port-
Powered Li-Ion/Li-Polymer Battery Charging.
s.l. : Microchip Technology Inc, 2005.
7. Condit, Reston.AN258: Low Cost USB
Microcontroller Programmer. s.l. : Microchip
Technology Inc., 2003. DS00258A.
8. Rojvanit, Rawin.AN956: Migrating
Applications to USB from RS-232 UART with
Minimal Impact on PC software. s.l. :
Microchip Technology, 2004. DS00956B.
9. Microchip.[Online]
http://www.microchip.com.
-
5/20/2018 Comunicacion USB Labview
11/18
11
Anexos
Anexo A. Cdigo Fuente en lenguaje C del PIC18F4550 con USB
-
5/20/2018 Comunicacion USB Labview
12/18
12
-
5/20/2018 Comunicacion USB Labview
13/18
13
-
5/20/2018 Comunicacion USB Labview
14/18
14
Anexo B. Descriptor USB del dispositivo
-
5/20/2018 Comunicacion USB Labview
15/18
15
-
5/20/2018 Comunicacion USB Labview
16/18
16
-
5/20/2018 Comunicacion USB Labview
17/18
17
-
5/20/2018 Comunicacion USB Labview
18/18
18