通信协议-IIC协议
通信协议-IIC协议
简介
I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,
可扩展性强。
物理层
物理连接如下图所示:
特点如下:
- 共用信号线、可挂载多个从设备,也可有多个主机。
- 双向串行数据线 (SDA) 、串行时钟线 (SCL) 。
- 从设备都有一个独立的地址 ,以提供主机识别。
- 总线通过上拉电阻接到电源 ,I2C 设备空闲时,输出高阻态 ;当所有设备都空闲,都
输出高阻态 ,此时上拉电阻把总线拉成高电平。 - 多个主机同时使用总线 需要使用仲裁决定哪个主机占用总线。
- 具有三种传输模式:标准模式传输速率为 100kbit/s ,快速模式为 400kbit/s ,高速模式下可达
3.4Mbit/s,但目前大多 I2C 设备尚不支持高速模式 。 - 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制。
对于stm32模拟GPIO一般使用开漏模式。
协议层
起始和停止信号
黄色表示操作区域
传输数据有效性
黄色区域是数据有效部分,SDA不能改变
传输地址和方向
一般IIC是7位地址,最后一位是读或者写
MSB(Most Significant Bit)–最高有效位
LSB(Least Significant Bit)–最低有效位
代码
github