宝典I2S接口说明文档格式.docx
《宝典I2S接口说明文档格式.docx》由会员分享,可在线阅读,更多相关《宝典I2S接口说明文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
I2C总线的另一个优点是,它支持多主控(multimastering),
其中任何能够进行发送和接收的设备都可以成为主总线。
一个主控能够控制信号的传输和时钟频率。
当然,在任何时间点上只能有一个主控。
2I2C总线工作原理
2.1总线的构成及信号类型
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。
各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;
控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。
这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C总线在传送数据过程中共有三种类型信号,它们分别是:
开始信号、结束信号和应答信号。
开始信号:
SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:
SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:
接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。
CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。
若未收到应答信号,由判断为受控单元出现故障。
目前有很多半导体集成电路上都集成了I2C接口。
带有I2C接口的单片机有:
CYGNAL的C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。
很多外围器件如存储器、监控芯片等也提供I2C接口。
3总线基本操作
I2C规程运用主/从双向通讯。
器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。
主器件和从器件都可以工作于接收和发送状态。
总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。
SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。
3.1控制字节
在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。
3.2写操作
写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。
3.3读操作
读操作有三种基本操作:
当前地址读、随机读和顺序读。
图4给出的是顺序读的时序图。
应当注意的是:
最后一个读操作的第9个时钟周期不是“不关心”。
为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。
在I2C总线的应用中应注意的事项总结为以下几点:
1)严格按照时序图的要求进行操作,
2)若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻。
3)程序中为配合相应的传输速率,在对口线操作的指令后可用NOP指令加一定的延时。
4)为了减少意外的干扰信号将EEPROM内的数据改写可用外部写保护引脚(如果有),或者在EEPROM内部没有用的空间写入标志字,每次上电时或复位时做一次检测,判断EEPROM是否被意外改写。
I2C总线的发展
在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。
为了提供
硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串
行总线I2C(interIC总线)。
I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商
提供了种类非常丰富的I2C兼容芯片。
作为一个专利的控制总线,I2C已经成为世界性的工
业标准。
每个I2C器件都有一个唯一的地址,而且可以是单接收的器件(例如:
LCD驱动
器)或者可以接收也可以发送的器件(例如:
存储器)。
发送器或接收器可以在主模式
或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。
I2C是一个
多主总线,即它可以由多个连接的器件控制。
早期的I2C总线数据传输速率最高为100Kbits/s,采用7位寻址。
但是由于数据传
输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400Kbits/s)和10位寻址
以满足更高速度和更大寻址空间的需求。
I2C总线始终和先进技术保持同步,但仍然保持其向下兼容性。
并且最近还增加了
高速模式
高速模式,其速度可达3.4Mbits/s。
它使得I2C总线能够支持现有以及将来的高速串行
传输应用,例如EEPROM和Flash存储器。
I2S
I2S总线概述
音响数据的采集、处理和传输是多媒体技术的重要组成部分。
众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。
对于设备和生产厂家来说,标准化的信息传输结构可以提高系统的适应性。
I2S(Inter—ICSound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。
它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。
I2S总线规范
在飞利浦公司的I2S标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。
I2S有3个主要信号
1.串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。
SCLK的频率=2×
采样频率×
采样位数。
2.帧时钟LRCK,(也称WS),用于切换左右声道的数据。
LRCK为“0”表示正在传输的是左声道的数据,为“1”则表示正在传输的是右声道的数据。
LRCK的频率等于采样频率。
3.串行数据SDATA,就是用二进制补码表示的音频数据。
有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(SysClock),是采样频率的256倍或384倍。
串行数据(SD)
I2S格式的信号无论有多少位有效数据,数据的最高位总是出现在LRCK变化(也就是一帧开始)后的第2个SCLK脉冲处。
这就使得接收端与发送端的有效位数可以不同。
如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;
如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。
这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。
随着技术的发展,在统一的I2S接口下,出现了多种不同的数据格式。
根据SDATA数据相对于LRCK和SCLK的位置不同,分为左对齐(较少使用)、I2S格式(即飞利浦规定的格式)和右对齐(也叫日本格式、普通格式)。
为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。
当然,对I2S格式来说数据长度可以不同。
字段(声道)选择(WS)
命令选择线表明了正在被传输的声道。
WS=0,表示正在传输的是左声道的数据。
WS=1,表示正在传输的是右声道的数据。
WS可以在串行时钟的上升沿或者下降沿发生改变,并且WS信号不需要一定是对称的。
在从属装置端,WS在时钟信号的上升沿发生改变。
WS总是在最高位传输前的一个时钟周期发生改变,这样可以使从属装置得到与被传输的串行数据同步的时间,并且使接收端存储当前的命令以及为下次的命令清除空间。
电气规范:
输出电压:
VL<
0.4V
VH>
2.4V
输入电压
VIL=0.8V
VIH=2.0V
注:
目前使用的TTL电平标准,随着其他IC(LSI)的流行,其他电平也会支持。
时序要求:
在I2s总线中,任何设备都可以通过提供必需的时钟信号成为系统的主导装置,而从属装置通过外部时钟信号来得到它的内部时钟信号,这就意味着必须重视主导装置和数据以及命令选择信号之间的传播延迟,总的延迟主要由两部分组成:
1.外部时钟和从属装置的内部时钟之间的延迟
2.内部时钟和数据信号以及命令选择信号之间的延迟
对于数据和命令信号的输入,外部时钟和内部时钟的延迟不占据主导地位,它只是延长了有效的建立时间(set—uptime)。
延迟的主要部分是发送端的传输延迟和设置接收端所需的时间。
T是时钟周期,Tr是最小允许时钟周期,T>
Tr这样发送端和接收端才能满足数据传输速率的要求。
对于所有的数据速率,发送端和接收端均发出一个具有固定的传号空号比(mark—spaceratio)的时钟信号,所以tLC和tHC是由T所定义的。
tLC和tHC必须大于0.35T,这样信号在从属装置端就可以被检测到。
延迟(tdtr)和最快的传输速度(由Ttr定义)是相关的,快的发送端信号在慢的时钟上升沿可能导致tdtr不能超过tRC而使thtr为零或者负。
只有tRC不大于tRCmax的时候(tRCmax>
:
0.15T),发送端才能保证thtr大于等于0。
为了允许数据在下降沿被记录,时钟信号上升沿及T相关的时间延迟应该给予接收端充分的建立时间(set-uptime)。
数据建立时间(set-uptime)和保持时间(holdtime)不能小于指定接收端的建立时间和保持时间。
I2S总线结构配置
随着WS信号的改变,导出一个WSP脉冲信号,进入并行移位寄存器,从而输出数据被激活。
串行数据的默认输入是0,因此所有位于最低位(LSB)后的数据将被设置为0。
随着第一个WS信号的改变,WSP在SCK信号的下降沿重设计数器。
在“1outofn”译码器对计数器数值进行译码后,第一个串行的数据(MSB)在SCK时钟信号的上升沿被存放进入B1,随着计数器的增长,接下来的数据被依次存放进入B2到Bn中。
在下一个WS信号改变的时候,数据根据WSP脉冲的变化被存放进入左(声道)锁存器或者右(声道)锁存器,并且将B2一Bn的数据清除以及计数器重设,如果有冗余的数据则最低位之后的数据将被忽略。
注意:
译码器和计数器(虚线内的部分)可以被一个n比特移位寄存器所代替。
IIS总线接口可作为一个编码解码接口与外部8/16位的立体声音频解码电路(CODECIC)相连,从而实现微唱片和便携式应用。
它支持IIS数据格式和MSB-Justified数据格式。
IIS总线接口为先进先出队列FIFO的访问提供DMA传输模式来取代中断模式,可同时发送和接收数据,也可只发送或接收数据。