TRABAJO FIN DE ESTUDIOS PROYECTO FIN DE CARRERA Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee programables Sebastián Pastor Volosín Tutor: Carlos Alberto Rodríguez González Curso 2011-2012 Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee programables, trabajo fin de estudios de Sebastián Pastor Volosín, dirigido por Carlos Alberto Rodríguez González (publicado por la Universidad de La Rioja), se difunde bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported. Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los titulares del copyright. © © El autor Universidad de La Rioja, Servicio de Publicaciones, 2012 publicaciones.unirioja.es E-mail: [email protected] UNIVERSIDAD DE LA RIOJA Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables Sebastián Pastor Volosín 22/06/2012 Peticionario: Digi International Spain S.A. Titulación: Ingeniería Técnica Industrial en Electrónica Industrial Director: Carlos A. Rodríguez González Departamento: Ingeniería Eléctrica Curso: 2011/2012 Lugar y fecha: Logroño, 22 de Junio de 2012 A mi abuelo, Sebastián Pastor García. Agradecimientos Quisiera agradecer a Digi International Spain S.A. sin cuya colaboración no podría haber tenido lugar el presente proyecto, habiéndose hecho cargo de los materiales y equipamientos necesarios para la realización de pruebas y prototipos. Asimismo, agradecer a toda la plantilla por la ayuda y apoyo recibidos en todo momento a lo largo del proyecto. No puede faltar una dedicatoria a mi familia y amistades que no han cesado de apoyarme en todo momento. Gracias a todos. UNIVERSIDAD DE LA RIOJA Índice General Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables Sebastián Pastor Volosín 22/06/2012 Peticionario: Digi International Spain S.A. Titulación: Ingeniería Técnica Industrial en Electrónica Industrial Director: Carlos A. Rodríguez González Departamento: Ingeniería Eléctrica Curso: 2011/2012 Lugar y fecha: Logroño, 22 de Junio de 2012 1.-ÍNDICE GENERAL 1- Índice General 1- 2- Índice General .................................................................................................... 4 1.1- Índice de tablas........................................................................................... 8 1.2- Índice de imágenes ..................................................................................... 9 Memoria........................................................................................................... 12 2.1- Índice de la memoria ................................................................................ 12 2.2- Introducción ............................................................................................. 13 2.3- Objeto ....................................................................................................... 14 2.4- Alcance...................................................................................................... 15 2.5- Antecedentes............................................................................................ 15 2.5.1- Arduino .............................................................................................. 15 2.5.2- Zigduino ............................................................................................. 16 2.5.3- Waspmote ......................................................................................... 18 2.6- Normas y referencias................................................................................ 20 2.6.1- Normativa consultada ....................................................................... 20 2.6.2- Bibliografía utilizada .......................................................................... 22 2.7- Definiciones y abreviaturas ...................................................................... 25 2.8- Requisitos de diseño ................................................................................. 30 2.8.1- Hardware ........................................................................................... 30 2.8.2- Firmware ........................................................................................... 34 2.9- Análisis de soluciones ............................................................................... 35 2.9.1- Hardware (General)........................................................................... 35 2.9.2- Placa base .......................................................................................... 40 2.9.3- Placa de Interfaz Hombre-Máquina .................................................. 52 2.9.4- Placa de expansión de entradas y salidas ......................................... 54 2.9.5- Placa de sensores .............................................................................. 58 2.10- Resultados finales ..................................................................................... 63 2.10.1- Hardware (General)........................................................................... 63 2.10.2- Placa base .......................................................................................... 66 2.10.3- Placa de Interfaz Hombre-Máquina .................................................. 74 2.10.4- Placa de expansión de entradas y salidas ......................................... 76 -4- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 1.-ÍNDICE GENERAL 3- 2.10.5- Placa de sensores .............................................................................. 81 2.10.6- Firmware ........................................................................................... 89 2.11- Planificación ............................................................................................ 103 2.12- Orden de prioridad de documentos ....................................................... 107 ANEXOS .......................................................................................................... 109 3.1- Índice de anexos ..................................................................................... 109 3.2- ANEXO I: Diferentes tecnologías de comunicación implementadas...... 111 3.2.1- Serial Communications Interface .................................................... 111 3.2.2- SPI .................................................................................................... 113 3.2.3- I2C .................................................................................................... 115 3.2.4- Protocolo Zigbee ............................................................................. 117 3.3- 4- ANEXO II: USBDM ................................................................................... 123 3.3.1- Introduction..................................................................................... 123 3.3.2- JS16 based versions (Current designs) ............................................ 123 3.3.3- USBDM for JS16 (Supports HCS12, HCS08, Coldfire V1) ................ 124 3.3.4- USB Driver Installation .................................................................... 129 Planos ............................................................................................................. 143 4.1- Índice de planos ...................................................................................... 143 4.2- Plano 1 - Placa principal - Conector del bus de expansión ..................... 144 4.3- Plano 2 - Placa principal - Fuentes y reguladores................................... 145 4.4- Plano 3 -Placa principal - Módulos XBee ................................................ 146 4.5- Plano 4 - Placa principal - Depurador y puerto serie.............................. 147 4.6- Plano 5 - Placa principal - Expansor e indicadores ................................. 148 4.7- Plano 6 - Placa principal – PCB ............................................................... 149 4.8- Plano 7 - Placa HMI - Conector del bus de expansión ............................ 150 4.9- Plano 8 - Placa HMI - Expansor, pulsadores e indicadores..................... 151 4.10- Plano 9 - Placa HMI - Pantalla de cristal líquido ..................................... 152 4.11- Plano 10 - Placa HMI – PCB..................................................................... 153 4.12- Plano 11 - Placa de Expansión de E/S - Conectores y Expansor de GPIOs 154 4.13- Plano 12 - Placa de Expansión de E/S - Configuraciones posibles.......... 155 4.14- Plano 13 - Placa de Expansión de E/S – Entradas/Salidas Digitales ....... 156 -5- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 1.-ÍNDICE GENERAL 4.15- Plano 14 - Placa de Expansión de E/S – PCB ........................................... 157 4.16- Plano 15 - Placa de Sensores – Conectores ............................................ 158 4.17- Plano 16 - Placa de Sensores - ADCs e Interfaces de sensores resistivos 159 4.18- Plano 17 - Placa de Sensores - Interfaces de Sensores en Lazo de Corriente 160 5- 4.19- Plano 18 - Placa de Sensores - Interfaz de sensores de tensión ............ 161 4.20- Plano 19 - Placa de Sensores - Sensores en placa .................................. 162 4.21- Plano 20 - Placa de Sensores – PCB ........................................................ 163 Pliego de condiciones .................................................................................... 165 5.1- Índice del pliego de condiciones ............................................................ 165 5.2- Introducción ........................................................................................... 166 5.3- Especificaciones eléctricas ..................................................................... 166 5.4- Condiciones generales ............................................................................ 167 5.5- Normas, leyes y reglamentos ................................................................. 167 5.6- Condiciones facultativas ......................................................................... 169 5.7- Condiciones de materiales y equipos ..................................................... 170 5.7.1- Materiales ....................................................................................... 170 5.7.2- Circuitos impresos ........................................................................... 170 5.7.3- Componentes .................................................................................. 170 5.8- 5.8.1- Condiciones de fabricación del circuito impreso ............................ 170 5.8.2- Funcionamiento normal del equipo ................................................ 173 5.8.3- Mantenimiento de la Placa ............................................................. 173 5.9- 6- Condiciones de ejecución y montaje ...................................................... 170 Condiciones económicas ........................................................................ 174 5.9.1- Errores en el proyecto ..................................................................... 174 5.9.2- Jornadas y salarios........................................................................... 174 5.9.3- Liquidación ...................................................................................... 174 5.9.4- Disposición final .............................................................................. 174 Estado de las mediciones ............................................................................... 176 6.1- Índice del estado de las mediciones ....................................................... 176 6.2- Capítulo C01 – Diseño Hardware............................................................ 177 -6- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 1.-ÍNDICE GENERAL 7- 6.3- Capítulo C02 – Prototipado Placa Principal ............................................ 178 6.4- Capítulo C03 – Prototipado Placa HMI ................................................... 181 6.5- Capítulo C04 – Protitpado Placa de Expansión de E/S ........................... 182 6.6- Capítulo C05 – Protitpado Placa de sensores ......................................... 183 6.7- Capítulo C06 – Desarrollo de Firmware.................................................. 185 6.8- Capítulo C07 – Documentación .............................................................. 185 Presupuesto ................................................................................................... 187 7.1- Índice del presupuesto ........................................................................... 187 7.2- Cuadro de precios unitarios de materiales y mano de obra .................. 188 7.3- Cuadro de precios unitarios de las unidades de obra ............................ 190 7.3.1- Cuadro de precios unitarios totales (Nº 1)...................................... 190 7.3.2- Cuadro de precios unitarios descompuestos (Nº 2) ....................... 196 7.3.3- Presupuestos parciales.................................................................... 209 7.3.4- Resumen del presupuesto............................................................... 217 -7Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 1.-ÍNDICE GENERAL 1.1- Índice de tablas Tabla 1 - Características principales de Zigduino....................................................... 17 Tabla - 2 Comparativa conectores Jack ..................................................................... 40 Tabla 3 - Comparativa de montaje de pilas alcalinas ................................................ 41 Tabla 4 - Especificaciones del estándar USB .............................................................. 42 Tabla 5 - Especificaciones del estándar USB .............................................................. 45 Tabla 6 - Especificaciones LED Vishay y Osram ......................................................... 46 Tabla 7 - Comparativa de pulsadores. ....................................................................... 47 Tabla 8 - Comparativa entre expansores de GPIOs. .................................................. 48 Tabla 9 - Comparativa entre pantallas LCD. .............................................................. 52 Tabla 10 - Comparativa entre acelerómetros............................................................ 60 Tabla 11 - Comparativa de RTCs comerciales ............................................................ 61 Tabla 12 - Comparativa entre memorias no volátiles ............................................... 62 Tabla 13 - Funcionalidades reservadas de los pines del módulo XBee ..................... 64 Tabla 14 – Pinout del conector del bus de expansión ............................................... 65 Tabla 15 - Tensión de salida en función de resistencias. ........................................... 68 Tabla 16 - Componentes en función de configuración .............................................. 79 Tabla 17 - Sensores disponibles según versión ......................................................... 81 Tabla 18 - Asignación de canales a las interfaces ...................................................... 83 Tabla 19 - Registros de los expansores de GPIOs ...................................................... 89 Tabla 20 - Mapa de registros del DS1337 .................................................................. 91 Tabla 21 - Configuraciones de alarma disponibles .................................................... 92 Tabla 22 - Direcciones disponibles del ADC128D818 ................................................ 94 Tabla 23 - Mapa de memoria del ADC128D818 ........................................................ 95 Tabla 24 - Mapa de memoria del MMA8453Q .......................................................... 98 Tabla 25 - Registro PL_STATUS ................................................................................ 101 Tabla 26 - Tolerancias a aplicar por el fabricante .................................................... 173 -8Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 1.-ÍNDICE GENERAL 1.2- Índice de imágenes Imagen 1 - Placa XBee Shield para Arduino .............................................................. 16 Imagen 2 - Plataforma Arduino ................................................................................. 16 Imagen 3 - Zigduino y sus componentes ................................................................... 17 Imagen 4 – Waspmote ............................................................................................... 18 Imagen 5 - Vista general de la placa base del Waspmote ......................................... 18 Imagen 6 - Encapsulado QFP ..................................................................................... 31 Imagen 7 – Captura d epantalla de kiCad eeschema y editor de librería. ................ 36 Imagen 8 - Captura de pantalla de gEDA. .................................................................. 37 Imagen 9 – Captura de pantalla de FreePCB ............................................................. 37 Imagen 10 - TinkerKit para Arduino........................................................................... 39 Imagen 11 - Placas de desarrollo para módulos Rabbit ............................................ 39 Imagen 12 - Freescale Tower System ........................................................................ 39 Imagen 13 - Phoenix Contact 1710085 ...................................................................... 41 Imagen 14 - Phoenix Contact 1792863 ...................................................................... 41 Imagen 15 - TE Connectivity 1986484-2 .................................................................... 41 Imagen 16 - Keystone 5231 ....................................................................................... 41 Imagen 17 - Keystone 55 ........................................................................................... 41 Imagen 18 - Eagle Plastic 12BH411P-GR.................................................................... 41 Imagen 19 - Eagle Plastic 12BH341P-R-GR ................................................................ 41 Imagen 20 - Conectores USB estándar. ..................................................................... 42 Imagen 21 - Conectores MicroUSB A (izq.) y B (der.) ................................................ 43 Imagen 22 - Conector microUSB ................................................................................ 43 Imagen 23 - Regulador Zener básico. ........................................................................ 43 Imagen 24 - Módulos S2B con distintas variantes de antena ................................... 45 Imagen 25 - Módulo XBee S2C................................................................................... 45 Imagen 26 - Circuito de excitación de un LED con alimentación variable................. 46 Imagen 27 - LED SMD de huella 1206. ....................................................................... 46 Imagen 28 - Pulsador KMS231GLFS ........................................................................... 47 Imagen 29 - Pulsador TL3301NF16 ............................................................................ 47 Imagen 30 - Pulsador TL3300CF16 ............................................................................ 47 Imagen 31 - Circuito típico de aplicación de un MAX2322........................................ 50 Imagen 32 - Ejemplo de puente USB a RS-232 utilizando un FTDI230x. ................... 51 Imagen 33 - Electronic Assembly EA DOGM132B...................................................... 52 Imagen 34 - Displaytech S4128M .............................................................................. 52 Imagen 35 – Electronic Assembly DOGL128B............................................................ 52 Imagen 36 - Distintos modelos de PTCs..................................................................... 54 Imagen 37 - Pinout y configuración interna de un ULN2803 .................................... 55 Imagen 38 - Circuito básico de un optoacoplador..................................................... 57 Imagen 39 - 25LC080A ............................................................................................... 62 Imagen 40 - DS1971-F3+ ............................................................................................ 62 -9Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 1.-ÍNDICE GENERAL Imagen 41 - MR25H256CDC ...................................................................................... 62 Imagen 42 - Jack de alimentación SHOGYO MJ-179LR .............................................. 66 Imagen 43 - Conexiones recomendadas para el LM22656-ADJ ................................ 67 Imagen 44 - Esquema de conexión final del LM22657-ADJ....................................... 67 Imagen 45 – Conexiones recomendadas para el MIC5239 ....................................... 69 Imagen 46 - Esquema de conexionado del MIC5239 ................................................ 69 Imagen 47 - Medidas del módulo SMT (en pulgadas), en rojo los pines que se corresponden con el S2B ................................................................................................ 70 Imagen 48 - Esquema de conexiones recomendado para el buzzer ......................... 71 Imagen 49 - Esquema de conexionado de los pulsadores......................................... 71 Imagen 50 - Conexiones de 1/4 74LV125 para su utilización como adaptador de niveles lógicos ................................................................................................................. 73 Imagen 51 - Conexión de un LED para minimizar consumo ...................................... 74 Imagen 52 - Conexión de los pulsadores ................................................................... 75 Imagen 53 - Detalle del circuito de control de la retroiluminación........................... 75 Imagen 54 - Configuración interna del CDA3S06 ...................................................... 76 Imagen 55 - Esquema de las entradas digitales......................................................... 77 Imagen 56 - Pinout del ULN2803 ............................................................................... 77 Imagen 57 - Configuración interna del ULN2803 ...................................................... 77 Imagen 58 - Relé G5V-1 ............................................................................................. 78 Imagen 59 - Conexionado del diodo indicador del relé............................................. 78 Imagen 60 – Diagrama de conexiones internas del LTV849 ...................................... 78 Imagen 61 - Conexiones entre componentes de la placa expansora de entradas y salidas ............................................................................................................................. 79 Imagen 62 - Configuración E/S Digital ....................................................................... 80 Imagen 63 - Configuración E/ Optoacoplada............................................................. 80 Imagen 64 - Configuración S/ relé ............................................................................. 80 Imagen 65 - Configuración S/ Colector Abierto ......................................................... 80 Imagen 66 - Señales de los conectores frontales ...................................................... 80 Imagen 67 - Señales del conector derecho ............................................................... 81 Imagen 68 - Señales del conector izquierdo .............................................................. 81 Imagen 69 - Interfaz para sensores 0-10V ................................................................. 83 Imagen 70 - Interfaz para sensores 4-20 mA ............................................................. 84 Imagen 71 - Interfaz de sensores de resistencia variable ......................................... 84 Imagen 72 – Cristal CMR200T .................................................................................... 85 Imagen 73 - Conexiones del RTC DS1337 .................................................................. 85 Imagen 74 - Temperatura vs Tensión de Salida......................................................... 87 Imagen 75 - Orientaciones capaces de ser detectadas por el MMA8453Q ............ 101 Imagen 76 - Diagrama de Gantt de la planificación ................................................ 106 -10Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 UNIVERSIDAD DE LA RIOJA Memoria Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables Sebastián Pastor Volosín 22/06/2012 Peticionario: Digi International Spain S.A. Titulación: Ingeniería Técnica Industrial en Electrónica Industrial Director: Carlos A. Rodríguez González Departamento: Ingeniería Eléctrica Curso: 2011/2012 Lugar y fecha: Logroño, 22 de Junio de 2012 5.-MEMORIA 2- Memoria 2.1- Índice de la memoria 2.2- Introducción ............................................................................................. 13 2.3- Objeto ....................................................................................................... 14 2.4- Alcance...................................................................................................... 15 2.5- Antecedentes............................................................................................ 15 2.5.1- Arduino .............................................................................................. 15 2.5.2- Zigduino ............................................................................................. 16 2.5.3- Waspmote ......................................................................................... 18 2.6- Normas y referencias................................................................................ 20 2.6.1- Normativa consultada ....................................................................... 20 2.6.2- Bibliografía utilizada .......................................................................... 22 2.7- Definiciones y abreviaturas ...................................................................... 25 2.8- Requisitos de diseño ................................................................................. 30 2.8.1- Hardware ........................................................................................... 30 2.8.2- Firmware ........................................................................................... 34 2.9- Análisis de soluciones ............................................................................... 35 2.9.1- Hardware (General)........................................................................... 35 2.9.2- Placa base .......................................................................................... 40 2.9.3- Placa de Interfaz Hombre-Máquina .................................................. 52 2.9.4- Placa de expansión de entradas y salidas ......................................... 54 2.9.5- Placa de sensores .............................................................................. 58 2.10- Resultados finales ..................................................................................... 63 2.10.1- Hardware (General)........................................................................... 63 2.10.2- Placa base .......................................................................................... 66 2.10.3- Placa de Interfaz Hombre-Máquina .................................................. 74 2.10.4- Placa de expansión de entradas y salidas ......................................... 76 2.10.5- Placa de sensores .............................................................................. 81 2.10.6- Firmware ........................................................................................... 89 2.11- Planificación ............................................................................................ 103 2.12- Orden de prioridad de documentos ....................................................... 107 -12Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.2- Introducción Los módulos XBee programables surgen ante la necesidad de determinados clientes de Digi International Inc. de ejecutar aplicaciones de usuario en sus módulos XBee no programables. Anteriormente esta tarea era realizada por un microprocesador externo que mediante un puerto serie se comunicaba con el módulo para la transmisión y/o recepción de tramas XBee. Si bien los módulos no programables siguen gozando de una amplia aceptación en el sector de las comunicaciones inalámbricas, el hecho de necesitar de un microprocesador externo hace que el diseño de una aplicación simple sea sensiblemente más complejo ya que existen infinidad de microprocesadores distintos con sus características específicas y requisitos de diseño propios. Los módulos XBee programables se diferencian de sus variantes no-programables en la inclusión en el mismo encapsulado de un microprocesador de la familia HCS08 de Freescale capaz de correr aplicaciones de usuario, comunicado a través de un puerto serie con un microprocesador de Ember idéntico al de la variante no-programable que se encarga de gestionar las comunicaciones inalámbricas XBee. Además, el fabricante proporciona un entorno de desarrollo integrado en Eclipse que facilita la utilización de los periféricos del microprocesador de Freescale e implementa la pila o stack del protocolo XBee/ZigBee en lenguaje C lo que facilita el desarrollo del software. Con estos módulos, desarrollar una aplicación que haga uso del protocolo XBee se vuelve mucho más sencillo, ya que el diseño no requiere la inclusión de un microprocesador externo ni del desarrollo software de la capa de comunicaciones XBee. En resumen, el usuario sólo tiene que preocuparse de desarrollar la aplicación que correrá el microprocesador de Freescale y el hardware que necesita el módulo XBee programable. El citado microprocesador de Freescale amplía las posibilidades de interacción del módulo XBee ya que además de GPIOs (General Purpose Input-Output, Entradas/Salidas de propósito general) posee interfaces SPI (Serial Peripheral Interface), SCI (Serial Communications Interface) e I2C (Inter-Integrated Circuits). Con estas interfaces es posible comunicarse con una gran cantidad de dispositivos comerciales como memorias, sensores, actuadores y un largo etcétera. Es a partir de estas capacidades de expansión que surge la idea de desarrollar una plataforma hardware que permita desarrollar de forma fácil, rápida y barata aplicaciones finales o prototipos. Pudiendo conectar distintos dispositivos e interactuar con ellos a través de las citadas interfaces del módulo XBee programable. -13Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.3- Objeto El presente proyecto tiene como objeto diseñar una plataforma hardware que permita el desarrollo ágil de aplicaciones inalámbricas basadas en módulos XBee programables. Esta plataforma se compondrá de: • • • • • • Una placa base que proporcionará lo necesario para el funcionamiento del módulo XBee programable, un puerto de expansión que permita conectar otras placas con fines específicos que interactúen con dicho módulo y opcionalmente hardware de depuración de software (debugger). Una serie de placas que conectadas al puerto de expansión de la placa base permitan la interacción del módulo XBee programable con dispositivos externos. Como placas de expansión se han especificado inicialmente cuatro variantes: Una tarjeta de expansión de entradas y salidas basada en un expansor I2C, la cual debe contar con distintas opciones de montaje que permitan obtener salidas a colector abierto, salidas a relé, entradas opto-acopladas y/o entradas-salidas digitales con protección contra sobrecorriente y sobrevoltaje. Una tarjeta de interfaz hombre máquina (Human-Machine Interface) que permita la interacción con el microprocesador mediante una pantalla de cristal líquido (LCD, Liquid Crystal Display) con cuatro indicadores luminosos y cuatro botones de propósito general. Una tarjeta que permita conectar sensores de tensión (0-10 Voltios), corriente (4-20 miliamperios), resistivos y de salidas digitales. Además contará con otros sensores y dispositivos periféricos montados en placa. Firmware específico que gobierne la interacción entre los periféricos de las placas de expansión y el módulo. Dicho firmware se integrará en el SDK (Software Development Kit, Kit de desarrollo de software) del XBee programable. Todo el hardware resultante deberá ser versátil y de bajo coste, además el diseño se realizará con herramientas gratuitas y preferiblemente libres (OpenHardware, hardware abierto, libre) que permitan modificaciones posteriores por parte de terceros. -14Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.4- Alcance Se encuentra dentro del alcance del proyecto el diseño del hardware y firmware atendiendo a las especificaciones detalladas en el apartado 2.7-Requisitos de diseño. Los detalles referentes a qué dispositivos y configuraciones permite cada tarjeta se definen en el apartado 2.10-Resultados finales. Por otra parte, está fuera del alcance del proyecto la producción en serie del hardware, distribución y/o venta del producto; si bien se tendrán en cuenta estos aspectos en lo referente a obtener un diseño capaz de ser producido en serie y a un coste bajo. 2.5- Antecedentes En el mercado existen diversas compañías que ofrecen soluciones modulares inalámbricas. La mayoría utilizan un microprocesador para controlar las entradas y salidas del sistema e incorporan una radio ZigBee para las comunicaciones inalámbricas. A continuación se analizan algunas opciones disponibles en el mercado. 2.5.1- Arduino Los módulos Arduino son una plataforma de microcontroladores de Atmel con una serie de APIs y librerías libres, muy extendida en el mundo de los microcontroladores por su facilidad de programación. Se trata de una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos. Un módulo Arduino puede tomar información del entorno a través de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El micro-controlador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP). Para el uso de los módulos ZigBee se utiliza una placa llamada XBee Shield. Ésta se coloca encima de la placa de desarrollo Arduino, y permite la conexión de los módulos XBee directamente con el Arduino, además ofrece una serie de librerías para su control y manejo. A continuación se muestran dos imágenes que nos muestran las soluciones que propone Atmel para el desarrollo de aplicaciones ZigBee. -15Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 1 - Placa XBee Shield para Arduino Imagen 2 - Plataforma Arduino 2.5.2- Zigduino El proyecto Zigduino es una plataforma compatible con Arduino que integra una radio 802.15.4 on-board. La radio puede ser configurada para soportar cualquier protocolo basado en el estándar 802.15.4 incluyendo ZigBee, Route Under MAC/5LoWPAN y RF4CE. Incorpora además un conector RP-SMA para una antena externa. -16Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 3 - Zigduino y sus componentes La placa opera con tensión de 3,3 V pero todos los pines de entradas y salidas son compatibles con 5 V. Además, el módulo Zigduino es compatible con las librerías, IDE y cualquier shield de Arduino que soporte lógica de 3,3 V. Características principales Microcontrolador Voltaje de funcionamiento Voltaje de Entrada(recomendado) De voltaje de entrada (máximo) Digital pines I / O Pines de entrada analógica E / S Protección Corriente CC por pin de E/S Corriente CC a 5 V por pin Corriente CC a 3,3 V por pin Memoria Flash SRAM EEPROM Velocidad de reloj Potencia de transmisión RF Sensibilidad del receptor Ganancia de la antenna Consumo de corriente Atmega128RFA1 3,3 7-18V 6-30V (transitorios de 20V y V-60) 14 + auxiliar 3 6 (0-1.8V) ± 30V transitoria y -2.5V a 5.8 V continuos 20 mA 250 mA 200 mA 128 KB de los cuales 2 KB son utilizados por el gestor de arranque 16 KB 4 KB 16 MHz 3.5 dBm -100 DB 2 dBi 30 mA (transmisión, USB, no hay conexiones de E / S) 15 mA (transmisión, sin USB, sin conexiones de E / S) 6 mA (radio, no USB, no hay conexiones de E / S) 250 mA (en espera) Tabla 1 - Características principales de Zigduino -17Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Las líneas de alimentación disponibles en el módulo son los siguientes: • • • • VIN: La tensión de entrada cuando está conectado a una fuente externa. 5V: Tensión regulada de 5 V utilizada para alimentar componentes en la placa y shields externos. 3V3: Tensión regulada a 3,3 V que alimenta el microcontrolador, derivada de la fuente regulada de 5 V a través de un segundo regulador. La corriente máxima que proporciona es de 200 mA GND: Referencia común a las tensiones. 2.5.3- Waspmote El conjunto de placas Waspmote desarrollado por la empresa Libelium consiste en un conjunto de placas apilables gobernadas por un microcontrolador ATmega1281. Como característica destacable, incluyen un socket para añadir un módulo XBee Pro, facilitando enormemente el desarrollo e implementación de redes de sensores inalámbricas. Imagen 4 – Waspmote Imagen 5 - Vista general de la placa base del Waspmote La empresa fabricante ofrece una amplia variedad de placas de sensores para cubrir un amplio espectro de aplicaciones. Algunos ejemplos de placas que ofrece: -18Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Detección de gases • Monóxido de carbono • Dióxido de Carbono CO2 • Oxígeno O2 • Metano CH4 • Hidrógeno H2 • Etanol CH3CH2OH • Tolueno C6H5CH3 • Temperatura • Humedad • Presión atmosférica • • • • • • • • • • • • Eventos Presión/Peso. Flexión Vibración Impacto Efecto Hall Inclinación Temperatura Presencia de líquidos Nivel de líquidos Luminosidad Presencia Estiramiento • • • • • • • • • • • Agricultura Temperatura/Humedad del aire Temperatura/Humedad del suelo Sequedad de las hojas Presión atmosférica Radiación solar Radiación ultravioleta Diámetro de troncos (dendrómetro) Diámetro de frutas Anemómetro Dirección del viento Pluviómetro -19Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.6- Normas y referencias 2.6.1- Normativa consultada • UNE 157001: Criterios generales para la elaboración de proyectos. • UNE 20620: espesores de los materiales con recubrimiento metálico y sus tolerancias están especificadas en la norma. • UNE 20552: especifica las tolerancias sobre el espesor total en la zona de contactos. • UNE 20-621 84/3: respecto a la anchura de las pistas, según la intensidad que por ellas circule. • UNE 20-620/84: diámetros de taladros vienen especificados en la norma • UNE 20-612/2: recoge varios tipos de ensayos que se pueden realizar a los materiales, como pueden ser los ensayos de espesor, adherencia, porosidad, etc. • UNE 20-524/1, UNE 20-524/2 y UNE 20-524/3: En lo referente a distancias entre taladros para la colocación de componentes. • UNE 20-514-82: Reglas de seguridad para los aparatos electrónicos de norma. • UNE 20902: referente a la técnica de circuitos impresos. • UNE-EN 60249: en la cual se citan los materiales base para circuitos impresos. • UNE 20598 78 (1): referente a las fuentes de alimentación estabilizada de CC. • UNE 20598 78 (2): referente a las fuentes de alimentación estabilizada de CC Características nominales y de funcionamiento. • UNE 20589 79 (3): referente a fuentes de alimentación estabilizada de CC Ensayos generales excepto de radio de inferencia. Ensayos de radiointerferencia. • UNE 157001:2002 sobre criterios generales para la elaboración de proyectos, que establece las consideraciones generales que permitan precisar las características que deben satisfacer los proyectos de productos, obras y edificios, instalaciones, servicios o software, para que sean conformes al fin a que están destinados. • DIN 40801: referente a circuitos impresos, fundamentos, orificios y espesores. • DIN 40803: referente a circuitos impresos, placas y documentación. • DIN 40804: referente a circuitos impresos, conceptos. • DIN 41494: referente a las formas de construcción para dispositivos electrónicos. • MI BT029: referente a instalaciones de pequeñas tensiones, menores de 50 voltios. -20Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA • • • • • • • • • MI BT031: referente a las condiciones generales de instalación, de utilización así como de los requisitos a cumplir a la hora del diseño. Directiva RoHS: esta directiva regula la utilización de algunas sustancias peligrosas en equipamientos eléctricos y electrónicos. Esta lista de sustancias se conoce como RoHS (Restriction of Hazardous Substances). DIRECTIVA 2002/95/CE DEL PARLAMENTO EUROPEO Y DEL CONSEJO de 27 de enero de 2003 sobre restricciones a la utilización de determinadas sustancias peligrosas en aparatos eléctricos y electrónicos. REAL DECRETO 2008/2005: de 25 de febrero, sobre aparatos eléctricos y electrónicos y la gestión de sus residuos. REACH EC/1907/2006: que regula el registro, la evaluación, la autorización y la restricción de sustancias y elementos químicos de los productos fabricados para garantizar la salud y la seguridad. FCC 15.105 RFI (Interfaces de Radio Frecuencia) los componentes de radiofrecuencia incluidos deben cumplir los límites para la Clase B de dispositivos digitales, según lo acordado en la parte 15 subparte B de las reglas FCC. Estos límites deben estar diseñados para proporcionar protección frente interferencias dañinas en ambientes residenciales. FCC 15.19: los dispositivos de radiofrecuencia deben cumplir con la parte 15 de las reglas FCC, asegurando la ausencia de interferencias dañinas producidas por el equipo, pero aceptando cualquier interferencia recibida. EIA/TIA-232, EIA/TIA-485 e ISO 11898: lo referente a la capa física de las comunicaciones serie del interfaz, en cuestión de niveles y timing. ANSI C: estándar publicado por el Instituto Nacional de Estándares para la programación en lenguaje C para garantizar la portabilidad del código desarrollado. -21Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.6.2- Bibliografía utilizada • PEREIRA, Fábio. HCS08 Unleashed. 2º Edición. Breinigsville, PA USA: Booksurge Llc, Octubre 2010. ISBN: 1-4196-8592-9. • KERNIGHAN, Brian; RITCHIE, Dennis. The C Programming Language. 2º Edición. Prentice Hall PTR, Upper Saddle River, New Jersey USA: 47º impression, February 2011. ISBN: 0-13-110362-8 • 24AA32A/24LC32A 32K I2C™Serial EEPROM [Product Datasheet PDF]. Microchip Technology Inc.: August 2006. • 74LV125 Quad buffer/line driver; 3-state [Product Datasheet PDF]. NXP Semiconductors: Revision 03, 7 April 2009. • ADC128D818 12-Bit, 8-Channel, ADC System Monitor with Temperature Sensor, Internal/External Reference, and I2C Interface. National Semiconductor: January 2011. • Aluminium Electrolytic Capacitors [Product Datasheet PDF]. Nichicon. • AN4077: MMA845xQ Design Checklist and Board Mounting Guidelines [PDF]. Freescale Semiconductor Inc.: Rev0, September 2010. • APPLICATION NOTE 3517 Estimating Super Capacitor Backup Time on Trickle-Charger Real-Time Clocks [PDF]. Maxim Integrated Products: April 2005. • APPLICATION NOTE 3816 Selecting a Backup Source for Real-Time Clocks. Maxim Integrated Products: April 2006. • APPLICATION NOTE 58 Crystal Considerations with Maxim Real-Time Clocks (RTCs) [PDF]. Maxim Integrated Products: Mar 2001. • BAT64 Schottky Diode [Product Datasheet PDF]. Infineon Technologies AG: February 2006. • BC817; BC817W; BC337 45 V, 500 mA NPN general-purpose transistors [Product Datasheet PDF]. NXP Semiconductors: Revision 06, November 2009. • Bob Perrin. I/O For Embedded Controllers [PDF]. Circuit Cellar. September 1999. • Bob Wolbert. Application Note 9: Design Considerations for 5V to 3.3V Pass Regulators [PDF]. MICREL Inc: San Jose, CA USA. • Bob Wolbert. Micrel’s Guide to Designing with Lowe-Dropout Voltage Regulators [PDF]. MICREL Inc: San Jose, CA USA, Aug 2008. • Bruce Hunter and Patrick Rowland. Digital Designer’s Guide to Linear Voltage Regulators and Thermal Management [PDF]. Texas Instruments: April 2003. • BSP 315 SIPMOS®Small-Signal Transistor [Product Datasheet PDF]. SIEMENS Semiconductor Group: September 1996. • CDA Series-G (RoHS Device) Steering Diode Arrays – ESD Suppressors (Product Datasheet PDF]. Comchip Technology Corporation. -22Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA • • • • • • • • • • • • • • • • • • CMR200T Tuning Fork Crystal Units (SMD – Cylinder Type). Citizen Micro HumanTech. Coin Type PAS Capacitor PAS414HR [Product Datasheet PDF]. Taiyo Yuden: Revision cap01_reli-PRP2, January 2012. Crystal SMD JXS53P4 (4 pad version). Jauch Quartz America: Bremerton, WA USA, April 2006. DS1337 I2C Serial Real-Time Clock [Product Datasheet PDF]. Maxim Integrated Products: Rev 071609, July 2009. ES1A-ES1D [Product Datasheet PDF]. Fairchild Semiconductor Corporation: 2010. G5V-1 PCB Relay Ultra-miniature, Highly Sensitive SPDT Relay for Signal Circuits [Product Datasheet PDF]. Omron: Revision N/D, 2007. KMS Series Microminiature SMT Side Actuated [Product Datasheet PDF]. C&K Components: Revision A. 2012. LCD Module Product Specification Product: 64128M Series LCD Module (128 x 64 DOTS) [Product Datasheet PDF]. Displaytech Ltd: Version 1.0, March 2008. LM22676/LM22676Q 3A SIMPLE SWITCHER®, Step-Down Voltage Regulator with Precision Enable [Product Datasheet PDF]. National Semiconductor Corporation: December 2010. LTV-819 Series High Density Mounting Type Photocoupler [Product Datasheet PDF]. LITEON: Reference 115, 2012. MC9S08JS16 Series [Product Datasheet PDF]. Freescale Semiconductor Inc.: Rev 4, April 2009. MC9S08QE32 MC9S08QE16 Reference Manual [PDF]. Freescale Semiconductor: Revision 2, May 2008. MCP6L1/1R/2/4 2.8 MHz, 200 uA Op Amps [Product Datasheet PDF]. Microchip Technology Inc.: Rev 0, February 2009. MCP9700/9700A MCP9701/9701A Low-Power Linear Active Thermistor™ ICs [Product Datasheet PDF]. Microchip Technology Inc.: Rev 0, March 2009. MIC5239 LDO Regulator [Product Datasheet PDF]. MICREL Inc.: San Jose, CA USA: 2003. MMA8453Q 3-Axis, 10-bit/8-bit Digital Accelerometer [Product Datasheet PDF]. Freescale Semiconductor Inc.: Revision 4.1, August 2011. MV25 Terminal [Product Datasheet PDF]. Italtronic: January, 2006. PCA9535; PCA9535C 16-bit I2C-bus and SMBus, low power I/O port with interrupt [Product Datasheet PDF]. NXP Semiconductors: Revision 05, September 2008. -23Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA • • • • • • • • • • • PCA9538 8-bit I2C-bus and SMBus low power I/O port with interrupt and reset [Product Datasheet PDF]. NXP Semiconductors: Revision 05, 05th May 2009. PCB Land Pattern Design and Surface Mount Guidelines for QFN Packages [Techincal Brief PDF]. Intersil: Revision TB389.6, April 2009. Piezoelectronic Buzzers Pin terminal/Lead Without oscillator circuit PS Series [Product Datasheet PDF]. TDK: May 2011. Recommended P.C.B. Layout for SSM (Double Vertical). Samtec: Rev D. SS32 thru SS36 [Product Datasheet PDF]. Vishay General Semiconductor, Revision 11th Mar 2011. SSM-SM Series Catalogue [Catalogue PDF]. Samtec. ST7565R 65 x 132 Dot Matrix LCD Controller/Driver [Product Datasheet PDF]. Sitronix Technology Corporation: Version 1.7, June 207. TL3300 SERIES [Product Catalogue PDF]. E-Switch LAMB INDUSRIES. TSV321-TSV358-TSV324 General purpose input/output rail-to-rail low power operational amplifiers [Product Datasheet PDF]. STMicroelectronics: Revision 5, February 2008. ULN2803APG,ULN2803AFWG,ULN2804APG,ULN2804AFWG 8ch Darlington Sink Driver [Product Datasheet PDF]. Toshiba Corporation: Rev N/D, August 2011. XBee®/XBee-PRO® ZB RF Modules [PDF]. Digi International Inc. 11001 Bren Road East Minnetonka, MN USA: Rev C, December 2012. -24Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.7- Definiciones y abreviaturas 1-Wire: protocolo de comunicaciones en serie diseñado por Dallas Semiconductor. Está basado en un bus, un maestro y varios esclavos de una sola línea de datos en la que se alimentan. Por supuesto, necesita una referencia a tierra común a todos los dispositivos. AC: ver CA. ADC: Conversor analógico digital. API: Application Programming Interface, Interfaz de programación de interfaces implementado en un programa software y que permite interactuar con otros software (aplicaciones, librerías y sistemas operativos). BDM: Background Debug Mode, modo disponible en algunos microprocesadores que permite la depuración de errores en circuito. Bootloader: Gestor de arranque, programa sencillo que no tiene la totalidad de las funcionalidades de un sistema operativo, y que está diseñado exclusivamente para preparar todo lo que necesita el sistema operativo para funcionar. CA: Corriente alterna. CC: Corriente continua. Debugger: Depurador. Programa utilizado para detectar y corregir errores en aplicaciones. DFN: Dual-Flat no-leads. Encapsulado de dispositivos SMT. Ver SMD, SMC, SMT. DIP: Dual in-line Package. Encapsulado de dispositivos through-hole. Ver THT. EEPROM: Memoria programable de sólo lectura, borrable eléctricamente, memoria no volátil. Esquemático: diagrama de conexiones entre componentes de un circuito electrónico. FIM: Módulos de interfaz flexible: microcontrolador independiente del ordenador que permite la implementación de protocolos simples de comunicación. Firmware: software (programas, estructura de datos) de bajo nivel, fijo y relativamente pequeño que controla la parte hardware. Está muy condicionado al hardware para el que esté destinado. Flash: Tecnología de almacenamiento que permite la lecto-escritura de múltiples posiciones de memoria en la misma operación. Permite velocidades de -25Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA funcionamiento muy superiores frente a la tecnología EEPROM primigenia, que sólo permitía actuar sobre una única celda de memoria en cada operación de programación Footprint: esquema que indica el número y tamaño de pads que necesita determinado encapsulado electrónico para su soldadura en un PCB. Ver PCB, Pad, SMD, SMT, THT. Full-dúplex: los sistemas full dúplex proveen comunicación en las dos direcciones, y simultáneamente. g: Unidad de aceleración equivalente a la aceleración terrestre media. Gerber: fichero de fabricación que indica las capas de una PCB. GND: Tensión de referencia. GPIOs: entradas/salidas digitales de propósito general Half-dúplex: los sistemas half dúplex proveen comunicación en las dos direcciones, pero no simultáneamente. HMI: Human-Machine Interface, Interfaz Hombre-Máquina. Medio con que el usuario puede comunicarse con una máquina, un equipo o una computadora, y comprende todos los puntos de contacto entre el usuario y el equipo. Normalmente suelen ser fáciles de entender y fáciles de accionar. Host: ordenador principal de una red, que ofrece fuentes de información, servicios y aplicaciones a otros nodos de la red. I2C, I2C o IIC: Inter Integrated Circuits, bus serie multi maestro single-ended inventado por Philips, usado para comunicar periféricos de baja velocidad a un sistema embebido. IEEE 802.11: conjunto de estándares que definen las comunicaciones en una red de área local wireless (WLAN) en las bandas de frecuencia de 2.4, 3.6 y 5GHz IEEE 802.3: estándar físico y de conexión para redes de área local con redes de ordenadores, basado en frames. IEEE: Instituto de ingenieros eléctricos y electrónicos, dedicado a la innovación tecnológica y a la estandarización de protocolos. Layout: proceso de creación de un circuito impreso en términos geométricos correspondiendo con los modelos de metal, óxido y semiconductor, conectando diversos componentes con pistas de cobre. LCD: Liquid Crystal Display. Pantalla de cristal líquido. -26Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA LDO: Low-Dropout. Regulador de voltaje CC capaz de operar con una diferencia de tensiones entre entrada y salida muy pequeña. LED: Light Emitting Diode. Diodo emisor de luz. Mesh: estructura de red en la que cada nodo puede ejercer de router independiente, independientemente de si está conectado o no a otra red. MMU: Unidad de manejo de memoria, componente hardware que se encarga de los accesos a la memoria que requiere el procesador. Multicast: entrega de mensajes en una red de ordenadores de forma simultánea, que crea copias en otros elementos de la red. Netlist: fichero utilizado por aplicaciones de diseño de circuitos impresos para determinar las conexiones entre nodos y pads. NVRAM: memoria de acceso asíncrono que no pierde su información cuando no está alimentada; la más usada hoy en día es la memoria Flash. Pad: zona de un PCB en el cual se suelda un componente. Ver PCB. PC: Personal Computer, ordenador personal. PCB: Printed Circuit Board, placa de circuito impreso; tecnología de fabricación de dispositivos electrónicos que consiste en una placa de material aislante sobre la cual se trazan pistas de material conductor, para la interconexión de componentes electrónicos. PDA: Personal Digital Assistant. Ordenador de bolsillo, agenda electrónica. PIC: familia de microcontroladores basados en la arquitecutra Harvard, fabricados por Microchip Technology. Pinout: distribución de pines en componentes electrónicos. Placement: parte del diseño de un circuito impreso que consiste en la colocación de los componentes en el PCB de forma que se facilite su posterior conexionado. Polling: Sondeo.- Método de control de terminales en una red multipunto, consistente en que cada terminal es interrogado por el Host, por turno, para conocer su disposición a transmitir o recibir. PTC: Positive Temperature Coefficient. Tipo de termistor con coeficiente térmico positive. PWM: Pulse-Width Modulator. Modulación por ancho de pulso. -27Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA QFN: Quad-flat no-leads. Encapsulado de dispositivos SMT. Ver SMD, SMC, SMT. RF: Radio frecuencia. RoHS: Restriction of Hazardous Substances, directiva regula la utilización de algunas sustancias peligrosas en equipamientos eléctricos y electrónicos. Royalties: pagos para utilizar un producto bajo propiedad intelectual. RPSMA: Reverse Polarity SubMiniature version A. Tipo de conector utilizado en radiofrecuencia. RTC: Real-Time Clock. Reloj en tiempo real, dispositivo que mantiene la cuenta del paso del tiempo en un sistema digital. SCI: Serial Communications Interface. Comunicación serie asíncrona utilizada entre microprocesadores y periféricos. Consta de dos señales TxD y RxD. SDK: Software Development Kit, kit de desarrollo de software. Conjunto de herramientas para el desarrollo de software orientado a desarrolloadores. Single-ended: método de transmisión de señales eléctricas en cables: uno porta el voltaje variables que representa la señal, y el otro se conecta a la tensión de referencia. SMC: Surface Mount Component; Componente de montaje superficial. SMD: Surface Mount Device; Dispositivos de montaje superficial. SMT: Surface Mountage Technology, tecnología de montaje superficial mediante la cual los componentes electrónicos no requieren de agujeros en la placa base para su montaje. SO: Small outilne. Encapsulado de dispositivos SMT. Ver SMD, SMC, SMT. SOIC: Small-outline integrated circuit. Encapsulado de dispositivos SMT. Ver SMD, SMC, SMT. SPI: Serial Peripheral Interface, estándar de comunicación serie creado por Motorola, que opera en full-dúplex. SRAM: Static Random Access Memory. Memoria estática de acceso aleatorio. Tipo de memoria basada en semiconductores que a diferencia de la memoria DRAM, es capaz de mantener los datos, mientras esté alimentada, sin necesidad de circuito de refresco. Sin embargo, sí son memorias volátiles, es decir que pierden la información si se les interrumpe la alimentación eléctrica. Termistor: Componente cuya resistencia varía sensiblemente con la temperatura. -28Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Through-hole: ver THT. THT: tecnología through-hole, con la que se realiza un orificio desde la capa superior a la inferior de un PCB, atravesando las intermedias. TIA/EIA RS-232: estándar para comunicaciones serie single ended y con señales de control, ampliamente usado en puertos serie de ordenadores. TIA/EIA RS-422: estándar basado en un par diferencial que define las características eléctricas de transmisores y receptores para su uso en sistemas multipunto. Acepta múltiples receptores pero sólo un transmisor. TIA/EIA RS-485: estándar basado en un par diferencial que define las características eléctricas de transmisores y receptores para su uso en sistemas multipunto. Acepta múltiples receptores y transmisores. Timekeeping: Capacidad de un RTC para la cuenta del tiempo cuando se desconecta de la alimentación principal. Ver RTC. TSSOP: Thin-shrink small outline package. Encapsulado de dispositivos SMT. Ver SMD, SMC, SMT. TTL: Transistor-Transistor Logic. Lógica transistor-transistor. Familia de circuitos integrados digitales. UART: Universal Asynchronous Receiver/Transmitter, transmisor/receptor asíncrono universal: transforma un flujo de datos paralelo en una comunicación serie. UFL: conector para antenas de radiofrecuencia de hasta 6 GHz, de tamaño reducido para montaje superficial. USB: Universal Serial Bus, bus serie universal, especificación para comunicaciones entre un controlador host y dispositivos externos. Vcc: Tensión de alimentación. XBee: nombre comercial de Digi International para una familia de módulos de radio que opera como utilizando la capa física de ZigBee. Zener: diodo preparado para trabajar en inversa con una tensión límite (tensión Zener). Normalmente utilizado como regulador de tensión. ZigBee: especificación para un conjunto de protocolos de alto nivel, usando radios basadas en el estándar IEEE802.15.4-2003 para Redes de Área personales wireless de baja velocidad -29Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.8- Requisitos de diseño Las características del proyecto plantean una serie de requisitos que se detallan a continuación. 2.8.1- Hardware Modularidad 2.8.1.1Se diseñará un conjunto de placas compuesto por una placa base o principal que se será capaz de interactuar con otras placas de expansión diseñadas para tal fin. Las placas a diseñar deberán ser de carácter modulares, esto implica que con la excepción de la placa base, las demás no sean interdependientes. A su vez, cuando sea posible los dispositivos que componen las placas podrán ser montados o no en función de la necesidad del usuario final sin que ello interfiera en el correcto funcionamiento de las demás placas conectadas al conjunto. 2.8.1.2Bus de expansión La interconexión de las placas se realizará mediante un conector que llevará las señales de un bus de expansión, permitiendo la interacción entre placas. Este bus será común a todas las placas y deberá definirse en función de las necesidades de cada placa en lo que respecta a señales, dejando margen para el diseño de futuras placas de expansión. Esto fija las funcionalidades de los pines del módulo XBee, limitando las capacidades debido a la multiplexación de funcionalidades en un mismo pin del módulo. Pero por otra parte permite una homogenización del diseño que evita incompatibilidades entre placas. En el peor de los casos, si un usuario requiriese utilizar un pin definido para un uso específico (por ejemplo, los pines dedicados al puerto SPI) para otras funcionalidades que permite el módulo XBee; seguirá siendo capaz de hacerlo pero limitaría la conexión de placas que sí utilizasen dichas señales. En ningún momento una placa intermedia debe dejar de conectar el bus de expansión entre el conector superior y el inferior; incluyendo los pines no conectados. Ya que aunque sus dispositivos no hagan uso de ellas, podrían ser utilizadas por otras placas intermedias conectadas en el mismo bus. 2.8.1.3Placas de circuito impreso (PCBs) Las placas deberán cumplir ciertos requisitos respecto al diseño de su PCB (Printed Circuit Board) a fin de obtener un conjunto homogéneo. Todas las placas serán preferentemente del mismo tamaño y tendrán en sus cuatro esquinas perforaciones que permitan la colocación de separadores o step-offs. También es necesario que el conector del puerto de expansión esté situado siempre en el mismo sitio y en ambas caras de las placas intermedias. -30Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA En el caso de las placas que solo puedan conectarse al final del conjunto (top-only) o al principio (bottom-only) como el caso de la placa de interfaz hombre-máquina (HMI, Human-Machine Interface) y la placa base sólo será necesario un conector para el puerto en la cara inferior o superior, respectivamente. 2.8.1.4Componentes electrónicos Los componentes electrónicos a utilizar en las placas se escogerán atendiendo a los siguientes criterios siempre que no impidan el cumplimiento de los demás requisitos de diseño o pérdida de funcionalidades: • • • • Conseguir una buena relación precio/calidad sin perjuicio de la funcionalidad del hardware. Siempre que sea posible utilizar componentes de bajo consumo de potencia. Utilizar en la medida de lo posible componentes conocidos y/o probados en diseños similares. Se evitarán siempre que sea posible los componentes through-hole ya que encarecen la producción y su uso y producción se considera obsoleto. En su lugar, tendrán preferencia los componentes de montaje superficial o SMD (Surface Mountage Device) que facilitan enormemente la producción en serie. Sin embargo, se evitarán los encapsulados de difícil soldadura como ser los QFP o QFN ya que dificultan el desarrollo del prototipo. Imagen 6 - Encapsulado QFP En la medida de lo posible, el prototipo se orientará de manera que los costes de producción de un kit básico de placa base + placa de expansión permita un margen de beneficio aceptable sin superar los U$S 9999 finales. Este límite supone una barrera comercial para vender kits de desarrollo en el mercado de aficionados y no superarlo amplía las posibilidades de colocación en el mercado. -31Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.8.1.5Software de diseño El hardware debe ser desarrollado íntegramente utilizando software de distribución libre y gratuita para facilitar la modificación del mismo por parte de terceros. Este aspecto es interesante ya que la posibilidad de modificar un diseño existente amplía la versatilidad del proyecto dando lugar a numerosas bifurcaciones y aplicaciones distintas basadas en el diseño original. Asimismo, los ficheros generados se licenciarán con una licencia que permita la libre distribución como ser Creative Commons, GNU Public License o Berkeley Software Distribution. 2.8.1.6Placa base La placa base debe incluir todo lo necesario para el correcto funcionamiento del módulo XBee y su interacción con las placas de expansión. Esta placa también es la encargada de regular la entrada de potencia y alimentar a las demás tarjetas de expansión a través del bus. 2.8.1.6.1Alimentación La alimentación de la placa podrá realizarse a través de distintas fuentes: • • • • Jack de alimentación (corriente continua no regulada 6-30 V). Terminal blocks (corriente continua no regulada 6-30 V). Baterías alcalinas AAA (en placa). Conector USB (Universal Serial Bus). Se definen como necesarias dos alimentaciones reguladas: • • 3,3 V para alimentar al módulo XBee y periféricos de las placas de expansión. 5 V para la eventual alimentación de dispositivos externos, circuitos integrados que lo requieran y relés. La inclusión de esta tensión es opcional, pudiendo evitar montarla si no hay dispositivos que la requieran. Para obtener estas tensiones, es necesario estimar el consumo de ambas fuentes y determinar los reguladores a incluir, atendiendo al factor de minimizar el consumo de la propia fuente de alimentación. 2.8.1.6.2Módulo XBeeProgramable El mismo diseño debe ser válido para todas las versiones disponibles del XBee programable (S2B y S2C de 32 y 128 kilobits de memoria de programa en cada versión). También debe ser posible tanto soldar el módulo a la placa en el caso de un diseño final como poder remplazar el módulo sin soldadura como es el caso de las placas de desarrollo XBIB. -32Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.8.1.6.3Botones e indicadores luminosos La placa base debe ofrecer la posibilidad de montar botones que activen las señales de Reset y Commissioning del módulo XBee, sin que su no-montaje impida el funcionamiento correcto del módulo. Por otra parte, se debe ofrecer la posibilidad de montar LEDs (Light Emmiting Diode, Diodo Emisor de Luz) indicadores de: • • • • Tensión de 3,3 V. Tensión de alimentación externa. Actividad USB (sólo versión con depurador). Señal Association del módulo para identificar el estado del enlace con la red. 2.8.1.6.4Debugger y puerto serie Debe existir una opción de montaje que incluya un debugger o depurador en la misma placa a través del puerto USB. Asimismo, debe ser posible tener un puerto serie capaz de comunicarse con el interfaz serie del módulo XBee. Dicho depurador y puerto serie puede ser un diseño preexistente pero no deberá interferir con el espíritu de Open Hardware del proyecto. Esta característica facilitará el diseño de las aplicaciones sin necesidad de hardware externo. Las tareas de depuración podrán ser realizadas con el entorno CodeWarrior y la versión de desarrollo de la placa; y una vez diseñado y probado el firmware, puede utilizarse una placa sin debugger en la que el módulo funcionará de manera idéntica. 2.8.1.6.5Expansor de entradas y salidas Se contempla la posibilidad de incluir opcionalmente en la placa base un expansor de entradas y salidas ruteadas al puerto de expansión para poder ser utilizadas por placas de expansión. 2.8.1.7Placa de expansión de entradas y salidas La placa de expansión de entradas y salidas debe ofrecer al menos cuatro configuraciones distintas con el mismo PCB en función de si se montan o no determinados componentes. Las opciones deben ser: • • • • Al menos 8 salidas a relé. Al menos 8 salidas a colector abierto. Al menos 8 entradas optoacopladas. Al menos 8 entradas/salidas digitales con protección sobrecorrientes, sobretensiones y descargas electrostáticas. frente a En el caso de tratarse de entradas, deben ser capaces de generar una interrupción identificable en el programa de usuario. -33Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA La placa debe disponer de algún tipo de conectores suficientemente versátiles que permitan conectar las entradas y salidas con dispositivos externos de forma robusta y fiable. 2.8.1.8Placa de sensores La placa de sensores debe incluir acondicionadores de señal que permitan leer la salida de sensores estándar de 0-10 V, 4-20 mA, sensores de resistencia variable, digitales (sensores todo/nada) y un sensor de temperatura montado en la misma placa. No se incluirán filtros ya que sería necesario conocer de antemano las características de los sensores a conectar y el ambiente de trabajo. El número mínimo de sensores posibles será: • • • • 2 de tensión 0-10 V. 2 de lazo de corriente 4-20 mA. 4 Digitales. 3 de resistencia variable. Debe incluir también conectores versátiles que permitan conectar los sensores de manera robusta y fiable. Además, se incluirán los siguientes periféricos como opción de montaje: • • • Reloj en tiempo real (RTC , Real Time Clock) con alarmas capaces de generar interrupciones hardware. Memoria no volátil. Acelerómetro de 3 ejes. 2.8.1.9Placa de interfaz hombre-máquina Esta placa dispondrá de un LCD preferentemente compatible con el controlador ST7565R, disponible en la API (Application Programming Interface, Interfaz de programación de aplicaciones) del Programmable XBee. También debe incluir al menos cuatro botones y al menos cuatro LEDs indicadores de propósito general. Los botones deberán ser capaces de generar una interrupción en la aplicación de usuario. 2.8.2- Firmware El firmware que permite controlar los distintos dispositivos que se incluyan, deberá ser desarrollado de forma que no rompa el estilo de programación del SDK actual. Deberá ser documentado e integrado en dicho SDK de manera análoga a los componentes existentes. -34Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9- Análisis de soluciones 2.9.1- Hardware (General) A continuación se detallan soluciones que afectan a todas las tarjetas diseñadas en carácter general. 2.9.1.1Software de diseño Las placas a realizar no requieren una complejidad excesiva. Se requiere un software que permita crear un esquemático a partir del cual obtener un netlist que sea posible convertir a un fichero de layout. La mayoría de las suites disponibles son capaces de hacer todo esto permitiendo crear módulos y footprints a partir de plantillas o desde cero. Debido a las especificaciones, se descartan las opciones de pago, aunque como se comprueba más adelante, las capacidades de las versiones gratuitas son más que suficientes para el diseño requerido. 2.9.1.1.1kiCad Se trata de una suite software licenciada bajo GPL para la creación de esquemáticos y placas de circuito impreso. Se encuentra en un estado maduro de desarrollo y es mantenido por un amplio grupo de desarrolladores y usuarios. Se compone de un gestor de proyectos que a su vez lanza los otros cuatro subprogramas componentes de la suite: • • • • Eeschema: para la creación de esquemáticos. Pcbnew: para la creación de layouts o circuitos impresos. Gerberview: para el visionado y modificación de los ficheros gerber, necesarios para la industrialización de los circuitos impresos. Cvpcb: selector de footprints (huellas) para asociarlos con los componentes listados en el netlist generado por Eeschema. Además incorpora soporte 3D en colaboración con el software Wings3D que permite crear formas tridimensionales. -35Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 7 – Captura d epantalla de kiCad eeschema y editor de librería. 2.9.1.1.2gEDA Es otra suite de desarrollo de placas de circuito impreso, al igual que kiCad se encuentra licenciado bajo GPL y está mantenido por una gran comunidad de desarrolladores. Tiene versiones disponibles para Windows, MacOS y Linux. Esta suite se subdivide en varios programas: • • • • • gschem: herramienta gráfica de creación y edición de esquemáticos. gnetlist: es la herramienta que se encarga de generar el netlist a partir de la salida de gschem y los ficheros .sym (symbol). gattrrib: es el editor de atributos de esquemáticos, creando una hoja de cálculo mostrando todos los componentes en filas, con sus atributos listados en columnas. gpcb: se trata de la herramienta para la edición de la placa de circuito impreso y generación de ficheros gerber. gsymchek: es el revisor de símbolos de gEDA, con esta herramienta se puede comprobar la validez de los módulos a utilizar por la suite. -36Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 8 - Captura de pantalla de gEDA. 2.9.1.1.3FreePCB Es un editor de PCBs que corre solo bajo Windows y licenciado también bajo GPL. Ha sido diseñado para ser fácil de entender y utilizar mientras es capaz de obtener resultados profesionales. Sin embargo, tiene la gran desventaja de que el netlist debe ser importado desde otro programa como ser OrCAD Capture, eeschema o geschem. Imagen 9 – Captura de pantalla de FreePCB -37Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.1.2Placas de circuito impreso (PCBs) Las dimensiones de las placas deberán ser las mismas para todas ellas para asegurar una estética uniforme. Como el componente de mayor tamaño será la pantalla LCD a escoger, ésta placa será la que determine el tamaño de las demás. Como se ha dicho en las especificaciones, deberá contar con cuatro separadores o step-offs en las esquinas para proporcionar estabilidad mecánica al conjunto montado de placas. Debido a que no hay líneas de alta velocidad como ser señales de vídeo o radiofrecuencia implicadas, no serán necesarios planos de masa o de tensión. Por ello debería ser suficiente con dos capas de pistas: una en la cara inferior y otra en la superior. Los componentes se dispondrán preferentemente en la cara superior y si es necesario se podrá utilizar la cara inferior, aunque no se recomienda ya que poblar ambas caras aumenta el coste de producción. 2.9.1.3Conector del bus de expansión La interconexión entre placas debe ser fiable y robusta, para ello existen diversas soluciones como se han observado en los antecedentes. El kit TinkerKit de Arduino por ejemplo, utiliza tiras de pines through-hole de paso 2.54 mm hembras con el terminal macho suficientemente largo para conectarse con la placa principal del Arduino. Por otra parte, el diseño de referencia de los kits Rabbit de Digi International, utilizan conectores SMD cuadrados de 2x25 pines hembra tanto por la cara superior como por la inferior. Para conectar dos placas entre sí, utilizan un conector machomacho del mismo paso y de espigas suficientemente largas para llegar a ambos conectores. Finalmente, el diseño del Freescale Tower System rompe con el típico conector macho-hembra vertical incluyendo dos placas laterales en las cuales se insertan tanto la placa principal como las secundarias, recordando su sistema al ensamblaje de un PC. Este sistema, si bien robusto resulta considerablemente más caro que los anteriores ya que implica dos placas más, conectores más caros y un límite al número de placas apilables en un mismo sistema. -38Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 10 - TinkerKit para Arduino Imagen 11 - Placas de desarrollo para módulos Rabbit Imagen 12 - Freescale Tower System Debido a que en los módulos XBee todos los pines tienen múltiples funcionalidades (salvo los pines destinados a alimentación, masa y tensión de referencia) se deberán conectar al bus de expansión todos ellos. El modelo de montaje superficial S2C tiene 37 pines lo cual nos deja un mínimo de 40 terminales si consideramos las tensiones de alimentación y masa. Aún así es recomendable dejar en el conector pines adicionales para contemplar un posible evolución en futuras versiones, la inclusión de placas auxiliares que necesiten utilizar señales entre sí o bien un diseño por parte de terceros en el que interes mantener compatibilidad con el presente proyecto. -39Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.2- Placa base 2.9.2.1Alimentación Como se definen en las especificaciones de diseño, las posibles conexiones de alimentación del sistema serán: 2.9.2.1.1Jack de alimentación (corriente continua no regulada 6-30 V) Existen gran cantidad de conectores tipo Jack de distintos diámetros, polos, robustez y precio, en este caso se trataría de un Jack de dos polos, tipo hembra y capaz de soportar una corriente máxima de 2 amperios. Las dimensiones de los contactos se deberán determinar en función de la disponibilidad de fuentes de potencia comerciales. Como se trata de una alimentación bipolar en CC solo serán necesarios dos contactos para positivo y negativo. A continuación se detallan distintas opciones comerciales: Kycon KLDVHCX0202B Kycon KLDVHCX0202ALT Diám. contacto interior Diám. contacto exterior Largo del contacto Tipo Corriente nominal Tensión nominal 2 mm 5.7 mm 4.4 mm Vertical 5A 24 V 2.5 mm 6 mm 4.4 mm Vertical 5A 16 V Kycon KLDVX0202B 2.5 mm 6.4 mm 8 mm Vertical 3.5 A 24 V Switchcraft 732A 1.3 mm 1.27 mm 4.4 mm Recto en panel 5A 12 V Tabla - 2 Comparativa conectores Jack 2.9.2.1.2Terminal blocks Como en el caso anterior, existe una amplia oferta en el mercado en este tipo de conectores. Sin embargo, se tratan de unos conectores mucho más estandarizados y flexibles ya que no se debe considerar un conector tipo macho como en el caso anterior. Además del paso entre pines, se deberá tener en cuenta la tensión y corriente nominales capaz de soportar. Como se trata de una alimentación bipolar en CC solo serán necesarios dos contactos para positivo y negativo. A continuación se detallan distintas opciones comerciales: Phoenix Contact 1710085 Paso entre contactos Tipo Corriente nominal Tensión nominal 6.35 mm SMD/SMT 32 A 500 V Phoenix Contact 1792863 5 mm Through-Hole 10 A 30 V TE Connectivity 1986484-2 5.08 mm Enchufable Through-Hole 16 A 300 V Tabla - 2 Comparativa Terminal Blocks -40Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 13 - Phoenix Contact 1710085 Imagen 15 - TE Connectivity 1986484-2 Imagen 14 - Phoenix Contact 1792863 2.9.2.1.3Baterías alcalinas. El uso de baterías alcalinas garantiza disponibilidad y facilidad de compra en todo el mundo, ya que utilizar tipo de baterías específico encarece el producto y crea una barrera que no es de interés en este proyecto. Debido a que se recomienda que el módulo XBee Programable trabaje con una alimentación nominal de 3,3 V, el mínimo número de pilas de 1,5 V a conectar serían 3 para obtener 4,5 V que podrán ser regulados a 3,3 V. Por otra parte, si se colocase una pila más para llegar a una tensión de 6 V podría alimentarse además el regulador de 5 V y así alimentar a los dispositivos que requieran esta alimentación. La inclusión de pilas alcalinas en los diseños electrónicos es muy sencilla ya que hay una gran cantidad de fabricantes que ofrecen soluciones para el montaje en placa. Sin embargo, hay que determinar el número de pilas a colocar y su tamaño. A continuación se listan algunas posibilidades comerciales: Keystone – 5231 Keystone – 55 Eagle Plastic 12BH411P-GR Eagle Plastic 12BH611-GR Eagle Plastic 12BH341P-R-GR Tipo de Batería Número A, AA, 9V Cualquiera (clip) AAA Cualquiera (clip) AAA 4 9V 1 AA 4 Montaje SMD/SMT SMD/SMT Through-Hole SMD/SMT Through-Hole Tabla 3 - Comparativa de montaje de pilas alcalinas Imagen 16 Keystone 5231 Imagen 17 Keystone 55 Imagen 18 - Eagle Plastic 12BH411P-GR Imagen 19 - Eagle Plastic 12BH341P-R-GR -41Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.2.1.4Conector USB El conector USB cumple la doble función de alimentar a los dispositivos y proporcionar comunicación con el debugger y puerto serie de la placa principal. Si bien el USB se trata de un estándar, existen variantes en lo que se refiere al conector que se detallarán más adelante en esta sección. Solo se tendrán en cuenta las variantes en placa que estén especificadas en el estándar o sean de uso masivo en componentes de electrónica de consumo, ya que utilizar un tipo de conector específico encarece la producción y se aleja del espíritu OpenHardware del proyecto. Imagen 20 - Conectores USB estándar. Estándar USB 5 metros Longitud Sí Conectable en caliente (Hot-plugging) Sí Externo 5V Voltaje máximo 500 a 900 mA Corriente máxima Ancho 1 bit Señal de datos Ancho de banda 1.5/12/180/5000 Mbits/s 4 hilos en par trenzado Cable 4 (1 alimentación, 2 datos, 1 masa) Pines Tabla 4 - Especificaciones del estándar USB Conector USB tipo A y B Están muy extendidos en electrónica de consumo pero actualmente su uso se ha visto reducido ya que las opciones micro USB y mini USB ocupan menos espacio y cumplen la misma función. El estándar tipo A está pensado para equipos que estarían permanentemente conectados, como ser un ratón, teclado, un hub USB, etc. Por otra parte, el estándar B está orientado a equipos que requieran una conexión ocasional, como es el caso de las impresoras y por lo tanto es más robusto que el A. Conector mini y micro USB Se trata de variantes más pequeñas del estándar USB orientadas a equipos portables como ser teléfonos móviles, PDAs, tablets, discos duros externos, etc. Es de destacar que el estándar mini USB está actualmente obsoleto mientras que el mini USB ha sido aceptado en 2009 como estándar por la mayoría de fabricantes de telefonía móvil (incluyendo Hewlett-Packard, HTC, LG, Motorola, Nokia, Research In Motion, -42Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Samsung y Sony Ericsson); lo cual lo convierte en un estándar muy extendido y abarata costes. Imagen 21 - Conectores MicroUSB A (izq.) y B (der.) Imagen 22 - Conector microUSB 2.9.2.2Reguladores de tensión Para obtener una tensión regulada existen distintas soluciones soluciones de diseño en función de las tensiones, corrientes, consumos y niveles de ruido que se puedan tolerar. La opción más sencilla y barata es el típico regulador por diodo Zener, en el cual el diodo trabaja en inversa y absorbe el exceso de corriente, manteniendo un nivel constante e igual a su tensión Zener entre cátodo y ánodo. ánodo. Además, se limita la corriente con una resistencia en serie para evitar mal funcionamiento. Imagen 23 - Regulador Zener básico. Esta no suele ser una opción viable ya que el consumo del propio regulador es muy alto, disipando calor y bajando enormemente su rendimiento. Por otra parte, en la mayoría de los diseños electrónicos se utilizan reguladores de tensión integrados que proporcionan tensiones y corrientes de muy amplio rango. Dichos reguladores están disponibles en variantes de salida fija a tensiones estándar (1,5V; 3V; 5V, etc.) o ajustables mediante resistencias. Hoy en día es más común encontrar en las fuentes de alimentación reguladores integrados, normalmente son componentes muy parecidos a los transistores de potencia, suelen tener tres terminales, uno de entrada, un común o masa, y uno de -43Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA salida, tienen una capacidad de reducción del rizado muy alta y normalmente sólo hay que conectarles un par de condensadores. Existen circuitos reguladores con un gran abanico de tensiones y corrientes de funcionamiento. La serie más conocida de reguladores integrados es la 78xx y la serie 79xx para tensiones negativas. Los de mayor potencia necesitarán un disipador de calor, este es el principal problema de los reguladores serie lineales tanto discreto como integrado, al estar en serie con la carga las caídas de tensión en sus componentes provocan grandes disipaciones de potencia. Normalmente estos reguladores no son buenos para aplicaciones de audio por el ruido que pueden introducir en preamplificadores. Para ello es mejor utilizar regulación con componentes discretos o reguladores tipo LDO de bajo ruido. 2.9.2.2.1Reguladores conmutados Los reguladores conmutados solucionan los problemas de los dispositivos anteriormente citados, poseen mayor rendimiento de conversión, ya que los transistores funcionan en conmutación, reduciendo así la potencia disipada en estos y el tamaño de los disipadores. Se pueden encontrar este tipo de fuentes en los ordenadores personales, en electrodomésticos, reproductores DVD, etc.; una desventaja es la producción de ruido electromagnético producido por la conmutación a frecuencias elevadas, teniendo que apantallar y diseñar correctamente la PCB (Placa de Circuito Impreso) del convertidor. 2.9.2.2.2Reguladores Lineales En aplicaciones de batería se suelen utilizar reguladores LDO (Low Drop Out) que son capaces de operar con diferencia de tensiones entrada-salida muy bajas, a diferencia de los conmutados, sin embargo esta opción es buena cuando la tensión de entrada máxima no supera en un 50% a la tensión de salida; ya que toda esa diferencia de potencial será disipada en forma de calor. 2.9.2.3Módulo XBee Programable Los módulos XBee están disponibles en dos formatos: S2B y S2C, siendo su principal diferencia el tipo de montaje. La versión S2B tiene un encapsulado through-hole de 20 pines con paso de 2 mm que suele ser montado en un socket hembra en vez de soldado para su fácil reemplazo. Por otra parte, la versión S2C tiene 37 pines y está orientada al montaje superficial por soldadura. Otra diferencia fundamental es que los módulos S2B tienen distintas variantes de antena, como ser una antena de cable coaxial montada, versión on-board antenna, conector RPSMA (Reverse Polarity Sub Miniature versión A) para antena externa y UFL. Otra diferencia es el chip de radio que llevan integrado: un Ember EM357 en el caso del S2C y un Ember EM250, aunque a efectos de programación esto no es relevante. Además, los módulos S2C tienen más pines disponibles y la opción de comunicarse con el chip de Ember mediante SPI, o bien utilizar el puerto SPI a través de su pinout -44Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA secundario y así utilizar los pines del primario para las otras funcionalidades que permite el multiplexado. Imagen 24 - Módulos S2B con distintas variantes de antena Imagen 25 - Módulo XBee S2C Sin embargo, ambos modelos son compatibles entre sí ya que el fabricante ha mantenido la funcionalidad de los pines en el mismo orden, si bien la numeración no es idéntica. Así la correspondencia es: Módulos S2C Pines 2 a 11 Pines 24 a 33 Pines 12 a 23 Módulos S2B Pines 1 a 10 Pines 11 a 20 No disponibles Tabla 5 - Especificaciones del estándar USB Esta correspondencia permite utilizar la misma huella o footprint para ambos módulos sin mayores cambios. 2.9.2.4Indicadores luminosos La tecnología actual ha impuesto a los LEDs como opción por defecto para señalizaciones luminosas montadas en placa gracias a su brillo, facilidad de uso y bajo consumo. Debido a su amplio espectro de uso, hay muchas variaciones de LEDs en lo que se refiere a tamaño, luminosidad, consumo y tipo de montaje. Sin embargo, por las especificaciones de diseño la elección es bastante ajustada ya que se tratará sobre todo de LEDs de bajo consumo y coste de montaje superficial. Ya que las placas son apilables, los indicadores deberán situarse sobre un borde de la placa para su apreciación desde cierta distancia. También se deberá calcular su resistencia limitadora en función de las tensiones que soportarán y la corriente mínima para ser apreciable. Un aspecto a considerar es cómo se controlará el apagado y encendido de los indicadores. El módulo XBee puede proveer a través de sus puertos corriente suficiente para encender un LED, como el de estado de asociación (ASSOC Pin). -45Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Obviamente las fuentes reguladas también pueden entregar corriente y como su tensión es conocida el valor de la resistencia limitadora es fijo. Sin embargo, en el caso de la tensión de entrada, ésta puede variar entre 6 y 30 voltios, lo que deja dos opciones: • • Atacar el LED con una resistencia en serie que limite la corriente para el peor caso (la mayor tensión soportada). Esto si bien es económico y sencillo, hace que el brillo del indicador varíe en función de la tensión de entrada. Atacar el LED a través de un transistor en emisor común cuya base se excita con la tensión de entrada. Así, calculando un valor de resistencia que sature el transistor en todas las tensiones de trabajo, se obtiene un brillo constante para todas las tensiones. Imagen 26 - Circuito de excitación de un LED con alimentación variable Imagen 27 - LED SMD de huella 1206. La inmensa mayoría de los indicadores luminosos LED comerciales son válidos para el presente diseño. Por citar algunos: Fabricante: Vishay Osram Opto Semiconductor 3.2 mm x 1.6 mm Tamaño de LED: Color de iluminación: 1.6 mm x 0.8 mm x 0.8 mm Ámbar Empaquetado / Estuche: 0603 Longitud de onda: 597 nm 20 mA Intensidad luminosa: 180 mcd 530 nm Ángulo de visionado: 130 deg 5600 mcd to 18000 mcd Empaquetado: Reel 20 deg Corriente directa: 20 mA 1.6 mm Voltaje directo: 2.4 V Dome Dimensiones de la lente: 1.1 mm x 0.8 mm Verde 1206 Tabla 6 - Especificaciones LED Vishay y Osram -46Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.2.5Pulsadores Existen diversos tipos de pulsadores para montaje en PCB, los criterios a tener en cuenta a la hora de escoger uno son: • • • • • • Tensión nominal. Corriente máxima soportada. Tipo de actuador: espiga, botón plano, botón tipo domo, etc. Fuerza necesaria para activarlo. Tipo de montaje: superficial o through-hole. Dirección de la pulsación respecto a la placa: vertical, horizontal. A continuación se detallan algunos pulsadores comerciales: Fabricante: C&K Components E-Switch E-Switch Modelo: KMS231GLFS TL3301NF16 TL3300CF16 Fuerza de operación: 3N 160 gf 160 gf Actuador: Rectangular Circular Rectangular Valor de corriente (Máx.): 50 mAmps 50 mAmps 50 mAmps Voltaje máximo DC: 32 Volts 12 Volts 12 Volts Forma de contacto: Función de conmutación: Estilo de terminación: Estilo de montaje: Serie: Recorrido: 1 Form A (SPST-NO) Momentary SMD/SMT SMD/SMT KMS 0.3 mm +/0.15 mm SPST Momentary SMD/SMT SMD/SMT TL3301 0.35 mm SPST SMD/SMT SMD/SMT TL3300 TL3300 0.35 mm Tabla 7 - Comparativa de pulsadores. Imagen 28 - Pulsador KMS231GLFS Imagen 29 - Pulsador TL3301NF16 Imagen 30 - Pulsador TL3300CF16 Expansor de entradas y salidas 2.9.2.6Los expansores de entradas/salidas son muy útiles en este tipo de proyectos ya que si bien el microprocesador de Freescale integrado en el módulo XBee Programable dispone de cuatro puertos de 8-bits capaces de ser utilizados como GPIOs, no todas las señales están disponibles en el exterior, o bien son utilizadas internamente o están multiplexadas con otras señales (puertos SCI, SPI, I2C, PWMs, etc.). La desventaja de utilizar estos expansores es la baja velocidad de conmutación que disponen, ya que implica acceder a los registros que controlan las entradas y salidas a través del protocolo que implementen. Sin embargo, es de destacar que la posibilidad de generar interrupciones en la mayoría suele ser aceptablemente alta (< 1 ms), pero la identificación de qué línea ha generado la interrupción sí es lenta ya que es -47Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA necesario hacer una comprobación del registro de estado de las entradas y/o de máscaras de interrupción (polling). Las consideraciones a tener en cuenta son: • • • • • Número de entradas/salidas configurables. Protocolo: generalmente I2C o SPI. Existencia y tipo de línea de interrupción (colector abierto, digital). Si se planea conectar varios dispositivos capaces de generar una interrupción hardware, la salida a colector abierto es una opción perfecta para obtener una función AND cableada y poder conectar varias salidas sin problemas. Existencia de línea de Reset y valor lógico de activación. Encapsulado (SMD/SMT, through-hole, QFN, etc). A continuación se listan algunos expansores de GPIOs disponibles en el mercado. Fabricante: NXP Exar Exar Exar Tensión de alimentación: Número de entradas/salidas: Disipación de potencia: Rango de temperaturas operativas: Encapsulado: Protocolo: Frecuencia de reloj máxima: Frecuencia operative máxima: Tipo de montaje: Corriente de salida: 2.3 to 5.5 V 8 1.65 V to 3.6V 8 1.65 V to 3.6 V 8 1.65V-3.6V 8 190 mW 40 C to + 85 C 200 mW 40 C to + 85 C 200 mW 40 C to + 85 C SO-16 I2C, SMBus 400 KHz 100 KHz TSSOP-16 I2C, SMBus 400 KHz 100 KHz QFN-16 I2C, SMBus 400 KHz 100 KHz 200 mW 40 C to + 85 C TSSOP-16 SPI Bus 26 MHz 15 MHz SMD/SMT 160 mA SMD/SMT 160 mA SMD/SMT 160 mA SMD/SMT 160 mA Tabla 8 - Comparativa entre expansores de GPIOs. 2.9.2.7Debugger El microprocesador que gobierna al módulo XBee, Freescale MC9S08QE32/128 soporta BDM (Background Debug Mode). Esto es una interfaz electrónica que permite depurar sistemas embebidos. Si bien hay opciones comerciales para depuración como la que incluye el kit de desarrollo de Digi International del Programmable XBee (el P&E Multilink Universal); en este caso se trata de analizar soluciones de bajo coste y preferiblemente de fuentes abiertas que puedan ser montadas en la misma placa. Existen comunidades que proporcionan esquemáticos y firmware para construir debuggers a través de puertos serie y USB tomando como base un microprocesador de 8 o 16 bits a través de cuyas GPIOs se envían las señales al microprocesador objetivo. A continuación se analizan las opciones existentes. -48Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.2.7.1OSBDM El proyecto OSBDM se trata de un diseño de hardware, software y firmware que provee capacidades de depuración para distintos microprocesadores de Freescale, llegando a estar embebido en varias placas de desarrollo de Freescale. El proyecto está soportado y mantenido por una gran comunidad en la cual la empresa fabricante de software y hardware de depuración P&E Microcomputer Systems tiene una amplia participación. Una ventaja que tiene este proyecto es que se encuentra integrado en el entorno de CodeWarrior. 2.9.2.7.2USBDM El proyecto USBDM consiste en una interfaz hardware para un rango de microcontroladores de Freescale diseñado para trabajar con el entorno CodeWarrior bajo Windows y Linux. Se basa en una combinación de varios proyectos libres de debuggers de distintas familias, incluyendo código fuente del anteriormente mencionado OSBDM. Actualmente es el proyecto de debugger libre más desarrollado y con comunidad más activa, teniendo su lugar en los foros oficiales de Freescale. La página del proyecto ofrece los esquemáticos, PCB de referencia, código fuente, imágenes compiladas listas para flashear. Este proyecto tiene versiones que incorporan un puerto serie a través de la interfaz USB a la par de las funcionalidades de depuración. Además, la versión más reciente no necesita de un debugger externo para programar por primera vez el firmware del debugger, ya que utiliza un microprocesador de la familia JS16 de Freescale que incorpora un bootloader en ROM a través del cual, mediante una aplicación gratuita, se flashea la aplicación en el debugger. 2.9.2.8Puerto serie Existen distintas soluciones para incluir un puerto serie en un diseño electrónico. El principal problema es la diferencia de tensiones entre el PC y el microprocesador, ya que el microprocesador objetivo trabaja a 3,3 V y el puerto serie del PC tiene niveles RS-232. Una solución muy extendida consiste en utilizar un integrado MAX232 para adaptar niveles de tensión entre un microprocesador y un puerto RS-232 estándar. Se trata de un circuito integrado de Maxim que convierte las señales de un puerto serie RS-232 de las señales RX, TX, CTS y RTS. El circuito integrado tiene salidas para manejar niveles de voltaje del RS-232 (aprox. ± 7.5 V) que las produce a partir de un voltaje de alimentación de + 5 V utilizando multiplicadores de voltaje internamente con la adición de condensadores externos. -49Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Las entradas de recepción de RS-232 (las cuales pueden llegar a ± 25 V), se convierten al nivel estándar de 5 V de la lógica TTL. Estos receptores tienen un umbral típico de 1.3 V, y una histéresis de 0.5 V. La versión MAX232A es compatible con la original MAX232, y tiene la mejora de trabajar con mayores velocidades de transferencia de información (mayor tasa de baudios), lo que reduce el tamaño de los condensadores externos utilizados por el multiplicador de voltaje. Una versión más nueva de este circuito integrado, el MAX3232 también es compatible con el original, pero opera en un rango más amplio, de 3 a 5.5 V. Este sería una opción más viable ya que eliminaría un segundo adaptador de niveles de TTL a 3,3 V entre el MAX232 y el módulo XBee programable. Imagen 31 - Circuito típico de aplicación de un MAX2322 Sin embargo, los actuales PC (especialmente los portátiles) rara vez incluyen un puerto serie estándar en sus placas bases, ya que ha quedado obsoleto en la electrónica doméstica y ha sido progresivamente reemplazado por el estándar USB. Además, tanto el conector DB-9 como el cable necesario encarecen innecesariamente el resultado final. Es por ello que los diseños más modernos integran adaptadores USB a RS-232, como el FTDI230x. Este es un chip que integra el protocolo USB sin necesidad de flashear firmware adicional y permite tasas de transferencia de 300 Baudios a 3 MBaudios; preparado para trabajar tanto a 5V como a 3,3V. -50Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 32 - Ejemplo de puente USB a RS-232 utilizando un FTDI230x. Finalmente, se puede optar por un puerto serie a través de USB aprovechando el módulo de comunicación serie que integran los microprocesadores de los debuggers anteriormente analizados. Esto ahorraría costes y además evitaría un conector extra o bien, lógica adicional para multiplexar dos dispositivos USB (debugger y puerto serie) a través del mismo puerto. -51Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.3- Placa de Interfaz Hombre-Máquina Esta placa se basará esencialmente en el diseño del XBee Display producido por Digi International. Dicho diseño emplea un microprocesador PIC para controlar una pantalla Displaytech 64128M a través del puerto SPI, mientras que por el puerto serie recibe información a través de un módulo XBee no-programable y envía el estado de los pulsadores e indicadores luminosos. 2.9.3.1Pantalla LCD En las especificaciones de diseño se recomienda la utilización de un display que utilice el controlador ST7565 ya que la API del XBee programable incluye actualmente un set de funciones que permite operar con dicho display a través del puerto SPI. Se analizan otras opciones además de la sugerida por el diseño de referencia XBee_Display. Imagen 33 - Electronic Assembly EA DOGM132B Imagen 34 - Displaytech S4128M Imagen 35 – Electronic Assembly DOGL128B Fabricante: ELECTRONIC ASSEMBLY DISPLAYTECH ELECTRONIC ASSEMBLY Modelo: Densidad de píxeles: Tipo de fluido: Tamaño de módulo (W x H x T): Área de visionado (W x H): Interfaz: Color del fondo: Rango de temperatura de operación: Empaquetado: EA DOGM132B-5 132 x 32 STN Negative 55 mm x 17.5 mm x 2.7 mm 48.17 mm x 13.27 mm EA DOGL128B-6 128 x 64 STN 67.8 mm x 47.96 mm x 2.8 mm 64 mm x 36 mm SPI Azul 20 C to + 70 C S64128M 128 x 64 FSTN 77.4 mm x 52.4 mm x 10.5 mm 48.17 mm x 13.27 mm SPI Blanco 20 C to + 70 C Bulk Bulk Bulk SPI Blue 20 C to + 70 C Tabla 9 - Comparativa entre pantallas LCD. -52Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.3.2Indicadores Luminosos Como se indicó en la sección 2.9.2.4-Indicadores Luminosos, existe una gran cantidad de soluciones válidas y muy similares entre sí. En este caso la diferencia radica en que la visualización será frontal y no a un lateral de placa. Es decir, la zona de disposición de los LEDs será en la franja inferior dentro de la placa y no hacia los bordes. 2.9.3.3Pulsadores Como también se indicó en la sección 2.9.2.5-Pulsadores del diseño de la placa principal, existen muchísimas posibilidades a la hora de seleccionar un actuador. Sin embargo, en este caso el accionamiento se hará de manera vertical, en el frente de la placa y no de forma acodada. Los pulsadores se deberían colocar en la franja inferior de la placa cerca de los LEDs del punto anterior. Además, deberán tener un tipo de actuador que permita el accionamiento desde un dispositivo de palanca montado en una hipotética caja o gabinete. Finalmente, la robustez y tamaño de los pulsadores se esperan superiores a los montados en la placa principal, ya que serán accionados con mayor frecuencia y por usuarios no técnicos. 2.9.3.4Conexión con pulsadores e indicadores Una solución de bajo coste sería utilizar pines nativos del XBee configurables como entrada o salida para la lectura de los botones o la escritura en los indicadores. Sin embargo, esta solución no es conveniente ya que implica reservar pines multifunción y ello privaría de funcionalidad a las demás placas que necesitaran utilizarlos. Por ello, se recomienda utilizar expansores de GPIOs como los analizados en la sección 2.9.2.6-Expansores de entradas y salidas del diseño de la placa principal. Finalmente, podrían utilizarse dichas GPIOs adicionales montadas en la placa principal para la finalidad requerida, pero esto necesitaría que la placa principal contara siempre con el expansor, haciendo además que la placa de interfaz hombre-máquina no sea tan autónoma en el sentido de depender de la existencia de un componente en una placa externa, pudiendo tenerlo integrado. 2.9.3.5Control de la Retroiluminación El control de la iluminación de la pantalla puede ser interesante tanto para mejorar su visibilidad como para reducir el consumo. Esto puede hacerse mediante control todo/nada o bien modulando la tensión que cae entre ánodo y cátodo mediante una señal modulada en ancho de pulso (PWM). En todo caso, para realizar un control se debe atacar dichos terminales a través de un transistor para evitar un exceso de corriente en una salida de circuito integrado (ya sea expansor GPIO o puerto de microcontrolador). -53Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.4- Placa de expansión de entradas y salidas Tal como su nombre indica, el alma de esta placa será un expansor de GPIOs como los discutidos en el apartado 2.9.2.6-Expansor de entradas y salidas, solo que probablemente deberá contar con mayor número de pines configurables o bien más de un expansor. 2.9.4.1Entradas-Salidas digitales Las entradas y salidas digitales destinadas a propósito general deben ser acondicionadas y protegidas adecuadamente para evitar el mal funcionamiento o daño del expansor de GPIOs. Entre las protecciones más comunes se encuentran: • • • • Protección frente a sobre-corriente. Protección frente a sobre-tensión. Protección frente a descargas electrostáticas. En el caso de entradas: fijación a un valor conocido (resistencias pull-up o pull-down) para evitar conmutaciones aleatorias en caso de no estar conectada. Entre las protecciones frente a sobre-corrientes se suele colocar una resistencia en serie con la entrada, lo cual provoca una caída de tensión entre sus extremos evitando así sobrepasar las limitaciones que impone el dispositivo. Como contraparte, aumenta la resistencia de entrada o de salida del dispositivo; por lo que no se puede colocar una resistencia excesivamente alta. También es una solución colocar resistencias variables con la temperatura o PTC, también conocidos como fusibles redisparables, rearmables o polyfuse. En estos dispositivos al aumentar la corriente, aumenta la temperatura por efecto Joule y por lo tanto aumenta su resistencia de forma no lineal. Calculando su punto de trabajo, se puede obtener un comportamiento similar al de un fusible con la ventaja de que no necesita ser reemplazado una vez se ha disparado la protección. Imagen 36 - Distintos modelos de PTCs Para proteger las entradas frente a un exceso de tensión, se puede colocar un diodo Zener en inversa que limite la tensión al valor máximo soportado por la entrada, absorbiendo el exceso de corriente. Otra opción consiste en colocar diodos polarizados en inversa hacia ambas alimentaciones (+Vcc y GND) lo cual da un camino a la corriente cuando la tensión excede a la de alimentación o es inferior a la referencia -54Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA (conexión errónea o no referenciada). Esta última configuración también es ampliamente utilizada para proteger respecto a descargas electrostáticas provenientes tanto de máquinas como del cuerpo humano; en cuyo caso es necesario que los diodos tengan un tiempo de respuesta mucho más alto ya que la descarga es de varios miles de voltios en un período de tiempo inferior al milisegundo. Finalmente, si bien no es una protección propiamente dicha, se suele colocar un condensador conectado a masa en conjunto con una resistencia en serie lo que crea un filtro de paso bajo que cortocircuita las componentes de alterna características del ruido electromagnético y los rebotes de contactos mecánicos. Como contrapartida, esto perjudica la velocidad de conmutación de las salidas, pero no es un problema ya que por el hecho de utilizar un expansor a través de I2C la velocidad de conmutación está limitada. 2.9.4.2Salidas a colector abierto Una salida digital a colector abierto en un integrado es una salida cuya etapa final en emisor común no tiene la resistencia de polarización del colector. De esta forma se permite escoger el valor de la resistencia y el nivel lógico alto de salida. Es decir se deja la posibilidad de dar la tensión de salida alta diferente a la alimentación del integrado. Es muy útil cuando hay que comunicar circuitos lógicos de niveles altos distintos o bien para activar dispositivos que requieren más corriente o tensión que la que puede entregar un puerto de microprocesador o patilla del expansor. Tradicionalmente, se ha utilizado el integrado ULN2803 para implementar esta configuración de salida. Dicho integrado consta de un conjunto de 8 transistores Darlington con la salida a colector abierto más un diodo conectado en inversa que actúa como circuito de descarga de bobinas. Si bien, existen variantes en función del número de salidas, tensiones de entrada, corrientes máximas y protecciones. Imagen 37 - Pinout y configuración interna de un ULN2803 -55Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.4.3Salidas a relé Existen multitud de tipos distintos de relés, dependiendo del número de contactos, de la intensidad admisible por los mismos, tipo de corriente de accionamiento (AC/DC), tiempo de activación y desactivación, tipo de montaje (superficial, throughhole), etc. 2.9.4.3.1Relés electromecánicos • Relés de tipo armadura: pese a ser los más antiguos siguen siendo los más utilizados en multitud de aplicaciones. Un electroimán provoca la basculación de una armadura al ser excitado, cerrando o abriendo los contactos dependiendo de si es NA (normalmente abierto) o NC (normalmente cerrado). • Relés de núcleo móvil: a diferencia del anterior modelo estos están formados por un émbolo en lugar de una armadura. Debido a su mayor fuerza de atracción, se utiliza un solenoide para cerrar sus contactos. Es muy utilizado cuando hay que controlar altas corrientes • Relés polarizados o biestables: se componen de una pequeña armadura, solidaria a un imán permanente. El extremo inferior gira dentro de los polos de un electroimán, mientras que el otro lleva una cabeza de contacto. Al excitar el electroimán, se mueve la armadura y provoca el cierre de los contactos. Si se polariza al revés, el giro será en sentido contrario, abriendo los contactos ó cerrando otro circuito. 2.9.4.3.2Relé de estado sólido Se llama relé de estado sólido a un circuito híbrido, normalmente compuesto por un optoacoplador que aísla la entrada, un circuito de disparo, que detecta el paso por cero de la corriente de línea y un triac o dispositivo similar que actúa de interruptor de potencia. Su nombre se debe a la similitud que presenta con un relé electromecánico; este dispositivo es usado generalmente para aplicaciones donde se presenta un uso continuo de los contactos del relé que en comparación con un relé convencional generaría un serio desgaste mecánico, además de poder conmutar altos amperajes que en el caso del relé electromecánico destruirían en poco tiempo los contactos. Estos relés permiten una velocidad de conmutación muy superior a la de los relés electromecánicos. 2.9.4.3.3Comparativa Por facilidad de uso y versatilidad es preferible utilizar relés electromecánicos de baja potencia ya que siempre pueden ser utilizados como relés intermedios que activen a su vez un relé de mayor potencia si es necesario. El uso de relés de estado sólido implicaría conocer de antemano el uso que se le daría, además de ser considerablemente más caros que los electromecánicos. -56Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.4.4Entradas opto-acopladas Una entrada opto-acoplada u opto-aislada tiene la ventaja de permitir la lectura de valores lógicos de circuitos externos con un aislamiento galvánico. Esto puede ser interesante por ejemplo para detectar un cruce por cero de una tensión de red o bien leer de un dispositivo que trabaja a una tensión flotante o muy superior a la que opera en el circuito. Básicamente se componen de un foto-emisor para la entrada y un foto-receptor para la salida aislados galvánicamente pero en el mismo encapsulado. De esta forma, cuando el foto-emisor (normalmente un diodo emisor de luz) se excita adecuadamente el foto-receptor (típicamente un fototransistor o foto-triac en alterna) también lo hará debido a las emisiones del foto-emisor; es esta salida la que conectaremos al circuito. Imagen 38 - Circuito básico de un optoacoplador. Los fabricantes de este tipo de integrados ofrecen una variada gama en lo que respecta a tensiones, corrientes, número de optoacopladores por integrado, encapsulado, etc. Un detalle a tener en cuenta es que el circuito de la Imagen 38 Circuito básico de un optoacoplador. Solo permite el paso de la corriente en un sentido y de conectarse al revés no solo no funcionaría sino que podría superarse la tensión inversa máxima del diodo y destruir el dispositivo. Para evitar estos accidentes o bien para trabajar con tensiones alternas, existen variantes en las cuales en vez de un solo fotodiodo se colocan dos en anti paralelo. 2.9.4.5Conectores en borde de placa Existe gran cantidad de opciones de interconexión entre las placas y el mundo exterior. Entre los grupos de conectores se deberá tener en cuenta tensiones y corrientes nominales, tipo de soldadura, resistencia que presentan, facilidad de uso y tipo de conexión (enchufable, tornillos, pestañas, etc.). El modelo de conector debería ser versátil, barato y fácilmente reemplazable. Por todas estas características la opción más extendida en los diseños es el uso de bloques terminales como los discutidos en el apartado 2.9.2.1.2-Terminal Blocks. -57Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.5- Placa de sensores 2.9.5.1Conversor Analógico-Digital Este es el dispositivo más importante de la placa, ya que gran parte de la precisión y fiabilidad de la medida dependerá de este componente. A la hora de escoger uno para el diseño se deben tener en cuenta varios aspectos: tecnología, resolución, precisión, protocolo de comunicaciones, capacidad de generar interrupción(es) programable(s), tensiones y corrientes nominales y filtrado de ruido. 2.9.5.2Interfaz de sensores de tensión En el ámbito industrial es muy común encontrar sensores que entregan una salida de 0 a 10 V en la cual se cubre su rango de medidas. Si bien el ADC es capaz de leer tensiones sin necesidad de circuitería extra, no es recomendable hacerlo así ya que al ser la medida máxima 10 V requeriría utilizar fuentes de alimentación o al menos generadores de tensión de referencia de ese valor o mayor. Además, utilizando esas soluciones, se ampliaría el fondo de escala a 10 Voltios, reduciendo la precisión en medidas de menor voltaje. Por ello otra opción es atenuar la tensión de entrada por un factor fijo y lineal que permita la lectura mediante el ADC en un rango de 0 V a su tensión de referencia (que en el mejor de los casos sería la alimentación de 5 V). Una aproximación simple de un atenuador es el clásico divisor de tensión, en el que mediante dos resistencias se puede obtener una tensión de salida proporcional a la de entrada respecto a una misma referencia. Se deben escoger valores de resistencias suficientemente grandes para evitar un consumo muy elevado de potencia. Por otra parte, se pueden utilizar configuraciones de amplificadores operacionales que amplifiquen la entrada por un valor menor a la unidad. De esta forma se pueden obtener tensiones diferenciales (Amplificador de instrumentación o amplificador diferencial). Como contrapartida, dichas configuraciones de amplificadores necesitan también de una alimentación mayor. 2.9.5.3Interfaz de sensores de lazo de corriente Para medir este tipo de sensores se puede utilizar un medidor de corriente a través de un protocolo soportado como SPI o I2C. Estos integrados suelen requerir de resistencias externas para su correcto funcionamiento, pero son muy precisos. Por otra parte, se puede convertir corriente en tensión mediante una resistencia de carga de valor bajo y conocido. De esta forma, con un amplificador diferencial se mide la tensión que cae en la resistencia y alimenta a una entrada del ADC. Conociendo el valor de tensión y de resistencia, hallar el valor de la corriente requiere una simple división aplicando la Ley de Ohm. -58Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.9.5.4Sensores de resistencia variable Existen gran cantidad de circuitos acondicionadores para sensores resistivos. Sin embargo la mayoría se centran en linealizar la salida de forma que puedan ser medidos por un sistema de adquisición de señales o bien un voltímetro. En el presente caso no es posible linealizar un sensor del cual no se conoce nada más que su variable, pero sí puede utilizarse un conexionado que permita leer rangos de tensión en función de la variación de resistencia. Los métodos más extendidos para medir resistencia son el clásico divisor de tensión y el puente de Wheatstone. La no linealidad de la salida, debida tanto a las características de los circuitos de acondicionamiento como a la naturaleza del sensor, podrá ser solventada mediante las técnicas de programación adecuadas dependiendo del tipo de acondicionador y sensor del que se trate. 2.9.5.5Acelerómetro Un acelerómetro es un instrumento destinado a medir aceleraciones. Sin embargo, esta no es necesariamente la misma que la aceleración de coordenadas (cambio de la velocidad del dispositivo en el espacio), sino que es el tipo de aceleración asociadas con el fenómeno de peso experimentada por una masa de prueba que se encuentra en el marco de referencia del dispositivo. Un ejemplo en el que este tipo de aceleraciones son diferentes es que un acelerómetro medirá un valor aún estando inmóvil en el suelo a pesar de que no hay cambio de velocidad, ya que experimenta la aceleración de la gravedad de la Tierra. Sin embargo, un acelerómetro en caída gravitacional libre hacia el centro de la Tierra llegaría a medir un valor de cero a pesar de que su velocidad es cada vez mayor, ya que está en un marco de referencia en el que no tiene peso. Últimamente se ha popularizado su inclusión en sistemas electrónicos ya que sus medidas se pueden utilizar para conocer la posición y orientación del sistema. Así, en el caso que nos concierne podría enviar un mensaje a través de la red XBee si detecta un cambio de orientación, una caída libre o un golpe que supere el umbral esperado. En la selección de un acelerómetro se deben tener en cuenta los siguientes aspectos: • • • • Número de ejes de medida. Sensibilidad: típicamente 2g, 4g y/o 8g. Siendo g la aceleración de la gravedad terrestre media. Tipo de salida: analógica en forma de corriente o tensión o bien digital a través de un protocolo de comunicaciones (I2C, paralelo, SPI, etc.). Tecnología: piezoeléctrico o capacitivo. La opción más extendida es el capacitivo debido a su bajo precio y alta precisión. -59- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Algunas opciones comerciales: Fabricante: Freescale Semiconductor STMicroelectronics Kionix Modelo MMA8453QT LIS352AX KXCJ9-1008 Eje sensor: Aceleración: Sensibilidad: X, Y, Z 2 g, 4 g, 8 g 256 count/g, 512 count/g, 1024 count/g QFN-16 Triple 2g 363 mV/g Triple 2 g, 4 g , 8 g 256 count/g, 512 count/g, 1024 count/g QFN-16 Digital 8 bit, 10 bit Analógica Voltaje Digital 8 bit 3.6 V 3.6 V 3.6 V 1.95 V 2.16 V 1.8 V + 85 C 0.3 mA + 85 C 40 C + 85 C 40 C I2C Analógica I2C Empaquetado / Estuche: Tipo de salida: Salida digital Número de bits: Voltaje de suministro (Máx.): Voltaje de suministro (Mín.): Temperatura operativa máxima: Temperatura operativa mínima: Salida digital Interfaz de bus: Apagado: Yes LGA-14 Yes Tabla 10 - Comparativa entre acelerómetros 2.9.5.6Reloj en tiempo real (RTC) Un reloj en tiempo real es de interés para mantener una hora de sistema exacta en todo momento, preferentemente inclusive cuando se suspende la alimentación externa. Si bien el módulo XBee Programable implementa un RTC software incrementando un contador interno cada aproximadamente 4 milisegundos, implementar uno externo aporta ciertas ventajas como ser: • • • Una mayor precisión. La posibilidad de desactivar el tick de sistema para mejorar el consumo. Mantener el conteo de tiempo aun cuando la alimentación se haya suspendido, mediante circuitería externa para tal fin. Las consideraciones a tener en cuenta son principalmente el tipo de bus, las posibilidades de generar interrupciones programables y el consumo del propio reloj. Como en los demás casos, existe una amplia variedad de integrados que cumplen los citados requisitos. -60Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Fabricante: Modelo: Función: Interfaz bus: Formato de datos: Formato de tiempo: Tamaño de memoria RTC: Voltaje de suministro (Máx.): Voltaje de suministro (Mín.): Temperatura operativa máxima: Temperatura operativa mínima: Estilo de montaje: Empaquetado / Estuche: STMicroelectronics Maxim IC M41T93RMY6F DS1337U+ Maxim IC DS1904L Clock, Calendar, Alarm, Timer Interrupt SPI DW:DM:M:Y Clock, Calendar Clock I2C YY:MM:DD 1-Wire Contador de segundos HH:MM:SS:hh 32 B HH:MM:SS 5.5 V 5.5 V 2.7 V 1.8 V Alimentación parásita Pila integrada + 85 C + 85 C + 70 C 40 C 40 C 40 C SMD/SMT SOIC-18 SMD/SMT MSOP-8 Socket 1-Wire iButton 32 bits Tabla 11 - Comparativa de RTCs comerciales 2.9.5.6.1Mantenimiento de la cuenta de tiempo En la mayoría de los diseños que implican un RTC suele ser de interés mantener la hora del sistema independientemente de la alimentación principal. Esto se puede conseguir mediante dos métodos: pila de botón o supercondensador. La ventaja de una pila es que mantiene la hora por períodos de tiempo del orden de años, por otra parte requieren de un reemplazo y puede ocasionar problemas en el material almacenado por largos periodos de tiempo a la espera de ser vendido. Por otra parte, los supercondensadores además de ser más baratos y no necesitar mantenimiento, no pueden mantener tensiones por tanto tiempo por un precio similar al de una batería de mercurio. En un proyecto como el presente, utilizar un supercondensador puede ser muy ventajoso ya que no es de esperar que el sistema pase mucho tiempo sin conectarse a la alimentación principal, y de ser necesario el mantenimiento de la hora no es un factor vital ya que se podría sincronizar a través de la red XBee. 2.9.5.7Memoria no volátil Una memoria no volátil es de utilidad en un sistema de adquisición de datos para almacenar registros históricos de medidas en conjunción con el RTC. Sin prejuicio de poder utilizarla para almacenar datos de propósito general para el uso del programa. Existe una amplia gama de memorias de este tipo diferenciándose en tecnología -61Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA (EEPROM, FLASH, NVRAM), capacidad de almacenamiento, tipo de acceso (secuencial o aleatorio), protocolo (bus paralelo, SPI, I2C, 1-Wire, etc.). Debido a las características del sistema, no es necesario que se trate de un acceso aleatorio ni de un bus tiempo de acceso bajo; por ello son interesantes cualquier tipo de bus y tiempo de acceso. Si bien el número de ciclos de escritura y borrado es interesante, actualmente dichos valores son tan altos que escapan al alcance tenerlos en cuenta; ya que diferenciar entre un tipo y otro implicaría conocer qué frecuencia de escritura y borrado se espera del dispositivo y ello dependerá de la aplicación final. Imagen 39 - 25LC080A Imagen 40 - DS1971-F3+ Imagen 41 - MR25H256CDC Fabricante: Microchip Microchip Everspin Technologies Maxim Categoría de productos: Modelo: Tamaño de memoria: Organización: Data Retention: Frecuencia máxima de reloj: Corriente operativa máxima: Voltaje operativo de suministro: Temperatura operativa máxima: Estilo de montaje: Empaquetado / Estuche: Tiempo de acceso: Tipo de interfaz: EEPROM 25LC080A 8 Kbit 1Kx8 200 Years 10 MHz EEPROM 24LC1026 1024 KB 128 x 8 400 KHz NVRAM MR25H256CDC 256 Kbit 32K x 8 10 MHz EEPROM DS1971 256 Bit Secuencial - 6 mA 5 mA 10 mA 100 nA 2.5 V, 5.5 V 2.5 5.5 V 2.7 3.6 V 5V + 125 C + 125 C 85 C - SMD/SMT TSSOP-8 50 ns SPI SMD/SMT SOIC-8 3 ms I2C SMD/SMT DFN-8 - iButton iButton 1-Wire Tabla 12 - Comparativa entre memorias no volátiles 2.9.5.8Conectores en borde de placa Al igual que en el caso de la placa de expansión de entradas y salidas, no existe un tipo de conector universal, habiendo diversas opciones en el mercado. Se aplicarán los mismos criterios que en el apartado 2.9.4.5-Conectores en borde de placa. -62Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10- Resultados finales 2.10.1- Hardware (General) 2.10.1.1Software de diseño Se ha decidido utilizar la suite kiCAD como software de diseño ya que permite obtener resultados profesionales sin dejar de ser fácil de usar. Como desventaja, el número de componentes que incorpora en su librería estándar dista mucho de los que ofrecen las opciones comerciales o incluso otros programas gratuitos de mayor antigüedad; pero esto es solucionable mediante el editor de componentes. 2.10.1.2Placas de circuito impreso (PCBs) Se ha determinado utilizar un tamaño de 95 x 72 mm para poder aprovechar los gabinetes diseñados para las placas XBee Display ya mencionadas. En los cuatro extremos se colocarán separadores (step-offs) de 15 mm de altura y roscado M2. La disposición de los componentes será específica para cada placa a excepción del conector del bus de expansión que se colocará por ambas caras (o solo una en el caso de la placa principal y la de HMI). Dicho conector se dispondrá en el borde inferior centrado respecto a los bordes de placa. Se tendrá preferencia por colocar los componentes en la cara superior y solo en caso de ser necesario se utilizará la cara inferior. Para el trazado de pistas se limitarán a dos las capas disponibles (superior e inferior) lo que permite una eventual producción con medios disponibles al mercado de aficionados. 2.10.1.3Conector del bus de expansión Después de analizar las posibles necesidades se ha decidido reservar las siguientes funcionalidades de los pines que se detallan en la Tabla 13 - Funcionalidades reservadas de los pines del módulo XBee. • • • • • XBEE_DOUT y XBEE_DIN: se trata de las señales TX y RX de la UART del microprocesador de Freescale. RESET: señal de reset del módulo XBee y demás dispositivos con funcionalidad reset (por ejemplo: LCD y expansores de GPIOs). I2C_SDA e I2C_SCLK: Señales reservadas al funcionamiento del bus I2C. SPI_MISO, SPI_MOSI, SPI_CLK, SPI_SS0: Señales correspondientes al protocolo SPI. SPI_SS1/1-Wire/LCD_EN: Este pin reserva varias funcionalidades, puede gestionar un esclavo del bus SPI genérico aunque se ha reservado para controlar el LCD. Además, se reserva como pin para utilizar el protocolo 1Wire. -63Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA • • • • • • Commissioning: Señal muy útil a la hora de desarrollar aplicaciones XBee ya que ayuda a la puesta a punto de la red y permite resetear la radio sin tener que resetear el microprocesador de Freescale. ASSOC/LCD_DC: La señal ASSOC normalmente se conecta a un LED para tener un indicador visual del estado de la red XBee, sin embargo si no se utiliza puede emplearse como señal del LCD para discernir datos de comandos (o GPIO en el caso de que no se conecte la placa de HMI). BKGD: Junto con la señal de Reset, es necesaria para el funcionamiento del debugger. SLEEP_RQ y ON_SLEEP: son señales imprescindibles para el funcionamiento del módulo de Power Management, por lo que no se puede prescindir de ellas. IRQ_IN: Se reserva este pin como entrada de interrupción general que podrá activar cualquier dispositivo capaz de generar una interrupción. Debido a que estarán conectados más de un dispositivo, el callback de esta interrupción deberá implementar un polling de todos los dispositivos conectados a la línea. Además, el hecho de que la entrada de interrupción sea única implica que todos los componentes que necesiten señalizar una interrupción deberán contar con dicha salida a colector abierto, para poder implementar el típico circuito de puerta AND cableada. PWM/LCD_BL_EN: Este pin se reserva como generador de pulsos de ancho variable y como señal de encendido de la retro-iluminación del LCD. Dicha relación no es casual, ya que con un PWM se puede variar la tensión media que cae en dicho LED, regulando el brillo desde el módulo XBee. Funcionalidad XBEE_DOUT XBEE_DIN RESET I2C SDA I2C SCLK SPI MISO SPI MOSI SPI CLK SPI SS0 SPI SS1/1-Wire/LCD_EN COMMISSIONING ASSOC/LCD_DC BKGD SLEEP_RQ ON_SLEEP IRQ_IN PWM/LCD_BL_EN Pin S2B 2 3 5 7 19 4 11 18 12 6 20 15 8 9 13 16 17 Pin S2C 3 4 6 8 32 5 24 31 25 7 33 28 9 10 26 29 30 Tabla 13 - Funcionalidades reservadas de los pines del módulo XBee -64Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Los pines específicos del S2C se routearán al conector como se indica en la Tabla 14 – Pinout del conector del bus de expansión. 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 Vin +5 V +3.3 V XBEE_DOUT XBEE_DIN SLEEP_RQ COMMISSIONING ON_SLEEP RESET GND PWM/LCD_BL_EN GND SPI_MISO SPI_MOSI SPI_SS0 SPI_CLK GND SPI_SS1/1Wire/LCD_EN IRQ_IN LCD_DC/ ASSOC No Conectado GND Conector inferior 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 38 40 42 44 37 39 41 43 45 46 I2C_SCL 46 45 47 48 I2C_SDA 48 47 49 50 GND 50 49 Conector superior Conector inferior 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 37 39 41 43 Señal Conector Superior Señal Vin +5 V +3.3 V S2C_PIN12 S2C_PIN14 S2C_PIN15 S2C_PIN16 S2C_PIN17 S2C_PIN18 S2C_PIN19 S2C_PIN20 S2C_PIN21 GND XGPIO_0 XGPIO_1 XGPIO_2 XGPIO_3 XGPIO_4 XGPIO_5 XGPIO_6 XGPIO_7 No Conectado No Conectado No Conectado GND Tabla 14 – Pinout del conector del bus de expansión Como solución para conectar las placas, se ha escogido utilizar el conector de 2x25 hembra de montaje superficial SSM-125-L-DV de Samtec tanto en la cara superior como en la inferior, uniendo ambos conectores con un terminal macho-macho de 2x25 TSW-125-22-F-D también de Samtec. -65Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.2- Placa base 2.10.2.1- Alimentación 2.10.2.1.1- Jack de alimentación Se ha decidido utilizar el mismo jack que incorporan las placas de desarrollo del kit XBIB de Digi International ya que cumplen con los requisitos de tensión y corriente máximas esperadas. Además, de esta forma se pueden emplear las mismas fuentes de alimentación que la empresa ofrece en todos sus kits de desarrollo. El modelo es el MJ-179LR de SHOGYO International Corp. Que soporta hasta 4 A a una tensión nominal de 30 V. Imagen 42 - Jack de alimentación SHOGYO MJ-179LR 2.10.2.1.2- Terminal block Opcionalmente, se montará un bloque terminal con tornillos para la alimentación desde una fuente de tensión continua externa. Para mantener concordancia con diseños previos de Digi International, se ha escogido el modelo 21.01MV25 de dos polos. Dichos terminales soportan tensiones de hasta 200 V y corrientes máximas de 3 A lo que es más que suficiente para el uso que se espera de estos módulos. 2.10.2.1.3- Baterías alcalinas Teniendo en cuenta que la tensión en baterías será de 4,5 V, se ha decidido colocar 3 pilas alcalinas AA en serie de 1,5 V para obtener dicha tensión. En cuanto al montaje en placa, se ha seleccionado el battery clip Keystone-55 ya que por su montaje superficial es la solución de menor coste y ha dado buenos resultados en el diseño de referencia XBee Display antes mencionado. 2.10.2.1.4- Conector USB Se ha optado por un conector microUSB ya que su aceptación como estándar por fabricantes de teléfonos móviles ha hecho que su precio sea muy bajo comparado con otras opciones. Además, el tamaño que ocupa es mucho menor y es más fácil de colocar en la placa. El modelo concreto es el MicroUSB AB de Kycon KMMX-ABSMT5SG-30 TR de montaje superficial en borde de placa. -66Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.2.2Reguladores de tensión Se ha optado por colocar dos reguladores de tensión: uno tipo buck o conmutado para regular desde la tensión de entrada hasta los 5 V de continua y otro de tipo lineal LDO para regular la tensión de 3,3 V a partir de los 5 V del regulador anterior, de los 4,5 V de las pilas alcalinas o de la tensión del conector USB. 2.10.2.2.1- Regulador de 5 V Se ha optado por el regulador LM22676-ADJ de Texas Instruments. Dicho regulador ofrece una salida variable en función del valor de las resistencias que se coloquen. La tensión de entrada puede llegar a ser de hasta 45 V de corriente continua. Se ha escogido este integrado ya que ha probado su eficacia en varios diseños de Digi International. La opción de tensión de salida ajustable se ha escogido para poder utilizarlo como regulador de 3,3 V en el caso de que la alimentación de 5 V no sea necesaria para un diseño concreto. Esto se pensó ya que en el caso de montar relés (el dispositivo del que más consumo se espera) cuya tensión nominal sea de 3,3 V este regulador sería capaz de entregar suficiente corriente, cosa de la que no es capaz el regulador de 3,3 V escogido. Imagen 43 - Conexiones recomendadas para el LM22656-ADJ Imagen 44 - Esquema de conexión final del LM22657-ADJ Como se observa en la Imagen 44 - Esquema de conexión final del LM22657-ADJ, se ha colocado un condensador electrolítico para atenuar el filtrado proveniente de la red. Además de las opciones mencionadas de alimentación por Jack y terminal block, -67Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA se ha incluido un conector tipo tira de pines con paso de 2,54 mm que en última instancia podría no montarse. Se observa que la aplicación es casi idéntica a la recomendada por el fabricante. Los valores de las resistencias R3, R7 y R8 resaltadas en violeta se determinan en función de la tensión de salida deseada. Dichos valores se calculan con la fórmula que proporciona el fabricante para tal fin. Las resistencias R2 y R4 son de triple pad, es decir, se montará una u otra en función del valor de tensión de salida. Tensión de salida Ra Rb Rc R4/R3 3,3 V 5k6 5k6 10k R3 5,0 V 2k7 1k 10k R4 Tabla 15 - Tensión de salida en función de resistencias. 2.10.2.2.2- Regulador de 3,3 V Se ha optado por el modelo MIC5239-3.3 de Micron Electronics, que otorga una salida no ajustable a 3,3 V. Dicho diseño se ha utilizado satisfactoriamente en el diseño de referencia del XBee Display anteriormente mencionado. Este integrado puede trabajar con tensiones desde 350 mV por encima de la tensión de salida hasta 30 V, con una corriente de fuga de 23 µA y una salida corriente de salida máxima de 500 mA más que suficientes para alimentar a los dispositivos implicados. Es interesante la capacidad de activar una salida a colector abierto cuando la tensión de entrada se acerca a la tensión de salida (batería baja) de forma que podría ser aprovechada para enviar un mensaje al usuario a través del módulo para que cambie las baterías o reestablezca la alimentación principal. Sin embargo, como no se trata de un dispositivo programable, el polling de dicha interrupción solo se podría realizar mediante descarte, ya que no se puede “preguntar” explícitamente; por ello se ha decidido conectar dicha salida a una entrada del expansor de GPIOs montado en placa, así se podrá conocer en todo momento el estado de este pin en concreto y es capaz de generar una interrupción hardware, aunque no tan rápida como las demás. -68Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 45 – Conexiones recomendadas para el MIC5239 La aplicación recomendada por el fabricante ha sido modificada levemente para incluir una resistencia pull-up a la entrada enable para evitar un consumo excesivo y otra resistencia pull-up a la salida FLG. Imagen 46 - Esquema de conexionado del MIC5239 La resistencia R10 que se observa en el esquema es un montaje opcional que conectaría las entradas de Jack y Terminal Block con la entrada del regulador, en el caso de que no se quiera montar el regulador de 5 V, ya que como se ha dicho antes el integrado soporta tensiones de hasta 30 V. Cabe destacar la inclusión de los diodos D3, D4 y D5 en la entrada del regulador. Esto es un mecanismo de protección que evita un cortocircuito en el caso de que haya más de una fuente conectada (por ejemplo, baterías y USB). Además, al aparecer la tensión directa del diodo, es menor al diferencia de tensión (y por lo tanto la potencia) que tiene que disipar el regulador. El encapsulado que se ha escogido es el MSOP de 8 pines, como consideraciones de diseño, se han conectado sus patillas de masa al mismo plano de masa que el regulador de 5 V para facilitar la disipación de calor. -69Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.2.3Módulo XBee Programable Se ha creado una huella única para ambas variantes del módulo (S2B y S2C). Dicha huella básicamente consiste en los pads para soldadura superficial del S2C con perforaciones adecuadas en las patillas que coinciden con las del S2B, resultando en un footprint híbrido que permite el montaje de ambas versiones. En un contexto de desarrollo no tiene sentido soldar un módulo, por lo que en el caso del módulo through-hole S2B es recomendable montar dos tiras de pines hembra de paso de 2 mm a modo de zócalo para poder reemplazar el módulo en caso de daño o bien para poder utilizar la versión con debugger para programar módulos. En el caso de la versión de montaje superficial (S2C) no es tan sencillo colocar un zócalo que permita su colocación y extracción reiteradamente ya que no existen en el mercado soluciones de este tipo o bien son caras. Las placas del kit de desarrollo de Digi XBIB incorporan un conector específico con grifas que presionan en los contactos laterales del módulo, al tratarse de un conector especialmente diseñado no está disponible a la venta en los grandes distribuidores. Sin embargo, como el tamaño de la placa lo permite, se ha decidido incorporar la huella de dicho conector ya que siempre existe la posibilidad de no montarlo. Imagen 47 - Medidas del módulo SMT (en pulgadas), en rojo los pines que se corresponden con el S2B 2.10.2.4Indicadores luminosos Se han escogido los LEDs de montaje superficial VAOL-S12GT4 del fabricante VCC. Se trata de unos LEDs de encapsulado 1206 disponibles en ámbar, rojo y verde que cumplen ampliamente las necesidades de la placa. Finalmente, se ha optado por colocar un indicador para la señal de ASSOC que indica el estado del enlace con la red ZigBee, otro para la tensión de 3,3 V, otro para actividad USB (ver apartado 2.10.2.8-Debugger y puerto serie) y uno para la tensión de entrada Vin. En el último caso, se ha optado por prescindir del transistor de excitación y colocar una resistencia limitadora para el caso máximo de 30 V después de -70Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA comprobar que la iluminación con la tensión mínima de 6 V era suficientemente visible en condiciones normales. 2.10.2.5Indicador sonoro (buzzer) Como un montaje opcional, se ha incorporado a la placa base un buzzer (zumbador) que puede ser excitado a través del pin PWM reservado en el módulo XBee. De esta forma es posible emitir notas musicales de manera fácil y económica. El buzzer escogido es el PS1240P02B fabricado por TDK por su bajo coste y pequeño tamaño, pero puede utilizarse cualquier buzzer que funcione a 3,3 V. Para el conexionado se ha seguido al pie de la letra el circuito recomendado por el fabricante. El transistor escogido es el mismo que el utilizado en el display ya que cumplía las condiciones de frecuencia sin problemas. Imagen 48 - Esquema de conexiones recomendado para el buzzer 2.10.2.6Pulsadores Debido al carácter apilable de los módulos se ha escogido el modelo KMS231G del fabricante C&K. Se trata de un pulsador horizontal de montaje superficial que ocupa muy poco espacio y se monta en un lateral de la placa. Como se ha dicho en las especificaciones, estos pulsadores se destinarán a las señales de Reset y Commissioning del módulo XBee. Como adaptadores de señal, se colocan una resistencia limitadora en serie de 100 Ω y una pull-up de 10 kΩ. Imagen 49 - Esquema de conexionado de los pulsadores -71Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.2.7Expansor de entradas y salidas De la amplia gama disponible, se ha escogido el expansor de 8-bits PCA9535PW del fabricante NXP. Se trata de un expansor configurable como entrada o salida bit a bit con resistencias pull-up internas vía bus I2C. Se ha escogido este modelo por ser de bajo coste y por haberse probado con anterioridad en otros diseños. Mediante la resistencia de 3 pads R26 y R27 se puede seleccionar si el pin I/O 7 del expansor se conecta a la señal FLG (batería baja) del regulador MIC5239 o bien se lleva al conector del bus de expansión para su utilización como GPIO normal. En lo que respecta a funcionalidad, posee 2 líneas de selección de dirección de dirección I2C del dispositivo, es decir que puede haber hasta 4 expansores conectados al mismo bus. Como la placa base será única en el sistema, se reserva la dirección 70h para este expansor. El encapsulado escogido es el de montaje superficial TSSOP-16 que ocupa menos espacio que la variante SO-16. 2.10.2.8Debugger y puerto serie Se ha escogido como solución el integrar en la placa principal la última versión estable del proyecto USBDM (ANEXO II: USBDM). Dicho proyecto se basa en utilizar el microprocesador MC9S08JS16CWJ (encapsulado 20-SOIC) que incorpora el protocolo USB y un bootloader grabado en ROM con el cual no es necesario utilizar un debugger para flashear el firmware que correrá en dicho microprocesador. Además, existe una versión que incorpora adaptadores de nivel y firmware adicional para tener un puerto serie a través de USB sin necesidad de más componentes. De esta forma, a través del mismo conector USB es posible obtener alimentación, debugger y puerto serie, siendo compatible con los ordenadores modernos que ya no suelen incorporar un puerto RS-232. El proyecto ofrece los esquemáticos y las imágenes listas para ser cargadas mediante el bootloader mencionado. Como modificaciones particulares, se han colocado resistencias de 0 Ω en serie con las señales de RESET y BKGD para que removiéndolas, poder utilizar un debugger externo en caso de desearlo. Además, la tensión del microprocesador se conecta al circuito del debugger mediante una resistencia de 0 Ω para que removiéndola exista la posibilidad de utilizar el debugger para programar un microprocesador externo. -72Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 50 - Conexiones de 1/4 74LV125 para su utilización como adaptador de niveles lógicos Es interesante notar el sistema de adaptación de niveles que se ha utilizado en este proyecto. Los buffers 74LV125 con salida triestado tienen puenteadas la entrada con la habilitación del buffer, por lo que los niveles lógicos bajos provocan que el buffer coloque un 0 mientras que los niveles altos dejan la salida a alta impedancia y es la resistencia pull-up la que se encarga de elevar la tensión al nivel adecuado. Finalmente, se ha mantenido la colocación de un jumper entre el pin BL_LED y masa para poder volver al bootloader del microprocesador del debugger y poder re-flashear otra imagen. Además, dicha señal también va conectada a un LED indicador de actividad en el bus USB (ver apartado 2.10.2.4-Indicadores luminosos). -73Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.3Placa de Interfaz Hombre-Máquina Esta placa se ha basado en el diseño preexistente XBee Display. Consiste en una pantalla de cristal líquido controlada a través del protocolo SPI, cuatro pulsadores y cuatro indicadores luminosos controlados a través de un expansor de GPIOs por I2C. 2.10.3.1Pantalla de cristal líquido Se ha escogido la pantalla Displaytech 64128M de 64 x 128 píxeles. Esta pantalla necesita de las señales MOSI y Clock del protocolo SPI, de una GPIO que indique si los datos enviados son datos o comandos (Data/Command) y de una señal de reset que en este caso es la misma que la del bus de expansión. Una desventaja de esta pantalla es que la comunicación es en un solo sentido y por lo tanto no se puede leer el estado de un pixel a través de la pantalla. Esto hace que para operaciones de deslizamiento o escritura de texto en un punto específico sea necesario reservar en memoria flash de programa todo el framebuffer de la pantalla. 2.10.3.2Indicadores Luminosos Se ha decidido utilizar los mismos LEDs que en la placa base ya que la luminosidad que presentan es más que suficiente. El montaje es el recomendado por el fabricante cuando el expansor se dedica a controlar LEDs, que incorpora una resistencia del 100 kΩ para mantener la tensión de la salida a VCC cuando el LED está apagado, minizando así el consumo. Imagen 51 - Conexión de un LED para minimizar consumo 2.10.3.3Pulsadores Después de analizar las posibles soluciones se ha optado por utilizar pulsadores de montaje superficial de la serie TL3300 del fabricante E-Switch. Dichos botones son de un tamaño mucho más manejable que los considerados en la placa base ya que deberán ser accionados por usuarios no técnicos y posiblemente a través de palancas montadas en la caja contendora. -74Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 52 - Conexión de los pulsadores 2.10.3.4Conexión con pulsadores e indicadores Descartada la posibilidad de utilizar pines nativos del módulo XBee para controlar estos interfaces, se ha decidido colocar un expansor de GPIOs del mismo modelo que el incorporado en la placa base (PCA9538PW) con la dirección I2C 73h ya que esta placa también se presupone única. 2.10.3.5Control de la Retro-iluminación La iluminación LED de la pantalla requiere 80 mA como mínimo para encenderse. Esta corriente no puede ser suministrada por un puerto del XBee, por ello se utiliza un transistor FET BSP315 para controlar el encendido, el cual a su vez es excitado por un transistor bipolar NPN BC817-40. Imagen 53 - Detalle del circuito de control de la retroiluminación -75Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.4Placa de expansión de entradas y salidas Esta placa tiene cuatro opciones de montaje como se detallan a continuación: • • • • 16 Entradas/Salidas Digitales. 8 Salidas a colector abierto + 8 Entradas/Salidas Digitales. 8 Entradas opto-acopladas + 8 Entradas/Salidas Digitales. 8 Salidas a Relé + 8 Entradas/Salidas Digitales. Para el caso de las entradas, las protecciones deberán adecuarse para soportar tensiones máximas de 30 V. 2.10.4.1Expansor de GPIOs Como controlador para todas las entradas y salidas, se ha escogido el PCA9555PW el cual pertenece a la misma familia que los demás expansores montados en las demás placas. La diferencia es que se trata de un expansor de 16-bits con resistencias internas de pull-up. Dicho expansor cuenta con 3 patillas de selección de direcciones, abarcando las 8 direcciones desde 20h a 27h. Esto deja el límite teórico en hasta 8 módulos de este tipo en el mismo sistema. Se ha decidido utilizar el puerto alto (I/O 8 a I/O 15) como entradas/Salidas digitales dejando el puerto bajo destinado a las opciones configurables. 2.10.4.2Entradas-Salidas digitales Como protecciones frente a errores de conexión por parte del usuario, se ha diseñado el siguiente circuito que permite el funcionamiento como entrada o salida indistintamente. Consta de una resistencia en serie para proteger frente a sobretensiones, que a su vez junto con un condensador forma un filtro de paso bajo para evitar rebotes mecánicos y ruido electromagnético. Para mejorar la protección frente a sobretensiones, se ha escogido el integrado CDA3S06 que integra 8 diodos polarizados inversamente como se observa en la Imagen 54 - Configuración interna del CDA3S06. Imagen 54 - Configuración interna del CDA3S06 La corriente máxima soportada por estos diodos es la que determina el valor mínimo de la resistencia en serie, considerando como peor caso el de una entrada a 30 V de continua. -76Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA ≥ á − á = 30 − 0,95 = 581Ω 0,05 Por cuestiones de márgenes de funcionamiento y tolerancias, se ha escogido una resistencia de 1kΩ. Imagen 55 - Esquema de las entradas digitales 2.10.4.3Salidas a colector abierto Se ha decidido utilizar el cásico integrado ULN2803AFWG con encapsulado SOL-18 fabricado por Toshiba. Consta de ocho salidas a colector abierto más un diodo de retorno para cargas inductivas para cada canal. Imagen 56 - Pinout del ULN2803 La corriente máxima que puede drenar cada salida es de 500 mA con un voltaje máximo de 50 VDC, condiciones más que suficientes para las aplicaciones esperadas. Además de utilizarse como salida a colector abierto, como se ha detallado en las configuraciones, este integrado controlará las salidas a relé de la placa. Imagen 57 - Configuración interna del ULN2803 En la Imagen 57 - Configuración interna del ULN2803, los diodos conectados con líneas de puntos no son dispositivos reales sino modeladores de conexiones parásitas y no actúan como diodos clamp. -77Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.4.4Salidas a relé El relé escogido para las salidas es el G5V-1 de OMRON de 5 V de tensión nominal y 1 A máximo de corriente a la salida. La corriente nominal de bobina es de 30 mA lo que implica que se tomarán de la fuente 240 mA en el peor caso. Imagen 58 - Relé G5V-1 Opcionalmente, puede ser reemplazado por el mismo modelo con tensión nominal de 3 V, existiendo para ello una resistencia de 0 ohmios selectora. Sin embargo, esta opción está pensada sólo si el regulador conmutado LM22676 es el que provee esta tensión ya que el regulador MIC5239 no es capaz de proveer la corriente suficiente para alimentar los 8 relés. Como añadido, se ha decidido colocar un LED indicador del estado del relé que puede o no ser montado sin afectar al funcionamiento de la placa. En la Imagen 59 Conexionado del diodo indicador del relé, la etiqueta Out0 es la salida del colector abierto. Imagen 59 - Conexionado del diodo indicador del relé 2.10.4.5Entradas opto-acopladas Para implementar este tipo de entradas se ha basado el diseño en el integrado LTV849, que incorpora 4 optoacopladores como se ve en la Imagen 60 – Diagrama de conexiones internas del LTV849. Imagen 60 – Diagrama de conexiones internas del LTV849 -78Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Se ha escogido una configuración en colector común ya que las tensiones del lado del transistor son conocidas y no interesa invertir la lógica. Para calcular la resistencia de entrada RD se ha utilizado la siguiente fórmula: − = = 30 − 1,2 = 1,152 Ω 0,025 Considerando VIN como el peor caso (30 V) e IF el mínimo de corriente necesario para la saturación del transistor (25 mA). Se utilizará la resistencia de valor normalizado 1k2. Por otra parte, para calcular la resistencia de emisor, se utiliza la siguiente fórmula: ≥ − · = í! 3,3 − 0,2 = 224Ω 0,025 · 0,5 Tomando los valores de VCESat, IF y CTRMín del datasheet del componente. Debido a que 224 W es un valor mínimo, se utiliza una resistencia de valor normalizado 1k2. 2.10.4.6Esquema de conexiones Para obtener las cuatro opciones de entradas y salidas en función de los componentes montados, se ha diseñado el siguiente esquema: Imagen 61 - Conexiones entre componentes de la placa expansora de entradas y salidas Configuración En la siguiente tabla se muestra cómo obtener las distintas configuraciones en función de los componentes que se monten. E/S Digital E/optoacoplada S/ relé S/colector abierto D C SÍ 100nF NO NO NO NO NO NO RDIO 1kΩ NO NO NO Componentes RE O RD NO NO NO 1.5 kΩ SÍ 1.5 kΩ NO NO NO NO NO NO ULN2803 NO NO SÍ SÍ Relay NO NO SÍ NO ROC NO NO NO 0Ω Tabla 16 - Componentes en función de configuración -79Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 62 - Configuración E/S Digital Imagen 63 - Configuración E/ Optoacoplada Imagen 64 - Configuración S/ relé Imagen 65 - Configuración S/ Colector Abierto Conectores en borde de placa 2.10.4.7Como opción más versátil, se han escogido los bloques terminales MV25 para la conexión de las entradas/salidas hacia el exterior. Dichos conectores se distribuyen en los bordes laterales y superior de la placa (el borde inferior queda reservado a los conectores del bus de expansión). Se han definido tres grupos de conectores que varían su función según la opción de montaje selecionada. Imagen 66 - Señales de los conectores frontales -80Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 67 - Señales del conector derecho Imagen 68 - Señales del conector izquierdo Placa de sensores 2.10.5En base a las especificaciones de diseño iniciales, se ha diseñado la placa de sensores con dos variantes: normal y extendida. La diferencia radica en el número de interfaz de sensores de tensión y corriente que incorporan. Versión normal Sensores de resistencia 3 variable. Sensores de tensión 0-10 2 V Sensores de corriente 4- 2 20 mA 6 Entradas Digitales 1 EEPROM 1 Acelerómetro 1 Real Time Clock 1 Sensor de temperatura Versión extendida 3 8 4 6 1 1 1 1 Tabla 17 - Sensores disponibles según versión -81Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.5.1Conversor Analógico-Digital El Conversor Anlógico Digtal (en adelante, ADC) seleccionado ha sido el ADC128D1818 de National Semiconductor. Se trata de un conversor Sigma-Delta de 12-Bits de resolución a través de la interfaz I2C. Entre las características cabe destacar: • • • • • • Posibilidad de utilizar referencia externa o interna. Generación de interrupciones programables para todos los canales mediante un comparador de ventana (límites superiores e inferiores ajustables). Nueve direcciones I2C ajustables a través de dos entradas tri-estado (Vcc, Vcc/2 y GND). 8 Entradas configurables como single-ended o differenciales. Sensor interno de temperatura. Encapsulado 16-TSSOP. Se ha decidido utilizar todas las entradas en la configuración single-ended ya que todos los sensores cuentan con un adaptador de señal. La salida de interrupción a colector abierto se conecta a la entrada IRQ_IN como todas las demás, requiriéndose un polling (encuesta) para determinar qué canal ha sido el responsable del disparo. Respecto a la tensión de referencia, se ha optado por utilizar la referencia interna del dispositivo ya que la inclusión de una referencia externa además de aumentar los costes, limitaba la medida mínima a 1,25 V. Con esta configuración, la medida máxima que es capaz de registrar el ADC es de 2,54 V con lo que la salida de las interfaces no deberá superar dicho valor. En el caso de la versión normal sólo se monta 1 ADC, mientras que en la versión extendida se montan 2. La asignación de canales es la siguiente: Interfaz Sensor de corriente 1 Sensor de corriente 2 Sensor de corriente 3 Sensor de corriente 4 Sensor de tensión 1 Sensor de tensión 2 Sensor de tensión 3 Sensor de tensión 4 Sensor de tensión 5 Sensor de tensión 6 Sensor de tensión 7 Sensor de tensión 8 Sensor resistivo 1 Sensor resistivo 2 ADC y Canal ADC1-CH0 ADC1-CH1 ADC2-CH0 ADC2-CH1 ADC1-CH2 ADC1-CH3 ADC2-CH2 ADC2-CH3 ADC2-CH4 ADC2-CH5 ADC2-CH6 ADC2-CH7 ADC1-CH4 ADC2-CH5 -82- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Sensor resistivo 3 Sensor de temperatura ADC2-CH6 ADC1-CH7 Tabla 18 - Asignación de canales a las interfaces 2.10.5.2Amplificadores operacionales Para implementar las diferentes interfaces de sensores son necesarios circuitos que requieren de amplificadores operacionales. Por sus características estáticas y buen precio se ha escogido el MCP64L que incorpora 4 amplificadores operacionales de propósito general en un encapsulado 14-TSSOP. Existen gran cantidad de integrados de este tipo compatibles pin a pin que podrían reemplazar esta elección. Sin embargo, es altamente recomendable escoger uno con características de salida rail-to-rail (capaz de generar a la salida todo el rango de tensiones de entrada). Debido a que no se dispone de tensiones simétricas, todos los circuitos diseñados deberán funcionar con tensiones de alimentación únicas (0 – 3,3 V). 2.10.5.3Interfaz de sensores de tensión Para adaptar los niveles de tensión se ha escogido utilizar un divisor de tensión con dos resistencias de 30 kΩ y 10 kΩ lo que divide la tensión por 4, siendo la salida máxima de 2,5 V cuando la entrada es de 10 V. Para evitar efectos de carga, la salida del divisor se conecta al ADC a través de un seguidor de tensión implementado con ¼ MCP6L54. Como protección adicional frente a descargas electrostáticas y sobretensiones, se han colocado dos diodos CDA3S06. Imagen 69 - Interfaz para sensores 0-10V 2.10.5.4Interfaz de sensores de lazo de corriente Este tipo de sensores necesitan dos polos para leer el valor, ya que el lazo de corriente se debe cerrar completamente. En estos sensores son conocidos los valores de corriente que circularán, no así los valores de tensión. Como no se puede garantizar que la referencia sea la misma para el sensor y el circuito de medida, se ha decidido leer dicho valor a través de la caída de tensión en una resistencia de valor conocido, aislada del resto del circuito gracias a un amplificador diferencial de ganancia unidad (resistencias iguales de 100 kΩ para evitar consumos elevados). -83Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 70 - Interfaz para sensores 4-20 mA Seleccionando una resistencia de carga de 100 Ω la salida del amplificador diferencial cuando la corriente sea 20 mA será de 2 V, valor suficiente para ser leído correctamente por el ADC, dejando un margen de seguridad de 500 mV. 2.10.5.5Sensores de resistencia variable Tomando como referencia el diseño de referencia WASPMOTE Event Board, se ha optado por la colocación de una resistencia de 100kΩ y tolerancia del 1% para formar un divisor de tensión en el cual la variación de la resistencia del sensor ocasionará una variación en la lectura de dicha entrada del ADC. La calibración del firmware de medida deberá ser realizada manualmente por el usuario ya que no se puede conocer de antemano qué tipo de sensores se conectarán. Para evitar efectos de carga y posibles sobretensiones desde el exterior, se montará un seguidor de tensión entre la salida del divisor y la entrada del ADC. Imagen 71 - Interfaz de sensores de resistencia variable La placa de sensores montará hasta tres de estos dispositivos. Acelerómetro 2.10.5.6Debido a que prácticamente todos los acelerómetros disponibles cubrían los requisitos de diseño, se ha escogido el de menor precio disponible en los proveedores habituales. La elección final ha sido el MMA8453Q de Freescale Semiconductor. Se trata de un acelerómetro digital de 3 ejes accesible a través del bus I2C, con posibilidad de interrupciones programables. -84Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA La resolución es ajustable a 8 o 10 bits y la sensibilidad en los 3 ejes puede escogerse entre ±2, ±4 y ±8 g; siendo g la aceleración media de la gravedad terrestre (9,82 m/s2). Reloj en tiempo real (RTC) 2.10.5.7Para mantener el tiempo de sistema se ha seleccionado el ampliamente utilizado RTC DS1337 del fabricante Maxim. Este integrado no solo mantiene la cuenta de horas, minutos y segundos en registros separados, sino también mes, día de la semana, día del mes y año, implementando algoritmos para años bisiestos hasta 2100. Además, es capaz de generar hasta dos alarmas (interrupciones) programables en varios modos (una vez por segundo, una vez por minuto, coincidencia de hora, coincidencia de día de la semana, etcétera). La funcionalidad de generación de ondas cuadradas no se ha aprovechado en este caso ya que por este pin se multiplexan las alarmas y está conectado a la entrada de interrupciones. 2.10.5.7.1- Circuito oscilador Si bien existe una variante del DS1337 con oscilador incorporado, se ha descartado por ser más caro que la opción de montar un cristal externo. El cristal se ha escogido siguiendo las indicaciones del fabricante en su nota de aplicación AN58: Crystal Considerations with Dallas Real-Time Clocks, en función de la frecuencia especificada por el fabricante (32.768 kHz) y la capacitancia de carga (6pF). Imagen 72 – Cristal CMR200T El cristal escogido es el CMR200T de Citizen que cumple los requisitos necesarios manteniendo un precio bajo y una precisión de ± 20 ppm a una temperatura ambiente de 25 ℃, más que suficiente para el presente diseño. Imagen 73 - Conexiones del RTC DS1337 -85Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.5.7.2- Mantenimiento de la cuenta de tiempo En caso de falta del suministro principal de potencia (desconexión de la fuente de alimentación o reemplazo de baterías) el RTC debe ser capaz de mantener sus funciones mínimas, es decir, continuar con la cuenta del paso del tiempo para no tener que ser resincronizado cada vez que se apaga y enciende el equipo. Esto se ha solucionado con la incorporación de un supercondensador PAS414HRVA5R del fabricante TAIYO YUDEN. El circuito requerido para utilizar un condensador de estas características no requiere mayores consideraciones, como se observa en la Imagen 73 - Conexiones del RTC DS1337. El diodo en serie D5 se coloca para que cuando no haya alimentación en la línea de 3,3 V el supercondensador sólo se limite a alimentar al RTC. Siguiendo las indicaciones de la nota de aplicación AN3517 de Maxim, para calcular el tiempo de mantenimiento de hora de un RTC utilizando un supercondensador se utiliza la siguiente fórmula: · $ %&'( = ) − $ %&'( *! $ %&'( 3600 Esto es para obtener el peor caso, asumiendo una corriente constante hacia el RTC: • • • • C: Valor del condensador en Faradios. VBackupStart: el voltaje inicial en Voltios (voltaje aplicado a Vcc menos la caída de tensión del diodo). VBackupMin: la tensión mínima a la entrada del RTC para la cual la hora se mantiene, en Voltios. IBackupMax: la máxima corriente que absorbe el RTC para mantener la hora, en Amperios. Tomando del Datasheet del DS1337, el valor de alimentación y la tensión directa del diodo, los valores son: • • • • VD: 0,4 (@10 mA). VBackupStart: 3,3 V VD = 2,9 V. VBackupMin: 1,3 V. IBackupMax: 0.0000006 A. Esto nos da una duración de 44 horas con un condensador de 0,06 Faradios como el que hemos escogido; un valor más que suficiente ya que no se espera que el dispositivo pase tanto tiempo desconectado de la alimentación principal. La resistencia en serie R46 se ha colocado para limitar la corriente de carga del supercapacitor para evitar un pico de consumo en el arranque. -86Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.5.8Memoria no volátil Para cubrir este aspecto se ha escogido una memoria EEPROM de la familia CAT24C32 del fabricante ON-Semiconductor. La elección no es casual ya que la API del XBee Programable incluye un driver que soporta esta familia de memorias. Este integrado incorpora 32 Kbits de memoria no volátil organizados internamente en 4096 palabras de 8 bits cada una. El acceso al dispositivo se realiza mediante el bus I2C. Posee tres entradas que permiten seleccionar los 3 bits de menor peso de la dirección. Debido a que el máximo esperado de placas de sensores es 4, se dejan seleccionables solo los dos bits de menor peso, quedando las direcciones posibles en el rango de 50h a 53h. 2.10.5.9Sensor de temperatura on-board Se ha decidido colocar el sensor de temperatura analógico MCP9700 de Microchip Technology Inc. Este termistor da a su salida una tensión proporcional a la temperatura, que se lee a través del correspondiente canal del ADC. Su precisión típica es de ±1 °C. Como se observa en la siguiente gráfica, la salida es aceptablemente lineal en el rango de trabajo. Imagen 74 - Temperatura vs Tensión de Salida 2.10.5.10- Conectores en borde de placa Para facilitar la conexión de los sensores, se ha escogido la solución de utilizar terminal blocks con tornillos ya que es la solución más universal para conectar cualquier cable. El modelo escogido es el 21.01MV25 que si bien soporta tensiones y corrientes mucho mayores que las esperables, la huella es compatible con muchos otros modelos de terminal blocks con paso 5,04 mm. Los conectores se distribuirán a lo largo de los 3 bordes libres de la placa (el inferior queda reservado al conector del bus de expansión). De la forma siguiente • Borde superior: 3 conexiones de sensores de lazo de corriente (2 polos por sensor); 3 conexiones de sensores de resistencia variable + 1 conexión a la -87- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA • • tensión de +3,3 V para alimentarlos; 4 conexiones de fuentes genéricas: Vin, +3,3 V, 5 V y GND. Borde izquierdo: 8 entradas para sensores de tensión 0-10 V + 1 conexión de referencia (GND); 1 conexión de sensor de lazo de corriente (2 polos). Borde derecho: 6 conexiones de entradas digitales + 1 conexión a +3,3 V y 1 conexión a la referencia GND; 1 conexión a sensor analógico (3 polos: +3,3 V, GND y conexión directa al ADC). -88Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.6Firmware A continuación se detallan las funciones necesarias para interactuar con los dispositivos no soportados actualmente por la API del Programable XBee. 2.10.6.1Expansor de GPIOs Este set de funciones requiere que el componente I2C sea añadido al proyecto para su correcto funcionamiento. Se han utilizado en todo el proyecto dos modelos de expansores, PCA9538 de 8-bits y PCA9555 de 16-bits; las funciones distinguen entre ambos modelos gracias a la dirección. Siendo de 70h a 73h para el PCA9538 y de 20h a 27h para el PCA9555. 2.10.6.1.1- Mapa de registros Todos los registros son de 8-bits y se accede a ellos de igual forma en todos los mdoelos. Registro Protocolo Puerto de entrada Puerto de salida Inversión de Polaridad Configuración Lectura Lectura/Escritura Lectura/Escritura Lectura/Escritura 8bits 0 1 2 3 16-bits 0, 1 2, 3 4, 5 6, 7 Tabla 19 - Registros de los expansores de GPIOs Puerto de entrada En este registro se encuentran enmascaradas los valores leídos en las entradas. Puerto de salida En este registro de lectura/escritura se reflejan los valores lógicos de los pines definidos como salidas en el registro configuración, no teniendo sentido en los que son configurados como entradas. Inversión de Polaridad Este registro almacena la máscara de inversión de las entradas, significando un 1 que la entrada será invertida y un 0 que no. Si el bit correspondiente al I/O0 está configurado como invertido, se leerá un 1 cuando haya un nivel bajo a la entrada y un 0 cuando sea un nivel bajo. Configuración En este registro se configura el comportamiento de los puertos, escribiéndose un 1 para configurarlo como entrada y un 0 para salida. Por defecto, todos los pines se configuran como entrada al inicializarse el dispositivo (Power On Reset). -89Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.6.1.2- Lectura de registro genérico Esta función devuelve el contenido del registro “dir” del expansor I2C con dirección “addr”. uint8_t gpio_expander_read_register(uint8_t addr, uint8_t dir); 2.10.6.1.3- Escritura de registro genérico Esta función escribe en el registro “dir” del dispositivo I2C con dirección “addr” el contenido “value”. void gpio_expander_write_register uint8_t value); (uint8_t addr, uint8_t dir, 2.10.6.1.4- Configuración de GPIO de expansor Esta función se encarga de configurar automáticamente un pin del expansor I2C como entrada o salida. Toma como parámetros la dirección del expansor “addr”, el índice “index” (0 – 15) y el sentido “dir” que indica si se configurará como entrada o salida. Su funcionamiento se basa en leer el registro de configuración correspondiente al pin y modificar el valor del bit de interés mediante operaciones lógicas con máscaras, para luego escribir el nuevo valor del registro. void xgpio_config(uint8_t addr, uint8_t index, uint8_t dir); 2.10.6.1.5- Escritura de valor en GPIO de expansor Esta función permite escribir un 1 o 0 lógico en una salida determinada del expansor. Toma como parámetros de entrada la dirección I2C del expansor “addr”, el índice de la GPIO a escribir “index” y el valor (0 o 1) que se asignará a dicha salida. void xgpio_set(uint8_t addr, uint8_t index, uint8_t value); Su funcionamiento se basa en leer el registro del puerto de salida correspondiente al pin y modificar el valor del bit de interés mediante operaciones lógicas con máscaras, para luego escribir el nuevo valor del registro. 2.10.6.1.6- Lectura de valor de GPIO de expansor Esta función devuelve 1 o 0 en función del valor que tiene una entrada del expansor de GPIOs. Toma como parámetros de entrada la dirección I2C del expansor “addr” y el índice de la GPIO a leer “index”. bool_t xgpio_get(uint8_t addr, uint8_t index); Su funcionamiento se basa en leer el registro del puerto de entrada correspondiente al pin y hacer una AND bit a bit con una máscara que solo tenga un 1 en el bit de interés. Por ejemplo, para leer el valor del 7º bit se utiliza la máscara 0x80 o 0b10000000. -90Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.6.2Reloj en tiempo real Este dispositivo requiere de la inclusión del componente I2C para su correcto funcionamiento. Debido a que la dirección del RTC no es configurable, ninguna función integrante tiene como parámetro de entrada la dirección. Sin embargo, dicha dirección se encuentra declarada como una macro en el fichero de cabecera, lo que permitiría cambiarla fácilmente en tiempo de compilación si fuese necesario. 2.10.6.2.1- Mapa de registros Como se observa en la siguiente tabla, los registros de año, mes, día, hora, minutos y segundos son almacenados en formato BCD (Binary Coded Decimal, Decimal codificado en binario). Esto complica ligeramente la lectura en nuestro sistema, ya que deben hacerse operaciones de desplazamiento y enmascarado para pasarlos a una codificación binaria pura que permita realizar operaciones con normalidad. En lo que se refiere a la configuración de las alarmas, los bits que definen el modo están embebidos en los registros de alarma (07h a 0Dh), lo que añade complicación a la hora de configurar las alarmas ya que no se trata de escribir un solo registro, sino de modificar cuatro bits en cuatro registros distintos. Tabla 20 - Mapa de registros del DS1337 -91Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA En la siguiente tabla se observan los modos de alarma disponibles. Para simplificar el uso del RTC se ha decidido dejar a disposición del suuario las alarmas disponibles y enmascarar el hecho de que en realidad pueden utilizarse dos alarmas de manera independiente. De esta forma, la API configura la alarma 1 o 2 en función de lo solicitado, desactivando la que no se utiliza. Tabla 21 - Configuraciones de alarma disponibles 2.10.6.2.2- Estructura time_date_t En el fichero de cabecera se incluye la definición de la estructura time_date_t, necesaria para almacenar tanto la fecha como la hora en el espacio de usuario. typedef struct { uint8_t uint8_t uint8_t uint8_t uint8_t uint8_t uint16_t } time_date_t; sec; min; hour; mday; wday; /* 1-Sunday 2- Monday ... 7- Saturday */ month; year; 2.10.6.2.3- Tipos de alarma y macros a utilizar • DS1337_ALARM_SEC_PER: Alarma una vez por segundo. • DS1337_ALARM_MIN_PER: Alarma una vez por minuto. • DS1337_ALARM_SEC_MATCH: Alarma cuando los segundos sean iguales a los especificados. • DS1337_ALARM_MIN_MATCH: Alarma cuando los minutos sean iguales a los especificados. • DS1337_ALARM_MIN_SEC_MATCH: Alarma cuando los minutos y segundos sean iguales a los especificados. -92Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA • • • DS1337_ALARM_HOUR_MATCH: Alarma cuando la hora sea igual a la especificada (minuto 00). DS1337_ALARM_MDAY_MATCH: Alarma cuando el día del mes, hora y minutos sean iguales a los especificados. DS1337_ALARM_WDAY_MATCH: Alarma cuando el día de la semana, hora y minutos sean iguales a los especificados. 2.10.6.2.4- Configurar hora Esta función toma como parámetro de entrada un puntero a una estructura time_date_t de la que sólo se tienen en consideración los campos referentes a la hora y se ignoran los de la fecha. ssize_t rtc_i2c_set_time(time_date_t *time); 2.10.6.2.5- Leer hora Esta función toma como parámetro de entrada un puntero a una estructura time_date_t que es rellenada solo en los campos referentes a la hora, dejando intactos los de la fecha. ssize_t rtc_i2c_get_time(time_date_t *time); 2.10.6.2.6- Configurar fecha Esta función toma como parámetro de entrada un puntero a una estructura time_date_t de la que sólo se tienen en consideración los campos referentes a la fecha y se ignoran los de la hora. ssize_t rtc_i2c_set_date(time_date_t *time); 2.10.6.2.7- Leer fecha Esta función toma como parámetro de entrada un puntero a una estructura time_date_t que es rellenada solo en los campos referentes a la fecha y se dejan intactos los de la hora. ssize_t rtc_i2c_get_date(time_date_t *time); 2.10.6.2.8- Configurar alarma Esta function toma como parámetros de entrada un puntero a una estructura time_date_t la cual ha debido ser convenientemente rellenada y un entero que indica el comportamiento de la alarma. Se recomienda que dicho entero sea una de las macros definidas para describir el tipo de alarma deseado. ssize_t rtc_i2c_set_alarm(time_date_t *time, uint8_t alarm_set); -93Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.6.2.9- Encuesta de Alarma Esta función devuelve un booleano indicando si la alarma configurada se ha disparado o no. Útil para hacer un polling (encuesta) cuando hay más de una fuente de interrupción habilitada. bool_t rtc_i2c_alarm_flag(void); 2.10.6.2.10- Limpiar bandera de interrupción Esta función no toma ningún parámetro de entrada ni devuelve salida, se encarga de borrar el bit de interrupción del RTC. void rtc_i2c_alarm_clear_flag(void); 2.10.6.2.11- Deshabilitación de la alarma Esta función no toma ningún parámetro de entrada ni devuelve salida, se encarga de deshabilitar la alarma configurada en el RTC. void rtc_i2c_alarm_disable(void); 2.10.6.3Conversor Analógico Digital Este dispositivo requiere de la inclusión del componente I2C para funcionar. Este dispositivo tiene nueve direcciones posibles, según la tabla siguiente. Estas direcciones se comprueban en todas las funciones para asegurarse de que se trata de un ADC de la familia correcta. Tabla 22 - Direcciones disponibles del ADC128D818 2.10.6.3.1- Mapa de registros Un detalle importante es que los registros de medida son de 16 bits y deben leerse en orden (primero el LSB y luego el MSB) o el valor no será válido. Por otra parte, el resto de los registros son de 8-bits. Con este mapa, es necesario crear funciones internas para la lectura y escritura de registros de ambos tamaños. -94Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Tabla 23 - Mapa de memoria del ADC128D818 2.10.6.3.2- Configurar ADC La siguiente función toma como parámetros de entrada la dirección I2C del dispositivo “addr”, la máscara de canales habilitados “ch_en_mask”, un booleano indicando si la referencia a utilizar es interna o externa “int_ref” y un entero de 8 bits “mode” para indicar el modo de funcionamiento del ADC (de 0 a 3). Devuelve un 0 si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_config(uint8_t int_ref, uint8_t mode); addr, uint8_t ch_en_mask, bool_t 2.10.6.3.3- Iniciar conversion La siguiente función toma como parámetros de entrada la dirección I2C del dispositivo “addr”, y un booleano indicando si se quiere iniciar una conversión continua o detenerla para ahorrar energía. Devuelve un 0 si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_start(uint8_t addr, bool_t start); 2.10.6.3.4- Limpiar bandera de interrupción La siguiente función limpia la bandera de interrupción del ADC con dirección I2C “addr”. Devuelve 0 si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_clear_int(uint8_t addr); 2.10.6.3.5- Configurar ratio de conversion La siguiente función configura la frecuencia de conversión del ADC con dirección I2C “addr” en función del parámetro “conv_rate”. Dicho parámetro puede tomar los valores de las macros ADC128D18_CONV_RATE_LP para bajo consumo (conversión -95Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA solo cuando se especifica mediante la función adc128d18_one_shot()) y ADC128D18_CONV_RATE_CONT para una conversión continua. Devuelve 0 si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_conversion_rate(uint8_t addr, uint8_t conv_rate); 2.10.6.3.6- Lectura de canal La siguiente función lee el canal “ch” del ADC con dirección I2C “addr”. Devuelve el valor del registro en formato 16-bits si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_read_ch(uint8_t addr, uint8_t ch); 2.10.6.3.7- Lectura de temperatura Si el ADC está configurado en modo 2, puede obtenerse la temperatura a través de esta función. Toma como único parámetro la dirección I2C “addr” del ADC. Devuelve el valor de la temperatura en formato 16-bits si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_read_temp(uint8_t addr); 2.10.6.3.8- Estado del ADC La siguiente función consulta el estado del ADC con dirección I2C “addr”. Devuelve 1 o 0 en función de si está ocupado o no haciendo una conversión y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_is_busy(uint8_t addr); 2.10.6.3.9- Convertir valor del canal La siguiente función toma como parámetro la lectura de un canal “chval” previamente leído y devuelve su valor en formato “Valor * 1000” utilizando aritmética entera. Como nota importante, esta función solo funciona correctamente si la referencia del ADC es la interna de 2,54 V. ssize_t adc128d18_convert_chval(uint16_t chval); 2.10.6.3.10- Configurar modo del ADC La siguiente función configura el ADC de dirección I2C “addr” con el modo “mode” (0 a 3). Devuelve 0 si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_set_mode(uint8_t addr, uint8_t mode); 2.10.6.3.11- Lectura del modo del ADC La siguiente función devuelve el modo de funcionamiento del ADC con dirección I2C “addr” si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. -96Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA ssize_t adc128d18_get_mode(uint8_t addr); 2.10.6.3.12- Lectura del registro de estado La siguiente función devuelve el registro de estado del ADC con dirección I2C “addr” si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_get_status(uint8_t addr); 2.10.6.3.13- Realizar un ciclo de conversión La siguiente función inicia una conversión “one-shot” siempre y cuando el ADC esté configurado en modo LP (low-power). Una vez iniciada la conversión se deberá consultar el estado del ADC con la función adc128d18_is_busy() antes de leer el valor del canal. Toma como único parámetro de entrada la dirección I2C “addr” del ADC deseado. Devuelve 0 si no ha habido error y un número negativo indicando el tipo de error en caso de haberlo. ssize_t adc128d18_one_shot(uint8_t addr); 2.10.6.3.14- Configurar interrupciones La siguiente función configura una interrupción por niveles del canal “ch” del ADC con dirección I2C “addr”. Los parámetros “lim_lo” y “lim_hi” son los límites inferior y superior respectivamente para los cuales se disparará la interrupción si el valor del canal no está entre ambos. El último parámetro, “enable”, habilita o deshabilita la interrupción. ssize_t adc128d18_irq_config(uint8_t lim_lo, uint8_t lim_hi, bool_t enable); addr, uint8_t ch, uint8_t 2.10.6.3.15- Lectura del estado de las interrupciones La siguiente función devuelve el registro de máscaras de interrupciones del ADC con dirección I2C “addr”. En dicho registro de 8 bits se encuentran enmascaradas con un 1 las interrupciones que han sido disparadas. En caso de error, devuelve un número negativo indicando de qué tipo de error se trata. ssize_t adc128d18_get_irq_status(uint8_t addr); -97Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.6.4- Acelerómetro 2.10.6.4.1- Mapa de memoria Tabla 24 - Mapa de memoria del MMA8453Q -98Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Como se observa en el mapa de memoria del dispositivo, todos los registros son de 8 bits. En el caso de seleccionarse la resolución de 10 bits, se debe leer primero registro más alto de la medida y luego el siguiente. Este dispositivo realiza un autoincremento del puntero de dirección, por lo que si está configurado en resolución de 8 bits, después de leer el registro OUT_X_MSB la siguiente lectura será del OUT_Y_MSB. Otros registros de interés además de los de medidas son el SYSMOD que indica en qué modo está el acelerómetro (Stand-by, Deep Shutdown o Active); los registros de control CTRL_REG1, CTRL_REG2, CTRL_REG3, CTRL_REG4 y CTRL_REG5 para configurar los modos y el registro de orientación PL_STATUS. 2.10.6.4.2- Configurar modo La siguiente función configura el modo de funcionamiento del acelerómetro con dirección I2C “addr”. El parámetro “mode” puede tomar como valores 1 o 0 para modo activo o stand-by respectivamente, pero se recomienda utilizar las macros predefinidas MMA8453Q_ACTIVE y MMA8453Q_STANDBY. Devuelve 0 en caso de éxito y en caso de error un número negativo indicando de qué tipo se trata. ssize_t mma8453q_set_mode(uint8_t addr, uint8_t mode); 2.10.6.4.3- Leer modo La siguiente función devuelve el modo de funcionamiento del acelerómetro con dirección I2C “addr”, salvo en caso de error que devuelve un número negativo indicando de qué tipo se trata. El valor deberá ser comparado con las macros definidas MMA8453Q_ACTIVE y MMA8453Q_STANDBY. ssize_t mma8453q_get_mode(uint8_t addr); 2.10.6.4.4- Configurar sensibilidad La siguiente función configura la sensibilidad del acelerómetro con dirección I2C “addr”. Para el parámetro “sens” se recomienda utilizar las macros predefinidas MMA8453Q_SENS_2G, MMA8453Q_SENS_4G y MMA8453Q_SENS_8G. Devuelve 0 en caso de éxito y en caso de error un número negativo indicando de qué tipo se trata. ssize_t mma8453q_set_sens(uint8_t addr, uint8_t sens); 2.10.6.4.5- Leer sensibilidad La siguiente función devuelve la sensibilidad actualmente configurada en el acelerómetro con dirección I2C “addr”, salvo en caso de error que devuelve un número negativo indicando de qué tipo se trata. El valor deberá ser comparado con las macros definidas MMA8453Q_SENS_2G, MMA8453Q_SENS_4G y MMA8453Q_SENS_8G. ssize_t mma8453q_get_sens(uint8_t addr); -99Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.6.4.6- Configurar resolución La siguiente función configura la resolución del acelerómetro con dirección I2C “addr”. El parámetro booleano “res_8bit” será 1 para configurar la resolución a 8 bits o 0 para configurarla a 10-bits. Devuelve 0 en caso de éxito y en caso de error un número negativo indicando de qué tipo se trata. ssize_t mma8453q_set_resolution(uint8_t addr, bool_t res_8bit); 2.10.6.4.7- Leer resolución La siguiente función devuelve la resolución actual del acelerómetro con dirección 2 I C “addr”. Devuelve 1 si la resolución es de 8 bits, 0 si es de 10 bits o en caso de error un número negativo indicando de qué tipo se trata. ssize_t mma8453q_get_resolution(uint8_t addr); 2.10.6.4.8- Calibrar La siguiente función calibra el acelerómetro con dirección I2C “addr”, con opción a guardar los parámetros de configuración en los 3 bytes más altos de la memoria EEPROM virtual (componente que deberá estar habilitado para que dicha funcionalidad funcione). Devuelve 0 en caso de éxito o un número negativo indicando el tipo de error ocurrido. ssize_t mma8453q_calibrate(uint8_t addr, bool_t save_eeprom); 2.10.6.4.9- Restaurar calibración Si los parámetros de calibración han sido guardados en la eeprom con la función mma8453q_calibrate(), la siguiente función los restaurará. Toma como único parámetro la dirección I2C “addr” del acelerómetro destino. Devuelve 0 en caso de éxito o un número negativo indicando el tipo de error ocurrido. ssize_t mma8453q_restore_calibration(uint8_t addr); 2.10.6.4.10- Leer medidas La siguiente function leerá los registros de medida del acelerómetro con dirección 2 I C “addr” y los almacenará en las direcciones apuntadas por “x”, “y” y “z”. Si no se desea leer alguno de estos ejes, basta con pasar como parámetro un puntero nulo (NULL). Devuelve 0 en caso de éxito o un número negativo indicando el tipo de error ocurrido. ssize_t mma8453q_get_measurements(uint8_t addr, void *x, void *y, void *z); 2.10.6.4.11- Habilitar lectura de orientación La siguiente función habilita o deshabilita la lectura del registro de orientación del acelerómetro con dirección I2C “addr”, en función del valor de “enable” (1 para habilitar, 0 para deshabilitar). Devuelve 0 en caso de éxito o un número negativo indicando el tipo de error ocurrido. -100Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA ssize_t mma8453q_enable_orientation(uint8_t addr, bool_t enable); 2.10.6.4.12- Leer orientación La siguiente función devuelve la orientación del acelerómetro con dirección I2C “addr”. Dicho valor deberá ser comparado con las siguientes macros definidas mediante máscaras: • • • • • • MMA8453Q_PL_STAT_PORT_UP: Vertical hacia arriba (Portrait Up). MMA8453Q_PL_STAT_PORT_DOWN: Vertical hacia abajo (Portrait Down). MMA8453Q_PL_STAT_LAN_RIGHT: Horizontal Derecha (Landscape Right). MMA8453Q_PL_STAT_LAN_LEFT: Horizontal Izquierda (Landscape Left). MMA8453Q_PL_STAT_FRONT: Frontal (Front). MMA8453Q_PL_STAT_BACK: Trasera (Back). ssize_t mma8453q_get_orientation(uint8_t addr); Imagen 75 - Orientaciones capaces de ser detectadas por el MMA8453Q El hecho de que existan estas máscaras no es trivial, ya que el registro tiene dos bits para indicar si es Landscape o Portrait y un bit para indicar si está de frente (Front) o de espaldas (Back), como se ve en la siguiente tabla: Tabla 25 - Registro PL_STATUS -101Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.10.6.4.13- Convertir medidas La siguiente función devuelve el valor de la medida “measure”, previamente obtenida con la función mma8453q_get_measurements() en milésimas de g (atracción grativacional terrestre media). Para ello además hay que indicar la resolución configurada del acelerómetro “res_8bit” con un 1 si es de 8 bits o un 0 si es de 10 bits. Y la sensibilidad “sens” que debe tomar como valor las macros predefinidas MMA8453Q_SENS_2G, MMA8453Q_SENS_4G y MMA8453Q_SENS_8G. En caso de error, devuelve un número negativo indicando de qué tipo se trata. ssize_t mma8453q_convert_measure(int16_t measure, bool_t res_8bit, uint8_t sens); -102Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.11- Planificación El desarrollo del proyecto consistirá en las fases que se detallan a continuación: • Estudios previos • En esta fase se analizarán las soluciones existentes en el mercado a problemas similares. Además, se incluye aquí la familiarización con la API del Programmable XBee y CodeWarrior. Conocidas sus ventajas y limitaciones, se procederá a las fases de diseño. Especificaciones hardware En base a la fase anterior, se redactarán las especificaciones generales en lo concerniente a alimentación, bus de expansión, conectores, tamaño de las placas, etcétera. • Librería de componentes En esta fase está computado el tiempo de creación y mantenimiento de los componentes no incluidos en la librería estándar de kiCad. Éstos son utilizados por el programa eeschema de kiCAD para realizar los esquemas de conexiones. • Librería de huellas En esta fase está computado el tiempo de creación y mantenimiento de las huellas o footprints no incluidos en la librería estándar de kiCad. Éstas son utilizadas por el programa pcbnew de kiCAD para desarrollar las placas de circuito impreso. • Diseño de la placa principal Esta fase se divide en las siguientes etapas: • o Esquema de conexiones o Disposición de componentes o Trazado de pistas Diseño de la placa HMI Esta fase se divide en las siguientes etapas: o Esquema de conexiones o Disposición de componentes o Trazado de pistas -103- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA • • • • • Fabricación de placa principal – 1º prototipo Fabricación de placa HMI – 1º prototipo Prueba de las interfaces hardware – Placa principal – 1º prototipo Prueba de las interfaces hardware - Placa HMI – 1º prototipo Diseño de la placa de expansión de E/S: Esta fase se divide en las siguientes etapas: o Esquema de conexiones o Disposición de componentes o Trazado de pistas • Diseño de la placa de sensores: Esta fase se divide en las siguientes etapas: • • • • • • • • • • • • • • • • • • • o Esquema de conexiones o Disposición de componentes o Trazado de pistas Corrección de errores de placa principal Corrección de errores de placa HMI Fabricación de placa de expansión de E/S – 1º prototipo Fabricación de placa de sensores – 1º prototipo Fabricación de placa principal – 2º prototipo Fabricación de placa HMI – 2º prototipo Prueba de las interfaces hardware - Placa de sensores – 1º prototipo Prueba de las interfaces hardware - Placa de expansión de E/S – 1º prototipo Prueba de las interfaces hardware - Placa principal – 2º prototipo Prueba de las interfaces hardware - Placa HMI – 2º prototipo Comprobación de interfaces hardware Corrección de errores de placa de expansión de E/S Corrección de errores de placa de sensores Fabricación de placa expansión de E/S – 2º prototipo Fabricación de placa de sensores – 2º prototipo Prueba de las interfaces hardware - Placa de sensores – 2º prototipo Prueba de las interfaces hardware - Placa de expansión de E/S – 2º prototipo. Desarrollo del firmware. Redacción de la documentación del proyecto. Como comentario a algunas fases comunes, se definen las siguientes sub-etapas: -104Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Esquema de conexiones En esta fase se deberán tomar decisiones en lo referente a los reguladores de alimentación, debugger, conectores y demás componentes necesarios. Una vez acabado el esquemático será revisado minuciosamente para detectar posibles fallos. Disposición de componentes Antes de trazar las pistas de conexiones en base al esquema, se debe decidir en qué posiciones de la placa son colocados los distintos componentes. Esto es importante para evitar componentes que se solapan, botones que quedan inaccesibles, LEDs difíciles de apreciar, etc. Trazado de pistas Finalmente, el trazado de pistas se hará de forma manual, prestando atención a los requerimientos particulares de cada componente en función de las recomendaciones del fabricante en sus hojas de datos. Como se ha dicho en las especificaciones, se debe procurar que el diseño no exceda las dos capas de trazado. -105Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA Imagen 76 - Diagrama de Gantt de la planificación -106Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-MEMORIA 2.12- Orden de prioridad de documentos La prioridad a seguir en caso de discrepancia entre los distintos documentos será la establecida por la norma UNE 157001:2002 que especifica el orden de prioridad siguiente: • • • • Planos. Pliego de condiciones. Presupuesto. Memoria. -107Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 UNIVERSIDAD DE LA RIOJA Anexos Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables Sebastián Pastor Volosín 22/06/2012 Peticionario: Digi International Spain S.A. Titulación: Ingeniería Técnica Industrial en Electrónica Industrial Director: Carlos A. Rodríguez González Departamento: Ingeniería Eléctrica Curso: 2011/2012 Lugar y fecha: Logroño, 22 de Junio de 2012 4.-ANEXOS 3- ANEXOS 3.1- Índice de anexos 3.2- ANEXO I: Diferentes tecnologías de comunicación implementadas...... 111 3.2.1- Serial Communications Interface .................................................... 111 3.2.1.1- Introducción .............................................................................................. 111 3.2.1.2- Puerto serie asincrónico ............................................................................ 112 3.2.1.3- Puertos serie modernos ............................................................................ 113 3.2.1.4- Tipos de comunicación serie ..................................................................... 113 3.2.1.4.1- Simplex ................................................................................................. 113 3.2.1.4.2- Duplex, half duplex o semi-duplex ....................................................... 113 3.2.1.4.3- Full Duplex ............................................................................................ 113 3.2.2- SPI .................................................................................................... 113 3.2.2.1- Ventajas y desventajas del bus SPI ............................................................ 114 3.2.2.1.1- Ventajas ................................................................................................ 114 3.2.2.1.2- Desventajas .......................................................................................... 115 3.2.3- I2C .................................................................................................... 115 3.2.4- Protocolo Zigbee ............................................................................. 117 3.2.4.1- Pila de protocolos ZigBee .......................................................................... 117 3.2.4.2- Nivel de red ............................................................................................... 118 3.2.4.3- Nivel de aplicación..................................................................................... 118 3.2.4.4- Componentes principales .......................................................................... 118 3.2.4.5- Modelos de comunicación ........................................................................ 118 3.2.4.6- Comunicación y descubrimiento de dispositivos ...................................... 119 3.2.4.7- Servicios de seguridad ............................................................................... 121 3.2.4.7.1- Modelo básico de seguridad ................................................................ 121 3.2.4.7.2- Arquitectura de seguridad.................................................................... 121 3.3- ANEXO II: USBDM ................................................................................... 123 3.3.1- Introduction..................................................................................... 123 3.3.2- JS16 based versions (Current designs) ............................................ 123 3.3.2.1- Minimal design - Supports HCS12, HCS08, Coldfire V1 ............................. 123 3.3.2.2- Minimal design - Supports Coldfire V2,3,4, Kinetis and DSC (M56F80xx only) 124 3.3.3- USBDM for JS16 (Supports HCS12, HCS08, Coldfire V1) ................ 124 -109- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.3.3.1- Introduction............................................................................................... 124 3.3.3.2- Features ..................................................................................................... 124 3.3.3.3- Pictures ...................................................................................................... 126 3.3.3.4- Hardware Design ....................................................................................... 126 3.3.3.5- Credits ....................................................................................................... 126 3.3.3.6- References ................................................................................................. 127 3.3.3.7- Queries ...................................................................................................... 128 3.3.3.8- License ....................................................................................................... 128 3.3.4- USB Driver Installation .................................................................... 129 3.3.4.1- Note for upgrading from version 3.x to 4.x USBDM firmware .................. 129 3.3.4.2- Installation of USBDM USB drivers for Linux ............................................. 129 3.3.4.3- Installation of USBDM USB drivers for Windows ...................................... 129 3.3.4.4- Alternative Driver Installation Method for Windows ............................... 137 3.3.4.4.1- Preliminary ........................................................................................... 137 3.3.4.5- Installation of USBDM USB drivers for old VID/PID .................................. 139 3.3.4.6- Preliminary ................................................................................................ 139 3.3.4.7- Linux Drivers .............................................................................................. 140 -110Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.2- ANEXO I: Diferentes tecnologías de comunicación implementadas En la realización del proyecto se han tenido que utilizar diferentes tecnologías de comunicación, como son el protocolo SPI, SCI, I2C, pasamos a realizar una pequeña descripción de ellos. 3.2.1- Serial Communications Interface Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, donde la información es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que envía varios bits simultáneamente. La comparación entre la transmisión en serie y en paralelo se puede explicar usando una analogía con las carreteras. Una carretera tradicional de un sólo carril por sentido sería como la transmisión en serie y una autovía con varios carriles por sentido sería la transmisión en paralelo, siendo los vehículos los bits que circulan por el cable. 3.2.1.1- Introducción En informática, un puerto serie es una interfaz física de comunicación en serie a través de la cual se transfiere información mandando o recibiendo un bit. A lo largo de la mayor parte de la historia de las computadoras, la transferencia de datos a través de los puertos de serie ha sido generalizada. Se ha usado y sigue usándose para conectar las computadoras a dispositivos como terminales o módems. Los ratones, teclados, y otros periféricos también se conectaban de esta forma. Mientras que otras interfaces como Ethernet, FireWire, y USB mandaban datos como un flujo en serie, el término "puerto serie" normalmente identifica el hardware más o menos conforme al estándar RS-232, diseñado para interactuar con un módem o con un dispositivo de comunicación similar. Actualmente en la mayoría de los periféricos serie, la interfaz USB ha reemplazado al puerto serie puesto que es más rápida. La mayor parte de las computadoras están conectadas a dispositivos externos a través de USB y, a menudo, ni siquiera llegan a tener un puerto serie. El puerto serie se elimina para reducir los costes y se considera que es un puerto heredado y obsoleto. Sin embargo, los puertos serie todavía se encuentran en sistemas de automatización industrial y algunos productos industriales y de consumo. Los dispositivos de redes, como los enrutadores y conmutadores, a menudo tienen puertos serie para modificar su configuración. Los puertos serie se usan frecuentemente en estas áreas porque son sencillos, baratos y permiten la -111Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS interoperabilidad entre dispositivos. La desventaja es que la configuración de las conexiones serie requiere, en la mayoría de los casos, un conocimiento avanzado por parte del usuario y el uso de comandos complejos si la implementación no es adecuada. 3.2.1.2- Puerto serie asincrónico A través de este tipo de puerto la comunicación se establece usando un protocolo de transmisión asíncrono. En este caso, se envía en primer lugar una señal inicial anterior al primer bit de cada byte, carácter o palabra codificada. Una vez enviado el código correspondiente, se envía inmediatamente una señal de stop después de cada palabra codificada. La señal de inicio (start) sirve para preparar al mecanismo de recepción o receptor, la llegada y registro de un símbolo, mientras que la señal de stop sirve para predisponer al mecanismo de recepción para que tome un descanso y se prepare para la recepción del nuevo símbolo. La típica transmisión start-stop es la que se usa en la transmisión de códigos ASCII a través del puerto RS-232, como la que se establece en las operaciones con teletipos. Figura 1. Ejemplo de una trama serie El puerto serie RS-232 (también conocido como COM) es del tipo asincrónico, utiliza cableado simple desde 3 hilos hasta 25 y conecta computadoras o microcontroladores a todo tipo de periféricos, desde terminales a impresoras y módems pasando por ratones. La interfaz entre el RS-232 y el microprocesador generalmente se realiza mediante una UART 8250 (computadoras de 8 y 16 bits, PC XT) o 16550 (IBM Personal Computer/AT y posteriores). El RS-232 original tenía un conector tipo DB-25, sin embargo la mayoría de dichos pines no se utilizaban, por lo que IBM estandarizó con su gama IBM Personal System/2 el uso del conector DB-9(ya introducido en el AT) que se usaba, de manera mayoritaria en computadoras. Sin embargo, a excepción del mouse, el resto de periféricos solían presentar el DB-25. La norma RS-422, similar al RS-232, es un estándar utilizado en el ámbito industrial. -112Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.2.1.3- Puertos serie modernos Uno de los defectos de los puertos serie iniciales era su lentitud en comparación con los puertos paralelos -hablamos de 19.2 kbits por segundo- sin embargo, con el paso del tiempo, están apareciendo multitud de puertos serie de alta velocidad que los hacen muy interesantes ya que presentan las ventajas del menor cableado y solucionan el problema de la merma de velocidad usando un mayor apantallamiento, y más barato, usando la técnica del par trenzado. Por ello, el puerto RS-232, e incluso multitud de puertos paralelos, se están sustituyendo reemplazándose por los nuevos puertos serie como el USB, el FireWire o el Serial ATA. 3.2.1.4- Tipos de comunicación serie 3.2.1.4.1- Simplex En este caso el emisor y el receptor están perfectamente definidos y la comunicación es unidireccional. Este tipo de comunicaciones se emplean, usualmente, en redes de radiodifusión, donde los receptores no necesitan enviar ningún tipo de dato al transmisor. 3.2.1.4.2- Duplex, half duplex o semi-duplex En este caso ambos extremos del sistema de comunicación cumplen funciones de transmisor y receptor y los datos se desplazan en ambos sentidos pero no de manera simultánea. Este tipo de comunicación se utiliza habitualmente en la interacción entre terminales y una computadora central. 3.2.1.4.3- Full Duplex El sistema es similar al duplex, pero los datos se desplazan en ambos sentidos simultáneamente. Para que sea posible ambos emisores poseen diferentes frecuencias de transmisión o dos caminos de comunicación separados, mientras que la comunicación semi-duplex necesita normalmente uno solo. Para el intercambio de datos entre computadores este tipo de comunicaciones son más eficientes que las transmisiones semi-dúplex. 3.2.2- SPI El Bus SPI (del inglés Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de información entre circuitos integrados en equipos electrónicos. El bus de interfaz de periféricos serie o bus SPI es un estándar para controlar casi cualquier electrónica digital que acepte un flujo de bits serie regulado por un reloj. -113Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS Incluye una línea de reloj, dato entrante, dato saliente y un pin de chip select, que conecta o desconecta la operación del dispositivo con el que uno desea comunicarse. De esta forma, este estándar permite multiplexar las líneas de reloj. Muchos sistemas digitales tienen periféricos que necesitan existir pero no ser rápidos. La ventajas de un bus serie es que minimiza el número de conductores, pines y el tamaño del circuito integrado. Esto reduce el coste de fabricar montar y probar la electrónica. Un bus de periféricos serie es la opción más flexible cuando muchos tipos diferentes de periféricos serie están presentes. El hardware consiste en señales de reloj, data in, data out y chip select para cada circuito integrado que tiene que ser controlado. Casi cualquier dispositivo digital puede ser controlado con esta combinación de señales. Los dispositivos se diferencian en un número predecible de formas. Unos leen el dato cuando el reloj sube otros cuando el reloj baja. Algunos lo leen en el flanco de subida del reloj y otros en el flanco de bajada. Escribir es casi siempre en la dirección opuesta de la dirección de movimiento del reloj. Algunos dispositivos tienen dos relojes. Uno para capturar o mostrar los datos y el otro para el dispositivo interno. 3.2.2.1- Ventajas y desventajas del bus SPI 3.2.2.1.1• • • • • • • • • • • • Ventajas Comunicación Full Duplex Mayor velocidad de transmisión que con I²C o SMBus Protocolo flexible en que se puede tener un control absoluto sobre los bits transmitidos No está limitado a la transferencia de bloques de 8 bits Elección del tamaño de la trama de bits, de su significado y propósito Su implementación en hardware es extremadamente simple Consume menos energía que I²C o que SMBus debido que posee menos circuitos (incluyendo las resistencias pull-up) y estos son más simples No es necesario arbitraje o mecanismo de respuesta ante fallos Los dispositivos clientes usan el reloj que envía el servidor, no necesitan por tanto su propio reloj No es obligatorio implementar un transceptor (emisor y receptor), un dispositivo conectado puede configurarse para que solo envíe, sólo reciba o ambas cosas a la vez Usa muchos menos terminales en cada chip/conector que una interfaz paralelo equivalente Como mucho una única señal específica para cada cliente (señal SS), las demás señales pueden ser compartidas -114Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.2.2.1.2• • • • • • Desventajas Consume más pines de cada chip que I²C, incluso en la variante de 3 hilos El direccionamiento se hace mediante líneas específicas (señalización fuera de banda) a diferencia de lo que ocurre en I²C que se selecciona cada chip mediante una dirección de 7 bits que se envía por las mismas líneas del bus No hay control de flujo por hardware No hay señal de asentimiento. El servidor podría estar enviando información sin que estuviese conectado ningún cliente y no se daría cuenta de nada No permite fácilmente tener varios servidores conectados al bus Sólo funciona en las distancias cortas a diferencia de, por ejemplo, RS232, RS-485, o Bus CAN. 3.2.3- I2C I²C es un bus de comunicaciones en serie. Su nombre viene de Inter-Integrated Circuit (Circuitos Inter-Integrados). La versión 1.0 data del año 1992 y la versión 2.1 del año 2000, su diseñador es Philips. La velocidad es de 100Kbits por segundo en el modo estándar, aunque también permite velocidades de 3.4 Mbit/s. Es un bus muy usado en la industria, principalmente para comunicar microntroladores y sus periféricos en sistemas integrados (Embedded Systems) y generalizando más para comunicar circuitos integrados entre sí que normalmente residen en un mismo circuito impreso. La principal característica de I²C es que utiliza dos líneas para transmitir la información: una para los datos y por otra la señal de reloj. También es necesaria una tercera línea, pero esta sólo es la referencia (masa). Como suelen comunicarse circuitos en una misma placa que comparten una misma masa esta tercera línea no suele ser necesaria. Las líneas se denominan: • • • SDA: datos SCL: reloj GND: tierra Las dos primeras líneas son drenador abierto, por lo que necesitan resistencias de pull-up. Los dispositivos conectados al bus I²C tienen una dirección única para cada uno. También pueden ser maestros o esclavos. El dispositivo maestro inicia la transferencia de datos y además genera la señal de reloj, pero no es necesario que el maestro sea siempre el mismo dispositivo, esta característica se la pueden ir pasando los -115Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS dispositivos que tengan esa capacidad. Esta característica hace que al bus I²C se le denomine bus multi-maestro. Las transacciones en el bus I2C tienen este formato: | start | A7 A6 A5 A4 A3 A2 A1 | R/W | ACK | ... DATA ... | ACK | stop | idle | El bus esta libre cuando SDA y SCL están en estado lógico alto. En estado bus libre, cualquier dispositivo puede ocupar el bus I²C como maestro. El maestro comienza la comunicación enviando un patrón llamado "start condition". Esto alerta a los dispositivos esclavos, poniéndolos a la espera de una transacción. El maestro se dirige al dispositivo con el que quiere hablar, enviando un byte que contiene los siete bits (A7-A1) que componen la dirección del dispositivo esclavo con el que se quiere comunicar, y el octavo bit (A0) de menor peso se corresponde con la operación deseada (L/E), lectura=1 (recibir del esclavo) y escritura=0 (enviar al esclavo). La dirección enviada es comparada por cada esclavo del bus con su propia dirección, si ambas coinciden, el esclavo se considera direccionado como esclavo-transmisor o esclavo-receptor dependiendo del bit R/W. El esclavo responde enviando un bit de ACK que le indica al dispositivo maestro que el esclavo reconoce la solicitud y está en condiciones de comunicarse. Seguidamente comienza el intercambio de información entre los dispositivos. El maestro envía la dirección del registro interno del dispositivo que se desea leer o escribir. El esclavo responde con otro bit de ACK. Ahora el maestro puede empezar a leer o escribir bytes de datos. Todos los bytes de datos deben constar de 8 bits, el número máximo de bytes que pueden ser enviados en una transmisión no está restringido, siendo el esclavo quien fija esta cantidad de acuerdo a sus características. Cada byte leído/escrito por el maestro debe ser obligatoriamente reconocido por un bit de ACK por el dispositivo maestro/esclavo. Se repiten los 2 pasos anteriores hasta finalizar la comunicación entre maestro y esclavo. Aun cuando el maestro siempre controla el estado de la línea del reloj, un esclavo de baja velocidad o que deba detener la transferencia de datos mientras efectúa otra -116Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS función, puede forzar la línea SCL a nivel bajo. Esto hace que el maestro entre en un estado de espera, durante el cual, no transmite información esperando a que el esclavo esté listo para continuar la transferencia en el punto donde había sido detenida. Cuando la comunicación finaliza, el maestro transmite una "stop condition" para dejar libre el bus. Después de la "stop condition", es obligatorio para el bus estar idle durante unos microsegundos. 3.2.4- Protocolo Zigbee ZigBee es una especificación que define una solución para comunicaciones inalámbricas de bajo coste y consumo con vistas a constituir la base del desarrollo de redes ubicuas. ZigBee Alliance desarrolla la especificación y certifica sus implementaciones. En 2007, la versión más reciente es la aprobada en 2006. 3.2.4.1- Pila de protocolos ZigBee ZigBee se basa en el nivel físico y el control de acceso al medio (MAC) definidos en la versión de 2003 del estándar IEEE 802.15.4, que desarrolla estos niveles para las redes áreas personales de baja tasa de transferencia (low-rate personal area networks, LR-WPAN's). La especificación completa de este estándar añadiendo cuatro componentes principales: los niveles de red y aplicación, los objetos de dispositivo ZigBee (ZigBee device objects, ZDO) y objetos de aplicación definidos por el fabricante, que permiten la personalización y adaptación, y favorecen la integración total. Además de añadir dos capas de alto nivel a la pila de protocolos ya existente, el principal cambio es la adición de ZDO's, que son responsables de llevar a cabo una serie de cometidos, entre los que se encuentran el mantenimiento de los roles de los dispositivos, la gestión de peticiones de unión a una red, el descubrimiento de otros dispositivos y la seguridad. En esencia, ZigBee es una arquitectura de red en malla. Su nivel de red soporta de forma nativa tres topologías distintas: por una parte, patrones de redes típicas en estrella y árbol, así como redes genéricas en malla. Toda red necesita un dispositivo coordinador, encargado de su creación, mantenimiento básico y control de sus parámetros. En redes en estrella, el coordinador debe ser el nodo central. Por su parte, las redes en árbol y malla permiten el uso de routers ZigBee para habilitar la comunicación en el nivel de red; éstos no son coordinadores ZigBee, pero pueden serlo de sus respectivos espacios de operación personal definidos por 802.15.4. No obstante, la comunicación en árboles es estrictamente jerárquica y puede utilizar -117Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS opcionalmente tramas baliza, mientras que las mallas permiten estructuras arbitrarias pero no balizado en los routers. 3.2.4.2- Nivel de red Los cometidos principales del nivel de red son permitir el correcto uso del subnivel MAC y ofrecer un interfaz adecuado para su uso por parte del nivel inmediatamente superior (el de aplicación). Sus capacidades, incluyendo el ruteo, son las típicas de un nivel de red clásico. Por una parte, la entidad de datos crea y gestiona las unidades de datos del nivel de red a partir del payload del nivel de aplicación y realiza el ruteo en base a la topología de la red en la que el dispositivo se encuentra. Por otra, las funciones de control del nivel controlan la configuración de nuevos dispositivos y el establecimiento de nuevas redes; puede decidir si un dispositivo colindante pertenece a la red e identifica nuevos routers y vecinos. El control puede detectar así mismo la presencia de receptores, lo que posibilita la comunicación directa y la sincronización a nivel MAC. 3.2.4.3- Nivel de aplicación El nivel de aplicación es el más alto definido por la especificación y, por tanto, la interfaz efectiva entre el nodo ZigBee y sus usuarios. En él se ubican la mayor parte de los componentes definidos por la especificación: tanto ZDO's como sus procedimientos de control como los objetos de aplicación se encuentran aquí. 3.2.4.4- Componentes principales El ZDO se encarga de la definición del rol de un dispositivo como coordinador o nodo de dispositivo (end device), como ya se ha indicado; además, identifica los dispositivos que se encuentran a un salto en la red (one-hop) y los servicios que ofrecen. Tras ello, puede proceder a establecer enlaces seguros con dispositivos externos y responder peticiones de asociación. El subnivel de soporte a la aplicación (application support sublayer, APS) es el segundo componente básico del nivel. Como tal, ofrece una interfaz bien definida y servicios de control asociados. Trabaja como nexo de unión entre el nivel de red y el resto de componentes del nivel de aplicación. Mantiene actualizadas las tablas de asociaciones (binding tables) en forma de base de datos, que puede utilizarse para encontrar dispositivos adecuados en base a los servicios demandados y ofrecidos. Como puente entre dos niveles, encamina los mensajes a lo largo de la pila de protocolos. 3.2.4.5- Modelos de comunicación -118Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS Modelo de comunicación de alto nivel de ZigBee Una aplicación consiste en un conjunto de objetos que se comunican entre sí y cooperan para llevar a cabo un trabajo. El propósito de ZigBee es distribuir este trabajo entre muchos nodos distintos que se asocian formando una red (este trabajo será en general local a cada nodo en gran parte, como por ejemplo el control de cada electrodoméstico individual dentro de una vivienda). El conjunto de objetos que conforma la red se comunica utilizando los servicios de APS, supervisado a su vez por las interfaces ZDO. El nivel de aplicación sigue un diseño clásico de servicios estructurados en tipos petición-confirmación/indicación-respuesta. Dentro de un dispositivo puede haber hasta 240 objetos, con números entre 1 y 240. 0 se reserva para el interfaz de datos de ZDO y 255 para broadcast; el rango 241-254 se reserva para usos futuros. Existen dos servicios utilizables por los objetos de aplicación: El servicio de pares clave-valor (key-value pair, KPV) se utiliza para realizar la configuración, definiendo, solicitando o modificando valores de atributos de objetos por medio de una interfaz simple basada en primitivas get/set, algunas de ellas con petición de respuesta. Se utiliza XML comprimido (extensible a XML puro) para lograr una solución sencilla y flexible. El servicio de mensajes está diseñado para ofrecer una aproximación general al tratamiento de información, sin necesidad de adaptar protocolos de aplicación y buscando evitar la sobrecarga que presenta KPV. Permite el envío de un payload arbitrario a través de tramas APS. El direccionamiento es, a su vez, parte del nivel de aplicación. Un nodo está formado por un transceptor de radio compatible con 802.15.4 y una o más descripciones de dispositivo (colecciones de atributos que pueden consultarse o asignarse, o se pueden monitorizar por medio de eventos). El transceptor es la base del direccionamiento, mientras que los dispositivos dentro de un nodo se identifican por medio de un endpoint numerado entre 1 y 240. 3.2.4.6- Comunicación y descubrimiento de dispositivos Para que los dispositivos que forma una aplicación puedan comunicarse, deben utilizar un protocolo de aplicación compartido (formado por formatos, tipos de mensajes y demás). Estas convenciones se agrupan en perfiles. Las decisiones de asociación se deciden en base a la coincidencia entre identificadores de clusters de -119Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS entrada y salida, que son únicos en el contexto de un perfil dado y se asocian a un flujo de datos de entrada o salida en un dispositivo; las tablas de asociaciones mantienen los pares de identificadores fuente y destino. En base a la información disponible, el descubrimiento de dispositivos puede adecuarse utilizando varios métodos distintos. Si se conoce la dirección de red, se pide la dirección IEEE utilizando unicast. Si no es así, se pide por broadcast, y la dirección IEEE forma parte de la respuesta. Los dispositivos hoja (end devices) responden con la dirección propia solicitada, mientras que routers y coordinadores envían también las direcciones de todos los dispositivos asociados a ellos. Este protocolo extendido permite indagar acerca de dispositivos dentro de una red y sus servicios ofrecidos a nodos externos a la misma. Los endpoints pueden informar acerca de estos servicios cuando el protocolo de descubrimiento dirige mensajes a ellos. También pueden utilizarse servicios de emparejamiento oferta-demanda. Los identificadores de clúster favorecen la asociación entre entidades complementarias por medio de tablas de asociación, mantenidas en los coordinadores ZigBee ya que estas tablas siempre han de estar disponibles en una red (los coordinadores son, de entre todos los nodos, los que con mayor seguridad dispondrán de una alimentación continua). Los Backus a estas tablas, de ser necesarios para la aplicación, han de realizarse en niveles superiores. Por otra parte, el establecimiento de asociaciones necesita que se haya formado un enlace de comunicación; tras ello, se decide si adjuntar un nuevo nodo a la red en base a la aplicación y las políticas de seguridad. Nada más establecerse la asociación pueden iniciarse las comunicaciones. El direccionamiento directo utiliza la dirección de radio y el número de endpoint; por su parte, el indirecto necesita toda la información relevante (dirección, endpoint, clúster y atributo) y la envía al coordinador de la red, que mantiene esta información por él y traduce sus peticiones de comunicación. Este direccionamiento indirecto es especialmente útil para favorecer el uso de dispositivos muy sencillos y minimizar el almacenamiento interno necesario. Además de estos dos métodos, se puede hacer broadcast a todos los endpoints de un dispositivo, y direccionamiento de grupos para comunicarse con grupos de endpoints de uno o varios dispositivos distintos. -120Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.2.4.7- Servicios de seguridad Uno de los aspectos más característicos de ZigBee son los servicios que ofrece para el soporte de comunicaciones seguras. Se protege el establecimiento y transporte de claves, el cifrado de trama y el control de dispositivos. Se apoya en el marco definido por IEEE 802.15.4; la seguridad depende de la correcta gestión de las claves simétricas y la adecuada implementación de los métodos y políticas de seguridad. 3.2.4.7.1- Modelo básico de seguridad La piedra angular de la confidencialidad es la adecuada protección de todo el material de cifrado. Debe asumirse que se confía en la instalación inicial de las claves, así como en el procesado de la información de seguridad. Para que la implementación funcione en su conjunto, se asume su corrección (los comportamientos definidos se respetan plenamente). Las claves son la base de la arquitectura de seguridad y, como tal, su protección es fundamental para la integridad del sistema. Las claves nunca deben transportarse utilizando un canal inseguro, si bien existe una excepción momentánea que se da en la fase inicial de la unión de un dispositivo desconfigurado a una red. La red ZigBee debe tener particular cuidado, pues una red ad hoc puede ser accesible físicamente a cualquier dispositivo externo y el entorno de trabajo no se puede conocer de antemano. Las aplicaciones que se ejecutan en concurrencia utilizando el mismo transceptor deben, así mismo, confiar entre sí, ya que por motivos de coste no se asume la existencia de un cortafuegos entre las distintas entidades del nivel de aplicación. Los distintos niveles definidos dentro de la pila de protocolos no están separados criptográficamente, por lo se necesitan políticas de acceso, que se asumen correctas en su diseño. Este modelo de confianza abierta (open trust) posibilita la compartición de claves disminuyendo el coste de forma significativa. No obstante, el nivel que genera una trama es siempre el responsable de su seguridad. Todos los datos de las tramas del nivel de red han de estar cifradas, ya que podría haber dispositivos maliciosos, de forma que el tráfico no autorizado se previene de raíz. De nuevo, la excepción es la transmisión de la clave de red a un dispositivo nuevo, lo que dota a toda la red de un nivel de seguridad único. También es posible utilizar criptografía en enlaces punto a punto. 3.2.4.7.2- Arquitectura de seguridad ZigBee utiliza claves de 128 bits en sus mecanismos de seguridad. Una clave puede asociarse a una red (utilizable por los niveles de ZigBee y el subnivel MAC) o a un enlace (en tal caso, adquirida por preinstalación, acuerdo o transporte). Las claves de enlace se establecen en base a una clave maestra que controla la correspondencia -121Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS entre claves de enlace. Como mínimo la clave maestra inicial debe obtenerse por medios seguros (transporte o preinstalación), ya que la seguridad de toda la red depende de ella en última instancia. Los distintos servicios usarán variaciones unidireccionales (one-way) de la clave de enlace para evitar riesgos de seguridad. Queda claro que la distribución de claves es una de las funciones de seguridad más importantes. Una red segura encarga a un dispositivo especial la distribución de claves: el denominado centro de confianza (trust center). En un caso ideal los dispositivos llevarán precargados de fábrica la dirección del centro de confianza y la clave maestra inicial. Si se permiten vulnerabilidades momentáneas, se puede realizar el transporte como se ha descrito. Las aplicaciones que no requieran un nivel especialmente alto de seguridad utilizarán una clave enviada por el centro de confianza a través del canal inseguro transitorio. Por tanto, el centro de confianza controla la clave de red y la seguridad punto a punto. Un dispositivo sólo aceptará conexiones que se originen con una clave enviada por el centro de confianza, salvo en el caso de la clave maestra inicial. La arquitectura de seguridad está distribuida entre los distintos niveles de la siguiente manera: El subnivel MAC puede lleva a cabo comunicaciones fiables de un solo salto. En general, utiliza el nivel de seguridad indicado por los niveles superiores. El nivel de red gestiona el ruteo, procesando los mensajes recibidos y pudiendo hacer broadcast de peticiones. Las tramas salientes usarán la clave de enlace correspondiente al ruteo realizado, si está disponible; en otro caso, se usará la clave de red. El nivel de aplicación ofrece servicios de establecimiento de claves al ZDO y las aplicaciones, y es responsable de la difusión de los cambios que se produzcan en sus dispositivos a la red. Estos cambios podrían estar provocados por los propios dispositivos (un cambio de estado sencillo) o en el centro de confianza, que puede ordenar la eliminación de un dispositivo de la red, por ejemplo. También encamina peticiones de los dispositivos al centro de seguridad y propaga a todos los dispositivos las renovaciones de la clave de red realizadas por el centro. El ZDO mantiene las políticas de seguridad del dispositivo. La estructura de niveles de seguridad se basa en CCM*, una variante de CCM que añade servicios de sólo-cifrado y sólo-integridad. -122Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.3- ANEXO II: USBDM 3.3.1- Introduction USBDM is a debugger hardware interface for a range of Freescale microcontrollers. It is designed to work with Freescale's Codewarrior software under Windows and Linux. More recently basic support for Coldfire with Codesourcery Tool chain has been added (WIN only). A set of stand-alone programmers are also provided. The attached files provide a port of a combined TBDML/OSBDM/TBLCF code to various processors. The primary motivation for doing this was to produce a single BDM that could be used with the following processors • • • • • • RS08 HCS08, HC12, Coldfire V1-4 microcontrollers MC56F800xx Digital Signal Controllers (very limited range). Kinetis ARM-cortex Other features have also been added compared to the original TBDML/OSBDM designs. The project consist of: • • • • A set of software drivers for MS windows and Linux that work with various version of the Freescale Codewarrior IDE, including the latest Eclipse version. Standard-alone programmers for some of the targets supported A description of, and design files for, several versions of suitable BDM hardware The firmware required for the above BDM hardware. 3.3.2- JS16 based versions (Current designs) The following two designs use the MC9S08JS16CWJ (20 pin SOIC). This chip is USB2 Full speed and supports initial programming over USB without needing a BDM. 3.3.2.1Minimal design - Supports HCS12, HCS08, Coldfire V1 • This is a very minimal design using a MC9S08JS16CWJ (20 pin SOIC). • It is easier to construct than the JMxx versions • It may be programmed over the USB connection and doesn't require a BDM for initial programming. • It replaces the Minimal JB16 designs and is recommended (by me) for newbies! -123Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS • • A PCB design is supplied but is should be possible to roll-your-own on a prototyping board. An alternative, larger design is provided that supports Serial over USB (CDC interface) that may be useful. 3.3.2.2Minimal design - Supports Coldfire V2,3,4, Kinetis and DSC (M56F80xx only) • This is a very minimal design using a MC9S08JS16CWJ (20 pin SOIC). • It is easier to construct than the JMxx versions • It may be programmed over the USB connection and doesn't require a BDM for initial programming. • It is approximately equivalent to the earlier JB16 based TBLCF design in functionality. • A PCB design is supplied but is should be possible to roll-your-own on a prototyping board. • Documentation is available here. • An alternative, larger design is provided that supports Serial over USB (CDC interface) that may be useful. 3.3.3- USBDM for JS16 (Supports HCS12, HCS08, Coldfire V1) 3.3.3.1Introduction The attached files provide a minimal port of a combined TBDML/OSBDM code to a MC9S08JS16 processor. The primary motivation for this was to produce a single BDM that could be used with a range of Freescale microcontrollers. Other features have also been added. This implementation has minimal features to simplify construction and does not require a BDM for initial programming. 3.3.3.2Features This version of the code & extended hardware provides the following features: • • • • • • • • • A single BDM interface for programming and debugging of the following targets: HCS12 (including those without SYNC feature (e.g. 9S12DP256B) HCS08 Coldfire V1 microcontrollers No re-flashing of the BDM is required when changing between targets Compatible IDEs Codewarrior V10.1 (Eclipse version) Tested on Windows-XP-32bit, Windows-7-32bit, Windows-7-64bit Tested on Ubuntu-32-bit -124- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS • • • • • • • • • • • • • • • • • • • • Codewarrior Legacy versions Codewarrior Development Studio for HCS12(X) V5.1 & CW for Microcontrollers V6.3 (RS08 is not supported) Tested on Windows-XP-32bit, Windows-Vista-32bit Initial support for CodeSourcery Lite for Coldfire Tested on Windows-XP-32bit Trimming of target internal clock (Eclipse version or standalone programming tools only). Higher USB communication speed cf. JB16 version BDMs (USB full speed cf. USB low speed) Vista compatible Linux compatible Initial Firmware programming may be done without a BDM using the JS16 USB bootloader ROM. The Firmware in the BDM may be automatically updated using an in-circuitprogramming (ICP) feature. Hardware is physically small HCS12, HCS08, Coldfire V1 specific features: Target reset detection & control (required for HC12 processors). This allows HC12 processors to be reset into BDM mode as required for debugging. A higher BDM interface speed than the existing JB16 OSBDMs. Up to 56MHz. (BDM clock 28MHz). Automatic re-connection. The software has an option to continuously update the interface speed to prevent loss of communication if the target BDM interface speed changes (as may occur with clock changes on some targets). Control of BDM clock selection in HC12/HCS08/Coldfire microcontrollers. Most of these targets provide an alternative BDM clock selection. This can have advantages when connecting to high speed targets as the alternative clock may operate at a lower speed. Trial-and-error determination of communication speed for earlier HC12 targets. User prompting for target supply cycling with BKGD low as may be needed for HCS08 targets -125Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.3.3.3- Pictures 3.3.3.4Hardware Design Please refer to the following document for hardware design details: • • • USBDM Design with Serial interface - Schematics, Assembly Overlays & Bill of Materials USBDM Design - Schematics, Assembly Overlays & Bill of Materials Differences to JB16 TBDML/OSBDM The PCB artwork provided is for a double-sided plated-through-hole board using surface mount components. This seems a reasonable decision since the processor is only available in a SMT package in any case. It is quite possible to prototype the board using a non-PTH board as the required vias have not been located beneath components and may be replaced with feed through wires. The above images are for a milled board that was hand assembled. 3.3.3.5Credits The original base code is taken from the TBDML, OSBDM and TBLCF projects and I very much appreciate the effort involved in producing the original code. I hope this extension will be useful. The hardware interface is based on TBDML, Freescale USBSPYDER08 and my own invention. -126Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.3.3.6- • • • • • • • • • • • • • • • • • • • References Altium Designer (PCB Design) - http://www.altium.com/products/altiumdesigner/ Axiom MC56F8006 Demo board http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC5 6F8006DEMO Codesourcery - http://www.codesourcery.com/ Coldfire Flasher http://www.freescale.com/files/soft_dev_tools/software/programmers/CFF LASHER.zip Doxygen Documentation tool http://www.stack.nl/~dimitri/doxygen/index.html I2C voltage level conversion Phillips application note http://www.standardics.nxp.com/support/documents/i2c/pdf/an97055.pdf LIBUSB-WIN32 - http://libusb-win32.sourceforge.net/ MAX662 Data sheet - http://www.maxim-ic.com OSBDM - http://forums.freescale.com/freescale/board?board.id=OSBDM08 OSBDM hardware http://forums.freescale.com/freescale/board/message?board.id=OSBDM08 &thread.id=212 Tasking GDI Spec http://www.tasking.com/resources/technologies/debuggers/gdikdi.shtml Tcl/Tk - http://www.tcl.tk/software/tcltk/8.5.html TBDML - http://forums.freescale.com/freescale/board?board.id=TBDML TBDML hardware http://forums.freescale.com/freescale/board/message?board.id=TBDML&th read.id=2 USBSPYDER08 - USB mini board for Freescale's Low-End 8-bit Microcontrollers - http://www.freescale.com/ Ultimate Packer for eXecutables (UPX) has been used to pack DLLs and EXEs - http://upx.sourceforge.net/ WTBDMS08/12 (Witztronics) Hardware - http://www.witztronics.com/ WxWidgets Cross Platform Library has been used for the GUI http://www.wxwidgets.org/ Xerces XML parser - http://xerces.apache.org/xerces-c -127Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.3.3.7- Queries Any queries please post on the Freescale OSBDM Discussion Board. 3.3.3.8License Portions of this software is based on TBLCF software Portions of this software is based on OSBDM software Portions of this software is based on TBDML software USBDM Copyright (C) 2007-11 Peter O'Donoghue Opensource BDM (OSBDM) Copyright (C) ? Turbo BDM Light (TBDML) Copyright (C) 2005 Daniel Malik Turbo BDM Light ColdFire (TBLCF) Copyright (C) 2005 Daniel Malik This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -128Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.3.4- USB Driver Installation To support the 64-bit version of Windows it has been necessary to update to using libusb1.0 drivers. For consistency this is also done on Linux and the other windows platforms. As part of this process the Vendor-ID/Product-ID (VID/PID) for the hardware (BDM) has been changed. This will allow the co-existence of Freescale's OSBDM-JM60 hardware while using a new driver for USBDM. Formerly both these BDMs used the same VID/PID and changes to the driver would not be possible without rendering the OSBDM-JM60 inoperable. Note: On Windows, libusb1.0 is a thin wrapper around the Microsoft winUSB lowlevel USB drivers. Because of this you may see references to winusb in the following. 3.3.4.1- Note for upgrading from version 3.x to 4.x USBDM firmware This change is complicated by the existence of a Bootloader in the BDM firmware. If not replaced this loader will continue to use the original VID/PID. Because of this, it is desirable to completely replace the BDM firmware. For JS16 based BDMs this is a simple process since the Freescale JS12 Bootloader software may be used to replace all the firmware. See Construction and Installation. For JMxx based BDMs it is necessary to use a HCS08 programmer to re-program the entire device so that the Bootloader is updated when the rest of firmware is changed. If a programmer is not available then it is still possible to update the BDM firmware using the Bootloader but the Bootloader will remain unchanged. To do this it will be necessary to install the drivers twice - once for the old VID/PID used by the Bootloader and again for the new VID/PID used by the main firmware. Doing so will render any OSBDM drivers inoperable on that USB port. 3.3.4.2Installation of USBDM USB drivers for Linux There isn't any. The installation script provided will modify the /etc/udev/rules.d file to allow access to the USBDM device. The required driver for USBDM BDM interface (LibusbV1) is included in the standard Linux (at least Ubuntu current version). The CDC (serial port) is a standard device and should also be installed without any extra steps. If more installation is required on your version you will have to investigate this yourself. I'm not a Linux expert and I don't have access to other versions for testing. If you find other steps are necessary then please advise and I will try to update the installation accordingly. 3.3.4.3- Installation of USBDM USB drivers for Windows This driver allows the USBDM software to communicate with the USBDM cable. You would usually only need to install these driver files once. If you subsequently plug the -129Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS USBDM cable into another USB port of the same computer the driver will be installed for that port automatically. The required drivers are copied to the installation location as part of the installation process. The driver folder may be opened from the window's Start Menu. Setting up the drivers differs somewhat between the different versions of windows. In versions before Windows 7 you will be automatically prompted to install the drivers using a Found New Hardware Wizard when you first plug in the USBDM. For Windows 7 the installation will quietly fail and it is necessary to manually trigger the wizard. Prior to Windows 7 the following sequence should occur: 1. Plug in the USBDM. 2. The Found New Hardware Wizard should appear. Select the Install from a list or a specific location option. Select Next to continue. 3. Select the options as shown and navigate to the driver directory. "C:\Program Files\pgo\USBDM 4.7.0\USBDM_Drivers". Select Next to continue. -130Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 4. The next step may take a while but you should eventually be presented with last dialogue shown. Select Finish to close the dialogue. The above sequence may be necessary a second time if you are installing a USBDM supporting a serial port connection. The serial port appears as a second device. With Windows 7 the following sequence should occur: 1. Plug in the USBDM. 2. A small pop-up alert indicates windows is searching for the drivers. -131Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3. Eventually this will be unsuccessful. 4. You can click on the pop-up to view the result. The CDC Interface is not present on all USBDMs. 5. To properly install the drivers it is necessary to open the Computer Properties… 6. ...and then the Device manager. -132Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 7. Locate the USBDM device(s), right-click and select Update Driver Software... from the menu. 8. Select the second option as we need to specify where to find the drivers. -133Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 9. Browse to the driver directory "C:\Program 4.7.0\USBDM_Drivers". Make sure Include subfolders is selected. Files\pgo\USBDM 10. The driver is signed but the driver inf files aren't. This results in a Windows Security dialogue. It is necessary to confirm the installation. 11. Eventually the installation should complete successfully. 12. You can confirm the USBDM device in the device manager. -134Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 13. Repeat this process with the USBDM CDC Device (Serial port) if present. 14. You can confirm the USBDM serial port in the device manager. The serial port number assigned is unique to the BDM providing it has a unique serial number. This allows multiple USBDMs to be present at the one time. After installation of the serial port you may examine or change the communication properties. Right-click on the USBDM Serial Port and select Properties. -135Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 15. The usual communication properties appear. The USBDM serial port is limited in what baud rate and options are supported. (I will eventually tell you what ones here when I get a chance to check :) Advanced options are available. Click on Advanced... 16. One option worth noting is that you may also re-assign the COM port number used. -136Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 3.3.4.4- Alternative Driver Installation Method for Windows Alternatively, zadig may be used to install the libusbV1 drivers for the BDM interface (not the Serial port). http://www.libusb.org/wiki/libwdi/zadig 3.3.4.4.1Preliminary • Download the current version of the required driver installation program from Windows Backend - libusb or using the direct link (at this time) zadig.exe. • Plug in the programmed BDM. • Cancel any dialogues prompting to install the device drivers. • Under Windows 7 the automatic driver installation will proceed and fail. This following process will install the correct libusb 1.0 driver. 1. Run the zadig_XXX.exe program. 2. Select the BDM from the list of devices. Under Windows Vista and Windows 7 the device description will be USBDM BDM Interface. Under Windows XP it may simply appear as USB Device. • Check carefully that the Vendor ID and Product ID are 16D0 and 0567 respectively. There may also be a third number if the USBDM has a serial interface. This should be zero(0) if present. -137Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS • • If the description is anonymous click on the Edit Desc. checkbox and change it to something more meaningful. Check that the WinUSB driver is the Target. 3. Click the Install Driver button. This will install the driver files. You may see a number of dialogues. 4. If you now plug in an updated BDM to another USB port the Found New Hardware wizard should automatically appear. If prompted accept the recommended options to install the driver. Under Windows-7 there may be a prompt to accept an unsigned driver. -138Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 5. The Found New Hardware wizard should now complete. Just click Finish to close the dialogue. 3.3.4.5Installation of USBDM USB drivers for old VID/PID This process should only be done if you need to use the USBDM Bootloader to update an old JMxx based BDM when you do not have access to a HCS08 programmer. 3.3.4.6Preliminary • Plug in the old BDM before proceeding. • Do not move the BDM to another port before updating the firmware as the driver installation will apply only to that port. • If the BDM has already been updated once, then it may be necessary to use the setboot.exe utility to place the BDM in ICP mode before installing the driver. Procedure: 1. Run the zadig_XXX.exe program. 2. Choose Options->List All Devices from the menu so that all devices are available for installation. 3. Select the BDM from the list of devices. The description of the device will depend upon which device driver has been previously used. In either case check carefully that the Vendor ID and Product ID are 15A2 and 0021 respectively. Click on the Edit Desc. checkbox and change the description to something more meaningful. This will make the device easier to identify in the future. -139Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS 4. Make sure that WinUSB is selected as the Target Driver Click the Install Driver button. This will install the driver for the selected device. You may see a number of dialogues as shown above. The device should now be using the new driver and the USBDM Bootloader program may be used to update the firmware. If desired, a similar process may be used to restore the original libusb driver if it is needed for other devices. Just select the correct Target Driver. 3.3.4.7- Linux Drivers The shell scripts supplied with the linux version should install the required information for the libusb drivers to work on a linux machine. You will also need to make sure you have installed some libraries: (Some information posted by joncas on Freescale Forums - thanks) -140Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.-ANEXOS -141Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 UNIVERSIDAD DE LA RIOJA Planos Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables Sebastián Pastor Volosín 22/06/2012 Peticionario: Digi International Spain S.A. Titulación: Ingeniería Técnica Industrial en Electrónica Industrial Director: Carlos A. Rodríguez González Departamento: Ingeniería Eléctrica Curso: 2011/2012 Lugar y fecha: Logroño, 22 de Junio de 2012 4.-PLANOS 4- Planos 4.1- Índice de planos 4.2- Plano 1 - Placa principal - Conector del bus de expansión ..................... 144 4.3- Plano 2 - Placa principal - Fuentes y reguladores................................... 145 4.4- Plano 3 -Placa principal - Módulos XBee ................................................ 146 4.5- Plano 4 - Placa principal - Depurador y puerto serie.............................. 147 4.6- Plano 5 - Placa principal - Expansor e indicadores ................................. 148 4.7- Plano 6 - Placa principal – PCB ............................................................... 149 4.8- Plano 7 - Placa HMI - Conector del bus de expansión ............................ 150 4.9- Plano 8 - Placa HMI - Expansor, pulsadores e indicadores..................... 151 4.10- Plano 9 - Placa HMI - Pantalla de cristal líquido ..................................... 152 4.11- Plano 10 - Placa HMI – PCB..................................................................... 153 4.12- Plano 11 - Placa de Expansión de E/S - Conectores y Expansor de GPIOs 154 4.13- Plano 12 - Placa de Expansión de E/S - Configuraciones posibles.......... 155 4.14- Plano 13 - Placa de Expansión de E/S – Entradas/Salidas Digitales ....... 156 4.15- Plano 14 - Placa de Expansión de E/S – PCB ........................................... 157 4.16- Plano 15 - Placa de Sensores – Conectores ............................................ 158 4.17- Plano 16 - Placa de Sensores - ADCs e Interfaces de sensores resistivos 159 4.18- Plano 17 - Placa de Sensores - Interfaces de Sensores en Lazo de Corriente 160 4.19- Plano 18 - Placa de Sensores - Interfaz de sensores de tensión ............ 161 4.20- Plano 19 - Placa de Sensores - Sensores en placa .................................. 162 4.21- Plano 20 - Placa de Sensores – PCB ........................................................ 163 -143Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 4.2- Plano 1 - Placa principal - Conector del bus de expansión 4.3- Plano 2 - Placa principal - Fuentes y reguladores 4.4- Plano 3 -Placa principal - Módulos XBee 4.5- Plano 4 - Placa principal - Depurador y puerto serie 4.6- Plano 5 - Placa principal - Expansor e indicadores 4.7- Plano 6 - Placa principal – PCB 4.8- Plano 7 - Placa HMI - Conector del bus de expansión 4.9- Plano 8 - Placa HMI - Expansor, pulsadores e indicadores 4.10- Plano 9 - Placa HMI - Pantalla de cristal líquido 4.11- Plano 10 - Placa HMI – PCB 4.12- Plano 11 - Placa de Expansión de E/S - Conectores y Expansor de GPIOs 4.13- Plano 12 - Placa de Expansión de E/S - Configuraciones posibles 4.14- Plano 13 - Placa de Expansión de E/S – Entradas/Salidas Digitales 4.15- Plano 14 - Placa de Expansión de E/S – PCB 4.16- Plano 15 - Placa de Sensores – Conectores 4.17- Plano 16 - Placa de Sensores - ADCs e Interfaces de sensores resistivos 4.18- Plano 17 - Placa de Sensores - Interfaces de Sensores en Lazo de Corriente 4.19- Plano 18 - Placa de Sensores - Interfaz de sensores de tensión 4.20- Plano 19 - Placa de Sensores - Sensores en placa 4.21- Plano 20 - Placa de Sensores – PCB UNIVERSIDAD DE LA RIOJA Pliego de condiciones Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables Sebastián Pastor Volosín 22/06/2012 Peticionario: Digi International Spain S.A. Titulación: Ingeniería Técnica Industrial en Electrónica Industrial Director: Carlos A. Rodríguez González Departamento: Ingeniería Eléctrica Curso: 2011/2012 Lugar y fecha: Logroño, 22 de Junio de 2012 5.-PLIEGO DE CONDICIONES 5- Pliego de condiciones 5.1- Índice del pliego de condiciones 5.2- Introducción ........................................................................................... 166 5.3- Especificaciones eléctricas ..................................................................... 166 5.4- Condiciones generales ............................................................................ 167 5.5- Normas, leyes y reglamentos ................................................................. 167 5.6- Condiciones facultativas ......................................................................... 169 5.6.1.1- Dirección.................................................................................................... 169 5.6.1.2- Libro de órdenes........................................................................................ 169 5.7- Condiciones de materiales y equipos ..................................................... 170 5.7.1- Materiales ....................................................................................... 170 5.7.2- Circuitos impresos ........................................................................... 170 5.7.3- Componentes .................................................................................. 170 5.8- Condiciones de ejecución y montaje ...................................................... 170 5.8.1- Condiciones de fabricación del circuito impreso ............................ 170 5.8.2- Funcionamiento normal del equipo ................................................ 173 5.8.3- Mantenimiento de la Placa ............................................................. 173 5.9- Condiciones económicas ........................................................................ 174 5.9.1- Errores en el proyecto ..................................................................... 174 5.9.2- Jornadas y salarios........................................................................... 174 5.9.3- Liquidación ...................................................................................... 174 5.9.4- Disposición final .............................................................................. 174 -165Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES 5.2- Introducción En el presente documento se detallan las condiciones técnicas de montaje, puesta a punto y funcionamiento del hardware y firmware detallados en los documentos Memoria y Planos. En caso de no cumplirse las condiciones tal como se detallan en este documento, el proyectista no se responsabilizará de posibles fallos, averías y comportamientos no descriptos; repercutiendo dicha responsabilidad sobre terceras personas. En el caso de eventuales modificaciones del diseño, factibles dada la naturaleza abierta del proyecto, las mismas deberán ser aprobadas por el ingeniero encargado de su ejecución o bien por el proyectista. En dicho caso, el presente pliego de condiciones deberá ser modificado para cubrir los aspectos que afecten dichas modificaciones. 5.3- Especificaciones eléctricas En este apartado se detallan las tensiones y corrientes nominales de los módulos diseñados. Alimentación de 5 V disponible: • • • • • Tensión de entrada en conectores Jack y/o Terminal Block: 6-30 V. Tensión de baterías máxima: 6 V. Tensión de baterías mínima: 3 V. Tensión USB máxima: 5 V. Intensidad máxima: 2 A. Alimentación de 5 V no disponible (regulador lineal): • • • • Tensión de baterías máxima: 6 V. Tensión de baterías mínima: 3 V. Tensión USB máxima: 5 V. Corriente máxima: 900 mA. Alimentación de 5 V no disponible (regulador conmutado): • • • • • Tensión de entrada en conectores Jack y/o Terminal Block: 6-30 V. Tensión de baterías máxima: 6 V. Tensión de baterías mínima: 3 V. Tensión USB máxima: 5 V. Intensidad máxima: 2 A. Condiciones generales: • • Tensión máxima de alimentación del módulo XBee Programable (Vcc): 3,3 V. Tensión mínima de funcionamiento del módulo XBee Programable: 2,7 V. -166- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES • Tensión máxima en cualquier patilla del módulo XBee Programable: 3,45 V (Vcc + 0.05%). 5.4- Condiciones generales La ejecución del presente se enmarca bajo la designación de Proyecto Final de Carrera, y tiene como propósito acabar con éxito los estudios de Ingeniería Técnica Industrial en la especialidad de Electrónica Industrial. El autor ha cursado los estudios en la Universidad de La Rioja, cumpliendo en su elaboración con las directrices especificadas por dicho centro, en la normativa del proyecto final de carrera, aprobada por la Junta de Gobierno el 15/04/99. Este proyecto se ajusta en su desarrollo a los reglamentos y disposiciones electrónicas vigentes. Atendiendo a lo cual, aprobado por el Ministerio de Industria tendrá carácter de obligado cumplimiento en el presente proyecto. En caso de efectuarse alguna modificación, el correspondiente proyecto modificado se considera como parte integrante del proyecto definitivo y como tal, sujeto a las condiciones y especificaciones citadas y aprobadas por el Ministerio. La empresa adjudicataria suscribirá contrato ante notario donde se hará constar, los términos legales obligatorios, plazos de entrega, la conformidad, y la sanción cuyo incumplimiento pueda acarrear. 5.5- Normas, leyes y reglamentos La realización del proyecto se regirá por la Ordenanza General de Seguridad e Higiene en el Trabajo del 9 de marzo de 1971 y posteriores actualizaciones. Asimismo, se regirá por el Reglamento Electrotécnico de Baja Tensión, en el que se tendrán en cuenta las siguientes normas: • • MI BT029: referente a instalaciones de pequeñas tensiones, menores de 50 voltios. MI BT031: referente a las condiciones generales de instalación, de utilización así como de los requisitos a cumplir a la hora del diseño. El proyecto cumple también las siguientes normativas DIN y UNE: • • • • UNE 20620: espesores de los materiales con recubrimiento metálico y sus tolerancias están especificadas en la norma. UNE 20552: especifica las tolerancias sobre el espesor total en la zona de contactos. UNE 20-621 84/3: respecto a la anchura de las pistas, según la intensidad que por ellas circule. UNE 20-620/84: diámetros de taladros vienen especificados en la norma -167- Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES • • • • • • • • • • • • • • • • • UNE 20-612/2: recoge varios tipos de ensayos que se pueden realizar a los materiales, como pueden ser los ensayos de espesor, adherencia, porosidad, etc. UNE 20-524/1, UNE 20-524/2 y UNE 20-524/3: En lo referente a distancias entre taladros para la colocación de componentes. UNE 20-514-82: Reglas de seguridad para los aparatos electrónicos de norma. UNE 20902: referente a la técnica de circuitos impresos. UNE-EN 60249: en la cual se citan los materiales base para circuitos impresos. UNE 20598 78 (1): referente a las fuentes de alimentación estabilizada de CC. UNE 20598 78 (2): referente a las fuentes de alimentación estabilizada de CC Características nominales y de funcionamiento. UNE 20589 79 (3): referente a fuentes de alimentación estabilizada de CC Ensayos generales excepto de radio de inferencia. Ensayos de radiointerferencia. UNE 157001:2002 sobre criterios generales para la elaboración de proyectos, que establece las consideraciones generales que permitan precisar las características que deben satisfacer los proyectos de productos, obras y edificios, instalaciones, servicios o software, para que sean conformes al fin a que están destinados. DIN 40801: referente a circuitos impresos, fundamentos, orificios y espesores. DIN 40803: referente a circuitos impresos, placas y documentación. DIN 40804: referente a circuitos impresos, conceptos. DIN 41494: referente a las formas de construcción para dispositivos electrónicos. DIRECTIVA ROHS: esta directiva regula la utilización de algunas sustancias peligrosas en equipamientos eléctricos y electrónicos. Esta lista de sustancias se conoce como RoHS (Restriction of Hazardous Substances). DIRECTIVA 2002/95/CE DEL PARLAMENTO EUROPEO Y DEL CONSEJO de 27 de enero de 2003 sobre restricciones a la utilización de determinadas sustancias peligrosas en aparatos eléctricos y electrónicos. REAL DECRETO 2008/2005 de 25 de febrero, sobre aparatos eléctricos y electrónicos y la gestión de sus residuos. Reglamento REACH EC/1907/2006 que regula el registro, la evaluación, la autorización y la restricción de sustancias y elementos químicos de los productos fabricados para garantizar la salud y la seguridad. -168Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES • • • • • FCC 15.105 RFI (Interfaces de Radio Frecuencia) los componentes de radiofrecuencia incluidos deben cumplir los límites para la Clase B de dispositivos digitales, según lo acordado en la parte 15 subparte B de las reglas FCC. Estos límites deben estar diseñados para proporcionar protección frente interferencias dañinas en ambientes residenciales. FCC 15.19: los dispositivos de radiofrecuencia deben cumplir con la parte 15 de las reglas FCC, asegurando la ausencia de interferencias dañinas producidas por el equipo, pero aceptando cualquier interferencia recibida. Estándares internacionales EMC: en emisiones (FCC parte 15 subparte B), ICES-003, inmunidad (EN 55022 y EN 55024) y seguridad (UL 60950-1, CSA C22.2, No. 60950-1 y EN 60950-1). Estándares EIA/TIA-232, EIA/TIA-485 e ISO 11898: lo referente a la capa física de las comunicaciones serie del interfaz, en cuestión de niveles y timing. ANSI C estándar publicado por el Instituto Nacional de Estándares para la programación en lenguaje C para garantizar la portabilidad del código desarrollado. En el supuesto de que el presente proyecto llegue a comercializarse, las tarjetas componentes del mismo deberán ser sometidas a los procesos de de análisis pertinentes por un laboratorio autorizado. En colaboración con dicho organismo se deberá certificara si el producto cumple la normativa europea referente a aparatos electrónicos, otorgando en caso afirmativo el sello de Certificación Europea (CE) al producto. 5.6- Condiciones facultativas 5.6.1.1Dirección La dirección del montaje y fabricación será llevada a cabo por el ingeniero de producción, proyectista o persona indicada por la empresa adjudicataria para tal efecto. Realizado el montaje, la utilización del producto resultante podrá ser realizada por cualquier usuario con conocimientos suficientes demostrables sobre el proyecto, tecnología implicada y funcionamiento. En caso de avería por utilización fuera de los márgenes establecidos o abuso de especificaciones, el proyectista queda exento de responsabilidades. 5.6.1.2Libro de órdenes El montaje y puesta a punto de los componentes del proyecto se deberá realizar atendiendo a los documentos presentados atendiendo al orden de prioridad expuesto en la memoria en caso de hallarse contradicciones. -169Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES Las modificaciones posibles deberán realizarse con previo consentimiento y autorización de la persona encargada de supervisarlas o del proyectista. 5.7- Condiciones de materiales y equipos 5.7.1- Materiales Los materiales a emplear deberán cumplir las normas descriptas en el presente documento y deberán pasar satisfactoriamente las pruebas y ensayos para garantizar su correcto funcionamiento. En caso de efectuarse dichas pruebas el proyectista quedará excento de responsabilidad sobre el posible deterioro de los componentes durante su ejecución. En caso de reemplazo de algún componente por mal funcionamiento u obsolescencia, los nuevos deberán cumplir los mismos máximos y mínimos eléctricos citados y mantener compatibilidad hacia atrás. 5.7.2- Circuitos impresos Las placas empleadas deberán ser de fibra de vidrio epóxida FR4 de 1,4 mm de espesor mínimo. Se deberá tener especial cuidado de cumplir los ciclos de temperatura en el caso de los componentes de montaje superficial. 5.7.3- Componentes Los componentes utilizados deberán ser los modelos especificados en la memoria y planos, pudiendo ser reemplazados por componentes equivalentes siempre que cumplan las tolerancias y normativas especificadas. 5.8- Condiciones de ejecución y montaje 5.8.1- Condiciones de fabricación del circuito impreso El montaje del circuito impreso se hará de acuerdo a las especificaciones de los fabricantes en lo respectivo a la soldadura de los componentes, tanto de montaje superficial como de inserción en placa (through-hole). Para la verificación del circuito impreso se aplicará la norma UNE-621-80, en la que se especifican los ensayos a los que debe ser sometido el circuito impreso, así como los métodos para la ejecución de dichos ensayos. Las tolerancias que debe aplicar el fabricante en lo que respecta al PCB son las siguientes: -170Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES Estándar ±25% (35-70 ±20% (17 µm ) Ancho/Espacio conductor en capas externas (grosor cobre base) Ancho/espacio conductor en capas internas (grosor cobre base) Diámetro taladro metalizado Diámetro metalizado taladro µm) ±25% (70 µm ±20% (17-35 µm ) NO ) Especial ±15% (35-70 ±10% (17 µm) ±15% (35-70 ±10% (17 µm) µm) µm) +0,10 mm / -0,05 mm) (o equivalente) +0,10 mm / -0,0 mm (o equivalente) +0,10 mm / -0,0 mm (o equivalente) ±0,035 (o equivalente) Paso sin metalizar para ranurado Mín. 1,0 mm. Mín. 0,75 mm. Error posición ranurado ±0,10 mm ±0,075 mm Nervio ranurado ±0,15 mm ±0,075 mm Cotas de contorno ± 0,15 mm. ± 0,10 mm. Grosor final ±10 % ±5 % Grosor entre capas ±10 % ±5 % mm Grosor de metalización en taladro pasante (entre top y bottom) Promedio: 25 Mínimo: 20 µm µm Promedio: 35 Mínimo: 30 µm µm Grosor de metalización en taladro ciego/enterrado Promedio: 15 Mínimo: 13 µm µm Promedio: 25 Mínimo: 20 µm µm Grosor de metalización en microvía enterrada Mitja: 15 Mínim:13 µm µm Mitja: 25 Mínim: 20 µm µm Pared mínima entre taladros metalizados de la misma señal 0.30 mm 0.25 mm Pared mínima entre taladros metalizados de diferente señal 0,40 mm. 0,35 mm. Pared mínima entre taladros NO metalizados 0,25 mm. 0,20 mm. -171Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES Corona mínima taladro NO metalizado 0,25 mm 0,20 mm Distancia mínima entre conductor y taladro NO metalizado 0,20 mm 0,15 mm Distancia mínima entre conductor y contorno 0,20 mm 0,15 mm Descentrado contorno y taladro entre Máx. 0,15 mm. Máx. 0,10 mm. Descentrado entre pad y taladro (c.externas ) Máx. 0,10 mm. Máx. 0,075 mm. Descentrado entre pad y taladro (c. internas) Máx. 0,15 mm. Máx. 0,12 mm. Descentrado entre capas Máx. 0,10 mm. Máx. 0,075 mm. Descentrado entre cobre y máscara fotosensible Máx. 0,15 mm. Máx. 0,075 mm. Ancho mínimo tinta fotosensible trazo Margen mínimo fotosensible tinta 0.07 mm Margen serigráfica tinta 0,20 mm 0,15 mm trazo 0,125 mm 0,10 mm Margen mínimo tinta de grafito 0,20 mm 0,125 mm Espacio mínimo entre tinta de grafito 0,50 mm 0,40 mm Espacio mínimo entre grafito y conductor 0,40 mm 0,30 mm Margen pelable 1 mm 0,70 mm Ancho leyenda mínimo mínimo mínimo 0.08 mm en color verde 0.11 mm en otros colores tinta -172Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES Espacio mínimo entre tinta pelable y pad 1 mm 0,70 mm Espacio mínimo entre tinta pelable y contorno 1 mm 0,70 mm Taladro máximo cubierto de tinta pelable 1.80 mm 2 mm Alabeo y torsión Resistencia entre dos señales Continuidad eléctrica Máximo 1% Mínimo 0,5 MOhm Máximo 0,5 % Mínimo 2,0 MOhm Máximo 10 Ohms - Contaminación iónica Otras características Máx. 1µg Eq. CINa/cm2 Ver norma IPC-A-600 Rev.G jul-04 Tabla 26 - Tolerancias a aplicar por el fabricante Máx. 0,8 CINa/cm2 - µg Eq. 5.8.2- Funcionamiento normal del equipo Este equipo no precisa de un mantenimiento riguroso siempre que se haga un uso racional del mismo. El deterioro de los materiales puede ser debido al propio envejecimiento del material o a una mala utilización de la tarjeta. En cualquier caso el proyectista se exime de toda responsabilidad que pueda derivar de un incorrecto uso del aparato. Es obligación del usuario proteger al dispositivo ante atmósferas y condiciones de trabajo adversas de la tarjeta. 5.8.3- Mantenimiento de la Placa Para el correcto funcionamiento de las placas componentes del sistema se sugieren una serie de pautas de utilización: • • • • • • Evitar la exposición de las tarjetas a ambientes donde predominen altas temperaturas, exceso de humedad, polvo, o agentes químicos, sin la protección adecuada. Evitar caídas y golpes fuertes en los módulos. No realizar conexiones y/o desconexiones sin retirar previamente la alimentación a las tarjetas. Esto evitará posibles cortocircuitos accidentales debidos a la manipulación de cables y herramientas cerca de pistas, vías y conectores. Asegurar la correcta polaridad de los bornes de tensión de la placa. Verificar la polaridad de los sensores y salidas antes de alimentar las placas de sensores y/o expansión de entradas y salidas. No tirar de los cables conectados a los terminales. -173Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 5.-PLIEGO DE CONDICIONES • En caso de sustitución de las partes componentes, procurar hacerlo por el mismo modelo. En caso de no ser posible, comprobar la compatibilidad entre ambos. 5.9- Condiciones económicas 5.9.1- Errores en el proyecto En el caso de existir errores de diseño, materiales o de cualquier índole en el proyecto, se dará cuenta de ello lo más rápidamente posible al proyectista para dar solución al problema. 5.9.2- Jornadas y salarios Las jornadas y salarios, así como los gastos que se produzcan durante el proceso de montaje hasta que se realice la entrega del sistema terminado, correrán a cargo de la empresa constructora a la cual se encargue la fabricación de la tarjeta. 5.9.3- Liquidación Terminada la elaboración del proyecto se procederá a la liquidación final en la que se incluye el importe de las unidades de realización, así como las posibles modificaciones del proyecto que hayan sido aprobadas por la dirección técnica. Al suscribir el contrato, el contratante habrá de abonar al adjudicatario el 80% del total del presupuesto. El 20 % quedará como garantía durante los seis primeros meses a partir de la fecha de puesta en marcha o de ejecución del mismo. Si transcurrido ese plazo no se ha puesto en evidencia ningún defecto, se abonará la cantidad faltante, y a partir de ese momento se consideran completamente concluidos los compromisos entre ambas partes, a excepción del periodo de garantía que cubre lo citado anteriormente. 5.9.4- Disposición final Las partes contratantes, dirección técnica y empresa, se ratifican en el contenido del siguiente pliego de condiciones, en el cual tiene igual validez, a todos los efectos, que una escritura pública, prometiendo fiel cumplimiento. -174Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 UNIVERSIDAD DE LA RIOJA Estado de las mediciones Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables Sebastián Pastor Volosín 22/06/2012 Peticionario: Digi International Spain S.A. Titulación: Ingeniería Técnica Industrial en Electrónica Industrial Director: Carlos A. Rodríguez González Departamento: Ingeniería Eléctrica Curso: 2011/2012 Lugar y fecha: Logroño, 22 de Junio de 2012 6.-ESTADO DE LAS MEDICIONES 6- Estado de las mediciones 6.1- Índice del estado de las mediciones 6.2- Capítulo C01 – Diseño Hardware............................................................ 177 6.3- Capítulo C02 – Prototipado Placa Principal ............................................ 178 6.4- Capítulo C03 – Prototipado Placa HMI ................................................... 181 6.5- Capítulo C04 – Protitpado Placa de Expansión de E/S ........................... 182 6.6- Capítulo C05 – Protitpado Placa de sensores ......................................... 183 6.7- Capítulo C06 – Desarrollo de Firmware.................................................. 185 6.8- Capítulo C07 – Documentación .............................................................. 185 -176Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES 6.2- Capítulo C01 – Diseño Hardware -177Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES 6.3- Capítulo C02 – Prototipado Placa Principal -178Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES -179Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES -180Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES 6.4- Capítulo C03 – Prototipado Placa HMI -181Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES 6.5- Capítulo C04 – Protitpado Placa de Expansión de E/S -182Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES 6.6- Capítulo C05 – Protitpado Placa de sensores -183Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES -184Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 6.-ESTADO DE LAS MEDICIONES 6.7- Capítulo C06 – Desarrollo de Firmware 6.8- Capítulo C07 – Documentación -185Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 UNIVERSIDAD DE LA RIOJA Presupuesto Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables Sebastián Pastor Volosín 22/06/2012 Peticionario: Digi International Spain S.A. Titulación: Ingeniería Técnica Industrial en Electrónica Industrial Director: Carlos A. Rodríguez González Departamento: Ingeniería Eléctrica Curso: 2011/2012 Lugar y fecha: Logroño, 22 de Junio de 2012 7.-PRESUPUESTO 7- Presupuesto 7.1- Índice del presupuesto 7.2- Cuadro de precios unitarios de materiales y mano de obra .................. 188 7.3- Cuadro de precios unitarios de las unidades de obra ............................ 190 7.3.1- Cuadro de precios unitarios totales (Nº 1)...................................... 190 7.3.1.1- Capítulo C01 – Diseño Hardware .............................................................. 190 7.3.1.2- Capítulo C02 – Prototipado Placa Principal ............................................... 191 7.3.1.3- Capítulo C03 – Prototipado Placa HMI ...................................................... 193 7.3.1.4- Capítulo C04 – Prototipado Placa de Expansión de E/S ............................ 193 7.3.1.5- Capítulo C05 – Protipado de Placa de sensores ........................................ 194 7.3.1.6- Capítulo C06 – Desarrollo de Firmware .................................................... 195 7.3.1.7- Capítulo C07 - Documentación.................................................................. 195 7.3.2- Cuadro de precios unitarios descompuestos (Nº 2) ....................... 196 7.3.2.1- Capítulo C01 – Diseño Hardware .............................................................. 196 7.3.2.2- Capítulo C02 – Prototipado Placa Principal ............................................... 197 7.3.2.3- Capítulo C03 - Prototipado Placa HMI....................................................... 201 7.3.2.4- Capítulo C04 – Prototipado Placa de Expansión de E/S ............................ 203 7.3.2.5- Capítulo C 05 – Prototipado de Placa de Sensores ................................... 205 7.3.2.6- Capítulo C06 – Desarrollo de Firmware .................................................... 208 7.3.2.7- Capítulo C07 - Documentación.................................................................. 208 7.3.3- Presupuestos parciales.................................................................... 209 7.3.3.1- Capítulo C01 – Diseño Hardware .............................................................. 209 7.3.3.2- Capítulo C02 – Prototipado de Placa principal .......................................... 210 7.3.3.3- Capítulo C03 – Prototipado Placa HMI ...................................................... 213 7.3.3.4- Capítulo C04 – Prototipado Placa de Expansión de E/S ............................ 214 7.3.3.5- Capítulo C05 – Prototipado de Placa de Sensores .................................... 215 7.3.3.6- Capítulo C06 – Desarrollo de Firmware .................................................... 216 7.3.3.7- Capítulo C07 - Documentación.................................................................. 216 7.3.3.8- Total........................................................................................................... 216 7.3.4- Resumen del presupuesto............................................................... 217 -187Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.2- Cuadro de precios unitarios de materiales y mano de obra -188Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -189Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3- Cuadro de precios unitarios de las unidades de obra 7.3.1- Cuadro de precios unitarios totales (Nº 1) 7.3.1.1- Capítulo C01 – Diseño Hardware -190Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.1.2- Capítulo C02 – Prototipado Placa Principal -191Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -192Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.1.3- Capítulo C03 – Prototipado Placa HMI 7.3.1.4- Capítulo C04 – Prototipado Placa de Expansión de E/S -193Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.1.5- Capítulo C05 – Protipado de Placa de sensores -194Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.1.6- Capítulo C06 – Desarrollo de Firmware 7.3.1.7- Capítulo C07 - Documentación -195Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.2- Cuadro de precios unitarios descompuestos (Nº 2) 7.3.2.1- Capítulo C01 – Diseño Hardware -196Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.2.2- Capítulo C02 – Prototipado Placa Principal -197Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -198Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -199Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -200Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.2.3- Capítulo C03 - Prototipado Placa HMI -201Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -202Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.2.4- Capítulo C04 – Prototipado Placa de Expansión de E/S -203Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -204Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.2.5- Capítulo C 05 – Prototipado de Placa de Sensores -205Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -206Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -207Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.2.6- Capítulo C06 – Desarrollo de Firmware 7.3.2.7- Capítulo C07 - Documentación -208Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.3- Presupuestos parciales 7.3.3.1- Capítulo C01 – Diseño Hardware -209Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.3.2- Capítulo C02 – Prototipado de Placa principal -210Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -211Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO -212Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.3.3- Capítulo C03 – Prototipado Placa HMI -213Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.3.4- Capítulo C04 – Prototipado Placa de Expansión de E/S -214Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.3.5- Capítulo C05 – Prototipado de Placa de Sensores -215Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.3.6- Capítulo C06 – Desarrollo de Firmware 7.3.3.7- Capítulo C07 - Documentación 7.3.3.8- Total -216Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1 7.-PRESUPUESTO 7.3.4- Resumen del presupuesto -217Diseño de una plataforma modular para el desarrollo ágil de aplicaciones inalámbricas basado en módulos XBee Programables. Volumen 1 de 1