Download FichaProyecto

Document related concepts
no text concepts found
Transcript
Proyecto Lenguaje
Ensamblador
Integrantes:
Miriam Pastrana Brito
Víctor Manuel Rodríguez Bahena
Erendira Victoria Sánchez Montes de Oca
376401 ITE
378087 IMT
377891 ITE
5to semestre
5to semestre
4to semestre
Objetivos
• Objetivo general del proyecto
– Digitalizar voz haciendo interfaz con el
micrófono y la tarjeta de sonido
• Objetivos específicos del proyecto
– Capturar la voz del usuario a través del
micrófono
– Digitalizar la voz a través de la tarjeta de
sonido
– Generar un archivo de sonido: crear un
archivo .wav para reproducir el sonido.
• Una tarjeta de sonido es una tarjeta de
expansión para computadoras que permite
la entrada y salida de audio bajo el control
de un programa. La mayoría de tarjetas de
sonido implementan cuatro funciones
básicas:
• Reproducción
• Captura
• Síntesis
• Procesamiento de sonido
Reproducción
• La tarjeta debe ser capaz de
reproducir audio, ya sea desde
lectores de CD o DVD, o desde
ficheros almacenados en el disco
duro, usando formatos
estándares como
–
–
–
WAV
MP3
MIDI
Captura
• Esto incluye capturar sonidos
mediante un micrófono, o introducir
sonido desde cualquier otra fuente
(instrumentos musicales,
reproductores de cintas, etc.). La
información queda almacenada,
generalmente, en el disco duro del
PC en forma de ficheros.
Síntesis y Procesamiento
• La síntesis de audio, o lo que es
lo mismo, la creación de sonido y
el procesamiento de sonidos
existentes exigen capacidad de
procesamiento a la tarjeta
ahorrando todo ese trabajo a la
CPU.
Modo de
funcionamiento
• La tarjeta de sonido está formada
por tres subsistemas: el convertidor
analógico/digital
(CAD),
el
procesador digital de señales (DSP,
Digital Signal Processor) y el
convertidor digital/analógico (CDA).
Puertos de la Tarjeta
de Sonido
• La tarjeta de sonido tiene puertos sobre los
que puede funcionar.
• De todos los puertos de la tarjeta de sonido el
más importante es el puerto BASE.
• Así se tiene el siguiente rango de posibles
puertos a elegir:
210h 220h 234h 240h 250h 260h
Desde este puerto parten los otros puertos de entrada y salida de la
tarjeta, los cuales están siempre a la misma distancia numérica del
puerto base
Tabla de puertos del DSP
02x6h
DSP Reset Port
Sólo escritura
02xAh
DSP Read Data Port
Sólo lectura
02xCh
DSP Write Data, Command
Escritura
02xCh
DSP Write Buffer Status (bit 7)
Lectura
02xEh
DSP Data Available Status (bit 7)
Sólo lectura
Programación de la
Tarjeta de Sonido
Hay dos modos de
programación de la tarjeta de
sonido:
• Temporizador del PC (Timer)
• Acceso directo a memoria (DMA)
Generación de Sonido
por el Temporizador
• Crear una rutina que envíe un byte de un puntero al puerto de
escritura de la tarjeta de sonido: de esta manera cada vez que se
llame al timer (18,2 veces por segundo) se enviará sólo un byte del
puntero que contiene el sonido digitalizado (un número de 8 bits).
• Reprogramar el temporizador para que se ejecute más de 18,2
veces.
– Frecuencia de muestreo
• Repetir la rutina en la interrupción 8h: El temporizador
interrumpe a la CPU para realizar una operación extremadamente
lenta como es enviar un byte al puerto de la tarjeta de sonido.
Generación de Sonido
a través del DMA
• Como se ha visto, la técnica anterior es válida
si se tiene una pantalla fija y se quiere que a
la vez suene un programa de muestra. Pero
en el momento en que se quieren hacer dos
cosas que necesiten al procesador al mismo
tiempo, la técnica del timer no vale,
sencillamente porque no es óptima.
Las transferencias por DMA (Direct Memory Access)
permiten liberar a la CPU de todo el trabajo. Esto es
posible porque la tarjeta de sonido incorpora un chip
DSP que trabaja por sí solo.
• Para transmitir un bloque de
memoria de una dirección a otra
mediante DMA, se debe decir al
DMA la "página" de memoria y el
"desplazamiento" de memoria
donde se encuentra el bloque a
mover.
• Se debe configurar el DSP para
que vaya leyendo los bytes que le
llegan por DMA y los vaya
interpretando por su DAC. De esta
manera se escuchará el sonido.
• Pero antes de hacer esto, se debe decir al DSP
la frecuencia de muestreo a la que debe
reproducir el sonido. No basta con decirle la
frecuencia en Hertz, sino que se debe usar la
fórmula:
FrecuenciaDSP = 256- (1000000-FrecuenciaHertzios)
• Luego, se le envía este valor resultante al DSP.
Para escribir cualquier tipo de valor en el DSP se
usan los puertos de la tarjeta de sonido.
• Para escribir cualquier tipo de
valor en el DSP deberemos usar
los puertos de la SB antes
mencionados.
•
Envio:
mov dx,WPORT
in al,dx
and al,0x80
cmp al,0
jnz Envio
mov al,byte ptr valor
out dx,al