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
.

Documentos relacionados