嵌入式数字调音台可调增益混音设计.docVIP

嵌入式数字调音台可调增益混音设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式数字调音台可调增益混音设计

嵌入式数字调音台可调增益混音设计摘要:基于嵌入式的数字音频设备以其高性价比、功耗低、集成度高、可扩充能力强、日新月异的发展速度等优点受到世界各国的广泛关注。论文提出一种基于ARM嵌入式处理器+FPGA结构的嵌入式数字调音台的解决方案。并在ARM9(S2C2440)与FPGA(XC3S500E)为核心芯片的硬件平台上实现了八路增益可调混音。 关键词:S2C2440;XC3S500E;调音台;混音 中图分类号:J932 文献标识码:B 文章编号:1009-9166(2009)017(c)-0160-02 一、混音简介。混音在调音台当中具有非常重要的作用,是当今数字调音台必不可少的功能。混音(Mixing)就是运用调音台来修饰、修改、添增、删减各种音效等等,其最主要的目的是通过混音的处理使得让播放出来的声音更有音质。通过混音的处理使得播放出来的声音更有音质。混音器不是将声音放大,反而对音频信号有衰耗。它的作用主要是调整频响曲线,对不同的音频频率进行不同的衰耗,达到调整音频信号音色效果。 二、系统整体设计。论文设计了采用三星公司的S3C2440与Xilinx公司的XC3S500E的硬件平台,在此基础上实现混音处理。由于S3C2440只有一路IIS总线,因此不能实现多路音频信号的混合处理,论文采用XC3S500E外接音频输入、输出模块,用来实现混音过程。而S3C2440由于其有众多的外围接口,被用来作为控制平台;S3C2440内置了八路A/D转换器,被用来转换八路控制音量的推子,得到的A/D转换数据通过SPI接口传输到XC3S500E中。整个设计流程如图1所示。 图1中,在S3C2440实现了八路推子的A/D转换驱动程序,得到的转换数据经过识别、标记等处理后,通过SPI接口将处理后的数据传送到FPGA中。 三、S3C2440驱动程序设计。这里的驱动程序包括两个部分,即A/D转换与SPI接口驱动。设计流程图如图2所示。其中A/D转换驱动的代码如下:result=devfs_register_chrdev(ADC_MAJOR,”adc”,adc_fops);//注册设备号 ADCCON=(ADCCON_ECFLG|PRESCALE_EN|PRSCVL(100)|ADC_INPUT(0)|ADC_NORMAL_MODE|ADCCON_READ_START|ADC_START);//配置ADC转换控制寄存器,中断模式。 若有中断产生,进入中断处理模块,关中断,依次读取八个A/D转换器的数据。这里要注意的是在读取ADC数据寄存器前,需要配置ADC控制寄存器。读代码如下: while(en_int()==0){//产生中断,依次读ADC转换器 a0=ReadAdc(0); a1=ReadAdc(1); a2=ReadAdc(2); a3=ReadAdc(3); a4=ReadAdc(4); a5=ReadAdc(5); a6=ReadAdc(6); a7=ReadAdc(7); } 其中ReadAdc()为读A/D转换器函数,函数ReadAdc()用来配置A/D转换器的控制寄存器,并在读使能有效的情况下从数据寄存器ADCDAT0中读取10-bit的转换数据。读数据寄存器的代码为:while((ADCCON ADC_START))!(ADCCON ADCCON_ECFLG)); //检查是否ADC_START为低,是否转换完成ADCCON_ECFLG标志为高。 adcData[i]=ADCDAT0 0x3ff;//i为对应读取的接口,低10位为转换数据。 得到的转换数据,需要通过SPI接口传送到FPGA中,写SPI接口如下:set_gpio_ctrl(GPIO_MODE_ALT0|GPIO_PULLUP_EN|GPIO_E11); set_gpio_ctrl(GPIO_MODE_ALT0|GPIO_PULLUP_EN|GPIO_E12); set_gpio_ctrl(GPIO_MODE_ALT0|GPIO_PULLUP_EN|GPIO_E13); //配置GPIO_E11、GPIO_E12和GPIO_E13为SPI接口。 SPCON0=(SPCON_SMOD_INT|SPCON_ENSCK|SPCON_MSTR|SPCON_CPOL_HIGH|SPCON_CPHA_FMTB|0); //配置SPI控制寄存器。 写数据到SPI数据发送寄存器中: while(!((SPSTA0) SPSTA_READY)); //判断数据寄存器是否准备好写 SPTDAT0=dat

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档