百度文库 - 让每个人平等地提升自我
第24章 LPC3250的I2S音频模块
I2S为数字音频接口应用提供了标准的通讯接口。LPC3250包括2个I2S借口:I2S0和I2S1。 I2S特别定义了一个三线串行总线:一个数据线,一个时钟线,还有一个声音选择信号。I2S的连接上有一个主机(并且它一直都是主机)和一个从机。LPC3250上的I2S接口提供了一个特别的传输和接收通道,每个通道都可以作为主机或者从机来操作。 1. 特征
[1].I2S输入可以工作在主机和从机模式;
[2].I2S输出可以工作在主机和从机模式,但是它与I2S输入没有关系;
[3].支持独立的TX和RX时钟,一般时钟是基于TX时钟输入,或者RX时钟输入。 [4].可以处理8,16和32位的声音信号; [5].单声道和立体声音频数据支持; [6].采样频率为16~96KHZ;
[7].提供两个8位的声音FIFO数据缓存器,一个用于传输,一个用于接收; [8].当缓存器的电平穿过一个可编程的边界时,会产生一个中断请求;
[9].两个DMA请求,由可编程缓存器的电平控制。它们都连接到通用的DMA模块; [10].对于I2S的输入和输出,控制复位,停止和静音是相互独立的; 2.描述
I2S通过传输通道将串行数据输出,通过接收通道输入串行数据。它支持NXP集成电路音频格式,包括8位、16位和32位的音频数据,通用于立体声和单声道模式。它的配制、数据的访问和控制是由一个APB寄存器操作的。数据流是由一个带8字节宽度的FIFO缓存的。
I2S接收和传输都是独立操作的主或从模式,对于这两个模式调制的不同在于对语音信号的选择,这个语音信号同时决定数据传输的时间。一次语音选择改变之后,在下一个传输时钟的下降沿,数据音频就会启动。
在立体声模式,当WS为低时,左边的数据开始传输;当WS为高时,右边的数据开始传输。在单声道模式,同样的数据会被传输两次,一次是当WS=0,另一次是当WS=1时。 (1).在主模式(WS-SEL=0),语音信号由系统内部产生,并带有9位计数器。这个计数器的半周期计数值可以在控制寄存器设置。 (2).在从模式(WS-SEL=1),通过相关的总线口输入语音选择信号。
(3).当I2S总线活跃时,语音选择信号、接收时钟信号和发送时钟信号都被总线主机持续发送,而数据也被发射器持续发送。
(4).当停止或者静音控制位分别被发送和接收时,I2S被禁止。
(5).禁止位将使得发送通道和禁止通道都不能访问FIFO,而且传输通道此时处于静音模式。
(6).静音控制位使得传输通道处于静音模式。在静音模式,传输通道FIFO正常工作,但是输出被禁止,被0代替了,但是这一位并不影响接收通道,数据会被正常接收。 口介绍
I2S总线为标准的音频设备提供一种标准的音频接口,LPC3250含有两个接口:I2S0、I2S1。I2S总线是三线制串行总线,有一个时钟线,一个数据线,一个语言选择信号线。基本的连接设备是主从结构。LPC3250的I2S接口提供了一个独立的传输和接口通道,每个通道都可以作为主从设备来操作。下面介绍它的PIN口:
1
百度文库 - 让每个人平等地提升自我
口 I2S0RX-CLK I2S1RX-CLK I2S0RX-WS I2S1RX-WS I2S0RX-SDA I2S1RX-SDA I2S0TX-CLK I2S1TX-CLK I2S0TX-WS I2S0TX-WS I2S0TX-SDA I2S0TX-SDA 类型 I/O M18 I/O B5 I/O L15 I/O D7 I/O M17 I/O C7 I/O L17 I/O A4 I/O L18 I/O B4 I/O L16 I/O E7 备注 接收时钟。一个时钟信号用于在接收通道上同步传输数据,由主机驱动,从机接收。 接收语言选择,选择数据接收通道:WS=0,左边1通道接收数据;WS=1,右2通道接 接收数据,MSB最先接收数据。发射器驱动,接收器读 发送时钟。一个时钟信号用于在接收通道上同步传输数据。 发送语言选择,选择数据发送通道:WS=0,左边1通道接收数据;WS=1,右2通道接 发送数据,MSB最先发送数据。发射器驱动,接收器读 4.寄存器介绍 I2SDAO:数字音频输出寄存器,控制位用于I2S传输通道。 I2SDAI:数字音频输入寄存器,控制位用于I2S接收通道。
I2STXFIFO:传输FIFO,访问寄存器是8*32位的发射器FIFO。 I2SRXFIFO:接收FIFO,访问寄存器是8*32位的接收器FIFO。 I2SSTATE:状态反馈寄存器,包含I2S接口的状态信息。 I2SDMA1:DMA设置寄存器1,包含DAM请求1信息。 I2SDMA2:DMA设置寄存器2,包含DAM请求2信息。
I2SIRQ:中断请求控制器,包含的位是控制I2S的中断是如何产生的。 I2STXRATE:发射位速率寄存器,它决定I2S发射位的速率。 的发射和接收接口
I2S接口可以发射或者接收8,16和32位的立体声或者单声道音频信息。细节如下: [1].当FIFO是空的时候,发射通道将重复发送同样的数据直到新的数据写到FIFO中。 [2].当静音为真时,数据0被发送。
[3].当单声道为假时,两个连续的数据声音信号,一个为左数据,一个为右数据。
[4].数据声音信号的长度是由设置寄存器中的声音宽度决定的。接收通道和发射通道是不同的宽度值。
0—WORD包含8位数据声音信号;1—WORD包含16位数据声音信号;2—WORD包含32位数据声音信号。
[5].当发射的FIFO包含不充分的数据时,发射通道就会重复发射最后的数据直到有新的数据到来。当微处理器或者DMA在某一个时间不能够迅速的提供数据的时候,这种情况就会发生。因为在新的数据当中有延迟,那么就有必要填补这个沟壑,通过持续的发射最后的采样值就可以弥补这个不足。如果在声音中产生明显的,不需要的影响的时候,数据就会静音。 [6].发射通道和接收通道只接收32位的声音信号。数据块必须修剪或延伸到32位。
当在数据宽度和模式之间转换时,I2S必须通过控制寄存器中的位来是系统复位,以保证同步性。有人建议设置一个停止位直到有充分的数据写入FIFO当中。注意:数据停止时,输出就是静音。 2
百度文库 - 让每个人平等地提升自我
控制器
数据的发射和接收是通过FIFO控制器来操作,FIFO控制器可以产生两个DMA请求和一个中断请求。控制器是由一系列比较器组成的,这些比较器是将FIFO电平和控制器中设置的深度比较的。当前电平比较的的状态可以在I2SSTATE中看到。
3