UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA PROYECTO DE TRABAJO DE GRADUACIÓN PARA OPTAR AL GRADO DE INGENIERO EN CIENCIAS DE LA COMPUTACIÓN SISTEMA DE ACCESO REMOTO, MONITOREO DE NIVEL DE COMBUSTIBLE Y REGISTRO DE EVENTOS A BASE DE DATOS, PARA NODOS CRÍTICOS DE PROVEEDOR DE TELEFONÍA CELULAR UTILIZANDO EL SERVICIO SMS PRESENTADO POR: LUIS ENRIQUE MARTÍNEZ SANDOVAL ASESOR: ING. NESTOR IVÁN ZELAYA RODRIGUEZ MARZO 2009 EL SALVADOR, CENTRO AMERICA UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA RECTOR: ING. FEDERICO MIGUEL HUGUET RIVERA SECRETARIO GENERAL ING. YESENIA XIOMARA MARTINEZ DECANO FACULTAD DE INGENIERIA ING. ERNESTO GODOFREDO GIRON MARZO 2009 EL SALVADOR, CENTRO AMERICA UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA TRABAJO DE GRADUACIÓN PARA OPTAR AL GRADO DE INGENIERO EN CIENCIAS DE LA COMPUTACIÓN SISTEMA DE ACCESO REMOTO, MONITOREO DE NIVEL DE COMBUSTIBLE Y REGISTRO DE EVENTOS A BASE DE DATOS, PARA NODOS CRÍTICOS DE PROVEEDOR DE TELEFONÍA CELULAR UTILIZANDO EL SERVICIO SMS ING. NESTOR IVÁN ZELAYA RODRIGUEZ ING. JAIME ANTONIO ANAYA HERNANDEZ ASESOR LECTOR MARZO 2009 EL SALVADOR CENTRO AMERICA AGRADECIMIENTOS Agradezco principalmente a Dios todopoderoso, por guiarme y ser mi soporte en toda mi carrera, a la virgen María y a San Judas Tadeo por interceder siempre por mi. Agradezco el enorme sacrificio que mis padres han hecho siempre para poder brindarme todo lo necesario para culminar con éxitos mi carrera, y todo lo que emprendo en la vida, por estar siempre incondicionalmente al pendiente de proveerme tanto económica como moralmente. A mis hermanos y demás familia que son un pilar muy importante para mí, gracias por estar ahí siempre que los necesito. Quiero agradecer a mi novia Karla por estar siempre a mi lado, por creer en mi y poder contar con ella en las buenas y en las malas. A mis suegros por su manera tan especial y única de brindarme su confianza y su apoyo incondicional. A mis amigos Bwana, gordo Dimas, Borja, Juvenal, Zarco, Walter, Gochez, negro Bonilla, a la Colocho, Violeta, por todo lo que vivimos y aprendimos juntos, y a todos los demás amigos que no se mencionan aquí pero que fueron piezas importantes de este logro. A mi compañero de tesis Ever Rivas por haber trabajado tan incondicional y arduamente en el desarrollo de éste y tantos otros proyectos. En especial agradecimiento al Ingeniero Jaime Anaya por ser tan comprensivo y paciente, por haberme brindado sus consejos y compartir su sabiduría tanto académica como de la vida misma. A mi asesor el Ingeniero Nestor Zelaya por pasar tantas horas en vela para poder hacer de éste un gran proyecto. A mis mentores José España y Paulo Rico, por compartir su perspectiva de vida y sus valiosas enseñanzas. En general a todas aquellas personas que colaboraron directa e indirectamente durante tantos años de estudio, para llegar a este punto final y conmemorativo. Luis Enrique Martinez Sandoval ÍNDICE 1. INTRODUCCIÓN.....................................................................................................14 2. OBJETIVOS............................................................................................................16 2.1 OBJETIVO GENERAL:......................................................................................16 2.2 OBJETIVOS ESPECÍFICOS:............................................................................16 3. ALCANCES.............................................................................................................17 4. LIMITACIONES........................................................................................................18 5. MARCO TEÓRICO..................................................................................................19 5.1 RED GSM..........................................................................................................19 5.1.1 DEFINICIÓN DE RED GSM.................................................................................19 5.1.2 DESCRIPCIÓN DEL SERVICIO..........................................................................19 5.1.3 GSM.....................................................................................................................23 5.1.4 ROADMING Y HAN OVER..................................................................................24 5.2 MENSAJERÍA SMS...........................................................................................25 5.2.1 DEFINICIÓN DE SERVICIO DE MENSAJERÍA SMS..........................................25 5.2.2 ARQUITECTURA SMS .......................................................................................25 5.2.3 CANALES DE CONTROL (MEDIO DE TRANSPORTE DEL SMS)......................27 5.2.4 EL FUTURO DEL SMS .......................................................................................27 5.2.5 INTERFACE DE PROGRAMA DE APLICACIÓN EN MENSAJE INALÁMBRICA J2ME (THE J2ME WIRELESS MESSAGING API, JSR 120)........................................28 5.2.5.1 CLASES DE ALTO NIVEL EN WMA ..........................................................29 5.2.5.2 URLS Y CONEXIONES DE MENSAJE .......................................................30 5.2.5.3 NÚMEROS DE PUERTO SMS.........................................................................31 5.2.5.4 ALMACENAR Y BORRAR MENSAJES RECIBIDOS SMS .........................31 5.2.5.5 TIPOS DE MENSAJES SMS ......................................................................32 5.2.6 ESPECIFICACIONES EN EL WMA DENTRO DEL MOTOROLA V600 ..............32 5.2.6.1 ESTRUCTURA DE MENSAJE SMS............................................................32 5.2.6.2 NOTIFICACIÓN SMS..................................................................................33 5.2.6.3 CARACTERÍSTICA DE MENSAJERÍA EN EL V600.....................................33 5.2.6.4 EJEMPLO DE EMPLEO DE MÉTODOS EN EL WMA.................................34 5.3 MÓDEM Y MÓDEM GSM..................................................................................36 5.3.1 MÓDEM...............................................................................................................36 5.3.1.1 FUNCIONAMIENTO.....................................................................................37 5.3.2 TIPOS DE MÓDEM..............................................................................................37 5.3.3 MÓDEM PARA COMPUTADORA........................................................................37 5.3.4 MÓDEM TELEFÓNICOS.....................................................................................39 5.3.4.1 TIPOS DE MODULACIÓN ...........................................................................40 5.3.4.2 ÓRDENES AT...............................................................................................41 5.3.4.3 PASOS PARA ESTABLECER UNA COMUNICACIÓN.................................43 5.3.5 MÓDEM GSM......................................................................................................45 5.4 MICROCONTROLADORES PIC.......................................................................46 5.5 BUS SERIE UNIVERSAL (USB)........................................................................48 5.5.1 DESCRIPCIÓN DEL USB....................................................................................48 5.5.2 CARACTERÍSTICAS GENERALES DEL USB.....................................................49 5.5.3 ARQUITECTURA DEL BUS USB.........................................................................51 5.5.4 ELEMENTOS DEL USB.......................................................................................51 5.5.5 TOPOLOGÍA........................................................................................................51 5.5.6 TRANSMISIÓN Y CODIFICACIÓN......................................................................52 5.5.7 COMPONENTES Y MÉTODO.............................................................................53 5.5.8 CLASE HID..........................................................................................................54 5.5.9 FACILIDADES PARA EL DESARROLLO DE DISPOSITIVOS USB.....................54 5.6 PUERTO SERIAL..............................................................................................55 5.6.1 ¿QUÉ ES UN PUERTO SERIAL?........................................................................56 5.6.2 TIPOS DE COMUNICACIONES SERIALES........................................................56 5.6.3 CONECTOR RS-232C.........................................................................................56 5.6.4 FUNCIONAMIENTO GENERAL DEL PUERTO SERIAL......................................60 5.6.5 CONFIGURACIÓN DEL PUERTO SERIAL..........................................................62 5.7 PROGRAMACION EN C PARA PICS USANDO EL COMPILADOR CCS.......64 5.7.1 DESCRIPCIÓN DE LOS COMPILADORES PCB, PCM, Y PCH..........................64 5.7.2 ESTRUCTURA PRINCIPAL.................................................................................65 5.7.3 DECLARACIONES..............................................................................................66 5.7.4 OPERADORES....................................................................................................66 5.7.5 DEFINICIONES DE DATOS.................................................................................67 5.7.6 DECLARACIONES..............................................................................................68 5.7.7 USO DE LA MEMORIA DE PROGRAMA PARA DATOS......................................68 5.7.8 FUNCIONES INCORPORADAS DEL COMPILADOR CCS.................................70 5.8 MICROSOFT SQL SERVER 2005....................................................................75 5.8.1 ¿QUÉ ES MICROSOFT SQL SERVER 2005?.....................................................75 5.8.2 CARACTERÍSTICAS DE SQL SERVER 2005.....................................................75 5.8.3 PLATAFORMA DE DATOS DE SQL SERVER 2005............................................80 5.9 MICROSOFT VISUAL BASIC............................................................................83 5.9.1 ¿QUÉ ES VISUAL BASIC?..................................................................................84 5.9.2 CARACTERÍSTICAS DE VISUAL BASIC............................................................85 5.9.3 EDICIONES DE VISUAL BASIC..........................................................................85 5.9.4 EL ENTORNO DE DESARROLLO DE VISUAL BASIC........................................86 5.9.5 ENTORNO DE TRABAJO DE VISUAL BASIC.....................................................86 5.10 CONTROL DE PUERTOS USB PARA DISPOSITIVOS CON MICROCONTROLADORES PIC.............................................................................89 5.10.1 CONTROL OCX HIDCOMM PARA VISUAL BASIC 6.0.....................................90 5.10.2 INSTALACIÓN...................................................................................................90 5.10.3 PREPARANDO EL DISPOSITIVO USB.............................................................91 5.10.4 PARÁMETROS DE CONFIGURACIÓN DEL HIDCOMM...................................91 5.10.5 EJEMPLO DE USO DE ENTRADAS Y SALIDAS..............................................93 6. DESCRIPCIÓN GENERAL DEL FUNCIONAMIENTO SOFTWARE / HARDWARE.................................................................................................................95 6.1 FUNCIONAMIENTO..........................................................................................95 6.2 USUARIOS Y CONTRASEÑAS........................................................................96 6.2.1 INSCRIPCIÓN DE USUARIOS ...........................................................................96 6.2.2 INSCRIPCIÓN DE CONTRASEÑAS....................................................................97 6.2.3 SEGURIDAD DE USUARIOS Y CONTRASEÑAS ..............................................97 6.3 EL CIRCUITO....................................................................................................98 6.4 LA CENTRAL.....................................................................................................99 6.5 PROCESO.........................................................................................................99 6.5.1 PROCESO PARA APERTURA DE PUERTAS DE LA ESTACIÓN......................100 6.5.2 PROCESO PARA MONITOREO DE TANQUES DE COMBUSTIBLE................100 6.6 SOPORTE DE FALLAS...................................................................................102 7. VALIDACIÓN DE LOS RESULTADOS.................................................................103 8. DESARROLLO DEL SISTEMA SOFTWARE........................................................104 8.1 CRITERIOS DE SELECCIÓN DE ELEMENTOS DE SOFTWARE ...............104 8.2 FLUJOGRAMAS PARA EL SOFTWARE ........................................................106 8.3 PROCESO DE DISEÑO DEL SOFTWARE / CIRCUITO................................114 8.3.1 ETAPA 1: EVALUACIÓN DE LA MEJOR MANERA PARA INTERACTUAR CON LA RED TELEFÓNICA................................................................................................115 8.3.2 ETAPA 2: INVESTIGACIÓN SOBRE EL MÓDEM GSM. ...................................115 8.3.3 ETAPA 3: ESTUDIO DEL PROTOCOLO DE FUNCIONAMIENTO Y COMUNICACIÓN DEL PUERTO USB........................................................................116 8.3.4 ETAPA 4: ELECCIÓN DE LAS CARACTERÍSTICAS DEL MÓDEM GSM A USAR..............................................................................................................116 8.3.5 ETAPA 5: ELECCIÓN DEL PUERTO DE LA COMPUTADORA A USAR............117 8.3.6 ETAPA 6: LENGUAJE DE PROGRAMACIÓN PARA CÓDIGO FUENTE...........117 8.3.6.1 ACCESO AL PUERTO SERIE MEDIANTE EL CONTROL MSCOMM........117 8.3.6.2 CONFIGURACIÓN DE PROPIEDADES ANTES DE SU USO....................118 8.3.6.3 PROPIEDADES PROPIAS DEL TIEMPO DE EJECUCIÓN ......................122 8.3.6.4 EVENTOS DEL MSCOMM ........................................................................122 8.3.6.5 DESARROLLO DE LA ESTRUCTURA DE LA APLICACIÓN .....................124 8.3.7 ETAPA 7: DECISIÓN DE QUÉ GESTOR UTILIZAR PARA LAS BASES DE DATOS DE LOS EVENTOS EN LAS RADIO BASES.................................................124 8.3.7.1 GENERAR REPORTES.............................................................................125 8.3.8 ETAPA 8: CREACIÓN DE UN NUEVO SOFTWARE PARA LA ADMINISTRACIÓN DE USUARIOS DEL SISTEMA...................................................................................126 8.3.9 ETAPA 9: ELEGIR EL PUERTO DE LA COMPUTADORA A USAR PARA CONECTAR EL SOFTWARE DE LA ADMINISTRACIÓN DE USUARIOS. ................126 9. FUNCIONAMIENTO DEL SISTEMA......................................................................128 9.1 FUNCIONAMIENTO GENERAL......................................................................128 9.2 RECIBIR MENSAJES......................................................................................128 9.3 INTERPRETACIÓN DE MENSAJES...............................................................129 9.4 MONITOREO DE LA RADIO BASE................................................................129 9.5 RECIBIR MENSAJES DE MONITOREO.........................................................129 9.6 INTERPRETACIÓN DE MENSAJES DE MONITOREO.................................129 9.7 GENERACIÓN DE REPORTES ESTADÍSTICOS..........................................130 9.8 INGRESO DE USUARIOS..............................................................................132 10. INSTALACIÓN DEL SISTEMA DE SEGURIDAD Y CONTROL..........................133 11. COSTOS ..............................................................................................................139 12. CONCLUSIONES Y RECOMENDACIONES.......................................................142 12.1 CONCLUCIONES .........................................................................................142 12.2 RECOMENDACIONES..................................................................................143 13. REFERENCIAS ...................................................................................................144 14. GLOSARIO...........................................................................................................146 15. ANEXOS...............................................................................................................152 15.1 MANUAL DE INSTALACIÓN DE VISUAL BASIC 6.0...................................153 15.2 MANUAL DE INSTALACIÓN DE SQL SERVER ..........................................157 15.3 MANUAL DE INSTALACIÓN DEL PROGRAMA PIC C CON LICENCIA PCWH....................................................................................................................162 15.4 MANUAL MÓDEM GSM................................................................................166 15.5 CÓDIGO ASCII..............................................................................................199 15.6 CONEXIÓN DE LA BASE DE DATOS...........................................................201 15.6.1 CREANDO LA CADENA DE CONEXIÓN CON LA BASE DE DATOS.............202 15.6.1.1 ACCEDER A UNA BASE DE UNA INSTANCIA.........................................202 15.6.2 CÓMO USAR LA CADENA DE CONEXIÓN PARA EL ENLACE......................203 15.7 CÓDIGO EN VISUAL BASIC 6.0 DEL PROGRAMA DE LA CENTRAL .......205 ÍNDICE DE FIGURAS Figura 5.1.2.1: Estructura celular GSM......................................................................20 Figura 5.1.2.2: Estructura celular GSM......................................................................21 Figura 5.1.3.1: Frecuencias de GSM.........................................................................23 Figura 5.2.2.1: El SMSC.............................................................................................26 Figura 5.2.5.1.1: Interfaces WMA en el paquete javax.wireless.messaging.............29 Figura 5.3.5.1: Módem GSM......................................................................................46 Figura 5.4.1: Familias de microcontroladores PIC, funcionalidad y desempeño......47 Figura 5.5.5.1: Capas del USB...................................................................................51 Figura 5.5.5.2: Topología lógica del USB....................................................................52 Figura 5.5.6.1: Conector USB de tipo B......................................................................53 Figura 5.6.3.1: Ejemplo de puerto serial en la computadora......................................57 Figura 5.6.3.2: Conector serial RS232 de 9 pines macho.........................................57 Figura 5.6.3.3: Conector hembra RS232 de 9 pines.................................................57 Figura 5.6.3.4:Orden de los pines en los conectores DB-25 y DB-9.........................59 Figura 5.6.3.5: Comunicación Asincrono (RS-232)....................................................59 Figura: 5.6.3.6: Paquete de bits de un RS-232 (1 bit de arranque, 7 bits de datos, 1 bits de paridad, y 2 bits de parada)..........................................................................60 Figura 5.6.4.1: Transmisión de un dato con formato 8N1..........................................62 Figura 5.8.3.1: Plataforma SQL Server 2005 ............................................................81 Figura 5.9.1.1: Presentación de Microsoft Visual Basic 6.0 ......................................84 Figura 5.9.5.1: Ventana de inicio de Visual Basic......................................................87 Figura 5.9.5.2: Ventana de EXE Estandar ................................................................88 Figura 5.10.2.1: Controles ActiveX instalados en VB 6.0..........................................90 Figura 5.10.2.2 Ventana de componentes disponibles en VB 6.0.............................91 Figura 5.10.4.1: Criterios de concordancia................................................................92 Figura 5.10.5.1: Ventana de Propiedades..................................................................93 Figura 6.3.1: Circuito..................................................................................................98 Figura 6.5.1.1: Proceso de apertura de puertas......................................................100 Figura 6.5.2.1: Proceso de monitoreo de tanque de combustible...........................101 Figura 8.3.6.1.1: Control MsComm..........................................................................118 Figura 10.1: Representación de instalación de chapa.............................................133 Figura 10.2: Insertar chip y conectar antena a módem...........................................133 Figura 10.3: Modelo de caja de sistema..................................................................134 Figura 10.4: Atornillar chip en caja...........................................................................134 Figura 10.5: Atornillar módem en caja.....................................................................135 Figura 10.6: Conectar módem a chip ......................................................................135 Figura 10.7: Conectar chapa a circuito. ..................................................................136 Figura 10.8: Cerrar caja con tornillos.......................................................................137 Figura 10.9: Conectar sistema a corriente...............................................................137 ÍNDICE DE CUADROS Cuadro 5.2.6.3.1: Características de mensajería en el V600....................................33 Cuadro 5.6.3.1: Funciones de los Pin........................................................................58 Cuadro 5.6.3.2: Ubicación de los pines en los conectores DB-25 y DB-9................58 Cuadro 5.7.3.1 Declaraciones del compilador CCS...................................................66 Cuadro 5.7.4.1: Operadores del compilador C..........................................................67 Cuadro 5.7.5.1 Tipos de datos del compilador CCS..................................................68 Cuadro 5.7.8.1: Funciones incorporadas en el compilador CCS...............................70 Cuadro 5.8.2.1: Características de la Administración de Base de datos...................75 Cuadro 5.8.2.2: Características de desarrollo............................................................77 Cuadro 5.8.2.3: Características de Business Intelligence..........................................79 Cuadro 8.1.1: Criterios de selección de Visual Basic 6.0........................................104 Cuadro 8.1.2: Criterio de selección de SQL Serve..................................................105 Cuadro 8.1.3: Criterio de selección de PIC C con licencia PCWH..........................106 Cuadro 11.1: Costos de elaboración de un sistema de seguridad y control para una radio base...................................................................................................139 Cuadro 11.2: Costos de estación central.................................................................141 ÍNDICE DE FLUJOGRAMAS Flujograma 8.2.1: Proceso Básico...........................................................................107 Flujograma 8.2.2: Recibir Mensajes........................................................................108 Flujograma 8.2.3: Interpretar mensajes...................................................................109 Flujograma 8.2.4: Monitoreo de Radio Base...........................................................110 Flujograma 8.2.5: Recibir mensajes de monitoreo..................................................111 Flujograma 8.2.6: Interpretación de mensajes de monitoreo..................................112 Flujograma 8.2.7: Ingreso de usuarios....................................................................113 Flujograma 8.2.8: Generación de reportes..............................................................114 1. INTRODUCCIÓN El crecimiento de la industria, el mercado, la tecnología, y las necesidades de las sociedades exigen día a día una evolución en todos los aspectos que la conforman. Por esta razón, para todas las empresas es indispensable, estar a la vanguardia en cada uno de estos aspectos, para poder ser siempre competitivas. En cooperación y construcción del crecimiento constante de la industria, se hace necesario además, implementar diferentes y mejores aplicaciones para el mantenimiento de la misma. De esta forma, la seguridad viene a formar uno de los principales pilares de éste crecimiento. Con esa visión como fin principal se decidió llevar a cabo el proyecto: “Sistema de acceso remoto, monitoreo de nivel de combustible y registro de eventos a base de datos, para nodos críticos de proveedor de telefonía celular utilizando el servicio SMS”. La intención básica del proyecto consiste en eliminar el uso de llaves convencionales para ingresar a las radio bases al personal de mantenimiento, siendo ahora esto controlado por los supervisores del área técnica, utilizando sus teléfonos móviles y tan rápidamente como lo permita la red celular del proveedor mismo. Además registrar éstas entradas a las radio bases en una estación central, para poder ser consultadas posteriormente, en caso de que ocurra una anomalía, o simplemente por control. Para lograr ese propósito, se ha llevado a cabo una investigación con método experimental; obteniendo resultados favorables para los fines preestablecidos. También se puede decir que este proyecto es factible, entre sus razones están las facilidades para la obtención de los componentes para su elaboración, también poseer un costo moderado, y además de ésto, el hecho que trabaje en base a la red propia de la empresa le crea un mayor atractivo. 14 Los pasos dados en la integridad de la presentación de esta novedad de medición son: la descripción de los instrumentos que lo conforman (red GMS, mensajería SMS, módems y módem GSM, USB, etc.), descripción general y desarrollo de software y hardware, validación de resultados, funcionamiento del sistema, costos, entre otros datos específicos del desarrollo del proyecto para una empresa tecnológica Con ésto, conceder el planteamiento de diseñar e implementar un sistema de acceso remoto, monitoreo de nivel de tanque de combustible y registro de eventos a base de datos para nodos críticos para ser utilizado por un proveedor de telefonía celular, a través del servicio SMS. 15 2. OBJETIVOS 2.1 OBJETIVO GENERAL: • Diseñar e implementar un sistema de acceso remoto, monitoreo de nivel de tanque de combustible y registro de eventos a base de datos para nodos críticos para ser utilizado por un proveedor de telefonía celular, a través del servicio SMS. 2.2 OBJETIVOS ESPECÍFICOS: • Hacer uso del servicio de mensajería corta (SMS) en la infraestructura de la red GSM de un proveedor de telefonía celular para la implementación del proyecto. • Elaborar un sistema de software capaz de registrar a una base de datos las solicitudes de acceso desde teléfonos móviles, el nivel en los tanques de combustible de las radio bases en períodos de tiempo constantes y que permita agregar usuarios de manera local. • Elegir e implementar los componentes de hardware obligatorios para el desarrollo de una solución adecuada a las necesidades que plantea el proyecto. 16 3. ALCANCES Que los componentes de hardware a desarrollar sean capaces de: • Recibir e interpretar un SMS, distinguiendo si el usuario puede acceder a la radio base o consultar el nivel de combustible y si su contraseña de acceso es correcta. • Reportar a la estación central vía SMS los eventos de consulta o de acceso a la radio base, así como los intentos de acceso de usuarios no registrados. • Almacenar en memoria no volátil un número finito de usuarios y contraseñas. • Permitir el acceso físico a la radio base a través de un elemento electromecánico, colocado en la puerta de la misma. • Interpretar la salida de un transductor de nivel de combustible, basado en el estándar análogo de 4-20mA. • Interactuar con una computadora a través del puerto USB, para agregar usuarios y para un proceso de calibración en la lectura de la variable análoga. Que los componentes de software a desarrollar sean capaces de: • Almacenar en una base de datos todas las solicitudes de acceso de los usuarios registrados en cada radio base. • Almacenar en una base da datos los números telefónicos de usuarios no registrados en el sistema, y que envíen mensajes de texto al mismo. • Consultar a cada radio base y almacenar en una base de datos el nivel de los tanques de combustible instalados en las mismas en una escala porcentual de 0 a 100%. • Generar un reporte gráfico que describa la cantidad de accesos en un período de tiempo determinado 17 4. LIMITACIONES • El tiempo de respuesta del sistema esta supeditado al tiempo de entrega de SMS que la compañía proveedora del servicio de telefonía celular tenga en su misma red. • Al ingresar un usuario nuevo, el sistema le proveerá de una contraseña genérica de apertura de puerta, es responsabilidad del encargado registrar cada contraseña en el menor tiempo posible. • El sistema permite que el usuario establezca su propia contraseña de apertura de puerta, constando la misma de un número finito de caracteres alfanuméricos solamente. • Se recomendará la utilización de un sensor de nivel de combustible disponible de manera comercial. Para demostrar el funcionamiento se construirá un simulador del sensor. • La circuitería a construir será capaz de interactuar con la red GSM del proveedor del servicio de telefonía celular solo a través de un modem GSM, dispositivo que se encuentra disponible de manera comercial. • La circuitería a construir queda exenta de la interpretación de la forma de cada tanque de combustible en cada radio base, debido a la potencial diversidad de formas, sin embargo, el sensor a sugerir debe ser capaz de interpretar la forma del tanque y envía el volumen en la escala de corriente de 4-20mA. • El sistema requerirá un proceso de calibración periódica, para reducir el error de lectura de corriente. • La base de datos almacena la fecha y la hora en la que son recibidos los SMS que reportan los eventos, esta información no necesariamente corresponde a la fecha y hora en la que ocurren los mismos. La exactitud de estos datos depende de la latencia de la red en la entrega de mensajes. 18 5. MARCO TEÓRICO 5.1 RED GSM1 El GSM es un sistema de comunicación basado en el uso de células digitales que se desarrolló para crear un sistema para móviles único que sirviese de estándar para Europa y que fuese compatible con los servicios existentes y futuros. Los primeros sistemas que se elaboraron tenían la limitante de territorio, puesto que eran para cada país; entonces fue que en 1982 la CEPT (Conference of European Posts and Telecomunincations creó el denominado Groupe Spécial Mobile o GSM para desarrollar un sistema basado en células de radio y que sirvieran para todos los países europeos. Hoy GSM no es solo utilizado en Europa, actualmente es utilizado en más de 100 países en todo el mundo y sus usuarios crecen año con año. 5.1.1 DEFINICIÓN DE RED GSM “Se define la Red del Sistema Global de Telefonía GSM como aquel servicio portador constituido por todos los medios de transmisión y conmutación necesarios que permiten enlazar a voluntad dos equipos terminales móviles mediante un canal digital que se establece específicamente para la comunicación y que desaparece una vez que se ha completado la misma”2. 5.1.2 DESCRIPCIÓN DEL SERVICIO Los sistemas de telefonía móvil automática necesitan conseguir una amplia cobertura y una gran capacidad de tráfico con un limitado número de frecuencias. Ello es posible gracias a la reutilización sistemática de las frecuencias, lo que se logra mediante las estructuras celulares. Las estructuras celulares consisten en la división del ámbito de cobertura de la red en zonas más pequeñas denominadas células, a las que se les asigna un cierto número de radiocanales, dotándolas de otras tantas estaciones base transmisoras y receptoras. En las células separadas entre sí a una cierta distancia pueden 1 Las siglas provienen de Groupe Spécial Mobile 2 CSAE, “documentos”, Consejo Superior de Administración Electrónica, Gobierno de España, extraído el 10 de febrero de 2009, desde http://www.csae.map.es/csi/silice/0.2_GSM.html#Indice 19 reutilizarse las mismas frecuencias. Esta estructura celular se presenta en la figura 5.1.2.1: Figura 5.1.2.1: Estructura celular GSM Fuente: Tomado de los documentos de la página del Consejo Superior de Administración Electrónica, Gobierno de España, www.csae.map.es, el 10 de febrero de 2009. La arquitectura de un sistema celular se presenta en la figura 5.1.2.1. Las estaciones base (EB) de un sistema celular están conectadas a Centros de Conmutación del Servicio Móvil (CCSM), que son centrales de conmutación especializadas para ejecutar las funciones necesarias para el funcionamiento del sistema. La conexión EB-CCSM se realiza mediante enlaces dedicados. 20 http://www.csae.map.es/ Figura 5.1.2.2: Estructura celular GSM Fuente: Tomado de los documentos de la página del Consejo Superior de Administración Electrónica, Gobierno de España, www.csae.map.es, el 10 de febrero de 2009. El funcionamiento de un sistema celular requiere la disponibilidad de las siguientes facilidades: 1. Localización del móvil y mantenimiento de la misma (radiobúsqueda, "paging") 2. Facilidad de conexión del móvil dondequiera que esté ("roaming" o servicio de "transeunte") 3. Sintonización automática de canales por parte del móvil 4. Transferencia o conmutación automática de una llamada en curso cuando el móvil pasa de una célula a otra ("handover"). Estas facilidades implican la disponibilidad de un sistema de señalización avanzado, aplicado sobre canales de control mediante protocolos específicos, seguros y rápidos. De hecho, el control desempeña un papel primordial en el funcionamiento de 21 http://www.csae.map.es/ un sistema celular, siendo la actividad que impone mayor complejidad tanto de equipo físico como de programación. Para la función de localización, todo abonado móvil está inscrito en un registro local denominado RUF (Registro de Ubicaicón Fija). El RUF es una base de datos que contiene información del abonado. Existe también, dependiendo del MSC, un registro de "transeuntes" llamado RUA (Registro de Ubicación Actual). Cuando el abonado conecta su equipo, este explora los canales de control de las EB y se sintoniza con aquel en el que reciba mayor señal, retornando su identificación. Si la célula donde se ha identificado el móvil pertenece al CCSM de su RUF, se inscribe en este registro la posición del móvil. Si no es así, se inscribe el móvil como transeúnte en el RUA y se notifica como tal circunstancia a su RUF. De este modo, cuando llegue al CCSM una llamada destinada a un móvil, se interrogará su RUF. Éste indicará dónde debe encaminarse la llamada, la cual se difunde por todos los canales de señalización de las células del racimo (conjunto de células que completan un plan de frecuencias), con un código de llamada propio del móvil ("paging"). El proceso de inscripción se realiza cada cierto tiempo. Si en el curso de una comunicación la estación móvil (EM) sale de la zona de cobertura de la EB donde está en curso la llamada, para evitar que ésta se corte debe transferirse a la EB de otra célula. Para ello, se acompaña a la señal de voz de un tono de supervisión no audible, que es devuelto por el móvil. La EB mide la calidad de esta señal de retorno. Si no resulta satisfactoria, se envía una alarma al CCSM, quien ordena a la EB en cuestión y a sus vecinas una medición del campo producido por la EM. Los resultados se envían al CCSM, el cual conmuta la llamada a la BS en que se tengan las mejores condiciones de recepción. La conmutación en curso, al efectuarse en función de los niveles de señale recibidos, asegura siempre una calidad de señal superior a cierto umbral mínimo. El equipo móvil debe ser capaz de acceder a cualquier radiocanal libre entre los asignados a la zona, lo que requiere emplear un sintetizador "ágil", haciendo uso de técnicas digitales. 22 5.1.3 GSM Es un sistema de radiotelefonía móvil digital de acceso global, ya que permite dar cobertura internacional con un gran número de abonados. Además permite el acceso a redes de comunicación avanzadas como la RDSI3. Las directrices que orientaron el desarrollo de las especificaciones fueron: • Utilización de una banda común, reservada al GSM en el ámbito internacional • Estructura celular digital • Sistema de acceso múltiple AMDT de banda estrecha • Algoritmo de codificación de fuente de pequeña velocidad binaria • Control de potencia y de transmisión/recepción • Arquitectura OSI • Señalización avanzada (CCITT nº 7) En cuanto a la arquitectura funcional de un sistema de comunicaciones móviles celular, GSM añade una función de autentificación en base a un registro de identificación de equipo (RIE) y la información de la identidad del abonado computadas en el centro de identificación de usuario (CAu) Las frecuencias utilizadas por GSM se muestran en la figura 5.1.3.1. Figura 5.1.3.1: Frecuencias de GSM Fuente: Tomada del la wikipedia, la enciclopedia libre, http://es.wikipedia.org/wiki/GSM, el día 11 de febrero de 2009. 3 Red Digital de Servicios Integrados. 23 http://es.wikipedia.org/wiki/GSM 5.1.4 ROADMING Y HAN OVER A continuación se procede a ver dos aspectos que son fundamentales dentro del funcionamiento normal de una red GSM, que son el roadming y al hand-over. ¿Qué se entiende por roadming?. El roadming se produce siempre que se esté validando dentro de la red GSM y el terminal no es capaz de encontrar la red en la cual se es cliente; esto pasa fundamentalmente cuando se está de viaje al extranjero, donde existe la red, pero no es la de nuestro operador; en este caso, el roadming consiste en la utilización de la red que se encuentre disponible y con la que nuestro operador tiene un acuerdo de colaboración. De este modo, se puede seguir conectados con el móvil a la red independientemente de que se este fuera del alcance de nuestro operador habitual. Existe un problema con el roadming que se debe tener en cuenta y es que cuando nuestro terminal se encuentra en roadming sucede que en el caso de que alguien llame, el coste de la llamada se divide de manera que la persona que llama paga la parte nacional de la llamada y nosotros corremos con los gastos de la parte internacional; esto es debido a que en el roadming nuestro operador no sabe de antemano donde nos encontramos, ya que se está en una red que no le pertenece y por tanto no puede establecer la tarifa que debe aplicar. El concepto de hand-over tampoco es complicado y consiste en la transición que se produce cuando se pasa del rango de acción de una célula al rango de acción de otra. Esto se produce sobre todo cuando viajamos. El hand-over, por tanto, es el responsable de mantener el servicio de manera constante y de que las transiciones entre una célula y otra sean lo suficientemente pequeñas como para pasar desapercibidas por los usuarios. Hay distintos tipos de hand-over en función de las células que intervengan en el proceso. Según esto se puede hablar de cuatro tipos diferentes de hand-over, que pueden producirse: • hand-over de canales en la misma célula • hand-over de células controladas por el mismo BSC • hand over de células que pertenecen al mismo MSC, pero controladas por 24 diferentes BSC • hand-over de células de diferentes MSC 5.2 MENSAJERÍA SMS En GSM hay un servicio característico llamado servicio de mensajes cortos, o SMS (siglas de Short Message Service). Fue originalmente diseñado para enviar mensajes cortos en el canal de control de la red GSM, pero ha evolucionado gradualmente hasta convertirse en un servicio general de datos. 5.2.1 DEFINICIÓN DE SERVICIO DE MENSAJERÍA SMS El servicio de mensajes cortos (SMS), es un servicio que permite el envió de caracteres alfanuméricos (hasta 160 caracteres) a un móvil. El SMS permite a cualquier usuario el envío de mensajes a cualquier terminal en cualquier momento. El servicio está basado en un mecanismo de “store-and-forward”, el cual garantiza que cuando el móvil de destino no pueda ser alcanzado (ya sea que esté apagado o porque está fuera de cobertura), el mensaje será eventualmente enviado cuando el terminal móvil acceda nuevamente a la red. El SMS utiliza un enlace dedicado (como en el establecimiento de una llamada), en un canal de radio dúplex. Esto tiene la ventaja que la red y el móvil están en una comunicación directa todo el tiempo que dura la transmisión del mensaje. 5.2.2 ARQUITECTURA SMS En los actuales sistemas de telefonía móvil, el SMS es usado para implementar servicios de alcance. El SMS es un servicio “store-and-forward”, lo que significa que los mensajes no son directamente enviados de el remitente al destinatario, sino siempre por medio de un Centro de Servicios de Mensajes Cortos, o SMSC4. El SMSC reside en la red de operadoras y administra los procesos incluyendo el encolar los mensajes, facturar al remitente, etc. Muchas operadoras actualmente ofrecen interfaces basados en web para sus SMSC, así que los usuarios 4 Short Message Service Center 25 pueden enviar mensajes cortos a cualquier teléfono móvil desde la web. Cuando un mensaje SMS es recibido por el SMSC, debe dirigir el mensaje a su apropiado dispositivo móvil. Para esto, el SMSC envía una Solicitud SMS al Home location register (HLR) para encontrar al cliente. Una vez el HLR recibe la solicitud, responderá al SMSC con el estatus de suscriptor, la cual está activo o inactivo. Si el suscriptor está inactivo, el SMSC retendrá el mensaje por un periodo de tiempo. Cuando el suscriptor se active, el HLR envía una notificación SMS a l SMSC, y el SMSC atenderá la entrega. El SMSC transfiere el mensaje en una entrega de mensaje corto de formato de punto a punto al sistema servidor. El sistema llama al dispositivo, y si responde, el mensaje es enviado. El SMSC recibe verificación que fue recibido por el usuario final, categoriza el mensaje como “enviado” y no atenderá al envío de nuevo. Figura 5.2.2.1: El SMSC Fuente: Tomado de la wikipedia, enciclopedia libre, http://es.wikipedia.org/wiki/SMSC el 11 de febrero de 2009. Por lo tanto, el SMS consiste de dos servicios básicos:  SMS terminado en el móvil (MT SMS): De un SMSC a un MS  SMS originado en el móvil (MO SMS): De un MS a un SMSC 26 http://es.wikipedia.org/wiki/SMSC 5.2.3 CANALES DE CONTROL (MEDIO DE TRANSPORTE DEL SMS) Los SMS viajan a través de los canales de comunicación. Los SMS pueden ser enviados o recibidos desde un MS independientemente el estado en que se encuentre. Estos estados son: Idle o desocupado y el estado activo. En estado desocupado, los SMS son enviados en un canal dedicado de señalización (SDCCH5), este resulta la forma más rápida de enviar los mensajes. Por lo contrario, en estado activo, el canal de radio es utilizado para un canal de trafico (TCH6). En este caso, el mensaje utiliza un canal de control asociado (SACCH7), aunque no es el más apropiado. 5.2.4 EL FUTURO DEL SMS El SMS ha sido un gran suceso en muchos países. Las operadoras en estos países han proveído también a sus suscriptores con posibilidades para personalizar sus teléfonos móviles con ring tones o íconos gráficos. El crecimiento es esta área servirá como un camino valorable para nuevas e interesantes maneras de usar el teléfono móvil. Pero para poder enviar fotos a colores, video clips o sonidos MP3, el máximo tamaño de SMS (160 caracteres) no es suficiente. Hay necesidad por un estándar donde los usuarios puedan enviar gran cantidad de datos. Hay también necesidad de otros métodos de facturación que trabaje en relación al tamaño del mensaje. La respuesta a este nuevo requerimiento podría ser el nuevo estándar llamado Servicio de Mensajes Multimedia, o MMS8, la cual actualmente se está abriendo campo. El MMS permitirá a los dispositivos de los usuarios soportar el envío y recepción de mensajes con texto, incluyendo gráficas, imágenes tanto como audio y video clips. Aunque servicios como el MMS, habilitado por WAP(Wirelles Aplication Protocol) y UMTS (Universal Mobile Telecommunications System), probablemente reemplazará al SMS como el medio más popular para aplicaciones inalámbricas, 5 SDCCH: Stand-Alone Dedicated Control Channel 6 TCH: Traffic Channel 7 SACCH: Slow Associated Control Channel 8 Multimedia Messaging Service 27 habrá todavía una gran cantidad de usuarios empleando SMS por un largo tiempo. 5.2.5 INTERFACE DE PROGRAMA DE APLICACIÓN EN MENSAJE INALÁMBRICA J2ME9 (THE J2ME WIRELESS MESSAGING API, JSR 120) La JSR (Java Specification Required) 120 define una colección de APIs que provee acceso estándar para recursos de comunicación inalámbrica dentro de los MIDlets. La JSR 120 se conoce como Wireless Messaging API (WMA). La WMA es diseñada para correr sobre configuraciones J2ME (Connected Device Configuration-CDC o Connected Limited Device Configuration-CLDC) y mejorar el perfil. La WMA ofrecerá una colección de componentes reusables que pueden ser usados solos o en cualquier combinación con cualquier perfil J2ME. Una muy importante característica de la WMA es que permite a los dispositivos J2ME, en nuestro caso un teléfono móvil, correr servidores de aplicaciones SMS. Se usa un servidor SMS para procesar automáticamente y responder a mensajes entrantes en la aplicación J2ME. Distinto a los servidores http tradicionales, los servidores SMS no depende de una red IP ya que las direcciones de servidores son identificados por números telefónicos. Por lo que WMA provee una noción de abrir una conexión basada sobre una serie de dirección y cuya conexión puede ser abierta en modo cliente o servidor. La especificación JSR 120 determina que los desarrolladores pueden ser proveídos de acceso a enviar (MO mobile originated) y recibir (MT – mobile terminated) SMS en el dispositivo destino. La implementación de la especificación JSR 120 posee las siguientes características:  Crear un SMS  Enviar un SMS  Recibir un SMS  Ver un SMS  Borrar un SMS La interface de la MWA ha sido definida en el paquete javax.wireless.messaging. 9 Java 2 Platform Micro Edition 28 5.2.5.1 CLASES DE ALTO NIVEL EN WMA Los desarrolladores de aplicación pueden acceder al WMA a través de tres interfaces de alto nivel en el paquete javax.wireless.messaging:  La interface Message define la estructura de un mensaje. La interface TextMessage y BinaryMessage son derivados de Message y proporciona una estructura de mensaje más específica.  La interface MessageConnection representa una red conexión para mensajes. Define métodos básicos para enviar y recibir mensajes. Por ejemplo, el método MessageConnection.newMessage() retorna instancias del Message para mensajes de salida; el método MessageConnection.receive() captura mensajes de entrada.  La interface MessageListener tiene solo un método: notifyIncomingMessage(). Una instancia MessageListener es registrada con un servidor MessageConnection. Su método notifyIncomingMessage() es llamado cuando hay un mensaje entrante. La figura 5.2.5.1. muestra las interfaces del WMA y sus conexiones entre si. Figura 5.2.5.1.1: Interfaces WMA en el paquete javax.wireless.messaging Fuente: Tomado de la wikipedia, enciclopedia libre, http://es.wikipedia.org/wiki/MWA, el 11 de febrero de 2009. 29 http://es.wikipedia.org/wiki/GSM http://es.wikipedia.org/wiki/GSM http://es.wikipedia.org/wiki/MWA 5.2.5.2 URLS Y CONEXIONES DE MENSAJE El conector General Connection Framework (GCF) de java reside en la clase javax.microedition.io la cual está definida en la CLDC 1.0. El conector instancia al MessageConnection. El URL que es pasado al método Connector.open() determina la conexión que será abierta. Las siguientes URL y tipos de conexión de mensaje son soportados por el WMA: ● La URL sms://+18005555555 específica una conexión para enviar mensajes SMS a el número telefónico 1-800-555-5555 (Note que el WMA no tiene un requisito de formato de número telefónico; se puede usar cualquier serie de dígitos de el teléfono y la red reconocerán) ● La URL sms://+18005555555:1234 específica una conexión para enviar mensajes SMS a el puerto número 1234 del número telefónico 1-800-555-5555. ● La URL sms://:1234 específica una conexión a servidor para recibir mensajes sobre el puerto 1234. Una conexión de servidor puede también enviar mensajes. El “MessageConnection” puede ser abierto ya sea en modo servidor o cliente. Una conexión de servidor es abierta proporcionando una URL que especifica el identificador (número de puerto) para una aplicación en el dispositivo local para mensajes entrantes dirigidos. La especificación solicita que notifyIncomingMessage() retorne rápidamente. Los mensajes recibidos con este identificador serán entregados a la aplicación por esta conexión. Una conexión de servidor puede ser usada para enviar y recibir mensajes (MessageConnection) Connector.open(“sms://:6000”); Una conexión modo cliente es abierta proporcionando una URL la cual apunta a otro dispositivo. Una conexión modo cliente solamente puede ser utilizada para enviar mensajes. (MessageConnection) Connector.open(“sms://+441234567890:600”); 30 5.2.5.3 NÚMEROS DE PUERTO SMS Cuando un número de puerto esté presente en una dirección, la TP-Usuario- Dato del SMS contendrá un Usuario-Dato-Encabezado con el puerto de aplicación direccionando el esquema de elemento de información. Cuando el destinatario de dirección no contiene un número de puerto, el TP-Usuario-Dato no contendrá el encabezado de direccionamiento de puerto de la aplicación. El MIDlet de J2ME no puede recibir este tipo de mensaje pero el SMS será manipulado de la manera usual por un estándar SMS del dispositivo. Cuando un mensaje identificando un número de puerto es enviado desde un MessageConnection (Mensaje de Conexión) tipo servidor, el número de puerto originado en el mensaje es establecido en el número de puerto del MessageConnection. Esto permite al destinatario mandar una respuesta al mensaje que será recibido por esta MessageConnection. Sin embargo, cuando un MessageConnection tipo cliente es utilizado para mandar un mensaje con un número de puerto, el número de puerto generado es establecido a un valor de implementación especifica y cualquier posible mensaje recibido para este número de puerto no es entregado al MessageConnection. Cuando un MIDlet en modo servidor pide un número de puerto (identificador) para usar y es el primer MIDlet en pedir este identificador, este será asignado. Si otras aplicaciones requieren mismo identificador entonces una IOException será desplegada cuando un intento de abrir la MessageConnection sea realizado. Si una aplicación del sistema está utilizando este identificador, el MIDlet no asignará el identificador. Los números de puertos permitidos para las peticiones están restringidos para los SMS. En conclusión, a un MIDlet no le esta permitido enviar mensajes a ciertos puertos restringidos, si el intento es realizado se desplegara un SecurityException (Excepción de Seguridad). 5.2.5.4 ALMACENAR Y BORRAR MENSAJES RECIBIDOS SMS Cuando los mensajes SMS son recibidos por un MIDlet, estos son removidos del SIM de memoria donde estos son almacenados. La localización del almacenamiento (inbox) para los mensajes SMS tiene una capacidad de más de 30 31 mensajes. Cualquier mensaje mayor de cinco días de antigüedad será removido del SIM, de manera parecida al FIFO10 stack. 5.2.5.5 TIPOS DE MENSAJES SMS Los tipos de mensajes que pueden ser enviados son de tipo TEXT o BINARY, los métodos de codificación de los mensajes están definidos en el estándar GSM 03.38. 5.2.6 ESPECIFICACIONES EN EL WMA DENTRO DEL MOTOROLA V600 En este punto se va a detallar más sobre el WMA, específicamente dentro del modelo motorola V600, estructura de mensaje, notificación de mensajes, características de mensajes, entre otros. 5.2.6.1 ESTRUCTURA DE MENSAJE SMS Debido a que J2ME adopta un estándar, de la misma forma el WMA lo hace para todos los dispositivos, por lo tanto no importando el tipo de teléfono móvil se cumple con lo antes mencionado. La estructura de mensajes SMS cumplirá con el Sistema de Telecomunicaciones Digital Celular GSM 0.40 v7.4.0; la realización técnica del Servicio de Mensajes Cortos (SMS) ETSI 2000 La implementación de Motorola utiliza la concatenación especificada en secciones 9.2.324.1 y 9.2.3.24.8 del Estándar GSM 03.40 para mensajes que la aplicación JAVA envía, que son demasiado extensos para encajar en un único protocolo de mensaje SMS. Esta implementación automáticamente concatena los mensajes de protocolo SMS recibidos y transfiere el mensaje completamente reensamblado a la aplicación vía API. La implementación soportará al menos tres mensajes SMS para ser recibidos y concatenados juntos. Además, para el envío, se posee un soporte de un mínimo de tres mensajes. Motorola notifica a los desarrolladores que no se deben enviar mensajes que tomen mas de tres mensajes protocolo SMS a menos que el dispositivo receptor pueda soportar más. 10 First In, First Out 32 5.2.6.2 NOTIFICACIÓN SMS Ejemplos de interacción de SMS con MIDlets.  Un MIDlet manejará un SMS entrante si el MIDlet esta registrado para recibir mensajes en el puerto (identificador) y se está corriendo.  Cuando un MIDlet es pausado y está registrado para recibir mensajes en el número de puerto de mensajes entrantes, entonces al usuario se le preguntará si se despliega el MIDlet.  Si el MIDlet no está corriendo y la Maquina Virtual Java no esta inicializada, entonces un registro Push será utilizado para inicializar la Maquina Virtual y desplegar el MIDlet J2ME. Esto solamente aplica para el MIDlet, autenticado y registrado.  Si un mensaje es recibido, y la aplicación de autenticación, registro y el KVM no están corriendo entonces el mensaje será desechado.  Existe un Acceso a Configuración SMS en el menú de opción de Configuración Java que permite al usuario especificar cuando y que tan frecuentemente preguntar por autorización. Antes de establecer la conexión desde el MIDlet, las opciones disponibles son: • Siempre preguntar por autorización • Preguntar una vez por aplicación • Nunca preguntar 5.2.6.3 CARACTERÍSTICA DE MENSAJERÍA EN EL V600 La siguiente es una lista de características de mensajería y soporte de clases en el dispositivo: Característica / clase Implementación JSR-120 API Específicamente, API’s definidos en el paquete javax.wireless.messaging serán implementadas para el Adaptador SMS GSM Sí Remover mensajes SMS Sí Remover SMS recibidos Sí Remover SMS originados Sí Todos los campos, métodos, y métodos inherentes para la Clase Connector están en el paquete Si 33 Característica / clase Implementación javax.wireless.messaging. Todos los métodos para la interface de mensaje binario están en el paquete javax.wireless.messaging Si Todos los métodos para la interface de mensaje están en el paquete javax.wireless.messaging. Si Todos los campos, métodos, y métodos inherentes para la interface MessageConnection están en el paquete javax.wireless.messaging. Si Número de instancias para MessageConnection en el paquete javax.wireless.messaging 32 máximo Número de instancias para MessageConnection en el paquete javax.wireless.messaging. 16 Todos los métodos para la interface MessageListener en el paquete javax.wireless.messaging. Si Todos los métodos y métodos inherentes para la interface TextMessage están en el paquete javax.wireless.messaging Si Número de referencia de 16 bit en mensajes concatenados Si Número de mensajes concatenados 30 mensajes en bandeja de entrada, cada uno puede ser concatenado de tres partes. Sin limitación en bandeja de salida (inmediatamente transmitidos) Permitir a los MIDlets obtener la dirección SMSC con la propiedad de sistema wireless.messaging.sms.smsc Sí Cuadro 5.2.6.3.1: Características de mensajería en el V600 Fuente:Tomado de la página de asesoramiento online, http://www.dooyoo.es/telefonos-moviles/motorola- v600/details/, el 12 de febrero de 2009. 5.2.6.4 EJEMPLO DE EMPLEO DE MÉTODOS EN EL WMA Estos son ejemplos del empleo de métodos dentro de la WMA: Creación de una conexión servidor MessageConnection messageConnection = (MessageConnection)Connector.open("sms://:9532"); 34 http://www.dooyoo.es/telefonos-moviles/motorola-v600/details/ http://www.dooyoo.es/telefonos-moviles/motorola-v600/details/ Creación de una conexión cliente con número de Puerto MessageConnection messageConnection = (MessageConnection)Connector.open("sms://+18473297274:9532"); Creación de una conexión cliente sin número de puerto MessageConnection messageConnection = (MessageConnection)Connector.open("sms://+18473297274"); Cierre de conexión MessageConnection messageConnection.close(); Creación de un mensaje SMS Message textMessage = messageConnection.newMessage(MessageConnection.TEXT_MESSAGE); Configuración de carga de texto para un mensaje de texto ((TextMessage)message).setPayloadText("Text Message"); Obtener una carga de texto de un mensaje de texto recibido receivedText = ((TextMessage)receivedMessage).getPayloadText(); Obtener una carga de datos de un mensaje binario recibido BinaryMessage binMsg; byte[] payloadData = binMsg.getPayloadData(); Configuración de dirección con número de puerto message.setAddress("sms://+18473297274:9532"); Configuración de dirección sin número de puerto message.setAddress("sms://+18473297274"); 35 Envío de mensaje messageConnection.send(message); Recepción de mensaje Message receivedMessage = messageConnection.receive(); Obtener una dirección String address = ((TextMessage)message).getAddress(); Obtener dirección de centro de servicio SMS por medio de llamada de System.getProperty(): String addrSMSC = System.getProperty("wireless.messaging.sms.smsc"); Obtener un tiempo de despliegue de mensaje Message message; System.out.println("Timestamp: " + message.getTimestamp().getTime()); 5.3 MÓDEM Y MÓDEM GSM En este apartado se desarrollarán los temas módem y módem gsm, primeramente se dará toda la información teórica sobre un módem en general, y luego se hablará mas sobre las especificaciones del Módem GSM. 5.3.1 MÓDEM “Un modem es un dispositivo que permite la transmisión y recepción de información binaria (es decir, datos de ordenador) a través de un medio analógico (o sea, la línea telefónica); para poder realizar este proceso, es necesario convertir la señal digital en analógica, y viceversa, y esa es la función del modem”11. 11 Diuops (2008), En la sección de Informática, hardware, http://www.duiops.net/hardware/modems/modems.htm, descargado de la red mundial, el día 15 de febrero de 2009. 36 http://www.duiops.net/hardware/modems/modems.htm 5.3.1.1 FUNCIONAMIENTO El modulador emite una señal denominada portadora. Generalmente, se trata de una simple señal eléctrica sinusoidal de mucha mayor frecuencia que la señal moduladora. La señal moduladora constituye la información que se prepara para una transmisión (un módem prepara la información para ser transmitida, pero no realiza la transmisión). La moduladora modifica alguna característica de la portadora (que es la acción de modular), de manera que se obtiene una señal, que incluye la información de la moduladora. Así el demodulador puede recuperar la señal moduladora original, quitando la portadora. Las características que se pueden modificar de la señal portadora son: • Amplitud, dando lugar a una modulación de amplitud (AM/ASK). • Frecuencia, dando lugar a una modulación de frecuencia (FM/FSK). • Fase, dando lugar a una modulación de fase (PM/PSK) También es posible una combinación de modulaciones o modulaciones más complejas como la modulación de amplitud en cuadratura. 5.3.2 TIPOS DE MÓDEM Los módems han adquirido gran popularidad entre la gente de bajos conocimientos técnicos gracias a su uso en la PC. Sin embargo, los módems son usados en un sinfín de aplicaciones, como las comunicaciones telefónicas, radiofónicas y de televisión. Se pueden clasificar de diferentes maneras, siendo una de ellas la clasificación por el tipo de moduladora empleada, teniendo así los módems digitales, en los cuales la moduladora es una señal digital y los módems analógicos, en donde la moduladora es una señal analógica. 5.3.3 MÓDEM PARA COMPUTADORA La distinción principal que se suele hacer es entre módems internos y módems externos, aunque recientemente han aparecido módems llamados "módems software", más conocidos como "winmódems" o "linuxmódems", que han complicado un poco el panorama. También existen los módems para XDSL, RDSI, etc. y los que 37 se usan para conectarse a través de cable coaxial de 75 ohms (cable modems). • Internos: consisten en una tarjeta de expansión sobre la cual están dispuestos los diferentes componentes que forman el módem. Existen para diversos tipos de conector: • Bus ISA: debido a las bajas velocidades que se manejan en estos aparatos, durante muchos años se utilizó en exclusiva este conector, hoy en día en desuso. • Bus PCI: el formato más común en la actualidad. • AMR: sólo en algunas placas muy modernas; baratos pero poco recomendables por su bajo rendimiento. La principal ventaja de estos módems reside en su mayor integración con el ordenador, ya que no ocupan espacio sobre la mesa y reciben energía eléctrica directamente del propio ordenador. Además, suelen ser algo más baratos debido a que carecen de carcasa y transformador, especialmente si son PCI (en este caso, son casi todos del tipo "módem software"). Por el contrario, son algo más complejos de instalar y la información sobre su estado sólo puede obtenerse por software. • Externos: similares a los anteriores, pero externos al ordenador o PDA. La ventaja de estos módems reside en su fácil transportabilidad entre ordenadores diferentes (algunos de ellos más fácilmente transportables y pequeños que otros), además de que es posible saber el estado del módem (marcando, con/sin línea, transmitiendo...) mediante los leds de estado que incorporan. Por el contrario, y obviamente, ocupan más espacio que los internos. Tipos de [conexión]: • La conexión de los módems telefónicos con el ordenador se realiza generalmente mediante uno de los puertos serie tradicionales o COM, por lo que se usa la UART del ordenador, que deberá ser capaz de proporcionar la suficiente velocidad de comunicación. La UART debe ser de 16550 o superior para que el rendimiento de un módem de 28.800 bps o más sea el adecuado. Estos módems necesitan un enchufe para su transformador. • Módems PC Card: son módems en forma de tarjeta, que se utilizaban 38 en portátiles, antes de la llegada del USB, que puede ser utilizado tanto en los ordenadores de sobremesa como en los portátiles. Su tamaño es similar al de una tarjeta de crédito algo más gruesa, pero sus capacidades pueden ser igual o más avanzadas que en los modelos normales. • Existen modelos para puerto USB, de conexión y configuración aún más sencillas, que no necesitan toma de corriente. Hay modelos tanto para conexión mediante telefonía fija, como para telefonía móvil. • Módems software, HSP (Host Signal Processor) o Winmódems: son módems generalmente internos, en los cuales se han eliminado varias piezas electrónicas (por ejemplo, chips especializados), de manera que el microprocesador del ordenador debe suplir su función mediante un programa. Lo normal es que utilicen como conexión una ranura PCI (o una AMR), aunque no todos los módems PCI son de este tipo. El uso de la CPU entorpece el funcionamiento del resto de aplicaciones del usuario. Además, la necesidad de disponer del programa puede imposibilitar su uso con sistemas operativos no soportados por el fabricante, de manera que, por ejemplo, si el fabricante desaparece, el módem quedaría eventualmente inutilizado ante una futura actualización del sistema. A pesar de su bajo coste, resultan poco o nada recomendables. • Módems completos: los módems clásicos no HSP, bien sean internos o externos. En ellos, el rendimiento depende casi exclusivamente de la velocidad del módem y de la UART del ordenador, no del microprocesador. 5.3.4 MÓDEM TELEFÓNICOS Su uso más común y conocido es en transmisiones de datos por vía telefónica. Las computadoras procesan datos de forma digital; sin embargo, las líneas telefónicas de la red básica sólo transmiten señales analógicas. Los métodos de modulación y otras características de los módems telefónicos están estandarizados por el UIT-T (el antiguo CCITT) en la serie de 39 Recomendaciones "V". Estas Recomendaciones también determinan la velocidad de transmisión. Destacan: • V.32. Transmisión a 9.600 bps. • V.32 bis. Transmisión a 14.400 bps. • V.34. Transmisión a 33.600 bps. Uso de técnicas de compresión de datos. • V.90. Transmisión a 56'6 kbps de descarga y hasta 33.600 bps de subida. • V.92. Mejora sobre V.90 con compresión de datos y llamada en espera. La velocidad de subida se incrementa, pero sigue sin igualar a la de descarga. Existen, además, módems DSL (Digital Subscriber Line), que utilizan un espectro de frecuencias situado por encima de la banda vocal (300 - 3.400 Hz) en líneas telefónicas o por encima de los 80 KHz ocupados en las líneas RDSI, y permiten alcanzar velocidades mucho mayores que un módem telefónico convencional. También poseen otras cualidades, como es la posibilidad de establecer una comunicación telefónica por voz al mismo tiempo que se envían y reciben datos. 5.3.4.1 TIPOS DE MODULACIÓN Dependiendo de si el módem es digital o analógico se usa una modulación de la misma naturaleza. Para una modulación digital se tienen, por ejemplo, los siguientes tipos de modulación: • ASK, (Amplitude Shift Keying, Modulación en Amplitud): la amplitud de la portadora se modula a niveles correspondientes a los dígitos binarios de entrada 1 ó 0. • FSK, (Frecuency Shift Keying, Modulación por Desplazamiento de Frecuencia): la frecuencia portadora se modula sumándole o restándole una frecuencia de desplazamiento que representa los dígitos binarios 1 ó 0. Es el tipo de modulación común en modems de baja velocidad en la que los dos estados de la señal binaria se transmiten como dos frecuencias distintas. • PSK, (Phase Shift Keying, Modulación de Fase): tipo de modulación donde la portadora transmitida se desplaza cierto número de grados en respuesta a la configuración de los datos. Los módems bifásicos por ejemplo, emplean desplazamientos de 180º para representar el dígito binario 0. 40 Pero en el canal telefónico también existen perturbaciones que el módem debe enfrentar para poder transmitir la información. Estos trastornos se pueden enumerar en: distorsiones, deformaciones y ecos. Ruidos aleatorios e impulsivos. Y por último las interferencias. Para una modulación analógica se tienen, por ejemplo, los siguientes tipos de modulación: • AM Amplitud Modulada: la amplitud de la portadora se varía por medio de la amplitud de la moduladora. • FM Frecuencia Modulada: la frecuencia de la portadora se varía por medio de la amplitud de la moduladora. • PM Phase Modulation. Modulación de fase: en este caso el parámetro que se varía de la portadora es la fase de la señal, matemáticamente es casi idéntica a la modulación en frecuencia. Igualmente que en AM y FM, es la amplitud de la moduladora lo que se emplea para afectar a la portadora. 5.3.4.2 ÓRDENES AT Órdenes de comunicación • ATA: con esta orden el módem queda en espera de una llamada telefónica, comportándose como un receptor (autoanswer). Cada módem utiliza una serie de órdenes "AT" comunes y otras específicas. Por ello, se deberá hacer uso de los manuales que acompañan al módem para configurarlo adecuadamente. Donde cada uno de los modems son aplicados Registros Los registros o registros S son porciones de memoria donde se pueden guardar permanentemente parámetros que definen el perfil del módem (profiles). Además de las órdenes "AT", se dispone de esta serie de registros que permiten al usuario la modificación de otras características de su funcionamiento. Al igual que ocurre con las órdenes "AT", existen registros comunes y otros específicos del módem. Se enumeraran los más comunes. Registro 0: número de llamadas que el módem espera antes de responder (autoanswer). Si su valor es 0, el módem nunca responderá a las llamadas. 41 Registro 1: contabilizador de llamadas realizadas / recibidas. Registro 2: código del carácter que se utiliza para activar la secuencia de escape. Suele ser un +. Registro 3: código del carácter de fin de línea. Suele ser un 13 (enter). Registro 4: código de carácter de avance de línea, (line feed). Registro 5: código de carácter de borrado con retroceso (backspace). Registro 6: tiempo de espera antes de empezar a marcar (s). Registro 7: tiempo de espera para recibir portadora (s). Registro 8: tiempo asignado a la pausa del Hayes (la coma en s). Registro 9: tiempo de respuesta a la detección de portadora, para activar la DCD (en décimas de segundo). Registro 10: tiempo máximo de pérdida de portadora para cortar la línea. Aumentando su valor permite al remoto cortar temporalmente la conexión sin que el módem local inicie la secuencia de desconexión. Si es 255, se asume que siempre hay portadora. Este tiempo debe ser mayor que el del registro 9 (en décimas de segundo). Registro 12: determina el guard time; éste es el tiempo mínimo que precede y sigue a un código de escape (+++), sin que se hayan transmitido o recibido datos. Si es 0, no hay límite de tiempo (S12 x 20 ms). Registro 18: contiene la duración de los tests. Registro 25: tiempo para que el módem considere que la señal de DTR ha cambiado. Registro 26: tiempo de respuesta de la señal CTS ante RTS. Perfiles de funcionamiento Existen 3 tipos de perfil para funcionamiento de los módems: 1. El de fábrica, (por defecto). 2.El activo y 3. El del usuario. Estos perfiles están guardados en su memoria RAM no volátil y el perfil de fabrica está guardado en ROM. Hay dos opciones o lugares de memoria donde se pueden grabar los perfiles que son: 1. AT&Y0, (al encender se carga el perfil = 0) 2. AT&Y1, (al encender se carga el perfil = 1) 42 Estas órdenes se envían antes de apagar el módem para que los cargue en su próximo encendido. Cuando se escriben las órdenes "AT", dependiendo del tamaño del buffer del módem, se pueden ir concatenando sin necesidad de escribir para cada uno de ellos el prefijo "AT". De esta forma, por ejemplo cuando en un programa se pide una secuencia de inicialización del módem, se puede incluir conjuntamente en una sola línea todos las órdenes necesarias para configurar el módem. A continuación se describen los procesos que se llevan a cabo para establecer una comunicación a través del módem: 5.3.4.3 PASOS PARA ESTABLECER UNA COMUNICACIÓN 1) Detección del tono de línea. El módem dispone de un detector del tono de línea. Este se activa si dicho tono permanece por más de un segundo. De no ser así, sea por que ha pasado un segundo sin detectar nada o no se ha mantenido activado ese tiempo el tono, envía a la computadora el mensaje "NO DIALTONE". 2) Marcación del número. Si no se indica el modo de llamada, primero se intenta llamar con tonos y si el detector de tonos sigue activo, se pasa a llamar con pulsos. En el periodo de tiempo entre cada dígito del número telefónico, el IDP (Interdigit pulse), se continua atendiendo al detector de tono. Si en algún IDP el detector se activa, la llamada se termina y se retorna un mensaje de BUSY. Una vez terminada la marcación, se vuelve a atender al detector de tono para comprobar si hay conexión. En este caso pueden suceder varias cosas: • Rings de espera. Se detectan y contabilizan los rings que se reciban, y se comparan con el registro S1 del módem. Si se excede del valor allí contenido se retorna al mensaje "NO ANSWER". • Si hay respuesta se activa un detector de voz/señal, la detección de la respuesta del otro módem se realiza a través del filtro de banda alta (al menos debe estar activo 2 segundos). • Si el detector de tono fluctúa en un período de 2 segundos se retorna el mensaje "VOICE". El mensaje "NO ANSWER" puede obtenerse si se produce un intervalo de silencio después de la llamada. 43 3) Establecer el enlace. Implica una secuencia de procesos que dependen si se está llamando o si se recibe la llamada. Si se está llamando será: • Fijar la recepción de datos a 1. • Seleccionar el modo de baja velocidad. • Activar 0'6 segundos el tono de llamada y esperar señal de línea. • Desactivar señal de tono • Seleccionar modo de alta velocidad. • Esperar a recibir unos, después transmitir unos y activar la transmisión • Analizar los datos recibidos para comprobar que hay conexión. Si ésta no se consigue en el tiempo límite fijado en el registro S7, se da el mensaje "NO CARRIER"; en caso contrario, se dejan de enviar unos, se activa la señal de conexión, se desbloquea la recepción de datos y se da el mensaje "CARRIER". Si se está recibiendo será: • Selección del modo respuesta. • Desactivar el scrambler. • Seleccionar el modo de baja velocidad y activar el tono de respuesta (p. ej. 2.400 Hz durante 3'3 s). • Desactivar el transmisor. • Esperar portadora, si no se recibe activar el transmisor, el modo de alta velocidad y el tono a 1.800 Hz. • Esperar el tiempo indicado en S7, si no hay conexión envía el mensaje "NO CARRIER", si la hay, indica "CONNECT", se activa el transmisor, el detector de portadora y la señal de conexión. En resumen los pasos para establecimiento de una conexión son: 1. La terminal levanta la línea DTR. 2. Se envía desde la terminal la orden ATDT 5551234 ("AT" -> atención, D -> marcar, T -> por tonos, 5551234 -> número a llamar.) 44 3. El módem levanta la línea y marca el número. 4. El módem realiza el hand shaking con el módem remoto. 5. El programa de comunicación espera el código de resultado. 6. Código de resultado "CONNECT". 5.3.5 MÓDEM GSM Las características de un módem GSM son: • Dual Band or Triband GSM GPRS12 modem (EGSM13 900/1800MHz) / (EGSM 900/1800 / 1900 MHz ) Dual Band o módem GPRS Tribanda GSM (redes EGSM 900/1800MHz) / (redes EGSM 900/1800 / 1900 MHz) • Designed for GPRS, data, fax, SMS and voice applications Diseñado para GPRS, datos, fax, SMS y aplicaciones de voz • Fully compliant with ETSI14 GSM Phase 2+ specifications (Normal MS) Totalmente compatible con ETSI GSM Fase 2 + especificaciones (Normal EM) A continuación se detalla la interfaz de un módem GSM:  RS-232 through D-TYPE 9 pin connector RS-232 a través de D-TYPE 9 pin conector  RJ11 voice connector Conector RJ11 de voz  Power supply through Molex 4 pin connector Fuente de alimentación a través de conector Molex 4 pin  SMA antenna connector Conector de antena SMA  Toggle spring SIM holder Toggle primavera SIM titular  Red LED Power on LED rojo Encendido  Green LED status of GSM / GPRS module LED verde de estado de GSM / GPRS módulo 12 General Packet Radio Service 13 Extended Global System for Mobile 14 European Telecommunications Standards Institute 45 Figura 5.3.5.1: Módem GSM Fuente: Tomado de la página de Advande Wireless Planet, http://www.gsm-modem.de/gsm-modem.html, el día 15 de febrero de 2009. 5.4 MICROCONTROLADORES PIC Los microcontroladores PIC15 son una familia de microcontroladores tipo RISC16 fabricados por Microchip Technology Inc. El PIC usa un juego de instrucciones tipo RISC, cuyo número varia, desde 35 para PICs de gama baja a 70 para los de gama alta. Las instrucciones son de los siguientes tipos: 1. Las que realizan operaciones entre el acumulador y una constante. 2. Las que lo hacen entre el acumulador y una posición de memoria 3. Instrucciones de condicionamiento y de salto/retorno. 4. Implementación de interrupciones. 5. Implementación del modo de bajo consumo de energía. La compañía fabricante proporciona software de desarrollo para PC gratuito, cuyo nombre es MPLAB, el cual incluye un simulador software y un ensamblador. Otras empresas desarrollan compiladores C y BASIC, entre ellas están Mikroelektronica, CCS, SDCC y otras. 15 PIC, controlador de interfaz de periféricos. 16 RISC, computadora con set de instrucciones reducido. 46 http://www.gsm-modem.de/gsm-modem.html Todos los PICs manejan datos en trozos de 8 bits, todos menos los dsPIC17, por lo que se deberían llamar microcontroladores de 8 bits. Pero a diferencia de la mayoría de CPUs, la arquitectura del PIC permite que el tamaño de las instrucciones pueda ser distinto del de la palabra de datos. Las familias de los microcontroladores PIC se pueden ver en el siguiente diagrama de Funcionalidad y Desempeño. Figura 5.4.1: Familias de microcontroladores PIC, funcionalidad y desempeño. Las características más comunes de los PICs son las siguientes:  Puertos de E/S (típicamente 0 a 5,5 voltios)  Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes  Núcleos de CPU de 8/16 bits.  Temporizadores de 8/16 bits  Tecnología para modos de ahorro de energía  Periféricos serie síncronos y asíncronos: USART (Transmisor/Receptor Síncrono/Asíncrono Universal), , EUSART (Transmisor/Receptor Síncrono/Asíncrono Universal Mejorado)  Conversores analógico/digital de 10-12 bits  Comparadores de tensión  Módulos de captura y comparación PWM (Modulación por ancho de pulso)  Controladores LCD (Display de cristal liquido)  Periférico MSSP para comunicaciones I²C (bus de comunicación serie de circuitos Inter-Integrados), SPI (Interfaz serial de Periféricos), y I²S (Inter-IC sound, es una interfaz de bus usada para conectar dispositivos de audio digital) 17 dsPIC, PIC con capacidad de procesamiento digital de señales. 47  Memoria EEPROM interna con duración de hasta un millón de ciclos de lectura/escritura  Periféricos de control de motores  Soporte de interfaz USB  Soporte de controlador Ethernet  Soporte de controlador Irda 5.5 BUS SERIE UNIVERSAL (USB) Antes de definir el control OCX utilizado para el control del puerto USB, se dará una pequeña introducción de lo que es el Puerto USB y la clase que se utilizará, que es el estándar HID. 5.5.1 DESCRIPCIÓN DEL USB El USB o Universal Serial Bus es una interfaz para la transmisión serie de datos y distribución de energía desarrollado por empresas líderes del sector de las telecomunicaciones y de los ordenadores, y que ha sido introducida en el mercado de las computadoras personales y periféricos para mejorar las lentas interfaces serie rs-232 y paralelo. Provee una mayor velocidad de transferencia (de hasta 100 veces más rápido) comparado con el puerto paralelo de 25 pines y el Serial DB-9, DB-25, rs-232 que son los puertos que se encuentran en la mayoría de los computadores. Tenía en principio como objetivo el conectar periféricos relativamente lentos (ratones, impresoras, cámaras digitales, unidades zip, etc.) de una forma realmente sencilla, rápida y basada en comunicaciones serie, aunque por sus características también podía conectarse hasta discos duros. Esta interfaz de 4 hilos distribuye 5V para la alimentación y puede transmitir datos a una velocidad de hasta 480 Mbps en su versión 2.0. Es un bus serie que hace posible la conexión de hasta 127 periféricos a una única puerta de un PC, con detección y configuración automáticas, siendo esto posible con el PC encendido, sin tener que instalar software adicional, y sin tener que reiniciar el ordenador (plug and play), algo que con los puertos convencionales serie y paralelo no sucedía. Tampoco 48 hay que preocuparse por conflictos de IRQ’s18 o instalar tarjetas de adaptador para cada periférico, estos periféricos pueden ser: Ratones, teclados, impresoras, escáneres, grabadoras, discos duros, módems, cámaras digitales, etc. 5.5.2 CARACTERÍSTICAS GENERALES DEL USB La especificación del USB proporciona una serie de características que pueden ser distribuidas en categorías. Estas características son comunes para todas las versiones (desde la 1.0 hasta la 2.0).  Fácil uso para los usuarios  Modelo simple para el cableado y los conectores  Detalles eléctricos aislados del usuario (terminaciones del bus)  Periféricos auto-identificativos  Periféricos acoplados y reconfigurados dinámicamente (hot Swappable19)  Flexibilidad  Amplio rango de tamaños de paquetes, permitiendo variedad de opciones de buffering20 de dispositivos.  Gran variedad de tasas de datos de dispositivos acomodando el tamaño de buffer para los paquetes y las latencias.  Control de flujo para el manejo del buffer construido en el protocolo  Ancho de banda isócrono21 18 Pedido de Interrupción IRQ (Interrupt Request). También conocida como interrupción hardware, es una señal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación. 19 El término “hot swap” o “hot swappable” hace referencia a la capacidad de algunos componentes de hardware para sufrir su instalación o sustitución sin necesidad de detener o alterar la operación normal de la PC donde se alojan. 20 Almacenamiento temporal; una ubicación de la memoria en una computadora o en un instrumento digital reservada para el almacenamiento temporal de información digital, mientras que está esperando ser procesada. 21 Sinónimo de sincrónico. Que tiene un intervalo de tiempo constante entre cada evento. 49 http://es.wikipedia.org/wiki/Computadora http://es.wikipedia.org/wiki/Hardware http://es.wikipedia.org/wiki/Ordenador http://es.wikipedia.org/wiki/Microprocesador  Se garantiza un ancho de banda y bajas latencias apropiadas para telefonía, audio, etc.  Cantidad de trabajo isócrono que puede usar el ancho de banda completo del bus.  Amplia gama de aplicaciones y cargas de trabajo  Adecuando el ancho de banda desde unos pocos kbs hasta varios Mbs  Soporta tanto el tipo de transferencia isócrono como el asíncrono22 sobre el mismo conjunto de cables  Conexiones múltiples, soportando operaciones concurrentes de varios dispositivos  Soporta hasta 127 dispositivos físicos  Soporta la transferencia de múltiples datos y flujos de mensajes entre el host y los dispositivos  Robustez  Manejo de errores y mecanismos de recuperación ente fallos implementados en el protocolo  Inserción dinámica de dispositivos  Soporte para la identificación de dispositivos defectuosos  Implementación de bajo coste  Sub canal de bajo coste a 1.5Mbs  Conectores y cables de bajo coste  Adecuado para el desarrollo de periféricos de bajo coste. 22 Que no tiene un intervalo de tiempo constante entre cada evento. 50 5.5.3 ARQUITECTURA DEL BUS USB Para lograr un mínimo grado de comprensión del presente trabajo, es necesario analizar los elementos del bus USB desde el punto de vista de los sistemas de comunicaciones. 5.5.4 ELEMENTOS DEL USB El USB es un bus ideado para intercambio de datos entre un computador anfitrión (Host), y dispositivos conectados a él (Esclavos). Los periféricos conectados al USB comparten el ancho de banda del bus mediante un protocolo basado en mensajes (tokens23). Un sistema USB consta de 3 partes: 1. Anfitrión USB (USB Host o Host). 2. Dispositivos USB (USB devices). 3. Interconexión USB (USB interconnect). Existe sólo un Host en un sistema USB. Los dispositivos USB proveen servicios o funciones al Host. La interconexión USB es la que soporta el tráfico entre el Host y los dispositivos USB, es el canal de comunicación. 5.5.5 TOPOLOGÍA La topología física del USB es de tipo estrella jerarquizada. Con un máximo de 7 niveles de jerarquía. Figura 5.5.5.1: Capas del USB Fuente: Tomado de los artículos de Monografías, http://www.monografias.com/trabajos11/usbmem/usbmem.shtml el día 13 de febrero de 2009. 23 Es un bloque de texto categorizado. Por ejemplo una marca de puntuación, un operador, un identificador, un número, etc. 51 La topología lógica del USB es de tipo estrella. Lo que implica que en un dispositivo físico puede haber implementado más de un dispositivo lógico (por ejemplo: un teclado con un mouse incluido). Figura 5.5.5.2: Topología lógica del USB Fuente: Tomado de los artículos de Monografías,http://www.monografias.com/trabajos11/usbmem/usbmem.shtml el día 13 de febrero de 2009. 5.5.6 TRANSMISIÓN Y CODIFICACIÓN Los datos son transmitidos en forma serie, en 2 líneas de datos complementarias denominadas D+ y D-. Además se proveen 2 líneas de alimentación y de masa respectivamente, las cuales pueden servir para que el dispositivo tome alimentación del Host (5 V, 500 mA máx.). Para transmitir los datos en forma serie se utiliza la codificación Non-Return-To-Zero-Inverted o NRZI. En este tipo de codificación, un 0 (cero) se representa sin un cambio de nivel en la tensión, y un 1 (uno) se representa con un cambio de nivel en la tensión. Conjuntamente, se utiliza el bit stuffing24, técnica que consiste en insertar un 0 (cero) cada 6 (seis) 1s (unos) consecutivos en el flujo de bits. Además, del bit stuffing y de la codificación NRZI, se utilizan CRCs25. Los CRCs se generan después del bit stuffing. 24 Técnica de inserción de bit o de relleno de bit 25 CRC o control de redundancia cíclica, es un mecanismo de detección de errores en sistemas digitales. 52 http://es.wikipedia.org/wiki/Control_de_redundancia_c?clica Figura 5.5.6.1: Conector USB de tipo B Fuente: Tomado de los artículos de Monografías, http://www.monografias.com/trabajos11/usbmem/usbmem.shtml el día 13 de febrero de 2009. 5.5.7 COMPONENTES Y MÉTODO Acorde al objetivo propuesto, se comenzó por el estudio de la norma y se consultó bibliografía y artículos específicos sobre el tema. Como resultado de las investigaciones preliminares se decidió centrar el trabajo en los dispositivos de la clase Human Interface Device (HID). Estos poseen las características necesarias para que el usuario interactúe con una PC. Además, los drivers para los mismos están ya incluidos en el sistema operativo. La ventaja que tiene el HID es que el sistema operativo Windows ya trae los controladores para dispositivos clase HID, eso ayuda que para hacer un dispositivo se requiriera un mínimo de firmware, lo que vuelve más simple la utilización del USB. Algunas desventajas que tiene el HID es que solo se puede trasmitir datos a 64KB/s eso es mucho menor de la capacidad del USB en full-speed que son de 12Mbits/s, pero aun así es más rápido que los puertos serial (RS232) y paralelo. Se seleccionó un circuito integrado controlador USB para construir el hardware necesario para la realización del trabajo. La función del mismo es, por un lado proveer los niveles eléctricos de las señales que intervienen en la comunicación, y por otro llevar el control de la misma acorde al protocolo, facilitando así la conexión con un microcontrolador de uso habitual. Hecho esto se pasó a diseñar las rutinas básicas del software del microcontrolador para lograr la correcta interconexión con el 53 controlador USB. Esta es la primera etapa para lograr una comunicación con la PC. Cuando un dispositivo USB se conecta a una PC comienza un dialogo entre ellos conocido como enumeración, en el cual la PC interroga al dispositivo para identificarlo y conocer sus características, por ejemplo: tipo de dispositivo, forma en que envía la información, etc. Se amplió el software para que lleve a cabo la enumeración de forma tal que el dispositivo fuera reconocido por la PC. Una vez logrado esto quedó sentada la base para agregar funcionalidad al dispositivo, ya que a grandes rasgos se puede decir que esta parte es común para una amplia gama de los mismos. 5.5.8 CLASE HID El nombre HID es la abreviatura de “Human Interface Devices”. Esta Clase, cuya versión actual es el estándar HID 1.11 fue ideada con el propósito de englobar a dispositivos que permitan la interacción del usuario (ser humano) con el Host. Por lo tanto, los requerimientos de ancho de banda son mínimos, y la transferencia de datos debe ser confiable. Los datos que los dispositivos HID envían al Host son interpretados por el “HID Class Driver” del sistema operativo, para luego poder ser utilizados por la aplicación que los requiera (Client Software). Los requisitos para la implementación de un dispositivo HID son:  Control Endpoint (Endpoint0): obligatorio  Interrupt IN Endpoint: obligatorio  Interrupt OUT Endpoint: opcional 5.5.9 FACILIDADES PARA EL DESARROLLO DE DISPOSITIVOS USB Microchip, unos de los más importantes fabricantes de microcontroladores tiene entre su gama alta a la familia 18F2455/2550/4455/4550 dispositivos que entre sus múltiples periféricos cuentan con una interfaz USB 2.0 con compatibilidad para LS y FS que permite una complejidad moderada a la hora de realizar una interfaz utilizando este puerto. Estos dispositivos cuentan con el hardware necesario para realizar una 54 conexión USB a baja velocidad (Low speed o LS) o velocidad completa (full speed o FS), las operaciones de protocolo deben ser programadas y consumen importantes recursos del sistema como lo son algunas interrupciones y muchos ciclos de máquina de tal forma que sería necesario incluir en el programa un complejo set de rutinas para controlar el puerto USB, esta situación incrementa la complejidad al desarrollar aplicaciones donde se requiere alto rendimiento y es crítico un control exacto del tiempo, por ejemplo en un sistema de adquisición temporizado internamente, no obstante no se debe descartar este dispositivo a la hora de desarrollar pues se deben tener en cuenta la enormes ventajas que ofrece este, entre las cuales encontramos un bajo costo, altísima calidad, flexibilidad y el invaluable respaldo y soporte técnico de su fabricante Microchip. 5.6 PUERTO SERIAL En informática, un puerto serie es una interfaz física de comunicación en serie a través de la cual se transfiere información mandando o recibiendo un bit. A lo largo de la mayor parte de la historia de las computadoras, la transferencia de datos a través de los puertos de serie ha sido generalizada. Se ha usado y sigue usándose para conectar las computadoras a dispositivos como terminales o módems. Los mouse, teclados, y otros periféricos también se conectaban de esta forma. Mientras que otras interfaces como Ethernet, FireWire, y USB mandaban datos como un flujo en serie, el término "puerto serie" normalmente identifica el hardware más o menos conforme al estándar RS-232, diseñado para interactuar con un módem o con un dispositivo de comunicación similar. En muchos periféricos la interfaz USB ha reemplazado al puerto serie; en 2009, la mayor parte de las computadoras están conectadas a dispositivos a través de USB, y a menudo ni siquiera tienen un puerto serie. El puerto serie se omite para reducir los costes y se considera que es un puerto heredado. Sin embargo, los puertos de serie todavía se encuentran en sistemas de automatización industrial y algunos productos industriales y de consumo. Los dispositivos de redes (como routers y switches) a menudo tienen puertos de serie para la configuración. 55 5.6.1 ¿QUÉ ES UN PUERTO SERIAL? Se puede definir un puerto serial como un “puerto para conectar un dispositivo a una computadora. La información se transmite por un solo conducto y por lo tanto bit a bit de forma serial.”26 5.6.2 TIPOS DE COMUNICACIONES SERIALES Simplex En este caso el transmisor y el receptor están perfectamente definidos y la comunicación es unidireccional. Este tipo de comunicaciones se emplean usualmente en redes de radiodifusión, donde los receptores no necesitan enviar ningún tipo de dato al transmisor. Duplex, half duplex o semi-duplex En este caso ambos extremos del sistema de comunicación cumplen funciones de transmisor y receptor y los datos se desplazan en ambos sentidos pero no simultáneamente. Este tipo de comunicación se utiliza habitualmente en la interacción entre terminales y un computador central. Full Duplex El sistema es similar al duplex, pero los datos se desplazan en ambos sentidos simultáneamente. Para ello ambos transmisores poseen diferentes frecuencias de transmisión o dos caminos de comunicación separados, mientras que la comunicación semi-duplex necesita normalmente uno solo. Para el intercambio de datos entre computadores este tipo de comunicaciones son más eficientes que las transmisiones semi-duplex. 5.6.3 CONECTOR RS-232C El puerto serie RS-232C, presente en todos los ordenadores actuales, es la forma mas comúnmente usada para realizar transmisiones de datos entre ordenadores. El RS-232C es un estándar que constituye la tercera revisión de la antigua norma RS-232, propuesta por la EIA (Asociación de Industrias Electrónicas), 26ALEGSA (1998), Diccionario de Informática, Internet y Tecnología, Definición de puerto serial, Extraído el 4 de febrero de 2009 desde http://www.alegsa.com.ar/Dic/puerto%20serial.php. 56 http://www.alegsa.com.ar/Dic/puerto serial.php realizándose posteriormente un versión internacional por el CCITT, conocida como V.24. Las diferencias entre ambas son mínimas, por lo que a veces se habla indistintamente de V.24 y de RS-232C (incluso sin el sufijo "C"), refiriéndose siempre al mismo estándar. Figura 5.6.3.1: Ejemplo de puerto serial en la computadora. Fuente: Tomada de la página www.gogoboard.org, “conozca la tarjeta gogo” el 4 de febrero de 2009. El RS-232C consiste en un conector tipo DB-25 de 25 pines, aunque es normal encontrar la versión de 9 pines DB-9, mas barato e incluso mas extendido para cierto tipo de periféricos (como el ratón serie del PC). En cualquier caso, los PCs no suelen emplear mas de 9 pines en el conector DB-25. Las señales con las que trabaja este puerto serie son digitales, de +12V (0 lógico) y -12V (1 lógico), para la entrada y salida de datos, y a la inversa en las señales de control. El estado de reposo en la entrada y salida de datos es -12V. Dependiendo de la velocidad de transmisión empleada, es posible tener cables de hasta 15 metros. Figura 5.6.3.2: Conector serial RS232 de 9 pines macho. Fuente: Tomada de www.psicofxp.com, “artículos”, el 4 de febrero de 2009. Figura 5.6.3.3: Conector hembra RS232 de 9 pines. Fuente: Tomada de www.cam.educaciondigital.net, “los puertos”, el 4 de febrero de 2009. 57 http://www.cam.educaciondigital.net/ http://www.psicofxp.com/ http://www.gogoboard.org/ Cada pin puede ser de entrada o de salida, teniendo una función especifica cada uno de ellos. Las mas importantes son: Cuadro 5.6.3.1: Funciones de los Pin Fuente: Tomado de la página www.esukalnet.net, en el tema “Estándar RS232”, el 4 de febrero de 2009. Las señales TXD, DTR y RTS son de salida, mientras que RXD, DSR, CTS y DCD son de entrada. La masa de referencia para todas las señales es SG (Tierra de Señal). Cuadro 5.6.3.2: Ubicación de los pines en los conectores DB-25 y DB-9 Fuente: Tomado de la página www.esukalnet.net, en el tema “Estándar RS232”, el 4 de febrero de 2009. 58 http://www.esukalnet.net/ http://www.esukalnet.net/ Figura 5.6.3.4:Orden de los pines en los conectores DB-25 y DB-9 Fuente: Tomado de la página www.esukalnet.net, en el tema “Estándar RS232”, el 4 de febrero de 2009. La figura 5.6.3.5 muestra la relación entre los distintos componentes en una comunicación serial. Estos componentes son el UART, el canal de serie, y la interfaz lógica. Una interfaz de chip conocido como receptor universal asíncrono / transmisor o UART (por sus siglas en ingles) se utiliza para ejecutar la transmisión de datos en serie. El UART se encuentra entre el equipo host y el canal serial