Capítulo 3: La unidad VIPER de ARCOM 3.1 Introducción Como se señaló en el primer capítulo, cada unidad de medida consta de una IMU comunicada mediante el puerto serie con un computador embebido. El computador elegido para esta tarea es la unidad Viper de la empresa Arcom. En este capítulo se describen sus características principales y los motivos que llevaron a su elección. 3.2 Descripción La unidad Viper es un ordenador empotrado de muy bajo consumo compatible con el estándar PC/104. Su procesador principal es un Intel 400MHz PXA255 XScale. El PXA255 es una implementación de la micro arquitectura de Intel XScale combinada con un amplio conjunto de periféricos integrados entre los que se incluyen, un controlador de display gráfico, un controlador de interrupciones, un reloj y varios puertos series. La placa Viper ofrece un amplio rango de características haciéndola ideal para la labor que requerimos de ella. Tanto su bajo consumo como su gran capacidad de cálculo, 1 además de la inclusión de memoria no volátil, puertos serie y Ethernet fueron factores claves a la hora de la elección. El sistema operativo ejecutado sobre el computador empotrado es Microsoft Windows CE 5.0, sobre el que a su vez se ejecuta el software diseñado en este Proyecto Final de Carrera. La unidad Viper tiene el siguiente aspecto: Figura 3.1 Microcomputador Viper Si bien es cierto que para realizar las pruebas del software que será ejecutado sobre el microcomputador se ha trabajado con un kit de desarrollo proporcionado por el fabricante Arcom. Este kit consiste en una unidad que incluye al propio microcomputador Viper, la fuente de alimentación, un display táctil que hace la función de interfaz gráfica, y viene provista de múltiples puertos USB, puertos serie y un puerto Ethernet. Además viene con el sistema operativo Windows CE 5.0 preinstalado y listo para ser usado. El conjunto tiene este aspecto: 2 Figura 3.2 Kit de desarrollo proporcionado 3.3 Características Las principales características de la unidad Viper son: - Microprocesador: Intel XScale PXA255 400 MHz RISC - Memoria Cache: 32K caché de datos, 32K caché de instrucciones - Memoria del sistema: Hasta 64 MB SDRAM - Memoria no volátil: Hasta 32 MB de memoria flash - Video: Controlador de gráficos de pantalla plana TFT. Hata 800x600 de resolución. Control de retroiluminación. - Audio: CODEC LM4529 AC´97 de National Semiconductor y amplificador de potencia LM4880. Linea de entrada, de salida, de micrófono y 250mW de salida amplificada por canal. - Puertos series: 5 UARTs de alta velocidad. 4 puertos RS232 y 1 RS422/485. 2 canales FIFO con 128 Byte para transmisión y recepción. - Puertos USB: 2 puertos USB 1.1. - Capacidades de red: Controlador y puerto Ethernet 10/100BaseTX. - Reloj: Alimentado con batería. Precisión de +-1 minutos/mes a 25 ºC - Temporizador: Timeout ajustable desde 271 ns a 19 minutos y 25 segundos. 3 - Lineas de entrada/salida de propósito general (GPIO): 8 lineas de entrada a 3.3 V. 8 lineas de salida a 3.3 V. - Capacidades de expansión: Bus de expansión PC/104. - Puerto JTAG: Descarga de datos a la memoria flash. - Consumo: 2W a partir de una fuente de 5 V. - Medidas: Compatible con el estándar PC/104 (96mm x 91mm) Se verán con más detalle las más importantes. 3.3.1 Microprocesador PXA255 El microprocesador PXA255 es el cerebro que organiza y da vida a la unidad Viper. Se trata de un microprocesador de bajo consumo de tipo RISC. No incluye entre sus características ninguna unidad de punto flotante, pero no es problema ya que no la necesitamos para realizar los cálculos oportunos. Sin embargo, contiene un DSP que hace las funciones de co-procesador y que potencia las aplicaciones multimedia. El microcontrolador procesa a una velocidad de 400 MHz gracias al reloj incluido de 3.68645 MHz. Se alimenta de la fuente de alimentación principal de 5V. También posee un controlador de memoria con un bus de memoria a 100 MHz, 32 KB de memoria para datos y 32 KB de memoria para instrucciones. Además puede gestionar hasta 85 pins de líneas de entrada y salida de propósito general (GPIO), aunque muchas de ellas han sido configuradas para funciones alternativas como la de la tarjeta de sonido y la interfaz CompactFLASH. Por último destacar que el microprocesador PXS255 es un dispositivo de bajo consumo y no requiere disipador de calor para temperaturas de hasta 70ºC. 3.3.2 Temporizador (Watchdog) 4 El microprocesador PSA255 contiene un temporizador interno que puede ser usado para proteger al sistema de errores en el software. Los periodos del temporizador pueden ser ajustados desde un mínimo de 271ns hasta un máximo de 19 minutos y 25 segundos. Cuando los periodos cumplen, la placa se resetea. En este reseteo, el temporizador es desactivado hasta una nueva activación por software. 3.3.3 Memoria La unidad Viper cuenta con distintos tipos de memoria, cada una con un uso y capacidad distinta. Dispone de una memoria SDRAM de 64MB más que suficiente para las tareas que realizará la computadora. Esta memoria está montada en la placa mediante soldadura por lo que no podrá se ampliada en un futuro. La memoria puede funcionar a frecuencias que oscilan entre los 50MHz y los 99.5MHz, lo que permite configurar el funcionamiento para conseguir un óptimo balance entre consumo de energía y rendimiento. Además de la memoria RAM se dispone de una memora no volátil imprescindible para almacenar el sistema operativo, el software, los archivos de configuración, experimentos y de resultados. Ésta tendrá una capacidad de 32 MB, más que suficiente para almacenar lo anteriormente comentado. 3.3.4 Soporte para display LCD El microprocesador Intel PXA255 integra un controlador de display LCD que permite disponer de una pantalla a color como interfaz gráfica. El display puede tener una resolución de hasta 600x800 píxeles que son más que suficientes para mostrar por pantalla la interfaz gráfica del software que se ha diseñado. El display montado es táctil por lo que interactuar con el software es intuitivo y sencillo. 3.3.5 Audio 5 Un chip CODEC de audio modelo LM4549 AC´97 de National Semiconductor es el usado para dar soporte a las características de audio que nos ofrece la VIPER. En principio esta funcionalidad no es usada pero queda disponible para un posible uso en futuras actualizaciones del software. 3.3.6 Líneas de entrada/salida de propósito general (GPIO) La unidad Viper cuenta con 8 líneas de entrada/salida de propósito general, las cuales son de mucha utilidad para generar un pulso que usaremos para sincronizar las dos unidades de medida RMU y PMU. En apartados posteriores se describirá con más detalle el cómo y por qué de éste pulso. Para leer de las GPIO solamente hay que leer los bytes menos significativos localizados a partir de una dirección concreta de memoria. Para escribir en ellas hay que escribir 1 en los bytes destinados a tal fin. Las líneas de entrada toleran hasta 5V de tensión, y las líneas de salida pueden generar hasta 3.3V a 24mA. 3.3.7 Puertos USB La unidad Viper tiene dos puertos USB 1.1 que soportan velocidades de transferencia de hasta 12 Mbit/s. La inclusión de estos puertos en la unidad es de gran utilidad ya que nos permitirá almacenar rápidamente en la memoria flash nuevas versiones del software o archivos de configuración a partir de una unidad de memoria flash portátil, además de recuperar el archivo de resultados. 3.3.8 Conector 10/100BaseTx Ehernet El controlador Ethernet Lan91C111 de SMSC incluido en la placa la provee de una interfaz 10/100BaseTX. Ésta interfaz es imprescindible para realizar los experimentos con la unidad de medida, ya que a través de ella se canalizarán las comunicaciones UDP y TCP que las unidades necesitan varias veces a lo largo de la ejecución. En definitiva, la interfaz Ethernet de la unidad Viper es una característica imprescindible de la que no se puede prescindir. 6 3.3.9 Puertos Serie COM La unidad Viper viene provista de 5 UARTs de alta velocidad. Cuatro de estos canales (COM1-COM4) pueden ser usados como interfaces estándar RS232, y la restante (COM5) puede ser configurada como RS422 o como RS485. Al igual que lo comentado antes con el puerto Ethernet, los puertos serie son una característica sin la cual no tendría sentido elegir esta placa, tendrán la importante tarea de recibir los datos que la IMU manda constantemente. También serán usados para enviar a través de ellos tramas de restart y configuración en sentido Viper-IMU. 7