IIC总线仲裁机制
应用场合:同一总线上有多个Master同时访问Slaver
为什么需要总线仲裁?
-
避免总线冲突:多个主设备尝试驱动总线时,如果没有仲裁机制,总线可能会出现冲突,导致数据传输错误或者设备损坏
-
数据完整性:两个主设备同时传输数据时,接收设备可能会收到混乱的数据包。仲裁机制确保总线使用权明确,保证数据完整、可靠。
-
优先级处理:在一些应用场景中,不同主设备有不同的优先级,仲裁机制可以实现优先级管理,使得高优先级任务可以优先获得总线使用权。
如何实现仲裁?
仲裁方法:SDA数据线(OC与OD)线与结构
总线空闲状态检测:主机在发送数据前先检测总线是否空闲(SCL/SDA均为高电平)
IIC的起始信号:SCL为高电平时,SDA由高电平变为低电平
DATA1表示主机Master1的数据SDA线
DATA2表示主机Master2的数据SDA线
SDA表示线与DATA1与DATA2后 IIC总线上的SDA线
SCL表示IIC总线上的SCL线