I2C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980年代初设计的,方便了主板、嵌入式系统或手机与周边设备组件之间的通讯。由于其简单性,它被广泛用于微控制器与传感器阵列,显示器,IoT设备,EEPROM等之间的通信。
I2C主要特点如下所示:
- 只需要两条总线;
- 没有严格的波特率要求,例如使用RS232,主设备生成总线时钟;
- 所有组件之间都存在简单的主/从关系,连接到总线的每个设备均可通过唯一地址进行软件寻址;
- I2C是真正的多主设备总线,可提供仲裁和冲突检测;
- 传输速度分为四种模式:
1、标准模式:Standard Mode=100 Kbps
2、快速模式:Fast Mode=400 Kbps
3、高速模式:High speed mode=3.4 Mbps
4、超快速模式:Ultra fast mode=5 Mbps
- 最大主设备数:无限制;
- 最大从机数:理论上是127。
1、硬件层
I2C协议仅需要SDA和SCL两个引脚。SDA是串行数据线的缩写,而SCL是串行时钟线的缩写。这两条数据线需要接上拉电阻。设备间的连接如下图所示:
使用I2C,可以将多个从机(Slave
)连接到单个主设备(Master
)(一对多通信),并且还可以有多个主设备(Master
)控制一个或多个从机(