通信人家园
标题:
I2C总线原理
[查看完整版帖子]
[打印本页]
时间:
2010-8-30 22:22
作者:
h99110501
标题:
I2C总线原理
♦
什么是
I2C
总线?
I2C
即
Inter IC
,由
Philips
公司开发,是当今电子设计中应用非常广泛的串行总线之一,主要用于电压、温度监控,
EEPROM
数据的读写,光模块的管理等。
I2C
总线只有两根线,
SCL
和
SDA
,
SCL
即
Serial Clock
,串行参考时钟,
SDA
即
Serial Data
,串行数据。
♦
I2C
总线的速率能达到多少?
标准模式下:
100Kbps
快速模式下:
400Kbps
高速模式下:
3.4Mbps
I2C总线结构如下图所示:
<SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">
如上图所示,
I2C
是
OC
或
OD
输出结构,使用时必须在芯片外部进行上拉,上拉电阻
R
的取值根据
I2C
总线上所挂器件数量及
I2C
总线的速率有关,一般是标准模式下
R
选择
10kohm
,快速模式下
R
选取
1kohm
,
I2C
总线上挂的
I2C
器件越多,就要求
I2C
的驱动能力越强,
R
的取值就要越小,实际设计中,一般是先选取
4.7kohm
上拉电阻,然后在调试的时候根据实测的
I2C
波形再调整
R
的值。
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
♦
I2C
总线上最多能挂多少个
I2C
器件?
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
I2C
总线上允许挂接
I2C
器件的数量由两个条件决定:
1).I2C
从设备的地址位数。
I2C
标准中有
7
位地址和
10
位地址两种。如果是
7
位地址,允许挂接的
I2C
器件数量为:
27
=
128
,如果是
10
位地址,允许挂接的
I2C
器件数量为:
210
=
1024
,一般
I2C
总线上挂接的
I2C
器件不会太多,所以现在几乎所有的
I2C
器件都使用
7
位地址。
2).
挂在
I2C
总线上所有
I2C
器件的管脚寄生电容之和。
I2C
总线规范要求,
I2C
总线容性负载最大不能超过
470pF
。
♦
I2C
总线是如何工作的?
1).I2C
总线传输的特点。
I2C
总线按字节传输,即每次传输
8bits
二进制数据,传输完毕后等待接收端的应答信号
ACK
,收到应答信号后再传输下一字节。等不到
ACK
信号后,传输终止。空闲情况下,
SCL
和
SDA
都处于高电平状态。
2).
如何判断一次传输的开始?
如上图所示,
I2C
总线传输开始的标志是:
SCL
信号处于高电平期间,
SDA
信号出现一个由高电平向低电平的跳变。
3).
如何判断一次传输的结束?
如上图所示,
I2C
总线传输结束的标志是:
SCL
信号处于高电平期间,
SDA
信号出现一个由低电平向高电平的跳变。跟开始标识正好相反。
4).
什么样的
I2C
数据才是有效的。
在
SCL
处于高电平期间,
SDA
保持状态稳定的数据才是有效数据,只有在
SCL
处于低电平状态时,
SDA
才允许状态切换。前面已经讲过了,
SCL
高电平期间,
SDA
状态发生改变,是传输开始
/.
结束的标志。
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
♦
I2C
总线的主要时序参数有哪些?
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
I2C
总线的主要时序参数有:开始建立时间
t SU:STA
,开始保持时间
t HD:STA
,数据建立时间
t SU:DAT
,数据保持时间
t SU:DAT
,结束建立时间
t SU:STO
。如下图所示:
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
开始建立时间:
SCL
上升至幅度的
90%
与
SDA
下降至幅度的
90%
之间的时间间隔;
开始保持时间:
SDA
下降至幅度的
10%
与
SCL
下降至幅度的
10%
之间的时间间隔;
数据建立时间:
SDA
上升至幅度的
90%
或
SDA
下降至幅度的
10%
与
SCL
上升至幅度的
10%
之间的时间间隔;
数据保持时间:
SCL
下降至幅度的
10%
与
SDA
上升至幅度的
10%
或
SDA
下降至幅度的
90%
之间的时间间隔;
结束建立时间:
SCL
上升至幅度的
90%
与
SDA
上升至幅度的
90%
之间的时间间隔;
I2C总线的时序参数要求:
♦
I2C
总线如何进行读写操作?
如上图所示,
I2C
开始传输时,第一个字节的前
7bit
是地址信息
(7
位地址器件
)
,第
8bit
是操作标识,为“
0
”时表示写操作,为“
1
”时表示读操作,第
9
个时钟周期是应答信号
ACK
,低有效,高电平表示无应答,传输终止。在上图中还可以看出,正常情况下,写操作是
I2C
主设备方发起终止操作的,而读操作时,
I2C
主控制器在接收完最后一个数据后,不对从设备进行应答,传输终止。
♦
I2C
总线案例分析
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">
问题描述:
在测试某
I2C
总线时,发现
SDA
数据线上有毛刺,而且出现的位置很有规律,一般在第
9
,
18
,
27-----
时钟周期的后面。如下图所示。
问题分析:
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
<SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
如上图所示,
t1
是
I2C
总线上的
Slave
设备应答信号
ACK(
第
9
个时钟周期输出
)
相对与参考时钟
SCL
下降沿的滞后时间。数据方向是
Slave-->
Master
。
t 2
是
I2C
总线上的
Master
设备在第
10
个时钟输出相对了参考时钟
SCL
的滞后时间。数据方向是
Master-->
Slave
。
∆t
是
Master
设备与
Slave
设备输出数据延迟的时间差。
Master
设备发出最后一个
bit
数据后,总线的使用权交给
Slave
设备使用,由
Slave
设备发出应答信号
ACK
,该信号在
SCL
下降沿经
t1
延迟后发出,在
SCL
的下一个时钟沿后内经
t1
后结束。而
Master
设备在同一个时钟沿,经常
t2
延迟后发出第
9bit
数据,这样在
∆t (t2-t1)
时间内,
Master
和
Slave
设备都没有使用总线,由于
SDA
是
OC/OD
输出,芯片外面通过电阻
R
上拉到
VCC
,将
SDA
电平拉升,但是由于
∆t
很短,
VCC
还没来的及将
SDA
拉到稳定的高电平,
Master
就开始发出数据“
时间:
2010-9-3 21:21
作者:
h99110501
VCC还没来的及将SDA拉到稳定的高电平,Master就开始发出数据“0”将SDA拉低,因此就在SDA上形成了宽度很窄的半高电平,就是我们观察到的毛刺。此毛刺不会I2C总线的读写时序产生影响。无需处理。
时间:
2010-9-21 11:20
作者:
zzy418432
看不明白..
通信人家园 (https://www.txrjy.com/)
Powered by C114