您的位置:首页 > 其它

串行通信i2c总线协议简明教程(连接方式,读写时序,24CXX系列EEPROM)

2012-03-15 21:07 411 查看
一、技术性能:

标准速率100kbit/s,快速模式400kbit/s,高速模式略;

支持多机通讯;

支持多主控模块,但同一时刻只允许有一个主控;

由数据线SDA和时钟SCL构成串行总线;

每个电路和模块都有唯一的地址;

每个器件可以使用独立电源但是必须共地;

--------------------------------------------------------------

二、连接方式:



连接到总线的两个器件端口(SDA和SCL)必须是漏极开路或者集电极开路,这样才能执行线与功能,所以SDA和SCL都还要通过一个上拉电阻接正的电源电压。

--------------------------------------------------------------

三、总线基本状态:

1、总线空闲(A)

数据线和时钟线同时为高电平。

2、启动数据传输(B)

时钟(SCL)为高电平时,SDA 从高电平变为低电平表示起始条件产生。起始条件必须先于所有的命令产生。

3、停止数据传输(C)

时钟(SCL)为高电平时, SDA 从低电平变为高电平表示停止条件产生。所有操作都必须以停止条件结束。

4、数据传送/数据有效 (D)

数据线的状态表明数据何时有效。在起始条件之后,数据线在时钟处于高电平期间保持稳定。必须在时钟信号为低电平期间改变数据线。一个数据位对应一个时钟脉冲。数据的每次传输以起始条件开始,以停止条件结束。在起始条件和停止条件之间传输的数据字节数目由主器件决定。



5、确认信号(ACK)

每一个被寻址的接收器在接收到每一字节数据后,应发送一个确认位。主器件必须提供一个额外的时钟以传输确认位。在确认时钟脉冲内,器件确认须拉低 SDA 线。在确认时钟的高电平期间,SDA线以这种方式保持稳定的低电平。当然,还必须考虑建立时间和保持时间。



6、 无应答信号(NACK)

在时钟的第9个脉冲期间发送器释放数据总线,接收器不拉低数据总线表示一个 NACK,NACK有两种用途:a、一般表示接收器未成功接收数据字节;b、当接收器是主控器时,它收到最后一个字节后,应发送一个NACK信号,以通知被控发送器结束数据发送,并释放总线,以便主控接收器发送一个停止信号STOP。

7、其它信号如插入等待、重启动、时钟同步、总线仲裁、总线封锁等不经常使用,请参阅资料。

--------------------------------------------------------------

四、基本工作时序:

以启动信号START来掌管总线,以停止信号STOP来释放总线;

每次通讯以START开始,以STOP结束;

启动信号START后紧接着发送一个控制字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R./W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据;

当被控器件检测到收到的地址与自己的地址相同时,在第9个时钟期间反馈应答信号;

每个数据字节在传送时都是高位(MSB)在前;

写数据过程:

1、主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;

2、发送一个控制字节(包括7位器件地址码和一位R/W);(某些器件的地址字节可能带有其他功能)

3、当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);

4、主控收到ACK后开始发送第一个数据字节;

5、被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束;

6、主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;

写数据时序:

a.单字节写操作



(注:图中控制字节指器件地址码和读写控制位;地址字节指器件内部的储存器地址。下同。)

b.多字节连续写操作(被控器件完成一个写字节操作后内部地址计数器自动加一)



读数据过程:

1、主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;

2、发送一个控制字节(包括7位器件地址码和一位R/W);(某些器件的地址字节可能带有其他功能)

3、当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);

4、主控收到ACK后释放数据总线,开始接收第一个数据字节;

5、主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;

6、主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;

a.当前地址读单字节操作(被控器件内部储存器地址计数器保留最后一次访问的地址)



b.任意地址读单字节操作(主控器件先发写命令,然后发要读的地址,然后发读命令)



c.多字节连续读操作(被控器件完成一个读字节操作后内部地址计数器自动加一)



注:以上操作符合24CXX系列EEPROM器件读写时序。

--------------------------------------------------------------

五、寻址约定

一般器件地址码分为两部分:1、高4位属于固定地址不可改变,由厂家固化的统一地址;2、低三位为引脚设定地址,可以由外部引脚来设定(并非所有器件都可以设定)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: