预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

I2C总线和谈及工作道理I2C总线和谈及工作道理之杨若古兰创作一、概述1、I2C总线只要两根双向旌旗灯号线.一根是数据线SDA,另一根是时钟线SCL.SCL:上升沿将数据输入到每个EEPROM器件中;降低沿驱动EEPROM器件输出数据.(边沿触发)SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系.I2C总线通过上拉电阻接正电源.当总线空闲时,两根线均为高电平(SDL=1;SCL=1).连到总线上的任一器件输出的低电平,都将使总线的旌旗灯号变低,即各器件的SDA及SCL都是线“与”关系.2、主设备与从设备零碎中的所有核心器件都具有一个7位的"从器件公用地址码",其中高4位为器件类型,由生产厂家拟定,低3位为器件引脚定义地址,由使用者定义.主控器件通过地址码建立多机通信的机制,是以I2C总线省去了核心器件的片选线,如许不管总线上挂接多少个器件,其零碎仍然为简约的二线结构.终端挂载在总线上,有主端和从端之分,主端必须是带有CPU的逻辑模块,在同一总线上同一时刻使能有一个主端,可以有多个从端,从端的数量受地址空间和总线的最大电容400pF的限制.主端次要用来驱动SCLline;从设备对主设备发生呼应;二者都可以传输数据,但是从设备不克不及发起传输,且传输是受到主设备控制的.二、和谈1.空闲形态I2C总线总线的SDA和SCL两条旌旗灯号线同时处于高电平时,规定为总线的空闲形态.此时各个器件的输出级场效应管均处在截止形态,即释放总线,由两条旌旗灯号线各自的上拉电阻把电平拉高.2.起始位与停止位的定义:起始旌旗灯号:当SCL为高期间,SDA由高到低的跳变;启动旌旗灯号是一种电平跳变时序旌旗灯号,而不是一个电平旌旗灯号.停止旌旗灯号:当SCL为高期间,SDA由低到高的跳变;停止旌旗灯号也是一种电平跳变时序旌旗灯号,而不是一个电平旌旗灯号.起始和终止旌旗灯号都是由主机发出的,在起始旌旗灯号发生后,总线就处于被占用的形态;在终止旌旗灯号发生后,总线就处于空闲形态.接收器件收到一个完好的数据字节后,有可能须要完成一些其它工作,如处理内部间断服务等,可能没法立刻接收下一个字节,这时候接收器件可以将SCL线拉成低电平,从而使主机处于等待形态.直到接收器件筹办好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行.发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应对旌旗灯号.应对旌旗灯号为低电平时,规定为无效应对位(ACK简称应对位),暗示接收器曾经成功地接收了该字节;应对旌旗灯号为高电平时,规定为非应对位(NACK),普通暗示接收器接收该字节没有成功.对于反馈无效应对位ACK的请求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,而且确保在该时钟的高电平期间为波动的低电平.如果接收器是主控器,则在它收到最初一个字节后,发送一个NACK旌旗灯号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止旌旗灯号P.如下图逻辑分析仪的采样结果:释放总线后,如果没有应对旌旗灯号,sda应当不断持续为高电平,但是如图中蓝色虚线部分所示,它被拉低为低电平,证实收到了应对旌旗灯号.这里面给我们的两个信息是:1)接收器在SCL的上升沿到来之前的低电平期间拉低SDA;2)应对旌旗灯号不断坚持到SCL的降低沿结束;正如前文红色标识所指出的那样.4.数据的无效性:I2C总线进行数据传送时,时钟旌旗灯号为高电平期间,数据线上的数据必须坚持波动,只要在时钟线上的旌旗灯号为低电平期间,数据线上的高电平或低电平形态才答应变更.5.数据的传送:在I2C总线上传送的每一名数据都有一个时钟脉冲绝对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一名数据.数据位的传输是边沿触发.工作过程总线上的所有通信都是由主控器激发的.在一次通信中,主控器与被控器老是在饰演着两种分歧的角色.主设备发送起始位,这会通知总线上的所有设备传输开始了,接上去主机发送设备地址,与这一地址匹配的slave将继续这一传输过程,而其它slave将会忽略接上去的传输并等待下一次传输的开始.主设备寻址到从设备后,发送它所要读取或写入的从设备的内部寄存器地址;以后,发送数据.数据发送终了后,发送停止位.(这段看不懂就别看了,没什么用)写入过程如下:发送起始位1)发送从设备的地址和读/写选择位;释放总线,等到EEPROM拉低总线进行应对;如果EEPROM接收成功,则进行应对;若没有握手成功或者发送的数据错误时EEPROM不发生应对,此时请求重发或者终止.2)发送想要写入的内部寄存器地址;EEPROM对其发出应对;3)发送数据4)发送停止位.5)EEPROM收到停止旌旗灯号后,进入到一个内部的写入周期,大概须要10ms