Desarrollo de un terminal móvil inteligente CDMA destinado a
Transcription
Desarrollo de un terminal móvil inteligente CDMA destinado a
UNIVERSIDAD SIMÓN BOLÍVAR Decanato de Estudios Profesionales Coordinación de Ingeniería Electrónica DESARROLLO DE UN TERMINAL MÓVIL INTELIGENTE CDMA DESTINADO A APLICACIONES M2M POR GUILLERMO DANIEL ZERPA ZERPA Sartenejas, Febrero de 2007 UNIVERSIDAD SIMÓN BOLÍVAR Decanato de Estudios Profesionales Coordinación de Ingeniería Electrónica DESARROLLO DE UN TERMINAL MÓVIL INTELIGENTE CDMA DESTINADO A APLICACIONES M2M POR GUILLERMO DANIEL ZERPA ZERPA REALIZADO CON LA ASESORÍA DE TUTOR ACADÉMICO: PROFESOR CARLOS BIANCHI TUTOR INDUSTRIAL: INGENIERO PEDRO RÍOS ROLDÁN INFORME FINAL DE CURSOS EN COOPERACIÓN TÉCNICA Y DESARROLLO SOCIAL Presentado ante la Ilustre Universidad Simón Bolívar como requisito parcial para optar al título de INGENIERO ELECTRÓNICO Sartenejas, Febrero de 2007 UNIVERSIDAD SIMÓN BOLÍVAR Decanato de Estudios Profesionales Coordinación de Ingeniería Electrónica DESARROLLO DE UN TERMINAL MÓVIL INTELIGENTE CDMA DESTINADO A APLICACIONES M2M INFORME FINAL DE CURSOS EN COOPERACIÓN TÉCNICA Y DESARROLLO SOCIAL PRESENTADO POR GUILLERMO DANIEL ZERPA ZERPA REALIZADO CON LA ASESORÍA DE TUTOR ACADÉMICO: PROFESOR CARLOS BIANCHI TUTOR INDUSTRIAL: INGENIERO PEDRO RÍOS ROLDÁN RESUMEN El proyecto de pasantía presentado a continuación, se basa en el estudio y desarrollo de una plataforma de pruebas para el manejo de un Terminal Móvil Inteligente sobre una red de comunicaciones CDMA y abarca el diseño, desarrollo e implantación de un prototipo sobre una de las aplicaciones comerciales para lograr la incorporación del mismo a una red de máquinas expendedoras de productos; con el principal objetivo de despachar un producto de manera local a un usuario que haya enviado un mensaje de texto desde su celular para su adquisición. El diseño a grandes rasgos comprende tres etapas. Una primera etapa llamada “investigación”, donde se identificaron y analizaron los aspectos y características más importantes de los equipos, tecnología y protocolos de comunicación, que permitieron la elaboración de criterios de selección y la escogencia de los elementos fundamentales para el prototipo. Una segunda etapa llamada “desarrollo”, donde se construyó y probó el funcionamiento del software y hardware del prototipo. Y por último la etapa de “documentación y elaboración del informe técnico”, donde se presentan los resultados y los detalles del proyecto de pasantía. En el presente informe se tiene como objetivo realizar una descripción de las actividades realizadas, las herramientas utilizadas y los resultados obtenidos durante el desarrollo del prototipo propuesto por la empresa Dinama C.A, haciendo énfasis en la investigación y en el desarrollo del nuevo Terminal. La empresa Dinama C.A. opera dentro del mercado de las telecomunicaciones y específicamente en el área de la televisión y las aplicaciones móviles. PALABRAS CLAVES: Telecomunicaciones, Terminal Móvil, CDMA, Kyocera M200, M2M business, SMS, Microcontrolador. Sartenejas, Febrero de 2007 iii A mis padres, Esvelia y Guillermo, por todo ese amor incondicional que me han otorgado en cada instante de mi vida. “... Si puedes obligar a tu corazón, a tus nervios y a tus músculos a obedecerte, aún después de que hayan perdido su fuerza, y solo tengan tu voluntad que les dice que continúen adelante. Si puedes dirigirte a las multitudes sin perder tu virtud, y codearte con reyes sin perder tu sencillez...; ... Si puedes llenar el implacable minuto con sesenta segundos de esfuerzo denodado, tuya será la Tierra y cuanto ella contenga, y, lo que vale mas, ¡serás un hombre, hijo mío!“ Rudyard Kipling iv AGRADECIMIENTOS A mi papá, por guiarme en todo momento de mi vida, por forjar en mí los valores de constancia, honestidad y lealtad y por ser más que un amigo en quien poder confiar. A mi mamá, por llevarme de la mano cuando daba mis primeros pasos, por enseñarme a levantar y a luchar después de una derrota, por amarme y confiar en mí de manera incondicional. A mi Mari, mi mejor amiga, mi princesa, mi corazón; por estar allí siempre. Por motivarme en cada instante y brindarme todo tu apoyo de manera incondicional. Por compartir todos estos maravillosos momentos de mi vida juntos. A mis hermanos, Vane y Gusta, por esos momentos juntos que hemos compartido día a día y en los cuales hemos ido creciendo poco a poco y tomados de la mano. A mis mejores amigos y amigas, Alito, Ernesto, Daniel, Alejandra, Elena, Melany, por ser los pilares fundamentales en muchos aspectos de mi vida, estando a mi lado y brindándome todo su apoyo siempre que los he necesitado. Gracias por todos esos excelentes momentos que hemos vivido y seguiremos viviendo juntos. A todos mis amigos de la Universidad, por compartir conmigo todos esos momentos increíbles dentro y fuera de la USB. Las rumbas, las playas, las risas, los trasnochos, las interminables y divertidas sesiones de estudios y todos esos recuerdos que jamás olvidaremos. A Pedro Ríos, por ser más que mi jefe, un excelente compañero. Por todo ese apoyo que me has brindado y más aún, por creer en mí y darme la oportunidad de desarrollar este proyecto. A Nelson Belfort, por todo tu apoyo, ideas y conocimientos que durante el período de mi pasantía, me permitieron a seguir adelante de manera exitosa. A todo el equipo de Dinama C.A. y Dinama Servicios C.A. a quienes considero excelentes amigos y compañeros de trabajo. Gracias por las mil formas en las que me ayudaron a llevar a cabo de manera exitosa este proyecto de pasantía. En especial a Pedro, Juan, Gerardo, Javier y Daniella. A Bruce York, por todo el soporte técnico y la ayuda que me has brindado durante el desarrollo del prototipo. A Mariela Velásquez, Ángel Amejeiras, Juan Amejeiras y Richard Ramos, de la empresa Global Vending CA., por brindarme la ayuda y facilitarme las máquinas expendedoras de café para la realización de las pruebas del prototipo. v ÍNDICE GENERAL RESUMEN ..................................................................................................................................... iii AGRADECIMIENTOS ...................................................................................................................... v ÍNDICE GENERAL ......................................................................................................................... vi ÍNDICE DE TABLAS Y FIGURAS ..................................................................................................... ix TABLAS ........................................................................................................................................... ix FIGURAS .......................................................................................................................................... ix LISTA DE SÍMBOLOS Y ABREVIATURAS ....................................................................................... xii CAPÍTULO 1. INTRODUCCIÓN ........................................................................................................ 1 CAPÍTULO 2. CONTEXTO DE LA PASANTÍA .................................................................................... 4 2.1. DESCRIPCIÓN DE LA EMPRESA................................................................................................... 4 2.2. EJECUCIÓN DE PROYECTO: UNIDAD DE NUEVOS NEGOCIOS Y DESARROLLO .......................... 7 2.3. PLANTEAMIENTO DEL PROBLEMA............................................................................................. 8 2.4. JUSTIFICACIÓN DEL PROYECTO ............................................................................................... 10 CAPÍTULO 3. OBJETIVOS Y ALCANCE .......................................................................................... 11 3.1. OBJETIVO GENERAL ................................................................................................................ 11 3.2. OBJETIVOS ESPECÍFICOS ......................................................................................................... 11 3.3. ALCANCE Y LIMITACIONES ..................................................................................................... 11 CAPÍTULO 4. FUNDAMENTOS TEÓRICOS ..................................................................................... 13 4.1. LAS TELECOMUNICACIONES ................................................................................................... 13 4.2. SISTEMAS DE COMUNICACIONES MÓVILES............................................................................. 14 4.2.1. REDES CDMA .................................................................................................................. 18 4.2.2. LOS TERMINALES MÓVILES ............................................................................................. 20 4.3. REDES DE COMPUTADORAS .................................................................................................... 21 4.3.1. MODELO OSI.................................................................................................................... 22 4.3.1.1. CAPAS DEL MODELO OSI .......................................................................................... 22 4.3.2. ARQUITECTURA CLIENTE SERVIDOR ............................................................................... 24 vi ÍNDICE GENERAL 4.3.3. SISTEMAS OPERATIVOS .................................................................................................... 25 4. 4. TECNOLOGÍA M2M................................................................................................................. 29 4.5. MÁQUINAS EXPENDEDORAS .................................................................................................... 33 4.5.1. ESTÁNDAR MDB.............................................................................................................. 34 4.5.1.1. SISTEMA DE PAGO ELECTRÓNICO O “CASHLESS DEVICE”......................................... 38 CAPÍTULO 5. MARCO METODOLÓGICO ....................................................................................... 40 5.1. PERSPECTIVA TEÓRICA Y TIPO DE INVESTIGACIÓN ................................................................ 40 5.2. OBJETO DE ESTUDIO ................................................................................................................ 40 5.3. FASES DE LA INVESTIGACIÓN .................................................................................................. 41 5.4. PROCEDIMIENTOS .................................................................................................................... 43 5.5. TÉCNICAS E INSTRUMENTOS DE RECOLECCIÓN DE DATOS..................................................... 51 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS ........................................................... 52 6.1. AMBIENTE DE DESARROLLO .................................................................................................... 52 6.2. MÓDULO KYOCERA M200 ...................................................................................................... 52 6.2.1. DESCRIPCIÓN .................................................................................................................... 52 6.2.2. PROTOCOLO DE COMUNICACIÓN KMIP.......................................................................... 54 6.3. RUTINAS Y FUNCIONES BÁSICAS ............................................................................................ 59 6.4. FUNCIONALIDADES DEL MODULO........................................................................................... 62 6.5. DESCRIPCIÓN DEL PROGRAMA PRINCIPAL DE LA PLATAFORMA. ............................................ 63 6.6. DIAGRAMAS DE FLUJO DEL PROGRAMA PRINCIPAL DE LA PLATAFORMA. ............................. 64 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA .................................. 68 7.1. TERMINAL MÓVIL INTELIGENTE DE DINAMA ......................................................................... 68 7.1.2. ELEMENTOS QUE LO CONFORMAN Y DIAGRAMA DE BLOQUES .................................... 69 7.1.3. ESPECIFICACIONES ........................................................................................................... 71 7.1.4. APLICACIONES DEL TERMINAL MÓVIL INTELIGENTE ...................................................... 72 7.1.5. ARQUITECTURA DEL TERMINAL MÓVIL INTELIGENTE .................................................... 74 7.2. APLICACIÓN PARA MÁQUINA EXPENDEDORA DE CAFÉ.......................................................... 74 7.2.1. ELEMENTOS Y REQUERIMIENTOS ..................................................................................... 75 7.2.3. PROTOTIPO EN TÉRMINOS DE HARDWARE ....................................................................... 75 7.2.3.1. DIAGRAMA DE BLOQUES DEL HARDWARE. .............................................................. 76 7.2.3.2. PROTOTIPO REAL DEL TMI ....................................................................................... 77 7.2.3. PROCESO DE COMPRA A TRAVÉS DEL TMI...................................................................... 77 vii ÍNDICE GENERAL 7.2.4. PROGRAMA EN EL SERVIDOR ........................................................................................... 83 7.2.5. PROGRAMA DENTRO DEL TERMINAL ............................................................................... 85 7.2.5.1. DIAGRAMA DE FLUJO DE LA APLICACIÓN ................................................................ 87 7.2.6. LIMITACIONES .................................................................................................................. 88 CAPÍTULO 8. RESULTADOS Y ANÁLISIS....................................................................................... 90 8.1. RESULTADOS ........................................................................................................................... 90 8.1.1. DEMOSTRACIÓN DEL SERVICIO........................................................................................ 93 8.2. ANÁLISIS DE LOS RESULTADOS OBTENIDOS ........................................................................... 93 CONCLUSIONES Y RECOMENDACIONES ....................................................................................... 97 CONCLUSIONES .............................................................................................................................. 97 RECOMENDACIONES....................................................................................................................... 98 REFERENCIAS BIBLIOGRÁFICAS ................................................................................................ 100 APÉNDICES ............................................................................................................................... 103 APÉNDICE A. TABLA COMPARATIVA MICROCONTROLADORES Y TARJETAS DE EVALUACIÓN .. 103 APÉNDICE B. MATERIALES Y EQUIPOS UTILIZADOS ................................................................... 105 APÉNDICE C. ESQUEMÁTICOS DE LAS TARJETAS DEL PROTOTIPO TMI ...................................... 121 ESQUEMÁTICOS KIT DE DESARROLLO DEL MÓDULO M200 (MDK)....................................... 121 ESQUEMÁTICO TARJETA OLIMEX STR-P711 ........................................................................... 125 ESQUEMÁTICO DE LA INTERFAZ ELÉCTRICA MDB ................................................................. 126 viii ÍNDICE DE TABLAS Y FIGURAS TABLAS TABLA 4.1. CAPAS DEL MODELO OSI ................................................................................................................. 24 TABLA 4.2. INTERFACES Y ESTÁNDAR DE MÁQUINAS EXPENDEDORAS. .............................................................. 34 TABLA 4.3. INTERFACES Y PROTOCOLO DE MÁQUINAS EXPENDEDORAS............................................................. 37 TABLA 6.1. CANALES MULTIPLEXADOS EN PROTOCOLO KMIP. ......................................................................... 55 TABLA 8.1. CÁLCULO DEL ERROR DE DESVIACIÓN EN LA COMUNICACIÓN SERIAL DEL MICROCONTROLADOR STR711 UTILIZANDO UN FRECUENTA DE PCLK1=18,432 MHZ......................................................................... 95 TABLA APÉNDICE A.1. TABLA MICROCONTROLADORES Y TARJETAS DE EVALUACIÓN PARTE A..................... 103 TABLA APÉNDICE A.2. TABLA COMPARATIVA ENTRE MICROCONTROLADORES Y TARJETAS DE EVALUACIÓN PARTE B ........................................................................................................................................................... 104 TABLA APÉNDICE B.1. CARACTERÍSTICAS MÁQUINA EXPENDEDORA DE CAFÉ MODELO COLIBRÍ. FUENTE N&W GLOBAL VENDING ............................................................................................................................................ 116 FIGURAS FIGURA 2.1 OPERACIONES CONSOLIDADAS DINAMA C.A. FUENTE INTRANET DINAMA C.A. 2006..................... 5 FIGURA 2.2 PIRÁMIDE DE VALOR AGREGADO DINAMA C.A. FUENTE INTRANET DINAMA C.A. 2006 .................. 6 FIGURA 2.3 ORGANIGRAMA DE LA EMPRESA. FUENTE INTRANET DINAMA 2006 ................................................. 8 FIGURA 2.4. CIFRAS PRELIMINARES DE LA DISTRIBUCIÓN DEL MERCADO DE TELEFONÍA MÓVIL. FUENTE CONATEL........................................................................................................................................................... 9 FIGURA 4.1. REQUISITOS BÁSICOS DE UN CANAL DE TELECOMUNICACIÓN POR RADIO EN UN SOLO SENTIDO. FUENTE [SMALE, 1993] ...................................................................................................................................... 14 FIGURA 4.2. REPRESENTACIÓN DE MULTIPLEXACIÓN POR DIVISIÓN DE CÓDIGO. ............................................... 18 FIGURA 4.3. ELEMENTOS DE UN TERMINAL MÓVIL. FUENTE TELEFÓNICA. ........................................................ 21 FIGURA 4.4. COMPONENTES DE UNA COMPUTADORA: VISIÓN DE ALTO NIVEL. FUENTE WIKIPEDIA.................... 26 FIGURA 4.5. NIVELES Y VISTAS DE UN SISTEMA INFORMÁTICO .......................................................................... 28 FIGURA 4.6. ARQUITECTURA DE UNA PLATAFORMA M2M. FUENTE TELEFÓNICA .............................................. 33 FIGURA 4.7. REPRESENTACIÓN DEL FORMATO DE BITS. ...................................................................................... 35 FIGURA 4.8. ESQUEMÁTICO DE CONEXIÓN DE MAESTRO Y ESCLAVO EN LAS MÁQUINAS EXPENDEDORAS. FUENTE ESTÁNDAR MDB/ICP DE NAMA Y EVA........................................................................................................... 37 FIGURA 4.9. DIAGRAMA DE ESTADOS DE UN PERIFÉRICO TIPO CASHLESS (TMI). ................................................ 38 FIGURA 5.1. CRONOGRAMA DE ACTIVIDADES REALIZADO EN UN DIAGRAMA GANT .......................................... 42 FIGURA 6.1. ARQUITECTURA BÁSICA INTERNA DEL MODULO M200 DE KYOCERA. FUENTE KYOCERA WIRELESS ........................................................................................................................................................................... 53 ix ÍNDICE DE TABLAS Y FIGURAS FIGURA 6.2. MÓDULO M200 DE KYOCERA. FUENTE KYOCERA WIRELESS......................................................... 53 FIGURA 6.3. CONECTOR MACHO 54230-0578 PARA EL M200. FUENTE MOLEX................................................ 54 FIGURA 6.4. CONECTOR HEMBRA 55055-0578 PARA EL M200. FUENTE MOLEX .............................................. 54 FIGURA 6.5. DIAGRAMA DE FLUJO SIMPLIFICADO DEL PROGRAMA EN EL MAIN.................................................. 65 FIGURA 6.6. DIAGRAMA DE FLUJO DEL SEGMENTO CONFIGURACIÓN................................................................. 65 FIGURA 6.7. DIAGRAMA DE FLUJO DEL SEGMENTO ANALIZAR DATA ................................................................ 66 FIGURA 6.8. DIAGRAMA DE FLUJO DEL SEGMENTO EJECUTAR FUNCIÓN ............................................................ 66 FIGURA 6.9. DIAGRAMA DE FLUJO DEL SEGMENTO CODIFICAR DATA................................................................ 66 FIGURA 6.10. DIAGRAMA DE FLUJO DEL PROGRAMA EN LA INTERRUPCIÓN DEL UART..................................... 67 FIGURA 6.11. DIAGRAMA DE FLUJO DEL SEGMENTO DECODIFICAR ................................................................... 67 FIGURA 7.1. MODO DE OPERACIÓN DEL TERMINAL MÓVIL INTELIGENTE ........................................................... 68 FIGURA 7.2. ELEMENTOS DEL TERMINAL MÓVIL INTELIGENTE .......................................................................... 70 FIGURA 7.3. APLICACIONES O SERVICIOS ASOCIADOS AL MÓDULO M200. FUENTE KYOCERA WIRELESS. ........ 73 FIGURA 7.4. PROYECCIÓN DE MERCADO M2M EN EL 2010. FUENTES ABI RESEARCH, FROST & SULLIVAN, KYOCERA ........................................................................................................................................................... 73 FIGURA 7.5. DIAGRAMA DE BLOQUES DE LA ESTRUCTURA INTERNA DEL TMI. ................................................. 76 FIGURA 7.6. FOTOS EXTERNA DEL TMI.............................................................................................................. 77 FIGURA 7.7. FOTOS INTERNAS DEL TMI. ............................................................................................................ 77 FIGURA 7.8. PASOS INVOLUCRADOS EN MODELO DE SICAP. FUENTE SICAP .................................................... 78 FIGURA 7.9. DIAGRAMA DE SECUENCIA. MODELO 1 COBRO POR MO SMS. ...................................................... 79 FIGURA 7.10. DIAGRAMA DE SECUENCIA. MODELO 2 COBRO POR MO SMS. .................................................... 80 FIGURA 7.11. DIAGRAMA DE SECUENCIA. MODELO 1 COBRO POR MT SMS...................................................... 81 FIGURA 7.12. DIAGRAMA DE SECUENCIA. MODELO 2 COBRO POR MT SMS...................................................... 81 FIGURA 7.13. DIAGRAMA DE SECUENCIA. MODELO 3 COBRO POR MT SMS...................................................... 82 FIGURA 7.14. DIAGRAMA DE SECUENCIA. MODELO IDEAL DE DINAMA. ............................................................ 82 FIGURA 7.15. DIAGRAMA DE FLUJO DEL PROGRAMA DE LA APLICACIÓN DE MÁQUINA EXPENDEDORA DENTRO DEL TMI ............................................................................................................................................................. 87 FIGURA 7.16. DIAGRAMA DE FLUJO DE LA INTERRUPCIÓN DE ENCUESTA DE LA MÁQUINA EXPENDEDORA....... 88 FIGURA APÉNDICE B.1. ELEMENTOS DEL PAQUETE DE DESARROLLO DE MODULO (MDK). FUENTE KYOCERA WIRELESS. ........................................................................................................................................................ 106 FIGURA APÉNDICE B.2. ARQUITECTURA BÁSICA INTERNA DEL MODULO M200 DE KYOCERA. FUENTE KYOCERA WIRELESS ......................................................................................................................................................... 107 FIGURA APÉNDICE B.3. MÓDULO M200 DE KYOCERA. FUENTE KYOCERA WIRELESS. .................................... 107 FIGURA APÉNDICE B.4. CONECTOR MACHO 54230-0578 PARA EL M200. FUENTE MOLEX ............................ 107 FIGURA APÉNDICE B.5. CONECTOR HEMBRA 55055-0578 PARA EL M200. FUENTE MOLEX .......................... 107 FIGURA APÉNDICE B.6. INTERFAZ DEL PHONE SUPPORT TOOL. ....................................................................... 109 FIGURA APÉNDICE B.7. DIAGRAMA GENERAL DE LA HERRAMIENTA MARS.................................................... 111 FIGURA APÉNDICE B.8. INTERFAZ GRÁFICA DE LA HERRAMIENTA MARS....................................................... 112 x ÍNDICE DE TABLAS Y FIGURAS FIGURA APÉNDICE B.9. TARJETA DE EVALUACIÓN OLIMEX STR-P711. FUENTE OLIMEX ............................... 113 FIGURA APÉNDICE B.10. VENTANA PRINCIPAL DE LA HERRAMIENTA EWARM DE IAR. ................................ 114 FIGURA APÉNDICE B.11. VENTANA DE SIMULACIÓN DE LA HERRAMIENTA EWARM DE IAR. ....................... 115 FIGURA APÉNDICE B.12. EMULADOR MASTER MDB DE VENDING MACHINE. FUENTE BONUSDATA............... 116 FIGURA APÉNDICE B.13. MÁQUINA EXPENDEDORA DE CAFÉ MODELO COLIBRÍ. FUENTE N&W GLOBAL VENDING .......................................................................................................................................................... 117 FIGURA APÉNDICE B.14. ANALIZADOR DE PROTOCOLO TELENEX 8800 TURBO............................................... 117 FIGURA APÉNDICE B.15. INTERNACIONAL DATA SCIENCES INC, BLUE BOX 100. ........................................... 118 FIGURA APÉNDICE B.16. ANALIZADOR DE PROTOCOLOS BONUSDATA. FUENTE BONUSDATA ......................... 119 FIGURA APÉNDICE B.17. ALGUNOS CABLES PARA CONECTAR DISTINTAS INTERFACES ELÉCTRICAS DE MÁQUINAS EXPENDEDORAS................................................................................................................................................ 120 FIGURA APÉNDICE B.18. CABLE ARM-JTAG DE OLIMEX. .............................................................................. 120 xi LISTA DE SÍMBOLOS Y ABREVIATURAS µC símbolo que significa Microcontrolador 3G siglas en ingles para Tercera Generación (Third Generation) AC símbolo que significa Corriente Alterna ADC siglas en inglés de Conversor Analógico a Digital (Analog to Digital Converter) A-GPS siglas en inglés de GPS Asistido (Assisted GPS) Amp símbolo que significa Amperios APB siglas en inglés de Bus Avanzado de Periféricos (Advanced Peripheral Bus) API siglas en inglés de Interfaz de Programación de Aplicaciones (Application Programming Interface) ARM siglas en inglés para Máquinas de arquitectura RISC Avanzadas (Advance RISC Machine) ASCII siglas en inglés de Código Estadounidense Estándar para el Intercambio de Información (American Standard Code for Information Interchange) AT símbolo en inglés para Attention BDV siglas en alemán para Asociación Alemanas de Máquinas Expendedoras (Bundesverband der Deutschen Vending) bps símbolo que significa bits por segundo BREW siglas en inglés para Tiempo de ejecución Binario para Ambiente Inalámbrico (Binary Runtime for Wireless Environment) CCITT son las siglas en inglés de Comité Consultivo Internacional Telegráfico y Telefónico (Consultative Committee for International Telegraphy and Telephony) CDMA siglas en inglés de Acceso Múltiple por División de Código (Code Division Multiple Access) CLK símbolo que significa Clock CMOS siglas en inglés de Semiconductor Complementario del Óxido de Metal (Complementary Metal Oxide Semiconductor) xii LISTA DE SÍMBOLOS Y ABREVIATURAS CONATEL son las siglas de Consejo Nacional de Telecomunicaciones de la República Bolivariana de Venezuela CPU siglas en inglés para Unidad central de Procesamiento (Central Processing Unit) CRC siglas en inglés de Códigos de Redundancia Cíclica (Cyclic Redundancy Check) DC símbolo que significa Corriente Directa DCE siglas en inglés de Equipo de Terminación del Circuito (Data Circuitterminating Equipment) DTE siglas en inglés de Equipo Terminal de Datos (Data Terminal Equipment) EDGE siglas en ingles para Velocidad de Datos Realzada para Evolución Global (Enhanced Data Rates for Global Evolution). EEPROM siglas en inglés para Memoria de Solo Lectura Programable y Borrable Eléctricamente (Electrically Erasable Programmable Read Only Memory) EIA siglas en inglés para Alianza de Industrias Electrónica (Electronic Industries Alliance) EIC siglas en inglés de Controlador Mejorado de Interrupciones (Enhaced Interrupt Controller) ERI siglas en inglés de Indicador Mejorado de Servicio fuera del área local (Enhanced Roaming Indicador) EVA siglas en inglés de Asociación Europea de Máquinas Expendedoras (European Vending Association) EvDO siglas en inglés de Evolución de Data Optimizada (Evolution Data Optimized) EWARM siglas en inglés de Banco de Trabajo Integrado para ARM (Embedded Workbench for ARM) E/S siglas para Entradas y Salidas FDMA siglas en inglés para Acceso Múltiple por División de Frecuencia (Frequency Division Multiple Access) FTL siglas en inglés de Capa de Transporte de Archivos (File Transport Layer) GPRS siglas en ingles para Sistema de Radio de Paquete General (General Packet Radio System) xiii LISTA DE SÍMBOLOS Y ABREVIATURAS GPS siglas en inglés de Sistema de Posicionamiento (Global Positioning System) GSM siglas en inglés de Grupo Especial Móvil (Group Special Mobile) HDLC siglas en inglés de Control de Enlace de transmisión de alto nivel (High Level Data Link Control) HSCSD siglas en inglés para Circuito de Alta velocidad Cambiado (High Speed Circuit Switched) I símbolo que significa Corriente ICP siglas en inglés de Protocolo Interno de Comunicaciones (Internal Comunication Protocol) ID siglas en inglés que significa Identificación (Identification) IEEE siglas en inglés de Instituto de Ingenieros Eléctricos y Electrónicos (Institute of Electrical and Electronics Engineers) IP siglas en inglés de Protocolo de Internet (Internet Protocol) J2ME siglas en ingles para Micro Edición de Java 2 (Java 2 Micro Edition) JTAG siglas en inglés de Grupo de Acción Conjunto de Prueba (Joint Test Action Group) Kbps siglas en inglés de kilo bits por segundo (kilo bits per second) KMIP siglas en inglés de Protocolo de Interfaz Multiplexada de Kyocera (Kyocera Multiplexing Interface Protocol) LCD siglas en inglés de Display de Cristal Líquido (Liquid Crystal Display) LED siglas en inglés para Diodo Emisor de Luz (Light Emitting Diode) LSB siglas en inglés para Bit Menos Significativo (Less Significant Bit) M2M siglas en inglés de Interfaz Hombre-a-Hombre, Hombre-a-Máquina, Máquinaa-Máquina (Man-to-Man, Man-to-Machine, Machine-to-Machine) MAR siglas en inglés para Registro de Direccionamiento de Memoria (Memory Address Register) MARS siglas en inglés para Modulo de Interfaz de Programación para el Sistema Remoto (Module Api Remote System) MB símbolo que significa Mega Byte MBR siglas en inglés de Registro de Buffer de Memoria (Memory Buffer Register) xiv LISTA DE SÍMBOLOS Y ABREVIATURAS MDA siglas en ingles de Tentativa de Entrega de Mensaje (Message Delivery Attempt) MDB siglas en inglés de Bus de Salida Múltiple (Multi Drop Bus) MDK siglas en inglés de Paquete de Desarrollo del Módulo (Module Developer Kit) mm símbolo que significa milímetro MMC siglas en inglés de Tarjeta Multimedia (Multi Media Card) MMCX siglas en inglés para Coaxial micro miniatura (Micro Miniature CoaX) MMS siglas en inglés para Sistema de Mensajería multimedia (Multimedia Messaging System) MO siglas en inglés para Originado en el Móvil (Mobile Originated) MOSMS siglas en inglés de Mensaje de texto corto Originado en el Móvil (MobileOriginated SMS) ms símbolo que significa milisegundos MSB siglas en inglés para Bit Más Significativo (Most Significant Bit) MT siglas en inglés para Terminado en el Móvil (Mobile Terminated) MTSMS siglas en inglés de Mensaje de texto corto Terminado en el Móvil (MobileTerminated SMS) MTSO siglas en ingles para Oficina de Conmutación de Teléfono Móvil (Mobile Telephone Switching Office) NAMA siglas en inglés de Asociación Nacional de Mercadotecnia Automática (National Automatic Merchandising Association) NRZ siglas en inglés para No Retorno a Cero (Non Return to Zero) OSI siglas en inglés para Interconexión de Sistemas Abiertos (Open System Interconection) OTA siglas en inglés de Sobre el Aire (Over the Air) PC siglas en inglés para Contador de Programa (Program Counter) PCB siglas en inglés de Circuito Impreso (Printed Circuit Board) PCLK símbolo que significa Reloj del Procesador (Processor Clock) PDE siglas en inglés de Entidad de Determinación de Posición (Position Determination Entity) xv LISTA DE SÍMBOLOS Y ABREVIATURAS PHP acrónimo recurrente en inglés de Procesador de texto PHP (PHP Text Procesor) PPP siglas en inglés de Protocolo Punto a Punto (Point-to-Point Protocol) PST siglas en inglés de Kit de Herramientas para Soporte del Teléfono (Phone Support Toolkit) PYME siglas para Pequeñas Y Medianas Empresas RF siglas en inglés que significan Radio Frecuencia (Radio Frequency) RAM siglas en inglés de Memoria de Acceso Aleatorio (Random Access Memory) RCCU siglas en inglés de Unidad de Control de Reset y de Reloj (Reset and Clock Control Unit) RISC siglas en inglés de Computadora con Conjunto de Instrucciones Reducido (Reduced Instruction Set Computer) ROM siglas en inglés de Memoria de Sólo Lectura (Read-Only Memory) RTC siglas en inglés de Reloj de Tiempo Real (Real Time Clock) Rx símbolo que significa Receptor SD siglas en inglés de Seguridad Digital (Secure Digital) SIM siglas en inglés para Módulo de Identidad de Suscriptor (Subscriber Identity Module) SMA siglas en inglés para Sub Miniatura versión A (SubMiniature version A) SMS siglas en inglés de Servicio de Mensajes Cortos (Short Message Service) SMTP siglas en inglés de Protocolo Simple de Transmisión de Correo (Simple Mail Transfer Protocol) SO siglas de Sistema Operativo TCP siglas en inglés de Protocolo de Control de Transmisión (Transmission Control Protocol) TDMA siglas en inglés para Acceso Múltiple por División de Tiempo (Time Division Múltiple Access) TIA siglas en inglés de Asociación de Industrias de Telecomunicación (Telecommunication Industry Association) TIM símbolo en inglés que significa Contador (Timer) TMI siglas de Terminal Móvil Inteligente xvi LISTA DE SÍMBOLOS Y ABREVIATURAS TTL siglas en inglés de Lógica Transistor a Transistor (Transistor-Transistor Logic) Tx símbolo que significa Transmisor UART siglas en inglés de Transmisor-Receptor Asíncrono Universal (Universal Asynchronous Receiver-Transmitter) UIT siglas de Unión Internacional de Telecomunicaciones UMTS siglas en inglés para Sistema de Telecominucaciones Universal Móvil (Universal Mobile Telecommunications System) URI siglas para Unión Radiotelegráfica Internacional USB siglas en inglés de Bus de Serie Universal (Universal Serial Bus) USSD siglas en inglés para Servicio de Datos Suplementarios No Estructurados (Unstructured Supplementary Service Data) UTI siglas para Unión Telegráfica Internacional VMC siglas en inglés de Controlador de la Máquina Expendedora (Vending Machine Controller) WAP siglas en inglés para protocolo de aplicaciones inalámbricas (Wireless Application Protocol) WWW siglas de World Wide Web XOR siglas en ingles para denotar la operación lógica de un O Exclusivo (Exclusive OR) XTI símbolo que significa External Interrupt xvii CAPÍTULO 1. INTRODUCCIÓN Cuando se habla de “Terminal Móvil”, se hace referencia a los dispositivos electrónicos que permiten el acceso de manera inalámbrica a una red de comunicaciones y que son los elementos fundamentales para la prestación de servicios; cuando a este término le añadimos la palabra “Inteligente”, introducimos una nueva característica sumamente importante que le permite a estos dispositivos realizar acciones más avanzadas, complejas y específicas de manera casi autónoma, todo ello con el fin de desarrollar y ofrecer cada vez más servicios a los usuarios. Tomando en consideración que actualmente existen pocas soluciones con respecto a este campo, y luego de evaluar los requerimientos, las ventajas, las aplicaciones, las oportunidades y el valor agregado que un dispositivo de este tipo puede agregar a su portafolio de negocios; Dinama C.A., empresa dedicada a ofrecer soluciones de vanguardia en el ámbito de las telecomunicaciones, ha decidido desarrollar un Terminal Móvil Inteligente CDMA (Code Division Multiple Access) con miras a ser los primeros en ofrecer este tipo de producto al mercado Venezolano y crear un nicho en el área de soluciones y negocios M2M (Man-toMan, Man-to-Machine, Machine-to-Machine). El proyecto mencionado se basa en el estudio y desarrollo de una plataforma de pruebas para el manejo del Terminal Móvil Inteligente; efectuando una ingeniería del diseño y su implantación sobre la primera aplicación comercial que éste presentará, consistente en los servicios M2M. Este proyecto se enmarca dentro de uno más ambicioso que constituye el desarrollo, implantación y comercialización del Terminal Móvil Inteligente de tal manera que se adapte a los variados requerimientos de las soluciones corporativas de la empresa. Como aporte principal del proyecto de pasantía, se espera probar y evaluar el concepto del Terminal Móvil Inteligente obteniéndose datos valiosos sobre eficiencia técnica y económica, capacidades funcionales y futuras aplicaciones de éste. Para ello, se realizarán simulaciones que comprenden la adquisición y recolección de datos de operación (telemetría), así como el control remoto de las funciones del equipo remoto; todo ello emulando el proceso 1 CAPÍTULO 1. INTRODUCCIÓN de comunicación inalámbrica del Terminal Móvil Inteligente incorporado a una red de máquinas expendedoras de café. Para cumplir con estos objetivos, el presente proyecto consistió en investigar y estudiar los elementos tecnológicos que constituyen un Terminal Móvil, diseñar la plataforma de pruebas para este, elaborar el primer prototipo de Terminal Móvil Inteligente y elaborar el informe técnico del proyecto. En el capítulo 2 se presenta el contexto del proyecto de pasantía: la descripción de la empresa, el planteamiento del problema, la descripción general del proyecto y su justificación. El capítulo 3 cubre los objetivos generales y específicos del proyecto, así como el alcance y las limitaciones del mismo. El capítulo 4 desarrolla los fundamentos o el marco teórico sobre el que se basa este proyecto. Se comienza con una descripción sobre las telecomunicaciones para llegar a los sistemas de comunicaciones móviles y sus elementos. Posteriormente, se describe brevemente lo que son las redes de computadoras; pera luego pasar a lo verdaderamente importante que es acerca de la tecnología M2M y algunos estándares utilizados en la realización de la pasantía. En el capítulo 5 se describe la metodología utilizada durante el desarrollo de este proyecto; explicando claramente el tipo de investigación, el objeto de estudio, las fases del proyecto, los métodos, técnicas, procedimientos, materiales y equipos utilizados. Los capítulos 6 y 7, abarcan el grueso del informe y corresponden con la descripción del proceso de desarrollo de Terminal Móvil Inteligente. El capítulo 6, comienza por nombrar y explicar los requerimientos para el desarrollo de la plataforma, que conjuntamente con las funcionalidades más importantes del módulo Kyocera M200, permitieron seleccionar los elementos básicos que la conformarían y por último desarrollarla a nivel de Software. En el capítulo 7 se describe básicamente el desarrollo a nivel de Hardware del prototipo que sería acoplado a la máquina expendedora de café. 2 CAPÍTULO 1. INTRODUCCIÓN Por último en el Capítulo 8, se presentan los resultados, análisis y conclusiones del proyecto; incluyendo las distintas funciones y aplicaciones que podrían realizarse con el prototipo. 3 CAPÍTULO 2. CONTEXTO DE LA PASANTÍA En el presente capítulo se procede a describir el contexto o marco referencial del proyecto de pasantía. Se describirá a grandes rasgos la empresa donde fue realizada la pasantía, el problema surgido y la motivación por solucionarlo y por último la justificación para haber planteado dicho proyecto. 2.1. DESCRIPCIÓN DE LA EMPRESA Nacida en Mayo de 2001 en Venezuela, Dinama C.A. es una empresa multinacional líder en desarrollo y comercialización de aplicaciones para usuarios de sistemas móviles celulares que ofrece sus soluciones a segmentos masivos y corporativos. Dinama C.A. crea, desarrolla (Original Product Developer) y comercializa en un 100% sin dependencias externas, con lo cual, ha logrado conceptualizar y desarrollar productos propios en tiempo record que están a la vanguardia tanto tecnológico como comercial en América Latina. El objetivo de la empresa es el de afianzar una plataforma técnica y comercial regional (Latinoamérica) que impulse el desarrollo y comercialización de productos y la operación de servicios a través de herramientas y medios de entretenimiento y se apoye en el contexto de los equipos móviles como parte inseparable de las actividades personales y corporativas actuales. [Intranet Dinama C.A, 2006] En ese contexto, Dinama es una de las empresas integradoras móviles de mayor antigüedad y respetabilidad en Venezuela con conexión directa a 20 operadoras celulares en Latinoamérica. Su principal función corresponde a desarrollar aplicaciones y servicios en el área de “TV interactiva” aunque también desarrolla aplicaciones para operadoras celulares. 4 CAPÍTULO 2. CONTEXTO DE LA PASANTÍA Actualmente presenta operaciones consolidadas en 7 países en América Latina y próximamente espera consolidarse con 3 países más. La figura 2.1 muestra las operaciones consolidadas de Dinama durante el ano 2006. DINAMA Services (Vzla) Participación accionaria en la sociedad local DINAMA ETVE (España) Acuerdo de Transferencia Tecnológica y soporte comercial Acuerdo de Servicio (desarrollo y operación) y soporte comercial Colombia España EE.UU.* Venezuela Ecuador Argentina* Pto. Rico Mexico* Perú Bolivia * En fase de desarrollo Figura 2.1 Operaciones Consolidadas Dinama C.A. Fuente Intranet Dinama C.A. 2006 La empresa posee un amplio dominio en tecnología móvil y de medios con la capacidad de desarrollar aplicaciones y servicios basados en ellos tales como navegación y descarga de contenido WAP (Wireless Application Protocol), aplicaciones J2ME (Java 2 Micro Edition) y BREW (Binary Runtime for Wireless Environment), (aplicaciones sobre tarjetas SIM, contenido en MMS (Multimedia Messaging System), Video Streaming, contenido 3G (Third Generation), publicidad interactiva entre otras. La empresa también es capaz de crear y aplicar modelos de negocio sencillos y altamente efectivos incluyendo análisis de resultados y generación de proyecciones apoyadas en sus bases de datos, ofrecer apoyo creativo en la categoría de publicidad interactiva y consultoría de tecnologías asociadas a voz tal como ser observa de manera resumida más adelante en la figura 2.2. 5 CAPÍTULO 2. CONTEXTO DE LA PASANTÍA • Modelo de negocios (simuladores y estimadores) • Análisis de factibilidad (apoyo creativo) • Bases de datos de mercado (>1 millón de registros) Negocio Negoci Aplicaciones Aplicacione Operadora celular Tecnología Habilitadora • Juego y concursos • Comunicaciones (Chat, Dating, Mobimail) • Portales de contenido por suscripción • TV interactiva (Video profesional y herramientas) • (SMS) • (WAP) • J2ME, BREW • (MMS) • Video • Plataformas de video profesional Infraestructura • CdmaOne (IS-95), 1X, EVDO • GSM-GPRS-EDGE • TDMA Usuarios de la Red Figura 2.2 Pirámide de valor agregado Dinama C.A. Fuente Intranet Dinama C.A. 2006 Dinama C.A., posee una plataforma tecnológica conformada por clusters de servidores propios operando sobre el sistema operativo Linux y que se encuentran distribuidos en tres sitios diferentes (2 países) con replicas de conexiones, aplicaciones y bases de datos. Es importante destacar que esta plataforma puede manejar más de 120 MDA`s (Message Delivery Attempt) o pares de mensajes MO+MT (Mobile Originated + Mobile Terminated) por segundo. Entre las herramientas que se manejan se encuentran sistemas especiales para programación interactiva en televisión, plataformas profesionales de video y una plataforma súper poderosa para la distribución de contenido 3G. Por último es importante nombrar algunos de los servicios que presta la compañía y que han sido agrupados por categorías para facilitar su lectura: • iMedios: ofreciendo manejadores de campaña, administradores de concursos con ubicación instantánea de ganadores o por sorteo, formatos de TV-chat y radio chat, cintillos de noticias, comentarios y encuestas en línea y juegos. 6 CAPÍTULO 2. CONTEXTO DE LA PASANTÍA • Publicidad Interactiva: ofrece juegos y promociones orientados al incentivo de ventas, captura de datos personales, distribución de mensajes patrocinados y estudios de mercado. • Contenido especializado: como contenido textual o en MMS en demanda o por suscripción como pueden ser noticias, información económica, direcciones, etc., generación y validación de claves en SMS(Short Message Service) para venta de contenido en Web y una plataforma especializada de carga y venta de contenido 3G apoyada en SMS y sistemas de tarificación internos. • Operadoras: ofreciendo principalmente trivias en SMS y MMS, juegos, chat`s, contenido y una plataforma email SMS-WAP-WEB. • Agregación: oferta masiva de servicios de mensajería autoadministrados por el cliente para las PYMEs (Pequeñas y Medianas Empresas), interfaz administrativa bajo suscripción, gateways de paso y control y sistemas enrutadores y filtradores de tráfico • Aplicaciones Corporativas y Gobierno: ofreciendo plataformas de servicios bancarios móviles, plataforma de distribución electrónica de prepago y comercio móvil, plataformas de apuestas móviles, sistemas especializados de acceso a Bases de Datos y procesamiento. Todo esto nos indica que es una empresa que ofrece una gran cantidad de servicios y productos que están asociados a tecnología móvil y de sistemas y que poseen una gran demanda en el mercado actual; pero debido a que hoy día existe gran competencia en este sector es necesario para la empresa desarrollar nuevos productos con el fin de entrar en nuevos mercados y poder ofrecer nuevas soluciones a sus clientes. 2.2. EJECUCIÓN DE PROYECTO: UNIDAD DE NUEVOS NEGOCIOS Y DESARROLLO El proyecto será llevado a cabo en la división de Nuevos Negocios y Desarrollo que es la encargada de (como su nombre lo explica) investigar y desarrollar nuevos productos que se adapten a los perfiles de los clientes de la empresa y que puedan ser agregados al actual portafolio de la compañía. 7 CAPÍTULO 2. CONTEXTO DE LA PASANTÍA La estructura general de la empresa en la cual se realizó la pasantía se encuentra representada en el siguiente diagrama. DIRECTORES EJECUTIVOS ETVE Director de Desarrollo Tecnológico Gerente de Proyectos Director de Nuevos Negocios y Desarrollo Gerente Regional de Nuevos Productos y Tecnologías Director Comercial y Aseguramiento de Calidad GG Ecuador Director de Finanzas Gerente de Finanzas GG Bolivia Diseño Gráfico Gerente de operaciones Gerente de Medios Desarrollo GG. Colombia GG. Argentina (Abierto) GG. Perú GG. España (Abierto) GG USA GG. México (Abierto) GG Venezuela GG. Puerto Rico (Abierto) Desarrollo Figura 2.3 Organigrama de la empresa. Fuente Intranet Dinama 2006 Subrayado en el diagrama se encuentra el cargo ocupado por el pasante dentro de la organización, el cual consiste en investigar, documentar, diseñar, desarrollar y evaluar en conjunto a todos los directores, los nuevos proyectos y soluciones que sean propuestos. El pasante reporta directamente al Director de Nuevos Negocios y Desarrollo, quien es el responsable de los proyectos que maneje su grupo. 2.3. PLANTEAMIENTO DEL PROBLEMA Como se ha mencionado con anterioridad, en Dinama C.A. existe actualmente una gran cantidad y variedad de servicios que son ofrecidos a sus clientes especialmente en el área de la mensajería de texto; pero que desafortunadamente y de manera natural van perdiendo vigencia o se hace más difícil su comercialización. Sabemos que con el paso del tiempo, el continuo y rápido avance tecnológico y la gran demanda que existe en esas áreas tecnológicas tan grande como lo son las Telecomunicaciones, la mejor solución que existe es la de innovar y añadir nuevos servicios que no existan actualmente en el mercado. Dinama C.A, al evaluar su estatus 8 CAPÍTULO 2. CONTEXTO DE LA PASANTÍA como empresa, ha observado una oportunidad en la categoría de micropagos, que no es más que el medio para transferir muy pequeñas cantidades de dinero, en situaciones donde el recogimiento de tales cantidades con los sistemas de pago habituales es poco práctico, o muy caro en términos de la cantidad de dinero siendo recogida [W3C, 2007]. Actualmente, existen muy pocas soluciones de negocios M2M en el país y aquellas pocas empresas que ofrecen los servicios, lo hacen utilizando tecnología que ya ha sido desarrollada por terceros y cuya principal desventaja se encuentra en la poca flexibilidad para ser utilizados en distintas aplicaciones o propósitos. Otro aspecto es que los módulos funcionan bajo la tecnología GSM (Group Special Mobile) la cual no se ha explotado al máximo en Venezuela; esto último deriva de que las dos grandes operadoras móviles Movistar y Movilnet utilizan por ahora tecnología CDMA, y juntas poseen aproximadamente el 86% de los usuarios de telefonía móvil [CONATEL, Octubre de 2006], a diferencia de Digitel que sólo ocupa el 14% con su tecnología GSM, tal como se muestra en la siguiente figura 2.4. Figura 2.4. Cifras Preliminares de la Distribución del Mercado de Telefonía Móvil1. Fuente CONATEL En vista a los párrafos anteriores, Dinama C.A. ha estudiado el negocio M2M y lo observa como un campo inexplorado en el país y que puede ser explotado ampliamente al introducir el concepto de micropagos por medio de SMS. Al no existir muchas soluciones o dispositivos para el campo M2M, los módulos adquiridos por parte de terceros, resultan muy 1 A partir del III trimestre de 2006 DIGITEL refleja las cifras correspondientes a las región Oriente y Occidente (anteriormente Digicel e Infonet respectivamente) dada la fusión de las tres empresas el 18 de mayo de 2006. 9 CAPÍTULO 2. CONTEXTO DE LA PASANTÍA ineficientes ya que en la mayoría de los casos, los terminales son utilizados para una sola función o aplicación específica, lo que podría generar una desventaja notable contra un terminal que pudiera ser flexible; también es importante indicar los altos costos que podría tener la adquisición del equipo sin tomar en cuenta su mantenimiento y soporte. Al existir muy pocas soluciones para GSM pero mucho menos para CDMA, la compañía optó por desarrollar un Terminal CDMA 100% versátil y flexible que permitiese ofrecer varios y distintos servicios con el mismo equipo, utilizando como corazón, un módulo Kyocera M200 cuya tecnología es CDMA 1X y que ha sido diseñado específicamente para desarrollar aplicaciones en el negocio M2M y explotar este mercado. CDMA 1X ofrece una velocidad suficiente tanto en los enlaces de bajada (downlink) como en los enlaces subida (uplink) y es una tecnología que permanecerá en el mercado Venezolano aunque este se encuentre migrando a tecnología 3G. 2.4. JUSTIFICACIÓN DEL PROYECTO Dinama C.A. anticipa con el Terminal Móvil Inteligente la expansión de sus soluciones corporativas móviles destinadas aumentar la productividad de las empresas. En este sentido, el Terminal Móvil Inteligente permitirá la habilitación de servicios de telemetría, seguimiento y control, transporte de datos seguros, y comercio móvil, al complementar las soluciones ya existentes en el portafolio de Dinama C.A. Como primer proyecto que servirá de avanzada, el desarrollo de la plataforma de pruebas para el Terminal Móvil Inteligente brindará el medio de comunicación inalámbrico eficiente (aprovechamiento del ancho de banda) y la capacidad de procesamiento adicional (ejecución de procesos de control y despacho de forma local) a una red de máquinas expendedoras de productos (Vending Machine), más específicamente, sobre las máquinas expendedoras de café de la empresa Global Vending C.A. 10 CAPÍTULO 3. OBJETIVOS Y ALCANCE En el presente capítulo se procede a indicar de manera precisa los objetivos (tanto generales como específicos) que presenta el proyecto, así como el alcance del mismo al encontrarse enmarcado dentro de un proyecto más ambicioso. 3.1. OBJETIVO GENERAL Desarrollar una plataforma de pruebas y elaborar un primer prototipo de “Terminal Móvil Inteligente” para incorporarlo a una red de máquinas expendedoras de café y lograr realizar labores de telemetría y el control de algunas funciones básicas como lo son la venta y el despacho de los productos con requisición desde el teléfono móvil del cliente. 3.2. OBJETIVOS ESPECÍFICOS • Definir la estrategia del producto • Definir los elementos tecnológicos básicos del proyecto • Evaluar y probar los elementos tecnológicos para el desarrollo del proyecto • Diseñar e implementar la plataforma de pruebas para el Terminal Móvil Inteligente • Simular el proceso de comunicación inalámbrica del Terminal Móvil Inteligente incorporado a una red de máquinas expendedoras de café. • Realizar la documentación técnica del proyecto 3.3. ALCANCE Y LIMITACIONES El “Terminal Móvil Inteligente” es un proyecto extenso que comprende una serie de actividades como lo son el diseño completo del software (incluyendo todas las distintas aplicaciones a las que será destinado el dispositivo) para cubrir los distintos problemas que aparecen en el negocio M2M, el diseño y optimización del hardware, la construcción y prueba de los mismos, la comercialización y otras actividades. 11 CAPÍTULO 3. OBJETIVOS Y ALCANCE Es por ello que el proyecto de pasantía abarca el desarrollo de la plataforma de pruebas a nivel de software y el desarrollo del primer prototipo a nivel de hardware, enfocándose exclusivamente en la aplicación de la red de máquinas expendedoras de café de Global Vending C.A. La plataforma de pruebas será lo suficientemente flexible como para elaborar distintas aplicaciones partiendo de la misma librería de funciones y el prototipo tendrá distintos puertos de comunicación con el mismo fin. 12 CAPÍTULO 4. FUNDAMENTOS TEÓRICOS 4.1. LAS TELECOMUNICACIONES El desarrollo de la civilización, hasta llegar al punto en que se encuentra hoy en día, se debe en gran medida a la habilidad del ser humano para intercambiar información e ideas gracias a los sentidos de la vista y del oído, a través de la palabra escrita mediante alguna forma de lenguaje o código. Desde los albores de la civilización la gente ha buscado constantemente medios para transmitir información hacia distancias muy lejanas. Vale la pena mencionar que tele se deriva del griego y quiere decir distancia; por lo que la palabra Telecomunicación cubre todas las formas de comunicación a distancia, incluyendo radio, telegrafía, televisión, telefonía, transmisión de datos e interconexión de ordenadores. [Smale, 1993] El término telecomunicación fue definido conjuntamente por la Unión Telegráfica Internacional (UTI) y la Unión Radiotelegráfica Internacional (URI) como: ”Telecomunicación es toda transmisión, emisión o recepción, de signos, señales, escritos, imágenes, sonidos o informaciones de cualquier naturaleza por hilo, radioelectricidad, medios ópticos u otros sistemas electromagnéticos”. En otras palabras, Telecomunicación es el proceso de transmitir la energía de información a grandes distancias con la ayuda de medios electrónicos. Los elementos que integran un sistema de telecomunicación son: un transmisor, una línea o medio de transmisión y un canal y finalmente un receptor; aunque en la práctica se requiere de algunos dispositivos adicionales como amplificadores para elevar la fuerza de la señal hasta valores aceptables. [Smale, 1993] El proceso más sencillo, se describe a continuación, una cierta forma de “información” es convertida en energía eléctrica (gracias a los trasductores) luego, el transmisor transforma o 13 CAPÍTULO 4. MARCO TEÓRICO codifica los mensajes o energía eléctrica en un fenómeno físico llamado señal, que es el elemento que se enviará a través del medio de transmisión, que por su naturaleza física, puede que modifique o degrade la señal durante su trayecto. Luego el receptor ha de tener un mecanismo de decodificación capaz de recuperar el mensaje dentro de ciertos límites de degradación de la señal y por último, ya en su destino, la energía eléctrica se convierte de nuevo a su forma original. Fuente Transductor Antena Transmisor Amplificador Transmisor Origen de la Información Enlace de Radio + Ruido Antena Receptor Receptor Amplificador Destino Transductor Información Recibida + Ruido Figura 4.1. Requisitos básicos de un canal de telecomunicación por radio en un solo sentido. Fuente [Smale, 1993] Adicionalmente, La telecomunicación puede ser punto a punto, punto a multipunto o teledifusión, que es una forma particular de punto a multipunto que funciona solamente desde el transmisor a los receptores Concluyendo, las Telecomunicaciones son una de las fuerzas más potentes en el mundo hoy día. Esta, influencia a la toda la sociedad en conjunto y a cada uno como individuo. Todas las indicaciones apuntan a que las telecomunicaciones seguirán cambiando y creciendo a una tasa rápida, y que seguirá afectando a la sociedad. [Gross, 1997]. 4.2. SISTEMAS DE COMUNICACIONES MÓVILES Dos de los principales motores de la Sociedad de la Información han sido Internet y las comunicaciones móviles. Dejando a un lado la influencia de Internet, el cambio que ha producido la introducción de la movilidad en el sector de las telecomunicaciones ha sido 14 CAPÍTULO 4. MARCO TEÓRICO crítico, no sólo por la extensión de la posibilidad de la comunicación en cualquier momento y en cualquier lugar, sino por la propia personalización en la naturaleza de la comunicación entre individuos. La frase “el futuro es ahora” parece tonta, pero ciertamente captura el entorno de la dinámica industria de las comunicaciones, porque el entorno está cambiando, y lo está haciendo con gran rapidez. [Telefónica, 2006] Los sistemas de comunicaciones móviles comienzan a ser desarrollados como respuesta a las limitaciones de operación que presentaban los sistemas telefónicos convencionales, las cuales según [Lee, 1995] se resumen en: • Capacidad de Servicios Limitada • Un Funcionamiento de servicio pobre • La utilización ineficiente del espectro radioeléctrico de radiofrecuencia En general, el propósito de un sistema de comunicaciones móvil es: prestar servicios de telecomunicaciones entre estaciones móviles y estaciones terrenas fijas, o entre estaciones móviles. [Black, 1999] De acuerdo a [Lee, 1995], un sistema Celular Básico consta de 3 partes: - Unidades Móviles: conformados básicamente por una unidad de control, un transreceptor y una antena - Celdas: permiten realizar la interfaz entre las unidades móviles y las MTSO. - Oficinas de conmutación de teléfonos móviles o MTSO (Mobile Telephone witching Office): Son las centrales que controlan y administran a las celdas - Conexiones: representados por los enlaces de datos y de radiofrecuencia que permiten interconectar los 3 subsistemas nombrados anteriormente. De manera más simplificada: la telefonía celular, básicamente está formada por: una red de comunicaciones y los terminales que permiten el acceso a dicha red. Los terminales consisten en un dispositivo de comunicación electrónico con las mismas capacidades básicas de un teléfono de línea telefónica convencional con la diferencia que es portátil y se conecta a la red telefónica inalámbrica. 15 CAPÍTULO 4. MARCO TEÓRICO La red de telefonía móvil o celular, la cual consiste en un sistema telefónico en el que mediante la combinación de una red de estaciones transmisoras-receptoras de radio y una serie de centrales telefónicas de conmutación, se posibilita la comunicación entre terminales. El empleo de la palabra celular referido a la telefonía móvil, deriva del hecho de que las estaciones base, que enlazan vía radio los teléfonos móviles con los controladores de estaciones base, están dispuestas en forma de una malla, formando células o celdas. Así, cada estación base está situada en un nodo de estas células y tiene asignado un grupo de frecuencias de transmisión y recepción propio. Como el número de frecuencias es limitado, con esta disposición es posible reutilizar las mismas frecuencias en otras células, siempre que no sean adyacentes, para evitar interferencia entre ellas. [Wikipedia, 2006] [Lee, 1995] describe que la operación de un sistema celular abarca 4 segmentos: - Inicialización de la unidad Móvil: consiste en que la unidad móvil al ser encendida, debe buscar la celda con mayor potencia y conectar o realizar el enlace con la misma - Llamada Originada por el Móvil: consiste en que el usuario marque el teléfono de destino y al apretar el botón “SEND”, se envía esta información a al celda a la que se encuentra conectado; esta celda le hace una petición a la MTSO para escoger un canal y realizar el enlace. - Llamada originada en la red: al recibir el MTSO la petición, este procede a procesar y posteriormente a enviar un mensaje localización a ciertas celdas (de acuerdo al número de destino). Estas celdas se encargan de transmitir este mensaje para que el correspondiente celular detecte la señal y realice el enlace. - Terminación de llamada: cuando se va a finalizar la llamada, el transmisor antes de ser apagado emite una señal que le indica a la celda que se acabó la llamada y se procede a liberar de manera simultánea los enlaces ocupados. - Procedimiento de Traspaso de llamada (Handoff): este procedimiento ocurre cuando un usuario o unidad móvil se aleja mucho de una celda y entra en otra. Al estar lejos de la celda de enlace, la señal se hace débil por lo que la celda realiza una petición de handoff para que se conmute la señal o enlace a una nueva celda y nuevo canal que se encuentra ahora en el rango de la unidad móvil. La interrupción es imperceptible para los usuarios. 16 CAPÍTULO 4. MARCO TEÓRICO Para finalizar, aunque básicamente existen dos tipos de redes de telefonía móvil: la analógica y la digital; es mejor describir la evolución de las mismas desde el punto de vista cronológico [NET, 2001]: ■ La 1ª generación hizo su aparición en 1979 y se caracterizó por se analógica y estrictamente para voz. La calidad de los enlaces era muy baja, tenían baja velocidad (2400 bauds). En cuanto a la transferencia entre celdas, era muy imprecisa ya que contaban con una baja capacidad (Basadas en FDMA, Frequency Division Multiple Access) y, además, la seguridad no existía. La tecnología predominante de esta generación es AMPS (Advanced Mobile Phone System). ■ La 2ª arribó hasta 1990 y a diferencia de la primera se caracterizó por ser digital. El sistema utiliza protocolos de codificación más sofisticados que se emplean en los sistemas de telefonía celular actuales. Las tecnologías predominantes son: GSM; TDMA (Time División Múltiple Access) y CDMA. Los protocolos empleados en estos sistemas soportan velocidades de información más altas por voz, pero limitados en comunicación de datos. Se pueden ofrecer servicios auxiliares, como datos, fax y SMS (Short Message Service). Muchos de los proveedores de servicios de telecomunicaciones se moverán a redes intermedias entre la segunda y tercera generación. Estas ofrecen características extendidas a un costo menos que la redes de tercera generación. Entre las tecnologías existentes se encuentran: GPRS (General Packet Radio System), HSCSD (High Speed Circuit Switched), EDGE (Enhanced Data Rates for Global Evolution). ■ La 3ª generación se caracteriza por contener a la convergencia de voz y datos con acceso inalámbrico a Internet; en otras palabras, es apta para aplicaciones multimedia y altas transmisiones de datos. Los protocolos empleados en los sistemas 3G soportan altas velocidades de información y están enfocados para aplicaciones más allá de la voz como audio, video en movimiento, videoconferencia y acceso rápido a Internet. 17 CAPÍTULO 4. MARCO TEÓRICO ■ La 4ª generación aún no se encuentra definida hoy día; pero podemos resumir que estará basada totalmente en IP (Internet Protocol) y las velocidades de transmisión podrían encontrarse en el orden de decenas de Mbits. 4.2.1. REDES CDMA La multiplexación por división de código o CDMA es un término genérico que define una interfaz de aire inalámbrica basada en la tecnología de espectro extendido. Para telefonía celular, CDMA es una técnica de acceso múltiple especificada por la TIA como IS-95.y que comenzó a desarrollarse al comienzo de 1989. [Wikipedia, 2006] Estos sistemas de comunicación móviles son complicados y requieren una configuración rigurosa con la finalidad de que funcione correctamente. En estos sistemas CDMA, la capacidad de la misma depende principalmente de cuánta interferencia puede tolerar una señal deseada. El nivel de la señal deseada debe estar siempre por debajo de la interferencia ya que todos los usuarios deben compartir el mismo canal. En el caso de que una señal utilice más potencia de la necesaria, va a afectar directamente a las demás y la capacidad de la red se verá reducida. El concepto CDMA es que todos los canales de voz compartan un gran canal de radio. Si una señal aumenta, las demás señales deben aumentar también o en el peor caso desaparecer, aunque ninguno de estos casos es deseable. [Lee, 1995] Figura 4.2. Representación de Multiplexación por división de Código. 18 CAPÍTULO 4. MARCO TEÓRICO Cada dispositivo que utiliza CDMA está programado con unos pseudo-código, el cual se usa para extender una señal de baja potencia sobre un espectro de frecuencias amplio. La estación base utiliza el mismo código en forma invertida para reconstruir la señal original. Los otros códigos permanecen extendidos, distinguibles del ruido de fondo. Hoy en día existen muchas variantes, pero el CDMA original se conoce como cdmaOne bajo una marca registrada de Qualcomm. A CDMA se le caracteriza por su alta capacidad y celdas de radio pequeño, que emplea espectro extendido y un esquema de codificación especial y, lo mejor de todo es muy eficiente en potencia. Las redes basadas en CDMA están construidas con protocolos basados en IP. Lo que indica que el estándar cdmaOne ya incorpora en sus terminales los protocolos TCP/IP (Protocolo de control de transmisión/Protocolo de Internet) y PPP (Protocolo punto a punto). Diseñado con alrededor de 4.4 trillones de códigos, CDMA virtualmente elimina la clonación de dispositivos y es muy difícil capturar y descifrar una señal. El control de la potencia es otro beneficio de los sistemas de CDMA. Empleando técnicas de procesamiento de señales, corrección de error, etc., CDMA supera el problema de la potencia con una serie de ciclos de retroalimentación y control automático de ganancia. Debido al sistema de retroalimentación de CDMA que mantiene la potencia al más bajo nivel permisible, los terminales consumen menos potencia y son más pequeños, además de que las baterías de CDMA duran más tiempo La señal de espectro extendido de CDMA provee gran cobertura en la industria inalámbrica, por lo que permite a las operadoras la instalación de menos celdas para cubrir un área más extensa. Pocas celdas significan para las operadoras mucho ahorro en infraestructura de radiobases. Dependiendo de la carga del sistema y de la interferencia, la reducción de celdas es 50 por ciento menor en CDMA que en sistemas como GSM (sistema global para comunicaciones móviles), La transferencia de celdas (handoff) de CDMA, método para transferir llamadas entre celdas, reduce inteligentemente el riesgo de interrumpirlas durante una transferencia. El 19 CAPÍTULO 4. MARCO TEÓRICO proceso conocido como transferencia suave o transparente (soft handoff) entre celdas conduce a pocas llamadas caídas, ya que dos o tres celdas siempre monitorean la llamada. La transferencia entre celdas es transparente a los usuarios debido a que como, estos utilizan el mismo espectro, es más fácil moverse de una celda a otra sin que el suscriptor lo advierta. El canal de 1.25 MHz de CDMA provee un recurso común a los terminales en un sistema de acuerdo con sus propias necesidades, como voz, fax datos u otras aplicaciones. En un tiempo dado, la porción de este ancho de banda que no utilice un terminal estará disponible para otro usuario. Debido a que CDMA utiliza una porción grande de espectro repartida entre varios usuarios, provee flexibilidad en el ancho de banda para permitir servicios en demanda. 4.2.2. LOS TERMINALES MÓVILES Las capacidades exigidas a los terminales para la prestación de los servicios de movilidad se sustentan en las funciones, prestaciones y coste de los dispositivos electrónicos que los componen, por lo que los componentes electrónicos que constituyen estos terminales son una base fundamental en el servicio de movilidad. En la figura 4.3 se muestran los componentes electrónicos que podría contener un terminal móvil. El estado actual de la tecnología de los dispositivos ha hecho posible el desarrollo de una nueva generación de terminales avanzados que le permiten al usuario realizar una inmensa cantidad de funciones con el mismo dispositivo. Y es que gracias a los nuevos descubrimientos, avances tecnológicos y reducción de tamaño y costo de los dispositivos, permiten poco a poco ofrecer terminales con mejores prestaciones a un menor precio. 20 CAPÍTULO 4. MARCO TEÓRICO Figura 4.3. Elementos de un Terminal Móvil. Fuente Telefónica. Es importante destacar que estos terminales aunque posean una cantidad inmensa de funciones no pueden considerarse del todo inteligentes; ya que en la mayoría de los casos es indispensable la manipulación por parte del usuario para ejecutar una actividad. El adjetivo Inteligente, significa añadirle a estos terminales la capacidad de tomar acciones propias y de manera autónoma de acuerdo a una serie de variables o acontecimientos previos. Para lograrlo, estos terminales deben estar programados de tal manera que puedan tomar decisiones ante una situación específica para lograr responder o actuar ante el estímulo. 4.3. REDES DE COMPUTADORAS Una red de computadoras es un conjunto de computadoras y/o dispositivos conectados por enlaces de un medio físico ó inalámbrico y que comparten información, recursos y servicios. 21 CAPÍTULO 4. MARCO TEÓRICO 4.3.1. MODELO OSI El modelo de referencia de Interconexión de Sistemas Abiertos (OSI, Open System Interconnection) lanzado en 1984 fue el modelo de red descriptivo creado por ISO. Proporcionó a los fabricantes un conjunto de estándares que aseguraron una mayor compatibilidad e interoperabilidad entre los distintos tipos de tecnología de red producidos por las empresas a nivel mundial. 4.3.1.1. CAPAS DEL MODELO OSI La descripción de las diversas capas que componen este modelo es la siguiente [Tanenbaum, 2003], [Comer, 1997]: 1. Capa física: es la encargada de transmitir los bits de información por la línea o medio utilizado para la transmisión. Se ocupa de las propiedades físicas y características eléctricas de los diversos componentes, de la velocidad de transmisión, si esta es unidireccional o bidireccional (simplex, duplex o full-duplex). También de aspectos mecánicos de las conexiones y terminales, incluyendo la interpretación de las señales eléctricas. 2. Capa de enlace: puede decirse que esta capa traslada los mensajes hacia y desde la capa física a la capa de red. Especifica como se organizan los datos cuando se transmiten en un medio particular. Esta capa define como son los cuadros, las direcciones y las sumas de control de los paquetes Ethernet. Además del direccionamiento local, se ocupa de la detección y control de errores ocurridos en la capa física, del control del acceso a dicha capa y de la integridad de los datos y fiabilidad de la transmisión. Para esto agrupa la información a transmitir en bloques, e incluye a cada uno una suma de control que permitirá al receptor comprobar su integridad 22 CAPÍTULO 4. MARCO TEÓRICO 3. Capa de Red: esta capa se ocupa de la transmisión de los paquetes de datos y de encaminar cada uno en la dirección adecuada, tarea que puede ser complicada en redes grandes como Internet, pero no se ocupa para nada de los errores o pérdidas de paquetes. Define la estructura de direcciones y rutas de Internet. A este nivel se utilizan dos tipos de paquetes: paquetes de datos y paquetes de actualización de ruta. 4. Capa de Transporte: esta capa se ocupa de garantizar la fiabilidad del servicio, describe la calidad y naturaleza del envío de datos. Esta capa define cuando y como debe utilizarse la retransmisión para asegurar su llegada. Para ello divide el mensaje recibido de la capa de sesión en trozos, los numera correlativamente y los entrega a la capa de red para su envío. 5. Capa de Sesión: es una extensión de la capa de transporte que ofrece control de diálogo y sincronización, aunque en realidad son pocas las aplicaciones que hacen uso de ella. 6. Capa de Presentación: esta capa se ocupa de los aspectos semánticos de la comunicación, estableciendo los arreglos necesarios para que puedan comunicar máquinas que utilicen diversa representación interna para los datos. Describe como pueden transferirse números de coma flotante entre equipos que utilizan distintos formatos matemáticos. 7. Capa de Aplicación: esta capa describe como hacen su trabajo los programas de aplicación (navegadores, clientes de correo, terminales remotos, transferencia de archivos etc.). Esta capa implementa la operación con archivos del sistema. Por un lado interactúan con la capa de presentación y por otro representan la interfaz con el usuario, entregándole la información y recibiendo los comandos que dirigen la comunicación. 23 CAPÍTULO 4. MARCO TEÓRICO En resumen, la función principal de cada capa es: No. de Capa Nombre Nivel 7 Aplicación Nivel 6 Presentación Nivel 5 Sesión Nivel 4 Transporte Nivel 3 Red Nivel 2 Enlace Nivel 1 Físico Descripción El nivel de aplicación es el destino final de los datos donde se proporcionan los servicios al usuario. Se convierten e interpretan los datos que se utilizarán en el nivel de aplicación. Encargado de ciertos aspectos de la comunicación como el control de los tiempos. Transporta la información de una manera fiable para que llegue correctamente a su destino. Nivel encargado de encaminar los datos hacia su destino eligiendo la ruta más efectiva. Enlace de datos. Controla el flujo de los mismos, la sincronización y los errores que puedan producirse. Se encarga de los aspectos físicos de la conexión, tales como el medio de transmisión o el hardware. Tabla 4.1. Capas del modelo OSI 4.3.2. ARQUITECTURA CLIENTE SERVIDOR En esta arquitectura la computadora de cada uno de los usuarios, llamada cliente, produce una demanda de información a cualquiera de las computadoras que proporcionan información, conocidas como servidores, estos últimos responden a la demanda del cliente que la produjo. Los clientes y los servidores pueden estar conectados a una red local o una red amplia, como la que se puede implementar en una empresa o a una red mundial como lo es la Internet. Bajo este modelo cada usuario tiene la libertad de obtener la información que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como según le convenga. Los distintos servidores también pueden intercambiar información dentro de esta arquitectura. 24 CAPÍTULO 4. MARCO TEÓRICO Las características más importantes del modelo son: 1. El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes. 2. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma. 3. Un servidor da servicio a múltiples clientes en forma concurrente. 4. Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final. 5. La interrelación entre el hardware y el software están basados en una infraestructura poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de los diferentes tipos de formatos de datos y de los protocolos. 6. Un sistema de servidores realiza múltiples funciones al mismo tiempo 7. Se constituye como el nexo de unión mas adecuado para reconciliar los sistemas de información basados en mainframes o servidores, con aquellos otros sustentados en entornos informáticos pequeños y estaciones de trabajo. 8. Designa un modelo de construcción de sistemas informáticos de carácter distribuido. 4.3.3. SISTEMAS OPERATIVOS Un sistema operativo explota los recursos del hardware de uno o más procesadores, para ofrecer un conjunto de servicios a los usuarios del sistema. El sistema operativo también gestiona la memoria secundaria de los dispositivos de Entrada y Salida (E/S) en nombre de los usuarios. Por consiguiente es importante tener un cierto conocimiento del hardware del sistema informático subyacente, antes de comenzar el estudio de los sistemas operativos 25 CAPÍTULO 4. MARCO TEÓRICO Al más alto nivel, un sistema informático consta de procesador, memoria y componentes de entrada salida, con uno o más módulos de cada tipo. Estos componentes están interconectados de alguna forma para llevar a cabo la función principal del computador, que es ejecutar programas. [Stallings, 2001] • Procesador: controla la operación del computador y lleva a cabo las funciones de procesamiento de datos. Cuando existe un solo procesador, se suele denominar unidad central de programación o (CPU, Central Processing Unit). • Memoria Principal: almacena los datos y los programas. Esta memoria es normalmente volátil; también se la conoce como memoria real o memoria principal. • Módulos E/S: transportan los datos entre el computador y su entorno exterior. El entorno exterior consta de una variedad de dispositivos externos de comunicación y los terminales. • Interconexión de los sistemas: ciertos mecanismos y estructuras que permiten la comunicación entre procesadores, memoria principal y los módulos de E/S. Figura 4.4. Componentes de una computadora: visión de alto nivel. Fuente Wikipedia Un programa para ser ejecutado por el procesador consta de un conjunto de instrucciones almacenadas en memoria. En su forma más simple el procesamiento de las instrucciones está formado por dos pasos: el procesador lee las instrucciones desde la memoria (una cada vez) y ejecuta cada una de ellas. La ejecución de un programa consiste en la repetición de de este proceso de lectura y ejecución de las instrucciones. 26 CAPÍTULO 4. MARCO TEÓRICO Una de las instrucciones más importantes son las interrupciones, las cuales aparecen como una vía para mejorar la eficiencia del procesamiento. Su funcionamiento consiste en interrumpir el proceso normal del programa para la ejecución de instrucciones específicas y que no son parte del programa principal. Con las interrupciones, el procesador se puede dedicar a la ejecución de otras instrucciones mientras una operación de E/S está en proceso. Aún con el uso de interrupciones, puede que un procesador no sea aprovechado eficientemente. Por lo que es necesario desarrollar sistemas operativos mas complejos pero que a su vez permitan optimizar y mejorar la eficiencia del un programa o aplicación. Un sistema operativo puede definirse según [Stallings, 2001] como: “Un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre las aplicaciones del usuario y el hardware de un computador” Se le pueden asociar tres objetivos fundamentales: • Comodidad: un sistema operativo hace que un computador sea mas cómodo de utilizar • Eficiencia: un sistema operativo permite que los recursos de un sistema informático se aprovechen de una manera más eficiente. • Capacidad de evolución: un sistema operativo debe construirse de modo que permita el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema operativo y, a la vez, no interferir en los servicios que brinda. El hardware y el software que se utilizan para proveer de aplicaciones a los usuarios pueden contemplarse de forma estratificada o jerárquica, como se muestra en la 27 CAPÍTULO 4. MARCO TEÓRICO Usuario Final Programador Programa de Aplicación Diseñador del sistema Utilidades Sistema Operativo Hardware del Computador Figura 4.5. Niveles y vistas de un sistema informático De manera resumida, los sistemas operativos ofrecen servicios en el área de creación de programas, ejecución de programas, acceso a los dispositivos de E/S, acceso controlado a los archivos, acceso al sistema, detección y respuesta de errores, contabilidad. El SO es un gestionador de los recursos de un computador. Un sistema operativo evolucionará en el tiempo por tres razones principales: - actualizaciones de hardware y nuevos tipos de hardware. - Nuevos servicios como respuesta a las nuevas demandas de los usuarios. - Correcciones de errores o fallas dentro del mismo sistema operativo Los sistemas operativos están entre los elementos de software más complejos que se han desarrollado. Esto refleja el reto de tratar de conjugar las dificultades y, en algunos casos, objetivos opuestos de comodidad, eficiencia y capacidad de evolución. Según Stallings, [Denn, 1980] propone cinco avances teóricos significativos en el desarrollo de los sistemas operativos: - Los procesos - La gestión de memoria - La seguridad y la protección de la información - La planificación y la gestión de recursos - La estructura del sistema. 28 CAPÍTULO 4. MARCO TEÓRICO 4. 4. TECNOLOGÍA M2M Cuando hablamos de tecnología M2M, estamos hablando de un concepto que engloba la automatización de los procesos de comunicación entre máquinas (Machine to Machine), entre dispositivos móviles y máquinas (Mobile to Machine), y entre hombres y máquinas (Man to Machine). Estas máquinas pueden ser de muchos tipos y dependerá del tipo de aplicación al que puede ser implementado. [WamTech, 2006] Según la empresa WamTech: "Para el año 2010, un mínimo de 1.500 millones de dispositivos alrededor del mundo estarán conectados a Internet. Estos dispositivos generarán una oportunidad de por lo menos 700 millones de dólares para las compañías involucradas en el desarrollo, monitoreo y provisión de servicios con valor agregado"... Harbor Research Inc. Lo que representa una gran oportunidad para los negocios M2M ya que se puede implementar una gran cantidad de aplicaciones y servicios en este campo. Las aplicaciones pueden constar de los siguientes componentes: La recolección de datos, a través de sensores para luego ser enviados y almacenados en el centro de control o en los sistemas de gestión de las empresas. El control remoto de una serie de operaciones sobre la máquina remota. La configuración remota, de la programación o de los modos de funcionamiento de las máquinas controladas. La supervisión remota. En los sistemas con capacidad para detectar situaciones de alarma. En estos casos, la información que se transmite suele ser crítica. La presentación de datos debe poder ser visualizada a través de diversos dispositivos como pantallas, avisos luminosos, etc. El conjunto de uno o varios de esos componentes permite crear una aplicación para un determinado servicio. Estos servicios se pueden categorizar de acuerdo a los siguientes escenarios: 29 CAPÍTULO 4. MARCO TEÓRICO Vending: el vending es el sector por excelencia de los servicios M2M. Las máquinas expendedoras de productos reúnen una serie de características que las hacen idóneas para ser controladas o monitoreadas remotamente. La reposición de productos y monedas puede optimizarse conociendo en tiempo real las existencias, también puede conocerse el estado de la máquina en lo que a funcionamiento se refiere (averías). Por último, existe la posibilidad de realizar el cobro de los productos de manera electrónica. Procesos de fabricación industrial: en estos procesos existe un gran número de máquinas y robots que suelen estar controlados por autómatas. Dadas las condiciones de estos entornos (temperatura, ruidos, etc.), resulta interesante poder reprogramar las máquinas de forma remota. Lectura de contadores: las empresas distribuidoras disponen de personal que se desplaza hasta cada contador para efectuar la lectura e introducir los datos correspondientes en los sistemas de las empresas. En este escenario, los servicios M2M permitirían no sólo realizar una lectura más cómoda y rápida de los contadores, sino también ofrecer a sus clientes servicios de valor agregado relacionados con el consumo y de la información en tiempo real. Medicina: en el ámbito de los tratamientos domiciliarios, los servicios M2M permiten la transferencia de la información recogida por diversos dispositivos médicos, sin que sea necesario enviar manualmente dicha información a los hospitales. También los vehículos de emergencias pueden aprovechar los servicios M2M, disponiendo de conectividad con los hospitales. Automoción: aprovechando los sistemas de control electrónico con los que se equipan los vehículos en la actualidad, los servicios M2M permiten realizar diagnosis remotas sin necesidad de desplazar el vehículo al taller, mejorando, por tanto, su mantenimiento. También pueden implementarse alarmas que pueden notificarse en tiempo real. Control de acceso: permitiendo automatizar el control de acceso a edificios, estacionamientos, etc. proporcionando no sólo un canal de comunicación con los centros de control, sino también la posibilidad de llevar a cabo la identificación de los usuarios. 30 CAPÍTULO 4. MARCO TEÓRICO Control y supervisión del tráfico: en este sector existen multitud de dispositivos que pueden aprovecharse de los servicios M2M, bien sea para establecer la comunicación con los centros de control de tráfico, o bien como redes de respaldo a las existentes basadas en fibra. Medio ambiente: generalmente, las estaciones, así como los medidores de variables ambientales, están situados en lugares con escasas posibilidades de comunicación. Los servicios M2M permiten establecer una red de comunicación móvil sobre la que poder transferir toda la información necesaria. Gestión de flotas: consiste en la localización a través de A-GPS, con respaldo en la red móvil, para proporcionar un medio de localización que puede resultar suficiente para ciertas aplicaciones. Además, se cuenta con la posibilidad de transferir información sobre rutas, avisos, etc. El principal valor de los servicios M2M consiste en la posibilidad de establecer comunicaciones de datos remotas entre máquinas apoyándose en la red móvil. Uno de los servicios más efectivos por parte de la red es: El servicio SMS (Short Message Service), el cual puede resultar útil en los casos en que la cantidad de información a transmitir por las aplicaciones M2M es baja y a ráfagas, y no se requiere total fiabilidad en la transmisión de datos (seguridad en la entrega de los mensajes, desorden en la entrega, etc.). Es servicio se basa en la transmisión de mensajes cortos de textos donde se puede transportar instrucciones e información en forma de caracteres. En la mayor parte de los casos, además de contar con los medios para llevar a cabo la comunicación entre máquinas, será necesario contar también con un sistema que ofrezca una solución M2M completa. En este sentido, para poder definir una arquitectura orientada a M2M es necesario analizar previamente los distintos factores que intervienen en un servicio M2M completo. 31 CAPÍTULO 4. MARCO TEÓRICO Las máquinas: estas representan la razón principal de la existencia de los servicios M2M, pues al fin y al cabo constituyen aquello que se quiere controlar o monitorizar remotamente. Estas máquinas presentan las siguientes características: como las interfaces, el tamaño, el consumo, la ubicación, y el tráfico generado. Todas estas características deben ser analizadas al momento de desarrollar cualquier aplicación o servicio. La red móvil: constituye el medio de comunicación remoto que utilizarán las máquinas. Por lo que la solución ideal es combinar todos los servicios ofreciendo a las aplicaciones M2M una línea de comunicación que se ajuste de forma transparente a sus necesidades y a las condiciones de la red. La gestión e implantación de los servicios: como en cualquier servicio, el usuario necesitará una consola desde la que poder administrar los componentes del servicio y obtener la información relativa a sus máquinas. Esto obliga a contar con un centro que controle todas las máquinas y que ofrezca a los usuarios las interfaces necesarias para obtener información de sus máquinas, controlarlas, generar informes, etc. El desarrollo de los servicios: una de las características en la que más se ha incidido hasta ahora es la heterogeneidad de los servicios M2M. Por tanto, es conveniente proporcionar herramientas que permitan personalizar las soluciones M2M a cada escenario particular. Teniendo en cuenta todos los factores anteriores, se podría definir una arquitectura para una plataforma de servicios M2M basada en tres componentes principales: 1. Los módulos de control: son unos dispositivos electrónicos que se instalarán en cada máquina a controlar, y que se comunicarán con el centro de control para recibir instrucciones, notificar avisos y alarmas, etc. Incorporan toda la lógica necesaria para su funcionamiento y las interfaces necesarias para mantener comunicación tanto con el centro de control como con la máquina en la que están instalados. 32 CAPÍTULO 4. MARCO TEÓRICO 2. El centro de control: concentra todas las comunicaciones con los módulos de control y permite a los usuarios obtener toda la información relacionada con sus máquinas. Su comportamiento será parcialmente configurable en función del servicio M2M concreto. 3. Las herramientas de configuración: Tal como se ha descrito hasta ahora, la propuesta de arquitectura se basa en una solución universal en la que ni los módulos de control ni el centro de control están previamente diseñados para llevar a cabo una funcionalidad concreta. En su lugar, los usuarios utilizarán las herramientas de configuración para particularizar el comportamiento de la solución M2M. Con estos tres elementos, se puede crear una arquitectura parecida a la ClienteServidor, donde un programa cliente interactúa con un programa servidor con la finalidad de realizar alguna acción. Figura 4.6. Arquitectura de una Plataforma M2M. Fuente Telefónica 4.5. MÁQUINAS EXPENDEDORAS Son máquinas de venta automática que no necesitan intervención humana por parte del vendedor para su funcionamiento. Normalmente suelen vender: refrescos, golosinas, comida, bebidas, tabaco, boletos de tren o autobús. Y periódicamente un empleado repone el producto y recoge el dinero en forma de monedas y billetes, aunque a veces se puede pagar con tarjeta o incluso con el teléfono móvil. [Wikipedia, 2006] 33 CAPÍTULO 4. MARCO TEÓRICO Las principales ventajas de las máquinas expendedoras respecto a la venta tradicional son: un menor precio de los productos y su disponibilidad en cualquier momento del día. Entre sus principales desventajas cabría destacar la pérdida del contacto personal con el vendedor Desde el punto de vista técnico, una máquina expendedora no es más que un robot que mediante un protocolo de comunicación entre el cerebro y sus periféricos, puede ejecutar funciones como lo son el cobro y despacho del producto. Las máquinas expendedoras de hoy día, poseen un controlador electrónico que usualmente permite la interfaz con los sistemas de pago mediante varios protocolos y distintas configuraciones que se muestran en la siguiente tabla: Interfaz Protocolo Dispositivo Maestro Intervalo de Encuesta Número de Periféricos o Esclavos “Executive” Protocolo Executive 'A' emitido por “Mars Electronic International”. Sistema de Pago 40 ms Max. 5. Lector de tarjetas y unidad de auditoria. “BDV” BDV001 emitido por el “BDV Comitee” Sistema de Pago 1000 ms Max. 5. Lector de tarjetas y unidad de auditoria. “MDB” Multi Drop Bus emitido por “NAMA” y “EVA” VMC 50 - 200 ms Max. 5. Validador de Monedas, Aceptor de billetes, Lector de tarjetas y unidad de auditoria. Tabla 4.2. Interfaces y Estándar de máquinas expendedoras. 4.5.1. ESTÁNDAR MDB El propósito de estos párrafos es describir de manera breve pero completa, la estandarización del programa y los comandos que utiliza el sistema electrónico o Controlador de Máquina Expendedora (VMC, Vending Machine Controller) para comunicarse con los periféricos, mediante el protocolo MDB (Multi Drop Bus). Antes de comenzar con la descripción, es importante destacar que muchos fabricantes poseen programas y especificaciones que no son exactas al estándar por lo que deben proveer las verdaderas especificaciones de sus productos. 34 CAPÍTULO 4. MARCO TEÓRICO La interfaz “MDB” o Bus de Salida Múltiple se basa en la comunicación serial bajo una arquitectura Maestro-Esclavo donde los periféricos son esclavos al controlador maestro o VMC. Debe existir un solo maestro con capacidad de comunicarse con hasta 32 periféricos donde cada uno posee una dirección y un conjunto o set de comandos únicos. La interferencia o choques de información dentro del bus se evitan ya que cada periférico responde únicamente cuando es encuestado o interrogado (Poll es el término correcto para esta acción). Todos los periféricos deben reconocer los comandos enviados por el Maestro y poder ser deshabilitados y habilitados. El funcionamiento básico es el siguiente, el VMC encuestará a los periféricos a través del bus, con el propósito de detectar actividad; estos periféricos deben responder con un Acknowledge, un Negative acknowledge o un comando de datos específico dependiendo se su estado actual. Si un periférico específico no responde en un tiempo definido a la encuesta del controlador, éste asume que el periférico no se encuentra conectado al bus. La última versión del estándar MDB introdujo nuevas especificaciones como distintos niveles y opciones de funcionamiento, con la finalidad de aumentar la capacidad de desarrollar e implementar nuevas funciones de acuerdo a los requerimientos que vayan apareciendo. Una de esas funciones es la Capa de Transporte de Archivos (FTL, File Transport Layer), la cual proporciona un método para enviar y/o recibir información de alto nivel entre periféricos o entre un periférico y el VMC. Las características más importantes del estándar MDB son las siguientes: • Formato del Byte de Comunicación - Velocidad de transmisión en baudios: 9600 NRZ - Formato de bit Serial: 1 Bit de inicio, 8 Bits de datos, 1 Bit de modo y 1 Bit de parada (11 bits en total); donde el MSB siempre es enviado de primero. LSB Inicio MSB Data 0 Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7 Figura 4.7. Representación del formato de bits. 35 Modo Parada CAPÍTULO 4. MARCO TEÓRICO - El tratamiento del bit de modo en el sentido Maestro a esclavo permite diferenciar entre un byte de dirección (Uno lógico) o un byte de data (Cero lógico). Los bytes de dirección deben ser leídos por todos los periféricos mientras que los bytes de datos solo pueden ser leídos por el periférico que ha sido diseccionado. En el sentido esclavo a maestro, el bit de modo se coloca en uno lógico cuando se envía el último byte de dato. • - Formato de Bloque de Comunicación Un bloque de comunicación enviado en sentido maestro a esclavo, es definido como 1 byte de dirección, bytes de datos (opcionales) y un byte de chequeo (CHK). El bloque está limitado a un máximo de 36 bytes. Los 5 bits más significativos (MSB) del byte de dirección corresponden al direccionamiento mientras que los 3 bits menos significativos (LSB) contienen comando específicos para el periférico. El VMC responderá a la data proveniente del periférico con un Acknowledge, un Negative Acknowledge o un byte de Retransmisión. En caso de que el VMC no reciba ningún byte proveniente el periférico, se retransmitirá la data hasta que el tiempo máximo de respuesta se haya cumplido. - Un bloque de comunicación en el sentido esclavo a maestro, consiste de un bloque de datos y un byte CHK, un byte de Acknowledge o un byte de Negative Acknowledge. Como se indicó anteriormente, el periférico debe colocar en alto el bit de modo del último byte a enviar con el propósito de indicar el fin de la transmisión. En caso que el maestro no responda correctamente al byte enviado por parte del periférico, este debe reenviar la data nuevamente o enviarla en la siguiente oportunidad. El byte CHK, es un byte que se envía de último en cada paquete de datos y básicamente es la suma del byte de direccionamiento respectivo y todos los bytes de datos a enviar. El bit de carga o el carry bit es ignorado. 36 CAPÍTULO 4. MARCO TEÓRICO • Esquemático de conexión del VMC y los esclavos Figura 4.8. Esquemático de conexión de maestro y esclavo en las máquinas expendedoras. Fuente Estándar MDB/ICP de NAMA y EVA. • Tiempos de respuesta o de comunicación Existen una serie de variables y tiempos para que la comunicación funcione y están descritos en la siguiente tabla. Nombre Descripción Valor Baud Rate La rata de bits por segundo 9600 +1%/-2% NRZ t interbyte Tiempo máximo permitido entre bytes en una comunicación por bloques. Max. 1ms t response El máximo tiempo en que un dispositivo debe responder Max. 5ms t break El mínimo tiempo en que la señal de reset de bus debe mantenerse Min. 100ms t setup El tiempo mínimo de espera para que se reinicie la comunicación luego de un reset min. 200ms Tabla 4.3. Interfaces y protocolo de Máquinas expendedoras. 37 CAPÍTULO 4. MARCO TEÓRICO 4.5.1.1. SISTEMA DE PAGO ELECTRÓNICO O “CASHLESS DEVICE” Este esclavo debe verse básicamente como una máquina de estados. Donde en cada estado se pueden realizar distintas acciones de acuerdo a los comandos que reciba y envíe. Para conocer más acerca de este esclavo que es que se va a reproducir en el proyecto, se procederá colocar una figura con la máquina de estados y posteriormente una breve explicación de cada uno de los estados. Reset Inicio 1. Inactivo Setup Listo Reset 3. Habilitado Habiltar Servicio Deshabilitar Servicio Iniciar Sesión Finalizar Sesión Petición Venta Inv. 2. Deshabilitado 4. Sesion en Espera 7. Venta Inversa Petición Cambio Petición Venta 5. Venta 6. Cambio Figura 4.9. Diagrama de Estados de un periférico tipo cashless (TMI). Estados: - Inactivo: este es el estado en que el periférico inicia o pasa luego de un comando de reset. En este estado, no puede utilizar el equipo con propósitos de venta. Para pasar al siguiente estado debe completar una etapa de configuración inicial. - Deshabilitado: el equipo entra automáticamente en este estado desde el estado inactivo. También puede pasar a este estado desde el estado habilitado si recibe el comando “Deshabilitar Lector”. En este estado, el equipo tampoco podrá ser utilizado para propósitos de venta. El equipo se mantendrá en este estado mientras no haya recibido el comando de “Habilitar Lector” donde pasa al siguiente estado. - Habilitado: en este estado, el equipo puede ser utilizado para transacciones MDB y se mantendrá en este estado hasta que no se haya recibido o leído un método de pago verificado y se haya recibido el comando para iniciar sesión. 38 CAPÍTULO 4. MARCO TEÓRICO - Sesión en Espera: este estado indica que se ha iniciado una sesión y que el periférico se encuentra listo para actividades de venta. En este estado pueden ocurrir tres tipos de actividades de venta que corresponden a los siguientes tres estados; pero la única manera de salir verdaderamente de este estado es recibiendo el comando de Sesión Finalizada por parte del VMC. - Venta: se entra en este estado al recibir desde el estado Sesión en espera, un comando de “Petición de Venta”, este estado es un secuencia ininterrumpible de comandos y respuestas que retorna automáticamente al estado Sesión En Espera luego de haber finalizado. - Cambio (Nivel 2 ó 3): se entra en este estado al recibir desde el estado Sesión en espera, un comando de “Petición de Cambio”, este estado es un secuencia ininterrumpible de comandos y respuestas que retorna automáticamente al estado Sesión En Espera luego de haber finalizado. - -Venta Inversa: se entra en este estado al recibir desde el estado Sesión en espera, un comando de “Petición de Venta Inversa”, este estado es un secuencia ininterrumpible de comandos y respuestas que retorna automáticamente al estado Sesión En Espera luego de haber finalizado. Existen muchos comandos para su manejo que permiten viajar por los estados anteriores y realizar distintas funciones y actividades. Para mayor información consultar el Estándar [MDB/ICP, 2003]. 39 CAPÍTULO 5. MARCO METODOLÓGICO Esta etapa del informe, expone la metodología implementada durante la ejecución del proyecto, los lineamientos y las características que este posee; en otras palabras, se procede a describir y analizar el fondo del problema planteado a través de procedimientos específicos que incluye las técnicas de observación, el tipo de investigación, las técnicas de recolección de datos y el análisis de los mismos; todo ello con la finalidad de explicar de que manera se realizo el estudio. 5.1. PERSPECTIVA TEÓRICA Y TIPO DE INVESTIGACIÓN De acuerdo a la perspectiva de la pasantía y tomando en cuenta la naturaleza del problema planteado y los objetivos para solucionarlo, se optó por utilizar un método de investigación “Cualitativo”, donde se analizan e identifican las cualidades del proyecto; desde el punto de vista del tipo de investigación, se seleccionó el modelo de “Proyecto Factible”, que consiste en la investigación, elaboración y desarrollo de una propuesta viable con la finalidad de solucionar el problema en cuestión de acuerdo a los requerimientos y las necesidades que surgieron del análisis previo del proyecto. La investigación se apoya en la identificación y selección de una serie de documentos, archivos e información obtenida a través de talleres vinculados a nuevas tecnologías, telecomunicaciones, sistemas y microcontroladores sobre los cuales se realizó la formulación de nuevos criterios, hipótesis y soluciones para el proyecto en cuestión; con el propósito de diseñar y desarrollar la plataforma de pruebas del proyecto. 5.2. OBJETO DE ESTUDIO El objeto de estudio del proyecto abarca de manera sintetizada la noción del caso y la motivación para hallar las respuestas del mismo. Se define como: “El diseño de una plataforma tecnológica para el desarrollo de aplicaciones M2M como respuesta a la carencia de soluciones y servicios dentro del mercado Venezolano”. 40 CAPÍTULO 5. MARCO METODOLÓGICO 5.3. FASES DE LA INVESTIGACIÓN Las actividades realizadas están divididas en varias fases secuenciales que se encargan de responder dos preguntas importantes: ¿Cuál es el estatus actual del proyecto? y ¿Cuál debe ser el plan a seguir para lograr desarrollar la plataforma y alcanzar los objetivos propuestos? Fase I: Definición de objetivos y estrategias para el producto. Esta fase corresponde a conocer el estado actual de la tecnología y entorno del proyecto para posteriormente definir el plan o la estrategia a seguir. El resultado fue la escogencia de los elementos tecnológicos básicos como el radio modem CDMA de Kyocera modelo M200, el ambiente cliente-servidor y los protocolos de comunicación; también de la escogencia del primer cliente potencial. Asimismo incluye la realización de una pequeña evaluación o justificación del proyecto donde de manera cualitativa se demuestra la factibilidad del mismo. Fase II: Evaluación y pruebas con los elementos tecnológicos básicos del Terminal Móvil Inteligente. En esta fase se logró la familiarización con las funciones y capacidades del radio modem CDMA seleccionado en la fase 1. Como resultado se obtuvo una plataforma de prueba (work bench) para evaluar las capacidades de comunicación, seguridad, localización y control del módulo M200 de Kyocera (radio modem seleccionado) en una red celular CDMA (Movistar y/o Movilnet) para conexiones de datos (1X o EVDO) y mensajería de texto (SMS). Esta plataforma de prueba permite la implantación de rutinas que ejecuten diversas funciones tratando de simular el módulo de control del Terminal Móvil Inteligente en un ambiente de producción (recibiendo órdenes de un ente superior en un ambiente Cliente-Servidor). El ambiente Cliente-Servidor fue preparado y provisto por Dinama C.A. para las pruebas. Fase III: Implantación en el ambiente de prueba, de la aplicación comercial para las máquinas expendedoras de café. En esta fase se investigó y determinó los protocolos de control de las máquinas expendedoras (MDB) y se propondrá un esquema de funcionamiento de la arquitectura 41 CAPÍTULO 5. MARCO METODOLÓGICO Cliente-Servidor para permitir la medida de indicadores de la máquina (telemetría) y el control de funciones. En este esquema el Servidor recibe las instrucciones de despachar el producto de la máquina expendedora de un ente externo que será el encargado de procesar el pago del cliente. Este elemento fue dispuesto por Dinama C.A. Fase IV: Diseño de un prototipo en términos de hardware y software que reproduzca la plataforma de pruebas con el objetivo de conformar junto al radio modem el Terminal Móvil Inteligente. Esta fase consiste en la realización del diseño del Terminal Móvil Inteligente, tomando en cuenta costo, factibilidad de producción en serie, tamaño y consumo de energía. De acuerdo con el alcance establecido para el proyecto, esta fase sólo considerará la elaboración de una propuesta preliminar básica sobre las características y los componentes que conformarán el Terminal Móvil Inteligente. De acuerdo con las fases del proyecto, se prevé el siguiente cronograma de actividades, el cual se presenta a nivel de fases en la figura 5.1. Semana Fase I Fase II Fase III Fase IV 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Figura 5.1. Cronograma de Actividades realizado en un Diagrama Gant El detalle por actividades se muestra a continuación: • Semanas 1-2: Integración a la compañía y entendimiento al detalle de los objetivos y estrategias para el producto “Terminal móvil inteligente”. • Semanas 2-4: Familiarización sobre las funciones y capacidades del radio módem CDMA seleccionado (Kyocera M200). • Semanas 4-5: Familiarización con respecto a “Analizadores de Protocolo”. • Semanas 5-7: Estudio detallado sobre protocolos de control. • Semana 7-8: Conceptualización detallada del módulo de control. • Semana 9: Revisión teórica sobre el concepto de Cliente-Servidor. • Semanas 9-16: Diseño e implantación del ambiente o plataforma de prueba. 42 CAPÍTULO 5. MARCO METODOLÓGICO • Semana 16: Elaboración del protocolo de pruebas para las simulaciones. • Semanas 17-18: Realización de las pruebas y recolección de información. • Semana 18-20: Elaboración del diseño básico del hardware del prototipo y elaboración del documento técnico. Entrega final del proyecto de pasantía. 5.4. PROCEDIMIENTOS En esta sección, se procederá a explicar los procedimientos o pasos realizados durante cada fase que conformaron el desarrollo del proyecto, describiendo en detalle las actividades del mismo. Fase I: Definición de objetivos y estrategias para el producto. Lo primero que se realizó fue conocer el estado de definición del proyecto investigando los antecedentes del mismo, observando que existían elementos tecnológicos y estrategias escogidas previamente por los ejecutivos de la empresa. De allí en adelante, se procedió de la siguiente manera: Al conocer el estado de la investigación, se procedió a realizar los contactos que poseía la empresa para la adquisición de equipos y dispositivos previamente seleccionados; los cuales básicamente eran la tarjeta de desarrollo y pruebas del modulo, el radio modem Kyocera M200 y un analizador de protocolos MDB junto con los cables de interfaz. Se procedió a determinar el objetivo general del proyecto de acuerdo a las ideas o propuestas que presentó la empresa Dinama C.A., entre las que se encontraban elaborar la plataforma de pruebas bajo una estructura cliente-servidor utilizando el módulo seleccionado. Esta plataforma sería la base tecnológica para luego poder elaborar aplicaciones M2M de acuerdo a los requerimientos de los distintos clientes. Para ese momento, la aplicación que más se adaptaba a las necesidades de la empresa resultó ser la de incorporar el producto (Terminal Móvil Inteligente) a una red de máquinas expendedoras de café con el propósito de despachar el producto de manera local; convirtiéndose en el objetivo principal de la pasantía. 43 CAPÍTULO 5. MARCO METODOLÓGICO Partiendo del objetivo general, se derivaron una serie de objetivos más específicos que permitieran dividir el proyecto en fases y posteriormente en actividades; tomando muy en cuenta los tiempos de ejecución para cada una. Adicionalmente, para verificar que el modelo de negocios y la aplicación seleccionada era la correcta, los directores de la empresa realizaron un estudio y una evaluación sobre la rentabilidad del mismo. El cronograma de actividades fue desarrollado y se verificó que los tiempos fuesen adecuados para el cumplimiento de cada actividad, llegando a la conclusión que el proyecto es factible desde el punto de vista técnico. Es importante destacar que se tomaron previsiones al momento de realizar el cronograma; de tal manera que paralelamente se podían realizar diferentes actividades incluso de diferentes fases en caso de ocurrir alguna contingencia. 2ª Fase: Evaluación y pruebas con los elementos tecnológicos básicos del Terminal Móvil Inteligente. Esta fase comienza con el estudio del concepto “Terminal Móvil Inteligente”, conociendo sus elementos básicos y su potencialidad. Luego se elaboró un primer diagrama de bloques de lo que debería contener la plataforma de pruebas; para posteriormente diseñar el “Terminal Móvil Inteligente CDMA” tomando en cuenta sus funciones, componentes, ideas, aplicaciones, etc. Luego de crear el diseño; se procedió a investigar, documentar y manipular el primer elemento tecnológico que conformaría la aplicación; el módulo Kyocera M200 y básicamente se siguieron estos pasos: • Investigación y documentación acerca del módulo. Donde el aspecto más importante a destacar fue que existen 2 protocolos distintos que manejan distintas funciones del módulo. Entre estos dos protocolos, se decidió por adoptar el más complejo ya que el mismo podía acceder o ejecutar casi todas las funciones disponibles. • Investigación y documentación de la tecnología asociada al módulo, para tener una mejor visión de las capacidades del mismo. • Configuración básica del módulo; siguiendo los pasos especificados en la Guía de Usuario del Módulo Kyocera M200, todo esto utilizando el software de soporte de Kyocera para programar el módulo M200 llamado PST (Phone Support Toolkit). 44 CAPÍTULO 5. MARCO METODOLÓGICO • Investigación y documentación de la herramienta de desarrollo y pruebas llamada MARS (Module Api Remote System). • Incorporación y activación de una línea telefónica móvil al módulo para poder realizar las pruebas con la aplicación de soporte. En este paso, fue necesario contactar a las operadoras móviles para agilizar el proceso. • Conexión del modulo de desarrollo de Kyocera a la interfaz de programación MARS por medio de comunicación serial. • Evaluar y probar el modulo M200 al ejecutar las funciones básicas del mismo como lo fueron: llamada de voz, envío y recepción de mensajes de texto, conexión a datos y pruebas con el AGPS entre otras. Durante este proceso se obtuvo información acerca de la interfaz visual y las funciones del software como por ejemplo la herramienta para decodificar mensajes y comandos. Una vez conocidas las funcionalidades básicas del módulo, se procedió a elaborar una lista de requerimientos y criterios de selección para la escogencia de los otros elementos tecnológicos básicos que conformarían el Terminal, así como las características que el prototipo debe tener. Entre los elementos más importantes se encontraba el nuevo microcontrolador y su compilador o software de programación; también se debía adquirir una tarjeta con el µC (Microcontrolador) y los periféricos para tener acceso al mismo. Esta lista puede ser observada con detalle en el Apéndice A. Consecutivamente se realizó una búsqueda de distintos dispositivos, tarjetas y combinaciones de productos para crear una lista detallada con sus características para luego escoger el producto que más se adaptara a los requerimientos técnicos y económicos del proyecto. Posteriormente se elaboraron rutinas para comunicarse directamente con el módulo M200 (sin utilizar el API o Application Programming Interface) utilizando un microcontrolador que posteriormente sería el cerebro del Terminal. Para lograr ello, se utilizó en primera instancia el microcontrolador Motorola HC908GP32 que había sido utilizado con anterioridad en proyectos más básicos dentro de la Universidad. Es importante destacar que se conocía de 45 CAPÍTULO 5. MARCO METODOLÓGICO manera previa que este µC no era el definitivo debido a limitaciones importantes con respecto a los requerimientos; pero el mismo podía ser programado en Lenguaje C, un lenguaje de programación flexible y que es utilizado en la mayoría de los compiladores. Esto significó una ventaja importante ya que se pudo empezar a trabajar sin haber adquirido el microcontrolador final o definitivo para el proyecto. Inmediatamente, se siguieron los pasos: • Estudio a fondo del protocolo de comunicación KMIP (Que es el que permite acceder a la mayoría de las funciones del M200). • Elaboración de las rutinas de codificación y decodificación de los mensajes para la comunicación entre el microcontrolador y el módulo. Estas rutinas comprenden procesos de chequeo de errores, codificación de caracteres especiales y elaboración de bloques de mensajes entre otros. Estas rutinas iban siendo verificadas o probadas en el simulador de la computadora y una vez listas se probaban de manera física conectando los dispositivos y utilizando un analizador de protocolos para observar el envío, la recepción y la respuesta de los mensajes. • Desarrollo del diagrama de flujo que debería contener el archivo principal o Main del programa incluyendo los procesos de interrupción, saltos a funciones, almacenamiento de datos en buffers etc. Seguidamente, el microcontrolador Motorola, llegó a su tope (máxima capacidad) por lo que se continuó trabajando con la fase III mientras llegaba el nuevo microcontrolador; esto con el fin de avanzar con el protocolo de comunicaciones de la Máquina Expendedora. Paralelamente y una vez adquirido el nuevo microcontrolador y la tarjeta de programación o evaluación del mismo; se procedió a investigar y documentar los aspectos más importantes acerca del nuevo chip y del nuevo compilador con el fin de familiarizarse con ellos. Es importante destacar que la forma más rápida de aprender a utilizar la herramienta EWARM es analizando e interactuando con los ejemplos que trae la aplicación. 46 CAPÍTULO 5. MARCO METODOLÓGICO Finalmente, se procedió de la misma manera para incluir las rutinas básicas al nuevo compilador. En este punto se siguieron los siguientes pasos: • Creación de las estructuras de datos para comunicarse entre el nuevo microcontrolador y el módulo M200. Se crearon estructuras de almacenamiento de comandos y estructuras de envío de comandos. Se comprobó que funcionaran de manera correcta junto con las viejas rutinas y en caso de requerirlo fueron adaptadas y optimizadas. • Diseño y elaboración de códigos o pequeños programas que emularán las funcionalidades del módulo; es decir, las actividades básicas y más importantes del radio modem Kyocera M200. Estas funcionalidades, estaban conformadas por un conjunto de distintos comandos y en diferente orden lo que resultó ser complejo; entre las funcionalidades creadas se encuentran: o Reset del Módulo o Envío de un SMS o Recepción de un SMS o Realizar un conexión de datos a un servidor o Adquirir los datos de posición mediante el AGPS o Envío de un mensaje a una cuenta de e-mail utilizando el servidor SMTP del la empresa • Pruebas y optimización de las funciones previamente creadas, con el fin de que funcionaran de manera robusta. • Construcción de funciones un poco más complejas (partiendo de las básicas) relacionadas con la recepción de un SMS con un código específico para poder realizar otras actividades. Entre las funciones más importantes construidas están las siguientes: o Recibir un SMS y responder un SMS o Recibir un SMS y conectarse a datos o Recibir un SMS y enviar un e-mail A partir de este momento se procedió a completar o seguir trabajando con la fase III; optimizando los códigos y corrigiendo los errores que surgían durante la incorporación de las funciones programadas del M200 a la siguiente fase. 47 CAPÍTULO 5. MARCO METODOLÓGICO Fase III: Implantación en el ambiente de prueba, de la aplicación comercial para las máquinas expendedoras de café. Esta fase corresponde básicamente a implementar la aplicación que se comunicará con las máquinas expendedoras; para ello fue necesario primero conocer la máquina con la que se iba a trabajar, su protocolo, especificaciones eléctricas, etc. La máquina expendedora utiliza el protocolo de comunicaciones MDB, el cual tuvo que ser investigado y analizado para poder programar la aplicación. A continuación se indican los pasos que conformaron esta fase: • Adquisición del estándar MDB/ICP; para ello se tuvo que acceder a las páginas Web de [NAMA, 2006] y [EVA, 2006] y seguir sus instrucciones para descargar el archivo. Durante las búsquedas, se logró leer archivos interesantes sobre el tema de negocios M2M. • Lectura, análisis y documentación de los aspectos más importantes del estándar. • Programación de las funciones del estándar en el microcontrolador (Motorola HC908GP32), estas funciones fueron probadas una por una para verificar que el software estuviese correcto. • Pruebas del protocolo MDB utilizando un emulador de máquina expendedora proporcionado por la empresa [Bonusdata, 2006] que es la fabricante del analizador de protocolo MDB y sus interfaces. • Optimización de las funciones mediante la corrección de errores. Para ello fueron utilizados los archivos generados por el analizador de protocolo MDB. • Simulación de una venta sencilla de manera manual al oprimir un botón (interrupción de µC) de la tarjeta de pruebas. Esta simulación se logró al utilizar el emulador previamente mencionado. • Simulación de la venta con la máquina expendedora real. • Corrección de errores o bugs. Estos errores ocurrían debido a que el programa maestro dentro de la máquina expendedora, no era 100% estricto con el estándar; por este 48 CAPÍTULO 5. MARCO METODOLÓGICO motivo se tuvo que se modificar algunos detalles en las funciones y se creó otra librearía. Una vez elaboradas todas las funciones necesarias y soportadas por la máquina expendedora de Global Vending C.A, modelo “Colibrí” (fabricada por [Necta, 2006]), se pasó a la fase 4 que se basa en incorporar este programa a las funcionalidades del modulo M200 para poco a poco ir creando y mejorando la aplicación final. 4ª Fase: Diseño de un prototipo en términos de hardware y software que reproduzca la plataforma de pruebas con el objetivo de conformar junto al radio modem el Terminal Móvil Inteligente. Esta fase abarca el diseño del prototipo de la primera aplicación comercial y se puede dividir en dos componentes que son: software y hardware. El componente de software esta conformado básicamente por el programa que controlará a la máquina expendedora; mientras que el componente de hardware trata de los elementos y procedimientos para crear físicamente el dispositivo llamado “Terminal Móvil inteligente”. A continuación se describen los pasos a seguir en el desarrollo del componente de software: • Incorporación de las librerías de las funciones de la fase 3 al nuevo microcontrolador. En este punto fue necesario modificar el nombre de algunas instrucciones para que fueran reconocidas por el nuevo compilador. • Modificación del diagrama de flujo para optimizarlo para que la aplicación de la máquina expendedora fuera atendida como una interrupción. Esto fue necesario ya que la máquina expendedora funciona como un dispositivo maestro y encuesta continuamente al microcontrolador que resulta un esclavo inteligente, ya que puede realizar otras actividades aparte de responder al VMC. Al colocar el programa de la máquina expendedora como una interrupción, se libera capacidad o tiempo de procesamiento del µC. 49 CAPÍTULO 5. MARCO METODOLÓGICO • Interconexión entre la función SMS del módulo y el despacho del producto. Este punto corresponde a la interconexión entre la fase II y III de manera correcta; permitiendo no solo controlar la venta del producto sino llevar un conteo o registro de las ventas. • Pruebas del software completo utilizando el emulador de máquina expendedora de Bonusdata. Esta prueba incluye el envío real de un SMS y la simulación de la venta. • Elaboración de los requerimientos de la aplicación a ser colocada en el servidor. Esta aplicación será creada en otro departamento de la empresa y su propósito es el de mejorar el servicio a ofrecer a los usuarios. • Pruebas del software con la arquitectura cliente servidor completa. Este punto contiene también la optimización de ambos programas, el cliente (Terminal Móvil Inteligente) y el servidor (aplicación en red). El desarrollo del componente de hardware se resume de la siguiente manera en varios pasos: • Creación de una tarjeta circuital sencilla para conectar y aislar eléctricamente el puerto serial del microcontrolador y el puerto serial de la máquina expendedora (comunicación MDB). • Pruebas sobre la tarjeta creada para verificar que la interfaz funcione correctamente. • Medición y documentación de las dimensiones de las distintas tarjetas. • Búsqueda de una caja resistente y de buena calidad que funcione como carcasa. • Diseño y ubicación de las tarjetas dentro de la caja. • Diseño y ubicación de los orificios para los conectores, tornillos, etc. (modificaciones a la caja metálica). • Incorporación de los elementos tecnológicos a la caja. En este punto, se colocaron materiales aislantes para evitar accidentes. Una vez finalizado el hardware, se realizó la prueba final del proyecto conectando el prototipo de Terminal Móvil Inteligente a una máquina expendedora de café y realizando la compra de un café mediante un SMS. 50 CAPÍTULO 5. MARCO METODOLÓGICO 5.5. TÉCNICAS E INSTRUMENTOS DE RECOLECCIÓN DE DATOS Las técnicas de recolección de datos se componen de dos elementos básicos: los instrumentos y los procedimientos. Los instrumentos son los medios materiales a través de los cuales se hace posible la obtención y archivo de la información requerida para la investigación. En esta etapa se nombrará cada uno de los instrumentos diseñados y/o utilizados; para una mejor descripción de los mismos ver el Apéndice B. a. Kit de Desarrollo de Módulo de Kyocera o MDK (Module Developer Kit). b. Radio Modem M200 de Kyocera c. Herramienta PST d. Herramienta MARS e. Tarjeta de Evaluación y Desarrollo Olimex STR-P711 f. IAR Embedded Workbench for ARM (EWARM). g. Emulador Vending Machine Controller con protocolo MDB. Bonusdata. h. Máquina Expendedora de Café “Colibrí” i. Analizador de protocolo TELENEX 8800 Turbo j. International Data Science INC. Blue Box 100 k. Analizador de Protocolos Seriales de Máquinas Expendedoras. Bonusdata. l. Cables e Interfaces m. Multímetro digital “Circuitmate Beckman DM 73” n. Computadoras con Sistema operativos Windows XP y Windows 98. 51 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS En este capítulo se cubrirá lo referente a la estructura de la plataforma de desarrollo para el Terminal Móvil Inteligente y sus distintas aplicaciones. La plataforma tecnológica, abarca las herramientas para desplegar aplicaciones en el área de M2M al combinar distintos protocolos de comunicación serial y distintas funcionalidades del módulo M200 de Kyocera Wireless. 6.1. AMBIENTE DE DESARROLLO La plataforma fue desarrollada con el banco de pruebas EWARM de la empresa “IAR System”, funcionando bajo el sistema Operativo Windows XP. Adicionalmente, para la programación y las pruebas en físico de las funciones y rutinas, se utilizó la tarjeta de evaluación Olimex STR-P711 (la cual es compatible con el lenguaje de Programación JTAG y por ende compatible con la herramienta EWARM), la herramienta MARS, la herramienta Hyperterminal y los analizadores de protocolo. El desarrollo de la plataforma tecnológica abarca la lectura y análisis de muchas guías de usuario, documentos, presentaciones y muchas pruebas con distintos equipos para garantizar su correcto funcionamiento. En los siguientes puntos, se describirá de manera mas específica que elementos contiene la plataforma. 6.2. MÓDULO KYOCERA M200 6.2.1. DESCRIPCIÓN El módulo CDMA de Kyocera fue concebido para empresas que desean diseñar, construir y vender nuevos productos con esta tecnología. El módulo es apropiado para aplicaciones de negocios como telemetría remota, puntos de venta, compras inalámbricas (Máquinas expendedoras), supervisión y monitoreo de vehículos, sin dejar de lado soluciones de voz y datos inalámbricos. El módulo ofrece los beneficios de la tecnología CDMA sin la necesidad 52 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS de construir un teléfono desde su inicio ya que éste se encarga de la parte de radio frecuencia de la aplicación; sin embargo, es necesario conectar una serie de dispositivos externos a éste para manejarlo. El módulo posee características importantes como tres modos de operación, soporta AMPS 800MHz, CDMA 800MHz y CDMA 1900MHz, posee una memoria no volátil, un A-GPS (Assisted Global Positioning System) integrado, capacidad para realizar y atender llamadas de voz y datos, envío y recepción de mensajes de textos o SMS, conexión por sockets y más. Las figuras presentadas a continuación muestran la arquitectura básica interna del modulo y la forma externa del mismo. Figura 6.1. Arquitectura básica interna del modulo Figura 6.2. Módulo M200 de Kyocera. Fuente M200 de Kyocera. Fuente Kyocera Wireless Kyocera Wireless. El modulo se conecta al sistema remoto a través de un conector Molex (board to board) modelo 54230:55055 como los que se muestran en las figuras 6.3 y 6.4. La interfaz soporta conexiones físicas para alimentación, 2 puertos seriales RS232 (UART 1 y UART 2), micrófono, corneta y auricular. El módulo es alimentado por una fuente externa de 3,6 – 4,2 voltios que debe ser capaz de proveer una corriente promedio de 1,1 Amp y soportar picos de corriente de 1,5 Amp. 53 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS Figura 6.3. Conector Macho 54230-0578 para el Figura 6.4. Conector Hembra 55055-0578 para el M200. Fuente Molex M200. Fuente Molex El UART 1 provee la comunicación para ofrecer servicios de datos asíncronos/fax/paquete especificados bajo las normas del estándar TIA/EIA/IS-707-A. Este puerto también es utilizado en conjunto a herramientas de configuración y provisión. El UART 2 está reservado exclusivamente para ser utilizado con KMIP (Kyocera Multiplexing Interface Protocol), por esta vía, el sistema remoto puede ejecutar acciones como emulación de teclado, originar y atender llamadas de voz, llamadas de emergencia, envío y recepción de SMS, adquisición de puntos del GPS, controlar ciertos modos y características del módulo y recibir información de estatus de celular. El protocolo de interfaz de software es el antes mencionado KMIP; el cual presenta una estructura muy compleja e interesante que incluye parámetros, codificación, decodificación, chequeo de errores y más, que pueden ser estudiados en detalle en la Guía de Usuario y Guía de Referencia del M200. Es este el protocolo que se utilizó para comunicar el sistema remoto del proyecto con el módulo para de esta manera crear la aplicación final. 6.2.2. PROTOCOLO DE COMUNICACIÓN KMIP Comenzaremos con la explicación sobre la comunicación que debe existir entre el sistema remoto y el módulo ya que sin ella es imposible desarrollar las funcionalidades. 54 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS El UART 2 del módulo Kyocera es un puerto de comunicación serial que funciona con un reloj de 38,4 Kbps que no puede ser modificado; por este canal son transportados los mensajes que permiten al Microcontrolador comunicarse y controlar el radio modem para realizar distintas acciones. El KMIP es un protocolo propietario de Kyocera Wireless, diseñado para enviar mensajes multiplexados (mensajes SYS_WAKE y mensajes con el protocolo de diagnóstico). Está diseñado para transmisión de entrada y salida serial con un mecanismo de codificación parecido al HDLC (High Level Data Link Control). Es un protocolo de tipo Half-duplex donde los mensajes y comandos son multiplexados en distintos canales. Cada marco de KMIP contiene un caracter de encabezado o header y un caracter de cola o “trailer”, con la información de capa superior intercalada entre ellos. El header contiene la información del canal cuyo objetivo es categorizar los mensajes de acuerdo a su tipo y viene descrito en número hexadecimal tal como indica la siguiente tabla. Nombre del canal Carácter Canal “Diagnostic Protocol” 0x01 Canal “Sockets” 0x03 Canal “SYS_WAKE” 0x04 Canal “Data Service” 0x06 Tabla 6.1. Canales multiplexados en protocolo KMIP. El caracter de cola, siempre es el mismo y corresponde al valor hexadecimal 0x8E. Adicionalmente, la codificación y decodificación utiliza el carácter de escape 0x8D con el valor de escape 0x20; de tal manera que cuando la data contiene un carácter igual al trailer o al carácter de escape, este es cambiado por el carácter de escape y un segundo carácter que ocurre al realizar el XOR entre el carácter original y el carácter de escape de complemento 0x20. Para finalizar el marco KMIP, es importante destacar que no se pueden enviar mensajes con una longitud mayor a 42 caracteres; en caso de existir estos mensajes, los mismos son 55 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS divididos en mensajes de 42 caracteres con header y trailer y es responsabilidad de la capa de transporte del sistema remoto, reagrupar y analizar correctamente los mensajes. El protocolo de Diagnóstico, es el núcleo de la interfase con la que el módulo y el sistema remoto realmente se comunican. Es un protocolo que se detiene a esperar el siguiente mensaje antes de generar una respuesta (Stop-and-Wait) con marcos parecidos al HDLC cuyos campos incluyen la información, un CRC (Cyclic Redundancy Check) y un trailer, también es importante destacar que el módulo sólo envía caracteres al sistema remoto únicamente después de haber recibido un mensaje desde el sistema remoto. Por lo general, el campo de información contiene un primer carácter que indica el tipo de comando y una serie de caracteres que conforman la información; pero existe un comando específico (el número 75) que corresponde a comandos diagnósticos extendidos; donde existen dos caracteres adicionales al primero para indicar el tipo de comando extendido y posterior a ellos la información. Al igual que el formato KMIP, el protocolo de diagnóstico también codifica los caracteres de data que son iguales al trailer o bandera final cuyo valor es el 0x7E ; para ello utiliza el carácter de escape 0x7D y el valor del escape sería el mismo 0x20. El CRC es un campo para chequear errores en el mensaje luego de la transmisión; el mismo corresponde al generador polinomial del estándar CRC-CCITT-16 Así como el protocolo de diagnóstico, existen mensajes en otros canales que poseen otras funciones y que presentan una estructura mas sencilla y rígida: el mensaje indicador de servicio de datos (data service indicator) y el mensaje SYS_WAKE. El data service indicator, permite conocer si la llamada de datos está activa o no, mientras que el mensaje SYS_WAKE es el único mensaje que puede ser iniciado desde el módulo M200 y puede ser interpretado como una interrupción cuya única función es indicar al sistema remoto que ha cambiado cualquier campo de estado del módulo M200; en respuesta a esta interrupción se debe enviar un mensaje para conocer el estado del teléfono y poder tomar alguna decisión con respecto a ello. 56 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS El módulo utiliza una organización de final pequeño o Little Endian la cual es apropiada ya que se hace muy intuitivo el almacenamiento de los mensajes o comandos en sus respectivas estructuras de dato. A continuación se muestra la forma para Codificar y Decodificar los mensajes paso por paso: a) Codificación de KMIP - Creando el Paquete del Protocolo de Diagnóstico 1. De acuerdo a los comandos y/o subcomandos a codificar (Ver Guía de Referencia de Kyocera), se colocan los caracteres apropiados. 2. Se calcula el CRC de los caracteres utilizados en 1. 3. Se añaden los dos caracteres del CRC al final del conjunto de caracteres. 4. Se realiza el escape de cualquier byte que posee los valores 0x7E y 0x7D. (Se realiza un XOR entre el byte anterior y 0x20 y se inserta luego de insertar el carácter de escape 0x7D). i. 0x7E es reemplazado por 0x7D 0x5E ii. 0x7D es reemplazado por 0x7D 0x5D 5. Se le añade el diagnositc trailer byte 0x7E - Creando el Paquete KMIP 1. Se toma el paquete de diagnóstico y se realiza el escape de cualquier byte que posee los valores 0x8E y 0x8D. (Se realiza un XOR entre el byte anterior y 0x20 y se inserta luego de insertar el carácter de escape 0x8D). i. 0x8E es reemplazado por 0x8D 0xAE ii. 0x8D es reemplazado por 0x8D 0xAD 2. Se divide cualquier comando en piezas o submensajes de 42 bytes 3. Se añade al inicio de cada submensaje el KMIP header 0x01 4. Se añade al final de cada submensaje el KMIP trailer 0x8E b) Decodificación KMIP - Decodificando el KMIP 57 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS 1. Se eliminan los caracteres KMIP header 2. Se eliminan los caracteres KMIP trailer 3. Se concatenan los pedazos de comando o submensajes. 4. Se recuperan los caracteres a los que se les hizo el escape. i. 0x8D 0xAD es reemplazado por 0x8D ii. 0x8D 0xAE es reemplazado por 0x8E - Decodificando el protocolo de diagnóstico 1. Se recuperan los caracteres a los que se les hizo el escape. i. 0x7D 0x5D es reemplazado por 0x7D ii. 0x7D 0x5E es reemplazado por 0x7E 2. Se remueve el diagnostic trailer 0x7E 3. Se calcula de nuevo el CRC sin incluir los últimos dos caracteres (correspondientes al CRC del mensaje actual) 4. Se comparan ambos CRC; si son iguales, se eliminan los dos últimos caracteres al mensaje; de otra forma, se desecha el paquete o mensaje. 5. Se almacenan en las estructuras de datos de acuerdo a la Guía de Referencia M200 de Kyocera. Esta serie de pasos constituyeron las primeras y más importantes rutinas que fueron programadas y probadas hasta llegar a ser perfectas para no cometer ningún error de protocolo. Estas funciones son fundamentales para poder comunicarse bajo el mismo lenguaje entre el sistema remoto y el modulo M200. Este preámbulo nos permite pasar a describir de manera mas precisa todas y cada una de las funciones implementadas en la plataforma de pruebas. 58 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS 6.3. RUTINAS Y FUNCIONES BÁSICAS Como se menciona en el párrafo anterior, se procederá a nombrar y explicar las funciones o rutinas básicas para lograr desplegar el protocolo KMIP en su más bajo nivel. Este conjunto de funciones reproducen el comportamiento descrito en la sección anterior y se pueden dividir en: • Función CRC Básicamente consta de una matriz y una función que permite calcular el byte de chequeo de redundancia cíclica o Cyclic Redundance Check del mensaje. • Bloque de funciones Escape_Unescape Contiene 4 funciones básicas para simular el proceso de escaping y unescaping del protocolo diagnóstico y del protocolo KMIP. Estas cuatro funciones son las siguientes: - u8 Escape_Diag (u8 *Entra, u8 *Sale, short Length); rutina que reemplaza los caracteres prohibidos por su valor correspondiente de acuerdo al proceso de escaping del protocolo Diagnóstico. Entra por parámetro el mensaje a modificar (apuntador *Entra) con su tamaño (Length), retorna el parámetro del mensaje modificado (*Sale) y se retorna por parámetro el nuevo tamaño del mensaje. - u8 Escape_Kmip (u8 *Entra, u8 *Sale, short Length); rutina que reemplaza los caracteres prohibidos por su valor correspondiente de acuerdo al proceso de escaping del protocolo KMIP. Entra por parámetro el mensaje a modificar (apuntador *Entra) con su tamaño (Length), retorna el parámetro del mensaje modificado (*Sale) y se retorna por parámetro el nuevo tamaño del mensaje. - u8 Unescape_Diag (u8 *Entra, u8 *Sale, short Length); rutina que reemplaza los el conjunto de caracteres con escaping por su valor correspondiente de acuerdo al proceso de unescaping del protocolo Diagnóstico. Entra por parámetro el mensaje a modificar (apuntador *Entra) con su tamaño (Length), retorna el parámetro del mensaje modificado (*Sale) y se retorna por parámetro el nuevo tamaño del mensaje. - u8 Unescape_Kmip (u8 *Entra, u8 *Sale, short Length); rutina que reemplaza los el conjunto de caracteres con escaping por su valor correspondiente de acuerdo al 59 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS proceso de unescaping del protocolo KMIP. Entra por parámetro el mensaje a modificar (apuntador *Entra) con su tamaño (Length), retorna el parámetro del mensaje modificado (*Sale) y se retorna por parámetro el nuevo tamaño del mensaje. • Bloque de funciones Encoding_Decoding Contiene una serie de funciones que utilizan rutinas anteriores para lograr codificar y decodificar de manera completa los mensajes. - void Create_Diag_Pack (u8 *Entra, u8 *Sale, short *Length); función que calcula el CRC del mensaje, modifica los caracteres prohibidos con la función Escape_Diag() y añade el trailer al mensaje y retorna el nuevo tamaño. - void Create_Kmip_Pack(u8 *Entra,u8 *Memoria, short *Length, u8 Channel); función que modifica los caracteres prohibidos con la función Escape_KMIP(), convierte los mensajes largos en paquetes de 42 bytes, añade los headers y trailers KMIP a los paquetes y retorna el nuevo tamaño. - void Encoding(u8 *Entra,u8 *Sale, short *Length, u8 Channel); función que agrupa las dos funciones anteriores en una sola. - void Decode_Kmip_Pack(u8 *Entra,u8 *Memoria, short *Length, u8 Channel); función que reagrupa los paquetes de 42 bytes en el mensaje original; eliminando los headers y trailer KMIP para posteriormente realizar la restauración del mensaje con la función Unescape_Kmip(). También devuelve el nuevo tamaño del mensaje. - u8 Decode_Diag_Pack(u8 *Entra,u8 *Sale, short *Length); función que realiza el Unescape_Diag() del mensaje y verifica que el CRC este correcto o no; este resultado se retorna al igual que el nuevo tamaño del mensaje. - u8 Decoding(u8 *Entra,u8 *Sale, short *Length, u8 *Channel); Función que combina las dos funciones anteriores y además permite conocer el canal del mensaje o si el paquete está dañado colocando el resultado en una variable. 60 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS • Bloque de funciones CopyBuffer Contiene un trío de funciones que se encargan de administrar el buffer de entrada, así como de copiar bloques de datos a segmentos específicos en la memoria del programa. - u8 *MegaBufferCopy(u8 *dest, short *Length); función que administra los bytes de entrada en el puerto serial y los transporta a otro espacio de memoria para que sean analizados. - u8 *stringcopy (u8 *dest, const u8 *src, short length); función que permite copiar o mover los datos de un bloque de memoria a otro bloque de memoria. - u8 *stringcopyExt (u8 *dest, const u8 *src, short length); realiza la misma función que la rutina anterior pero añade unos bytes para las mensajes extendidos. • Bloque de funciones Cod_Decod Contiene una serie de rutinas encargadas de la interfaz entre el puerto serial y la memoria del microcontrolador. - void Decodificar_Data_M200(u8 *Bandera, u8 *Canal, u8 *ArregloMemoria, u8 *ArregloSale); función que obtiene los datos del buffer mediante la función MegaBufferCopy() y los decodifica con la función Decoding(). Además restaura los apuntadores del buffer circular para que se vuelva a utilizar el buffer. - void Codif_Data_M200(u8 Canal, u8 Comando, short Subcomando, u8 *ArregloMemoria, u8 *ArregloSale); función que de acuerdo a los parámetros, construye el mensaje de salida a enviar al modulo M200. Esta función contiene una serie de rutinas que se encargan de construir las estructuras específicas de los mensajes de salida. • Bloque de Funciones Analizar_Data_M200 Consta básicamente de una función importante que contiene gran cantidad de subrutinas. Esta función es la: u8 Analizar_Data_M200(u8 *Flag, u8 *Channel, u8 *Comando, short *Subcomando, u8 *Arreglo); y su función es analizar los datos codificados y con la ayuda de las subrutinas colocar los mensajes en sus respectivas estructuras para su posterior uso. También contiene una bandera que indica si hay datos nuevos y a cual canal corresponde. 61 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS Con este conjunto de bloques de funciones, se simulan los procesos de comunicación entre el sistema remoto y el módulo M200. 6.4. FUNCIONALIDADES DEL MODULO Ahora que se conocen las funciones básicas de la comunicación, se procederá a describir los microprogramas que emulan las distintas funcionalidades del módulo. Estos microprogramas son independientes entre ellos, pero no se pueden ejecutar dos o más de ellos de manera simultánea al no poseer un sistema operativo robusto para realizarlo. Las funcionalidades implementadas pueden ser ligeramente modificadas para adaptarse a ciertos requerimientos; estas funcionalidades son las siguientes: • void Extended_State_Status(u8 *Canal, u8 *Comando, short *Subcomando); esta rutina es considerada una funcionalidad por su constante uso ya que la mayoría de las funciones que realiza el módulo M200 involucra el uso de manera repetida de este comando. También es utilizada como respuesta a una interrupción SYS_Wake. • void Reset(u8 *funcion, u8 *instruccion, u8 *Canal, u8 *Comando); esta funcionalidad permite resetear el modulo M200 en casi cualquier momento. Involucra procesos de cambio de modos del radio modem. • void RecibirSMS(u8 *funcion, u8 *instruccion, u8 *Canal, u8 *Comando, short *Subcomando); función que permite recibir un SMS que ha llegado al M200, incluyendo procesos de envío y verificación de Acknwoledge. También permite analizar el texto que proviene del mensaje de texto para realizar distintas acciones como cambio de variables, iniciar otra función, etc. • void EnviarSMS(u8 *funcion, u8 *instruccion, u8 *Canal, u8 *Comando, short *Subcomando); función que permite enviar un SMS con cualquier texto. Las estructuras deben ser modificadas para cambiar los tamaños y opciones de los distintos mensajes. • void HitServer(u8 *funcion, u8 *instruccion, u8 *Canal, u8 *Comando, short *Subcomando); esta función permite realizar una llamada de datos y realizar una 62 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS conexión o hit a un servidor, adicionalmente permite adquirir la respuesta que este servidor le regresa. Debe ser optimizada para adquirir respuestas de gran tamaño de bytes. • void EnviarEmail(u8 *funcion, u8 *instruccion, u8 *Canal, u8 *Comando, short *Subcomando); esta función permite enviar un e-mail a una persona con cuenta de email utilizando la aplicación SMTP (actualmente en el servidor de la Empresa). Para modificar el texto y los parámetros es necesario modificar algunas estructuras de datos. • void AdquirirGPS(u8 *funcion, u8 *instruccion, u8 *Canal, u8 *Comando, short *Subcomando); función sencilla para adquirir los datos de posición global, involucra una llamada de datos a un servidor específico de GPS. Esta función es muy básica ya que sólo permite adquirir un punto por sesión y no de manera continua. 6.5. DESCRIPCIÓN DEL PROGRAMA PRINCIPAL DE LA PLATAFORMA. En esta parte se pretende explicar el programa principal que maneja la plataforma el cual permite desarrollar las distintas aplicaciones. Este programa se divide en básicamente 2 subprogramas: la Interrupción y el Main. • El programa en la Interrupción Es un programa que maneja los tiempos y la forma en cómo se archivan los caracteres y bloques de caracteres que llegan en el pin Rx del microcontrolador. En pocas palabras, se encarga de mover los bytes que van llegando a un espacio de memoria asignado a través de un apuntador. Asimismo, en esta interrupción se pre-decodifica los datos con la finalidad de liberar tiempo de procesamiento al programa principal o Main y activa la variable o bandera que le indica al programa que hay datos para ser analizados. • El programa en el Main Este programa contiene lo elementos fundamentales que enlazan las distintas rutinas, acciones, interrupciones y microprogramas de manera sencilla y ordenada. Abarca la declaración de estructuras, variables y constantes, la declaración de todas las funciones incluidas, la configuración de todos los periféricos a utilizar durante la aplicación hasta el 63 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS controlador principal o esqueleto de la aplicación, la inicialización del programa y el subprograma que controla y maneja la aplicación. El programa que controla la aplicación funciona de la siguiente manera: - Si existe data para ser analizada, se analiza y se archiva el mensaje en su respectiva estructura datos; para ello utiliza una función llamada u8 Analizar_Data_M200(u8 *Flag, u8 *Channel, u8 *Comando, short *Subcomando, u8 *Arreglo). - Si existe una data válida, se procede a ejecutar la instrucción de la función que actualmente se realiza, tomando en cuenta la instrucción que debe realizar y los subcomandos que han llegado o deben salir. Todo ello lo realiza la función void Funciones_M200(u8 *funcion, u8 *instruccion, u8 *Canal, u8 *Comando, short *Subcomando). - Si existe data por enviar, se analiza si hay que codificarla primero para posteriormente enviarla por el pin Tx en forma de bloques. Para codificar la data se utiliza la función void Codif_Data_M200(u8 Canal, u8 Comando, short Subcomando, u8 *Arreglo Memoria, u8 *ArregloSale); mientras que para enviar el mensaje, se utiliza una función predefinida por el compilador. 6.6. DIAGRAMAS DE FLUJO DEL PROGRAMA PRINCIPAL DE LA PLATAFORMA. A continuación se muestran los diagramas de flujos del esquema principal y de las funciones más importantes que aparecen en ellos (color Azul claro). Es importante destacar que existen muchas más funciones en color azul oscuro que pueden ser vistas en los apéndices ya que son rutinas más complejas y largas. 64 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS • Diagrama del Main Inicio Declaración de Variables Configuracín de Periféricos Inicialización de Variables Codificar Data Si no Hay Data para Analizar? Hay Data para Procesar? Si Codificar la Data? no Si Analizar Data Si Hay Data para Enviar? no Ejecutar Funcion Enviar Mensaje Figura 6.5. Diagrama de Flujo Simplificado del programa en el Main - Configuración de Periféricos Inicio Configuración Reset and Clock Control Unit Configuración Real Time Clock Configuración Timer Configuración UART`s Configuración General Purpose I/O Pins Configuración External Interrupts Configuración Enhaced Interrupt Controller Fin Figura 6.6. Diagrama de Flujo del Segmento Configuración 65 CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS - Analizar Data No hay Data Data Switch Tipo de Msg Inicio Data M200 Procesar Data = True Fin Data + SYS_Wake SYS_Wake SYS_Wake Flag = True Msg Dañado Figura 6.7. Diagrama de Flujo del Segmento Analizar Data - Ejecutar Función Inicio Switch Función Respuesta SYS_Wake Ext. State Status Fin Reset Reset() Recibir SMS RecibirSMS() Enviar SMS EnviarSMS() Adquirir data GPS AdquirirGPS() Enviar Email Email() Hit Server HitServer() Figura 6.8. Diagrama de Flujo del Segmento Ejecutar Función - Codificar Data Inicio Switch Tipo Msg Codificar Comandos y Subcomandos Data Canal 1 Codificar Comandos Sockets Data Canal 3 Figura 6.9. Diagrama de Flujo del Segmento Codificar Data 66 Fin CAPÍTULO 6. PLATAFORMA DE DESARROLLO Y PRUEBAS • Diagrama de la Interrupción Inicio Si Timeout True Buffer con Data Si Hay mas Datos? Almacenar 1 dato no Si no Almacenar 8 datos Buffer Rx Medio lleno? Restaurar contador Timeout no Timeout True Buffer Rx vacío Si Decodificar no Si Buffer Ram lleno? no Fin Figura 6.10. Diagrama de Flujo del Programa en la Interrupción del UART - Decodificar Inicio apuntador lectura menor ( < ) apuntador escritura no Restaurar apuntadores Escritura y Lectura yes Decoding() Figura 6.11. Diagrama de Flujo del Segmento Decodificar 67 Fin CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA El capítulo presente describe todas las características del prototipo desarrollado durante el proyecto de pasantía; este prototipo abarca dos segmentos fundamentales que son el terminal desde el punto de vista de Hardware y la aplicación para las máquinas expendedoras que se encuentra incluida dentro del mismo. 7.1. TERMINAL MÓVIL INTELIGENTE DE DINAMA El Terminal Móvil Inteligente (TMI) es un equipo basado en la tecnología de comunicaciones inalámbricas CDMA que permite implementar servicios de voz y de datos sobre una plataforma tecnológica con la finalidad de crear nuevas soluciones y oportunidades de negocios en distintas áreas de las telecomunicaciones. En la siguiente figura se puede observar el ambiente y los elementos con los que interactúa el Terminal Móvil inteligente para su correcta operación. Figura 7.1. Modo de operación del Terminal Móvil inteligente 68 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA Como se pudo apreciar en la figura anterior; el Terminal Móvil Inteligente es un dispositivo electrónico que está conectado a 4 elementos fundamentales como lo son: 1, Uno o varios dispositivos a controlar que denominamos como equipos remotos. 2, Un conjunto de Satélites de posicionamiento Global. 3, Una red de comunicaciones telefónicas; en este caso CDMA. Implícitamente está conectado a los teléfonos celulares y a “Internet” gracias a las operadoras. 4, Equipos como computadoras o servidores que se encuentran del otro lado de la Red. En esta categoría también se encuentran otros teléfonos móviles. Principalmente, el TMI permite crear el enlace entre estos elementos con la finalidad de crear aplicaciones y ofrecer distintos servicios a los usuarios. Desde el punto de vista del funcionamiento, se pueden observar de manera implícita 2 sentidos de comunicación como los son el sentido TMI -> Servidor y el sentido Servidor -> TMI, que se resumen en acciones distintas. El funcionamiento básico o más común es el de extraer datos de los equipos remotos o satélites para ser enviados a Servidores que computen y analicen la data y puedan generar una respuesta; sin embargo, en el otro sentido, se puede obligar al TMI a ejecutar una acción luego de haber recibido una orden; en este caso la transferencia de datos es en el sentido contrario, incluso podría venir de un terminal móvil celular que interactúa con algún servidor dentro de la red. 7.1.2. ELEMENTOS QUE LO CONFORMAN Y DIAGRAMA DE BLOQUES Anteriormente se mostró el ambiente donde se desenvuelve el equipo; ahora se especifica las unidades de las que está compuesto el TMI y cómo es que él mismo puede tener conexión a tantos elementos de manera simultánea. 69 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA Figura 7.2. Elementos del Terminal Móvil inteligente La figura anterior ilustra de manera general los componentes que debe contener TMI en su versión final; a continuación se describen cada uno de ellos de manera breve: • El Radio Modem o módulo M200 que se encarga de realizar el enlace con la red de la operadora (esta a su vez está conectada a la Internet) • El Hardware que está dividido en un Microcontrolador o cerebro que controla las funciones de todos los periféricos incluyendo al mismo modem de radio frecuencia, la memoria, encargada de almacenar datos e incluso el programa de la aplicación a ejecutar y los circuitos que permiten la conexión física de los demás componentes electrónicos. • El propio Hardware presenta entradas que son básicamente por donde ingresan datos analógicos y seriales para ser procesados; y salidas que funcionan con el propósito de controlar otros dispositivos. Asimismo se encuentran los puertos que no son más que interfaces eléctricas para comunicación entre el terminal TMI y otros dispositivos que poseen un mayor nivel de inteligencia y donde es necesario implementar un protocolo de comunicación. • El Software básicamente abarca las herramientas para manejar el módulo RF y la aplicación que ejecuta actualmente el TMI; es importante destacar que en el futuro se 70 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA espera que exista un sistema operativo que pueda optimizar las tareas e incluso que permita la actualización de software de manera remota. • El Firmware OTA (en desarrollo) que como dijimos anteriormente permitirá la actualización de las aplicaciones y datos de manera remota; de acuerdo a los servicios y requerimientos que se necesiten en el momento. 7.1.3. ESPECIFICACIONES Luego de conocer los elementos fundamentes que conforman al TMI, se consideran a continuación las características que actualmente presenta el Terminal Móvil Inteligente: Características Básicas: • Tecnología CDMA2000 1X (153.6 Kbps Max.) • A-GPS integrado • Puerto serial RS232 • Puerto Serial Opto acoplado (Máquinas expendedoras protocolo MDB) • Conector para Alimentación, (Requiere de 4,2V y 1,3 Amp min. en la entrada) • Entradas y salidas digitales y analógicas (Salidas a Actuadores) • Microprocesador integrado • Memoria EEPROM integrada. • Protocolos de Internet: TCP/IP, PPP • Firmware actualizable (en desarrollo). • Arquitectura Cliente Servidor. Especificaciones más importantes de sus componentes: a) Radio Módem Kyocera M200: - Tecnología CDMA2000 1X. - Sistema de Posicionamiento Global integrado (A-GPS) - 2 puertos de comunicación Serial. UART1 (comandos AT y datos), UART2 (comandos KMIP). - Configuración Remota Over The Air (No disponible en Venezuela). 71 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA b) Hardware: - Microcontrolador: STR711FR2T6 de STMicroelectronics. - Procesador: Arquitectura ARM7TDMI 16/32bit RISC - Memoria Programable Flash o Eeprom programable de 256 KB - Memora Ram de 64 KB; expandidle con memorias SD. - Entradas: 4 digitales TTL y 2 Analógicas. - Salidas: 4 Digitales. - Puertos: 2 puertos RS-232 (DB9 + Opto acoplado) + 1 USB. c) Software: - Firmware actualizable (En desarrollo). - Configuración de parámetros de acuerdo a la Aplicación. - Capacidad para realizar Spoofing (Técnica para optimizar el funcionamiento en comunicaciones de datos) 7.1.4. APLICACIONES DEL TERMINAL MÓVIL INTELIGENTE Cómo se ha nombrado en numerosas ocasiones, existen numerosas aplicaciones a las que puede ser destinado el producto; en esta ocasión se nombran cada una de ellas: • Llamadas de voz y datos (Fax, Internet, SMS). • Puntos de venta y cajeros automáticos. • Telemetría y control de equipos remotos (medición y supervisión. • Localización de vehículos por Sistemas de posicionamiento Global. • Monitoreo y rastreo activo o en tiempo real. • Telemedicina. • Máquinas Expendedoras. • Otras aplicaciones M2M (dependen de la creatividad e ideas de los distintos clientes) A continuación se muestran dos figuras acerca de los mercados en donde puede ser introducido el TMI y sus proyecciones para el año 2010; dejando en claro que existen infinidades de clientes y aplicaciones para este proyecto. 72 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA Figura 7.3. Aplicaciones o Servicios Asociados al módulo M200. Fuente Kyocera Wireless. Figura 7.4. Proyección de Mercado M2M en el 2010. Fuentes ABI Research, Frost & Sullivan, Kyocera 73 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA 7.1.5. ARQUITECTURA DEL TERMINAL MÓVIL INTELIGENTE La arquitectura está basada en un ambiente Cliente-Servidor. Este modelo, es una forma de dividir y especializar programas y equipos de cómputo a fin de que la tarea que cada uno de ellos realizada se efectúe con la mayor eficiencia, y permita simplificarlas. En la funcionalidad de un programa distribuido se pueden distinguir 3 capas o niveles: Manejador de Base de Datos (Nivel de almacenamiento), Procesador de aplicaciones o reglas del negocio (Nivel lógico). Interfaz del usuario (Nivel de presentación). Las ventajas de este modelo son básicamente las siguientes: - El servidor no necesita tanta potencia de procesamiento, parte del proceso se reparte con los clientes. - Se reduce el tráfico de red considerablemente. Idealmente, el cliente se conecta al servidor cuando es estrictamente necesario, obtiene los datos que necesita y cierra la conexión dejando la red libre para otra conexión. 7.2. APLICACIÓN PARA MÁQUINA EXPENDEDORA DE CAFÉ Como primer proyecto que servirá de avanzada, el desarrollo del Terminal Móvil Inteligente brindará el medio de comunicación inalámbrico eficiente y la capacidad de procesamiento adicional a una red de máquinas expendedoras de café, con el principal objetivo de despachar un café de manera local luego de que el usuario haya enviado un SMS para su compra. También con el propósito de realizar actividades de telemetría sobre la máquina expendedora. Esta aplicación presenta una ventaja y es que es factible de desarrollar e implementar; no obstante el modelo de negocios tiene que ser rentable para tres entidades distintas (El integrador o proveedor del servicio TMI, los operadores de la red de comunicaciones y los 74 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA dueños de las Máquinas Expendedoras) sin perjudicar al cliente o usuario final de manera sustancial. 7.2.1. ELEMENTOS Y REQUERIMIENTOS Para ahondar más en el tema de la aplicación comercial, se empezará por identificar los elementos que funcionan dentro de ella y que son indispensables para su implementación, estos componentes son: el Terminal Móvil Inteligente, una máquina expendedora y una aplicación en el lado del servidor para añadir capacidad de procesamiento al servicio. Estos elementos ya han sido descritos con anterioridad (a excepción de la aplicación en el servidor de la cual se hablará mas adelante) aunque es importante destacar que como requerimiento principal la máquina expendedora debe soportar el protocolo MDB; y mejor aun, mientras mas avanzado sea el programa instalado en la máquina expendedora, mayores funciones se podrán realizar con el Terminal; incrementando de esta manera el valor agregado del servicio. 7.2.3. PROTOTIPO EN TÉRMINOS DE HARDWARE Siguiendo el cronograma de actividades y habiendo tomado en cuenta los tiempos de ejecución de cada actividad así como el alcance del proyecto, se tomó la decisión de desarrollar un prototipo sencillo y funcional para realizar las primeras pruebas concretas de la plataforma y de la primera aplicación comercial. El diseño del prototipo básicamente se basó en las ya utilizadas y probadas tarjetas de desarrollo. El prototipo consta de tres tarjetas interconectadas entre sí mediante una serie de cables para lograr la conexión física entre ellos, estos elementos son: la tarjeta de pruebas de MDK, la tarjeta de evaluación de Olimex y una tarjeta que funciona como interfaz eléctrica entre la tarjeta Olimex y la Máquina Expendedora. Al optar realizar el primer prototipo de esta manera, existen elementos que no se necesitan y algunos que son redundantes como por ejemplo las interfaces seriales RS-232 las cuales no son necesarias para la comunicación entre 75 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA el módulo M200 y el Microcontrolador (ya que se podrían comunicar con niveles lógicos CMOS-TTL); pero sí son necesarias para conectar el ordenador con las mismas. 7.2.3.1. DIAGRAMA DE BLOQUES DEL HARDWARE. Anteriormente, se han mostrado los elementos que debe poseer el Terminal Móvil Inteligente; no obstante, el prototipo no presenta todos estos elementos e incluso presenta componentes como manejadores o drivers (MAX232), pines, componentes de alimentación y otros que son redundantes o no se necesitan. Igualmente, en el prototipo faltan algunos componentes como lo son los relays u otros actuadotes. A continuación se muestra el diagrama de bloques con los elementos que actualmente se encuentran dentro del prototipo. Los recuadros color crema, representan las tarjetas de circuitos que contiene el prototipo, los bloques de color azul representan los dispositivos más importantes de la tarjeta y por último los rectángulos de color azul claro representan los demás módulos o periféricos del prototipo. Para mayor detalle, los esquemáticos de estas tres tarjetas pueden observarse con en el Apéndice C. Figura 7.5. Diagrama de Bloques de la Estructura Interna del TMI. 76 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA 7.2.3.2. PROTOTIPO REAL DEL TMI Esta sección presenta las fotografías del prototipo de Terminal Móvil Inteligente. Figura 7.6. Fotos Externa del TMI. Figura 7.7. Fotos Internas del TMI. 7.2.3. PROCESO DE COMPRA A TRAVÉS DEL TMI Básicamente, el proceso de compra es iniciado por parte del usuario enviando un SMS con un código a un teléfono específico con motivo de pedir o iniciar el servicio de compra; pero existen varias opciones de allí en adelante dependiendo de la tecnología desarrollada, escogida o disponible. Para desarrollar el modelo o proceso de compra correcto, se partió de las ideas y experiencias que poseían los ejecutivos de la empresa así como del análisis de un servicio 77 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA implementado en Suiza, el cual fue desarrollado por la compañía SICAP y utiliza tecnología USSD para realizarlo; pero en realidad lo importante es el modelo de compra y los elementos o pasos involucrados en él y no la tecnología empleada. A continuación se nombran los pasos del servicio implementado por SICAP: 1. Usuario pide el servicio llamando por USSD. 2. El servidor de pago móvil chequea el crédito del usuario 3. El servidor pide servicio a la máquina expendedora. 4. La máquina expendedora responde al servidor. 5. El servidor le responde al usuario acerca del estado del servicio. 6. El usuario selecciona el producto 7. La máquina expendedora notifica al servidor acerca de la acción 8. El servidor realiza la facturación. Esta serie de pasos se pueden observar de manera más clara en la siguiente figura. Figura 7.8. Pasos involucrados en modelo de SICAP. Fuente SICAP Luego de analizar el modelo anterior, se logró adaptar el modelo a utilizar a dos opciones diferentes de acuerdo a los requerimientos, opciones y limitaciones que se tienen en el mercado actual que son cobro por MO y cobros por MT. 78 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA A continuación se darán a conocer los métodos y modalidades de los procesos de compra diseñados incluidos en cada uno, a) Método “Cobro por MO SMS”: Consiste en realizar el cobro del producto en el momento en que el usuario envía un SMS. En este tipo de cobro, se logró implementar varios modelos con opciones diferentes a modo de ser comparados y ofrecer distintas soluciones al mismo problema. - Modelo 1: es el modelo más sencillo y consiste en cobrar al usuario al momento de pedir el servicio. El problema es que el cobro se realiza de manera inmediata y el usuario no presenta control sobre la compra y adquisición de su producto; por lo que no se garantiza el despacho del producto. Figura 7.9. Diagrama de Secuencia. Modelo 1 Cobro por MO SMS. - Modelo 2: este modelo es similar al anterior con la diferencia que el usuario presenta un mayor control sobre su compra ya que este recibe un informe del producto seleccionado y que debe ser aprobado antes del despacho; pero al igual que el modelo anterior no existe garantía de que el producto sea despachado. 79 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA Figura 7.10. Diagrama de Secuencia. Modelo 2 Cobro por MO SMS. b) Método “Cobro por MT SMS”. Consiste en realizar el cobro del producto en el momento en que el usuario recibe un SMS. También en este tipo de cobro existen distintas modalidades como opciones y soluciones al problema planteado. Las principales ventajas que posee este método con respecto al anterior es que se pueden cobrar distintas tarifas y se tiene mayor control sobre el cobro del producto. - Modelo 1: resulta el modelo más sencillo en esta categoría; aquí el usuario asegura que su producto sea despachado antes del cobro pero el integrador y la operadora corren el riesgo que el producto no pueda ser cobrado si el usuario no posee saldo suficiente. 80 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA Figura 7.11. Diagrama de Secuencia. Modelo 1 Cobro por MT SMS - Modelo 2: este modelo trata de solucionar el problema del cobro utilizando a la operadora como intermediario, ésta debe enviar un acuse de recibo de sí se le descontó el precio del producto al usuario. Nuevamente no se garantiza el despacho del producto después del cobro. Figura 7.12. Diagrama de Secuencia. Modelo 2 Cobro por MT SMS. 81 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA - Modelo 3: es similar al modelo anterior con un mayor protagonismo y control por parte del usuario; pero mantiene el problema de garantizar el despacho. Figura 7.13. Diagrama de Secuencia. Modelo 3 Cobro por MT SMS Al analizar los beneficios y defectos de cada modelo, se optó por optimizar uno de los modelos para ofrecer el mejor servicio posible; este modelo fue nombrado como “Modelo Ideal planteado por Dinama” y se describe a continuación. Figura 7.14. Diagrama de Secuencia. Modelo Ideal de Dinama. 82 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA Este modelo es muy parecido al “Modelo 1 de Cobro por MT”, pero incluye un chequeo de saldo antes de proceder a preparar o despachar el producto; esta nueva opción permite al usuario obtener su producto de manera garantizada antes de que le sea cobrado y por el otro lado, el integrador posee la información del saldo del usuario antes de aprobar o no la preparación del café. De esta manera, no hay ente en el proceso que salga perjudicado. Las ventajas de este modelo son: • El usuario solo envía un SMS. • Si el usuario no posee dinero suficiente, No se procesa el pedido. • El teléfono del usuario nunca es revelado. • En caso de presentar fallas en la Máquina expendedora; no se cobra al usuario. • Se garantiza la entrega del producto antes de ser cobrado. • Es posible el cobro de distintas tarifas al realizarlo directamente sobre la cuenta del usuario. 7.2.4. PROGRAMA EN EL SERVIDOR El Programa en el servidor es una aplicación que actuará como intermediario entre los usuarios y los programas clientes existentes dentro de los TMI. El propósito es añadir capacidad de procesamiento y más funciones al servicio M2M; básicamente actúa como administrador y enrutador de los SMS provenientes de los usuarios. De este modo, se asegura que la máquina que despachará el café es la misma con la que el usuario va a interactuar. Para el funcionamiento de esta aplicación se necesitan los siguientes elementos: - Plataforma de mensajería de texto SMS. - Programa de Análisis de MO SMS recibidos. - Programa de Enrutamiento “Usuario - Máquina Expendedora”. - Programa de Lista de Espera (tipo Buffer) para crear una lista ordenada entre los MO SMS recibidos. - Programa de Generación de MT SMS con distintos mensajes. - Programa de chequeo de saldo del usuario. 83 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA De acuerdo con los elementos que incluye la aplicación y después de analizar y colocar los requerimientos, los pasos que deben realizar son: 1. Recibir el MO SMS del cualquier usuario y con distintos códigos en el cuerpo del mensaje de texto. 2. Revisar el estado de la línea o usuario, chequeando el saldo disponible con la finalidad de seguir procesando el pedido o terminando la sesión. 3. Analizar o comparar el código entrante y asociarlo o enrutarlo a alguna Máquina Expendedora (ID específico como el número celular asociado). 4. Por cada Máquina Expendedora, encolar hasta 9 SMS y añadirle un número del 1 al 9 correspondiente al Turno (Ej.: Buffer Circular). Esta cantidad de mensajes puede estar sujeta a cambios. 5. Enviar un MT SMS de regreso al usuario, indicando que se ha procesado el pedido y que su turno de espera es el Nº x. 6. Enviar a la Máquina expendedora (al celular asociado), un MT SMS con el código secreto para el inicio de la sesión. Código propuesto: “Inicia x1 x2”; donde: x1: es el dinero a cargar dividido por 10 y en formato decimal x2: es el turno correspondiente al usuario en formato ASCII. 7. Recibir de parte del Terminal Móvil Inteligente (Vending Machine) los mensajes: “Café Listo”: significa Café despachado correctamente. “Error café”: significa Café no despachado por algún error de la máquina expendedora. 8. Enviar un MT SMS de regreso al usuario, confirmando el despacho o no del producto por parte de la máquina expendedora. Es importante destacar que la aplicación anterior corresponde al modelo Ideal planteado por Dinama; aunque es factible modificar partes de acuerdo con el modelo adoptado. 84 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA 7.2.5. PROGRAMA DENTRO DEL TERMINAL Lo primero que hay que mencionar es que el TMI contiene un programa tipo esclavo que está regido por una máquina de estado (Estándar MDB/ICP), mientras la máquina expendedora posee el programa maestro que se encarga de comunicarse con todos los periféricos. El programa contiene todas las funciones del Nivel 1 del estándar MDB/ICP así como la estructura para desarrollar otras funciones de nivel superior. El programa se optimizó para que funcionara como una interrupción a la continua encuesta de la máquina expendedora con el fin de liberar tiempo de procesamiento al microcontrolador. Lo más importante con respecto a esta interrupción es que ya que el protocolo MDB utiliza la modalidad de bit de modo (explicado con anterioridad en el capítulo 4), el microcontrolador sólo atiende a los comandos de contienen el byte de wake up o byte de direccionamiento correspondiente al dispositivo “cashless” (TMI); de otra manera se hace caso omiso a la información que sigue en el bloque, permitiendo al microcontrolador ocuparse de otras actividades. Es importante destacar, que el programa se basa en la máquina de estados del estándar MDB/ICP pero posee otras actividades que optimizan su funcionamiento y amplían sus capacidades. A continuación se nombra de manera más precisa el algoritmo que realiza la interrupción: 1. El programa al recibir cualquier byte con el bit de modo en alto en el puerto serial, se salta a la interrupción; de otro modo hace caso omiso a los caracteres que lleguen. 2. En la interrupción se analiza el primer byte de direccionamiento. Si corresponde al TMI, se procede a cambiar el modo en que se activa la interrupción para que los siguientes bytes de datos sean tomados en cuenta y para que ocurra la interrupción luego de haber recibido el bloque proveniente del VMC; de otra manera se termina la interrupción y se continúa con el programa general. 85 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA 3. Al poseer la data en el buffer lo primero que se realiza es ver el estado actual de la máquina expendedora (una variable). De acuerdo con el estado de la máquina, se pueden tomar distintas acciones. 4. Se observa y analiza el comando de entrada y se procede a asociarlo a la acción correspondiente que podría ser: Responder con un Ackwnoledge, responder con información de display, responder con acciones y comandos específicos, o simplemente no hacer nada (Equivalente a un NAK o Negative ackwnoledge) para que la VMC retransmita el mensaje. 5. El programa se dirige a la actividad o función a realizar y la ejecuta. 6. Posteriormente se envía el mensaje de regreso a la máquina expendedora con la información requerida o la respuesta. 7. El programa termina la interrupción y regresa al programa general. Adicionalmente, el programa consta de ciertas funciones que interactúan con el módulo M200. Estas funciones son básicamente dos: Recibir un SMS y Enviar un SMS y las mismas completan la aplicación. La función Recibir SMS fue adaptada para analizar sólo los mensajes de texto provenientes de un número telefónico corto o “Shortcode” (Aplicación en el servidor) y en caso de ser correcto, modifica dos variables que producirán respuestas distintas en la interrupción ya mencionada; estas dos variables corresponden al display y al saldo disponible; todo esto con el fin de activar la sesión en la máquina expendedora para que el cliente pueda seleccionar su producto y continúe el proceso de compra. La función Enviar SMS, fue modificada básicamente para enviar una confirmación a la aplicación en el servidor indicando si se logró despachar el producto o no. Estas dos funciones pueden ser modificadas para aceptar distintos parámetros de configuración y producir distintas respuestas ante distintos comandos. 86 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA 7.2.5.1. DIAGRAMA DE FLUJO DE LA APLICACIÓN Para reforzar el algoritmo anterior y el funcionamiento general del prototipo TMI, se presentarán una serie de diagramas que permitirá observar de manera visual el funcionamiento del equipo. Primero se plasmará en un diagrama de flujo, el programa o algoritmo con la mayor cantidad de detalles posibles para un mejor entendimiento del mismo. Posteriormente, se coloca el proceso de interrupción que es el disparador del proceso para iniciar la sesión en la máquina expendedora, es importante destacar que este último presenta ciertas partes simplificadas. Inicio Operadora Inicio Módulo M200 Inicio µC Operadora Envía SMS Módulo envía Interrupción SYS_Wake Microcontrolador pide el Estado del Teléfono Módulo Indica existencia de Nuevo SMS Microcontrolador poide SMS al Módulo Módulo Envía el Mensaje Microcontrolador Envía Acuse de Recibo Modulo envía Acuse de Recibo Analizar SMS Fin operadora Fin Módulo Variable Iniciar Sesión Máq. Exp. = True Variable Dinero = XX Bs. Si SMS Correcto? no Fin µC Figura 7.15. Diagrama de Flujo del programa de la aplicación de Máquina expendedora dentro del TMI 87 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA Modo 8 bit Data + Wake Up Bit Nueva Data? Inicio Si no no no Modo Oper. Activo? Si no Si Almacenar en Buffer Ocurrió Timeout? Byte Address Correcto? Modo 9 bit Data Vaciar Mem. Buffer Si Buffer Mem. Tiene Data? Si no Si Esperando Ack.? Analizar Comando Switch Comando no Analizar Comando Estado = No esperar Ack Acknowledge Modo Operación = Standby Neg. Acknowledge Funciones MDB Retranamitir Fin Respuesta Encuesta Figura 7.16. Diagrama de Flujo de la Interrupción de Encuesta de la Máquina Expendedora. 7.2.6. LIMITACIONES Las limitaciones que actualmente se encuentran en la aplicación, se corresponden con la función principal para realizar Telemetría. Al momento de instalar el protocolo MDB, se observó que existían diferentes niveles de complejidad y de funciones (tres niveles); la mayoría de las funciones del nivel 2 y 3 no eran necesarias para el propósito actual del proyecto a excepción de una función llamada File Transport Layer, que se encarga de transportar información entre los distintos periféricos conectados a la máquina expendedora (incluyendo a la máquina expendedora). Según el estándar MDB/ICP, esta función permite conocer el estado actual de cada periférico y del VMC por lo que sería muy útil esta información para ser enviada a un centro de control para su posterior análisis y toma de decisiones. El problema o la limitación que se presentó fue que la Máquina expendedora Colibrí que fue la máquina con la que se trabajó durante todo el proyecto, no soportaba una serie de funciones entre las cuales se encontraba esta última de telemetría; por lo que no se pudo 88 CAPÍTULO 7. PROTOTIPO “TERMINAL MÓVIL INTELIGENTE” DE DINAMA desarrollar la función dentro de la aplicación del TMI, ya que era de carácter obligatorio poseer la estructura de los archivos que se transportarían por FTL la cual no existía. Existen otras limitaciones y corresponden con el proceso de compra a adoptar. Actualmente, las operadoras móviles en Venezuela sólo pueden ofrecer el “Cobro por MO SMS” lo cual limita el proceso de compra a dos modelos distintos y donde la entidad que pudiera salir perjudicada sería el usuario o el cliente que desea comprar el producto. En cuanto el “Modelo Ideal de Dinama”, además que es necesario que las operadoras logren implementar el “Cobro en Destino” por medio de mensajes MO, también es necesario implementar ciertos elementos que actualmente no se disponen. Es por ello que el proceso de compra es una limitante para el proyecto desde el punto de vista de negocios 89 CAPÍTULO 8. RESULTADOS Y ANÁLISIS De acuerdo a la metodología escogida, los resultados que se presentan a continuación son de carácter Cualitativo. Con esto se quiere decir que se mostrarán resultados concretos, más no datos numéricos salvo en segmentos donde sea estrictamente necesario indicarlos. 8.1. RESULTADOS A continuación se muestran de manera progresiva los resultados más importantes durante el desarrollo del proyecto. La configuración del reloj principal del microcontrolador y de los relojes para los periféricos fue la siguiente: MainClk = 32 MHz, APB1Clk = 16 MHz y APB2Clk = 8MHz utilizando un oscilador externo de 4MHz (Original de la tarjeta Olimex) Se logró la comunicación de manera eficiente entre el microcontrolador STR711FR2T6 y el módulo Kyocera M200 a una velocidad de 38,4 Kbps. El microcontrolador utilizaba una velocidad de procesamiento o reloj principal de 32 MHz, el cual es dividido para manejar los periféricos. La arquitectura del microcontrolador posee dos buses el APB1 y el APB2 (Advanced Peripheral Bus); que derivan del principal un reloj con la finalidad de manejar o controlar otros periféricos. La frecuencia de estos Buses era de ¡6MHZ y 8 MHz respectivamente, siendo el APB1 El que controla los UARTs. En la mayoría de las veces, la comunicación no generaba ninguna clase de problemas pero para transmisiones de mensajes muy grandes, de vez en cuando aparecía un error de framming, que significa que el tiempo entre bits estaba corrido y generaba una serie de caracteres erróneos. De acuerdo con la guía de referencia del microcontrolador (Manual de Referencia STR71x) para esta configuración y para la velocidad de transmisión de 38,4 Kbauds esta frecuencia genera un ligero error de desviación de 0.16 %. A pesar de presentar ese problema, las rutinas resultaron bien diseñadas para evitar o prever estos errores. Debido a las constantes pruebas, correcciones y optimizaciones, las funciones finales quedaron funcionando de la siguiente manera: 90 CAPÍTULO 8. RESULTADOS Y ANÁLISIS La función Enviar SMS, funcionó de manera correcta el 99% de las veces. La función Recibir SMS, funciona de manera correcta el 90% de las veces. El otro 10% corresponde a que la función no logró obtener el SMS correctamente la primera vez que fue enviado desde la operadora; pero sí en la ocasión que el SMS fue retransmitido. Los resultados dicen que se logró recibir el SMS todas las veces pero en algunas ocasiones se recibía con un retraso notable (debido al tiempo de retransmisión de SMS de las operadoras) alrededor de los 5 minutos. La función Enviar Email, funcionó correctamente todas las veces que se pudo lograr la conexión a datos con el servidor SMTP. Para esta función, se debe poseer la dirección IP correcta del servidor; así como los parámetros bien configurados. La función Adquirir GPS, funcionó correctamente las veces que el módulo pudo conectarse con el servidor PDE (Position Determination Entity). La mayoría de las veces, la función no podía lograr la conexión. La función Hitserver, funcionó de manera correcta enviando información en la dirección URL y recibiendo datos de tamaño pequeño cada vez que se lograba hacer la conexión a datos. Las pruebas realizadas, involucran un programa PHP (PHP Text Procesor) del lado del servidor para verificar que la función operaba; de igual manera para constatar que la información enviada desde el programa PHP al servidor, se utilizó la aplicación de depuración de la herramienta EWARM ya que nos permitió ver los espacios de memoria del microcontrolador después de realizar la prueba. 91 CAPÍTULO 8. RESULTADOS Y ANÁLISIS Desde el punto de vista del programa que realizaba la comunicación con la máquina expendedora, el mismo no presenta problemas de comunicación con el protocolo MDB ya que fue sometido a funcionar bajo una velocidad de encuesta de 50 ms de parte del Emulador VMC; sin embargo, existen otro tipo de problemas que a continuación se nombran: - Los mensajes destinados a aparecer en el display de la máquina aparecían en el emulador VMC más no en la máquina real “Colibrí”. - No se pudo realizar el proceso de telemetría adecuado utilizando los comandos FTL ya que no eran soportados por la Máquina Expendedora. - La telemetría opcional que se implementó, funcionó con el emulador VMC más no con la máquina real “Colibrí”. En esta prueba, el usuario realizaba varias compras y posteriormente, se le realizaba un push SMS al TMI para que enviara el registro de los productos que vendió. Desde el punto de vista de servicio M2M, se logró despachar de manera local el producto solicitado habiendo enviado de manera previa un SMS con un código específico. La aplicación del prototipo funcionó de manera correcta el 100% de las veces a las que fue sometido. Uno de los resultados más importantes es con respecto al tiempo que se demora la aplicación en recibir la orden de iniciar la sesión en la máquina expendedora luego de que el usuario haya realizado la petición del producto por SMS. Este tiempo de inicio de sesión varió con respecto a las operadoras: - Módulo M200 con línea Movilnet presentó un tiempo de 4 a 6 segundos aproximadamente. - Módulo M200 con línea Movistar presentó un tiempo de 25 a 30 segundos aproximadamente. 92 CAPÍTULO 8. RESULTADOS Y ANÁLISIS 8.1.1. DEMOSTRACIÓN DEL SERVICIO. A continuación se describe el resultado más importante de todo el proyecto y que corresponde a la demostración que se realizó con el prototipo y una máquina expendedora de café modelo “Colibrí”. Se realizó una demostración a dos empresas interesadas en el concepto del producto; la demostración utiliza un proceso de compra sencillo sin verificación de despacho correspondiente al Modelo 1 Cobro por MO ver figura 7.9. En este proceso, el usuario básicamente debía seguir las siguientes instrucciones para lograr adquirir el café:: • Envíe un Mensaje de Texto al número 123 con la palabra “Café”. • Usted debe recibir un Mensaje de Texto indicándole el Inicio de Sesión de la máquina expendedora. • Espere a que la máquina expendedora indique que posee crédito para realizar su compra. • Gradúe el nivel de azúcar y escoja el producto que desea presionando los botones de la máquina de expendedora de café “Catuai”. • Espere mientras se elabora su bebida. • Retire el vaso y disfrute. • Luego recibirá la confirmación de que su café fue despachado vía SMS. Los resultados fueron satisfactorios pues se logró despachar el producto en numerosas ocasiones sin presentar fallas en ningún momento de la presentación. 8.2. ANÁLISIS DE LOS RESULTADOS OBTENIDOS En principio, el error de desviación es el principal causante de que un comando no sea recibido de manera correcta y ocurran retrasos en los procesos. Sin embargo, el error es tan pequeño que la mayoría de las funciones no se ven afectadas. 93 CAPÍTULO 8. RESULTADOS Y ANÁLISIS El generador de baudios genera un reloj igual al número de baudios deseado multiplicado por 16, que es utilizado para realizar el muestreo. La formula que posee es: UART _ BaudRate = PCLK1 16 * Baudrate Donde <UART_BaudRate> es un campo de un registro del UART que actúa como valor de recarga del contador y PCLK1 representa el reloj del bus de periféricos (ABP1). De acuerdo a la fórmula, el error que se presenta con el UART es el siguiente: Los registros solo pueden contener valores enteros; por lo que si el valor exacto del registro posee decimales, la velocidad de transmisión no será exacta ya que este valor es truncado al entero más cercano y se genera un corrimiento de tiempo entre bits. El valor del registro que se tiene en la configuración del microcontrolador era el siguiente: UART _ BaudRate = 16Mhz = 26,042 16 * 38.4 Kbaud por lo que el valor del error de desviación resulta: (26,042 − 26)*100 = 0,161% . 26 A pesar de ser un error relativamente pequeño, éste afecta a la comunicación en gran manera pues si se pierde un bit o lo que es peor, un byte de bloque de caracteres (mensaje), se pierde todo el mensaje ya que no existe forma de conocer donde ocurrió el desfase y corregirlo a nivel de la capa física. Para evitar este error de desviación o desfasaje, es necesario obtener valores enteros en el campo <UART_Baudrate> del registro; que es igual al valor de recarga del contador. Para encontrar la frecuencia ideal, se realizó el cálculo de la frecuencia PCLK1 utilizando el valor entero más pequeño y se obtuvo lo siguiente: PCLK1 = 16 * 38,4 Kbauds = 614,4 KHz 1 94 CAPÍTULO 8. RESULTADOS Y ANÁLISIS Este resultado nos proporciona la frecuencia mínima que debe poseer el PCLK1 para no tener error de desviación. Puesto que el valor es muy pequeño, el verdadero valor del reloj debe ser un múltiplo de este resultado pero en el orden de los MHz. Analizando los valores y la disponibilidad de cristales, se observo que casualmente existe un cristal de un valor de 6,144 MHz que sería el ideal para ser utilizado. Este permite configurar el microcontrolador de la siguiente manera: MainClck = 36,864 MHz, APB1Clk = 18,432 MHz y APB2Clk = 9,216MHz con un oscilador externo de 6,144MHz y de esta manera eliminar el error en la comunicación serial. Si volvemos a calcular el error de desviación de la transmisión ahora con la siguiente fórmula: UART _ BaudRate = 18,432 MHz 16 * BaudRate Obtenemos lo siguiente: Baud Rate Reload Value Error 9600 bauds 10 0% 38,4 Kbauds 30 0% 115,200 Kbauds 120 0% Tabla 8.1. Cálculo del error de Desviación en la Comunicación Serial del Microcontrolador STR711 utilizando un frecuenta de PCLK1=18,432 Mhz Pasando al tema de las funciones, las que necesitan conectarse a datos están condicionadas a que la red esté libre y que la misma permita la conexión de manera eficiente; ya que si no es posible establecer la conexión por inconvenientes con la Red Celular, la función genera una notificación y finaliza. Un problema similar ocurre con la adquisición de los datos del GPS ya que para obtener el punto, la información debe ser enviada a un PDE para que el mismo procese los datos y los retorne en el formato correcto. El detalle es que la dirección IP del PDE corresponde a un servidor de pruebas de Qualcomm que es libre y el cual se encuentra ocupado la mayoría del tiempo. 95 CAPÍTULO 8. RESULTADOS Y ANÁLISIS En cuanto a los resultados obtenidos con respecto a la máquina expendedora, el problema ocurre debido a que el programa dentro de la máquina Colibrí no sigue de manera estricta el estándar MDB. Entre los problemas más comunes se encuentra que las estructuras de datos existen y el VMC entiende los comandos; pero no devuelve información en los comandos, sólo la estructura correcta con los comandos pero sin información. Esto no permite al Terminal móvil inteligente controlar ciertas funciones de la máquina expendedora de café ya que están prohibidas. El proceso de compra por MO permite un despacho sencillo pero existe la posibilidad de que el café no sea despachado y ya se haya hecho el cobro al usuario lo que representa un problema. Además, los tiempos de espera para despachar un café podrían no ser los mejores pero depende del estado de la red de las operadoras. La diferencia de tiempos entre Movistar y Movilnet es debido a un requerimiento impuesto por Movistar para el envío de SMS desde la plataforma de Dinama C.A. a cualquier teléfono celular con línea Movistar. Existe una modalidad especial en el “Modelo Ideal de Dinama” y es que si la empresa se asocia con un Banco y logra ofrecer servicios de cuentas prepago o de crédito, la misma compañía podría desligarse de la operadora celular en cuanto al cobro del producto; lo que se traduce en un rango mayor de ganancia al eliminar la plataforma de la operadora y reemplazarla por una del mismo integrador pero que involucra al banco; de esta manera, el cobro del producto se realizaría directamente al número de cuenta asociado usuario y sin tener a la operadora como intermediario. 96 CONCLUSIONES Y RECOMENDACIONES CONCLUSIONES • La metodología seleccionada, ayudó al pasante a ejecutar el proyecto de pasantía de una forma ordenada, lo que garantizó el cumplimiento del objetivo final. • La plataforma desarrollada demostró estar diseñada acorde con los requerimientos planteados en la definición del proyecto. La plataforma funcionó adecuadamente y permitió realizar las pruebas necesarias y detectar limitaciones en algunas de las funciones. • El prototipo desarrollado representa una solución ante el problema formulado de incorporar el Terminal Móvil Inteligente a una red de máquinas expendedoras. A pesar que su diseño es muy básico a causa de limitaciones en el alcance del proyecto, el equipo soportó las funciones necesarias y logró establecer la comunicación requeridas para lograr despachar un producto de manera local luego que el usuario emitiera una solicitud por medio de un SMS. • El cristal oscilador de 4MHz que posee la tarjeta de evaluación Olimex STR-P711, no es el ideal para realizar una comunicación serial perfecta. Estos nos indica que para el desarrollo futuro del Terminal Móvil Inteligente, el cristal debería cambiar de valor al propuesto o a uno similar que no genere errores de desviación en la comunicación serial ya que ésta es uno de los aspectos más importantes de todo el proyecto. • La máquina expendedora presentó restricciones importantes al funcionamiento del prototipo de TMI. Se lograron resultados satisfactorios a pesar de las limitaciones impuestas por el protocolo existente dentro de la máquina. • La utilización de máquinas expendedoras con protocolos más avanzados o más estrictos con respecto al estándar MDB, se traducirá en un mejor funcionamiento y mayor capacidad de operación. 97 CONCLUSIONES Y RECOMENDACIONES • La Aplicación constituida por el prototipo TMI y la arquitectura cliente servidor, demostraron la capacidad de resolver problemas de acceso y control de funciones de manera remota efectivamente. Este conjunto, servirá como base para desarrollos futuros dentro del mismo ámbito pero con mayor capacidad, funcionalidad y flexibilidad, tal como será requerido por el entorno. • El proyecto de pasantía le brindó al pasante la oportunidad de adquirir habilidades en planificación, organización, análisis, creatividad y programación entre otras. Así como le permitió desarrollar las bases de un producto nuevo para el mercado actual Venezolano que se perfila como una solución innovadora y prometedora en muchos ámbitos tecnológicos. • El proyecto de pasantía le proporciona a la empresa la base tecnológica para desarrollar aplicaciones en el área de M2M. Este proyecto representa el inicio de un producto que puede ser optimizado y mejorado y que tiene grandes capacidades. RECOMENDACIONES • Se recomienda la creación del Departamento Soluciones M2M de Dinama C.A. con el objeto de independizar el producto y las soluciones involucradas con Terminal Móvil inteligente así como dividir el segmento de hardware del de software. • El adquirir la licencia completa de la herramienta EWARM de IAR System permite incrementar la capacidad de programación a 256 KB de código. El motivo es poder desarrollar y optimizar las aplicaciones al introducir una mayor cantidad funciones, variables, estructuras, entre otras. • Es importante que se comience a trabajar con los nuevos módulos de radiofrecuencia de Kyocera que próximamente reemplazaran al módulo M200. Estos nuevos módulos presentaran distintas dimensiones y conectores a nivel de hardware que deben ser considerados al momento de diseñar el hardware definitivo. 98 CONCLUSIONES Y RECOMENDACIONES • Es necesario optimizar el programa actual del Terminal Móvil Inteligente programando o incorporando un sistema operativo eficiente dentro del microcontrolador utilizado. Con el propósito de incrementar la eficiencia del Terminal Móvil Inteligente al introducir actividades multitareas, semáforos, control de flujo, manejo optimizado o dinámico de la memoria y otros beneficios. • Se invita a discutir con la empresa Global Vending C.A, la idea de actualizar y expandir los programas y códigos que se encuentran actualmente en sus máquinas expendedoras con el fin de optimizar los servicios que periféricos como el Terminal Móvil Inteligente puede ofrecer. • Con la finalidad de desarrollar nuevos protocolos de máquinas expendedoras y lograr optimizar el programa actual introduciendo funciones de nivel superior y programas más específicos de acuerdo a los distintos modelos. Se recomienda trabajar con otras compañías que poseen máquinas expendedoras. • En cuanto al Modelo de Negocios de la actual aplicación Comercial, se recomienda adoptar el “Modelo Ideal de Dinama” lo antes posibles con la finalidad de garantizar la entrega y el cobro del producto. Para ello es necesario establecer una posición o acuerdo entre el integrador, la operadora móvil y los bancos así como el desarrollo de nuevas aplicaciones o plataformas. • Se recomienda evaluar la posibilidad de desarrollar una plataforma para aplicaciones M2M pero para redes GSM de manera paralela a la actual CDMA con el objeto de ampliar el portafolio de soluciones y de ofrecer el Terminal Móvil Inteligente en varias tecnologías. 99 REFERENCIAS BIBLIOGRÁFICAS TEXTOS [Black, 1999] Uyless Black. “Tecnologías emergentes para redes de computadoras”. Editorial Prentice Hall, 2da ed. Año 1999. Páginas: 480. [Comer, 1997] Douglas E. Comer. “Redes de Computadoras, Internet e Interredes”. Editorial Prentice Hall Hispanoamérica S.A., 1ra ed. 1997. Páginas: 506. [Denn, 1980] Denning, P. ET all in “Operating Systems” in Arden, B., editor “what can be automated?” Cambridge, MA: MIT pres, 1980. [Gross, 1997] Lynne Schafer Gross. “Telecomunications. An Introduction to electronic media”. Editorial MacGraw Hill, 6ta ed. Año 1997. Páginas: 443. [Lee, 1995] William C.Y. Lee. “Mobile Cellular Telecomunications: analog and digital systems”. Editorial MacGraw Hill Inc., 2nd ed. Año 1995. Páginas: 664. [Smale, 1993] P.H Smale. “Introducción a los sistemas de Telecomunicaciones”. Editorial Trillas. Año 1993. Páginas: 212. [Stallings, 2001] Williams Stallings. “Sistemas Operativos Principios de diseño e interioridades”. Editorial Prentice Hall, 4ta ed. Año 2001. Páginas: 800. [Tanenbaum, 2003] Andrew S. Tanenbaum. “Redes de Computadoras”. Editorial Prentice Hall, 4ta ed. Año 2003. Páginas: 1408. 100 REFERENCIAS BIBLIOGRÁFICAS OTRAS FUENTES • [Bonusdata, 2006]. Bonus Data Vending Solutions. http://www.bonusdata.com • [CONATEL, 2006] Consejo Nacional de Telecomunicaciones República Bolivariana de Venezuela. http://www.conatel.gov.ve • http://www.conatel.gov.ve/Indicadores2006/Presentacion_III_TRIMESTRE_2006.pdf • [Dinama, 2006] Intranet Dinama C.A, Agosto - Enero 2006. • [Diccionario de la Real Academia Española, 2006]. Diccionario Web, Agosto-Septiembre 2006. www.rae.es • [EVA, 2006]. European Vending Association. http://www.eva.be • [IAR, 2006] IAR Systems. http://www.iar.com/ • [Kyocera, 2006] Kyocera Wireless. http://www.kyocera-wireless.com/ • http://www.kyocera-wireless.com/m2m-business • Guía de Usuario del Módulo M200 de Kyocera • Guía de Referencia Módulo M200 de Kyocera • Libro de Datos Módulo M200 de Kyocera • [NAMA, 2006]. National Automatic Merchandising Association. www.vending.org • Estándar MDC/ICP versión 3.0. 2003 • [Necta, 2006] N & W Global Vending. http://www.nwglobalvending.com • [NET, 2001] Evolución de la tecnología celular. Por Evelio Martínez. Revista NET, Julio de 2001. http://www.yucatan.com.mx/especiales/celular/3g.asp • [Olimex, 2006] Olimex Ltd. http://www.olimex.com/ 101 REFERENCIAS BIBLIOGRÁFICAS • http://www.olimex.cl • • [STMicroelectronics, 2006] STMicroeletectronics http://www.st.com • Manual de Referencia de STR71x • Manual de Usuario de STR71x • Datasheet STR71x [Telefónica, 2006] Telefónica. • http://www.telefonica.es/sociedaddelainformacion/pdf/publicaciones/movilidad • [W3C, 2007] W3C. http://www.w3.org/TR/Micropayment-Markup • [WamTech, 2006] WamTech http://www.wamtech.cl/m2m/index.htm • [Wikipedia, 2006] Enciclopedia Web, Julio 2006 -Enero 2007. 102 APÉNDICES APÉNDICE A. TABLA COMPARATIVA MICROCONTROLADORES Y TARJETAS DE EVALUACIÓN Tarjeta de Evaluación Feature Maxim MAXQ 3120 ST DK 3200 Olimex STR P711 IAR STR 711F Embest STDV 711F Olimex SAM7 P256 Atmel AT91 SAM7S EK Embest ATEB SAM7S Olimex LPC P2148 IAR LPC 2148 R2T Keil MCB 2140 Embedd ed Artist LPC21 48 1. Microcontrolador MCU Maxim MAXQ3 120 Processor 16 bit RISC MCU clock 8 MHz 40 MHz 50 MHz I/O ports 32 46 30 32 45 Timers 3 x 16 bit 3 x 16 bit 4 x 16 bit 3 x 16 bit 2 x 32 bit PWM 3 5 3 4 6 UART USART 2 2 4 1 DBGU 2 2 SPI - - 2 1 2 I²C - 1 2 1 2 CAN - - 1 - - USB 1.1 USB 2.0 Full Speed USB 2.0 Full Speed USB 2.0 Full Speed with 2 KB endpoint RAM USB ST uPSD32 54 8 bit 8032 MCU ST STR711FR2T6 ARM7TDMI 32 bit RISC Atmel AT91SAM7S256 Atmel SAM7S 64 ARM7TDMI Thumb 32 bit RISC Phillips LPC2148 16-bit/32-bit ARM7TDMI-S 55 MHz 60 MHz 60 MHz HDLC - - 1 - - ADC 2 x 16 bit 4x8 bit 4 x 12 bit 8 x 10 bit 14 x 10 bit DAC - - - - 1 x 10 bit Package MQFP 80 TQFP 80 LQFP 64 LQFP 64 LQFP 64 Address Mode 1.1 Memoria On-Chip RAM 512 B 32 KB 64 KBytes 64 KBytes 16 KB 32 + 8 KBytes On-Chip FLASH 32 KB 256 + 32 KB 256 + 16 KBytes 256 KBytes 64 KB 512 KBytes Tabla Apéndice A.1. Tabla Microcontroladores y Tarjetas de evaluación Parte A 103 APÉNDICES Tarjeta de Evaluación Feature Maxim MAXQ 3120 ST DK 3200 Olimex STR P711 IAR STR 711F Embest STDV 711F Olimex SAM7 P256 Atmel AT91 SAM7S EK Embest ATEB SAM7S Olimex LPC P2148 Keil MCB 2140 IAR LPC 2148 R2T Embedd ed Artist LPC21 48 2. En la Tarjeta (On Board) ? Xtal ? 4 MHz 18.432 MHz ? 12 MHz Expans ión Prototyping Area Expans ión Interfaz JTAG Interfaz ETM N.A N.A N.A N.A N.A N.A N.A N.A N.A Opcio nal Routin g N.A Extension Header Ports Dimensiones ( mm ) 160 x 120 200 x 180 120 x 80 120 x 80 125 x 108 120 x 80 100 x 100 100 x 100 110 x 100 100 x 100 190 x 100 139 x 110 2.1 Entradas y Salidas (Input/Output) 2 2 4 2 4 4 2 2 2 Joysti ck 2 2 2 4 2 4 8 Seg. 2 8 1 8 1 2 2 2 2 2 1 1 2 2 2 1 - - - - - - 1 1 - - - - Push Buttons 4 I/O Port LEDs 6 Puerto Serial Serial Debug Analog Input (Potenciomt) Analog Output (Speak/Buzz) Interfaz USB Interfaz Tarjeta SD Interf az LCD 2.2 Alimentación (Power) Conector Plug Plug Alimentación ? ? USBPlug 6 VAC/V DC USBPlug Plug Plug Plug Plug Plug Plug Plug USBPlug ? 5 VDC 6 VAC/V DC 7-14 VDC 5 VDC 6 VAC/V DC 7-12 VDC ? 4.5-6 VDC 2.3 Otras Características Software de Programación Sí Eval. Sí No Sí Eval. Opcio nal No Sí Eval. Opcio nal No Sí Sí Eval. Sí Precio 132 $ 150 $ 70 $ 350 $ 130 $ 70 $ 350 $ 120 $ 75 $ 150 $ 350 $ 99 Eur. Tabla Apéndice A.2. Tabla comparativa entre microcontroladores y tarjetas de evaluación Parte B 104 APÉNDICES APÉNDICE B. MATERIALES Y EQUIPOS UTILIZADOS a) Kit de Desarrollo de Módulo de Kyocera o MDK. El paquete para desarrollar módulos de Kyocera proporciona las herramientas necesarias para planificar, desarrollar, integrar, administrar y probar la conectividad inalámbrica del producto final con mayor facilidad. El MDK es el punto de inicio de los proyectos M2M ya que es ideal para obtener un enfoque de diseño estructurado para el desarrollo de las aplicaciones, además, permite conectar el módulo a la computadora que junto con las herramientas de diseño permite evaluar y realizar distintas actividades. De acuerdo a [Kyocera, 2006] y como se puede observar en la figura Apéndice B.1, este paquete consta de los siguientes elementos: Letra A: Placa de interfaz con acceso a los UART 1 y 2 del módulo. Letra B: Adaptador de interfaz para conectividad USB Letra C y D: Cables RS-232 y USB Letra E: Adaptadores de alimentación para cada tarjeta Letra F: Audífonos manos libres. Letra G: Adaptadores de radiofrecuencia SMA hembra a MMCX Letra H: CD con herramientas y controladores para el desarrollo de software, documentación y manuales, herramienta PST, herramienta MARS. (No disponible en la figura) 105 APÉNDICES Figura Apéndice B.1. Elementos del Paquete de Desarrollo de Modulo (MDK). Fuente Kyocera Wireless. b) Radio Modem M200 de Kyocera El modulo CDMA de Kyocera fue concebido para empresas que desean diseñar, construir y vender nuevos productos con esta tecnología. El modulo es apropiado para aplicaciones de negocios como telemetría remota, puntos de venta, compras inalámbricas (Máquinas expendedoras), supervisión y monitoreo de vehículos, sin dejar de lado soluciones de voz y datos inalámbricos. El modulo ofrece los beneficios de la tecnología CDMA sin la necesidad de construir un teléfono desde su inicio ya que éste se encarga de la parte de radio frecuencia de la aplicación; sin embargo, es necesario conectar una serie de dispositivos externos a este para manejarlo. El módulo posee características importantes como tres modos de operación, soporta AMPS 800MHz, CDMA 800MHz y CDMA 1900MHz, posee una memoria no volátil, un A-GPS integrado, capacidad para realizar y atender llamadas de voz y datos, envío y recepción de mensajes de textos o SMS, conexión por sockets y más. Las figuras presentadas a continuación muestran la arquitectura básica interna del modulo y la forma externa del mismo. 106 APÉNDICES Figura Apéndice B.2. Arquitectura básica interna Figura Apéndice B.3. Módulo M200 de Kyocera. del modulo M200 de Kyocera. Fuente Kyocera Fuente Kyocera Wireless. Wireless El modulo se conecta al sistema remoto a través de un conector Molex (board to board) modelo 54230:55055 como el que se muestran en las siguientes figuras. La interfaz soporta conexiones físicas para alimentación, 2 puertos seriales RS232 (UART 1 y UART 2), micrófono, corneta y auricular. El módulo es alimentado por una fuente externa de 3,6 – 4,2 voltios que debe ser capaz de proveer una corriente promedio de 1,1 Amp y soportar picos de corriente de 1,5 Amp. Figura Apéndice B.4. Conector Macho 54230-0578 Figura Apéndice B.5. Conector Hembra 55055- para el M200. Fuente Molex 0578 para el M200. Fuente Molex El UART 1 provee la comunicación para ofrecer servicios de datos asíncronos/fax/paquete especificados bajo las normas del estándar TIA/EIA/IS-707-A. Este 107 APÉNDICES puerto también es utilizado en conjunto a herramientas de configuración y provisión. El UART 2 está reservado exclusivamente para ser utilizado por la Interfaz de Protocolos Multiplexados de Kyocera (KMIP), por esta vía, el sistema remoto puede ejecutar acciones como emulación de teclado, originar y atender llamadas de voz, llamadas de emergencia, envío y recepción de SMS, adquisición de puntos del GPS, controlar ciertos modos y características del módulo y recibir información de estatus de celular. El protocolo de interfaz de software es el antes mencionado KMIP; el cual presenta una estructura muy compleja e interesante que incluye parámetros, codificación, decodificación, chequeo de errores y más , que pueden ser estudiados en detalle en la Guía de Usuario y Guía de Referencia del M200. Es este el protocolo que se utilizó para comunicar el sistema remoto del proyecto con el módulo para de esta manera crear la aplicación final. c) Herramienta PST (Phone Support Tool) La herramienta PST es un set de herramientas de Windows diseñadas para conectarse, controlar y probar teléfonos y módulos CDMA de Kyocera. El programa servidor puede mantener y monitorear múltiples teléfonos y módulos en una computadora. Las aplicaciones que posee son las siguientes: • Configuración PST de Kyocera Wireless PST: provee una pantalla con estatus básico del teléfono (MIN, ESN, modelo) así como el control y monitoreo de los mismos. • Programación de Servicios: permite guardar datos correspondientes a los servicios de programación de los teléfonos como por ejemplo los datos de las operadoras. • Descarga de Software: permite descargar software autorizado a teléfonos Kyocera, permite realizar backups y restaurar elementos de la memoria no volátil. • Editor de Lista de Roaming: muestra la información del protocolo de roaming del teléfono. 108 APÉNDICES Figura Apéndice B.6. Interfaz del Phone Support Tool. d) Herramienta MARS La aplicación MARS está diseñada para permitirle al usuario ver el potencial del modulo M200, manejar o manipular ciertas opciones del mismo y tener la opción de poder introducir de manera directa comandos KMIP al módulo así como utilizar otras herramientas de más alto nivel. MARS fue creada como un ejemplo de interfaz para el protocolo KMIP pero desde su concepción, esta ha evolucionado convirtiéndose en una plataforma de pruebas para probar software, realizar soporte técnico a los módulos, desarrollar aplicaciones y hasta certificar equipos. En su ventana podemos observar todos los campos y configuraciones del módulo así como el estatus en tiempo real de lo que ocurre (ver figura Apéndice B.8). Entre las herramientas más importantes que se utilizaron se encuentran: 109 APÉNDICES • Introducción de comandos directos: permite enviar comandos predeterminados al modulo de manera manual para observar su comportamiento ante ellos. • Herramienta de GPS: permite correr una sesión GPS y obtener fixes o puntos de localización. • Modulo de marcado: donde el usuario tiene acceso a las teclas del módulo para realizar ciertas operaciones como llamadas. • Herramienta de SMS: es modulo que permite crear SMS para enviarlos así como recibirlos. • Herramienta de interfaz de Sockets: permite establecer una llamada de datos por medio de una conexión por sockets con un servidor. • Decodificador de mensajes: es una aplicación que permite desglosar los mensajes en sus respectivas estructuras 110 APÉNDICES Figura Apéndice B.7. Diagrama General de la herramienta MARS. 111 APÉNDICES Figura Apéndice B.8. Interfaz Gráfica de la herramienta MARS. e) Tarjeta de Evaluación y Desarrollo Olimex STR-P711 La tarjeta Olimex, es un circuito impreso que contiene los elementos y materiales más importantes para la prueba del microcontrolador y sus capacidades; básicamente es el corazón y cerebro del prototipo a ser desarrollado. Esta tarjeta permite conectarse al puerto paralelo de la computadora mediante un cable de programación tipo ARM-JTAG (ver figura Apéndice B.18 en cables e interfases) que junto a la herramienta de desarrollo EWARM (ver más adelante) permite tener el acceso y control de las funciones, periféricos y puertos del µC. Las características de la tarjeta son: • Microcontrolador STR711FR2T6 de 16/32 bit ARM7TDMI™. • Un conector JTAG estándar para programación. • Un conector USB. • Dos canales de interfaz RS232 con sus drivers. • Un conector de tarjetas SD/MMC. • Dos pulsadores. 112 APÉNDICES • Un potenciómetro conectado a ADC del µC. • Dos LEDs programables. • Una corneta o buzzer. • Conector de 10 pines para expansiones de productos Olimex. • Dos conectores para SPI. • Un conector para la interfaz I2C. • Regulador de voltaje de 3.3V y hasta 800 mA de corriente dentro de la tarjeta. • Requiere de una fuente de de alimentación de 6V AC o DC • Un LED indicador de alimentación. • Circuito y botón para Reset. • Cristal oscilador de 4 Mhz. • Cristal de 32768 Hz para el controlador de tiempo real del µC. • Pines de expansión para todos los puertos del µC. • Dimensiones: 120 x 80 mm. Figura Apéndice B.9. Tarjeta de Evaluación Olimex STR-P711. Fuente Olimex 113 APÉNDICES f) IAR Embedded Workbench for ARM (EWARM). Esta es una herramienta de software utilizada como plataforma de trabajo para la codificación, programación y prueba del microcontrolador STR711FR2T6 incluido en la tarjeta de evaluación Olimex. El banco de trabajo EWARM, ofrece un ambiente de desarrollo integrado con un juego completo de herramientas de compilación y depuración en C/C++. Para el proyecto se utilizó la versión “Kickstart” que es la ideal para aprender a utilizar el microcontrolador y desarrollar pequeños proyectos ya que es de carácter gratuito y posee las herramientas necesarias para crear una aplicación. Esta versión proporciona un tamaño limitado de código (32 Kbytes) de programación; pero es totalmente funcional ya que integra un administrador de proyectos, un editor, un compilador, un ensamblador, enlazador o linker, las librerías e instrumentos de depuración, además de un juego de guías de usuario en formato PDF. Es con esta herramienta donde se creó la plataforma de pruebas a nivel de software así como la primera aplicación comercial para la máquina expendedora. En las siguientes figuras se observa la interfaz gráfica que presenta la herramienta. Figura Apéndice B.10. Ventana Principal de la Herramienta EWARM de IAR. 114 APÉNDICES Figura Apéndice B.11. Ventana de Simulación de la Herramienta EWARM de IAR. g) Emulador Vending Machine Controller con protocolo MDB. Bonusdata. Con el propósito de realizar pruebas concretas sin necesidad de manipular la máquina real, el emulador proporciona una fiel representación o simulación de la misma; permitiendo apretar botones, configurar precios, realizar pruebas al incluir fallas o bloqueos de los dispositivos y hasta la posibilidad de manipular una pantalla similar a la real. Este emulador fue utilizado durante gran parte del proyecto para detectar la correcta comunicación entre los dispositivos, probar y evaluar cambios en el software del prototipo para optimizarlo, observar el comportamiento del programa ante una falla o mala ejecución de comandos, someter al dispositivo a funcionar al máximo de su capacidad, etc. La pantalla principal o el ejecutable del programa se observa en la figura a continuación. 115 APÉNDICES Figura Apéndice B.12. Emulador Master MDB de Vending Machine. Fuente Bonusdata. h) Máquina Expendedora de Café “Colibrí” Es la máquina expendedora de café con la que se realizaron todas las pruebas finales para verificar que el prototipo funcionase correctamente y sin problemas. Esta máquina es completamente automática y posee varios puertos para conexión de esclavos MDB entre los que destacan monederos, billeteros y equipos de pago electrónico que es donde el “Terminal Móvil Inteligente” encaja. A continuación se muestra una tabla con algunas características del equipo con su respectiva imagen. [Necta, 2006]. Versión Grupo Café No. de Recipientes Interfaz del Usuario Botones de Selección Sistema de Pago Altura del Modelo Altura del Gabinete (Adicional y Opcional) Ancho Profundidad Peso Espresso Z3000 5 Selección Directa 8 Compatible con la mayoría de validadores de moneda y sistemas de pago electrónico con Protocolo MDB. 750 mm 810 mm 410 mm 490 mm 36 Kg. Aprox. Tabla Apéndice B.1. Características Máquina expendedora de café modelo Colibrí. Fuente N&W Global Vending 116 APÉNDICES Figura Apéndice B.13. Máquina expendedora de Café modelo Colibrí. Fuente N&W Global Vending i) Analizador de protocolo TELENEX 8800 Turbo Es un equipo antiguo pero poderoso gracias a su procesador 386 destinado única y exclusivamente a monitorear, analizar, y grabar sesiones de comunicación. El analizador contiene una librería llena de protocolos utilizados comúnmente en las telecomunicaciones así como una interfaz amigable al usuario. Posee un monitor ámbar, dos bahías para disketts, un teclado, LEDs indicadores y dos puertos con las interfases eléctricas V.35, EIA-530 (449) y EIA-232 (V.24). Básicamente fue utilizado para monitorear y analizar la comunicación serial asíncrona en tiempo real de los otros equipos utilizados, ya que el reloj de este analizador es de alta exactitud. Figura Apéndice B.14. Analizador de Protocolo Telenex 8800 Turbo. 117 APÉNDICES j) International Data Science INC. Blue Box 100 La Caja Azul o “Blue Box” 100 es un instrumento compacto que tiene acceso y supervisa las 25 líneas de los protocolos RS-232-C, EIA-232, CCITT y el V. 24. El bloque contiene 50 pares de LEDs rojos/verdes que muestran los altos y los bajos de las señales de cada uno de 25 conductores del DTE y DCE de la interfaz, una serie de conmutadores o switches que controlan las señales, 50 pines para cruzar líneas y realizar otras conexiones de pruebas. Adicionalmente tiene dos cables planos de 25 líneas con conectores machos y hembras que actúan como los cambiadores de sexo de los terminales de manera que permitan la conexión a cualquier DTE o DCE. Este instrumento básicamente permitió conectar las tarjetas al analizador de protocolos Telenex 8800 y revisar de manera visual los estados de las líneas de comunicación, resultando muy útil al momento de resolver algunos problemas de interfaz eléctrica. En la siguiente figura se puede observar el equipo. Figura Apéndice B.15. Internacional Data Sciences INC, Blue Box 100. 118 APÉNDICES k) Analizador de Protocolos Seriales de Máquinas Expendedoras. Bonusdata. Es un analizador de protocolos seriales de bajo costo que es conectado al puerto USB del computador y a las máquinas expendedoras o sus esclavos, por medio de ciertos cables de interfaz. La ventaja de este analizador con respecto al analizador Telenex, es que además de ser pequeño y portátil, posee un puerto que maneja protocolos seriales específicos de las máquinas expendedoras como lo son los protocolos MDB, Executive y BDV e incluso el universal RS232. Otra ventaja importante es que se pueden grabar sesiones en archivos para su posterior revisión dentro del computador. Figura Apéndice B.16. Analizador de Protocolos Bonusdata. Fuente Bonusdata l) Cables e Interfaces Básicamente son cables de interfaz eléctrica que permitieron la conexión entre los dispositivos que manejaban los protocolos de las máquinas expendedoras y el analizador de protocolo serial. También se encuentra el cable de programación del microcontrolador. En el proyecto se utilizaron los siguientes cables: • BD 2003. DB9 - MDB Master Converter: Cable que convierte el protocolo RS232 a MDB Master, utilizado para transformar la computadora en una máquina expendedora (DTE) al utilizar el emulador VMC de Bonusdata. 119 APÉNDICES • BD 2010. DB9 - MDB Slave Converter: Cable que convierte el protocolo RS232 a MDB Slave, utilizado para transformar una máquina en un esclavo de vending machine (DCE). • BD 4005. Adapter Cable RS232 (DB9): es un cable que tiene un conector DB9 y se conecta al analizador de protocolo Bonusdata. • BD 4010. Adapter Cable MDB: cable con conector MDB que se conecta al analizador de protocolo Bonusdata. • BD 4100. Interface Cable MDB Slave: cable con conector MDB que se conecta al analizador de protocolo Bonusdata para monitorear un DCE. • BD 4101. Interface Cable MDB Master: cable con conector MDB que se conecta al analizador de protocolo Bonusdata para monitorear un DTE. • ARM-JTAG Dongle: cable para programación y depuración de microcontroladores ARM. (Figura Apéndice B.18). Figura Apéndice B.17. Algunos cables para conectar distintas interfaces eléctricas de Máquinas Expendedoras. Figura Apéndice B.18. Cable ARM-JTAG de Olimex. 120 APÉNDICES m) Multímetro digital “Circuitmate Beckman DM 73” Es un instrumento electrónico de medida que combina varias funciones en una sola unidad. Fue utilizado básicamente como voltímetro, amperímetro y ohmiómetro para verificar niveles lógicos y de voltaje, selección y medición de resistencias, cálculos de corriente y la más importante como comprobador de continuidad donde el dispositivo emite un sonido cuando la pista o el circuito bajo prueba no está interrumpido. APÉNDICE C. ESQUEMÁTICOS DE LAS TARJETAS DEL PROTOTIPO TMI ESQUEMÁTICOS KIT DE DESARROLLO DEL MÓDULO M200 (MDK) Figura Apéndice C.1. Esquemático tarjeta MDK. Parte A. Fuente Kyocera 121 APÉNDICES Figura Apéndice C.2. Esquemático tarjeta MDK. Parte B. Fuente Kyocera Figura Apéndice C.3. Esquemático tarjeta MDK. Parte C. Fuente Kyocera 122 APÉNDICES Figura Apéndice C.4. Esquemático tarjeta MDK. Parte D. Fuente Kyocera Figura Apéndice C.5. Esquemático tarjeta MDK. Parte E. Fuente Kyocera 123 APÉNDICES Figura Apéndice C.6. Esquemático tarjeta MDK. Parte F. Fuente Kyocera Figura Apéndice C.7. Esquemático tarjeta MDK. Parte G. Fuente Kyocera 124 APÉNDICES ESQUEMÁTICO TARJETA OLIMEX STR-P711 Figura Apéndice C.8. Esquemático tarjeta de Evaluación Olimex. Fuente Original Olimex 125 APÉNDICES ESQUEMÁTICO DE LA INTERFAZ ELÉCTRICA MDB Máquina Expendedora Microcontrolador Figura Apéndice C.9. Esquemático tarjeta de interfaz µC – Máquina Expendedora 126