1 IIC简介
IIC(Inter-Integrated Circuit)总线是一种由 NXP(原 PHILIPS)公司开发的两线式串行总线, 用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合 使用,传输距离短,任意时刻只能有一个主机等特性。
在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。
PS: 这里要注意 IIC 是为了与低速设备通信而发明的,所以 IIC 的传输速率比不上 SPI。

图1 IIC总线物理拓扑图
2 IIC物理层
2.1 IIC硬件
IIC有两条总线,一条双向的串行数据线SDA,一条串行时钟线SCL。
SDA(Serial data):串行数据线,用来传送数据;
SCL(Serial clock line):时钟线,用来控制数据发送的时序。
所有接到IIC总线上的设备的SDA线都接到总线的SDA上,各设备的时钟线SCL都接到总线的SCL上。IIC总线上的每一个设备都有一个唯一的地址,以确保不同设备之间的访问互不干扰。
2.2 IIC协议特点
- IIC主设备(master):主要产生时钟,产生起始和结束信号;
- IIC从设备(slave):可编程的IIC地址检测,停止位检测等;
- 支持不同的通信速率(100KHz~400KHz);
- SCL和SDA都需要接上拉电阻 (大小由速度和容性负载决定一般在3.3K-10K之间) 保证数据的稳定性,减少干扰;
- IIC是半双工,而不是全双工,同一时间只可以单向通信。
物理层小结:
I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,SCL和SDA被上拉电阻Rp拉高,使SDA和SCL线都保持高电平。
I2C通信方式为半双工,只有一根SDA线,同一时间只可以单向通信,SPI和uart通信为全双工。
3 IIC协议层
-
开始信号(Start): SCL为高电平时,SDA由高电平向低电平跳变,标志着开始传输数据;

本文详细介绍了IIC(Inter-Integrated Circuit)总线协议,包括其硬件构成、协议特点、数据传输过程中的开始信号、结束信号、应答信号以及数据有效性的规则。IIC总线采用两线式串行通信,支持100Kbps到400Kbps的传输速率,具有简单的物理连接和半双工通信特性。在数据传输中,IIC协议详细规定了写数据和读数据的过程,确保了主从设备间高效、准确的数据交换。

15万+

被折叠的 条评论
为什么被折叠?



