目录
一、I2C协议介绍
1、什么是I2C协议
I2C总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有 I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与 SMBus 2.0 兼容。I2C总线有多种用途,包括 CRC 码的生成和校验、SMBus(系统管理总线 System Management Bus)、PMBus(电源管理总线 Power Management Bus)。根据特定设备的需要,可以使用 DMA 以减轻 CPU 的负担。
2、I2C 协议的物理层和协议层
(1)物理层
I2C是一个支持设备的总线。对于I2C 总线,只使用两条总线线路,一条双向串行数据线(SDA)以及一条串行时钟线(SCL)。每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之 间的访问。总线通过上拉电阻接到电源。当 I2C 设备空闲时,会输出高阻态,而当所有设备都空 闲,都输出高阻态时,由上拉电阻把总线拉成高电平。多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用 总线。 具有三种传输模式:标准模式传输速率为 100kbit/s ,快速模式为 400kbit/s ,高速模式 下可达 3.4Mbit/s,但目前大多 I 2C 设备尚不支持高速模式。连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。
详情可以参考野火官网给出的玩转手册。

(2)协议层
主要是定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等。
当 SCL 是高电平时 SDA 线由低电平向高电平切换,表示通讯的停止。起始和停止信号一般由主机产生。

2C 使用 SDA 信号线来传输数据,使用 SCL信号线进行数据同步。
STM32与I2C:实现AHT20温湿度传感器数据采集与显示

最低0.47元/天 解锁文章
2101

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



