首页> 外文OA文献 >Diseño e implementación hardware de un sintetizador digital modular de audio
【2h】

Diseño e implementación hardware de un sintetizador digital modular de audio

机译:模块化数字音频合成器的设计和硬件实现

摘要

El objetivo del presente trabajo es la implementación de un sintetizador de audio modular en un sistema compuesto por dos subsistemas: un dispositivo digital configurable tipo FPGA (Field Programable Gate Array) “Spartan 3” y un microcontrolador “ATmega644PA”. udLa descripción del circuito digital de la FPGA se ha implementado utilizando lenguaje VHDL mientras que el código de programa del microprocesador ha sido tratado utilizando lenguaje C++. udEl sistema completo se ha implementado en la placa integrada “Nonaina”, diseñada por el DAIEEI (Departamento de Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial) de la ETSII, que contiene ambos dispositivos: la FPGA Spartan y el microcontrolador AVR. udEsta implementación sirve actualmente como ejemplo y base práctica para la asignatura “Arquitectura de sistemas digitales”, perteneciente al Máster en Ingeniería Industrial de la ETSII (Escuela Técnica Superior de Ingenieros Industriales). udEl método de síntesis de audio escogido es la síntesis modular substractiva, consistente en la generación de ondas de gran riqueza en armónicos que son posteriormente filtradas mediante una o varias etapas de filtrado, normalmente tipo paso-bajo. udEl proceso de generación de las formas de onda escogido es el método conocido como DDS (Digital Direct Synthesis) o síntesis de tabla de ondas. Este método consiste en utilizar una tabla que contiene los valores de la amplitud de la onda buscada a lo largo de un periodo, y mediante un contador, recorrer esta tabla, obteniendo la representación digital de la onda escogida. Es un proceso sencillo, que permite fácilmente las modificaciones o ampliaciones del sistema, al sólo deberse cambiar las tablas de ondas correspondientes. udTodos los procesos llevados a cabo para generar las ondas y su tratamiento se han realizado en la FPGA. Como otras características del sistema de síntesis desarrollado se puede destacar: ud• Posee una polifonía máxima de tres voces, es decir que permite producir tres notas diferentes al mismo tiempo. ud• Los generadores de onda trabajan con cuatro tipos distintos de ondas: senoidal, cuadrada, triangular y dientes de sierra. ud• Posee dos filtros de paso-bajo digitales de un polo. ud• Posee un generador de envolvente de cuatro parámetros, módulo encargado de variar la amplitud global de la onda generada por cada oscilador de una manera determinada a lo largo del tiempo. ud• Posee dos osciladores de baja frecuencia (LFO, Low Frequency Oscillator) que permiten modular la amplitud y la frecuencia de las ondas generadas mediante la amplitud una onda senoidal de baja frecuencia (menor que 30 Hz). udPor otro lado, el sintetizador es controlado por medio de mensajes serie MIDI a través de una conexión USB con un ordenador. Para gestionar dicha comunicación MIDI se utiliza un microprocontrolador de AVR “Atmega644PA”. Otra función implementada en el sistema microprocesador es la gestión de la polifonía de las notas, es decir, la coordinación de la activación y desactivación de los generadores de onda del sintetizador. udLa salida de audio digital del sintetizador se debe transformar a una señal de audio analógica mediante un conversor digital-analógico (DAC, Digital to Analog Converter). El método de conversión escogido es la regulación del valor medio de una señal periódica de ciclo de trabajo variable (PWM, Pulse Width Modulation). 4.1 y 4.7 udLa implementación del PWM se realiza utilizando un contador de 8 bits que se incrementa a la frecuencia de reloj de la FPGA, 50 MHz. La generación de este PWM genera una componente armónica adicional en la señal de salida, a una frecuencia de 195.3 kHz. udLa salida del sistema pasa por un sencillo circuito de filtrado analógico, compuesto por un filtro paso-bajo y un filtro paso-alto. El filtro paso-bajo es utilizado para filtrar la componente de alta frecuencia proveniente de la generación del PWM, mientras que el filtro paso alto sirve para filtrar la componente continua de señal. Esta señal analógica puede conectarse a unos altavoces amplificados a través de una conexión hembra tipo jack de 3.5 mm, también integrada en el circuito analógico. udEl desarrollo del proyecto se comenzó con un análisis teórico del problema, seguido de la realización de un primer prototipo del sintetizador en una placa Arduino Duemilanove. A continuación se realizó el programa en el microprocesador y la descripción VHDL en la FPGA y por último la programación del microprocesador. udLa fase de pruebas del sistema se ha dividido en dos bloques principalmente: simulaciones y pruebas físicas. Las simulaciones de la implementación VHDL han sido llevadas a cabo con el programa Vivado, de Xilinx. Posteriormente, las pruebas físicas del sistema han sido realizadas utilizando un osciloscopio y unos altavoces. Con el osciloscopio se han observado y cuantificado las propiedades de las formas de onda generadas, mientras que a través de los altavoces se han realizado las pruebas de sonido del dispositivo. udLos resultados obtenidos resultan en general exitosos. Respecto a la implementación VHDL, se han utilizado aproximadamente un 60% de los bloques de lógica programable disponibles en la FPGA. Cabe destacar que se han implementado algunas medidas para ahorrar recursos, como son la compartición de operadores, y el uso de un único divisor de frecuencia común para generar todas las señales de reloj necesarias. udEn el programa del microprocesador se han utilizado los siguientes porcentajes de memoria de la disponible en el dispositivo: un 4.1% de la memoria de programa y un 4,7% de la memoria de datos. udPara implementar la descripción del circuito digital así como las simulaciones se han utilizado los programas ISE y Vivado, de Xilinx. El programa ISE ha servido para cargar las implementaciones VHDL en el dispositivo, mientras que el programa Vivado ha sido empleado para obtener las simulaciones de los módulos. El microprocesador se ha programado usando el programa AtmelStudio7, y un programador AVR Dragon. Para las pruebas iniciales se usó una placa Arduino Duemilanove, programada a través de la interfaz propia Arduino IDE.
机译:这项工作的目的是在由两个子系统组成的系统中实现模块化音频合成器:一个可配置的数字设备类型FPGA(现场可编程门阵列)“ Spartan 3”和一个微控制器“ ATmega644PA”。 udp FPGA数字电路的描述已使用VHDL语言实现,而微处理器程序代码已使用C ++语言处理。 udud完整的系统已在ETSII的DAIEEI(自动化,电气工程与电子学和工业计算部门)设计的集成板“ Nonaina”中实现,该板包含两个设备:Spartan FPGA和AVR微控制器。 ud此实现目前作为“数字系统体系结构”主题的示例和实践基础,该主题属于ETSII(工业工程师高级技术学院)工业工程硕士。 ud选择的音频合成方法是减法模块化合成,包括生成高度谐波丰富的波,然后通过一个或多个滤波阶段(通常为低通类型)对它们进行滤波。 ud选择的波形生成过程是称为DDS(数字直接合成)或波表合成的方法。该方法包括使用一个表,该表包含一个周期内搜寻波的幅度值,并使用一个计数器浏览该表,以获取所选波的数字表示形式。这是一个简单的过程,只需更改相应的波表即可轻松地进行系统的修改或扩展。 ud生成波的所有过程及其处理均在FPGA中进行。作为已开发的合成系统的其他特征,可以突出显示以下内容: ud•它具有最多三个语音的复音,也就是说,它可以同时产生三个不同的音符。 ud•波浪发生器可处理四种不同类型的波浪:正弦波,方波,三角波和锯齿波。 ud•它具有两个单极数字低通滤波器。 ud•它具有一个带有四个参数的包络发生器,一个模块负责随时间以某种方式改变每个振荡器产生的波的整体振幅。 ud•它具有两个低频振荡器(LFO),它们可以通过低频正弦波(小于30 Hz)对振幅产生的波的振幅和频率进行调制。 ud另一方面,通过MIDI串行消息通过与计算机的USB连接来控制合成器。为了管理此MIDI通信,使用了AVR微控制器“ Atmega644PA”。在微处理器系统中实现的另一功能是对音符的复音的管理,即,对合成器的波发生器的激活和去激活的协调。 ud必须使用数模转换器(DAC)将合成器的数字音频输出转换为模拟音频信号。选择的转换方法是调节周期可变占空比信号(PWM,脉宽调制)的平均值。 4.1和4.7 ud使用8位计数器执行PWM的实现,该计数器增加到FPGA时钟频率50 MHz,该PWM的产生在输出信号上以一定频率产生附加的谐波分量。 195.3 kHz。 ud系统的输出通过一个简单的模拟滤波器电路,该电路包括一个低通滤波器和一个高通滤波器。低通滤波器用于过滤PWM产生的高频分量,而高通滤波器用于过滤连续信号分量。该模拟信号可以通过3.5毫米插孔型母连接器连接到放大的扬声器,该母连接器也集成在模拟电路中。 ud项目的开发首先从对问题的理论分析开始,然后在Arduino Duemilanove板上实现了合成器的第一个原型。接下来,在微处理器上执行程序,在FPGA上执行VHDL描述,最后是微处理器的编程。 ud系统的测试阶段分为两个主要模块:模拟和物理测试。已经使用Xilinx程序Vivado进行了VHDL实现的仿真。随后,使用示波器和扬声器对系统进行了物理测试。用示波器观察并量化了生成的波形的特性,而设备的声音测试是通过扬声器进行的。 ud获得的结果通常是成功的。关于VHDL实现,已经使用了FPGA中大约60%的可编程逻辑块。应当指出,已经采取了一些措施来节省资源,例如共享操作员,以及使用单个公共分频器来生成所有必要的时钟信号。 ud微处理器程序中已使用以下设备可用内存的百分比:程序存储器的4.1%和数据存储器的4.7%。 ud为了实现数字电路的描述以及仿真,已使用Xilinx的ISE和Vivado程序。 ISE程序已用于在设备上加载VHDL实现,而Vivado程序已用于获取模块的仿真。微处理器已使用AtmelStudio7程序和AVR Dragon编程器进行了编程。对于初始测试,使用了Arduino Duemilanove板,该板通过Arduino IDE自己的界面进行编程。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号