TESIS PUCP Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licenses/by-nc-sa/2.5/pe/ PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ FACULTAD DE CIENCIAS E INGENIERÍA DESARROLLO DE UNA INTERFAZ USB PARA EL CONTROL DE ESTACIONES DE RADIO HF Y VHF PARA COMUNICACIÓN DE DATOS TESIS PARA OPTAR EL TÍTULO DE INGENIERO ELECTRÓNICO PRESENTADA POR: HIM CUPER CANSAYA HERRERA LIMA – PERÚ 2005 ii DESARROLLO DE UNA INTERFAZ USB PARA EL CONTROL DE ESTACIONES DE RADIO HF Y VHF PARA COMUNICACIÓN DE DATOS RESUMEN El desarrollo de este proyecto, denominado “Placa estación USB” está dividido en cuatro partes. La primera consiste en la descripción teórica del funcionamiento del puerto USB y del funcionamiento del sensor de ROE; ambas descripciones, sobre todo la primera, son cruciales para poder usar luego los conceptos y la terminología necesarias para el desarrollo de las siguientes partes que son netamente de cálculo e implementación. La segunda parte consiste en el desarrollo de todo lo concerniente al software que se subdividen en el software contenido en el dispositivo USB, denominado Firmware, y en el software de computadora con el que interactuará dicho dispositivo. En la tercera parte se desarrolla el hardware que se necesita para que el dispositivo USB pueda interactuar con el mundo físico, es decir se describen sus elementos de entrada o sensores y los elementos de salida o actuadores para que de esta manera el dispositivo se pueda convertir en la “Placa Estación USB” encargada del control de las estaciones de radio HF y VHF. En la cuarta y última parte se detalla el funcionamiento del equipo en conjunto tanto de hardware como de software así como la instalación en una computadora de escritorio para un usuario final, habiendo logrado con esto darle un uso práctico a nuestro desarrollo en un campo real como es el de transmisión de datos en las comunicaciones rurales iii Este trabajo está dedicado a mis padres Teresita y Cúper y a todos mis hermanos por su inmenso apoyo y cariño iv ÍNDICE 1. INTRODUCCIÓN............................................................................................................1 2. CONSIDERACIONES TEÓRICAS...............................................................................2 2.1. DESCRIPCIÓN DE UN RADIO ENLACE. ...................................................2 2.1.1. COMUNICACIONES EN VHF.....................................................................3 2.1.2. COMUNICACIONES EN HF .......................................................................4 2.2. EL PUERTO USB............................................................................................5 2.2.1. CARACTERÍSTICAS GENERALES..............................................................6 2.2.2. ESQUEMA DE CONEXIÓN Y DEFINICIÓN DE TÉRMINOS ...................7 2.2.3. TRANFERENCIA USB..................................................................................8 2.2.3.1. ELEMENTOS DE LA TRANSFERENCIA .............................................................................9 PUNTOS TERMINALES ........................................................................................................................9 2.2.3.2. TIPOS DE TRANSFERENCIA .............................................................................................11 2.2.4. ENUMERACIÓN.........................................................................................12 2.2.4.1. PASOS EN EL PROCESO DE ENUMERACIÓN ..............................................................12 2.3. EL CONTROLADOR....................................................................................16 2.3.1. CONTROLADOR PARA DISPOSITIVOS DE INTERFAZ HUMANO.......20 2.3.2. CONTROLADOR EN WINDOWS...............................................................21 2.4. LA RELACIÓN DE ONDA ESTACIONARIA. ...........................................23 3. SOFTWARE DEL SISTEMA .......................................................................................25 3.1. FIRMWARE DEL MICROCONTROLADOR .............................................25 3.1.1. FIRMWARE DE TRANSFERENCIA USB ..................................................27 3.1.2. FIRMWARE DE APLICACIÓN ESPECÍFICA...........................................29 3.2. PSEUDO-CONTROLADOR DEL DISPOSITIVO USB PARA LINUX.....31 3.3. CONTROLADOR DEL DISPOSITIVO PARA WINDOWS.......................32 3.4. SOFTWARE DE APLICACIÓN EN LINUX ...............................................35 4. HARDWARE DEL SISTEMA......................................................................................37 4.1. HARDWARE DE ADQUISION DE DATOS...............................................37 4.1.1. VOLTAJE DE REFERENCIA .....................................................................38 4.1.2. SENSADO DE VOLTAJE............................................................................39 4.1.3. SENSADO DE TEMPERATURA ................................................................39 4.2. SENSOR DE ROE .........................................................................................40 4.2.1. TRANSDUCTOR DE BARRAS PARALELAS .............................................40 v 4.2.2. TRANSDUCTOR EN IMPRESO.................................................................42 4.3. HARDWARE DE LOS PUERTOS DIGITALES .........................................44 4.3.1. INTERFAZ SERIAL CON LAS RADIOS.....................................................44 4.3.2. ESTADO DE LA RADIO VHF ....................................................................45 4.3.3. ZUMBADOR ...............................................................................................45 4.3.4. VENTILADOR.............................................................................................46 4.4. PROTECCIÓN Y ADAPTACIÓN DE IMPEDANCIAS A LA TARJETA DE SONIDO..............................................................................................................46 4.5. ALIMENTACIÓN DE LA TARJETA ..........................................................47 4.6. FABRICACIÓN Y MONTAJE DEL CIRCUITO IMPRESO ......................49 5. FUNCIONAMIENTO Y MANEJO..............................................................................51 5.1. FUNCIONES PARA LA RADIO RADIO HF (KENWOOD TK-80) ..........51 5.2. FUNCIONES PARA LA RADIO VHF (MOTOROLA PRO 3100).............52 5.3. PARÁMETROS DE FUNCIONAMIENTO..................................................53 5.4. DESCRIPCIÓN..............................................................................................53 5.5. MODALIDADES DE FUNCIONAMIENTO DE LA PLACA ESTACIÓN55 5.5.1. MODALIDAD VHF.....................................................................................55 5.5.2. MODALIDAD HF .......................................................................................56 5.6. CABLEADO Y CONEXIONES DE LA PLACA. ........................................56 5.6.1. CABLE ICOM IC-78 ...................................................................................57 5.6.2. CABLE MOTOROLA PRO3100 .................................................................57 5.6.3. CABLE KENWOOD TK-80.........................................................................58 5.6.4. CONECTORES MOLEX DE SENSADO EXTERNO..................................58 5.7. CONEXIÓN USB ..........................................................................................59 5.8. CONEXIÓN DE ALIMENTACIÓN .............................................................61 5.8.1. PARA LAS ESTACIONES CON FLUÍDO ELÉCTRICO............................61 5.8.2. PARA LAS ESTACIONES SIN FLUIDO ELÉCTRICO ..............................62 5.9. CALIBRACIÓN DE LA TARJETA..............................................................64 5.10. MONTAJE .....................................................................................................66 5.11. CONFIGURACIÓN DE LA PLACA ESTACIÓN .......................................68 5.12. COMANDOS DE MANEJO DE LA PLACA INTERFAZ...........................70 5.13. PRUEBAS DE LA CONEXIÓN DE AUDIO ...............................................76 6. COSTOS DEL CIRCUITO ...........................................................................................78 vi CONCLUSIONES .................................................................................................................................81 OBSERVACIONES...............................................................................................................................82 BIBLIOGRAFÍA....................................................................................................................................83 ÍNIDICE DE FIGURAS Figura 2.1.1 Enlace de dos estaciones de radio .......2 Figura 2.1.1.1 Red centralizada VHF .......3 Figura 2.1.2.1 Red centralizada HF .......4 Figura 2.3.2.1 Conexión del Host al periférico .......7 Figura 2.3.2.2 conexión en cascada de los periféricos al Host .......7 Figura 2.3.1.- Capas de un modelo de controlador en el sistema operativo con diferentes controladores tanto para el dispositivo como para los buses .......8 Figura 3.1.1.1 Reconocimiento de nuevo hardware ......29 Figura 3.3.1 Reconocimiento de hardware por Windows ......32 Figura 3.3.2 Instalación del driver ......33 Figura 3.3.3. Vista del controlador instalado de forma correcta ......34 Figura 3.3.4 Pantalla de una consola DOS con las operaciones realizadas ......35 Figura 3.4.1 : Vista de los íconos de sensado ......36 Figura 4.1.1 Circuito de calibración del voltaje del diodo zener ......38 Figura 4.1.2 Circuito de sensado de voltaje ......39 Figura 4.1.3.1 Circuito de sensado de temperatura ......39 Figura 4.2.1.1 Sensor de ROE de barras paralelas ......41 Figura 4.2.2.1 Sensor de ROE en circuito impreso ......42 Figura 4.3.1.1 Circuito anticolisión con transistores ......44 Figura 4.3.1.2 Circuito anticolisión con buffer triestado ......44 Figura 4.3.2.1 Adaptación de la entrada a valor TTL ......45 Figura 4.3.3.1 Circuito de activación del zumbador ......45 Figura 4.3.4.1 Circuito de manejo del ventilador ......46 Figura 4.4.1 Protección de la tarjeta de sonido ......47 Figura 4.5.1 Circuito de alimentación ......48 vii Figura 4.6.1- Vista del circuito final construido. ......50 Figura 4.6.2 Vistas del modelo reducido ......50 Figura 5.5.1.1 Modalidad VHF ......55 Figura 5.5.2.1 Modalidad HF ......56 Figura 5.6 Vista frontal del conector DB15 macho del circuito impreso. ......56 Figura 5.6.1.1 Conexión del dispositivo a la radio ICOM IC-78 ......57 Figura 5.6.1.1 Conexión del dispositivo a la radio Motorota Pro 3100 ......57 Figura 5.6.3.1 Conexión del dispositivo a la radio Kenwood TK-80 ......58 Figura 5.6.4.1 Conexión del dispositivo a la radio ICOM IC-78 ......58 Figura 5.6.1.1 Conexión de los sensores del dispositivo ......59 Figura 5.7.1 Conexión USB del dispositivo a la placa madre ......60 Figura 5.8.1 Vista del selector de alimentación del dispositivo ......61 Figura 5.8.1.1 Selector configurado para recibir alimentación del puerto USB ......61 Figura 5.8.2.1 Selector configurado para recibir alimentación externa ......62 Figura 5.8.2.2 Vista de los cables de poder de la tarjeta. ......63 Figura 5.8.2.3 Conexiones de poder ......63 Figura 5.9.1 Puntos de calibración ......64 Figura 5.9.2 Puntos de prueba ......65 Figura 5.9.3: Vista de la consola de control de audio ......66 Figura 5.10.1 Montaje en una caja de computadora comercial ......66 Figura 5.10.2 Puntos de soporte ......67 Figura 5.11.1 Pantalla principal de la interfaz ......68 Figura 5.11.1 Se crea una conexión nueva, en nuestro caso “radio1” el cual puede ser para radios HF o VHF. ......68 Figura 5.11.2 Activación del sensado de temperatura y los demás parámetros de conexión HF o VHF. ......68 Figura 5.11.3 Configuración del dispositivo USB. ......69 Figura 5.11.4 Activación del sensado de voltaje: ......69 Figura 5.13.1 Disposición de pruebas de conexión ......76 viii ÍNDICE DE DIAGRAMAS Diagrama 3.1.1 Esquema general del sistema ......26 Diagrama 3.1.2.1 Firmware del microcontrolador ......30 Diagrama 5.4.1 Descripción física del dispositivo ......54 ÍNDICE DE TABLAS Tabla 2.2.1.1 Comparación con otros interfaces ......6 Tabla 2.2.3.1.1 Características de puntos terminales ......10 Tabla 2.2.3.1.2 Características de los tipos de transferencia ......11 Tabla 4.2.2.1 Variación de valores de sensado a diferentes potencias ......43 Tabla 5.3.1 Características eléctricas ......53 Tabla 5.3.1 Rangos de sensado ......53 Tabla 5.9.1 Valores de calibración aproximados ......65 ANEXOS 1. ESQUEMÁTICO Y DIAGRAMA DE PISTAS DE LA PLACA ESTACIÓN 2. FIRMWARE DEL MICROCONTROLADOR 3. CONTROLADOR EN LINUX 4. APLICACIÓN EN WINDOWS 5. MANUAL DEL MICROCONTROLADOR PIC16C745 6. MANUAL DEL SENSOR DE TEMPERATURA LM135 7. MANUAL DE LA PLACA MADRE EPIA-M V1.40 8. MANUAL DEL REGULADOR SWITCHING LM2576 1 1. INTRODUCCIÓN El proyecto Enlace Hispano–Americano de Salud (EHAS) cuyo beneficiario directo es el Ministerio de Salud (MINSA) ofrece a los agentes prestadores de servicios de salud una red de telecomunicaciones de bajo costo y un conjunto de servicios de telemedicina adaptados al entorno rural. Un objetivo específico del EHAS es desarrollar y sistematizar la tecnología adecuada a ser utilizada para conseguir el objetivo general, que es el mejoramiento de la atención de salud en el sector rural. La presente tesis describe el trabajo de ingeniería, investigación, medición, cálculo, diseño, implementación e instalación de un equipo electrónico denominado Placa Estación USB, el cual se encontrará en estaciones de radios HF y/o VHF rurales y en estos lugares remotos se encargará de automatizarlas, logrando de esta manera conocer el estado de los parámetros más importantes de cada locación y así dejarlos listos para poder leerlos desde cualquier punto de la red. También se trata de optimizar el uso de cada estación facilitando las funciones del usuario no especializado. Como parte complementaria, se desea introducir al desarrollador al mundo del manejo de las interfaces de computadora de vanguardia, siendo una de ellas la interfaz del puerto USB, que tiene como característica principal la sencillez en el manejo para el usuario, pero por lo mismo mayor complejidad para el desarrollador. Para lograr un mejor entendimiento se ha trabajado paralelamente en los dos sistemas operativos más conocidos y usados: Windows (98SE, 2000, XP) y LINUX DEBIAN en la versión Metadistro EHAS-GNOME Versión 2.44. Éste último es en donde se da mayor énfasis a nuestro desarrollo pues es aquí en donde está implementado el software módem del programa EHAS “Ehas- Station” para comunicación de datos en HF y VHF, y sobre el cual se ha agregado nuestra aplicación, quedando integrados como un solo paquete tanto de hardware como de software. 2 2. CONSIDERACIONES TEÓRICAS 2.1. DESCRIPCIÓN DE UN RADIO ENLACE. Un radio enlace de estaciones HF y VHF como el desarrollado por el programa EHAS tiene el siguiente esquema básico: CahuapanasCLIENTE RADIO VHF San Lorenzo SERVIDORRADIO VHF Figura 2.1.1 Enlace de dos estaciones de radio Los elementos presentes son los siguientes: - Computadora (de escritorio o portátil). - Radio VHF o HF. - Torre con la antena montada según sea el caso HF o VHF - Accesorios como: Cables de interconexión entre los equipos, inversor de voltaje e interfaz de datos (Esta parte se explica más adelante pues va incluida en nuestro circuito). En la mayoría de los centros de salud no hay fluido eléctrico constante por lo que se alimentan a los equipos mediante un sistema fotovoltaico que sólo mencionaremos en este trabajo. 3 2.1.1. COMUNICACIONES EN VHF Una estación servidor VHF es la encargada de manejar las transacciones de datos entre sus clientes que tenga a su cargo como se muestra en el siguiente diagrama: Saramiriza Borja Atahualpa Sachapapa V-Sat CLIENTE SERVIDOR RADIO VHF RADIO VHF CLIENTE RADIO VHF CLIENTE RADIO VHF Figura 2.1.1.1 Red centralizada VHF Como las comunicaciones en la banda VHF requieren de cierta línea de vista estas estaciones no pueden estar muy alejadas del servidor lo que les da un rango medio de hasta 40km aproximadamente para una comunicación óptima y la salida a Internet se da mediante una conexión Vsat. 4 2.1.2. COMUNICACIONES EN HF Ya que las comunicación es HF no requieren de línea de vista y pueden cubrir grandes distancias tendremos un solo servidor que se encargue de manejar las transacciones entre los clientes ubicados en distintas zonas del país como se muestra en el diagrama. LIMA Nueva Yarina Pijuayal Cangallo CLIENTE SERVIDOR RADIO VHF RADIO VHF CLIENTE RADIO VHF CLIENTE RADIO VHF AMAZONAS AYACUCHO Figura 2.1.2.1 Red centralizada HF 5 2.2. EL PUERTO USB El puerto USB (Universal Serial Bus) es un interfaz muy flexible que fue diseñado para interconectar dispositivos externos o periféricos a la computadora en el cual ya vienen implementados uno o más puertos USB. Esta interfaz es lo suficientemente versátil como para soportar periféricos estándar como los HID (Dispositivos de Interfaz Humana), dispositivos de almacenamiento masivo o también dispositivos más especializados inclusive los diseños propios siempre y cuando se ajusten a las especificaciones necesarias. La idea es que el usuario final no tenga ninguna dificultad al momento de hacer uso del dispositivo, ya sea tener que configurar el software o el hardware; es por eso que la dificultad se presenta del lado del desarrollador, ya que en este sentido la complejidad es mayor, para ello es necesario conocer primero cómo funciona la interfaz USB tanto del lado del dispositivo externo como del de la computadora. 6 2.2.1. CARACTERÍSTICAS GENERALES En el siguiente cuadro comparativo entre el puerto USB y otros interfaces conocidos podemos apreciar algunas de sus características generales. INTERFAZ FORMATO Nro. Máximo de dispositivos Longitud del cable (m) Velocidad máxima (bps) Uso típico USB Serial asíncrono 127 5 (o hasta 30 m con 5 hubs) 1.5M, 12M, 280M Mouse, teclados, unidades externas, módem, audio RS-232 (EIA/TIA- 232) Serial asíncrono 2 15 - 30 20k (115k con algún adicional) Módem, mouse, instrumentación SPI Serial sincrónico 8 3 2.1M Microcontroladores I²C Serial sincrónico 40 5.5 3.4M Microcontroladores Fire Wire (IEEE-1394) Serial 64 4.5 400M (3.2G con 1394b) Vídeo, almacenamiento Ethernet Serial 1024 400 10M/100M/1G Redes de computadoras Puerto Paralelo Paralelo 2 (8 con hardware extra) 3 – 10 8M Impresoras, escaners, discos externos Tabla 2.2.1.1 Comparación con otros interfaces Existen dos versiones para el puerto USB, que básicamente se diferencian en cuanto a la velocidad de transferencia: - USB 1.0, con dos velocidades: • Velocidad baja a 1.5 Megabits por segundo • Velocidad media a 12 Megabits por segundo - USB 2.0, con tres velocidades, las dos anteriores y la que sigue: • Velocidad alta a 280 Megabits por segundo 7 De acuerdo a los requerimientos de nuestra aplicación nos centraremos, en adelante, a trabajar con la versión USB 1.0 de baja velocidad. 2.2.2. ESQUEMA DE CONEXIÓN Y DEFINICIÓN DE TÉRMINOS A continuación nos referiremos al siguiente esquema de conexión. Figura 2.3.2.1 Conexión del Host al periférico Donde el HOST representa al mecanismo USB, con su respectivo hardware y firmware de comunicación, que interactúa entre el DISPOSITIVO PERIFÉRICO y la Computadora. Debido a la flexibilidad de conexión se puede tener también el siguiente esquema de conexión. HOST PERIFÉRICO USB USB PERIFÉRICO USB HUB USB PERIFÉRICO USB PERIFÉRICO USB Figura 2.3.2.2 conexión en cascada de los periféricos al Host HOST PERIFÉRICO USB USB 8 También podemos apreciar algunos HUB que básicamente sirven para expandir el número de entradas al Host, los cuales, en gran medida, no afectarán a nuestras aplicaciones. El número máximo de periféricos y HUBs que se pueden conectar a un mismo Host es de 127 (incluyendo el HUB raíz) y en cascada se pueden colocar no más de 5 HUB externos. Hay una confusión a la hora de definir la palabra “puerto” ya que no podemos compararlo a la idea de lo que inicialmente se tenía con respecto al puerto serial o paralelo, ya que estos tienen una sola ruta o dirección específica al Host, en cambio en un puerto USB la cosa cambia ya que todos los periféricos comparten la misma ruta, en este caso para diferenciar a un dispositivo de otro ya es cuestión de programación del firmware y del controlador del respectivo periférico y se efectúa en el proceso de Enumeración que se explicará más adelante. 2.2.3. TRANFERENCIA USB Para desarrollar una aplicación que interactúe con un dispositivo USB es necesario entender lo que pasa dentro de una transferencia en el bus USB. Un enlace USB se divide en dos categorías, dependiendo de cómo están interactuando el dispositivo con Host. - Enlace de Configuración.- Aquí la comunicación es exclusivamente para que el Host aprenda del Periférico y ambos se preparan para el intercambio de información. Durante la enumeración el Host le hace una serie de pedidos al Periférico el cual debe identificar y contestar cada unos de estos para después tomar acción de cada uno de los pedidos. En la computadora el Sistema Operativo se encarga de realizar el proceso de la enumeración sin que el desarrollador tome parte aún, en este proceso el sistema le asigna un controlador al dispositivo y ya se puede dar la siguiente etapa 9 - Enlace de Aplicación.- Aquí la comunicación está dedicada a la transacción de información entre la aplicación respectiva y el Dispositivo para lo cual fue destinado. Para acceder a los datos que se recogen del dispositivo se tiene que acceder a las aplicaciones de hardware USB con que cuente el sistema operativo tales como las funciones API del sistema operativo, que explicaremos con más detalle en nuestra aplicación. 2.2.3.1. ELEMENTOS DE LA TRANSFERENCIA Para entender mejor una transferencia USB necesitamos ver lo que pasa en cada nivel. Una transferencia está compuesta por transacciones y cada transacción por paquetes y cada paquete contiene información. Para entender cada uno de ellos debemos empezar por entender acerca de los “Puntos terminales” y los “túneles”. PUNTOS TERMINALES Un punto terminal es un buffer que almacena múltiples bytes, típicamente es una memoria de datos o un registro en un microcontrolador. Todas las transmisiones van de un punto terminal o hacia otro punto terminal. El host también tiene buffers en donde se almacena la data recibida o los data lista para ser transmitida los cuales son conocidos como los “puntos de partida” que son los que inician la comunicación con los puntos terminales del dispositivo. Por definición un punto terminal lleva información en un sólo sentido, siempre y cuando no se trate de una transferencia de control que se verá más adelante. Los puntos terminales tienen como características al número de punto terminal que varía de 0 a 15 y el sentido del flujo de información que desde la perspectiva del host se define como: IN: Los datos fluyen del dispositivo hacia el host. OUT: Los datos fluyen del host al dispositivo. 10 Sólo en una transferencia de control se tiene un par compuesto de puntos terminales IN y OUT que comparten un sólo número de punto terminal, que por lo general es el punto terminal 0. En raras ocasiones se requerirá usar otra transferencia de control las cuales sólo las soportan algunos microcontroladores, no siendo éste el caso para nuestra aplicación. En una transferencia la información fluye en una sola dirección, sin embargo en un flujo de estatus y control los datos pueden ir en direcciones opuestas. Un sólo número de punto terminal puede soportar una transferencia IN y una OUT configurando debidamente el dispositivo. Cada transacción en el bus incluye el número de punto terminal y un código que indique la dirección del flujo de datos o si la transacción va a iniciar una transferencia de control, los códigos son IN, OUT y SETUP; lo cual se puede apreciar mejor en el siguiente cuadro: TIPO DE TRANSACCIÓN FUENTE DE INFORMACION TRANSFERENCIAS QUE LO USAN CONTENIDO IN DISPOSITIVO TODAS GENÉRICO OUT HOST TODAS GENÉRICO SETUP HOST CONTROL UN PEDIDO Tabla 2.2.3.1.1 Características de puntos terminales TÚNELES Antes que se dé la transferencia de información entre el host y el dispositivo se debe establecer un túnel o camino virtual, que es simplemente una asociación entre el punto terminal del dispositivo y el software del controlador en el host. Estos túnel se establecen ni bien el sistema se incializa o un dispositivo 11 es conectado, y se quitan cuando se quita el dispositivo del bus o también cuando el host así lo pide. 2.2.3.2. TIPOS DE TRANSFERENCIA Ya que el sistema USB fue diseñado para manejar muchos tipos de periféricos con requerimientos diferentes ya sea en su tasa de transferencia, tiempo de respuesta y corrección de errores, para ello se cuenta con 4 tipos de transferencia de datos, cada uno para diferentes necesidades TIPO DE TRANSFERENCIA CONTROL AVALANCHA INTERRUPCIÓN ISOCRÓNICO USO TÍPICO configuración Impresora, scanner Ratón, teclado Audio ¿REQUERIDO? Sí No No No ¿PERMITIDO EN DISPOSITIVOS DE BAJA VELOCIDAD? Sí No Sí No Vel. Máxima de transferencia por túnel en baja velocidad (bytes/milisegundo) 24 (3 transacciones de 8 bytes) No permitido 0,8 (8 bytes en 10 milisegundos) No permitido Dirección del flujo de datos IN y OUT IN o OUT IN o OUT (Sólo IN para la versión 1.0) IN o OUT ¿Corrección de errores? Sí Sí Sí No ¿Información de tipo Ráfaga o Mensaje? Mensaje Ráfaga Ráfaga Ráfaga ¿Tasa fija de transferencia garantizada? No No No Sí ¿Latencia garantizada? No No Sí Sí Tabla 2.2.3.1.2 Características de los tipos de transferencia 12 2.2.4. ENUMERACIÓN Ésta es la parte en donde el host aprende acerca del dispositivo. Aquí se da el primer intercambio de información entre ambas partes y éste proceso se debe dar lo siguiente: - Asignar una dirección al dispositivo. - Leer la estructura de datos del dispositivo. - Asignar y cargar el controlador respectivo. - De las opciones presentadas en la información recuperada, seleccionar la configuración en que trabajará en adelante. Después de este proceso el dispositivo ya está configurado y listo para transferir información con los puntos terminales debidamente configurados. 2.2.4.1. PASOS EN EL PROCESO DE ENUMERACIÓN 1.- El usuario conecta físicamente el dispositivo a un puerto USB.- También se da cuando el sistema operativo inicia con el dispositivo ya conectado. El puerto puede estar en el hub raíz o en uno conectado en cascada, aquí es donde el dispositivo se energiza y queda en estado de Energizado. 2.- El hub detecta al dispositivo.- El hub monitorea el voltaje en cada línea de sus puertos. El hub tiene resistencias pull-down de 15Kohm en cada uno de sus puertos, mientras que el dispositivo tiene una resistencia de 1.5Kohm pull-up bien en el puerto D+ para los dispositivos que trabajen a full-speed o en D- par los que trabajen en low-speed. Los dispositivos que trabajen en Hi-speed se conectan como los de full-speed. 3.- El host aprende del nuevo dispositivo.- Una de las obligaciones de un hub (en nuestro caso el del hub raíz) es detectar si un dispositivo se 13 conecta o se retira, esto lo hace con un túnel de interrupción IN que trae cada hub para reportar estos eventos al host. Dicho evento indica solamente si el hub o qué puerto ha experimentado un evento, luego el host le envía un pedido de Get_Port_Status para averiguar más, el cual es un pedido de cualquier hub entiende. De la información recogida el host sabe cuándo un nuevo dispositivo es conectado. 4.- El hub detecta si un dispositivo es de baja o media velocidad.- Justo antes de que el hub reinicia el dispositivo, el hub determina si el dispositivo es de velocidad baja o media examinando los voltajes en las líneas D+ y D-, al ver qué línea tiene voltaje en alta cuando está en reposo. El hub envía información al host en respuesta del siguiente pedido de GET_PORT_STATUS. Los dispositivos USB 1.x permiten que el hub detecte su velocidad justo después del reincio. Las versiones de USB 2.0 requieren, en cambio, que la detección de velocidad se dé justo antes del reincio de manera que él pueda averiguar si el dispositivo es de alta velocidad, esto durante el reincio. 5.- El hub reinicia el dispositivo.- Cuando el host aprende del nuevo dispositivo el controlador del host le envía al hub un pedido de Set_Port_Feature. que le pide al hub que reinicie el puerto. El hub coloca las líneas del dispositivo en condición de Reset por al menos 10 milisegundos, esto se hace sólo cuando hay un nuevo dispositivo, mientras que otros hubs o dispositivos ignoran dicha señal. 6.- El host aprende si un dispositivo de velocidad media soporta alta velocidad.- Se emplean dos señales especiales. El estado Chirp J en donde solamente se usa la línea D+, y el estado Chirp K para la línea D-. Durante el reinicio, un dispositivo de alta velocidad envía una seña Chirp K que lo detecta un hub, también de alta velocidad, y le responde con señales alternadas de Chirp K y J, cuando el dispositivo detecta el patrón KJKJKJ, retira los pull-up de velocidad media y establece una comunicación de alta velocidad. 14 7.- El hub establece una señal para abrir camino entre el dispositivo y el hub.- El host verifica que el dispositivo haya salido del estado de reinicio para enviarle un pedido de Get_Port_Status, un bit dentro de la información regresada se encarga de eso. Cuando el hub quita el estado de reinicio, el dispositivo queda en su estado por defecto, y sus registros USB están en estado de reinicio, entonces el dispositivo está listo para responder a la transferencia de control usando el túnel por defecto que apunta al punto terminal 0; el dispositivo ya puede comunicarse con el host usando la dirección por defecto 00h. 8.- El Host envía un pedido de Get_Descriptor para averiguar el tamaño máximo de paquete del túnel por defecto.- En vista que el host enumera un dispositivo a la vez, se usa siempre la dirección 0 y el punto terminal 0. El octavo byte del descriptor del dispositivo contiene el tamaño máximo de paquete que va a soportar el punto terminal 0. El host del sistema operativo pide 64 bytes, pero después de recibir un paquete (tenga o no 64 bytes), empieza la etapa de status en la transferencia. Para completar esta etapa el host del sistema operativo solicita al hub que reinicie el dispositivo (volviendo al paso 5). De acuerdo a las especificaciones, no se es necesario el reinicio ya que los dispositivos deberían ser capaces de manejar que el host abandona una transferencia de control en cualquier momento respondiendo al siguiente paquete de Setup, pero el reinicio es una precaución que asegura que el dispositivo estará en un estado conocido cuando termine el reinicio. 9.- El Host asigna una dirección.- El controlador host asigna una única dirección al dispositivo enviándole un perdido Set_Adress. El dispositivo lee el pedido, da un aviso de reconocimiento y almacena la nueva dirección. El dispositivo se encuentra en esta parte en el estado Direccionado Cualquier comunicación a apartir de este punto usarán esta nueva dirección, esto es válido hasta que el dispositivo se desconecte o reinicie o se apague la computadora. Para la siguiente enumeración la dirección que se le asigne puede ser diferente. 15 10.- El Host aprende las habilidades del dispositivo.- El host le envía un pedido de Get_Descriptor a la nueva dirección para leer el descriptor del dispositivo, esta vez para leerlo por completo. El descriptor es una estructura de datos que contiene el tamaño máximo del paquete para el punto terminal 0, el número de configuraciones que el dispositivo soporta y otra información básica del dispositivo. 11.- El host asigna y carga el controlador del dispositivo.- Después de aprender todo lo que se pueda del dispositivo a partir de sus descriptores, empieza la búsqueda del controlador que mejor le cuadre para la administración en la comunicación con el dispositivo. 12.- El controlador del dispositivo selecciona una configuración.- En esta parte el controlador asignado solicita la configuración al dispositivo enviándole un pedido de Set_Configuration con el número de configuración deseada. La mayoría de dispositivos soportan un único tipo de configuración, pero si el dispositivo soporta múltiples configuraciones entonces el dispositivo se encarga de elegir el tipo de configuración en base a la información recogida del dispositivo o le pide al usuario que elija. El dispositivo se encuentra en esta parte en el estado Configurado y la interfaz al dispositivo está ya habilitada. A partir de este momento el dispositivo ya se encuentra listo para ser usado. Existen otros dos estados para el dispositivo, colgado y suspendido que se pueden dar en cualquier momento. Colgado.- Se da cuando el hub no está alimentando (Vbus) al puerto que ocurre cuando el hub ha detectado una condición de sobre-corriente o si el hub le pide al hub que quite la alimentación del puerto. Sin energía en Vbus el host y el dispositivo no pueden comunicarse, es como si el dispositivo no estaría conectado. 16 Suspendido.- Significa que el dispositivo no ha visto actividad, incluso marcadores de inicio-de-trama, en el bus por al menos 3 milisegundos. En este estado el dispositivo debe consumir lo mínimo de la alimentación del bus. Tanto los dispositivos configurados como los no configurados deben soportar este estado. 2.3. EL CONTROLADOR El controlador del dispositivo es el que hace posible la comunicación entre los controladores de USB del sistema y las aplicaciones que quieran acceder al dispositivo y a su vez al hardware que éste maneje el cual puede ser una impresora, módem, teclado, etc. Estos dispositivos pueden ser periféricos estándar o diseños específicos para aplicaciones especiales. Algunos controladores son conocidos como “Controladores Clase” que manejan las comunicaciones de una variedad de dispositivos con funciones similares. Una característica del controlador del dispositivo es el de aislar a las aplicaciones de tener que saber o manejar cualquier detalle acerca de las conexiones físicas, señales y protocolos que se requieran en la comunicación con el dispositivo. Una aplicación es el programa con el que finalmente el usuario interactúa y soporta el hardware que necesite usar, en nuestro caso un hardware USB. El controlador tiene la misión de hacer de traductor entre el código de nivel de aplicación y el código de nivel de hardware. El código de nivel de aplicación usa funciones soportadas por el sistema operativo para comunicarse con el controlador del dispositivo; y el código de nivel de hardware maneja los protocolos necesarios para acceder al circuito que maneje el dispositivo el cual incluye el detectar las etapas de las señales status y el uso o no de las señales de control en tiempos apropiados. El sistema operativo ya sea Windows o Linux incluye funciones de interfaz de aplicación para programadores o su sigla en inglés API, que habilitan a las aplicaciones para comunicarse con el controlador del dispositivo. Las aplicaciones escritas en lenguaje de alto nivel como C, C++, Delphi o Python 17 pueden llamar a las funciones API. Tres de las funciones que el controlador puede soportar para la lectura y escritura de los dispositivos USB son: Lectura (ReadFile), escritura (WriteFile) y entrada/salida de control (DeviceIOControl). Para elegir un controlador que se acomode a las necesidades del diseñador es necesario saber con qué opciones se cuenta, algunas veces ya el sistema operativo los tiene o el chip que se tenga con el que se trabaje los provea, o se pueda conseguir de algún otro sitio, y para algunas dispositivos puede ser necesario escribir un controlador personalizado, para lo cual se puede contar con una variedad de herramientas que faciliten y acorten esta tarea. Algunas veces hay más de una manera de conseguir el controlador lo que dependerá del costo, facilidad y rendimiento que se considere a la hora de la elección del camino a tomar. 1.- DISPOSITIVO ESTÁNDAR.- Muchos dispositivos periféricos muy usados pertenecen a esta clase tales como disqueteras, impresoras, teclados, etc. Los cuales ya están dentro de un lista y para ellos el sistema operativo incluye a los controladores clase. 2.- DISPOSITIVOS PERSONALIZADOS.- Algunos periféricos son dispositivos personalizados hechos para una aplicación específica tales como unidades de adquisición de datos, controladores de motores, instrumentos de prueba o la aplicación que se desarrollamos nosotros. Estos dispositivos pueden usar controladores personalizados o pueden ser acomodados de tal forma que cumplan con los requerimientos de un controlador clase. Por ejemplo, un sistema de adquisición de datos puede usar tranquilamente un controlador clase HID (Dispositivo de Interfaz Humano) que explicaremos más adelante. MODO USARIO Y MODO KERNEL Dentro del sistema operativo hay una de dos modos de correr el código: kernel y usuario. Cada uno permite un diferente nivel de privilegios de acceder a la 18 memoria u otros recursos del sistema. Todas las aplicaciones deben correr en modo usuario. La mayoría de los controladores, incluidos todos los controladores USB, corren en el modo kernel, sin embargo un dispositivo USB puede tener también un controlador de modo usuario complementario. Normalmente el modo usuario está mas restringido al acceso a la memoria y recursos del sistema que éste considere protegidos lo que hace posible que el sistema operativo corra diferentes aplicaciones a la vez, en cambio el modo kernel el código tiene acceso irrestricto a tales recursos y memoria del sistema como son la capacidad de ejecutar instrucciones de administración de memoria y control de acceso a puertos de entrada salida E/S. En Windows 98 y Me y linux, las aplicaciones pueden acceder a los puertos E/S directamente siempre y cuando un controlador de bajo nivel no haya reservado tal puerto. En Windows NT y 2000, solamente el modo kernel puede acceder a los puertos E/S. La figura 2.4.1 muestra los componentes más comunes tanto en modo usuario como el modo kernel usados en una comunicación USB. APLICACIONES SUBSISTEMA DEL S.O. FUNCIONES DEL CONTROLADOR BUS DEL CONTROLADOR HARDWARE MODO USUARIO MODO KERNEL INTERFAZ DE HARDWARE ESPECÍFICO PEDIDO DE PAQUETES DE E/S PEDIDO DE PAQUETES DE E/S LLAMADOS AL API Figura 2.3.1.- Capas de un modelo de controlador en el sistema operativo con diferentes controladores tanto para el dispositivo como para los buses 19 CONTROLADOR DE FUNCIONES Un controlador de funciones le permite a la aplicación conversar con el dispositivo USB usando funciones API, las cuales son parte del subsistema Win32 en Windows y están a cargo de las funciones de usuario tales como correr aplicaciones, administrar las entradas del usuario a través del teclado o ratón y mostrar las salidas en el monitor, en Linux se encuentran en las librerías del directorio “usr”. El controlador de funciones sabe cómo comunicarse con los niveles más bajos del controlador del bus que maneja el hardware. La figura 2.3.2 muestra cómo trabajan tales controladores en una comunicación USB. APLICACIONES FILTRO SUPERIOR DEL CONTROLADOR (Soporta las capacidades de los dispositivos específicos) FUNCIONES CLASE DEL CONTROLADOR (Define una interfaz usuario para una clase) FILTRO INFERIOR DEL CONTROLADOR (Habilita la comunicación del dispositivo con los drivers USB del sistema) FUNCIONES PERSONALIZADAS DEL CONTROLADOR ( Define una interfaz usuario para un hardware personalizado) CONTROLADOR DEL HUB USB (Inicializa los puertos) USBHUB.SYS (Windows) USB.C (Linux) CONTROLADOR DEL BUS-CLASE USB (Administra las transacciones USB, Alimentación del bus y la enumeración al bus) USBD.SYS (Windows) USBD.C (Linux) CONTROLADOR DEL HOST CONTROLLER (Se comunica directamente con el hardware) UHCI.SYS, OPENHCI.SYS, EHCI.SYS (Windows) Figura 2.3.2.- Comunicaciones realizadas por el controlador Que van del Host controller, controlador clase, controlador del hub y un controlador de funciones que puede tener más de un archivo. 20 Normalmente se habla de un controlador del dispositivo, pero en el fondo éste no trabaja por sí sólo pues en el fondo tiene que complementarse con el controlador de funciones y el controlador de bus para trabajar como uno solo. 2.3.1. CONTROLADOR PARA DISPOSITIVOS DE INTERFAZ HUMANO Los dispositivos de interfaz humano o su sigla en inglés HID son los primeros que soporta el sistema operativo, por esta razón un dispositivo USB que pertenezca a esta clase son normalmente los más fáciles de implementar, siempre y cuando cumplan con las especificaciones que se requieran para pertenecer a esta clase. La simple designación “interfaz humano” sugiere que el dispositivo deba interactuar directamente con las personas ya sea este un teclado, ratón, joystick, o algún otro de este tipo. Pero un dispositivo HID no tiene que ser necesariamente un interfaz humano, como se mencionó anteriormente sólo necesitamos que cumpla con las especificaciones dadas a continuación, lo que también lo restringe en algunas cosas. - El intercambio de datos se da en estructuras llamadas reportes. El firmware del dispositivo debe soportar el formato de un reporte HID el cual es flexible y puede manejar cualquier tipo de información. El host usa las transferencias de tipo control y de interrupción para enviar y recibir información y pedir reportes. - Cada transacción está limitada en la cantidad de información que pueda transferir, de acuerdo al tipo de dispositivo el máximo es de: * 8 bytes para los de velocidad baja * 64 bytes para los de velocidad media * 1024 bytes para los de velocidad alta 21 - Un dispositivo puede enviar información a la computadora en cualquier momento, por ejemplo un clic de ratón, por lo que el host inspecciona al dispositivo periódicamente. - La velocidad máxima de transferencia está limitada, especialmente en los dispositivos de media y baja velocidad. El host garantiza un máximo de: * 800 bytes/segundo para los de velocidad baja * 64000 bytes/segundo para los de velocidad media * 24.576 bytes/segundo para los velocidad alta - No se garantiza un taza de transferencia fija sobre todo en los dispositivos de baja velocidad. 2.3.2. CONTROLADOR EN WINDOWS Para implementar cualquier manejador de hardware para el sistema operativo Windows 95/98/2000/XP Microsoft ha desarrollado la herramienta para el desarrollo de manejadores de nombre WinDDK ( Windows Driver Developer Kit) el cual se puede solicitar desde su página web http://www.microsoft.com/winddk. Este software trabaja en conjunto con la herramienta de programación Visual Studio 6.0, en donde se puede trabajar con cualquiera de sus lenguajes de programación que nos ofrece, en nuestro caso Visual C++ pues la mayor cantidad de ejemplos e información que encontramos en la red referentes al desarrollo de un manejador USB estaban hechos en este lenguaje. Para seguir con la implementación se debe tener en cuenta con qué versión de Windows se va a trabajar, porque dependerá de esto las librerías que se empleen del WinDDK. La ventaja de usar el WinDDK es que nos da más opciones en cuanto a la diversidad de librerías que nos brinda y a su vez mayor facilidad en el desarrollo, en comparación a tener que partir casi desde cero en el caso de 22 hacerlo en Linux. Con esta ventaja se pueden desarrollar un manejador completamente personalizado con propio ID que no salte las librerías HID, tocando desde luego el ID del firmware del dispositivo. Este caso puede ser ventajosa por si queremos implementar un dispositivo que no tenga ningún conflicto con algún dispositivo HID, para lo cual basta con seguir el esqueleto del manejador, cargar las librerías necesarias, compilar el programa y probarlo, para lo último se cuentan con programas de evaluación del manejador como son el USB Driver Tester que viene incluido en el paquete del compilador CCS utilizado en nuestro firmware, o el USB Command Verifier del Forum de Implementación USB. En el caso de que nuestro dispositivo se enumere como HID entonces no hará falta tener que implementar un manejador, pues ya viene incluido en el sistema operativo como lo vimos en el caso de linux; pero siempre hará falta tener el CD de instalación de Windows a la mano por si se requiera volver a instalar el manejador HID para un funcionamiento correcto. 23 2.4. LA RELACIÓN DE ONDA ESTACIONARIA. La relación de onda estacionaria (ROE) en una línea de transmisión está relacionada matemáticamente a la relación entre la potencia de onda reflejada y directa, en general, cuanto mas grande es esta relación mayor es la ROE. También se cumple que cuando la ROE en una línea de transmisión es alta, las perdidas de potencia en dicha línea son mayores que las pérdidas que ocurren cuando la ROE es 1. Esta pérdida exagerada, conocida como pérdida de ROE, puede ser muy significante, especialmente cuando la ROE excede de 2 y la línea de transmisión tiene pérdidas significantes. Por esta razón nuestro objetivo es tratar de minimizar la ROE en las líneas de transmisión de comunicaciones. Una alta ROE también puede tener efectos indeseables, tales como el sobrecalentamiento o incluso la ruptura del dieléctrico separador de los conductores en una línea de transmisión y sobre todo la sobre exigencia al equipo transmisor que en muchos casos llegan a deteriorarlo, es aquí en donde se trabajará en la presente tesis. En algunas situaciones, tales como aquellas encontradas en frecuencias relativamente bajas de RF, a niveles de potencia también bajas, y cortos tramos de líneas de transmisión de baja pérdida, un moderado valor elevado de ROE no produce una pérdida significativa de potencia o sobrecalentamiento en la línea, y por lo tanto puede ser tolerado. La onda armónica: yzyz ezVezVzV ×+×= − )()()( 21 ..........(2.4.1) 0 21 )()()( Z ezVezV zI yzyz ×+× = − .........(2.4.2) Donde Zo es la impedancia característica y 1V y 2V se determinan por medio de condiciones de borde. 24 De la definición de ROE se deduce la siguiente relación: min max )( )( dV dV ROE = ................... ..(2.4.3) Donde max )(dV es la magnitud del voltaje en un máximo sobre el patrón de onda estacionaria, y min)(dV es la magnitud de voltaje en un mínimo. Para un circuito de muestreo por inducción con circuito de rectificación la relación se reduce a: IIDD IIDD VV VVROE Γ+Γ Γ−⋅Γ = . ..............(2.4.4) Donde DV es el voltaje rectificado de la onda directa inducida y IV es el voltaje rectificado de la onda inversa inducida, DΓ y IΓ son las características físicas del circuito. Asumiendo que el sensor es totalmente simétrico, es decir ID Γ=Γ podemos despejarlo tanto del numerador como del denominador lo que nos quedaría: ID ID VV VVROE + − = ..............(2.4.5) Ésta es la fórmula con la que se trabajará y se implementará en el programa final de decodificación del ROE, cualquier no linearidad, o deformación mínima producida por los parámetros Γ , será normalizado por software. 25 3. SOFTWARE DEL SISTEMA El circuito desarrollado no necesita una velocidad mayor a 20Kbps para la transmisión de datos, es por eso que cualquier conexión convencional, a través del puerto serial o el paralelo, sería útil; pero en vista a que estos últimos han ido quedando relegados y más aún si hablamos de computadoras portátiles en donde ya se usa el puerto USB para la mayoría de sus periféricos. Para cualquier proyecto de nuestra clase es importante contar con al menos 2 criterios de selección del puerto de comunicaciones. La velocidad requerida para lograr una comunicación efectiva entre el dispositivo externo y la computadora; y la disponibilidad del puerto de así no interferiríamos con otras tares que tenga que realizar la computadora en otros dispositivos periféricos. Existen también otros criterios a tomarse en cuenta tales como el costo y la factibilidad o complejidad de la implementación, es por esta última razón por la que mayormente se escoge el puerto serial y paralelo; pero como veremos mas adelante sólo dependerá de las herramientas con las cuales contemos la que harán mas accesible el manejo del puerto USB. 3.1. FIRMWARE DEL MICROCONTROLADOR El microcontrolador que se usará es el PIC16C745/JW, cuyas características más resaltantes son: - Procesador de arquitectura RISC de 35 instrucciones máquina - 8 Kbytes de EPROM (Memoria de programa), 256 bytes de RAM (Memoria de variables). - 22 pines o puertos de Entrada/Salida digital, 5 canales de entrada al conversor analógico a digital A/D. - Oscilador de cristal de hasta 20MHz, (Para el uso de USB se recomienda un cristal de 6MHz). - Puerto USB compatible con las especificaciones de USB 1.1 26 Un modelo hermano de este chip es el PIC16C765/JW con características similares sólo que con más puertos de salida tanto analógicos como digitales. NOTA: Se debe tener muy en cuenta que este modelo tiene un PLL interno el cual multiplica el valor de frecuencia del cristal por 4, es decir que el cristal de 6MHz recomendado para el módulo USB, estará haciendo funcionar a todo el sistema a 24MHz. El Diagrama 3.1.1 muestra las diferentes entradas y salidas que tiene placa, así como los dos bloques internos, la parte de audio y los sub-bloques dentro del microcontrolador. Canal Ignición Estado de VHF PC PIC16C745 USBUSB RC0 RC1 RC2 RS232 RA0 RA1 ADC RA2 RA5 RA3 RB0 RB1 RB2 RB3 RB4 RB5 RB6,7 Tarjeta de sonido LED info Buzzer Ventilador Voltaje Temperatura Pot directa Pot inversa Selector de tarjeta (0,1,2,3) Voltaje de Referencia CAT PTT Botón Externo RADIO VHF HF EHAS BOARD Diagrama 3.1.1 Esquema general del sistema Se muestran tres bloques bien diferenciados: La computadora, la interfaz USB (EHAS BOARD) y la radio; las cuales tienen a grandes rasgos las siguientes funciones: 27 Computadora.- Tiene dos bloques internos: Transceptor de audio mediante la tarjeta de sonido y comunicación con el interfaz vía USB. Interfaz USB.- Con dos funciones: Adquisición de señales analógicos(Voltaje, Temperatura, SWR) y manejo de la radio. Radio.- Se encarga de enviar las señales de audio al espacio. El firmware se separa en 2 partes, una que se encargue del manejo de la interfaz USB, que es la más compleja, y la otra de aplicación específica que se encargue de la adquisición de datos y las funciones de entrada salida del microcontrolador. 3.1.1. FIRMWARE DE TRANSFERENCIA USB En la implementación del firmware que se encarga de realizar la transferencia USB con el host de la computadora se sigue el mismo formato que se explicó en la parte teórica para este tipo de transferencia. Para la presente aplicación el firmware tendrá todas las características de una transferencia HID pero se evitará tocar el controlador HID del sistema operativo. El punto más importante en esta parte está en la tablas de descriptores en donde se encuentra el ID y el número de dispositivo y las características de transferencia descritas en la parte teórica, acá es donde “tomamos prestado” un ID, en este caso el 461 perteneciente a PRIMAX ELECTRONIC, y con el número de producto podremos tener más de un dispositivo usando el mismo ID. Hay dos maneras de implementar el firmware de transferencia, la primera es hacerlo solamente en lenguaje ensamblador y la segunda es utilizando un lenguaje de alto nivel con un respectivo compilador correspondiente al microcontrolador elegido. 28 Para implementar el firmware en lenguaje ensamblador, lo cual resulta más económico, se usan las herramientas que brinda la empresa Microchip, entre las cuales están su compilador para lenguaje ensamblador MPLAB y sobre todo los diversos ejemplos que se pueden encontrar en su página web. Basta con usar los archivos “usb_cha9.asm” y “descript.asm” estando en éste último las tablas de descripción del dispositivo, ambos archivos se deben agregar al programa principal “main.asm” en donde ya se podrán usar las rutinas de transferencia como simples llamados de rutina “call send” y “call read” usados por el firmware de aplicación. En el caso de elegir un compilador de lenguaje de alto nivel hemos visto por conveniente usar el programa CCS PIC C Compiler con un costo de $ 430 dólares en el mercado, que es un compilador de lenguaje C para una gran variedad de familias de microcontroladores de la empresa Microchip, pero siendo una de sus ventajas más importantes el que ya cuenta con las funciones de transferencia USB implementadas, lo cual por supuesto ahorra mucho trabajo y hace mucho más legible el código, teniendo las funciones de transferencia USB como simples comandos de “send_usb” y “read_usb”. Su tabla de descriptores se puede modificar en el archivo “descript.h” con las características antes mencionadas. Para asegurarnos que el firmware de transferencia usb está bien implementado se puede ver si al menos se está enumerando en el bus USB haciendo las conexiones básicas de los pines D+, D-, Vcc y GND, lo conectamos al puerto USB y debemos ver lo siguiente: En Windows debe activarse una ventana en donde avise del nuevo hardware encontrado y el sistema empieza la búsqueda del controlador, si no lo encuentra sale la siguiente ventana en donde se deben seguir los pasos para instalar el controlador deseado, mostrados en la figura 3.1.1.1. 29 Figura 3.1.1.1 Reconocimiento de nuevo hardware En Linux se usa el siguiente comando: tail -f /var/log/messages y a continuación se muestra en pantalla Aug 6 21:55:38 localhost kernel: hub.c: new USB device 00:10.0-2, assigned address 12 Aug 6 21:55:38 localhost kernel: usb.c: USB device 12 (vend/prod 0x461/0x20) is not claimed by any active driver. Allí se ve aparece un dispositivo con ID 461 y número de dispositivo 20 que no tiene controlador. 3.1.2. FIRMWARE DE APLICACIÓN ESPECÍFICA En esta parte se implementan las funciones adicionales que deba realizar el microcontrolador para controlar la estación, aprovechando que el microcontrolador cuenta además con puertos de entrada/salida digitales y analógicos. Se describe el programa en el diagrama 3.1.2.1. 30 inicio Incializa puertos I/O Inicializa módulo USB Llegó orden del puerto USB ? Enviar datos seriales a la radio ? control de batería Si No No Leer puertos analógicos ? Leer puertos de salida digital ? No No leer ADC Leer puertos In Tx rs232 Recibir datos seriales de la radio ? Verifica conexión USB Activar puertos de salida digital ? Activar puertos Out Rx rs232 Si Si Si Si Si No Tx datos guardados al bus USB Diagrama 3.1.2.1 Firmware del microcontrolador Para la parte analógica se ha implementado un filtro de software el cual, si bien disminuye la velocidad en la conversión, nos da mayor precisión a la hora de arrojar el resultado leído y esto se logra haciendo un promedio de lecturas en un intervalo de tiempo razonable (Aproximadamente 2mS). 16 16∑ ⋅⋅ = LeídosValores ValorFinal 31 Puesto que el voltaje, la temperatura y la potencia no requieren tanta velocidad de muestreo, entonces se justifica este retraso aumentando la precisión de lectura. 3.2. PSEUDO-CONTROLADOR DEL DISPOSITIVO USB PARA LINUX Lo hemos denominado pseudo-controlador porque no tendrá la estructura propiamente dicha de un controlador de linux, el cual es similar a Windows, en donde hay un archivo de información del producto que debe ser agregado al directorio de módulos que lista los controladores. Básicamente se ha implementado un programa que toma directamente comandos API pues en linux se trabaja en modo kernel. Dentro de todas las librerías existentes en linux para manejar al puerto USB escogemos “libusb” en donde se encuentran los comandos API con los que podremos acceder a nuestro dispositivo. Se rellenan la tablas de los buses, las tablas de dispositivo, y se empieza buscar entre los dispositivos encontrados hasta que coincidan los descriptores, a partir de este momento ya tenemos control sobre nuestro dispositivo y se procede con el resto de las acciones. Viendo el ID y el número de producto tenemos al dispositivo seleccionado, como se había implementado en el firmware, podemos tener más de un dispositivo usando el mismo ID cambiando simplemente el número de producto (en nuestro caso tendremos hasta cuatro dispositivos). Una vez enumerado y reconocido el dispositivo ya podemos comunicarnos con el dispositivo usando simplemente los comandos de transferencia “usb_interrupt_write” para enviar datos y “usb_interrupt_read” para leer datos. Para que coincida con lo implementado en el firmware los paquetes de datos a enviar tanto de lectura como de escritura son de 4 bytes. 32 Ya con esto se pueden crear comandos un nivel más elevados como: set, unset, analog, reset y txserial, todos ellos contenidos en el pseudo-controlador “eboard”, con los que se pueden acceder a cada una de los puertos configurados en el dispositivo; explicados en el capítulo siguiente. 3.3. CONTROLADOR DEL DISPOSITIVO PARA WINDOWS Se usará un controlador de aplicación específica el cual se implementa siguiendo las especificaciones que solicita el Windows DDK, rellenando las tablas de descriptores, el ID y número de dispositivo para finalmente crear un archivo con extensión “.sys” ejemplo “testusb.sys” y su respectivo archivo de información “.inf”, en nuestro caso “himcansaya.inf”. De allí en adelante bastará con seguir los pasos que pide Windows para la instalación del controlador. Al conectar el dispositivo saldrá la ventana de la figura 3.3.1. Figura 3.3.1 Reconocimiento de hardware por Windows Los datos que salen allí los lee directamente del dispositivo, a continuación pide que se seleccione el controlador apropiado mostrado en la figura 3.3.2. 33 Figura 3.3.2 Instalación del driver Se encuentra el archivo de información “USB Him” que solicita el dispositivo. La instalación satisfactoria se puede apreciar enla figura 3.3.3 34 Figura 3.3.3. Vista del controlador instalado de forma correcta Una vez instalado el controlador, deberá aparecer en la lista del Administrador de dispositivos, si sale con un signo de interrogación quiere decir que el controlador no fue bien instalado y se deberá volver a instalar, pero antes se deberá borrar cualquier archivo de información correspondiente al dispositivo contenido en el directorio “/windows/inf” Ya con el controlador instalado se puede hacer cualquier aplicación en lenguaje C llamando al dispositivo usando el comando “HANDLE hdevice” y para leer y escribir en el dispositivo “ read_device” y “write_device” respectivamente. Una aplicación sencilla de escritura y lectura de puertos digitales y analógicos la podemos ver en el anexo “aplicación en windows” cuyos resultados vemos a continuación: 35 Para 4 leds conectados a los pines del puerto B: RB0 al RB3 y 4 canales activados del puerto A. Figura 3.3.4 Pantalla de una consola DOS con las operaciones realizadas 3.4. SOFTWARE DE APLICACIÓN EN LINUX El software de aplicación es el que se encuentra en la escala más elevada de toda la estructura del software del dispositivo y es con el que el usuario finalmente interactuará. Dicho software puede usar cualquiera de las funciones implementadas en el controlador. La aplicación presentada a continuación se denomina “ehas-station” la cual, aparte de sus funciones de módem (en donde sólo interviene en el manejo del PTT), aplica directamente las funciones de la placa estación. Este paquete tiene como aplicación de configuración a “config-ehas” que explicaremos con más detalle en el capítulo siguiente, para ello se vale del paquete denominado “ehas-board” en donde están implementadas las siguientes funciones: - Control del ventilador por histéresis (Configurables en config-ehas) - Control de transmisión serial para radios HF (Configurable en config- ehas) - Habilitación de alarmas por lecturas de los valores analógicos. encendido (H) y apagado (L) de los 4 leds: HHHL 4 bytes fueron enviados al dispositivo. bytes recibidos: El valor de conversion es: Canal 0: 0.000 Voltios (Voltaje de batería) Canal 1: 26 grados (Temperatura de la radio) Canal 2: 0.251 Voltios (Potencia directa) Canal 3: 0.232 Voltios (Potencia reflejada) ROE = 1.23 CNTL C para salir encendido (H) y apagado (L) de los 4 leds: 36 - Control del PTT de la radio. - Visualización de mensajes de advertencia. Todas estas funciones se valen del controlador “eboard.c” (Incluido en el anexo) descrito anteriormente el cual también va dentro de ehas-board. Como nuestro dispositivo actuará de forma pasiva, será la aplicación la encargada de ordenarle el envío de datos y esto se da implementado un demonio denominado “edaemon” que quedará activo en el sistema exclusivamente para tener en comunicación al dispositivo. De esta manera se tienen los valores analógicos del dispositivo muestreados constantemente. Las acciones de control del dispositivo tales como el control del ventilador, el control de la transmisión serial con las radios HF y el control de voltajes de advertencia están a cargo de la computadora, pero el control de voltaje de corte está a cargo del dispositivo, eso se detalla en el siguiente capítulo. Finalmente las operaciones que realice la aplicación serán invisibles para el usuario, lo único que podrá ver son los siguientes indicadores: Indicador de batería y temperatura Figura 3.4.1 : Vista de los íconos de sensado 37 4. HARDWARE DEL SISTEMA Para que el microcontrolador trabaje con su entorno a las características eléctricas adecuadas, necesita de ciertos acondicionamientos en sus puertos de entrada y salida tanto digitales como analógicos, los cuales se ven a continuación. 4.1. HARDWARE DE ADQUISION DE DATOS En la parte de adquisición de datos se usa el conversor analógico a digital embebido al microcontrolador que tiene las siguientes características. - Ocho bits de muestreo, lo que nos permite aproximaciones de 25628 = escalas de voltaje, que junto con el rango de voltaje de entrada nos permite determinar la resolución del valor sensado. - Cinco canales de entrada al conversor A/D para el modelo PIC16C745. En nuestro caso sólo usaremos 4 canales pues uno lo usaremos para la entrada de referencia para tener una mayor precisión en nuestra lectura. - Registros especialmente implementados dentro de las variables del microcontrolador para el manejo del conversor A/D. Con esto el firmware se hace más ligero. 38 4.1.1. VOLTAJE DE REFERENCIA El siguiente diagrama muestra la entrada de referencia a 4V. R A 3 (R e f e renc e ) R 1 100 V C C C 2 0 . 1uF R 2 2K 13 2 D 1 4.1V Figura 4.1.1 Circuito de calibración del voltaje del diodo zener El circuito contiene un diodo zener de 4.1V con ±5% de error, que tiene una resistencia de 100Ωen serie con un potenciómetro de 2 kΩ de calibración (la variación será entonces de 100Ω a 2kΩ), los cuales en conjunto funcionan como la resistencia de polarización del diodo cuyo valor nominal varía dependiendo de la temperatura ambiental y de la carga que alimente, como en nuestro caso la entrada al canal A/D de referencia tiene un valor alto de impedancia, la variación de corriente de carga no varía, dejando cómo únicos parámetros de variación a la temperatura y al potenciómetro. Teniendo el control del valor nominal de voltaje dejaremos que la corriente de polarización del diodo zener lleve el voltaje nominal a 4V con aproximadamente 1mA de corriente de polarización, para que de esta manera también facilite los cálculos que se harán en el software. El condensador es de protección de ruido. 39 4.1.2. SENSADO DE VOLTAJE R 4 5K D 2 5.1V R 3 15K R A 0 (A D C - C H A N N E L 1) B ATTE R Y C 1 0.1uF Figura 4.1.2 Circuito de sensado de voltaje En la figura 4.4.2.1 se ve el circuito de sensado de voltaje que adapta la señal de entrada a la entrada del puerto analógico del microcontrolador, mediante un divisor resistivo que divide en un factor de 4 a la entrada de voltaje de batería, teniendo al voltaje de referencia igual a 4V, entonces el voltaje máximo de batería que podríamos medir es de 16V, si este valor se excediera se tiene un diodo zener de 5.1V como protección de sobrevoltaje. 4.1.3. SENSADO DE TEMPERATURA R 3 2K R A 1 (AD C - C H AN N EL 2) C 1 0.1uF TEMPA c onec tor 1 2 1 2 VC C = 5V 2 1 Temp GND CABLES TRENZADOS LM335 LM335 TEMP Figura 4.1.3.1 Circuito de sensado de temperatura 40 Para el sensado de temperatura usamos el circuito integrado LM335 cuya precisión es suficiente para nuestra aplicación, el cual tiene las siguientes características: - Rango de sensado de -40 a 100°C. - Corriente de funcionamiento = 10mA - Valor de referencia: 3V @ 20 °C - 1°C = 10 mV Para tenerlo en su corriente de funcionamiento de 1mA usamos la resistencia de 2Kohm, y de los datos del circuito podemos sacar la resolución de temperatura que podremos medir: Resolución = 1.56 Grados Celsius por muestra Se debe tener en cuenta que el cable no debe sobrepasar los 2 metros y se recomienda usar par trenzado o un cable apantallado como usan los cables de audio para evitar problemas de ruido. 4.2. SENSOR DE ROE Existen muchas clases de transductor de ROE, los cuales difieren solamente en algunas características como la forma en que capturan la señal, pero en general cuentan con una etapa rectificadora tanto en dirección de la señal como en dirección contraria, pues es esta relación la que nos interesa. Se han usado dos modelos los que se presentan a continuación. 4.2.1. TRANSDUCTOR DE BARRAS PARALELAS Consiste en una caja metálica con tres terminales, una salida DC para la potencia directa, otra para la inversa y una de referencia, en nuestro caso será la misma masa, adentro contiene dos barras de inducción paralelas al núcleo desnudo, éstas señales inducidas pasan por un circuito rectificador que son básicamente un diodo de cristal y un condensador, la rectificación se da de 41 manera que una vaya en dirección de la potencia directa y en la otra barra en dirección de la potencia inversa, estos valores de DC ya pueden ser digitalizados, ya que a 100W genera una DC de 1.44V aprox para la barra de potencia directa, claro que al final se tiene que calibrar por software comparando con un instrumento de precisión como el BIRD. Este circuito es conveniente para los rangos menores a 40MHz que es ideal para las radios HF, en otras frecuencias el acoplamiento es muy bajo, por menor a los –14dB. El esquema se presenta a continuación: Del EquipoA la radio Vdc Directa Protección Vdc Inversa Figura 4.2.1.1 Sensor de ROE de barras paralelas 42 4.2.2. TRANSDUCTOR EN IMPRESO El siguiente circuito es óptimo para los rangos de frecuencia que usamos en VHF los cálculos se basan en la fórmula 2.4.5 y para que su funcionamiento sea óptimo se debe mantener el máximo de simetría para ambas tomas de inducción. La resistencia de 50 ohm se compone de tres resistencias de 150 ohm en paralelo de tipo SMD (de montaje superficial de potencia) El diagrama se muestra a continuación: Del EquipoA la radio Vdc Inversa Vdc Directa Figura 4.2.2.1 Sensor de ROE en circuito impreso Los rangos de voltaje a la salida para el rango óptimo varían dependiendo a la frecuencia y la potencia que se transmita y se muestra en la tabla 4.2.2.1 en donde el puerto A es Vdc inversa y el puerto B es Vdc directa. 43 Puerto A/B 25W 2,5W 0.25W 145MHz Voltios Voltios Voltios A directa 1,91 0,520 0,070 B directa 1,90 0,52 0,065 A reflejada 0,039 0,0038 0,0001 435MHz A directa 5,28 1,475 0,33 B reflajada 0,300 0,0485 0,0043 A reflejada 0,361 0,057 0,005 Tabla 4.2.2.1 Variación de valores de sensado a diferentes potencias En base a este cuadro se genera la ecuación de compensación que finalmente se opera en nuestra fórmula que hallará el ROE descrita en la parte teórica. 44 4.3. HARDWARE DE LOS PUERTOS DIGITALES 4.3.1. INTERFAZ SERIAL CON LAS RADIOS R 5 1K R 9 1K R C 7 - R X V C C R B 0 - MO D E R X/TX S E R IA L R 8 1K U 3B 7486 4 5 6R C 6 - TX R 7 10Q 1 2N 3905/TO 1 3 2 TX S E R IA L C 3 68nF R 12 10 R 6 10K U 1A 7486 1 2 3 R X S E R IA L C 4 68nF Figura 4.3.1.1 Circuito anticolisión con transistores En este diagrama se muestra el circuito anticolisión de la interfaz serial del microcontrolador a la radio ICOM el cual usa una sola línea tanto para la transmisión como para la recepción. El transistor hace de interruptor para la recepción de la trama serial y conmutador para la salida. U 5 74LS244 2 4 6 8 11 13 15 17 1 19 18 16 14 12 9 7 5 3 1A 1 1A 2 1A 3 1A 4 2A 1 2A 2 2A 3 2A 4 1G 2G 1Y 1 1Y 2 1Y 3 1Y 4 2Y 1 2Y 2 2Y 3 2Y 4 TX SER IAL R X/TX SER IAL R C 6 - TX U 1A 7486 1 2 3 U 3B 7486 4 5 6 R C 7 - R X R B 0 - MOD E R X SER IAL Figura 4.3.1.2 Circuito anticolisión con buffer triestado Esta es otra forma de implementar un circuito anticolisión para interfaces que usen una sola línea de transmisión utilizando un buffer 74LS244. 45 4.3.2. ESTADO DE LA RADIO VHF C 1 0.1uF R 3 5K R B 4 D 2 5.1V V H F S TATE Figura 4.3.2.1 Adaptación de la entrada a valor TTL La salida que nos indica el estado de la radio VHF (encendido o apagado) se lee usando el puerto RB4 del microcontrolador, pero este valor leído no es TTL sino que supera los 10V lo cual se limitan con el circuito mostrado en la figura 4.3.2.1 4.3.3. ZUMBADOR V C C R 13 3. 3K Q 2 2N 2222 3 2 1 R C 1 Figura 4.3.3.1 Circuito de activación del zumbador Se tiene también un zumbador como se muestra en la figura para dar los avisos de alerta al usuario, dicho zumbador funciona con una señal cuadrada que puede variar de 1.5 a 4KHz, siendo 2KHz la frecuencia óptima, dicho zumbador es controlado por el puerto RC1 del microcontrolador el cual cuenta con una salida generadora de señal cuadrada ya implementada y cuya frecuencia es fácilmente programable. El circuito consta de un transistor como interruptor que será el encargado de entregar la señal cuadrada al zumbador. 46 4.3.4. VENTILADOR D3 1N4148 12V JA2A VENTILADOR 1 2 1 2 R13 3.3K RC1 Q2 2N2222 3 2 1 Figura 4.3.4.1 Circuito de manejo del ventilador El circuito adapta la salida digital del puerto del microcontrolador con 1.5mA para manejar entre 100 y 200mA a 12V que se requiere para accionar al ventilador. 4.4. PROTECCIÓN Y ADAPTACIÓN DE IMPEDANCIAS A LA TARJETA DE SONIDO La entrada de audio a la computadora debe estar protegida ya que el sistema de radio es propenso a sufrir descargas atmosféricas y si los protectores de línea, ya sean de gas o de otra clase, reaccionan con cierto retardo, se corre el riesgo dañar algo más que la entrada de sonido de nuestra computadora. Para esto se ha previsto acondicionar unos transformadores de banda base (Voz) para aislar la conexión externa, que incluye el sistema de radio junto con la placa estación, de la conexión interna, que sería la computadora y todo los periféricos que tenga conectados; además la conexión de audio va con un adaptador de impedancias para acondicionar los niveles de entrada y salida de audio que van tanto entrada como de salida de la radio a la tarjeta de sonido de la computadora. El diagrama se muestra en la figura 4.4.1 Ventilador 1 2 47 LIN E IN S P E A K E R C 3 68nF C 4 68nF R 11 100K 1 3 2 R ad io IN R 10 100K 1 3 2 T1 T LI N E 1 5 4 8 R ad io O U T T2 T S P E A K E R 1 5 4 8 Figura 4.4.1 Protección de la tarjeta de sonido En caso se usara la entrada de micrófono en vez de la entrada de línea, la mayoría tiene agregada a su entrada una salida de 2VDC aproximadamente para alimentar los micrófonos y lo cual eliminamos con el condensador C3. Algunas radios también tienen este nivel DC en sus entradas por eso se usa simétricamente el condensador C4 Los transformadores empleados no deben distorsionar demasiado la señal de audio porque eso dará lugar a errores en la transmisión de datos, en nuestro caso se ha usado un transformador con las siguientes características: - Relación 1:1 - R = 45 Ohm - L = 100 mH 4.5. ALIMENTACIÓN DE LA TARJETA Una de las ventajas al usar el puerto USB es que se cuenta con alimentación propia del bus, siempre y cuando el dispositivo no exceda los 500mA de la fuente de 5V que nos brinda. En nuestro caso la tarjeta tendrá dos modalidades de alimentación, por fuente USB y por fuente externa, esta última para manejar 48 los accesorios de la placa estación que requieran mayor corriente que la permitida por el bus. En la figura 4.5.1 se muestra la fuente externa usada, empleando el circuito integrado LM2576-5 P+, el cual es un regulador switching de 5V con muchas mejoras cualidades que los reguladores lineales tanto en el consumo como en rango de entrada de voltaje. Sus características más importantes son: - Voltaje de salida: 5V DC estable con variación de ± 0.1V - Voltaje de entrada: De 8 a 40V DC no regulada. - Corriente máxima: Hasta 2A (también depende de la bobina y el diodo). - Temperatura de operación: De –40 a 100 grados Celsius. Figura 4.5.1 Circuito de alimentación Como toda fuente switching, este circuito integrado debe venir acompañado por otros tres accesorios para su correcto funcionamiento, un condesador, un diodo y una bobina, el manual nos dice que para que el regulador opere a su máxima potencia debemos usar un diodo de 3A, una bobina de 100uH (con alambre calibre 20) y un condensador de 1000uF a 50V. En este caso no superamos 1A de corriente por lo que se emplea los siguientes: 49 - Diodo 1N5822 (Rápido de 2 A). - Bobina de 100uH con alambre de calibre 24. - Condensador de 100uF a 25V. Estos cambios se hicieron para hacer más pequeña la tarjeta puesto que estos componentes al ser de menor potencia también son más pequeños físicamente. El calibre del alambre de la bobina puede ser menor en nuestro caso, por lo que también se podría usar el número 25 o 26 envuelto en una ferrita cilíndrica que se acomode al circuito impreso, en el caso que no se pueda conseguir una comercial con el tamaño y las características deseadas. 4.6. FABRICACIÓN Y MONTAJE DEL CIRCUITO IMPRESO Para terminar con el hardware, se mando fabricar el circuito impreso en una placa de fibra de vidrio de doble cara con máscara antisoldante y diagrama de distribución de componentes (adjuntos en los anexos) que facilitan el montaje de los componentes a la hora de ubicarlos en la tarjeta para soldarlos, aparte de estas especificaciones se mandó hacer también un proceso de metalizado para conectar ambas caras y evitar con esto el uso de pasantes o vías de conexión. En la figura 4.6.1 se puede apreciar el circuito de la versión 1.3. 50 Figura 4.6.1- Vista del circuito final construido. También se tiene un modelo usando tecnología de montaje superficial o SMD correspondiente a una versión posterior, con el cual se redujo en gran proporción el tamaño y los costos de fabricación de la Placa Estación, como se muestra en la figura 4.6.2 Figura 4.6.2 Vistas del modelo reducido 51 5. FUNCIONAMIENTO Y MANEJO A continuación se presenta el funcionamiento y manejo de la placa estación para una estación HF y VHF. Para tener un panorama de las capacidades de la placa estación listamos las funciones que se pueden realizar: 5.1. FUNCIONES PARA LA RADIO RADIO HF (KENWOOD TK-80) FUNCIONES ELEMENTALES: - Conexión de audio de la computadora a la radio - Control del PTT FUNCIONES DE CONTROL Y LECTURA DE LA RADIO - Lectura y cambio de canal † - Lectura y cambio de modo (LSB, USB, CW) - Lectura y cambio de potencia de transmisión - Lectura y cambio del silenciador (Squelch) - Lectura y cambio del clarificador (Clarifier) - Lectura y cambio de la ganancia (volumen de altavoz) † - Control del encendido y apagado de la radio y lectura del estado FUNCIONES DE MONITOREO EXTERNOS A LA RADIO - Lectura de temperatura (Con indicador en el monitor) - Lectura de voltaje del sistema (Al que esté conectada la interfaz) - Lectura del ROE ENTRADAS EXTERNAS - Botón de emergencia para cortar transmisión de datos y usar voz 52 SALIDAS EXTERNAS - Conexión para uso de ventilador externo de 12V - Conexión para uso de buzzer externo NOTA: La radio ICOM IC-78 además de tener las funciones básicas tiene las que están con † 5.2. FUNCIONES PARA LA RADIO VHF (MOTOROLA PRO 3100) FUNCIONES ELEMENTALES: - Conexión de audio de la computadora a la radio - Control del PTT FUNCIONES DE CONTROL Y LECTURADE LA RADIO - Lectura y cambio de canal (Dos estados) - Control del encendido y apagado de la radio y lectura del estado FUNCIONES DE MONITOREO EXTERNO A LA RADIO - Lectura de temperatura (Con indicador en el monitor) - Lectura de voltaje del sistema (Al que esté conectada la interfaz) - Lectura del ROE ENTRADAS EXTERNAS - Botón de emergencia para cortar transmisión de datos y usar voz SALIDAS EXTERNAS - Conexión para uso de ventilador externo - Conexión para uso de zumbador externo 53 5.3. PARÁMETROS DE FUNCIONAMIENTO CARATERÍSTICAS ELÉCTRICAS: PARÁMETRO MÍNIMO TÍPICO MÁXIMO Voltaje de alimentación externa 8 12 20 V Corriente de carga en el relay - 3 6 A Potencia consumida por la interfaz 100 150 200 mW Temperatura de funcionamiento óptimo 10 25 60 °C Voltaje en cualquier entrada de sensado 0 - 4 V Corriente en el puerto del ventilador 1 10 50 mA Corriente en el puerto del buzzer 0.1 1 3 mA Tabla 5.3.1 Características eléctricas RANGOS DE SENSADO: PARÁMETRO MÍNIMO TÍPICO MÁXIMO Sensado de temperatura -40 - 100 °C Sensado de voltaje 0 - 16 V Sensado de ROE 1 - 4 Tabla 5.3.1 Rangos de sensado 5.4. DESCRIPCIÓN El Diagrama 5.4.1 muestra las conexiones en la tarjeta con la distribución real de elementos internos. 54 1 2 3 4 5 6 7 8 9 10 11 12 1314151617 Diagrama 5.4.1 Descripción física del dispositivo 1. Alimentación externa. 2. Entrada de alimentación de la computadora para el control de encendido. 3. Switch selector de tarjeta. 4. Switch selector de tipo de alimentación. 5. Conexión al zumbador externo y al ventilador. 6. Entrada USB. 7. Conexión para la entrada del botón externo. 8. Conexión para sensado.de potencia directa (Pdir) y potencia inversa (Pinv). 9. Conexión para el sensado de temperatura. 10. Potenciómetro para calibrar referencia a 4V. 11. Potenciómetro para calibrar nivel de salida (speaker) de audio. 12. Potenciómetro para calibrar nivel de entrada (line-in/mic) de audio. 13. Conector Jack hembra de salida (speaker). 14. Conector Jack hembra de entrada (line-in/mic). 55 15. Conector DB25 Macho de salida de audio y control de las radios HF (Icom IC-78, Kenwood TK-80, Yaesu System 600) y VHF (Motorola Pro3100). 16. Led de configuración. 17. Led indicador de fuente externa. 5.5. MODALIDADES DE FUNCIONAMIENTO DE LA PLACA ESTACIÓN A continuación se describe las modalidades de funcionamiento tanto para una transmisión HF como VHF. 5.5.1. MODALIDAD VHF En la figura 5.5.1.1 se ve el la conexión de la radio VHF Motorola usando su puerto posterior de control, allí se encuentra la conexión de audio y los pines de control y lectura de estado. USB USB DB15 PLACA INTERFAZ SERVIDOR MOTOROLA Figura 5.5.1.1 Modalidad VHF 56 5.5.2. MODALIDAD HF En la figura 5.5.2.1 se ve la conexión de audio a la radio así como la conexión para el manejo serial de la radio (CAT). USB USB KENWOOD DB15 PLACA INTERFAZ KENWOOD SERVIDOR Figura 5.5.2.1 Modalidad HF 5.6. CABLEADO Y CONEXIONES DE LA PLACA. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 GND IGNITION SPEAKER (OUT) MIC (IN) PTT CHANNEL_DATA VHF_STATE IC-78 K TX K RX Figura 5.6 Vista frontal del conector DB15 macho del circuito impreso. 57 5.6.1. CABLE ICOM IC-78 2 1 5 12 12 8 OUT CONECTOR DB15 ICOM - ACC SOCKET JACK MONO 11 12 3 2 SERIAL IN/OUT GND GND PTT IN 13 10 11 6 7 2 3 8 129 41 5 Figura 5.6.1.1 Conexión del dispositivo a la radio ICOM IC-78 5.6.2. CABLE MOTOROLA PRO3100 2 1 4 5 6 7 12 OUT CONECTOR DB15 MOTOROLA SOCKET IGNITION CHANEL DATA VHF STATE 5 11 10 3 6 13 7 IN PTT GND 19 1 3 5 7 9 11 13 15 17 Figura 5.6.1.1 Conexión del dispositivo a la radio Motorota Pro 3100 58 5.6.3. CABLE KENWOOD TK-80 2 1 5 12 9 10 13 OUT CONECTOR DB15 KENWOOD SOCKET 7 3 6 4 IN 7 2 8 6 3 5 1 4 PTT GND K-RX K-TX GND 5 3 42 6 1 2 3 1 Figura 5.6.3.1 Conexión del dispositivo a la radio Kenwood TK-80 5.6.4. CONECTORES MOLEX DE SENSADO EXTERNO PdIR GND Pinv GND Temp GND Temp GND Pdir - DC Sensor de ROE Pinv - DC CABLES TRENZADOS MOLEX DE 4 CABLES TRENZADOS MOLEX DE 2 LM335 LM335 Figura 5.6.4.1 Conexión del dispositivo a la radio ICOM IC-78 El montaje se muestra en la figura 5.6.4.2. 59 Sensor de temperatura Ventilador SWR Figura 5.6.1.1 Conexión de los sensores del dispositivo NOTAS: • Distancia máxima = 2m. • Puede usarse un cable UTP flexible multihilo.o cables apantallados como los de audio mono o estereo. • La vista de los conectores de las radios son con respecto a las mismas. 5.7. CONEXIÓN USB La conexión de la interfaz USB a la placa madre de la computadora se ve en la figura 3.5.1, hay que indicar que éste esquema es sólo para las placas madre VIA EPIA, para los demás habrá que consultar el manual. 60 USB Macho USB Hembra Figura 5.7.1 Conexión USB del dispositivo a la placa madre NOTA: Sólo hay una forma de conectar ambos dispositivos 61 5.8. CONEXIÓN DE ALIMENTACIÓN Antes de empezar con el cableado de alimentación se deberá tener en cuenta si tiene fluido eléctrico permanente o si la fuente de energía es una batería, en cualquier caso se debe tener el interruptor Selector de Alimentación, mostrado en la figura 5.8.1, en la posición correcta. Selector de entrada de Alimentación Figura 5.8.1 Vista del selector de alimentación del dispositivo 5.8.1. PARA LAS ESTACIONES CON FLUÍDO ELÉCTRICO Si se cuenta con fluido eléctrico permanente bastará con tener el interruptor en la posición que indica la figura, lo que significa que la tarjeta se alimentará directamente del puerto USB. Alimentada por el puerto USB USB EXT Figura 5.8.1.1 Selector configurado para recibir alimentación del puerto USB 62 NOTA: Cabe recordar que en esta opción no se deben configurar las opciones de control de voltaje, de encendido y apagado externo ni de control de temperatura (El ventilador se alimenta de la batería). 5.8.2. PARA LAS ESTACIONES SIN FLUIDO ELÉCTRICO En este caso la Placa Estación tomará control del encendido de la computadora por lo que se deberá hacer el conexionado que se explica en adelante. 1. Antes de hacer cualquier conexión se debe tener en cuentas que los conectores estén en buen estado y los cables bien soldados a ellos, así como la posición correcta del interruptor de Selección de Alimentación como indica la figura. Alimentado por fuente externa EXTUSB Figura 5.8.2.1 Selector configurado para recibir alimentación externa 2. La simbología de colores es ROJO para la línea positiva y NEGRO para la línea negativa y, en este caso, también es tierra como se ve en la figura 5.8.2.2. 63 M H Figura 5.8.2.2 Vista de los cables de poder de la tarjeta. Donde los conectores empleados son de tipo batería, macho M y hembra H. M MH DC/DC Tarjeta Madre M H Placa Estación Fusible Interruptor Figura 5.8.2.3 Conexiones de poder Las conexiones mostradas en la Figura 5.8.2 están en la parte posterior de la caja de computadora y los bloques son referenciales no indican el lugar exacto de los componentes internos de la computadora. 64 5.9. CALIBRACIÓN DE LA TARJETA. 20 19 18 P Figura 5.9.1 Puntos de calibración P: Punto de prueba de 4V. 18: Potenciómetro para calibrar referencia a 4V. 19: Potenciómetro para calibrar nivel de salida (speaker) de audio. 20: Potenciómetro para calibrar nivel de entrada (line-in/mic) de audio. El valor de voltaje de referencia aumenta en sentido antihorario. Los valores de resistencia aumentan en sentido antihorario. El siguiente diagrama muestra los siguientes puntos importantes para la calibración tanto del voltaje referencial para las entradas analógicas como para la parte de audio. 65 1 2 3 4 5 6 Figura 5.9.2 Puntos de prueba En la figura 5.9.2 los puntos 1, 2 y 3 pertenecen al potenciómetro de Entrada y los valores aproximados que deben tener se muestran en la siguiente tabla: Resistencia entre puntos del potenciómetro Conexión HF Conexión VHF R 1 – 2 0,5 KOhm 3 KOhm R 2 – 3 99,5 KOhm 97 KOhm R 4 – 5 35 KOhm 35 KOhm R 5 – 6 65 KOhm 65 KOhm Tabla 5.9.1 Valores de calibración aproximados NOTAS: • Los puntos 4, 5 y 6 pertenecen al potenciómetro de Entrada. • Estos valores son referenciales, la calibración final se debe hacer con una prueba de transmisión, que junto con un mezclador como puede ser el Rexima nos den los 66 valores finales. Los valores con los que debe empezar las pruebas en el programa antes mencionado son los siguientes: Figura 5.9.3: Vista de la consola de control de audio • El rexima es parte del paquete ALSA-MIXER que se puede descargar libremente de la red. 5.10. MONTAJE Figura 5.10.1 Montaje en una caja de computadora comercial rexima min . . . . : . . . . max Vol [=========================|-------------------------] 50% [ ] Pcm [=========================|-------------------------] 50% Line [|--------------------------------------------------] 0% [ ] Mic [|--------------------------------------------------] 0% [R] CD [|--------------------------------------------------] 0% [ ] Pcm2 [=========================|-------------------------] 50% IGain [=========================|-------------------------] 50% Line1 [|--------------------------------------------------] 0% [ ] PhoneIn [|--------------------------------------------------] 0% [ ] 67 La Figura 5.10.1 muestra la posición de montaje en la parte posterior de una caja de computadora el cual ya vendrá con dos soportes que coinciden con los agujeros mostrados en la figura 5.10.2 Agujeros para los tornillos de soporte Agujero para tornillo de soporte Figura 5.10.2 Puntos de soporte 68 5.11. CONFIGURACIÓN DE LA PLACA ESTACIÓN Para que la placa estación funcione en conjunto con el software modem “ehas- station” se debe configurar dentro de la interfaz “config-ehas”de la siguiente manera: # config-ehas Figura 5.11.1 Pantalla principal de la interfaz Figura 5.11.1 Se crea una conexión nueva, en nuestro caso “radio1” el cual puede ser para radios HF o VHF. Figura 5.11.2 Activación del sensado de temperatura y los demás parámetros de conexión HF o VHF. 69 Figura 5.11.3 Configuración del dispositivo USB. Figura 5.11.4 Activación del sensado de voltaje: Al terminar de configurar se sale de la interfaz de configuración y se escribe sobre los cambios realizados con la siguiente instrucción: # write config-ehas 70 5.12. COMANDOS DE MANEJO DE LA PLACA INTERFAZ Los comandos para manejar la placa interfaz vienen en el paquete "ehas- board" que es complemento del paquete “ehas-station”, y son: eboard [OPCIONES] [COMANDO] [PUERTO] Comando generado directamente por el driver "eboard" OPCIONES: -v: Muestra cada envío que hace el driver eboard al PIC -q: quita comentarios y argumentos y sólo muestra el valor en viado o recibido -b: Selecciona la tarjeta a la que va la orden: Board (0/1/2/3) (No se usa si la tarjeta es Board0) -l: Muestra la lista de las tarjetas conectadas Es el primer comando que se usa para ver si la(s) station Board(s) enumera(n) Ejemplo: # eboard -l EHAS Board found (version 1.3) ID: 0 -p: Abre comando y sólo espera opciones (no es muy útil, mejor se hace con el "etestboard") COMANDOS: version: muestra la versión de Station Board set / unset PUERTO: pone a 1 o cero un PUERTO de salida). 71 Ejemplo: # eboard unset led Gate : 0 (Pone led a color verde) # eboard set led Gate : 1 (Pone led a color rojo) get PUERTO: Lee el valor que tiene un PUERTO, se usa de preferencia para un PUERTO de entrada pero también se puede leer en qué valor quedó un PUERTO de salida. Ejemplo: # eboard get radio_state Gate : 0 (radio vhf está en 0, apagada) # eboard get button Gate