如何知道多主站环境中I2C总线是否正忙?

问题描述 投票:0回答:1

假设连接了多个主设备的I2C网络和一些从设备。主人已经与特定的奴隶进行通信。现在,如果另一个主机想通过在总线上发送一些从机地址来启动通信,那么新主机如何知道总线已经忙,它应该等到它被释放?

embedded i2c firmware
1个回答
1
投票

所有设备(主设备和从设备)都将跟踪总线的状态。

一旦找到启动条件,总线就会被认为是忙,直到收到停止。哪个主人确切拥有总线是由总线仲裁决定的。

失去仲裁的主设备将报告仲裁丢失(通过寄存器中的一些标志)并等待直到找到停止条件。

如果master没有启动事务,它将报告总线忙于其他一些标志,并将继续跟踪总线状态以检测Stop条件。

通过对公交线路进行一次采样,无法判断公交车是否空闲。是的,如果你看到某条线路为0,那肯定意味着总线很忙,但是当你看到两条线路都是1时,这并不意味着总线是免费的。所有设备必须跟踪总线状态变化以检测启动/停止条件。

© www.soinside.com 2019 - 2024. All rights reserved.