




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE沈阳理工大学《嵌入式计算机产品案例》课程论文题目基于ARM的音频系统设计姓名王军超学号1203060433院别信息科学与工程专业通信工程2014年4月12日
1概述1.1嵌入式系统的技术背景
在许多领域中广泛应用的嵌入式计算系统(简称为嵌入式系统),是在更大的电子器件中嵌入的重复完成特定功能的计算系统,它经常不被器件的使用者所识别,但在各种常用的电子器件中能够找到这些嵌入式系统。例如,消费类电子产品中的手机、寻呼机、数字相机、摄像机、录像机、个人数字助理等,家用电器中的微波炉、洗衣机、烤箱、门禁系统、照明系统等,商用装置中的卡片读入器、扫描仪、打印机等。1.2数字音频系统的应用数字音频信号是对模拟信号的一种量化,典型方法是对时间坐标按相等的时间间隔做采样,对振幅做量化。单位时间内的采样次数称为采样频率。这样一段声波就可以被数字化后变成一串数值,每个数值对应相应抽样点的振幅值,按顺序将这些数字排列起来就是数字音频信号了。这是ADC(模拟-数字转换)过程。DAC(数字-模拟转换)过程相反,将连续的数字按采样时候的频率顺序转换成对应的电压。2系统的硬件设计2.1系统设计方案音频ADC/DAC通俗一点来讲就是录音(音频ADC)和放音(音频DAC)。放音是数字音频信号转换成模拟音频信号,以推动耳机、功放等模拟音响设备,而录音则是要将麦克风等产生的模拟音频信号转换成数字音频信号,并最终转换成计算机可以处理的通用音频文件格式。2.2S3C2410的IIS模块S3C2410的IIS总线简介IIS总线是近年出现的一种面向多媒体计算机的音频总线,该总线专责于音频设备之间的数据传输,为数字立体声提供一个序列连接至标准编码解码器。S3C2410的IIS总线接口可以用实现对外部8/16位立体声音频数字信号编码解码电路的接口功能。它支持IIS总线数据格式和MSB-justified数据格式。IIS总线接口为FIFO操作提供DMA传输模式,代替中断模式,它可以同时传送或接收数据。Mode1程序:staticvoidInit1341(charmode){//PortInitialize////PORTBGROUP//Ports:GPB4GPB3GPB2//Signal:L3CLOCKL3DATAL3MODE//Setting:OUTPUTOUTPUTOUTPUT//[9:8][7:6}[5:4]//Binary:01,0101//rGPBDAT=rGPBDAT&~(L3M|L3C|L3D)|(L3M|L3C);//启动条件L3M=H,L3C=HrGPBUP=rGPBUP&~(0x7<<2)|(0x7<<2);//禁止上拉电阻GPB[4:2]rGPBCON=rGPBCON&~(0x3f<<4)|(0x15<<4);//GPB[4:2]=Output(L3CLOCK):Output(L3DATA):Output(L3MODE) //L3Interface_WrL3Addr(0x14+2); //地址设置(000101xx+10)_WrL3Data(0x60,0); //数据输入0,1,10,000,0_WrL3Addr(0x14+2); //STATUS(000101xx+10)FsIdx=mode?RecStatus.FsIdx:PlayStatus.FsIdx;if(CodecPara[FsIdx].ofs)_WrL3Data(0x18,0);else _WrL3Data(0x28,0); _WrL3Addr(0x14+2); //STATUS(000101xx+10)_WrL3Data(0xc1,0); //1,0,0,0,0,0,01 //DAC增益控制为6dB,ADC增益为dB。 //Recordif(mode){ //mode为1时选择录音状态 _WrL3Addr(0x14+2); //STATUS(000101xx+10)// _WrL3Data(0xa2,0); //1,0,1,0,0,0,10 //状态1,DAC增益为0dB,ADC增益为6dB。 _WrL3Data(0xe3,0);//状态1,DAC增益为6dB,ADC增益为0dB。打开使//录音时可从耳机听到声音// _WrL3Addr(0x14+0); //DATA0(000101xx+00)// _WrL3Data(0x3f,0); //00,111111Volumecontrol(6bits)// _WrL3Data(0x00,0); //00,000000Volumecontrol(6bits)0dB _WrL3Addr(0x14+0); //DATA0(000101xx+00) _WrL3Data(0x7b,0); //01,1110,11:Data0,BassBoost18~24dB,Treble6dB // _WrL3Addr(0x14+0); //DATA0(000101xx+00) _WrL3Data(0xc4,0); //11000,100:Extendedaddr(3bits),100// _WrL3Data(0x90,0); //100,100,00:DATA0,EnableAGC,00,inputamplifiergainchannel2(2bits) _WrL3Data(0xf0,0); //111,100,00:DATA0,EnableAGC,00,inputamplifiergainchannel2(2bits)// _WrL3Addr(0x14+0); //DATA0(000101xx+00) _WrL3Data(0xc0,0); //11000,000:Extendedaddr(3bits),000 _WrL3Data(0xe4,0); //111,00000:MA=0dB _WrL3Data(0xc1,0); //11000,001:Extendedaddr(3bits),001 _WrL3Data(0xe4,0); //111,00000:MB=0dB// _WrL3Addr(0x14+0); //DATA0(000101xx+00) _WrL3Data(0xc2,0); //11000,010:Extendedaddr(3bits),010// _WrL3Data(0x59,0); //010,110,01:DATA0,MICAmplifierGain27dB,inputchannel1select(inputchannel2off) _WrL3Data(0xf9,0); //111,110,11:DATA0,MICAmplifierGain27dB,input1XMA+input2XMB}}3.4录音模块程序:voidRecordTest(void){ intsize,i,j,err; WAVEFORMATEXfmt; WAVEHDRhdr[2048]; HWAVEINhwi=1; fmt.nSamplesPerSec=fsTable[3]; fmt.wBitsPerSample=16; fmt.wFormatTag =WAVE_FORMAT_PCM; fmt.nChannels =2; fmt.nBlockAlign=fmt.wBitsPerSample*fmt.nChannels/8; fmt.nAvgBytesPerSec =fmt.nSamplesPerSec*fmt.nBlockAlign; download_addr=0x30800000;//_NONCACHE_STARTADDRESS; download_len=size=2*1024*1024; for(i=0;i<download_len;i+=4)*(U32*)(download_addr+i)=0; i=0; while(size>0) { hdr[i].lpData=(LPSTR)(download_addr+0x2c+i*BUF_SIZE); hdr[i].dwBufferLength=(size>BUF_SIZE)?BUF_SIZE:size; size-=BUF_SIZE; i++; } *(U16*)(download_addr+0x14)=fmt.wFormatTag; *(U16*)(download_addr+0x16)=fmt.nChannels; *(U32*)(download_addr+0x18)=fmt.nSamplesPerSec; *(U32*)(download_addr+0x1c)=fmt.nAvgBytesPerSec; *(U16*)(download_addr+0x20)=fmt.nBlockAlign; *(U16*)(download_addr+0x22)=fmt.wBitsPerSample; *(U32*)(download_addr+0x28)=download_len; err=waveInOpen(&hwi, 0, &fmt, 0, 0, 0); printf("\nerr=%x\n",err); for(j=0;j<i;j++) if(waveInAddBuffer(hwi,&hdr[j],0)) puts("Addbuffererror!"); printf("Added%dbufferforrecord\n",i); //puts("PressanytoRecord\n"); //getch(); puts("Nowbeginrecording,PressEsctoexit\n"); waveInStart(hwi); while(1) { U8key; key=getkey(); if(key==ESC_KEY) break; } waveInClose(hwi); REC_OK=0xff; PlayMusicTest(); REC_OK=0;}3.5放音模块程序:voidPlayMusicTest(void){ intsize,i,j,err; WAVEFORMATEXfmt; WAVEHDRhdr[2048]; HWAVEOUThwo; U8pause=0; U8mute=0; U32volume; unsignedchar*buf; if(REC_OK==0) { download_addr=DFT_DOWNLOAD_ADDR; buf=(unsignedchar*)download_addr; for(i=0;i<243552;i++)buf[i]=WindowsXP_Wav[i]; download_len=243552; } size=*(U32*)(download_addr+0x28); i=0; while(size>0) { hdr[i].lpData=(LPSTR)(download_addr+0x2c+i*BUF_SIZE); hdr[i].dwBufferLength=(size>BUF_SIZE)?BUF_SIZE:size; size-=BUF_SIZE; i++; } fmt.wFormatTag =WAVE_FORMAT_PCM; fmt.nChannels =*(U16*)(download_addr+0x16); fmt.nSamplesPerSec =*(U32*)(download_addr+0x18); fmt.nAvgBytesPerSec =*(U32*)(download_addr+0x1c); fmt.nBlockAlign =*(U16*)(download_addr+0x20); fmt.wBitsPerSample =*(U16*)(download_addr+0x22); printf("SampleRate=%d,Channels=%d,%dBitsPerSample,size=%d\n", fmt.nSamplesPerSec,fmt.nChannels,fmt.wBitsPerSample,*(U32*)(download_addr+0x28)); hwo=0; err=waveOutOpen(&hwo, 0, &fmt, 0, 0, 0); printf("\nerr=%x\n",err); for(j=0;j<i;j++) waveOutWrite(0, &hdr[j],0); puts("Nowplayingthefile\n"); puts("PressEsctoexit,'+'toincvolume,'-'todecvolume,'y'tomute,Enterto'pause'\n"); waveOutGetVolume(0, &volume); while(1) { U8key=getch(); if(key==ESC_KEY) break; if(key==ENTER_KEY) { pause^=1; if(pause&1) waveOutPause(0); else waveOutRestart(0); } if(key=='y'||key=='Y') { mut
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现在进行时用法课件
- 2025年Python数据库应用培训试卷:实战演练与押题解析
- 2025年中学教师资格证考试教育知识与能力专项训练模拟试题版
- 2025年计算机技术与软件专业技术资格(水平)考试模拟试卷 程序设计专项训练
- 2025年高考物理电磁学难题解析冲刺试卷
- 2026届河北省石家庄市辛集中学化学高三上期末达标测试试题含解析
- 玩水安全知识培训内容课件
- 吉林省白城市洮南第十中学2026届化学高一上期末联考模拟试题含解析
- 研究生法律类题目及答案
- 个人信息保护协议格式
- 《体育游戏》课程标准
- 制程能力管理办法实用文档
- GB/T 451.3-2002纸和纸板厚度的测定
- GB/T 1303.2-2009电气用热固性树脂工业硬质层压板第2部分:试验方法
- 子痫前期子痫课件
- 部编版《县委书记的榜样-焦裕禄》课件1
- 基础教育改革与发展中的热点问题课件
- 流动式起重机械检验记录表
- 汽车保养基础知识优秀课件
- 青少年运动员 运动损伤的预防 课件
- 2022年十部经典的三级片电影
评论
0/150
提交评论