外部总线与音频系统.doc_第1页
外部总线与音频系统.doc_第2页
外部总线与音频系统.doc_第3页
外部总线与音频系统.doc_第4页
外部总线与音频系统.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统课程设计报告题 目: 外部总线与音频系统设计 院 (系): 计算机科学与工程学院 专 业: 计算机软件与理论 学生姓名: 胡鹏飞 学 号: 112031206 指导教师: 崔更申 2012年4月25日10目 录一、需求分析2二、硬件平台设计与实现 2三、嵌入式音频系统的软件平台设计与实现5一、 需求分析随着计算机技术、电子技术和通信技术的迅猛发展,嵌入式系统已经成为通讯和消费产品的共同发展方向,广泛应用在人们工作生活的各个方面。同时,数字音频技术发展的速度也相当惊人,越来越多的消费电子产品(如CD机、手机、MP3、MD、VCD、DVD数字电视等)引入了数字音频系统,可见数字音频领域的研究有着非常广阔的前景。本设计研究嵌入式技术在音频系统中的应用,结合数字音频和嵌入式系统这两个技术,设计一个基于嵌入式系统的数字音频系统。拟采用Samsung公司的S3C2410型微处理器,其内置的IIS总线接口能够和其他厂商提供的多媒体编码解码芯片配合使用。这里采用Philips公司的UDA1341 型立体声音频Codec。二、 硬件平台设计与实现基于S3C2410 的系统硬件平台设计方案如图:图1、基于S3C2410 的系统硬件平台设计方案嵌入式系统的硬件构架可以分成三个部分:处理器、存储器和外围设备。首先简要的介绍这三个部分:1、S3C2410 微处理器S3C2410 是韩国三星电子公司推出的一款基于ARM920T 内核的16/32 位RISC嵌入式微处理器。它采用五级流水线和哈佛结构,具有独立的16KB 指令缓存和16KB 数据缓存,提供1.1MIPS/MHz的处理能力,其核心频率为203MHz。该处理器主要面向手持式设备、高性价比、低功耗的应用。ARM920T 核以ARM9TDMI、存储管理单元(MMU)和高速缓存三部分组成。它集成了一个LCD 控制器(支持STN 和TFT 带有触摸屏的液晶显示屏)、SDRAM 控制器、3 个通道的UART、4 个通道的DMA、4 个具有PWM 功能的计时器和1 个内部时钟、8 通道的10 位ADC。2、存储器系统包含64MB Nandflash 存储器,内部可以存放启动代码(BLOB)、C/OS-II 内核映象和RAMDISK 压缩映像。剩余的存储空间可存放用户程序。FLASH 存储器的数据宽度为32 位,映射到S3C2410 的ROM BANK0。主板包含64MB SDRAM,用于设置程序堆栈和存放各种变量。由两片16 位数据宽度的SDRAM存储器并联为32 位数据宽度的SDRAM 存储系统,并映射到S3C2410 的SROM/SDRAM BANK6,地址从0x30000000到0x33FFFFFF。S3C2410 微处理器内部的4KB 一体化Cache/SRAM,通常被配置为Cache 以提高系统性能。若要将其部分或全部用作高速的片内SRAM,用户必须在应用程序中重新配置相应的特殊功能寄存器。3、外部设备即音频模块1)IIS 音频设备总线IIS 总线是飞利浦公司提出的音频总线协议,全称是数字音频集成电力通信协议,它是一种串行的数字音频总线协议。IIS 总线只处理声音数据,其他信号(比如控制信号)必须单独传输。IIS 只使用了3 根串行总线,以尽量减少引出管脚,这3 根线分别是:时钟信号线,字选择线,时分复用功能的数据线。(1)continuous serial clock (SCK);(2)word select (WS);(3)serial data (SD);使用IIS 技术设计的系统的连接配置如图图2、使用IIS 技术设计的系统的连接配置IIS 总线接口的基本时序参见图图3、IIS 接口基本时序图WS 信号线指示左通道或右通道的数据将被传输,SD 信号线按高有效位MSB 到低有效位LSB 的顺序传送字长的音频数据,MSB 总在WS 切换后的第一个时钟发送,如果数据长度不匹配,接收器和发送器将自动截取或填充。本设计采用的S3C2410 芯片内置IIS 接口,使其能够更好地与其它多媒体芯片配合使用。图4、IIS 总线示意图在S3C2410 芯片中定义了5根物理连接线,分别是:(1)IISSDI:串行数据输入线;(2)IISSDO:串行数据输出线;(3)SCLK:串行数据提供时钟,用于定位传输的每个比特,声道典型值为2*16*fs;(4)LRCK:用于定位左右声道的时钟,数值上等于fs(采样频率);(5)MCLK:同步时钟,也称为编解码器时钟(主时钟),可能取值为256*fs 或384*fs。数据的发送方和接受方需要有相同的时钟信号来控制数据的传输,所以数据传输方(主设备)必须产生字段选择信号、时钟信号和需要传输的数据信号。复杂的数字系统可能会有多个发送方和接受方,因此很难定义哪个是主设备。这种系统中一般会有一个系统主控制模块,用于控制数据音频数据在不同的协调下发送数据。2)基于IIS音频系统的硬件设计基于IIS 总线音频系统的逻辑示意图如下图图5、基于IIS 总线音频系统的逻辑示意图在这个体系结构中,为了实时录制喜欢的广播节目,把FM 收音机输出信号接入音频芯片模拟输入端。为了实现全双工,数据传输使用两个BDMA 通道。数据传输(以回放为例)先由内部总线送到内存,然后传到BDMA 控制器通道0,再通过IIS 控制器写入IIS 总线并传输给音频芯片。通道1 用来录音。三星公司的BDMA 控制器没有内置的存储区域,在驱动程序中必须为音频设备分配DMA 缓存区。缓存区的地址在通道DMA 控制器的地址寄存器中设置。UAD1341TS 芯片除了提供IIS 接口和麦克风扬声器接口,还提供L3 接口控制音量等。L3 接口分别连到S3C2410 的3 个通用数据输出引脚上。三、 嵌入式音频系统的软件平台设计与实现软件总体方案图5、系统软件总体方案框图1、 音频播放及录音过程实现1) 向设备里面写数据在应用程序第一次使用音频设备时,并向设备里面传输数据的时候,驱动程序必须完成下面的任务,流程如下:(1) 通过程序控制音频设备,并且为设备设置好工作参数(包括速度、声音、采样宽度)。同时设置好对应的传输总线IIS 和L3。(2) 根据采样参数计算出缓冲段的大小(程序也可以指定缓冲区的大小),分配对应的DMA 空间供设备的使用。(3) 向缓冲区填入应用程序生成的数据。(4) 如果第一个缓冲区填充完毕,音频设备就开始播放填入的数据,对于播放要求比较高的应用,可以等两个或者更多的缓冲区段被填满以后再开始播放。(5) (5)应用程序继续填充缓冲区,如果所有的缓冲区都被使用,那么应用程序将转入挂起状态,直到第一个缓冲区的数据播放完毕,音频设备发出一个中断,通知应用程序继续向缓冲区输入数据。应用程序和上面的驱动程序相似,不过应用程序不用初始化音频设备和缓冲区。2)从设备里面读取数据(1)通过程序控制音频设备,并且为设备设置好工作参数(包括速度、声音、采样宽度)。(2)根据采样参数计算出缓冲段的大小(程序也可以指定缓冲区的大小)。(3)激活录音设备开始录音。(4)录音设备将处理好的数据填入缓冲区,在这个期间应用程序将被挂起,直到缓冲区被填满。(5)当第一个缓冲区被填满以后,应用程序将缓冲区中的数据拷贝到应用程序的内存区域。(6)当缓冲区中的数据读完以后,读操作挂起,等待音频设备填充其他的缓冲区,直到录音结束。以后从音频设备读取数据的应用程序操作过程和上面的过程相似,不用程序不用初始化音频设备和缓冲区。2、任务循环录音、播放任务都设置为一无限循环,在真正开始录音或播放动作前,Recd Task 应等待录音命令而挂起,而Play Task 则需等待播放数据而挂起,所以任务首先调用QSQPend。根据消息中的任务信息,如数据采样精度、声道数、缓存位置、数据大小等,设置时钟,初始化UDA1341TS,初始化DMA,最后配置S3C2410X 的IIS 接口并启动,数据开始在内存和外设间传送。Play Task 任务处理如图图6、播放任务流程图Play Task 任务的部分程序如下Void iis_play_wave(int nTimes,UINT8T *pWavFile, int nSoundLen)int i;ClearPending(BIT_DMA2);rINTMOD = 0x0;/ initialize philips UDA1341 chipinit_1341(PLAY);/ set BDMA interruptpISR_DMA2 = (unsigned)dma2_done;rINTMSK &= (BIT_DMA2);for(i=nTimes; i!=0; i-)/ initializ e variablesf_nDMADone = 0;/DM A2 InitializerDISRCC2 = (01) + (00); /AHB, IncrementrDISRC2 = (INT32T)(pWavFile);rDIDSTC2 = (11) + (10); /APB, FixedrDIDST2 = (INT32T)IISFIFO); /IISFIFOrDCON2 = (131)+(030)+(129)+(028)+(027)+(024)+(123)+(022) +nSoundLen/2;/Handshake, sync PCLK, TC int, single tx, single service, I2SSDO, I2S request,/Auto-reload, half-word, size/2rDMASKTRIG2 = (02)+(11)+0; /No-stop, DMA2 channel on, No-sw trigger/IIS Initialize/Master,Tx,L-ch=low,iis,16bit ch.,CDCLK =384fs,IISCLK=32fsrIISCON = (15)+(04)+(03)+(12)+(11);rIISMOD = (08) + (26) + (05) + (04) + (13) + (12) + (10);rIISPSR = (25) + 2; /Prescaler_A/B=3/Tx DMA enable,Rx DMA disable,Tx not idle,Rx idle,prescaler enable,stoprIISFCON = (115) + (1 start piling.rIISCON |= 0x1; / enable IISwhile( f_nDMADone = 0); / DMA endrINT MSK |= BIT_DMA2;rIISCON = 0x0; / IIS stop录音Recd Task 任务的部分程序如下:void Record_Iis(void)unsigned int i;/ ChangePllValue(0x49,0x7,0x1); /MCLK=45.1584MHz - 5.6448MHz*8/ Uart_Init(45000000,115200);/ unsigned int save_A,save_C,save_E,save_G,save_PC,save_PE,save_PG;ChangePllValue(71,5,1);/MCLK=45.1584MHz - 5.6448MHz*8Uart_Init(45200000,115200);Uart_Printf(Record test using UDA1341n);save_A=rPCONA;/L3DATAsave_C=rPCONC;/IIS portsave_E=rPCONE;/CODEC clksave_G=rPCONG;/L3CLK,L3MODsave_PC=rPUPC;save_PE=rPUPE;save_PG=rPUPG;#if (BUSWIDTH=32)Uart_Printf(IIS test shoreturn;#else /BUSWIDTH=16rPCONC |=0xf ;/选通iis特性rPUPC |= 0xf;/禁止上拉电阻#endifrPCONE=(rPCONE&0xffff)+(212) + ( (int)r2MBUart_Printf(rNCACHBE1=0x%xn,rNCACHBE1);for(i=0;i(REC_LEN/2);i+)*(rec_buf+i)=0x0;pISR_BDMA0=(unsigned)BDMA0_Rec_Done;rINTMSK=(BIT_GLOBAL|BIT_BDMA0);Init1341(RECORD);/for downrBDCON0 |=0x11 2;rBDISRC0=(130)+(328)+(int)I ISFIF); /Half word,fix,IISFIF/初始DMA源:传输数据类型:半字 加载地址变动方向:内部接口固定地址 初始源地址rBDIDES0=(230)+(1 28)+(int)(rec_buf); /IO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论