5.-memoria - Biblioteca de la Universidad de La Rioja

Anuncio
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
Descargar