打印
[经验分享]

IIC总线与时序

[复制链接]
楼主: bartonalfred
手机看帖
扫描二维码
随时随地手机跟帖
21
sanfuzi| | 2024-2-9 18:04 | 只看该作者 回帖奖励 |倒序浏览
IIC总线要求严格的时钟同步,所有主机和从机都必须同步到同一个时钟信号。这通过在SCL线上产生时钟信号来实现,所有器件的时钟信号必须保持一致,才能保证数据传输的准确性。

使用特权

评论回复
22
chenci2013| | 2024-2-10 20:37 | 只看该作者
在特殊情况下,如果需要禁止所有发生在I2C总线上的通信活动,封锁或关闭总线是一种可行途径。只要挂接于该总线上的任意一个器件将时钟线SCL锁定在低电平上即可实现总线封锁。

使用特权

评论回复
23
pixhw| | 2024-2-10 22:30 | 只看该作者
IIC总线对信号完整性要求较高,因此需要注意总线的布线、阻抗匹配以及电源噪声等问题,以确保数据传输的稳定性和可靠性。

使用特权

评论回复
24
zerorobert| | 2024-2-11 21:40 | 只看该作者
不同的设备对IIC总线的实现可能有所不同,因此在使用IIC总线时,需要仔细阅读并遵循相关设备的规范和要求,以确保正确、可靠地进行数据传输。

使用特权

评论回复
25
everyrobin| | 2024-2-11 23:13 | 只看该作者
起始信号:当SCL为高电平时,SDA由高电平向低电平跳变,标志着一次通信开始。
停止信号:当SCL为高电平时,SDA由低电平向高电平跳变,表示本次通信结束。

使用特权

评论回复
26
belindagraham| | 2024-2-15 21:45 | 只看该作者
I²C总线上所有器件的最高工作速度需要一致,即所有设备都支持设定的总线速度。并且在设计电路时要考虑到总线负载和电容效应对最大速度的影响。

使用特权

评论回复
27
mikewalpole| | 2024-2-15 21:58 | 只看该作者
数据传输过程中,每个数据位的传输都在SCL的上升沿之前保持稳定,在下降沿之后改变。
SDA线上的数据必须在SCL为高期间保持稳定,并且在SCL为低期间可以改变状态以准备下一个数据位的传输。

使用特权

评论回复
28
claretttt| | 2024-2-15 22:41 | 只看该作者
在数据传输时,主机先发送一个字节的数据地址,然后发送或接收数据。从机根据接收到的数据地址来判断是发送数据还是接收数据。数据传输时,需要确保SDA信号的时序正确。

使用特权

评论回复
29
pmp| | 2024-2-16 09:40 | 只看该作者
在IIC通信开始时,主机需要产生一个起始信号。这个信号由一个高电平到低电平的跳变表示,表示通信的开始。从机在检测到起始信号后,会进入接收模式。

使用特权

评论回复
30
tabmone| | 2024-2-16 10:44 | 只看该作者
IIC总线的数据传输以起始信号(START)开始,以停止信号(STOP)结束。起始信号是在SCL线为高电平时,SDA线由高电平向低电平跳变产生的;停止信号则是在SCL线为高电平时,SDA线由低电平向高电平跳变产生的。在数据传输过程中,必须严格遵守这些起始和结束条件。

使用特权

评论回复
31
jimmhu| | 2024-2-16 11:27 | 只看该作者
当多主机同时尝试控制总线时,I²C总线有一个内置的硬件仲裁机制,保证只有数据线电平最低的主机能继续传输,避免数据冲突。

使用特权

评论回复
32
wangdezhi| | 2024-2-16 11:44 | 只看该作者
SDA和SCL信号线都需要通过上拉电阻保持高电平,且在总线空闲时,这两条线路都应处于高电平状态。

使用特权

评论回复
33
eefas| | 2024-2-16 12:02 | 只看该作者
IIC总线允许多个主设备同时存在于总线上,但同一时刻只能有一个主设备进行数据传输。当多个主设备同时尝试控制总线时,会发生总线竞争。IIC总线具有仲裁机制,可以确保在多个主设备同时请求总线时,只有一个设备能够获得总线的控制权。

使用特权

评论回复
34
sanfuzi| | 2024-2-16 12:34 | 只看该作者
在连接多个IIC设备时,要注意总线电容负载的限制,以及信号线的布局,避免信号干扰和衰减。

使用特权

评论回复
35
yorkbarney| | 2024-2-16 12:54 | 只看该作者
IIC总线上的数据传输是按照一定的顺序进行的,通常是MSB(最高位)在前,LSB(最低位)在后。在每个字节传输完成后,接收方需要发送一个应答信号(ACK)以表示数据已成功接收。如果接收方无法接收更多数据或发生错误,可以发送NACK信号以通知发送方停止发送数据。

使用特权

评论回复
36
1988020566| | 2024-2-16 15:37 | 只看该作者
每个连接到IIC总线的器件都有一个唯一的地址,主机在通信开始时会通过发送这个地址来寻址指定的从机。从机在收到自己的地址后,会发送一个响应信号(ACK)给主机。

使用特权

评论回复
37
lzbf| | 2024-2-17 20:24 | 只看该作者
每次主机发送一个字节数据后,都会期待从设备返回一个应答信号(ACK)。如果从设备接收成功,则在第九个SCL周期将SDA拉低表示ACK;若不接收则保持SDA为高表示NACK。

使用特权

评论回复
38
jackcat| | 2024-2-17 21:14 | 只看该作者
当IIC总线空闲时,SDA和SCL线都被上拉电阻拉至高电平。
在空闲状态,如果所有设备都空闲,则总线保持高电平。

使用特权

评论回复
39
sesefadou| | 2024-2-17 21:23 | 只看该作者
在每次通信开始后首先发送的是7位或10位的从设备地址,随后是一个决定是读取还是写入操作的第8位(R/W位)。
从设备会根据接收到的地址和R/W位来确定是否响应此次通信。

使用特权

评论回复
40
alvpeg| | 2024-2-17 21:48 | 只看该作者
IIC通信以起始条件开始,当SCL线处于高电平时,SDA线从高电平向低电平切换表示起始条件。同样,停止条件是SCL为高电平时,SDA线由低电平向高电平切换。这两个条件是通信的开始和结束标志,必须准确产生和检测。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则