programador para módulos de comandos de voz
Transcripción
programador para módulos de comandos de voz
VII Congreso de la Sociedad Cubana de Bioingeniería Habana 2007 PROGRAMADOR PARA MÓDULOS DE COMANDOS DE VOZ Y. Forneiro, L. Piñeiro Instituto Central de Investigación Digital Calle 202 # 1704 e/ 17 y 19, Siboney, Playa. La Habana, Cuba. email: [email protected] RESUMEN La incorporación de mensajes de voz en equipos electrónicos ha tomado auge en la actualidad debido al surgimiento y desarrollo de un soporte de estado sólido para esta aplicación. El Instituto Central de Investigación Digital (ICID) incorpora a su línea de desfibriladores un Módulo de Comandos de Voz siguiendo la tendencia de fabricantes de prestigio en este tipo de equipos. Puesto que el ICID produce sus propios equipos médicos, la programación in-circuit de estos dispositivos de audio, se convierte en una necesidad inmediata. En este trabajo se especifican las características técnicas y funcionales de un programador multicanal orientado a ambientes productivos, que permite la programación simultánea de cuatro Módulos de Comandos de Voz. Se presenta la arquitectura del diseño electrónico y se define la estructura del firmware para la aplicación, proponiendo los algoritmos necesarios para los modos de grabación y comprobación, imprescindibles para un programador de estas características. Palabras clave: programador multicanal, programación in-circuit, comandos de voz, ChipCorder. 1. INTRODUCCIÓN La incorporación de mensajes de voz en equipos electrónicos es una prestación que ha tomado auge en el mundo del diseño electrónico actual, tanto profesional como de consumo, por las ventajas que ofrece en lo que a interacción hombre – máquina se refiere. El surgimiento y la accesibilidad actual a los dispositivos de estado sólido de grabación y reproducción de audio permiten incorporar esta prestación en los diseños actuales [1]. El ICID incorpora a su línea de desfibriladores un Módulo de Comandos de Voz (MCV) capaz de emitir selectivamente mensajes hablados, también llamados comandos de voz, para reducir la ocurrencia de errores de operación y facilitar su uso, de vital importancia teniendo en cuenta las características de este tipo de equipo médico y de las circunstancias en que comúnmente es utilizado [2]. El MCV para desfibriladores está basado en el dispositivo de audio ISD 4003-04 [2]. Es un dispositivo híbrido, en cuya estructura resalta un bloque de control digital basado en el estándar de comunicación SPI (Serial Peripheral Interface) y un bloque de procesamiento de la señal analógica de audio [3]. Su capacidad de almacenamiento de audio es de 4 minutos, con una anchura de banda igual a 3,4 kHz y una frecuencia de muestro de 8,0 kHz, que es generada internamente en el propio dispositivo. Durante la grabación en el dispositivo de audio el procesamiento analógico incluye: la amplificación de la señal, su filtrado de limitación de banda, el muestreo y finalmente el almacenamiento de las muestras en el arreglo de memoria interno, que es no volátil y de grabación múltiple. Durante el proceso de reproducción, las muestras son extraídas en modo secuencial, filtradas posteriormente para eliminar las componentes de frecuencias introducidas durante el muestreo y la señal resultante es finalmente enviada al amplificador de salida. Los diez comandos para el control del funcionamiento del dispositivo de audio quedan definidos por la estructura de los 5 bit de control y los 11 bit de direccionamiento que se envíen al dispositivo de audio a través del terminal MOSI (Master Output Slave Input) del estándar SPI, en una trama de 16 bit en su variante más general. Existen dos eventos que activan una señal externa de solicitud de interrupción: EOM (End of Message), que se produce terminada la reproducción de uno de los mensajes grabados, y OVF (Overflow Flag), que se produce cuando se alcanza el fin de la memoria durante el proceso de grabación [3]. En el mercado existen programadores para estos dispositivos de audio cuya complejidad, robustez y prestaciones varían teniendo en cuenta su orientación hacia ambientes de desarrollo o hacia entornos de producción de equipos a gran escala. Pueden señalarse como ejemplos: el sistema de desarrollo QV400D de Quadravox [4] y el programador universal IT 2000 de Infontek [5]. Sin embargo, ninguna de estas variantes de programadores se encuentra diseñada para la grabación in-circuit de los dispositivos de audio, realizando la grabación antes de las etapas de montaje y soldadura del componente electrónico. El propósito de incluir MCV en la línea de desfibriladores, hace que la obtención de un modo de programación in-circuit para sus dispositivos de audio sea muy conveniente en ambientes de producción seriada de equipos: reporta reducción de costos, mayor agilidad en la línea de producción y elimina fuentes de error debido al factor humano. La programación in–circuit tiene otra ventaja, permite la corrección o la actualización de los programas de audio en bloques circuitales ya montados y en equipos terminados. Proponer una solución para la grabación in-circuit de estos dispositivos supone tener definida una interfaz de programación propia, presente tanto en el programador como en los MCV [1]. ISBN 978-959-212-236-9 (c) Sociedad Cubana de Bioingeniería, artículo T022 . VII Congreso de la Sociedad Cubana de Bioingeniería Habana 2007 • • • • • • • • • • • • Orientado a la programación in-circuit. Compatible con MCV basados en dispositivos de audio de la serie ISD 4003. Provisto de 4 canales de programación, que representan la cantidad máxima de MCV que pueden ser simultáneamente programados. Funcionamiento autónomo, independiente de cualquier control desde una computadora personal. Detección automática de la cantidad de MCV que se conecten. Comprobación preliminar del funcionamiento de los MCV conectados. Opciones de grabación y de borrado de los dispositivos de audio. Comprobación del proceso de grabación por cada MCV conectado. Identificación y señalización de los MCV con funcionamiento deficiente. Salida de audio: 1 Vpp, balanceada. Anchura de banda de audio: mayor que 3,4 kHz. Fuente de alimentación externa: 9 VCD, 800 mA. Puertos Interfaz del Usuario P1 - P4 Microcontrolador Requisitos y especificaciones del programador Interfaz del Usuario: Posibilita la operación del programador de manera autónoma, es decir, sin el uso de una computadora personal. Dos teclas de funciones y un LED de indicación de modo de operación son sus principales componentes, los cuales son controlados desde el microcontrolador. A través del altavoz del programador son emitidos comandos de voz que auxilian al operador durante el proceso de programación. Bus SPI Control Dispositivo de audio master ISD 4003-04 Acondicionador Fuente de Alimentación 2. METODOLOGÍA Sumador Audio Amplificador de potencia Estructura Eléctrica El diagrama en bloques funcionales del programador se muestra en la figura 1 [1], descrita a continuación. Bloque de Control: Incluye un microcontrolador y el dispositivo de audio master, que almacena el programa de audio que se transferirá a los MCV. Tiene a cargo las tareas de atención del bloque de Interfaz del Usuario, el control de los Puertos de programación y del amplificador de potencia del Bloque de Audio. La comunicación del microcontrolador con el dispositivo de audio master, así como con los MCV conectados a los Puertos, se realiza a través del estándar SPI [6]. El dispositivo de audio master proporciona la señal a partir de la cual se realizan los procesos de acondicionamiento y monitoreo de audio, necesarios durante la grabación y la comprobación de los MCV. Bloque de Audio: Realiza el acondicionamiento de la señal proveniente de la salida del dispositivo de audio master, para ser utilizada como fuente de señal de audio para los MCV que se programan. La señal es filtrada, atenuada y entregada de manera diferencial al Bloque de Puertos. Incluye también un circuito sumador y un amplificador de potencia, gobernado desde el microcontrolador, para el monitoreo del programa de audio procedente del dispositivo master o de los MCV conectados al programador. Bloque de Puertos: Permite la conexión de hasta cuatro MCV para su programación. La conexión a los Puertos de programación se realiza a través de cables de interconexión de 20 cm de longitud, lo que facilita la programación de bloques circuitales de mediano tamaño. A cada uno de los Puertos llegan las señales de control digital SPI, así como la señal correspondiente al programa de audio. Figura 1. Estructura en bloques funcionales del programador de MCV. Aparecen representadas las señales digitales de control y las de audio que se intercambian con los MCV a través de los Puertos de programación. Programa Interno El diagrama de flujo simplificado del firmware de control aparece en la figura 2 [1]. En la sección Detección y Prueba se detectan los puertos por los cuales se conectan MCV, realizándose una verificación del funcionamiento de cada uno. La función de Detección de Presencia limita el envío de las señales de control a aquellos puertos de programación ocupados, lo que se logra a partir del estado de una señal lógica en el Puerto de programación correspondiente una vez energizado. La función Prueba Preliminar permite comprobar el funcionamiento de los MCV conectados iniciando la reproducción en cada dispositivo de audio a partir de una localización próxima al final de la memoria, lo cual debe provocar una interrupción por desbordamiento de memoria dentro de una ventana de tiempo de 500 ms. De esta manera son identificados los MCV con funcionamiento incorrecto para su desconexión del programador. El estado de las dos teclas de funciones, denotadas por A y B, permiten llevar el programador a tres modos de trabajo: Grabación de Mensajes, Comprobación de Grabación y Borrado Total. Cuando la Tecla A permanece presionada por más de tres segundos se inicia el proceso de Borrado Total, de lo contrario se comienza un ciclo de Grabación de Mensajes. La bandera E_GRAB garantiza que no se realice un proceso de grabación sobre dispositivos que han sido ya grabados. ISBN 978-959-212-236-9 (c) Sociedad Cubana de Bioingeniería, artículo T022 . VII Congreso de la Sociedad Cubana de Bioingeniería Habana 2007 Iniciación de variables. Declaración de la Tabla de Direccionamiento. Configuración de puertos, temporizadores, comunicación, interrupciones. Detección y Prueba Comando de voz sí Tecla_B E_GRAB= ”1” Tecla_A Tecla_A 3 segundos Borrado Total E_GRAB= ”1” Grabación de Mensajes E_GRAB= ”1” E_GRAB= ”0” Comprobación de Grabación Comando de voz Comando de voz Figura 2. Diagrama simplificado del programa principal del firmware del programador. Los bloques resaltados representan las funciones del programador. Obsérvese que el programador emite comandos de voz para auxiliar su operación. El modo de Comprobación de Grabación se inicia al presionarse la Tecla B si la bandera E_GRAB se encuentra activa, lo que indica que ha finalizado el proceso de grabación. El algoritmo en el cual se basa esta comprobación es similar al utilizado en la Prueba Preliminar, pero en este caso se inicia la reproducción de un ¨mensaje de prueba¨ (de duración inferior a 500 ms) en cada uno de los MCV conectados. En presencia del correcto funcionamiento del dispositivo de audio debe generarse una solicitud de interrupción por fin de mensaje dentro de una ventana de tiempo de 500 ms, en su defecto, es síntoma de funcionamiento incorrecto del MCV correspondiente. El control por firmware de las señales de habilitación de los dispositivos de audio permite enviar las tramas de control selectivamente hacia el dispositivo de audio master o hacia los dispositivos de audio presentes en los MCV. Proceso de grabación y borrado El proceso de Grabación de Mensajes, ilustrado en la figura 3, consiste en mantener a los MCV en grabación simultánea durante el tiempo en que el dispositivo de audio master se encuentra reproduciendo un mensaje. Por tanto, después de preparada la palabra de direccionamiento de 11 bit, se inicia el proceso de reproducción del master y seguidamente el de grabación en los MCV, en ambos casos utilizando la misma palabra de direccionamiento. Una vez recibida la solicitud de interrupción desde el dispositivo de audio master por fin de mensaje se activa la bandera GREEN, entonces se envía el comando para detener la grabación e insertar la marca de fin de mensaje en la memoria interna de los dispositivos de audio presentes en los MCV. Esta secuencia se repite de forma cíclica tantas veces como cantidad de mensajes se pretendan grabar. La variable OFFSET determina la cantidad de ciclos de grabación y a la vez se utiliza como puntero de la Tabla de Direccionamiento, que contiene la dirección del inicio de cada uno de los mensajes de voz alojados en la memoria del dispositivo de audio master [1]. El proceso de Borrado Total es un modo particular del anterior en el cual se ordena a los MCV comenzar a grabar desde la dirección inicial de su memoria hasta la solicitud de interrupción externa por desbordamiento de memoria, garantizando en sus entradas analógicas una señal nula. El proceso de borrado elimina las marcas de fin de mensaje en dispositivos que hayan sido grabados anteriormente [1]. OFFSET = cantidad de mensajes Preparación de la trama de direccionamiento Inicio de reproducción en dispositivo master Inicio de grabación en los MCV GREEN= “1” sí Detener grabación en los MCV Decremento de OFFSET OFFSET= “0” Señalización de fin de grabación de mensajes Figura 3. Diagrama de flujo correspondiente al modo Grabación de Mensajes. La variable GREEN se activa una vez finalizado un mensaje de voz. La preparación inicial del material de audio y la generación de su Tabla de Direccionamiento, así como la programación del dispositivo de audio master, precisan herramientas de desarrollo específicas [1] [4]. 3. RESULTADOS Y DISCUSIÓN Los comandos de voz relacionados con la operación del programador son obtenidos en varios casos por concatenación de mensajes más simples [4]. Los diez mensajes resultantes no exceden el 10 % de la capacidad del dispositivo ISD 4003-04, cifra adecuada teniendo en cuenta el 75 % de ocupación aproximada obtenido durante el desarrollo de un MCV para un desfibrilador ISBN 978-959-212-236-9 (c) Sociedad Cubana de Bioingeniería, artículo T022 . VII Congreso de la Sociedad Cubana de Bioingeniería Habana 2007 que incluye 15 comandos de voz en tres idiomas diferentes y tonos de señalización [2]. Se comprobó experimentalmente el comportamiento de los bloques analógicos comprendidos en el diseño eléctrico, en particular, el del acondicionador de señales. Se apreció un comportamiento satisfactorio al compararlo con el obtenido por simulación, cuyos resultados aparecen en las figuras 4 y 5. Para la simulación en el dominio temporal de este circuito se colocó a su entrada (TP6) una señal sinusoidal de 1 kHz de frecuencia y 570 mVpp sobre un valor de tensión de directa de 1,2 V, caracterizando así la señal que entrega el dispositivo de audio master. subrutinas que resuelven tareas específicas durante el control y el direccionamiento de los dispositivos de audio. Contar con este paquete de subrutinas, ya listas para su uso, permite agilizar el desarrollo de futuros proyectos basados en esta tecnología. Vdiferencial TP6 TP6 TP9 TP7 Figura 5. Respuesta en el dominio frecuencia, obtenida por simulación, del circuito acondicionador de señales. Obsérvese el comportamiento típico de un filtro de paso de banda en la salida diferencial del mismo. 4. CONCLUSIONES Vdiferencial Figura 4. Comportamiento en el dominio tiempo, obtenido por simulación, del circuito acondicionador de señales. En sus salidas (TP7 y TP9) se observan las señales simuladas en oposición de fase que se envían a los puertos de programación y permiten obtener la señal de audio en modo diferencial para su grabación. En la figura 4 aparecen las formas de onda en sus salidas balanceadas (TP7 y TP9). Obsérvese que las señales de alterna se encuentran en oposición de fase y permiten obtener una señal diferencial de salida de 1,08 Vpp, valor que se encuentra en el orden del especificado en los requisitos de diseño. Con esta misma señal de entrada, fueron conectados a las salidas del acondicionador de audio los circuitos equivalentes de uno, de dos, de tres y de cuatro dispositivos de audio, en corridas de simulación independientes. La tensión diferencial de salida, exhibió variaciones menores de 8,5 mVpp, lo que evidencia la compensación del efecto de carga que proporcionan los buffers incluidos en el diseño. La figura 5 muestra la respuesta de frecuencia en la salida diferencial del acondicionador, se corresponde con la de un filtro de paso de banda. La anchura de banda de la señal de audio es igual a 9,85 kHz, conservándose sin atenuación apreciable el espectro de la señal de audio hasta 3,4 kHz, valor al cual se limita internamente en el dispositivo de audio. El algoritmo propuesto para la grabación de los MCV, implicó el desarrollo y la puesta a punto de varias Se demostró la factibilidad del diseño y fabricación desde el punto de vista técnico de un equipo para la programación de los MCV que se emplearán en la línea de desfibriladores del ICID. El programador desarrollado está especialmente concebido para ambientes productivos y programación incircuit. La concepción funcional y multicanal del mismo está encaminada fundamentalmente a la optimización del tiempo y eliminación de los errores que pueden introducirse durante el proceso, así como a lograr una interfaz autónoma y simple para el operador. El conjunto de ensayos prácticos realizados permitió la comprobación de las soluciones electrónicas y de la implementación por firmware del algoritmo propuesto para la grabación. La calidad del programa de audio resultante de este proceso resultó satisfactoria para el tipo de aplicación al cual está destinado. REFERENCIAS [1] Piñeiro L. “Diseño de un programador para módulos de comandos de voz”, Trabajo de Diploma, ISPJAE, La Habana, 2006. [2] Forneiro Y. “Módulo de comandos de voz para desfibriladores”, VII Congreso de la Sociedad Cubana de Bioingeniería, La Habana, 2007. [3] ISD/Winbond. “ISD4003 Series, Single-Chip Voice Record and Playback Devices 4-, 5-, 6-, and 8-Minute Durations”, Datasheet, June 2000. [4] Quadravox Inc. “QV400D Sound Development and Programming Tool”, User’s Guide v1.10, 1999. [5] Infontek Corporation. “Infontek IT2000 Universal Programmer”, Technical Specifications, 2003. [6] ISD/Winbond. “The ISD4000 SPI Control Port Operations, a Simplified Guide”, Applications Note 5A, 2000. ISBN 978-959-212-236-9 (c) Sociedad Cubana de Bioingeniería, artículo T022 .