Professional Documents
Culture Documents
FACULTAD DE INGENIERA
MXICO, D. F. 2009
INTRODUCCIN .................................................................................................................... 1 POR QU UN PUERTO USB?................................................................................................... 1 QU ES ADQUISICIN DE DATOS? .......................................................................................... 3 ALCANCES Y OBJETIVOS ......................................................................................................... 5 ANTECEDENTES.................................................................................................................... 7 INTRODUCCIN A LOS PUERTOS CONVENCIONALES. ............................................................... 7 El puerto serie RS-232. ................................................................................................ 7 El puerto paralelo de impresin................................................................................... 8 El puerto USB............................................................................................................. 10
BASES DEL PUERTO USB. ..................................................................................................... 11 Seal diferencial......................................................................................................... 12 Los paquetes............................................................................................................... 12 La enumeracin.......................................................................................................... 15 Los descriptores. ........................................................................................................ 18 Tipos de transferencias. ............................................................................................. 21 Clases. ........................................................................................................................ 22
LOS MICROCONTROLADORES PIC...................................................................................... 23 Microcontroladores vs. Microprocesadores. ............................................................. 23 Clasificacin............................................................................................................... 25 Arquitectura. .............................................................................................................. 26 Caractersticas generales........................................................................................... 28 Configuracin............................................................................................................. 32
PIC18F4550......................................................................................................................... 32 Oscilador.................................................................................................................... 35 Puertos. ...................................................................................................................... 36 USB. ........................................................................................................................... 42 Convertidor A/D......................................................................................................... 43 I2C. ............................................................................................................................. 45
2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.5 2.6 2.7 3 3.1 3.2
EL ESTNDAR DE COMUNICACIONES I2C. ............................................................................. 46 CIRCUITOS IMPRESOS............................................................................................................ 48 DESARROLLO DE UNA TARJETA DE PROGRAMACIN PARA PIC............................................. 52 DESARROLLO. ..................................................................................................................... 55 SELECCIONANDO EL MICROCONTROLADOR. ......................................................................... 56 PROGRAMACIN DEL PROTOCOLO USB PARA EL PIC........................................................... 58
EDICIN DEL CONTROLADOR Y SUS EFECTOS ........................................................................ 59 PROBANDO LA ENUMERACIN, CIRCUITO SIMULADO CON PROTEUS ..................................... 61 DESARROLLO DEL HARDWARE.............................................................................................. 67 DESARROLLO DEL FIRMWARE ............................................................................................... 69 Configuracin de los canales de entrada analgicos................................................. 70 Configuracin de los canales digitales. ..................................................................... 71 Configuracin de la I2C para los canales analgicos de salida. ............................... 71 Seleccin de los bits de configuracin. ...................................................................... 72 Programa del microcontrolador. ............................................................................... 72
DESARROLLO DEL MDULO EN VB .NET. ............................................................................ 76 PROBANDO LA SIMULACIN.................................................................................................. 77 EJEMPLO DE APLICACIN: CONTROL DE VELOCIDAD CRUCERO EN
MOTORES ELCTRICOS. ......................................................................................................................... 81 4.1 4.2 4.3 5 6 7 8 9 PLANTEAMIENTO GENERAL. ................................................................................................. 81 DESARROLLO DE LA INTERFAZ ELCTRICA. .......................................................................... 82 DESARROLLO DEL SOFTWARE............................................................................................... 83 RESULTADOS Y CONCLUSIONES. ................................................................................. 85 APNDICE A: TARJETA PROGRAMADORA DE PICS. ............................................. 87 APNDICE B: CDIGO DEL MDULO USBCTRL.VB. ............................................... 89 APNDICE C: CDIGO DEL EJEMPLO DE APLICACIN. ....................................... 95 MESOGRAFA..................................................................................................................... 101
1 Introduccin
En la presente tesis se trata el desarrollo de una tarjeta de adquisicin de datos por puerto USB. Antes que nada se describe el por qu de esta tesis. Posteriormente se toman algunos de los antecedentes necesarios para poder desarrollar esta tarjeta. Finalmente, se analiza el desarrollo y la evolucin de la tarjeta. Posteriormente, al hablar del por qu de esta tesis, nos remontamos a los temas ms elementales de la propuesta, del por qu de un puerto USB?, qu es una tarjeta de adquisicin de datos? y adicionalmente se tratan los alcances y objetivos de esta tesis.
-1-
cualquier tipo de datos en tiempo real, entre otras, son aplicaciones tpicas para el USB, en las que adems resulta ptima la seleccin de este puerto. Por si esto no bastara, el USB es capaz de suministrar hasta 500 miliamperes de corriente, lo que nos permite desarrollar aplicaciones sin fuente adicional de energa. No debe de perderse de vista el hecho de que si nuestra aplicacin requiere de ms de 500 miliamperes, ser necesario agregar una fuente externa de alimentacin, por lo que el puerto consumir nicamente la energa para transmisin de datos. Por otra parte, el trmino Plug-n-Play se refiere a la capacidad de un perifrico de ser configurado automticamente por la computadora al ser conectado a la misma; si conectamos algn dispositivo en los puertos paralelo o serie usualmente es necesario reiniciar la computadora para que la configuracin tenga efecto. En cambio, un USB permite utilizar el elemento inmediatamente despus de haberlo conectado. Cabe aclarar que en algunas ocasiones es necesario proporcionar el controlador (programa que instruye a la computadora sobre cmo configurar el perifrico en cuestin), sin embargo, despus de haberlo proporcionado la primera vez, el perifrico se puede utilizar al momento de conectarse nuevamente. Con base en lo anterior, el USB ofrece varias facilidades a nivel usuario, lo que ha propiciado que se demanden ms computadoras con este puerto. Adicionalmente, existe una creciente demanda de computadoras porttiles que en la actualidad carecen de los puertos paralelo y serie, que seran la alternativa ms viable de expansin de la computadora despus del USB. El desarrollo de la tarjeta propuesta busca ayudar tanto a alumnos como a profesores en la comunicacin con la computadora en los diversos proyectos escolares. Segn lo mencionado anteriormente, se observa una creciente demanda de computadoras porttiles nicamente con USB y debido al costo de una tarjeta comercial (superiores a los 1,500 pesos), es conveniente realizar un desarrollo propio para los alumnos de la Facultad de Ingeniera.
-2-
Como se puede ver en la figura anterior, la adquisicin de datos no es un proceso de una sola etapa, sino que debe de cumplir con ciertos subprocesos que acondicionen las seales a un lenguaje con el que la mquina pueda trabajar. Para analizar paso a paso el proceso de adquisicin de datos, se usa como convencin que el proceso se hace del mundo real hacia la computadora, siendo el proceso inverso directamente equiparable al proceso de la computadora hacia el mundo real.
-3-
Este proceso comienza con el fenmeno objeto de investigacin. Usualmente la seal a adquirir del fenmeno no ser del tipo elctrico. Por esto, es necesario utilizar un transductor (elemento capaz de transformar entre tipos de energa), que cambie la magnitud del fenmeno, ya sea fuerza, presin, temperatura, etc., en una seal elctrica. En ese instante se tiene una seal elctrica que, en el mejor de los casos presentar valores digitales, es decir, un 1 o un 0 lgico. Si ste fuera el caso, la seal se puede enviar a la computadora con slo acondicionar los niveles de voltaje. Sin embargo, muchas veces lo que se tiene es una seal analgica (que tiene valores continuos) la cual hay que discretizar y codificar para lograr que la computadora entienda dicho valor. Es aqu donde entran los convertidores analgico-digital, o digital-analgico en caso de que sea de la computadora al mundo real, por ejemplo. Un convertidor analgico-digital, figura 1.2, o ADC (por su nombre en ingls Analog to Digital Converter) es un dispositivo que compara el voltaje de entrada con un valor de referencia y da como salida un cdigo digital equivalente. Los procesos por los que pasa este convertidor se muestran en la misma figura. De manera anloga, un convertidor digital-analgico o DAC (del ingls Digital to Analog Converter), recibe un cdigo digital y nos da un voltaje de salida equivalente.
Como los valores arrojados por el ADC son paquetes de unos o ceros lgicos se necesita un elemento que se encargue de la transmisin de los datos para que la computadora los pueda recibir de una forma que sta entienda. Este elemento debe de ser capaz de transmitir, por medio del puerto al que se conecte, los datos en el momento en el que sean requeridos. Para esto, se requiere de un hardware de transferencia y un protocolo de transferencia, y finalmente, se necesita un software con el cual operar los datos recibidos. Existen otras etapas de acondicionamiento, como: filtrado, amplificacin, atenuacin, aislamiento, etc. Sin embargo, no tiene caso profundizar en ellas al no ser siempre necesarias y al estar fuera de los alcances del presente trabajo. -4-
La tarjeta a desarrollar no planea ser una innovacin tecnolgica, ms bien planea ser una solucin costeable que pese a que no iguale las caractersticas de tarjetas de adquisicin de datos del mercado, sea plenamente funcional para proyectos a nivel educativo.
-5-
La solucin pensada incluye entradas y salidas analgicas y digitales, 8 canales digitales y 8 analgicos, cuyo voltaje de operacin se limita a un rango de 0 a 5 volts. Debido a su facilidad de obtencin, y a la familiaridad que tienen los microcontroladores PIC, el microcontrolador propuesto es un PIC18F4550, el cual es capaz de soportar comunicacin USB y cuenta con canales multiplexados conectados a un ADC con una resolucin de 10 bits. Existen otros microcontroladores con capacidades similares, sin embargo conseguirlos es complicado, o bien sus herramientas de desarrollo son costosas.
-6-
2 Antecedentes.
En este captulo se trata la comparacin entre puertos, analizando sus ventajas y desventajas. Adicionalmente se profundiza en el anlisis de las caractersticas del puerto USB, pasando por el protocolo de comunicacin y sus diferentes modos de operacin. Al tratarse la tesis de un desarrollo integral se debe retomar un poco sobre microcontroladores, sus especificaciones y su programacin, as como la creacin de circuitos impresos para dar presentacin. Adems, con fines de acoplamiento de circuitos, se necesita un poco de informacin sobre la comunicacin I2C.
Tpicamente este puerto se puede encontrar en una conexin del tipo DB de 9 (figura 2.1) o de 25 pines, siendo la primera la ms comn hoy en da. Ambos tipos de -7-
conexin manejan 9 seales, que se muestran a continuacin en la tabla 2.1. De las 9 seales, 6 son de control, y se puede establecer una comunicacin con las otras tres seales (RD, TD y GND).
CD RD TD DTR GND DSR RTS CTS RI Seal Carrier Detect Received Data Transmited Data Data Terminal Ready Ground Data Set Ready Request To Send Clear To Send Ring Indicator Pin en DB-9 Pin en DB-25 1 8 2 3 3 2 4 20 5 7 6 6 7 4 8 5 9 22
Tabla 2.1. Numeracin de pines en los distintos conectores. Los pines no mencionados no se utilizan.
El cable de conexin puede tener un largo de hasta 30 metros y el nmero de hilos del mismo depende del conector y de la conexin que se desee realizar (con o sin seales de control). Esta interfaz nos permite la comunicacin slo entre dos elementos con una tasa de transferencia mxima de 20 kb por segundo (115 kb agregando un poco de hardware). Los voltajes que maneja para los niveles lgicos son positivos y negativos en lugar de la lgica meramente positiva de los circuitos tipo TTL o CMOS. Para las seales de datos, en corriente directa, un voltaje positivo superior a +5 V corresponde al nivel lgico 0 mientras que un voltaje inferior a -5 V corresponde al nivel lgico 1, es decir, lgica negativa; para las seales de control se manejan los mismos rangos pero con lgica positiva. Los rangos de voltaje utilizados son 12 Vdc, sin embargo, los elementos soportan voltajes de hasta 15 Vdc. Afortunadamente, existen circuitos integrados, como el MAX232, para convertir los niveles lgicos a TTL o CMOS.
-8-
b)
Esta interfaz se puede presentar con conectores de 25 pines (figura 2.2.a) o de 36 pines (figura 2.2.b), de los cuales se tienen 8 pines de salida, 5 de entrada y 4 bidireccionales (lo anterior desde el punto de vista de la computadora). El cable conector que presenta la computadora es el DB-25 y los perifricos pueden presentar el DB-25 o el Centronics. Se muestra en la tabla 2.2 el listado de los pines.
Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 Nombre nStrobe D0 D1 D2 D3 D4 D5 D6 D7 nAck Busy PaperEnd Select Tipo Bidireccional Salida Salida Salida Salida Salida Salida Salida Salida Entrada Entrada Entrada Entrada Pin 14 15 16 17 18 19 20 21 22 23 24 25 Nombre nAutoLF nError nInit nSelectIn GND GND GND GND GND GND GND GND Tipo Bidireccional Entrada Bidireccional Bidireccional -
Tabla 2.2. Listado de pines para un conector DB-25 de puerto paralelo de impresora.
A diferencia del puerto RS-232, el puerto paralelo de impresora maneja niveles lgicos TTL, lo que nos permite una fcil conexin con circuitos integrados comerciales
-9-
como microcontroladores, compuertas lgicas, contadores, etc. Esta interfaz nos permite la conexin entre dos elementos con una tasa de transferencia de hasta 8 Mbps. Esta interfaz nos permite conectar elementos con una distancia mxima cercana a los 9 metros.
-10-
Para el desarrollador: Como se menciona ms adelante, el puerto USB cuenta con 3 distintas velocidades y 4 tipos de transferencia, lo que lo vuelve verstil. Los sistemas operativos actuales cuentan con soporte para la conexin y desconexin del dispositivo. Adems, genera una relacin entre los dispositivos y los controladores necesarios para emparejarlos al momento en que se conectan. Existen microcontroladores con capacidad para USB, lo que facilita el desarrollo de perifricos desde cero. El puerto USB presenta multiplicidad de conectores, sin embargo, la estructura de todos ellos es la misma. El cable maneja 4 hilos, dos de alimentacin y dos de datos; en los conectores pequeos maneja un hilo adicional sin otra funcin que la de distinguir el tipo de conector. A diferencia de la interfaz serial RS-232, los canales de comunicacin son bidireccionales y ambos manejan el mismo sentido de transmisin a la vez; esto con la finalidad de dar una cierta redundancia en los datos transmitidos para asegurar su fidelidad. El cable de conexin puede presentar una longitud mxima de 5 metros. Como las velocidades de transmisin del cable son muy altas, ste se convierte en una muy buena antena [1], razn por la cual el cable debe de ser blindado, contrarrestando el efecto indeseado y elevando su costo. La velocidad de transmisin mxima que puede presentar este puerto es de 480Mb por segundo, mostrando una notable superioridad ante los otros puertos tratados. Adicionalmente el mximo nmero de elementos que se pueden conectar es de 127, haciendo uso de hubs. Cabe aclarar que la velocidad mxima depende de diversos factores como se tratar ms adelante.
En sta seccin se asume una conexin full-speed, que corresponde a la velocidad alta en las especificaciones del USB 1.1 y a la velocidad media en las especificaciones del USB 2.0
-12-
El inicio del paquete es sealado por una transicin del estado J, el cual es tambin el estado de reposo, al estado K. La informacin es un bloque de tamao variable ordenado en bytes. El primer byte, como se puede ver en la figura, es una secuencia sincronizadora inmediatamente despus del inicio. Esta secuencia est conformada por seis transiciones de estados, dando como resultado la secuencia KJKJKJKK. El receptor utiliza esta seal para sincronizar el reloj de recepcin con las transiciones de datos, asegurando as una transmisin confiable. El segundo byte, y en algunos casos el ltimo, es un identificador de paquetes, el cual puede verse como un comando predefinido. El identificador de paquetes est formado por 4 bits y su complemento; ofreciendo as un verificador de informacin basado en la redundancia del byte. Despus del identificador de paquetes vienen datos opcionales los cuales se mencionan ms adelante. El final del paquete es una condicin especial del bus en la que ambas lneas son llevadas al nivel lgico bajo durante dos tiempos. Esta seal se conoce como Single-Ended Zero. Existen distintos tipos de paquetes: Paquetes de configuracin, figura 2.5. SOF: Este paquete se presenta para dividir el envo de datos en periodos de tiempo llamados recuadros. IN: Este paquete pide al dispositivo conectado enviar informacin al host. OUT: Este paquete solicita al dispositivo conectado que reciba informacin del host. -13-
SETUP: Este es un caso especial del paquete OUT, de alta prioridad. Prepara al dispositivo para recibir datos sobre su configuracin.