13.2.8 仲裁
2025年09月26日
13.2.8 仲裁
如果两个或更多个主发送器要同时向同一个总线发送数据,就需要启动仲裁程序。通过仲裁决定如何选取串行数据总线上的数据。图13-12给出了两器件的仲裁过程。一个主发送器将SDA置高电平,被另一个将SDA置低电平的主发送器控制。也就是说,传输最低二进制串行数据流的器件具有优先权。如果两个或多个器件发送的数据首字节相等,则仲裁结果将继续选取随后的数据字节。
图13-12 两个主发送器之间的仲裁过程
如果I2C模块丢失主模块模式,它就转变为从接收器模式,发送仲裁丢失标志(AL),并产生一个仲裁丢失中断请求。
如果在串行传输过程中,向SDA发送重复START或STOP操作指令时一个仲裁程序也正在运行,其主发送器必须在同一位置以固定格式发送重复START或STOP操作指令,不能在以下数据信号之间产生仲裁:
①重复START条件与一个数据位之间。
②STOP条件与一个数据位之间。
③重复START条件与STOP条件之间。