首页 > 其他分享 >IIC总线的仲裁机制

IIC总线的仲裁机制

时间:2022-11-20 10:46:44浏览次数:62  
标签:总线 低电平 发送 主控 仲裁 IIC 节点

转:https://blog.csdn.net/lpwsw/article/details/121778724

先说结论:

遵循3个机制

  1. “线与”机制。多主机时,总线具有“线与”的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。
  2. SDA回读机制。总线被启动后,多个主机在每发送一个数据位时都要对自己的输出电平进行检测,只要检测的电平与自己发出的电平一致,就会继续占用总线。
  3. 低电平优先机制。由于线与的存在,当多主机发送时,谁先发送低电平谁就会掌握对总线的控制权。

=========================================================================

以下为摘抄,就不重复啰嗦了I2C总线仲裁原理_yangkuiwu的博客-CSDN博客_i2c仲裁

        I2C中心以启动信号START来掌管总线,以停止信号STOP来释放总线;启动信号START后紧

接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R/W位为0表示由

主控向被控器件写数据,R/W为1表示由主控向被控器件读数据;当被控器件检测到收到的地址与

自己的地址相同时,在第9个时钟期间反馈应答信号;每个数据字节在传送时都是高位(MSB)在

前;信号波形如下图所示。

        I2C总线上可能在某一时刻有两个主控设备要同时向总线发送数据,这种情况叫做总线竞争。

I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是这样的: 假

设主控器1要发送的数据DATA1为“101 ……”;主控器2要发送的数据DATA2为“1001 ……”总线被启

动后两个主控器在每发送一个数据位时都要对自己的输出电平进行检测,只要检测的电平与自己发

出的电平一致,他们就会继续占用总线。在这种情况下总线还是得不到仲裁。当主控器1发送第3位

数据“1”时(主控器2发送“0” ),由于“线与”的结果SDA上的电平为“0”,这样当主控器1检测自己的

输出电平时,就会测到一个与自身不相符的“0”电平。这时主控器1只好放弃对总线的控制权;因此

主控器2就成为总线的唯一主宰者。不难看出:

  1. 对于整个仲裁过程主控器1和主控器2都不会丢失数据;
  2.  各个主控器没有对总线实施控制的优先级别,他们遵循“低电平优先”的原则,即谁先发送低电平谁就会掌握对总线的控制权。

=========================================================================

以下也为摘抄I2C总线的仲裁机制_maple-CSDN博客_i2c仲裁

        在多主的通信系统中。总线上有多个节点,它们都有自己的寻址地址,可以作为从节点被别

的节点访问,同时它们都可以作为主节点向其他的节点发送控制字节和传送数据。但是如果有两个

或两个以上的节点都向总线上发送启动信号并开始传送数据,这样就形成了冲突。要解决这种冲

突,就要进行仲裁的判决,这就是I 2C总线上的仲裁。

        I2C总线上的仲裁分两部分:SCL线的同步和SDA线的仲裁。

1  SCL线的同步(时钟同步)

        SCL同步是由于总线具有线“与”的逻辑功能,即只要有一个节点发送低电平时,总线上就表现

为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线“与”逻辑功能的原

理,当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号。这就是SCL的同步原理

2 SDA仲裁

        SDA线的仲裁也是建立在总线具有线“与”逻辑功能的原理上的。节点在发送1位数据后,比较

总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争。SDA线的仲裁可以

保证I2C总线系统在多个主节点同时企图控制总线时通信正常进行并且数据不丢失。总线系统通过

仲裁只允许一个主节点可以继续占据总线。

3 仲裁过程

两个主节点的仲裁过程

        上图是以两个节点为例的仲裁过程。DATA1和DATA2分别是主节点向总线所发送的数据信

号,SDA为总线上所呈现的数据信号,SCL是总线上所呈现的时钟信号。当主节点1、2同时发送起

始信号时,两个主节点都发送了高电平信号。这时总线上呈现的信号为高电平,两个主节点都检测

到总线上的信号与自己发送的信号相同,继续发送数据。第2个时钟周期,2个主节点都发送低电平

信号,在总线上呈现的信号为低电平,仍继续发送数据。在第3个时钟周期,主节点1发送高电平信

号,而主节点2发送低电平信号。根据总线的线“与”的逻辑功能,总线上的信号为低电平,这时主

节点1检测到总线上的数据和自己所发送的数据不一样,就断开数据的输出级,转为从机接收状

态。这样主节点2就赢得了总线,而且数据没有丢失,即总线的数据与主节点2所发送的数据一样,

而主节点1在转为从节点后继续接收数据,同样也没有丢掉SDA线上的数据。因此在仲裁过程中数

据没有丢失。

总结:SDA仲裁和SCL时钟同步处理过程没有先后关系,而是同时进行的。 

标签:总线,低电平,发送,主控,仲裁,IIC,节点
From: https://www.cnblogs.com/amxiang/p/16907973.html

相关文章

  • IIC总线时序
    IIC标准速率为100Kbit/s,快速模式400Kbit/s,支持多机通信,支持多主控模块,但是同一时刻只允许有一个主控。由数据线SDA和时钟SCL构成串行总线;每个电路模块都有唯一地址。I2C设......
  • IIC协议时序2
                                       I2C通讯协议及时序图    I2C总线,PHILIPS公司定义的......
  • Linux下IIC子系统和触摸屏驱动
    Linux下IIC子系统和触摸屏驱动1.IIC简介  I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域......
  • 方正璞华法律自助咨询服务平台在贵州市仲裁院“持证上岗”, 随时随地满足群众仲裁需求!
    法律自助咨询服务平台/贵阳市劳动人事争议仲裁院为构建覆盖城乡的公共法律服务体系,让当事人享受到便捷、高效的法律服务,2022年11月7日,方正璞华法律自助咨询服务平台在贵......
  • IIC从地址之7位,8位和10位详解
    7位寻址在7位寻址过程中,从机地址在启动信号后的第一个字节开始传输,该字节的前7位为从机地址,第8位为读写位,其中0表示写,1表示读。图1:7位寻址。I2C总线规范规定,标准模式I2C......
  • ZYNQ PS端IIC接口使用-笔记
    ZYNQ7000系列FPGA的PS自带两个IIC接口,接口PINIO可扩展为EMIO形式即将IO约束到PL端符合电平标准的IO(BANK12、BANK13、BANK34、BANK35);SDK中需要对IIC接口进行初始化在黑......
  • zynq系列之-----PS端iic使用
    本文主要讲述zynq的iic使用。此IIC只能作为主站,作为从站的不适合本文。Iic的接口在ps端。(iic的接口在pl端的情况下,不适合本文)使用软件版本:vivado2018.3pl端设置:转载:xi......
  • CAN总线数据链路层(一)
    1.通信机制发送报文。1.首先检测Bus状态,空闲则发送报文且回读        2.线与机制,若有两个节点同时发报文         报文结构:         ......
  • 物联网网关开发:基于MQTT消息总线的设计过程(上)
    道哥的第021篇原创文章目录​​一、前言​​​​二、网关的作用​​​​2.1指令转发​​​​2.2外网通信​​​​2.3协议转换​​​​2.4设备管理​​​​2.5边沿......
  • 图解计算机内部的高速公路 —— 总线系统
    本文已收录到 GitHub·AndroidFamily,有Android进阶知识体系,欢迎Star。技术和职场问题,请关注公众号[彭旭锐]进Android面试交流群。前言大家好,我是小彭。在......