26 marzo, 2009

Características Blackfin de Analog Devices & Características Genéricas DSPs

En este artículo vamos a tratar de identificar las características claves de la familia Blackfin de Analog Devices referenciadas a las propias de los DSPs más comunes. En la Asignatura que nos ocupa hemos podido estudiar la Arquitectura Harvard de los DSPs; frente a la Arquitectura Von Neuman de los procesadores estándar, en la que destaca la división física de la memoria que almacena datos e instrucciones de programa, por lo que hay que hablar de dos memorias; amén de dos estructuras de buses: de datos y de programa, lo que facilita el direccionamiento de datos e instrucciones en un mismo ciclo de reloj.

Por su parte, los Blackfin presentan una Arquitectura Harvard modificada en combinación con una estructura jerarquizada de memoria, terminando por llamarse Micro Signal Architecture y que confiere a estos dispositivos poder computacional, alto desempeño, flexibilidad y facilidad en su uso con una práctica específica en las telecomunicaciones y en las aplicaciones multimedia.
Esta arquitectura de los Blackfin duplica los bloques computaciones de MAC de 16 bits y de ALU de 32 bits. Recordamos que, en aquellos DSPs, la MAC era un hardware dedicado y rápido que solucionaba el tiempo que se invertía en las operaciones numéricas de suma y producto. Y, para distinguirse aún más de una arquitectura convencional, añade 2 acumuladores de 40 bits y 4 ALUs de vídeo de 8 bits; amén de 1 shifter; todo ello integrado en la Unidad Aritmética de Datos, donde se ejecutan las operaciones aritméticas y lógicas y de desplazamiento del shifter. Las operaciones primarias se ejecutan en la ALU0 y las operaciones en paralelo en la ALU1 como subconjunto de las primeras. Las ALU específicas de vídeo realizan operaciones tipo SIMD, con las que se logra paralelismo a nivel de datos. Se tratan de instrucciones que aplican una misma operación sobre un conjunto de datos. Con una única Unidad de Control se despachan las instrucciones a diferentes unidades de procesamiento, esto es, la misma instrucción es ejecutada de manera síncrona por todas las unidades de procesamiento.

En la Unidad Aritmética de Direcciones esta nueva arquitectura nuevamente duplica bloques funcionales como los Generadores de Direcciones de Datos (DAGs) que se encargan de generar las direcciones para el doble acceso simultáneo de datos en la memoria del DSP. Ambos generadores comparten un archivo de registros de 32 bits más otros 8 registros que pueden apuntar a una zona de memoria, llamada pila, que se emplea para almacenar datos de internos cuando se salta a subrutinas de programa para que no se pierda contenido.
La memoria presenta una jerarquia tal que a nivel 1 la memoria de instrucciones almacena únicamente dichas órdenes y las dos memorias de datos almacenan sólamente datos y un segmento dedicado guarda datos de la pila y variables locales. Coexisten múltiples bloques de memoria L1 que se pueden configurar como algo entre memoria SRAM y Caché. Mencionar que una Caché es un espacio de memoria de alto rendimiento empleado para acceder a datos frecuentes. La memoria de nivel 1 opera a la velocidad interna del DSP (CCLK) sin retardo y destaca porque permite hasta cuatro accesos simultáneos a la Unidad Aritmética del DSP, realiza al unísono operaciones DMA, mantiene Caché y accede al Core. Se entiende que la otra memoria de nivel 2, conformada por 8 bloques de 32 Kbits cada uno lo que suma una capacidad de 256 Kbits, opera a la velocidad del sistema (SCLK). El dispositivo que empleamos en laboratorio: ADSP BF533, presenta una capacidad total de memoria de 148 KB.

Esta variedad en las frecuencias de trabajo de las señales es posible gracias a un Controlador de Administración Dinámica de Potencia (DPMC). Con ello se consigue optimizar el consumo de potencia según los requerimientos específicos de la aplicación. Este módulo permite cuatro modos de operación: full on, active, sleep y deep sleep, cada uno con unas características de desempeño y un consumo de potencia propios. Se puede reducir aún más el consumo deshabilitando en un instante dado el reloj del periférico que no se esté utilizando. Entre sus funciones destacan: manejo de relojes, bucle de enganche de fase (PLL), controlador de potencia, modos de operación y control de voltaje.

El segmentar la ejecución de instrucciones, es una técnica de mejora en el rendimiento de los DSPs, de manera que en cada ciclo se añade una nueva subtarea sin necesidad de esperar a que finalicen los ciclos de cada una de las instrucciones. Los procesadores Blackfin ejecutan intrucciones siguiendo un patrón de encauzamiento entrelazado (Intelocked Pipeline) que posibilita la ejecución de órdenes independientes entre los procesos de carga y de almacenamiento, sin necesidad de que el compilador o el programador conozcan el número de ciclos que invertirá la operación de lectura y escritura de la memoria; así se aprovechan los ciclos muertos para la ejecución de instrucciones no dependientes del resultado de la operación de memoria.

También se comentó que los DSPs comunes emplean instrucciones especiales optimizadas para el tratamiento digital de señales, con las ventajas que ello supone de un código más compacto empleando menos memoria y de un aumento en la velocidad de ejecución de los algoritmos. Pues bien, la familia Blackfin añade un grupo de instrucciones para un procesamiento más eficiente de señales de vídeo/imagen: instrucciones ALIGN8, BYTEOP3P, ... que permiten alinear bytes copiando una palabra no alineada a partir de una combinación de dos registros de datos, sumar dos valores y promediarlos recortando el resultado a la mitad de bits y un procesamiento vectorizado: instrucciones que permiten ejecutar simultáneamente operaciones sobre grupos de valores de 16 bits. Para obtener más información sobre los procesadores Blackfin de Analog Devices dirigirse al enlace:
http://www.analog.com/processors/processors/blackfin/index.html

Diseño de Sistema Domótico

El sistema de domótica que se propone gira entorno al Control por Voz, como un interfaz adicional a otros ya existentes en el Hogar Digital, tales como: pulsadores, pantallas táctiles, PDAs, ordenadores, …
Desde hace años, el crecimiento de los Sistemas de Reconocimiento de voz ha ido en aumento. Primero se utilizaban voces pregrabadas para aplicaciones telefónicas automáticas con opciones en menús. Opciones que se habilitaban, en los inicios, pulsando los botones del terminal y, finalmente, articulando palabras del menú de voz.Las aplicaciones telefónicas se han ido desarrollando considerablemente permitiendo una mayor flexibilidad en el reconocimiento de voz; a la vez que en el sector informático se han comercializado programas de reconocimiento y de síntesis de voz. Dicho software permite la navegación web, el control por comandos, ...
mediante órdenes de voz; independientemente del locutor, lo que permite el entrenamiento previo del sistema incrementando la precisión en el reconocimiento, puesto que el usuario puede corregir el error cuando éste se produce. Así pues, el sistema se autoalimenta y cuanto más se emplea mejora en su eficiencia.
Los sistemas de reconocimiento de voz están basados bien en técnicas por comparación de patrones o bien en decodificadores acústico fonéticos. De las técnicas de procesado basadas en patrones cabe destacar las que se apoyan en el uso de redes neuronales y aquellas que realizan el procesado según los modelos ocultos de Harkov. En cualquier caso requieren de un entrenamiento previo del sistema para que la base de datos vaya almacenando más información y mejore la tasa de acierto del reconocedor.
Las fuentes de información acústica, fonética, fonológica y léxica, con los correspondientes procedimientos interpretativos, dan lugar a un módulo conocido como decodificador acústico-fonético. La señal vocal de entrada es convenientemente representada; para ello, se la somete a un proceso previo de parametrización donde se determinan las características acústicas representativas de dicha señal. En esta etapa previa es necesario asumir algún modelo físico: auditivo o articulatorio. Una vez detectadas se etiquetan las unidades acústicas generándose cadenas de fonemas que se mapean con un vocabulario conocido para pasar a una estrategia de reconocimiento en función de las restricciones impuestas alreconocedor. Esta técnica requiere de un gran conocimiento acústico de las unidades fonéticas. Tanto el conjunto de características, que se eligen por intuición, como el diseñode clasificadores, hoy por hoy, no es óptimo; por lo que nos inclinaremos por técnicas basadas en la comparación de patrones.
Un Sistema de Control por Voz puede implementarse de diversas formas según el tipo de elementos captadores de voz y de la forma de transmitir las señales de audio entre los dispositivos que componen el sistema. Desde el punto de vista técnico, la topología más simple es la de estrella desde la central hasta cada elemento emisor o receptor. Esta conexión se puede efectuar tanto para señales analógicas como para digitales. En este último caso se consigue aumentar la longitud del cableado, respecto a la infraestructura para señales analógicas, sin perdida de calidad. En cambio, la topología que se recomienda es la de redes LAN para el transporte de las señales entre la central y los sistemas auxiliares de captación y emisión, siendo necesario añadir un adaptador o tarjeta de red al bus y la electrónica que exige la conectividad a la LAN, con la inclusión de un conversor analógico-digital (AD), para la captura de señales procedentes del micrófono, y un conversor digital-analógico para la conversión de las tramas digitales a audio analógico que debe reproducir el altavoz. En las siguientes figuras se pueden ver dichas configuraciones respectivamente:
En el mercado actual podemos encontrar gran variedad de sistemas de reconocimiento de voz. Seguidamente se presenta un listado de los sistemas más representativos por su presencia en el mercado, su integración con el hardware actual y sus cualidades:
a. Software comercial para ordenadores personales:
Dragon Naturally Speaking de Nuance
Philips FreeSpeech
Protitle Live from NINSIGHT
Via Voice de IBM
Soluciones Loquendo
Voice Pro 11 de Linguatec
b. Sistemas telefónicos:
Nuance 8.5
Telefónica: Software vocal de Telefónica
Telisma (teliSpeech)
c. Software libre para ordenadores personales:
CVoiceControl: se graba la orden como entrenamiento.
PerlBox: sin entrenamiento, pero en inglés.
Sphinx, del Sphinx Group en Carnegie Mellon University
Open Mind Speech, antiguamente FreeSpeech

Sistemas de reconocimiento de voz que hacen uso distintas firmas de instalaciones de domótica destacando las soluciones de: Fagor, Proinssa, Personica, Indistsys y Easy Life.

Entrando en las técnicas de captura y transmisión de la voz para aplicaciones de reconocimiento de voz aplicadas al Hogar Digital se comprueba que unos valores óptimos pueden ser: *Ancho de banda señal de voz: 8.000 Hz. *Filtrado mediante paso banda con frecuencias de corte de 100Hz y 8.000Hz. *Frecuencia de muestreo: 16 KHz *Codificación: 10 bits *Bit rate mínimo que debe asegurar el BUS: 1,6 Mbit/s

Sistema de Vigilancia IP

Es habitual asociar el diseño de un sistema de vigilancia con un sistema de videovigilancia analógico. Sin embargo, los sistemas de circuito cerrado de televisión CCTV tradicionales quedaron obsoletos. Así que, la empresa de la que soy Ingeniero Jefe apuesta por una solución de vigilancia IP. Este sistema está basado en una infraestructura de Protocolo de Internet o protocolo de comunicación a través de redes, cableadas o inalámbricas, de computadoras.
Los componentes básicos que conforman este sistema de vigilancia IP son las cámaras de red, los codificadores de vídeo y el software de gestión de vídeo; como piedras angulares de toda solución de vigilancia IP, amén de los componentes de red, el servidor y el dispositivo de almacenamiento; como parte del equipo entándar. Otros componentes de un sistema de vídeo en red incluyen accesorios como carcasas, midspans PoE y splitters activos.


1. Cámaras de red en las que en una única unidad se integra un objetivo, un sensor de imagen, uno o más microprocesadores y memoria. Los micros se emplean en el procesamiento de la imagen y en las funciones de red. La memoria sirve para almacenar el firmeware y las grabaciones de vídeo. Como un ordenador, la cámara de red; ubicada en un punto con conexión a red, dispone de su propia dirección IP. Estos dispositivos pueden configurarse para enviar video a través de la red, visualización en directo y/o grabación de forma continua, en horas programadas, un evento en concreto o previa solicitud de usuarios autorizados. Además ofrecen funciones de video inteligente como detección de movimiento, detección de audio, alarma antimanipulación activa y autoseguimiento. Disponen de puertos de entrada/salida que habilitan la conexión con dispositivos externos como sensores y relés. La totalidad de los tipos de cámaras de red: fijas, domo fijas, PTZ y domo PTZ, dispone de función de visión diurna y nocturna tanto en instalaciones de interior como de exterior. Proporcionan imágenes a color cuando lo permiten las condiciones de iluminación y cambian automáticamente a modo nocturno, con luz infrarroja (IR), proporcionando imágenes en blanco y negro de alta calidad.
2. Codificadores de vídeo que permiten la integración de un sistema de videovigilancia analógico CCTV anterior en un sistema de video en red, sin tener que desechar parte de una infraestructura existente, así pues, desempeñan un papel significativo en instalaciones en las que se deben mantener muchas cámaras analógicas. El codificador de vídeo se conecta a la cámara analógica a través de cable coaxial y convierte la señal analógica en señal digital que, luego, envía a través de la red. Con estos dispositivos se puede acceder remotamente y controlar: movimiento horizonal, vertical y zoom, a través de la red a cualquier cámara de vídeo analógica o cámaras especializadas de alta sensibilidad térmica o microscópica. Para visualizar y/o grabar el vídeo digital se emplea un PC, en lugar de un DVR o VCR o de monitores analógicos. Además proporciona escalabilidad y facilidad en la integración de otros sistemas de seguridad.

Algunos de los elementos y partes que conforman un codificador de vídeo son: a: entrada de vídeo analógica coaxial, b: microprocesador para ejecutar el sistema operativo y las funciones de red y seguridad del codificador, realizar propiamente la codificación a sistema digital en varios formatos de compresión y para el análisis de vídeo. Este chip determina el rendimiento del codificador que, normalmente, se mide en fotogramas por segundo a la máxima resolución. Los codificadores de vídeo avanzados pueden proporcionar una frecuencia de imagen máxima de 25 imágenes por segundo con cámaras analógicas PAL, c: memoria tipo flash y buffer de secuencias de vídeo con memoria RAM para almacenar el programa informático, d: puerto de alimentación a través de Ethernet para conectar a red y enviar/recibir datos y alimentar la unidad y la cámara conectada si admite PoE, e: puerto serie para el control de movimiento horizontal-vertical-zoom de una cámara analógica PTZ, f: conectores de E/S para dispositivos externos, tales como: sensores para detectar eventos de alarma, relés para activar, por ejemplo, luces, g: entrada de audio para conectar micrófono o equipo de entrada de línea y salida de audio para conectar altavoces.

3. Software de gestión de vídeo. Cuando el sistema consta de una o unas pocas cámaras, la visualización y la grabación básica de vídeo puede gestionarse a través de la interfaz web incorporada en las cámaras de red y los codificadores de vídeo. En cambio, si el sistema consta de más cámaras se empleará un sistema de gestión de vídeo en red. Existen multitud de ellos para diferentes sistemas operativos como: Windows, UNIX, Mac OS, Linux. Los aspectos que deben considerarse son la elección de plataforma hardware, de plataforma software, características del sistema: configuración, instalación, gestión de eventos, vídeo inteligente, seguridad y administración y la posibilidad de incorporar otros sistemas: sistemas detección de incendios, sistemas de alarma, …
Puede admitir diversas características, siendo las más comunes: a. visualización simultánea de video de varias cámaras, b. grabación de vídeo y audio, c. funciones gestión de eventos como detección de movimiento de vídeo, d. administración y gestión de cámaras, e. opciones de búsqueda y reproducción, f. control de acceso a usuarios y g. registro de actividades.

4. Midspan PoE. Tecnología de alimentación a través de Ethernet (PoE) con la que se proporciona energía al mismo cable de red por el que circulan los datos y, con ello, alimentación a los productos de vídeo conectados a la red. Ubicado entre el conmutador de red y los dispositivos de almacenamiento. La distancia máxima entre la fuente de datos y los productos de vídeo en red no debe superar los 100 metros, lo que significa que el midspan debe colocarse a una distancia no superior a la citada. Uso muy frecuente en teléfonos IP, puntos de acceso inalámbrico y cámaras de red conectadas a una LAN.

5. Splitter. Sirve para separar la energía y los datos de un cable Ethernet y redirigirlos en dos cables diferenciados físicamente, de manera que los datos se podrían enviar a través de un dispositivo sin PoE integrado. Esto conlleva a la adaptación de la tensión de 48 voltios que proporciona la PoE a 12-05 voltios, nivel adecuado al dispositivo al que se conectará, que también realizar el splitter.