"I2C (SMBUS) 总线协议规范"
I2C协议,全称为Inter-Integrated Circuit,是由荷兰飞利浦公司于1992年开发的一种简单且高效的两线式串行通信协议,最初设计用于在电子设备内部连接不同组件。I2C协议具有专利保护,任何使用此协议的元件都需要获得飞利浦(现为NXP半导体)的授权。
I2C协议的特点主要包括以下几点:
1. **总线线路**:I2C协议仅需要两条总线线路,即串行数据线(SDA)和串行时钟线(SCL),它们都是双向的,并通过上拉电阻连接至正电源电压,以确保空闲时线路上的高电平状态。
2. **地址机制**:每个连接到I2C总线的设备都有一个独特的7位或10位地址,加上一个读写位,总共8位或9位。设备的地址可以软件设置,主设备可以通过这些地址寻址从设备,进行发送或接收数据。
3. **多主机支持**:I2C总线支持多个主机,如果多个主机同时尝试启动数据传输,总线会通过冲突检测和仲裁机制避免数据损坏。
4. **传输速率**:I2C协议有多种工作模式,包括标准模式(100kHz)、快速模式(400kHz)和高速模式(最高3.4MHz),以适应不同的应用需求。
5. **数据完整性**:总线上的滤波器有助于消除数据线上的噪声,确保数据传输的准确性和完整性。
6. **器件角色**:在I2C总线上,每个器件可以扮演发送器、接收器或主机/从机的角色。主机负责启动和控制数据传输,而从机则是响应主机的请求,可以是接收数据或发送数据。
7. **数据有效性**:SDA线上的数据只有在SCL为低电平时才能改变,而在SCL高电平期间,SDA线上的数据必须保持稳定。
8. **起始和停止条件**:起始条件(S)发生在SCL为高电平时SDA由高变低,而停止条件(P)则是在SCL为高电平时SDA由低变高。这两个条件定义了数据传输的开始和结束。
9. **最大总线电容**:I2C总线连接的IC数量受限于总线的最大电容,通常为400pF。超过这个电容,可能会导致信号质量下降。
10. **SMBUS**:SMBUS(System Management Bus)是基于I2C协议的一个子集,主要用于系统管理任务,如电源管理、温度监测等,它规定了一些特定的命令和数据格式。
I2C协议以其高效、节省引脚数量和易于实现的特点,广泛应用于各种嵌入式系统、消费电子设备和物联网(IoT)设备中,使得微控制器和其他组件之间的通信变得更加简便。