paint-brush
The Talking Box: un dispositivo de reproducción y digitalizador de audio CVSDpor@bobnoxious
285 lecturas

The Talking Box: un dispositivo de reproducción y digitalizador de audio CVSD

por Bob Wright31m2024/06/23
Read on Terminal Reader

Demasiado Largo; Para Leer

La revista Radio-Electronics compró esto como artículo y, de hecho, me pagó un anticipo bastante bueno por él. Me pareció una buena forma de ganarme la vida, ya que disfruto diseñando, construyendo, codificando y escribiendo. Luego, la revista quebró en abril de 1985 y el artículo nunca se imprimió.
featured image - The Talking Box: un dispositivo de reproducción y digitalizador de audio CVSD
Bob Wright HackerNoon profile picture
0-item

Un digitalizador de audio CVSD y un dispositivo de reproducción

Diseñé este circuito en 1985 porque me sentía solo y necesitaba alguien con quien hablar. La Caja Parlante diría cualquier cosa que yo le dijera.


En serio, lo tenía conectado a mi teléfono como contestador automático digital. Tenía un Acuerdo de Acceso a Datos (DAA) de AT&T que era una interfaz de línea telefónica y funcionó muy bien. Estaba jugando con tonos y necesitaba buena fidelidad. Entonces, los Servicios para Familias y Niños del condado, por error, pusieron mi número en algunas de sus tarjetas de presentación. Recibí muchísimas llamadas, especialmente porque estaba escribiendo y leyendo mi poesía basura lasciva como mensaje de respuesta. ¡Estoy hablando de alta fidelidad, bebé! Recibí numerosos testimonios de lo mucho que me amaban. Básicamente, estaba haciendo rap antes del rap en 1985. "Hola, ¿llamas para que atiendan a tu hijo?" Probablemente no sería un saludo aceptable hoy.


Escribí un programa en lenguaje ensamblador en el ensamblador Z80 para administrar las funciones del dispositivo y luego construí una placa adaptadora que se conectó al zócalo del dispositivo de E/S serie de una máquina compatible con IBM PC y reemplacé el dispositivo UART asíncrono con una versión síncrona/sincrónica universal. de Intel, un USART Intel 8251A. Luego, un amigo, un tipo llamado Tommy Cobb o “el Zapatero”, convirtió mi código Z80 en ensambladores 8088 para PC. No recuerdo cuándo fue la última vez que vi mi adaptador para placas de E/S serie de PC IBM. No conozco ningún documento. Y parece que no puedo encontrar mi prototipo de Talking Box, pero sin duda está en algún lugar de esta casa. Es una unidad fotogénica y me gustaría incluir algunas fotos aquí, pero ¡ay!


Además de conectarlo al teléfono, el software me permitió seleccionar y reproducir algunos bucles agradables para usarlos como un espacio de almacenamiento de audio. Reproduzca las grabaciones al revés para escuchar la voz de... ah, no importa. ☺


De todos modos, la revista Radio Electronics compró esto como artículo y, de hecho, me pagó un buen pago inicial por él. De hecho, quedé muy impresionado y ciertamente motivado. Primeros derechos de serie norteamericanos. Me pareció una forma realmente agradable de ganarme la vida, ya que disfruto diseñando, construyendo, codificando y escribiendo. Había algunos autores que ya habían repetido apariciones por lo que no era una idea original. Luego, la revista quebró en abril de 1985 y dejó de publicarse, y el artículo nunca se imprimió. Mi sensación fue que en ese momento la industria de la impresión maker había terminado, la audiencia de aficionados a la construcción se había evaporado. Esto fue antes de Internet. Así que aquí está el artículo resucitado, por así decirlo. Esperemos que lo disfrutes incluso en su obsolescencia. Los juguetes eléctricos mantienen su utilidad como conceptos incluso después de que su uso haya desaparecido.


El autor también quisiera extender un agradecimiento especial a John T. Smith, K3GO. por su trabajo al convertir los escaneos JPG de las páginas mecanografiadas del artículo en texto con sus patadas de OCR.



Talking Box es un proyecto económico y fácil de construir que puede proporcionar prácticamente a cualquier computadora una forma de codificar digitalmente y posteriormente reproducir el habla humana o señales analógicas de frecuencia de audio similares. Para proporcionar una operación simple, el proyecto ha sido diseñado para conectarse al puerto serial de E/S de una computadora y parecer casi como si fuera simplemente un módem telefónico sincrónico. Esto da como resultado una interfaz de dispositivo fácil de conectar para una gran cantidad de aplicaciones. El circuito del proyecto utiliza la técnica de variación continua.

Modulación delta de pendiente para realizar la codificación de señales analógicas en datos binarios y luego también para decodificar estos datos binarios nuevamente en una señal analógica. Debido a esta acción de codificación/decodificación, el dispositivo se denomina común y simplemente códec.


A una velocidad de datos en serie de dieciséis kilobits por segundo (kbps), Talking Box puede grabar y reproducir voz con una fidelidad comparable a la de la mayoría de los contestadores telefónicos. Aumentar la velocidad de datos a 32 kbps, o alrededor de cuatro kilobytes de datos almacenados por cada segundo de sonido reproducido, da como resultado menos del cinco por ciento de distorsión en una señal de audio de entre 300 y 3000 Hz de frecuencia. Esto permite que el proyecto se pueda utilizar fácilmente con una computadora para reproducir y reconocer señales de tonos telefónicos, por ejemplo. Aunque el objetivo principal de este artículo es describir el diseño y la construcción del circuito Talking Box y su uso para el almacenamiento binario y la reproducción de señales de audio o voz, el dispositivo códec tiene muchas otras aplicaciones en comunicaciones, control industrial e instrumentación. Algunas de las posibles formas en que se puede utilizar el proyecto incluyen filtros digitales, control remoto de motores, codificación de señales de voz, codificación de señales transitorias para almacenamiento o visualización, compresión de amplitud de una señal, líneas de retardo digitales para reverberación, extracción y reproducción de alófonos. para formar voz sintética, codificación o decodificación de señales para módems acústicos, mensajes de datos de voz en paquetes y procesamiento o análisis de imágenes.


Principios de la modulación delta

La mayoría de los codificadores digitales toman muestras de la amplitud de una señal que varía continuamente a intervalos regulares y luego representan estas muestras mediante palabras binarias que indican su amplitud y polaridad. Por el contrario, un modulador delta genera palabras de un solo bit cuyo valor representa el error cuantificado, o "delta" (A), en una señal de seguimiento en lugar de representar el valor de la señal de entrada en sí. Técnicamente, un modulador delta es un sistema de control de datos muestreados de bucle cerrado que produce una salida binaria cuya polaridad representa la diferencia entre la señal de entrada que se está muestreando actualmente y una aproximación cuantificada de la señal de entrada anterior. Esto se logra colocando un comparador en el camino directo y un integrador en el camino de retroalimentación de un bucle de control simple. Como se muestra en el diagrama de bloques del sistema de modulación lineal delta en la Figura 1, las entradas al comparador son la señal de entrada y la salida del integrador o decodificador local.


Por tanto, la salida del comparador refleja el signo de la diferencia entre la señal de entrada y la salida del integrador. Este bit de signo controla la polaridad de la carga que se aplica a continuación al integrador y también forma la salida digital. La salida del comparador normalmente está sincronizada para proporcionar un flujo de bits digitales en serie con banda limitada y síncrona. La simplicidad del circuito requerido y la naturaleza serial de los datos de salida son las dos ventajas fundamentales del modulador delta. Si el flujo de bits en serie sincronizado resultante se entrega luego a un integrador receptor construido de manera similar como también se muestra en la Figura 1 , la salida de este integrador de decodificación será una copia de la salida del integrador de bucle de control de transmisión original. No hay información de entramado contenida en el flujo de datos en serie síncrono y la replicación de la entrada original representada por el flujo de bits del codificador comienza inmediatamente después de que estos datos se ingresan al decodificador. La fidelidad de esta copia dependerá en gran medida del grado en que el integrador transmisor rastree la señal de entrada original. Como se puede ver en las formas de onda que se muestran en la Figura 2, un diagrama de formas de onda del modulador delta lineal, la señal de retroalimentación del codificador intenta rastrear la señal de entrada en una serie de pasos en rampa cuyo tamaño es constante. Debido a que la señal de retroalimentación del decodificador local consta de pasos de tamaño constante o casi constante formados por una red lineal, este tipo de modulación delta se denomina modulación delta lineal. La presencia de estos pasos incrementales en la salida del decodificador da como resultado una señal de ruido de cuantificación denominada ruido granular. El filtrado de paso bajo en la salida del receptor eliminará la mayor parte de esta señal de ruido si la velocidad del reloj del flujo de bits está una octava o más por encima del ancho de banda de la señal de entrada. Se puede lograr una reducción adicional en el nivel de esta señal de ruido reduciendo el tamaño del paso aumentando la frecuencia de muestreo o ambas cosas.


El principal inconveniente de cualquier sistema de modulación lineal es la relativa incapacidad de dichos bucles de control, simplemente ideados, para mantener una relación señal/ruido (s/n) adecuada en un amplio rango de potencia de señal de entrada, es decir, tienen un rango dinámico limitado. En la grabación de voz, por ejemplo, los diferentes niveles de potencia encontrados en los patrones de habla de diferentes individuos darán como resultado relaciones s/n significativamente diferentes.


En un codificador de modulación delta, la información sobre la pendiente instantánea, o tasa de cambio de amplitud, de la señal de entrada se indica mediante la tasa secuencial de aparición de cada uno de los niveles de salida binarios o lógicos. Con una señal de amplitud constante y pendiente cero presente en la entrada, como se muestra en el lado izquierdo de la Figura 2, la señal de seguimiento resultante es una serie de pasos en rampa, cada uno de ellos de igual nivel pero de polaridad opuesta. Esto además da como resultado una secuencia alterna de cero-uno en la salida digital que, por lo tanto, puede verse que indica o corresponde a períodos de silencio relativo, o un nivel de amplitud constante, en la señal de entrada. Cualquier desviación de este resultado deseado durante los períodos de silencio se denomina ruido de canal inactivo y, por supuesto, provocará que se emita una señal distinta de cero desde el decodificador asociado.


Como se explicó, se generará una secuencia alterna de unos y ceros como resultado de la aplicación de una señal de entrada con pendiente cero. Pero supongamos que la pendiente de la señal de entrada cambia tan rápidamente que la señal de retroalimentación (es decir, la salida del integrador del codificador) ya no puede seguir la señal entrante. En este caso, a la salida se producirá un flujo de bits de polaridad constante. Esta condición se llama sobrecarga de pendiente y, cuando ocurre, la salida del decodificador puede ser bastante diferente de la señal original. El grado de diferencia entre la señal original y su réplica se denomina ruido de sobrecarga de pendiente. El ruido de sobrecarga de pendiente contribuye más a la distorsión de una forma de onda replicada que el ruido granular o de cuantificación y, por lo tanto, tiene un efecto mayor en la fidelidad absoluta de la forma de onda. Los oyentes humanos, sin embargo, encuentran que el ruido granular es perceptivamente más perceptible y molesto en las señales de voz reproducidas.


Por tanto, podemos ver que la relación s/n de un codificador lineal se ve directamente afectada por el nivel de potencia de la señal de entrada. A un nivel de potencia de entrada bajo, el seguimiento de la señal es deficiente porque la señal de seguimiento de retroalimentación realiza excursiones sustanciales alrededor de la señal de entrada relativamente pequeña y, por lo tanto, el tamaño de paso comparativamente grande genera cantidades significativas de ruido granular. A medida que aumenta el nivel de potencia de la señal de entrada, la relación s/n mejora linealmente a medida que el ruido de cuantificación se convierte en una parte cada vez más pequeña de la potencia total presente. La capacidad del codificador para rastrear la señal de entrada mejora progresivamente hasta que el codificador se sobrecarga ligeramente. En este punto, la relación s/n comienza a disminuir a medida que el contenido de potencia de ruido aumenta más rápidamente que el contenido de potencia de la señal. En la Figura 3, Potencia de señal y potencia de ruido en sistemas moduladores delta, se muestra una representación gráfica de estas relaciones.


Los límites de frecuencia para la señal de entrada analógica al codificador* están limitados en el extremo superior. Hay una frecuencia de reloj determinada por la frecuencia de muestreo de Nyquist que es mayor que el ancho de banda de la señal de entrada y que codificará la señal a un nivel de ruido determinado, siempre que tengamos un tamaño de paso lo suficientemente pequeño. Sin embargo, los límites de amplitud de la señal de entrada están limitados tanto en el extremo superior como en el inferior. Para cualquier nivel de señal de entrada particular, existe un tamaño de paso del integrador asociado que proporcionará la relación s/n óptima. Desafortunadamente, el tamaño de paso fijo da como resultado un valor límite relativamente pequeño para el rango dinámico útil de la señal de entrada en un codificador lineal.


Consideremos ahora la mejora en la relación s/n que resultaría si el tamaño del paso de seguimiento pudiera de alguna manera hacerse pequeño cuando la pendiente de la señal de entrada es pequeña, y luego grande cuando la pendiente se vuelve pronunciada. Esto podría lograrse ajustando la ganancia del integrador. Obviamente, la señal de retroalimentación se rastrearía mejor en un rango más amplio de niveles de potencia de entrada. Dado que el ruido de cuantificación es proporcional al cuadrado del tamaño del paso, hacer que el tamaño del paso sea adaptable a una gama más amplia de señales de entrada provocaría que la potencia del ruido varíe con la potencia de la señal de entrada en lugar de ser independiente de ella como ocurre con el delta lineal. modulación. Por lo tanto, hacer que la potencia del ruido sea proporcional a la potencia de la señal hace que la relación s/n tenga un valor constante independiente del nivel de la señal de entrada. Este es el principio de la modulación delta adaptativa. Para una frecuencia de reloj y un ancho de banda de señal de entrada determinados, el enfoque de ajustar la ganancia del integrador puede proporcionar un aumento considerable en el rango dinámico útil, como se muestra en la Figura 3.


Se han utilizado muchos algoritmos para cambiar de forma adaptativa el tamaño del paso del integrador de seguimiento, pero Talking Box emplea la técnica conocida como modulación delta de pendiente continuamente variable (CVSD). También conocida como modulación delta con compresión silábica, es un método preferido para codificar y decodificar voz u otras señales analógicas que tienen un amplio rango dinámico. Externo a los elementos operativos contenidos en el modulador delta lineal mostrado anteriormente está la implementación de un algoritmo que monitorea las salidas digitales presentes y pasadas del modulador delta y luego ajusta la ganancia del integrador del codificador en consecuencia. Como se muestra en el diagrama de bloques del sistema de modulación CVSD, Figura 4, la parte de monitoreo del algoritmo se realiza con un registro de desplazamiento simple que almacena los últimos tres o cuatro bits de salida. El algoritmo estándar aceptado proporciona una indicación cuando todos estos bits almacenados secuencialmente son del mismo nivel lógico, una condición llamada coincidencia. La aparición de una salida de verdadera coincidencia indica que la ganancia actual del integrador es probablemente demasiado pequeña para rastrear la entrada analógica. La salida de coincidencia permite que una corriente mayor cargue un filtro de paso bajo, y luego la salida de voltaje de este filtro se emplea para ajustar la magnitud absoluta de la ganancia del integrador del codificador. La mayoría de las aplicaciones utilizan un filtro de paso bajo unipolar simple con una constante de tiempo de coincidencia fija que oscila entre cinco y diez milisegundos, lo que equivale al período de tono típico del habla sonora, hasta aproximadamente cien milisegundos, lo que equivale al Duraciones silábicas típicas del habla. Por lo tanto, este filtro a menudo se denomina filtro silábico en aplicaciones de códec de voz. A menudo, el valor de la constante de tiempo se selecciona en última instancia como una cuestión de preferencia subjetiva.


Esta secuencia coincidente del algoritmo de detección de niveles lógicos es significativa, tanto por su elegante simplicidad como porque muchos otros algoritmos que utilizan el registro de desplazamiento se han probado con resultados menos satisfactorios. Con el algoritmo aceptado, la presencia de la señal de coincidencia está relacionada con la naturaleza de la envolvente de la señal de entrada y, por lo tanto, indica el nivel de potencia promedio en el tiempo de la señal en lugar de la información más instantánea sobre la pendiente de la curva de entrada que otra detección de secuencia los métodos proporcionan. El efecto del algoritmo es expandir la señal y así aumentar el rango dinámico realizable.


El algoritmo se repite en el decodificador y así los datos de nivel se recuperan en el extremo receptor. Si el flujo de datos del codificador CVSO se ingresara a un decodificador lineal, la forma esencial de la señal de entrada analógica del codificador se replicaría pero toda la salida tendría niveles iguales. El flujo de bits aparece como si viniera de un codificador lineal con un nivel de entrada constante, por lo que se requiere el algoritmo en el extremo del decodificador para restaurar las variaciones del nivel de amplitud mediante la descompansión o expansión de la señal. Es interesante observar que dado que el algoritmo opera sólo con los datos seriales pasados, es efectivamente equivalente a aumentar el contenido de información del flujo de bits sin cambiar la velocidad de bits del canal.


Por lo tanto, podemos ver que el principio de modulación delta junto con el algoritmo CVSO proporciona un método eficiente y fácil de implementar para digitalizar información analógica de frecuencia de voz en un flujo de datos en serie.


Detalles de la realización del circuito de caja parlante

Talking Box implementa el circuito electrónico codificador y decodificador CVSD utilizando el circuito integrado (IC) Motorola MC3417 o MC3418 para realizar las funciones del modulador delta. Estos circuitos integrados son bloques de construcción CVSO de uso general que permiten adaptar la realización del circuito a los requisitos particulares de una aplicación. Según Motorola, la coincidencia de corriente para el interruptor de polaridad de pendiente se recorta con láser durante la fabricación del IC MC3418 para garantizar el rendimiento del canal inactivo con un tamaño de paso mínimo de cinco milivoltios y una coincidencia de corriente típica del uno por ciento de quince microamperios a tres miliamperios. Esto permite una variación del tamaño del paso de trescientos a uno, lo que refleja la capacidad de un rango dinámico significativo de la señal analógica.


Dado que el circuito de Talking Box consta de una ruta de codificador y decodificador independiente, esto permite su uso simultáneo para enviar y recibir, lo que permite el funcionamiento dúplex completo. Tanto el codificador como el decodificador son controlados por el mismo circuito generador de reloj TTL de velocidad variable. Los elementos de soporte que consisten en un par de reguladores de voltaje y los circuitos integrados convertidores de nivel de interfaz RS232 son las únicas otras partes de la tarjeta de circuito impreso.


El circuito electrónico de la ruta del codificador se muestra en el diagrama esquemático de la Figura 5, un digitalizador de voz con códec CVSD (A/D). Como se muestra allí, el circuito se divide en cuatro áreas funcionales, comenzando con el circuito del preamplificador de micrófono, seguido por un amplificador de control automático de ganancia (AGC), un filtro de paso de banda de voz y finalmente terminando con el circuito modulador CVSD.

El preamplificador de micrófono es un circuito amplificador de entrada clásico, desequilibrado o de un solo extremo, sin transformador. Para un rendimiento de ruido óptimo con las señales de bajo nivel que se esperan de una fuente de audio como un micrófono dinámico, el diseño utiliza una configuración no inversora. Esta implementación se realiza en un cuarto de un circuito integrado de amplificador operacional (amplificador operacional) cuádruple tipo TL084 con entradas de transistor de efecto de campo (FET) de alta impedancia. El preamplificador tiene una ganancia ajustable que se puede variar mediante el uso de un potenciómetro que está conectado como resistencia de retroalimentación, denominado MIC GAIN. El amplificador también tiene una característica de caída de baja frecuencia, es decir, de paso alto, cuya frecuencia de esquina se establece mediante los valores de la combinación de resistencia/condensador en serie que van desde la entrada inversora del amplificador operacional a tierra. Esto sirve para reducir la sensibilidad de captación de zumbidos del campo de CA ambiental (normalmente 60 Hz) del preamplificador y para reducir el contenido de potencia de baja frecuencia de la señal de entrada. Finalmente, el preamplificador también tiene un condensador de pequeño valor colocado desde la entrada no inversora o de señal del amplificador operacional a tierra, que sirve para evitar el ruido de alta frecuencia no deseado que puede estar presente en el cable del micrófono. Tenga en cuenta que la resistencia de entrada en serie (100 ohmios) se puede reemplazar por un capacitor, generalmente de aproximadamente un microfaradio, para algunas aplicaciones.


Después del preamplificador de micrófono hay un circuito amplificador A6C que sirve para proporcionar compresión de nivel de la señal de audio antes de aplicarla al filtro de voz y al códec CVSD. Esta acción limita el rango dinámico de la amplitud de la señal antes de su envío al paso de banda de frecuencia y al procesamiento del codificador. El circuito AGO empleado en Talking Box es uno descrito por Jerald Graeme de Burr-Brown Research Corporation*. Su funcionamiento se basa en el uso de un FET como elemento de resistencia variable controlada en una red divisora de voltaje en T que determina el rango de ganancia y la amplitud de salida de esta etapa.

La acción del circuito AGC se realiza con el FET y dos amplificadores operacionales del mismo paquete cuádruple utilizado en parte para el preamplificador de micrófono ya descrito. El primer amplificador operacional sirve como amplificador inversor controlado por ganancia y el segundo como amplificador de detección de picos. Si el nivel positivo máximo de la señal de salida excede el valor de voltaje establecido en el brazo del limpiaparabrisas del potenciómetro de NIVEL AGC, entonces la salida del comparador de detección oscilará positivamente, aumentando el voltaje de la compuerta del FET y, por lo tanto, reduciendo su resistencia dr de entrada a fuente. . Esto, a su vez, hará que una mayor parte de la señal de entrada se desvíe a tierra, lo que en última instancia dará como resultado una reducción de la ganancia general del circuito para esta etapa. La amplitud de la señal de salida se puede configurar desde cero hasta el nivel de saturación o recorte del amplificador controlado por ganancia ajustando el potenciómetro de control AGC LEVEL que acabamos de mencionar»


Una dificultad encontrada en muchas implementaciones que utilizan el concepto de un FET como elemento de resistencia variable para señales de audio se centra en el hecho de que la resistencia del dispositivo en sí está modulada por la señal impresa a través de él. Si no se compensa adecuadamente este aspecto de las características del FET, se producirá una ganancia y distorsión dependiente del nivel de la señal. El circuito que se muestra en la Figura 5 emplea un nuevo método de retroalimentación de corrección para reducir significativamente esta modulación del nivel de señal. Como puede verse, la señal que aparece en el cable de drenaje del FET coincide con una señal en fase igual pero opuesta derivada de la salida del amplificador AGC asociado. Los valores de resistencia utilizados en el circuito se seleccionan para permitir que el FET funcione a niveles de señal pequeños; circunstancia que también ayuda a minimizar la distorsión. Como se muestra, la salida de la etapa AGC luego se aplica al filtro de paso de banda de voz que se ve a continuación en la ruta de la señal del codificador.


La etapa del circuito de filtro de paso de banda de voz permite nominalmente el paso de señales de entrada dentro de una banda de paso de frecuencia de 300 a 3000 Hz mientras rechaza aquellas que se encuentran fuera de este rango. Una de las consideraciones principales en la selección de una técnica de implementación para filtros de paso de banda es el valor de un parámetro derivado denominado ancho de banda normalizado o fraccionado. Numéricamente, es el resultado obtenido restando la frecuencia de corte inferior de -3 dB, o media potencia, de la frecuencia de corte superior de -3 dB y dividiendo además este valor de diferencia por la media geométrica de estas mismas dos frecuencias. El. La media geométrica es, por supuesto, la raíz cuadrada de este valor de diferencia recién calculado. El ancho de banda fraccional así calculado a partir de las frecuencias de corte especificadas (alta y baja) del filtro de voz del codificador tiene un valor de aproximadamente tres, encontramos que a medida que este valor calculado para el ancho de banda fraccional comienza a pasar un valor de aproximadamente 0,8 y se acerca o excede la unidad ( o un valor numérico de uno) desde abajo, generalmente se obtienen mejores resultados para el rendimiento del filtro de paso de banda a partir de secciones de filtro de paso alto y paso bajo en cascada en lugar de una implementación de paso de banda real. Este es el método utilizado en el circuito de filtro de voz del codificador.


Otra área a considerar es la necesidad de buenas características de frecuencia y respuesta transitoria para el filtro de voz. El tipo de filtro Butterworth tiene la amplitud de banda de paso más plana y al mismo tiempo proporciona una tasa de atenuación inicial moderadamente rápida. Aunque hay un cambio de fase con el cambio de frecuencia a través de la banda de paso cuando se utilizan estos filtros, es gradual y no es audiblemente perceptible. Además, este tipo de filtro tiene una baja cantidad de sobreimpulso y una respuesta transitoria aceptable. Todos estos factores se combinan para proporcionar una baja distorsión de la señal con esta variedad de filtros. Los tipos de filtro de paso alto y bajo elegidos para su uso en el codificador son filtros activos de tercer orden que exhiben una tasa de corte brusca de -18 dB por octava más allá de la frecuencia de esquina y una respuesta de frecuencia plana de potencia y voltaje con un cambio gradual en el desplazamiento de fase. la banda. El circuito electrónico particular empleado para implementar los filtros se conoce como diseño de retroalimentación múltiple de ganancia infinita y se eligió porque ofrece un buen compromiso entre complejidad y sensibilidad y dispersión del valor de los componentes. Cada sección se realiza con la mitad de un IC de amplificador operacional de entrada FET dual LM353. Estos dispositivos tienen una impedancia de entrada muy alta, una velocidad de respuesta rápida y un funcionamiento extremadamente estable con cargas capacitivas. Debido a que hay dos amplificadores operacionales inversores en cascada en el filtro, el resultado neto se aproxima a un cambio de fase cero a través de la etapa.


La señal de salida del filtro de paso de banda de voz finalmente se aplica al circuito modulador CVSD. Básicamente, toda la funcionalidad activa de esta etapa está contenida dentro del propio CI, mientras que los componentes discretos sirven para establecer los parámetros particulares de tres áreas de operación del dispositivo.


Primero, encontramos que dos diodos de silicio están conectados desde el pin 12 del IC a tierra, lo que establece el punto umbral para las entradas de señales lógicas al dispositivo a aproximadamente 1,4 voltios (aproximadamente dos caídas de diodo) sobre el suelo para usar con niveles lógicos TTL. o la interfaz RS232 ICS también en la placa.


La segunda área a considerar es la red de filtros integradores de seguimiento. El circuito Talking Box utiliza una red de filtro integrador unipolar conectada a través del amplificador integrador del decodificador local entre los pines 6 y 7 del IC. La salida

del integrador de seguimiento que aparece en el pin 7 también está conectado a una entrada del comparador de señal analógica en el pin 2. El uso de una red bipolar para este filtro puede mejorar la relación s/n en uno o dos dB con respecto al monopolar. realización del polo. Si se desea, se puede implementar una red bipolar cortando las clavijas de conexión 2 y 7 en la parte superior de la tarjeta de circuito impreso y puenteando las clavijas en el lado del conductor con una resistencia adecuada, y luego agregando un capacitor desde la clavija 2 a tierra. . La derivación de los valores necesarios de los componentes se explica en la hoja de datos 2 de Motorola.


Sin embargo, tenga en cuenta que el filtro unipolar que se muestra y que se utiliza normalmente ha demostrado ser completamente adecuado para la reproducción TouchTone a una velocidad de datos de 32 kbps con el dispositivo MC3417.


El área final de la operación del modulador CVSD es la red de filtro silábico y la determinación del tamaño de paso mínimo del integrador y la ganancia de bucle para el dispositivo IC. El filtro silábico es un circuito de paso bajo unipolar simple que consta de dos resistencias etiquetadas como Rs y Rp, y el capacitor Cs. Normalmente el condensador se carga mediante Rs y Rp en serie. Pero cuando la salida de coincidencia, pin 11 del IC, se vuelve verdadera, esto actúa para eliminar efectivamente la resistencia superior, Rp, de la ruta de carga para Cs y, como resultado, aumenta la corriente de carga y, en última instancia, el tamaño del paso del integrador. La resistencia Rm sirve para determinar el tamaño de paso mínimo del integrador, mientras que el valor de la resistencia Rx sirve para establecer la ganancia del bucle mediante una simple transformación lineal de corriente a voltaje. La modificación de esta relación de transformación puede dar como resultado un aumento significativo en la relación s/n pero con el consiguiente aumento en la complejidad del circuito electrónico. Por ejemplo, el uso de dispositivos de circuito activo para lograr esta función puede resultar fácilmente en 50 dB de rango de amplitud de señal útil (dinámico) con una relación s/n de 30 dB cuando se opera a una velocidad de datos de 32 kbps.


Hay tres rutas de señal de nivel lógico o digital asociadas con el funcionamiento del codificador IC CVSD. La primera de estas señales es la entrada de reloj al pin 14, que normalmente la proporciona el circuito generador de reloj que se describe a continuación. Una segunda señal lógica es la salida digital que aparece en el pin 9, que es el flujo de datos en serie real proveniente del modulador. Los bits de datos salen del dispositivo en el flanco descendente de la entrada del reloj al IC en el pin 14. La tercera y última señal lógica es la entrada forzada inactiva, pin 15 del IC, al circuito. Cuando la salida digital del pin 9 se conecta al pin 13 del IC como se muestra, se forma un flip-flop de palanca dentro del dispositivo, y al activar el pin de entrada de fuerza inactiva se produce la transmisión de un patrón de canal inactivo desde el salida digital del codificador. Esta característica permite una manera fácil de establecer la sincronización del enlace de datos o forzar un patrón de silencio desde el codificador.


Habiendo examinado así los detalles del circuito que comprende la ruta del codificador para la Talking Box, dirijamos ahora nuestra atención al diseño del circuito utilizado en la ruta del decodificador. El diagrama esquemático de toda la ruta del decodificador se muestra en la Figura 6, un generador de voz con códec CVSD (D/A). Como puede verse en este diagrama, la ruta del decodificador consta de tres etapas principales de operación, comenzando con el demodulador CVSD, seguido por un filtro de paso de banda de voz cuya salida finalmente impulsa un amplificador de salida.

Como se explicó en la sección sobre los principios de la modulación delta, la función del decodificador puede verse y entenderse como algo complementaria a la del codificador. No es sorprendente entonces que podamos notar una similitud reflejada en sus respectivos circuitos electrónicos y valores de componentes.


Por lo tanto, en el esquema de la etapa del demodulador CVSD, la función operativa y el valor de las resistencias etiquetadas como Rp y Rs junto con el capacitor Cs es completamente análogo a la función operativa y el valor de esos componentes etiquetados idénticamente en la Figura 5, el diagrama de la ruta del codificador. circuito. De manera similar, las resistencias etiquetadas como Rx y Rm sirven de manera análoga a sus complementos etiquetados idénticamente en la implementación del codificador. De manera similar, incluso los componentes que forman la red de filtros integradores del decodificador para el demodulador CVSD son análogos a los que se encuentran en el circuito modulador. Finalmente, los niveles de umbral lógico para el CI decodificador también se establecen mediante la caída a través de un par de diodos de silicio como se hace con el CI codificador.


Sin embargo, en la ruta del decodificador sólo hay dos rutas de señales digitales asociadas con el circuito. Hay una entrada de reloj que normalmente es impulsada por el mismo circuito generador de reloj TTL utilizado para la función de codificación. Esta señal se aplica al pin 14 del decodificador IC y sincroniza los bits de datos que luego aparecen cada uno por turno en la entrada digital, pin 13, en el IC.


La salida de la etapa demoduladora CVSD es, por supuesto, una copia sin filtrar de la señal analógica original que una vez fue introducida en la ruta del codificador. A continuación se aplica al filtro de paso de banda de voz de la ruta del decodificador que sirve para eliminar el ruido granular o de cuantificación descrito anteriormente. La realización del hardware es esencialmente idéntica a la empleada en la ruta del codificador, salvo que se ha invertido el orden en cascada de los circuitos de paso alto y paso bajo. En el filtro decodificador, el primer objetivo es eliminar el ruido de cuantificación tanto como sea posible, por lo que la función de paso bajo se coloca primero y más cerca de la entrada de la etapa de filtro (y por lo tanto también de la salida del decodificador) para maximizar este atenuación.


Después del filtro de voz en la ruta de la señal del decodificador se muestra el tercer y último circuito decodificador, el amplificador de salida. Como su nombre lo indica, esta etapa amplifica la señal de audio que sale del filtro de voz. Un par de transistores bipolares de silicio complementarios están conectados como dispositivos buffer para mejorar la capacidad de salida de potencia del IC del amplificador operacional LF356 utilizado en este circuito. Se proporciona un control de ganancia (o NIVEL DE SALIDA) en forma de potenciómetro en la ruta de retroalimentación, pero el valor de la resistencia que va desde la entrada no inversora del IC del amplificador operacional a tierra también se puede modificar para ajustar el rango de la salida. nivel. En última instancia, la señal amplificada se acopla a través de un condensador electrolítico de gran valor al primario del transformador de salida. La señal desarrollada a través del secundario es entonces la salida final de la ruta del decodificador, que completa la descripción de esta parte de los circuitos electrónicos.


Como se mencionó anteriormente, además de los circuitos de ruta del codificador y ruta del decodificador que se acaban de describir, el otro elemento principal del circuito de Talking Box es el generador de reloj utilizado para controlar la sincronización de estos dos primeros. El diagrama esquemático de este circuito se muestra en la Figura 7, un circuito generador de reloj TTL de frecuencia seleccionable. Como se puede ver allí, este circuito consiste esencialmente en un oscilador controlado por cristal que acciona una cadena divisora programable cuyo módulo de división está determinado por el valor establecido en un interruptor DIP asociado. Por tanto, el divisor programable se configura muy fácilmente para una amplia gama de velocidades de reloj de datos y, de hecho, para mayor flexibilidad, esta velocidad de reloj puede disponerse para que sea seleccionable por el ordenador asociado a través de la interfaz de conexión.


Los componentes finales del circuito electrónico en la placa de circuito impreso son los elementos de soporte que consisten en los reguladores de voltaje positivo y negativo y los circuitos integrados convertidores de nivel RS232 utilizados por la interfaz de la computadora. En la Figura B se muestra un dibujo esquemático que incluye estas piezas, el diagrama de circuitos de interfaz RS232 y reguladores de voltaje.


Habiendo visto así cómo funcionan los moduladores delta en general y luego cómo funciona éste en particular, veamos ahora cómo se realiza y construye físicamente el hardware real.


Construcción Física del Proyecto Talking Box

Todos los circuitos electrónicos que se acaban de describir están contenidos en una única placa de circuito impreso de doble cara. Un lado de esta placa se utiliza principalmente como plano de tierra que permite la colocación cercana y la combinación de circuitos digitales y analógicos. En la Figura 9, el diseño de la placa de circuito impreso del códec CVSD, se muestra una imagen positiva de las trazas del circuito en ambos lados de la placa de cableado impreso. Observe que, si bien la tarjeta tiene dos caras o tiene rutas conductoras tanto en el frente como en la parte posterior del tablero, el diseño es tal que no requiere el uso de orificios pasantes chapados o conductores para conectar los dos lados. Por supuesto, esto se hace para permitir al experimentador una duplicación fácil y económica de la placa de circuito sugerida para su uso en el proyecto. Las placas de circuito terminadas con orificios pasantes chapados y copias en película del diseño están disponibles como se muestra en la lista de piezas.


Observe que los objetivos de alineación se proporcionan en las áreas periféricas a los lados de los diseños de circuito delantero y trasero. Primero, levante esta obra de arte como una imagen cinematográfica para cada lado (generalmente como negativo) asegurándose de incluir estos objetivos en cada caso. Luego, utilizando estos objetivos, alinee las imágenes de la película frontal y posterior una encima de la otra y fíjelas entre sí. Ahora perfore tres orificios de registro separados a través de ambas hojas de película simultáneamente con una perforadora de papel redonda. Tenga cuidado de perforar un lugar fuera de las áreas del arte del circuito. La presencia de estos orificios de registro servirá entonces para permitir que las hojas de película frontal y posterior se alineen entre sí mediante pasadores adecuados colocados a través de estos orificios mientras se coloca entre ellas un trozo de material de placa de circuito a exponer en forma de sándwich. moda, asegurando así un fácil registro de adelante hacia atrás de los dos lados de la tarjeta de circuito. Estas clavijas de registro, de tamaño preciso, están disponibles comercialmente en casas de suministro de circuitos impresos, pero la experiencia demuestra que un lápiz o una clavija adaptada al tamaño adecuado servirán bien para este propósito si no se dispone de algo como una varilla preformada del tamaño adecuado. Un tamaño de broca del número 68 es adecuado para la mayoría de los agujeros soportados, es decir, aquellos por los que pasa un componente conductor. Las excepciones son los orificios de montaje del regulador, que son el número 37, y los orificios de montaje del conector phono, que tienen un diámetro de 3/16 de pulgada.


Se utilizan dos diagramas para mostrar los detalles de montaje y ensamblaje de los componentes de la placa de circuito impreso. El primero de ellos, la Figura 10, el Diagrama de ensamblaje de componentes de la placa de circuito del códec CVSD, muestra la ubicación de las piezas tal como se montarán y soldarán a la placa y también muestra la ubicación de varios puntos etiquetados en los esquemas, algunos de Estas ubicaciones de circuitos etiquetados sirven como conexiones para usar como puntos de prueba, mientras que otras permiten sujetar varias opciones de configuración.


El segundo diagrama. La Figura 11, el diagrama de ubicaciones de los 'cables Z' de la placa de circuito del códec CVSD, detalla la ubicación de los orificios en la placa de circuito que deben soldarse en la parte superior o en el lado del componente de la tarjeta. Tenga en cuenta que este paso es necesario sólo si no hay orificios pasantes enchapados en el tablero y si el tablero que se muestra en la lista de piezas tiene dichos orificios. Si hay un cable de componente en la ubicación de este orificio, sueldelo en ambos lados de la placa. Si no hay ningún cable de componente a través de este orificio, pase un cable a través del orificio y el remachador y suéldelo a la placa en ambos lados. Este método de lograr una vía o camino conductor de un lado de una placa de circuito a otro a menudo se denomina "cable Z" debido a la apariencia tosca del puente con esa letra, de ahí el título de la Figura 11. Observe que ninguno de los Los orificios que, por lo tanto, deben soldarse en el lado del conductor de la placa de circuito son ciegos, es decir, inaccesibles con los componentes montados. Esto permite que los circuitos del proyecto se ensamblen fácilmente con una placa impresa casera que no requiere orificios pasantes chapados y muy pocos puentes.


El conector RS232 en sí debe tener la fila superior de pines, es decir, los números del uno al trece, soldados en la parte superior o del lado componente de la placa, mientras que la fila inferior, los pines del doce al veinticinco, deben soldarse en el lado superior. parte posterior del tablero.


Operación de la interfaz informática para el proyecto Talking Box

Ahora que hemos visto los principios electrónicos del funcionamiento del CVSD y cómo se construye físicamente la placa de circuito del proyecto, la siguiente área que examinaremos es el software necesario para conectar el dispositivo a una computadora asociada.


Como se mencionó en la introducción, Talking Box aparece esencialmente como si fuera un módem sincrónico para la computadora de soporte conectada. Hasta ahora hemos descrito cinco rutas de señales digitales que entran y salen del circuito del proyecto. Por supuesto, estas eran las dos rutas de datos, una hacia el decodificador y otra desde el codificador; las dos señales de reloj asociadas; y la entrada de fuerza inactiva al codificador. Algunas otras señales de interfaz física opcionales se describen en la siguiente sección sobre ejemplos de aplicaciones. Sin embargo, dado que las explicaciones que siguen inmediatamente se refieren únicamente a los aspectos programáticos de la operación de intercambio de datos en sí, ahora se supone que sólo estas cinco líneas de señal están conectadas hacia y desde un puerto de E/S serie en una computadora asociada. Los detalles de hardware de esta interconexión se muestran en detalle en la Figura 12, Esquemas de cableado del dispositivo SIO para uso de placa CVSD.


En el curso de la siguiente discusión, nos referiremos a las rutinas de software que se muestran en el Listado 1, titulado Programa de controlador CVSD. Este listado de programas contiene tanto el módulo de rutinas necesario para controlar un dispositivo de E/S serial compatible con Intel 8251, es decir, USART, como el módulo necesario para controlar un dispositivo de E/S serial compatible con Zilog SIO. Con la elección adecuada del módulo controlador, cualquiera de estos dispositivos puede operarse fácilmente en un modo sincrónico adecuado a los requisitos de Talking Box. El código fuente está escrito íntegramente en lenguaje ensamblador Intel 8080 y la elección del uso entre módulos se realiza mediante declaraciones equivalentes.


Tanto el módulo controlador de software USART como el SIO contienen cada uno cuatro rutinas principales, o puntos de entrada, que están directamente relacionados con el intercambio de datos de la computadora con el codificador/decodificador. Estos cuatro puntos de entrada son la rutina INUART, las rutinas SERIN y SEROUT y la rutina GETSYNC.


Antes de su primer uso para transferir datos en cualquier dirección, el usuario primero debe inicializar o configurar el software el dispositivo de E/S serie para que funcione en modo síncrono. Esto se logra mediante una llamada a la rutina denominada INUART. En cualquiera de los módulos, esta secuencia de instrucciones sirve esencialmente para cargar los registros de control del dispositivo de E/S de modo que hagamos que funcione con caracteres de datos de ocho bits (de ancho de byte) sin agregar ningún bit de paridad, y para que utilice un un solo carácter como plantilla para que un patrón coincida dentro del flujo de bits en serie (a menudo llamado carácter SYNC) para asumir que se ha encontrado sincronización en un límite de caracteres (llamado detección de sincronización).

Tenga en cuenta que en la mayoría de las comunicaciones síncronas no hay bits de entramado de caracteres, como los bits de inicio y parada que son familiares en los protocolos de comunicaciones en serie asíncronos u orientados a caracteres. en cambio, cada bit que forma un carácter se transfiere a su vez dentro o fuera del dispositivo en serie mediante una señal de temporización presentada en una ruta de conector de señal separada y los límites de los caracteres se determinan contando el número apropiadamente definido de bits por carácter a partir del reloj de entrada. flujo de bits. La mayoría de las aplicaciones de transferencia de datos "reales" o de módem telefónico síncrono envían y reciben los caracteres de datos en bloques con pausas entre estas transferencias para resincronizaciones periódicas del flujo de datos y para permitir cosas como la verificación de errores del contenido de cada bloque. Entonces, por razones obvias, los métodos síncronos a menudo se denominan protocolos de comunicaciones en serie orientados a mensajes.


Una vez que el dispositivo SIO o USART se inicializa y luego se pone en funcionamiento, ambos siguen siendo relativamente fáciles de controlar mediante software. En ambos casos, las rutinas SERIN (obtener un carácter del puerto) y SEROUT (enviar un carácter al puerto) son las mismas que podrían ser para una aplicación asincrónica simple. Por lo tanto, las rutinas de entrada y salida de caracteres implican sólo la prueba en bucle de un nivel de bit dentro de un byte de estado que se lee repetidamente desde el dispositivo de E/S para determinar si un carácter está listo para ser aceptado o entregado. Cuando finalmente se cumple esta prueba, el carácter en sí se lee o se escribe en el puerto serie antes de salir de la rutina y regresar a la persona que llama.


La rutina del controlador restante es la etiquetada GETSYNC. Una vez más, la rutina cumple prácticamente la misma función para cualquiera de las opciones de dispositivo de E/S. Este punto de entrada generalmente se llama al comienzo de un ciclo de grabación para iniciar realmente la entrada de datos de audio desde el codificador. En esta tarea, la rutina primero sirve para mantener verdadera la entrada forzada inactiva al codificador, lo que hace que el codificador genere la misma salida de secuencia de bits alterna uno-cero que representa el silencio, hasta que el dispositivo de E/S serie detecta la cadena de bits que coincidan con el carácter de sincronización. Cuando se satisface la prueba de la presencia de este carácter, la línea de señal de inactividad forzada se devuelve inmediatamente como falsa, lo que permite que el codificador comience a enviar datos de audio al puerto serie, que luego se configura para recibir estos datos antes de que finalmente se salga de la rutina. Tenga en cuenta que, para algunas aplicaciones, el valor de este patrón de bits utilizado, es decir, el carácter de sincronización, se puede cambiar para luego permitir el inicio de la grabación de audio en la detección del hardware de una secuencia coincidente correspondiente a un determinado lugar en una forma de onda de señal, por ejemplo.


Un programa de aplicación solicita estas cuatro rutinas primitivas del controlador de hardware para realizar la tarea de transferir físicamente los datos de audio dentro y fuera de la computadora. En la siguiente sección se muestran algunos ejemplos de aplicaciones que utilizan estas rutinas con la placa de proyecto y una computadora de soporte.


Algunos ejemplos de aplicaciones específicas

El programa de demostración Talking Box utilizado por el autor emplea estas rutinas de controlador que se acaban de describir y permite la ejecución selectiva de tareas desde el menú de comandos que se muestra en la Figura 13, el menú de comandos del programa de demostración de la placa de circuito del códec CVSD. El programa se ejecuta bajo el sistema operativo CP/M y ha sido probado en un sistema de microcomputadora basado en 8080 (homebrew) y Z80 (Televideo TS802H). El código fuente ensamblador de este programa se muestra en el Listado 2, el Programa de demostración de la placa de circuito del códec CVSD. [-inclusión opcional]


Como se puede ver en esta tabla de comandos, el programa está configurado para permitir al operador grabar y reproducir audio desde el par de micrófono y altavoz local o desde la línea telefónica. El acuerdo de interconexión utilizado para conectar el programa de demostración y la computadora con Talking Box a la red telefónica conmutada se basa en un dispositivo llamado Acuerdo de Acceso a Datos o DAA. El dispositivo particular utilizado por el autor es un acoplador de datos Bell Telephone tipo 1001F más antiguo (de 1976), aunque se pueden conseguir módulos híbridos registrados FCC Parte 68 más nuevos que duplican su función DAA por algo menos de veinte dólares en empresas como Cermetek (CH1810). Direct Connect Protective Hybrid, o DCPH, ver referencias). Estos módulos proporcionan conexiones funcionales idénticas, pero son significativamente más pequeños en tamaño y mucho mejores en cuanto a la comodidad de uso, ya que están pensados para montarse dentro de un dispositivo en lugar de colgarlos en la pared en un gabinete separado. Tenga en cuenta que los módulos DCPH emplean rutas de señal de nivel lógico CMOS, mientras que el DAA tiene requisitos de nivel de señal RS232. Tanto el DAA como el DCPH pueden proporcionar una indicación de que el teléfono está sonando y permitir que la computadora controle el estado de colgado/descolgado (o respuesta/colgado) del dispositivo y controle su aplicación o recepción de audio hacia y desde la línea telefónica. Ambos proporcionan el llamado temporizador de retardo de facturación, protección contra sobrecarga de señal, aislamiento y protección de línea y la capacidad de tomar y marcar pulsos en la línea telefónica, es decir, realizar llamadas. El cableado físico utilizado para conectar el DAA o DPCH y la Talking Box a la computadora host se muestra en la Figura 14, un diagrama de cableado de la placa CVSD y la DAA a la computadora.


Además de permitir que la computadora grabe y reproduzca audio tanto localmente como desde el teléfono, el programa de demostración proporciona rutinas para mostrar y alterar el contenido del área de memoria que representa la señal de audio, para borrarlo todo a algún carácter preestablecido (SYNC). valor, y también para guardar o cargar el contenido de esta memoria de audio desde las unidades de disco del sistema del ordenador host. También permite inicializar el puerto de E/S serie utilizado por el proyecto, cambiar el valor del carácter SYNC y configurar una señal de salida de control definida por el usuario (llamada Bit de bandera) alta o baja. Esta señal de salida se puede utilizar para seleccionar entre un par de velocidades de reloj en serie de codificación/decodificación bajo el control de la computadora, como se muestra en las Figuras 7 y 8. Finalmente, el programa también proporciona una señal de pulso de sincronización que se emite al comienzo de cada ciclo de reproducción. para permitir cosas tales como activar la visualización de un osciloscopio.


Obviamente, el programa y algunas de sus rutinas pueden proporcionar el núcleo para una serie de aplicaciones útiles del dispositivo. Algunas de las numerosas funciones que el sistema de proyecto puede realizar inmediatamente incluyen su uso como sistema computarizado de mensajes de audio electrónicos o contestador automático, su uso para extraer y reproducir alófonos (o ejemplos de fonemas dependientes del hablante) como una muestra de datos del habla almacenada, y su uso para almacenar y luego mostrar (en un osciloscopio) cosas tales como estos alófonos o señales transitorias de frecuencia de audio para su análisis, y su uso para almacenar palabras o declaraciones completas en el disco para su posterior reproducción.


Por lo tanto, podemos ver que Talking Box es un proyecto fácil de construir y usar para digitalizar y reproducir voz u otras señales de audio con una computadora.


Expresiones de gratitud

El autor quisiera agradecer especialmente a los Sres. WH Kerr, EP Norwood y CP Quinn por su invaluable apoyo y contribuciones para la realización de este proyecto.





Con esto concluye el artículo adquirido por la revista Radio Electronics. A continuación se muestra una copia de la hoja de datos del códec CVSD de Motorola. Este documento es muy interesante e informativo.


Conclusión

Esperamos que haya encontrado alguna utilidad o interés en nuestra regla presentada anteriormente ☺ Hablando en serio, siempre se agradecen los comentarios, críticas y sugerencias. Dios bendiga a todos.