jueves, 3 de abril de 2008

Diagramas de bloques

Posto que o que se pedía era unha lista de bloques necesarios, así como as súas entradas, saidas e interconexións, o máis sinxelo para nós resulta ir creando as entidades en VHDL e xuntalas nun schematic, que da unha visión global moi clara do que se pretende.
Nunha primeira aproximación ao problema dividímolo en 3 bloques, un encargado do teclado, outro de xerar a suma dos tonos e outro encargado de enviar vía serie os datos ao DAC. A interface co exterior está ben definida, máis sen embargo, pode chegar a ser necesario incluir algunha outra saida a nivel constante.


Tanto o bloque de control do teclado como o de control do DAC están desenvolvidos na web do DTE, pero non se adaptan ao que consideramos máis optimizado para esta aplicación en concreto, así que adaptarémolos modificando lixeiramente a súa arquitectura externa: so empregaremos unha saida analóxica do convertidor, así como non se precisa realizar a conversión de filas e columnas a hexadecimal dentro do controlador do teclado.
O bloque importante é o central, que nun seguinte nivel de abstracción podemos dividir nos seguintes subsistemas:
Aquí unha máquina de estados (da que posteriormente engadiremos o diagrama de estados) encárgase dar a orde de inicialización dos osciladores cando a tecla é pulsada. A partir de entón indícalles mediante o sinal xera_mostra cando deben calcular a seguinte mostra, que ven sendo no seguinte instante de mostreo. Para temporizar o período de mostreo emprega un contador auxiliar provisto dun combinacional. O sumador final encárgase de que o que vaia para o DAC sexa a suma de ambos tonos, un correspondente ás filas e outro ás columnas.
Os osciladores están constituidos internamente por unha memoria ROM de coeficientes, que en principio implementaremos coma memoria distribuida debido ás súas pequenas dimensións(96x12bits), dous rexistros e un filtro IIR inestable. O funcionamento do mesmo xa foi verificado en Matlab con anterioridade, e cremos que constitúe a solción óptima, inda que seguramente precise ser modificado para funcionar correctamente en punto fixo.

martes, 4 de marzo de 2008

Especificación del sistema

Especificación


Resumen


Se propone diseñar e implementar un sistema de marcado DTMF (dual tone multifrequency) para teléfono en una FPGA Spartan 3 montada en la placa S3 también de Xilinx, el cual explora un teclado matricial 4x4 y genera una señal analógica constituida por dos tonos.

Teclado


El sistema empezará a generar la señal correspondiente en el momento de pulsar la tecla y terminará en el momento de liberación de la misma, con lo cual el estado del circuito viene determinado únicamente por el teclado y en principio no se necesitarán entradas de control adicionales como reset, habilitaciones, etc.

Señales a generar


Las señales estarán constituidas por la suma de dos tonos de igual amplitud y cuyas frecuencias están especificadas en la siguiente tabla:





Debido a que la frecuencia máxima es de 1633 Hz, la frecuencia mínima de muestreo será de 3266 Hz, pero se estudiará la posibilidad de sobremuestreo con el fin de reducir la distorsión a la salida del convertidor.
La aritmética empleada será de punto fijo de 12 bits como mínimo, pero se estudiará el empleo de precisión extendida si el funcionamiento de los osciladores digitales lo requiere.

Convertidor digital-analógico


El convertidor empleado será el DAC121S101, que figura en el módulo PMOD DA2 de digilent. La señal de entrada digital es de 12 bits y la señal analógica de salida varía en el rango 0 a 3.3 V.
En una primera etapa de la implementación visualizaremos la señal analógica en un osciloscopio y cuando sea correcta se probará con un altavoz. En último lugar se probará conjuntamente con el proyecto de decodificación de tonos conectando la salida del conversor digital-analógico a la entrada de su sis