1 同步:
时钟同步是通过各个能产生时钟的器件线连接到SCL线上来实现的,上述的各个器件可能都有自己独立的时钟,各个时钟信号的频率、周期、相位和占空比可能都不相同,由于线与的结果,在SCL线上产生的实际时钟的低点平宽度由低电平持续时间最长的器件决定,而高平宽由高电平持续时间最短的器件决定。
2 仲裁
当总线空闲时,多个主机同时启动传输,可能会有不止一个主机检测到满足起始信号,而同时获得主机权,这样就要进行仲裁。当SCL线是高电平时,仲裁在SDA线发生,当其他主机发送低电平时,发送高电平的主机将丢失仲裁,因为总线上的点平与它自己的电平不同。
仲裁可以持续多位,它的第一个阶段是比较地址位,如果每个主机都尝试寻址相同的器件,仲裁会继续比较数据位,或者比较相应位,因为I2C总线的地址和数据信息是由赢得仲裁的主机决定,在仲裁过程中不会丢失信息。
3 用时钟同步机制作为握手
器件可以快速接收数据字节,但可能需要更多时间保存接收到的字节或准备一个要发送的字节,此时,这个器件可以使SCL线保持低电平,迫使与之交换数据的器件进入等待状态,知道准备好下一字节的发送或接收。如果有不懂,可以阅读基础知识点:ARM协处理器接口。
信息来源:
http://www.lirenedu.org/index.php?ack=xinwen&id=1158