I2C协议:主从时钟和数据控制的作用

2023-05-11 10:45发布

大家好

当谈到主控和从控都控制时钟和数据线的场景时,我有点困惑。

到目前为止,我已经了解到:我了解到,当主设备启动写操作时,它需要控制时钟和数据线来向从设备发送数据。然而,我不太清楚奴隶是如何控制这些线路的,以及它是在什么时候这样做的。

有人能帮我解释一下吗?具体来说,我很好奇从机是如何控制时钟和数据线的。从从设备读取操作期间会发生这种情况吗?如果是,这个过程是如何工作的?

期待您对此问题的见解和澄清!

提前谢谢!


5条回答
luckylsy
1楼 · 2023-05-25 16:45.采纳回答

一般出现这种情况的情景是:从设备保持SCL较低是为了延长时钟。(否则,您可以使用I2C拓扑,其中在同一总线上有多个主机,但我觉得这不是您在这里所讨论的问题。)

参考说明:https://www.i2c-bus.org/clock-stretching/


linda
2楼-- · 2023-09-03 16:56

这里有一个官方的I2C规范,其中详细说明了所有可能的模式以及允许clock stretching的位置-https://www.nxp.com/docs/en/user-guide/UM10204.pdf

小岩赫赫
3楼-- · 2023-09-03 16:58

我很少使用I2C。简要回顾一下我记忆中的内容:

主控器始终控制时钟线,但数据方向可以变化。

主机首先发送8位字节,其中有7个地址位和一个读/写位。

第九位是“确认位”,由从机在主机生成的时钟脉冲上发送。

之后,数据的方向取决于主机是想发送还是接收数据。

每个字节后面都有一个向另一个方向发送的确认位。

除了最后一个字节。该字节未被确认,这表示数据传输结束。

I2C_Spec_UM10204.pdf


唐爱康
4楼-- · 2023-09-03 17:01

在标准模式(Sm、Fm)中,从机可以对字节中的任何操作应用拉伸,它可以拉伸它想要的每一位。


在Hs模式下,拉伸发生的位置有限制。


飘过的浮云
5楼-- · 2023-09-03 17:02

在Hs模式下,拉伸发生的位置有限制。


Hs不同的原因是Hs总体上非常不同。Hs模式设备非常罕见,因此我认为它们不相关。所有真正需要高速的东西都使用SPI。


实际上,大多数从设备都会在ACK之前伸展,让MCU处理数据并准备响应。


一周热门 更多>