主控端
:
-
为启动数据传送
(START
指令
)
、产生时钟
(SCL)
信号并中止数据传送
(STOP
指令
)
的器件,主控端必须是传送端或接收端。
从属端
:
-
由主控端定址的器件。从属端可以扮演接收端或发送端的角色。
多重主控端
:
-
在总线上可同时存一个以上的主控端,并且不会造成冲突或数据遗失。
通常来说运用
"bit-banged"
软件的主控端并不具有多重主控端能力,
I
²
C
总线控制器提供了
一个将多重主控端硬件
I
²
C
连接端口加入到
DSP
或
ASIC
的简单方法。
仲裁机制
-
预先定义在特定时间内只有一个主控端能够取得总线控制权。
同步
:
-
预先将二个或二个以上的主控端时钟信号予以同步化的定义程序。
SDA:
-
串行数据信号线
(Serial DAta)
SCL:
-
串行时钟信号线
(Serial CLock)
目标器件的
I
²
C
地址在第一个位组中送出,
而这个起始位组中最不重要位
(LSB:
最低有
效位
)
则用来表明主控端将进行发送
(
写入
)
数据或由接收端接收
(
读取
)
数据,
称为从属器件,
每笔数据交换必须以
START
指令开头,并以
STOP
或
RESTART
情况结束。如果同一个
I
²
C
总线上有两个主控端,
且同时发出
START
指令要控制总线时,
那么就会以仲裁机制处理。
当主控端,
如微控器,
已经控制总线时,
其他的主控端必须等到第一个主控端送出
STOP
指
令,并且将总线回复闲置状态时,才能控制总线。
总线数据传送术语:
F (FREE)
:
-
总线为可用或闲置状态,这时
SDA
串行数据线与
SCL
串行时钟均为高
电位状态。
S (START)
或
R (RESTART)
:
-
数据传送是以
START
情况开始,
这时
SDA
串
行数据线的电压位准会从高电位转变为低电位,而
SCL
串行时钟则保持在高电位,当这个
情况发生时,代表了总线进入忙碌
(BUSY)
状态。
C (CHANGE)
:
-
当
SCL
串行时钟数据线为低电位时,数据位就可以由发送端放置
到
SDA
串行数据在线,
在这段时间内,
只要
SCL
串行时钟一直维持在低电位状态,
SDA
可
以改变它的状态。
D (DATA)
:
- SDA
串行数据在线高或低电位的数据在
SCL
串行时钟线处于高位准时,
在整个传输过程中时钟必须稳定维持在高电位以避免错误判读为
START
或
STOP
情况。
P (STOP)P (STOP)P (STOP)P (STOP) -
数据传输在收到
STOP
指令时结束,这时候
SDA
串行数
据线的位准由低电位回复到高电位,而
SCL
串行时钟线则维持在高电位,一但数据传送结