ARM9_数字音频信号I2S介绍

上传人:woxinch****an2018 文档编号:45178454 上传时间:2018-06-15 格式:PPT 页数:22 大小:355.50KB
返回 下载 相关 举报
ARM9_数字音频信号I2S介绍_第1页
第1页 / 共22页
ARM9_数字音频信号I2S介绍_第2页
第2页 / 共22页
ARM9_数字音频信号I2S介绍_第3页
第3页 / 共22页
ARM9_数字音频信号I2S介绍_第4页
第4页 / 共22页
ARM9_数字音频信号I2S介绍_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《ARM9_数字音频信号I2S介绍》由会员分享,可在线阅读,更多相关《ARM9_数字音频信号I2S介绍(22页珍藏版)》请在金锄头文库上搜索。

1、第十四章 数字音频信号(I2S)介绍和S3C2410的I2S控制n数字音频信号(I2S)介绍n数字音频信号是相对模拟音频信号来说的。我们知道声音的 本质是波,人能听到的声音的频率在0.0220kHz之间。数字 音频信号是对模拟信号的一种量化(如图14-1),典型方法是 对时间坐标按相等的时间间隔做采样,对振幅做量化。n单位时间内的采样次数称为采样频率。这样一段声波就可以 被数字化后变成一串数值,每个数值对应相应抽样点的振幅 值,按顺序将这些数字排列起来就是数字音频信号了。这是 ADC(模拟-数字转换)过程,DAC(数字-模拟转换)过程相反 ,将连续的数字按采样时候的频率顺序转换成对应的电压。

2、音频ADC/DAC通俗一点来讲就是录音(音频ADC)和放音(音 频DAC)。放音是数字音频信号转换成模拟音频信号,以驱 动耳机、功放等模拟音响设备,而录音则是要将麦克风等产 生的模拟音频信号转换成数字音频信号,并最终转换成计算 机可以处理的通用音频文件格式。nI2S总线是近年出现的一种面向多媒体计算机(Multimedia PC)的音频总线,该总线专门用于音频设备之间的数据传 输,为数字立体声提供一个连接至标准编码解码器的总线 。n S3C2410内置一个I2S总线控制器,该控制器实现了到一 个外部8/16位立体声音频CODEC IC的接口。支持I2S总线 数据格式和MSB-justified

3、数据格式。此控制器包含FIFO ,支持DMA传输模式。nI2S总线控制器结构如图14-2所示:图14-1 模拟音频信号数字化n其中:n 两个5 bit预除器(IPSR)。一个(IPSR_A)用于产生I2S总线接口的主时钟, 另外一 个(IPSR_B) 用作外部CODEC时钟产生器。n 十六字节FIFO。在发送数据时数据被写进TXFIFO,在接收数据时数据 从RXFIFO中读取。n 主IISCLK产生器(SCLKG):在主模式,由主时钟产生串行移位时钟。n 通道产生器和状态寄存器(CHNC):IISCLK和IISLRCK由通道状态寄存 器产生并控制。n 16 bit移位寄存器(SFTR):在发送

4、数据时,并行数据经由SFTR变成串行 数据输出,在接收数据时,串行数据由SFTR转变成并行数据。nUDA1341是飞利浦公司的一款经济型音频CODEC,用于实现模拟音频信号 的采集(音频AD)和数字音频信号的模拟输出(DA),并通过I2S数字音频接口 ,实现音频信号的数字化处理。图14-2 I2S总线控制器结构图n14.2 I2S 控制寄存器nS3C2410 I2S相关的寄存器包括I2S控制寄存器IISCON, I2S模式寄存器IISMOD和I2S分频寄存器IISPSR。nI2S控制寄存器及其各位的定义如表14-1和表14-2所列。表14-1 I2S控制寄存器 表14-2 I2S控制寄存器II

5、SCON各位的定义n表14-4 I2S模式寄存器IISMOD各位的定义 I2S模式寄存器及其各位的定义如表14-3和表14-4所列 。nI2S分频寄存器及其各位的定义如表14-5和表14-6所列。表14-6 I2S分频寄存器IISPSR各位的定义n14.3 WAV声音格式文件n WAV声音格式文件是Windows环境下的一种常用音频文 件格式,它依循着一种称为“资源互换文件格式 ”(Resources Interchange File Formal)的结构,简称RIFF。 RIFF可以看做是一种树状结构,其基本构成单位为“块”( chunk),犹如树状结构中的节点,每个chunk由“辨别码”

6、、“数据大小”及“数据”所组成。nWAV为WAVEFORM(波形)的缩写。“RIFE”的格式辨别码 为“WAVE”。整个文件由两个chunk所组成:辨别码及 “Data”。n 在“fmt”chunk下包含了一个PCMWAVEFORMAT数据 结构,在其之后是原始声音的采样数据,这些数据是可以 直接送到IIS总线的数字音频信号。n一个典型的WAV格式文件结构如图14-3所示。n它包含8字节RIFF头、4字节数据类型“WAVE”、0x18字节 的“fmt”chunk和4字节数据“data”chunk。因此,WAV文件 中从下式中的sizeoff开始的四个字节表示声音数据的大小 ,dataoff开始

7、的位置为具体的声音数据。nsizeoff = 0x8+0x4+0x18+0x4ndataoff = 0x8+0x4+0x18+0x8图14-3 典型的WAV格式文 件结构图n14.4 I2S控制程序编写n1,系统初始化nI2S时钟从系统时钟分频得到,由于音频比系统时钟频率低很 多,必须对系统时钟进行适当的降频处理,下面的代码降系 统PCLK到33MHx,然后对串口进行初始化。nChangeClockDivider(1,1): /1:2:4nChangeMPllValue(Ox96,0x5,0x1); /FCLK=135.428571MHz (PCLK=33.857142MHz)nUart_In

8、it(33857142,115200);nI2S用到的端口有G和E,所以使用这些端口前要把这些端口 状态保存起来,使用完毕再恢复这些端口原状态。nsave_ G=rGPGCON;nsave_ E=rGPECON;nsave_ PG=rGPGUP;nsave_ PE=rGPEUP;nI2S可以采用DMA中断方式进行语音录音和播放, 因此需要设置DMA中断向量。n pISR_DMA2=(unsigned)DMA2_Done;n然后获取语音数据及其大小以及采样频率。其中_IIS_WAV_是一个数组,它定义在niis_wave.h文件中,它是从一个完整的wav文件转换 来的,因此,从中可以获得采样数据

9、大小以及采样频率等信息,其中采样频率位于fmt chunk的第 0x0c个字节开始的四个字节中。nBuf=(unsigned char *)_IIS_WAV_;nsize=*(Buf)+0x28)|*(buf)+0x29)start pilingn/IIS Tx StartnrIISCON|=0x1; /I2S接口启动nrINTMSK /取消DMA2中断屏蔽,等 播放完毕后DMA2中断nI2S启动后,将来用DMA中断方式播放语音数据,播放完毕后 将引发DMA2中断,在其中断处理函数中将dma2_done设置为 非零,因此,在主程序中可以通过判断dma2_done是否为0决 定播放是否结束:nd

10、ma2_done=0;nwhile(dma2_done=0) Delay(1);ndma2_done=0;nPRINTF(“播放结束n”);n语音播放结束,通知I2S,并恢复寄存器设置,关闭中断并将 时钟恢复。n /IIS Tx StopnDelay(10); /for end of H/W TxnrIISCON =0x0; /I2S Interface stopnrDMASKTRIG2 =(1start pilingn 开始录音:n PRI NTF (“ 2开始录音n“);n /Rx startn rIISCON=0xl;n 录音完毕将引发DMA2中断,如下代码等待录音结束:n nWhile

11、(!Rec_Done) Delay (1);n rINTMSK=BIT_ DMA2;n Rec_ Done=0;n PRINTF(“ 录音完毕n”);n /IIS Stopn Delay(10); /For end of H/W Rxn rIISCON = 0x0; /IIS stopn rDMASKTRIG2=(12); /DMA2 stopn rIISFCON=0x0; /For FIF0 flushn第十四章习题和练习n1,简单回答什么是数字音频的采样频率和采样 精度?n数字音频的编码有几种?n数字音频控制寄存器有几个?各有什么作用?n简单说明音频芯片UDA1341的使用。nIIS使用系统时钟为什么要降频?nIIS使用系统哪几个I/O口?nIIS使用DMA中断,如何设置DMA中断向量?n如何进行DMA初始化?n如何进行IIS初始化和使能IIS?n10,仔细阅读例子程序,学会IIS录音和放音程序 编写。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号