CN106155971A - I2c总线的仲裁方法及装置 - Google Patents
I2c总线的仲裁方法及装置 Download PDFInfo
- Publication number
- CN106155971A CN106155971A CN201610519573.4A CN201610519573A CN106155971A CN 106155971 A CN106155971 A CN 106155971A CN 201610519573 A CN201610519573 A CN 201610519573A CN 106155971 A CN106155971 A CN 106155971A
- Authority
- CN
- China
- Prior art keywords
- master devices
- bus
- control
- sends
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Abstract
本发明公开了一种I2C总线的仲裁方法及装置,该方法包括:接收到第一主控器件发送的内部集成电路I2C总线控制请求后,向第二主控器件发送I2C总线释放请求,所述第二主控器件拥有所述I2C总线的控制权;若接收到所述第二主控器件发送的I2C总线释放响应,则向所述第一主控器件发送I2C总线控制响应;接收到所述第一主控器件发送的I2C总线控制应答后,将所述I2C总线的控制权分配给所述第一主控器件。该方案中,对于各个主控器件的I2C总线控制请求可以准确高效地进行仲裁,减少冲突产生的概率,从而减少主控器件获取仲裁结果的延时,有利于处理实时业务。
Description
技术领域
本发明涉及计算机技术领域,尤指一种内部集成电路(Inter-IntegratedCircuit,I2C)总线的仲裁方法及装置。
背景技术
I2C总线是由同步数据衔接器(Synchronous Data Adapter,SDA)和串行通信环路(Serial Communication Loop,SCL)构成的两线式串行总线,由于其使用两线的硬件接口非常简单,在交换机、路由器、服务器等网络设备中应用广泛。I2C总线遵循严格的主从机制,任何时刻I2C总线上只有一个主控器件对从属器件进行读写操作,现有的很多网络设备中,存在多个主控器件共用一条I2C总线的情况,这种情况下如果有两个或两个以上的主控器件都向I2C总线发送启动信号并开始传送数据,就会形成冲突。要解决这种冲突,需要进行仲裁和判决,即I2C总线的仲裁。
目前,通常是通过I2C总线自带的仲裁机制进行仲裁,当连接在I2C总线上的主控器件较多时,冲突产生的概率会升高,主控器件获取I2C总线仲裁结果的延时相应增加,不利于处理实时业务。
发明内容
本发明实施例提供一种I2C总线的仲裁方法及装置,用以解决现有的I2C总线的仲裁方法中存在的冲突产生概率高导致的主控器件获取仲裁结果延时长、不利于处理实时业务的问题。
根据本发明实施例,提供一种I2C总线的仲裁方法,应用在网络设备中,所述网络设备包括至少两个主控器件,其特征在于,所述方法包括:
接收到第一主控器件发送的内部集成电路I2C总线控制请求后,向第二主控器件发送I2C总线释放请求,所述第二主控器件拥有所述I2C总线的控制权;
若接收到所述第二主控器件发送的I2C总线释放响应,则向所述第一主控器件发送I2C总线控制响应;
接收到所述第一主控器件发送的I2C总线控制应答后,将所述I2C总线的控制权分配给所述第一主控器件。
具体的,接收到第一主控器件发送的I2C总线控制请求,具体包括:
若监控到所述第一主控器件在第一控制寄存器中与所述第一主控器件对应的位置写入有控制需求信息,则确定接收到所述第一主控器件发送的I2C总线控制请求。
具体的,接收到所述第二主控器件发送的I2C总线释放响应,具体包括:
若监控到所述第二主控器件在所述第一控制寄存器中与所述第一主控器件对应的位置写入无控制需求信息、在第二控制寄存器中与所述第二主控器件对应的位置写入未控制信息、以及在与所述第二主控器件对应的第一状态寄存器中写入已释放信息,则确定接收到所述第二主控器件发送的I2C总线释放响应。
具体的,接收到所述第一主控器件发送的I2C总线控制应答,具体包括:
若监控到所述第一主控器件在第二控制寄存器中与所述第一主控器件对应的位置写入已控制信息、以及在与所述第二主控器件对应的第一状态寄存器写入已释放信息,则确定接收到所述第一主控器件发送的I2C总线控制应答。
具体的,将所述I2C总线的控制权分配给所述第一主控器件,具体包括:
若检测到第二控制寄存器中与所述第一主控器件对应的位置写入已控制信息、以及所述第二控制寄存器中与所述第二主控器件对应的位置写入未控制信息,则将I2C缓冲器的通道连通所述第一主控器件。
可选的,若默认设置所述第二主控器件拥有所述I2C总线的控制权,所述方法还包括:
接收到所述第一主控器件发送的I2C总线释放请求后,向所述第二主控器件发送I2C总线控制请求;
接收到所述第二主控器件发送的I2C总线控制响应后,将所述I2C总线的控制权分配给所述第二主控器件。
具体的,接收到所述第一主控器件发送的I2C总线释放请求,具体包括:
若监控到所述第一主控器件在与所述第一主控器件对应的第二状态寄存器在中写入已释放信息、以及在第二控制寄存器中与所述第一控制器件对应的位置写入未控制信息,则确定接收到所述第一主控器件发送的I2C总线释放请求。
具体的,接收到所述第二主控器件发送的I2C总线控制响应,具体包括:
若监控到所述第二主控器件在与所述第一主控器件对应的第二状态寄存器在中写入未释放信息、以及在第二控制寄存器中与所述第二主控器件对应的位置写入已控制信息,则确定接收到所述第二主控器件发送的I2C总线控制响应。
具体的,将所述I2C总线的控制权分配给所述第二主控器件,具体包括:
若检测到第二控制寄存器中与所述第一主控器件对应的位置写入未控制信息、以及所述第二控制寄存器中与所述第二主控器件对应的位置写入已控制信息,则将I2C缓冲器的通道连通所述第二主控器件。
根据本发明实施例,还提供一种I2C总线的仲裁装置,应用在网络设备中,所述网络设备包括至少两个主控器件,所述装置包括:
第一收发单元,用于接收到第一主控器件发送的内部集成电路I2C总线控制请求后,向第二主控器件发送I2C总线释放请求,所述第二主控器件拥有所述I2C总线的控制权;
第二收发单元,用于若接收到所述第二主控器件发送的I2C总线释放响应,则向所述第一主控器件发送I2C总线控制响应;
第一分配单元,用于接收到所述第一主控器件发送的I2C总线控制应答后,将所述I2C总线的控制权分配给所述第一主控器件。
具体的,所述第一收发单元,用于接收到第一主控器件发送的I2C总线控制请求,具体用于:
若监控到所述第一主控器件在第一控制寄存器中与所述第一主控器件对应的位置写入有控制需求信息,则确定接收到所述第一主控器件发送的I2C总线控制请求。
具体的,所述第二收发单元,用于接收到所述第二主控器件发送的I2C总线释放响应,具体用于:
若监控到所述第二主控器件在所述第一控制寄存器中与所述第一主控器件对应的位置写入无控制需求信息、在第二控制寄存器中与所述第二主控器件对应的位置写入未控制信息、以及在与所述第一主控器件对应的第一状态寄存器中写入已释放信息,则确定接收到所述第二主控器件发送的I2C总线释放响应。
具体的,所述第一分配单元,用于接收到所述第一主控器件发送的I2C总线控制应答,具体用于:
若监控到所述第一主控器件在第二控制寄存器中与所述第一主控器件对应的位置写入已控制信息、以及在与所述第二主控器件对应的第一状态寄存器写入未释放信息,则确定接收到所述第一主控器件发送的I2C总线控制应答。
具体的,所述第一分配单元,用于将所述I2C总线的控制权分配给所述第一主控器件,具体用于:
若检测到第二控制寄存器中与所述第一主控器件对应的位置写入已控制信息、以及所述第二控制寄存器中与所述第二主控器件对应的位置写入未控制信息,则将I2C缓冲器的通道连通所述第一主控器件。
可选的,若默认设置所述第二主控器件拥有所述I2C总线的控制权,所述装置还包括:
第三收发单元,用于接收到所述第一主控器件发送的I2C总线释放请求后,向所述第二主控器件发送I2C总线控制请求;
第二分配单元,用于接收到所述第二主控器件发送的I2C总线控制响应后,将所述I2C总线的控制权分配给所述第二主控器件。
具体的,所述第三收发单元,用于接收到所述第一主控器件发送的I2C总线释放请求,具体用于:
若监控到所述第一主控器件在与所述第一主控器件对应的第二状态寄存器在中写入已释放信息、以及在第二控制寄存器中与所述第一控制器件对应的位置写入未控制信息,则确定接收到所述第一主控器件发送的I2C总线释放请求。
具体的,所述第二分配单元,用于接收到所述第二主控器件发送的I2C总线控制响应,具体用于:
若监控到所述第二主控器件在与所述第一主控器件对应的第二状态寄存器在中写入未释放信息、以及在第二控制寄存器中与所述第二主控器件对应的位置写入已控制信息,则确定接收到所述第二主控器件发送的I2C总线控制响应。
具体的,所述第二分配单元,用于将所述I2C总线的控制权分配给所述第二主控器件,具体用于:
若检测到第二控制寄存器中与所述第一主控器件对应的位置写入未控制信息、以及所述第二控制寄存器中与所述第二主控器件对应的位置写入已控制信息,则将I2C缓冲器的通道连通所述第二主控器件。
本发明有益效果如下:
本发明实施例提供一种I2C总线的仲裁方法及装置,当接收到第一主控器件发送的内部集成电路I2C总线控制请求后,向第二主控器件发送I2C总线释放请求,所述第二主控器件拥有所述I2C总线的控制权;若接收到所述第二主控器件发送的I2C总线释放响应,则向所述第一主控器件发送I2C总线控制响应;接收到所述第一主控器件发送的I2C总线控制应答后,将所述I2C总线的控制权分配给所述第一主控器件。该方案中,对于各个主控器件的I2C总线控制请求可以准确高效地进行仲裁,减少冲突产生的概率,从而减少主控器件获取仲裁结果的延时,有利于处理实时业务。
附图说明
图1为本发明实施例中网络设备的结构示意图;
图2为本发明实施例中一种I2C总线的仲裁方法的流程图;
图3为本发明实施例中另一种I2C总线的仲裁方法的流程图;
图4为本发明实施例中I2C总线的仲裁装置的结构示意图。
具体实施方式
针对现有的I2C总线的仲裁方法中存在的冲突产生概率高导致的主控器件获取仲裁结果延时长、不利于处理实时业务的问题,本发明实施例提供一种I2C总线的仲裁方法,该方法应用网络设备中,该网络设备包括至少两个主控器件,无论网络设备包括几个主控器件,I2C总线的仲裁方法都是相同的,下面以如图1所示的包括两个主控器件的网络设备为例进行说明,其中,I2C缓冲器相当于选路开关,可以根据需要连通第一主控器件和从属器件,也可以根据需要可以连通第二主控器件和从属器件,I2C缓冲器可以但不限于采用SN74CB3Q3384A、TCA4311ADGKR等硬件隔离器件,主控器件可以是业务卡、管理板等。该方法的执行主体可以为CPLD,流程如图2所示,执行步骤如下:
S21:接收到第一主控器件发送的I2C总线控制请求后,向第二主控器件发送I2C总线释放请求。
假设当前第二主控器件拥有I2C总线的控制权,当第一主控器件需要使用I2C总线时,可以向CPLD发送I2C总线控制请求,之后CPLD向第二主控器件发送I2C总线释放请求,用来请求第二主控器件释放I2C总线。
S22:若接收到第二主控器件发送的I2C总线释放响应,则向第一主控器件发送I2C总线控制响应。
第二主控器件接收到CPLD的I2C总线释放请求后,可以根据实际需要决定是否释放I2C总线,若当前第二主控器件可以释放I2C总线,则向CPLD发送I2C总线释放响应。
CPLD根据第二主控器件发送的I2C总线释放响应,向第一主控器件发送I2C总线控制响应,用来通知第一主控器件可以获取I2C总线的控制权。
S23:接收到第一主控器件发送的I2C总线控制应答后,将I2C总线的控制权分配给第一主控器件。
第一主控器件接收到CPLD发送的I2C总线控制响应后,可以向CPLD发送I2C总线控制应答,通知CPLD已做好获取I2C总线控制权的准备,CPLD将I2C总线的控制权分配给第一主控器件,至此,I2C总线的控制权由第二主控器件转移给第一主控器件。
该方案中,对于各个主控器件的I2C总线控制请求可以准确高效地进行仲裁,减少冲突产生的概率,从而减少主控器件获取仲裁结果的延时,有利于处理实时业务。
下面详细介绍上述I2C总线的仲裁方法中的各个步骤。
具体的,上述S21中接收到第一主控器件发送的I2C总线控制请求,具体包括:若监控到第一主控器件在第一控制寄存器中与所述第一主控器件对应的位置写入有控制需求信息,则确定接收到第一主控器件发送的I2C总线控制请求。
第一控制寄存器可以定义为第一主控器件是否有访问从属器件的请求,也就是第一主控器件是否有I2C总线控制需求。其中,有控制需求信息和无控制需求信息可以根据需要进行设定,例如,1代表有控制需求信息,0代表无控制需求信息。第一控制寄存器的描述可以但不限于如表1所示:
表1
表1中,当bit0被第一主控器件写为1时,表示第一主控器件有I2C总线控制需求,CPLD触发中断告知第二主控器件需中止对I2C总线的控制。第二主控器件接收到中断后,将bit0写为0,以接收其他主控器件发送的I2C总线控制请求。
CPLD可以根据表1中bit0的值确定是否接收到第一主控器件发送的I2C总线控制需求。
具体的,上述S21中的向第二主控器件发送I2C总线释放请求,具体包括:向第二主控器件触发中断。当然也可以采用其他方式,这里不再赘述。
具体的,上述S22中的接收到第二主控器件发送的I2C总线释放响应,包括:若监控到第二主控器件在第一控制寄存器中与所述第一主控器件对应的位置写入无控制需求信息、在第二控制寄存器中与第二主控器件对应的位置写入未控制信息、以及在与所述第二主控器件对应的第一状态寄存器中写入已释放信息,则确定接收到第二主控器件发送的I2C总线释放响应。
第一状态寄存器可以定义为第二主控器件对I2C总线控制需求的反馈结果。其中,已释放信息和未释放信息可以根据需要进行设定,例如,1代表已释放信息,0代表未释放信息。第一状态寄存器的描述可以但不限于如表2所示。
表2
表2中,当bit0的值被第二主控器件写为1时,表示第二主控器件已释放I2C总线的控制权,CPLD触发中断告知第一主控器件可以获取I2C总线的控制权。第一主控器件接收到中断后,将bit0的值写为0,以接收其他主控器发送的I2C总线需求反馈。
第二控制寄存器可以定义为I2C总线的仲裁结果。其中,已释放信息和未释放信息可以根据需要进行设定,例如,1代表已释放信息,0代表未释放信息。第二控制寄存器的描述可以但不限于如表3所示。
表3
表3中,SW_I2C_Control/CMM_I2C_Control分别表示第二主控器件和第一主控器件是否拥有I2C总线的控制权。
CPLD可以根据表1中bit0的值、表3中bit0的值以及表2中bit0的值确定是否接收到第二主控器件发送的I2C总线释放响应。
具体的,上述S22中的向第一主控器件发送I2C总线控制响应,具体包括:向第一主控器件触发中断。当然也可以采用其他方式,这里不再赘述。
具体的,上述S23中的接收到第一主控器件发送的I2C总线控制应答,具体包括:若监控到第一主控器件在第二控制寄存器中与第一主控器件对应的位置写入已控制信息、以及在与所述第二主控器件对应的第一状态寄存器写入已释放信息,则确定接收到第一主控器件发送的I2C总线控制应答。
CPLD可以根据表3中bit1的值和表2中bit0的值确定是否接收到第一主控器件发送的I2C总线控制应答。
具体的,上述S23中将I2C总线的控制权分配给第一主控器件,具体包括:若检测到第二控制寄存器中与第一主控器件对应的位置写入已控制信息、以及第二控制寄存器中与第二主控器件对应的位置写入未控制信息,则将I2C缓冲器的通道连通第一主控器件。
若将SW_I2C_EN/CMM_I2C_EN定义为CPLD输出的I2C总线的仲裁结果,该仲裁结果作为I2C缓冲器的控制条件,该仲裁结果与第二控制寄存器的真值关系如表4所示。
表4
CPLD可以根据表3中bit0的值和bit1的值,结合表4就可以确定将I2C缓冲器的通道与第一主控器件连通还是与第二主控器件连通。当bit0的值为0,bit1的值为1时,结合表4可知第一主控器件获取I2C总线的控制权,可以将I2C缓冲器的通道连通第一主控器件。
本发明实例还提供另一种I2C总线的仲裁方法,如图3所示,若默认设置第二主控器件拥有I2C总线的控制权,在如图1的基础上,还包括:
S24:接收到第一主控器件发送的I2C总线释放请求后,向第二主控器件发送I2C总线控制请求。
在网络设备中,有些控制器件需要经常使用I2C总线,此时就可以默认设置该控制器件拥有I2C总线的控制权,这样其他控制器件使用完I2C总线后,就会主动释放I2C总线的控制权。假设第二主控器件拥有I2C总线的控制权时,第一主控器件使用完I2C总线后,会主动释放I2C,向CPLD发送I2C总线释放请求。CPLD接收到第一主控器件发送的I2C总线释放请求后,向第二主控器件发送I2C总线控制请求,用来请求第二主控器件重新获取I2C总线的控制权。
S25:接收到第二主控器件发送的I2C总线控制响应后,将I2C总线的控制权分配给第二主控器件。
第二主控器件若当前可以获取I2C总线的控制权,则向CPLD发送I2C总线控制响应,CPLD接收到第二控制器件发送的I2C总线控制响应后将I2C总线的控制权分配给第二主控器件,从而实现第二主控器件重新获取I2C总线的控制权。
具体的,上述S24中接收到第一主控器件发送的I2C总线释放请求,具体包括:若监控到第一主控器件在与所述第一主控器件对应的第二状态寄存器在中写入已释放信息、以及在第二控制寄存器中与第一控制器件对应的位置写入未控制信息,则确定接收到第一主控器件发送的I2C总线释放请求。
第二状态寄存器可以定义第一主控器件对I2C总线控制需求的反馈结果。其中,已释放信息和未释放信息可以根据需要进行设定,例如,1代表已释放信息,0代表未释放信息。第二状态寄存器的描述可以但不限于如表5所示。
表5
表5中,当bit0被第一主控器件写为1时,表示第一主控器件已释放I2C总线的控制权,CPLD触发中断告知第二主控器件可以获取I2C总线的控制权。第二主控器件接收到中断后,将bit0的值写为0,以接收其他主控器发送的I2C总线需求反馈。
CPLD可以根据表3中bit1的值和表5中bit0的值确定是否接收到第一主控器件发送的I2C总线释放请求。
具体的,上述S24中的向第二主控器件发送I2C总线释放响应,具体包括:向第二主控器件触发中断。当然也可以采用其他方式,这里不再赘述。
具体的,上述S25中的接收到第二主控器件发送的I2C总线控制响应,具体包括:若监控到第二主控器件在与所述第一主控器件对应的第二状态寄存器在中写入未释放信息、以及在第二控制寄存器中与第二主控器件对应的位置写入已控制信息,则确定接收到第二主控器件发送的I2C总线控制响应。
CPLD可以根据表3中bit0的值和表5中bit0的值确定是否接收到第二主控器件发送的I2C总线释放请求。
具体的,上述S25中的将I2C总线的控制权分配给第二主控器件,具体包括:若检测到第二控制寄存器中与第一主控器件对应的位置写入未控制信息、以及第二控制寄存器中与第二主控器件对应的位置写入已控制信息,则将I2C缓冲器的通道连通第二主控器件。
CPLD可以根据表3中bit0的值和bit1的值,结合表4就可以确定将I2C缓冲器的通道与第一主控器件连通还是与第二主控器件连通。当bit0为1,bit1为0时,结合表4可知第二主控器件获取I2C总线的控制权,可以将I2C缓冲器的通道连通第二主控器件。
基于同一发明构思,本发明实施例提供一种I2C总线的仲裁装置,该装置可以设置在网络设备等等中,该网络设备中包括至少两个主控器件,该装置的结构如图4所示,包括:
第一收发单元41,用于接收到第一主控器件发送的内部集成电路I2C总线控制请求后,向第二主控器件发送I2C总线释放请求,第二主控器件拥有I2C总线的控制权;
第二收发单元42,用于若接收到第二主控器件发送的I2C总线释放响应,则向第一主控器件发送I2C总线控制响应;
第一分配单元43,用于接收到第一主控器件发送的I2C总线控制应答后,将I2C总线的控制权分配给第一主控器件。
该方案中,对于各个主控器件的I2C总线控制请求可以准确高效地进行仲裁,减少冲突产生的概率,从而减少主控器件获取仲裁结果的延时,有利于处理实时业务。
具体的,第一收发单元41,用于接收到第一主控器件发送的I2C总线控制请求,具体用于:
若监控到第一主控器件在第一控制寄存器中与所述第一主控器件对应的位置写入有控制需求信息,则确定接收到第一主控器件发送的I2C总线控制请求。
具体的,第一收发单元41,用于向第二主控器件发送I2C总线释放请求,具体用于:
向第二主控器件触发中断。
具体的,第二收发单元42,用于接收到第二主控器件发送的I2C总线释放响应,具体用于:
若监控到第二主控器件在第一控制寄存器中与所述第一主控器件对应的位置写入无控制需求信息、在第二控制寄存器中与第二主控器件对应的位置写入未控制信息、以及在与所述第二主控器件对应的第一状态寄存器中写入已释放信息,则确定接收到第二主控器件发送的I2C总线释放响应。
具体的,第二收发单元42,用于向第一主控器件发送I2C总线控制响应,具体用于:
向第一主控器件触发中断。
具体的,第一分配单元43,用于接收到第一主控器件发送的I2C总线控制应答,具体用于:
若监控到第一主控器件在第二控制寄存器中与第一主控器件对应的位置写入已控制信息、以及在与所述第二主控器件对应的第一状态寄存器写入已释放信息,则确定接收到第一主控器件发送的I2C总线控制应答。
具体的,第一分配单元43,用于将I2C总线的控制权分配给第一主控器件,具体用于:
若检测到第二控制寄存器中与第一主控器件对应的位置写入已控制信息、以及第二控制寄存器中与第二主控器件对应的位置写入未控制信息,则将I2C缓冲器的通道连通第一主控器件。
可选的,若默认设置第二主控器件拥有I2C总线的控制权,上述装置还包括:
第三收发单元,用于接收到第一主控器件发送的I2C总线释放请求后,向第二主控器件发送I2C总线控制请求;
第二分配单元,用于接收到第二主控器件发送的I2C总线控制响应后,将I2C总线的控制权分配给第二主控器件。
具体的,第三收发单元,用于接收到第一主控器件发送的I2C总线释放请求,具体用于:
若监控到第一主控器件在与所述第一主控器件对应的第二状态寄存器在中写入已释放信息、以及在第二控制寄存器中与第一控制器件对应的位置写入未控制信息,则确定接收到第一主控器件发送的I2C总线释放请求。
具体的,第三收发单元,用于向第二主控器件发送I2C总线释放响应,具体用于:
向第二主控器件触发中断。
具体的,第二分配单元,用于接收到第二主控器件发送的I2C总线控制响应,具体用于:
若监控到第二主控器件在与所述第一主控器件对应的第二状态寄存器在中写入未释放信息、以及在第二控制寄存器中与第二主控器件对应的位置写入已控制信息,则确定接收到第二主控器件发送的I2C总线控制响应。
具体的,第二分配单元,用于将I2C总线的控制权分配给第二主控器件,具体用于:
若检测到第二控制寄存器中与第一主控器件对应的位置写入未控制信息、以及第二控制寄存器中与第二主控器件对应的位置写入已控制信息,则将I2C缓冲器的通道连通第二主控器件。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种I2C总线的仲裁方法,应用在网络设备中,所述网络设备包括至少两个主控器件,其特征在于,所述方法包括:
接收到第一主控器件发送的内部集成电路I2C总线控制请求后,向第二主控器件发送I2C总线释放请求,所述第二主控器件拥有所述I2C总线的控制权;
若接收到所述第二主控器件发送的I2C总线释放响应,则向所述第一主控器件发送I2C总线控制响应;
接收到所述第一主控器件发送的I2C总线控制应答后,将所述I2C总线的控制权分配给所述第一主控器件。
2.如权利要求1所述的方法,其特征在于,接收到第一主控器件发送的I2C总线控制请求,具体包括:
若监控到所述第一主控器件在第一控制寄存器中与所述第一主控器件对应的位置写入有控制需求信息,则确定接收到所述第一主控器件发送的I2C总线控制请求。
3.如权利要求1所述的方法,其特征在于,接收到所述第二主控器件发送的I2C总线释放响应,具体包括:
若监控到所述第二主控器件在所述第一控制寄存器中与所述第一主控器件对应的位置写入无控制需求信息、在第二控制寄存器中与所述第二主控器件对应的位置写入未控制信息、以及在与所述第二主控器件对应的第一状态寄存器中写入已释放信息,则确定接收到所述第二主控器件发送的I2C总线释放响应。
4.如权利要求1所述的方法,其特征在于,接收到所述第一主控器件发送的I2C总线控制应答,具体包括:
若监控到所述第一主控器件在第二控制寄存器中与所述第一主控器件对应的位置写入已控制信息、以及在与所述第二主控器件对应的第一状态寄存器写入已释放信息,则确定接收到所述第一主控器件发送的I2C总线控制应答。
5.如权利要求1所述的方法,其特征在于,将所述I2C总线的控制权分配给所述第一主控器件,具体包括:
若检测到第二控制寄存器中与所述第一主控器件对应的位置写入已控制信息、以及所述第二控制寄存器中与所述第二主控器件对应的位置写入未控制信息,则将I2C缓冲器的通道连通所述第一主控器件。
6.如权利要求1-5任一所述的方法,其特征在于,若默认设置所述第二主控器件拥有所述I2C总线的控制权,所述方法还包括:
接收到所述第一主控器件发送的I2C总线释放请求后,向所述第二主控器件发送I2C总线控制请求;
接收到所述第二主控器件发送的I2C总线控制响应后,将所述I2C总线的控制权分配给所述第二主控器件。
7.如权利要求6所述的方法,其特征在于,接收到所述第一主控器件发送的I2C总线释放请求,具体包括:
若监控到所述第一主控器件在与所述第一主控器件对应的第二状态寄存器在中写入已释放信息、以及在第二控制寄存器中与所述第一控制器件对应的位置写入未控制信息,则确定接收到所述第一主控器件发送的I2C总线释放请求。
8.如权利要求6所述的方法,其特征在于,接收到所述第二主控器件发送的I2C总线控制响应,具体包括:
若监控到所述第二主控器件在与所述第一主控器件对应的第二状态寄存器在中写入未释放信息、以及在第二控制寄存器中与所述第二主控器件对应的位置写入已控制信息,则确定接收到所述第二主控器件发送的I2C总线控制响应。
9.如权利要求6所述的方法,其特征在于,将所述I2C总线的控制权分配给所述第二主控器件,具体包括:
若检测到第二控制寄存器中与所述第一主控器件对应的位置写入未控制信息、以及所述第二控制寄存器中与所述第二主控器件对应的位置写入已控制信息,则将I2C缓冲器的通道连通所述第二主控器件。
10.一种I2C总线的仲裁装置,应用在网络设备中,所述网络设备包括至少两个主控器件,其特征在于,所述装置包括:
第一收发单元,用于接收到第一主控器件发送的内部集成电路I2C总线控制请求后,向第二主控器件发送I2C总线释放请求,所述第二主控器件拥有所述I2C总线的控制权;
第二收发单元,用于若接收到所述第二主控器件发送的I2C总线释放响应,则向所述第一主控器件发送I2C总线控制响应;
第一分配单元,用于接收到所述第一主控器件发送的I2C总线控制应答后,将所述I2C总线的控制权分配给所述第一主控器件。
11.如权利要求10所述的装置,其特征在于,所述第一收发单元,用于接收到第一主控器件发送的I2C总线控制请求,具体用于:
若监控到所述第一主控器件在第一控制寄存器中与所述第一主控器件对应的位置写入有控制需求信息,则确定接收到所述第一主控器件发送的I2C总线控制请求。
12.如权利要求10所述的装置,其特征在于,所述第二收发单元,用于接收到所述第二主控器件发送的I2C总线释放响应,具体用于:
若监控到所述第二主控器件在所述第一控制寄存器中与所述第一主控器件对应的位置写入无控制需求信息、在第二控制寄存器中与所述第二主控器件对应的位置写入未控制信息、以及在与所述第二主控器件对应的第一状态寄存器中写入已释放信息,则确定接收到所述第二主控器件发送的I2C总线释放响应。
13.如权利要求10所述的装置,其特征在于,所述第一分配单元,用于接收到所述第一主控器件发送的I2C总线控制应答,具体用于:
若监控到所述第一主控器件在第二控制寄存器中与所述第一主控器件对应的位置写入已控制信息、以及在与所述第二主控器件对应的第一状态寄存器写入已释放信息,则确定接收到所述第一主控器件发送的I2C总线控制应答。
14.如权利要求10所述的装置,其特征在于,所述第一分配单元,用于将所述I2C总线的控制权分配给所述第一主控器件,具体用于:
若检测到第二控制寄存器中与所述第一主控器件对应的位置写入已控制信息、以及所述第二控制寄存器中与所述第二主控器件对应的位置写入未控制信息,则将I2C缓冲器的通道连通所述第一主控器件。
15.如权利要求10-14任一所述的装置,其特征在于,若默认设置所述第二主控器件拥有所述I2C总线的控制权,所述装置还包括:
第三收发单元,用于接收到所述第一主控器件发送的I2C总线释放请求后,向所述第二主控器件发送I2C总线控制请求;
第二分配单元,用于接收到所述第二主控器件发送的I2C总线控制响应后,将所述I2C总线的控制权分配给所述第二主控器件。
16.如权利要求15所述的装置,其特征在于,所述第三收发单元,用于接收到所述第一主控器件发送的I2C总线释放请求,具体用于:
若监控到所述第一主控器件在与所述第一主控器件对应的第二状态寄存器在中写入已释放信息、以及在第二控制寄存器中与所述第一控制器件对应的位置写入未控制信息,则确定接收到所述第一主控器件发送的I2C总线释放请求。
17.如权利要求15所述的装置,其特征在于,所述第二分配单元,用于接收到所述第二主控器件发送的I2C总线控制响应,具体用于:
若监控到所述第二主控器件在与所述第一主控器件对应的第二状态寄存器在中写入未释放信息、以及在第二控制寄存器中与所述第二主控器件对应的位置写入已控制信息,则确定接收到所述第二主控器件发送的I2C总线控制响应。
18.如权利要求15所述的装置,其特征在于,所述第二分配单元,用于将所述I2C总线的控制权分配给所述第二主控器件,具体用于:
若检测到第二控制寄存器中与所述第一主控器件对应的位置写入未控制信息、以及所述第二控制寄存器中与所述第二主控器件对应的位置写入已控制信息,则将I2C缓冲器的通道连通所述第二主控器件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610519573.4A CN106155971A (zh) | 2016-07-04 | 2016-07-04 | I2c总线的仲裁方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610519573.4A CN106155971A (zh) | 2016-07-04 | 2016-07-04 | I2c总线的仲裁方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106155971A true CN106155971A (zh) | 2016-11-23 |
Family
ID=58062883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610519573.4A Pending CN106155971A (zh) | 2016-07-04 | 2016-07-04 | I2c总线的仲裁方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155971A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI614609B (zh) * | 2016-11-24 | 2018-02-11 | 英業達股份有限公司 | 積體電路匯流排仲裁控制系統 |
CN108710590A (zh) * | 2018-06-01 | 2018-10-26 | 深圳市方为半导体有限公司 | 8051系统及其总线自动仲裁的管理方法 |
CN109243389A (zh) * | 2018-10-15 | 2019-01-18 | 深圳市华星光电技术有限公司 | 液晶显示器电路及显示器 |
CN110647488A (zh) * | 2019-09-04 | 2020-01-03 | 苏州浪潮智能科技有限公司 | 一种i2c总线的抗噪声方法、系统及相关组件 |
CN111124979A (zh) * | 2019-10-31 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种基于堆栈结构的i2c多主访问方法和系统 |
CN111488175A (zh) * | 2019-12-29 | 2020-08-04 | 北京浪潮数据技术有限公司 | 一种访问控制方法、装置、设备及可读存储介质 |
US11829319B2 (en) | 2019-05-31 | 2023-11-28 | Ams International Ag | Inter-integrated circuit (I2C) apparatus |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894088A (zh) * | 2010-07-21 | 2010-11-24 | 中兴通讯股份有限公司 | 一种解决i2c总线上多主机冲突的方法及装置 |
CN102081570A (zh) * | 2011-01-21 | 2011-06-01 | 中兴通讯股份有限公司 | 一种i2c设备的访问方法及装置 |
CN102364451A (zh) * | 2011-06-27 | 2012-02-29 | 浪潮电子信息产业股份有限公司 | 一种扩展南桥pci总线请求与仲裁信号的方法 |
CN102419739A (zh) * | 2011-09-30 | 2012-04-18 | 上海联能仪表有限公司 | 多主总线仲裁共享装置以及仲裁方法 |
CN103136142A (zh) * | 2013-03-05 | 2013-06-05 | 浪潮齐鲁软件产业有限公司 | 一种总线仲裁的方法 |
CN104346303A (zh) * | 2013-08-08 | 2015-02-11 | 中兴通讯股份有限公司 | 一种总线仲裁方法及装置 |
CN105677608A (zh) * | 2015-12-31 | 2016-06-15 | 浙江众合科技股份有限公司 | 一种多主rs485总线仲裁方法及系统 |
-
2016
- 2016-07-04 CN CN201610519573.4A patent/CN106155971A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894088A (zh) * | 2010-07-21 | 2010-11-24 | 中兴通讯股份有限公司 | 一种解决i2c总线上多主机冲突的方法及装置 |
CN102081570A (zh) * | 2011-01-21 | 2011-06-01 | 中兴通讯股份有限公司 | 一种i2c设备的访问方法及装置 |
CN102364451A (zh) * | 2011-06-27 | 2012-02-29 | 浪潮电子信息产业股份有限公司 | 一种扩展南桥pci总线请求与仲裁信号的方法 |
CN102419739A (zh) * | 2011-09-30 | 2012-04-18 | 上海联能仪表有限公司 | 多主总线仲裁共享装置以及仲裁方法 |
CN103136142A (zh) * | 2013-03-05 | 2013-06-05 | 浪潮齐鲁软件产业有限公司 | 一种总线仲裁的方法 |
CN104346303A (zh) * | 2013-08-08 | 2015-02-11 | 中兴通讯股份有限公司 | 一种总线仲裁方法及装置 |
CN105677608A (zh) * | 2015-12-31 | 2016-06-15 | 浙江众合科技股份有限公司 | 一种多主rs485总线仲裁方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI614609B (zh) * | 2016-11-24 | 2018-02-11 | 英業達股份有限公司 | 積體電路匯流排仲裁控制系統 |
CN108710590A (zh) * | 2018-06-01 | 2018-10-26 | 深圳市方为半导体有限公司 | 8051系统及其总线自动仲裁的管理方法 |
CN108710590B (zh) * | 2018-06-01 | 2023-10-03 | 深圳市方为半导体有限公司 | 8051系统及其总线自动仲裁的管理方法 |
CN109243389A (zh) * | 2018-10-15 | 2019-01-18 | 深圳市华星光电技术有限公司 | 液晶显示器电路及显示器 |
US11829319B2 (en) | 2019-05-31 | 2023-11-28 | Ams International Ag | Inter-integrated circuit (I2C) apparatus |
TWI824154B (zh) * | 2019-05-31 | 2023-12-01 | 瑞士商Ams國際有限公司 | 積體電路間裝置,從屬器件,電腦實施方法,及電腦可讀儲存媒體 |
CN110647488A (zh) * | 2019-09-04 | 2020-01-03 | 苏州浪潮智能科技有限公司 | 一种i2c总线的抗噪声方法、系统及相关组件 |
CN111124979A (zh) * | 2019-10-31 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种基于堆栈结构的i2c多主访问方法和系统 |
CN111488175A (zh) * | 2019-12-29 | 2020-08-04 | 北京浪潮数据技术有限公司 | 一种访问控制方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106155971A (zh) | I2c总线的仲裁方法及装置 | |
CN108595353B (zh) | 一种基于PCIe总线的控制数据传输的方法及装置 | |
CN105677608B (zh) | 一种多主rs485总线仲裁方法及系统 | |
EP2829986B1 (en) | Computer system, access method and apparatus for peripheral component interconnect express endpoint devices | |
CN105119793A (zh) | 一种传感器网络can总线帧格式的标识符分配方法 | |
EP2641183A1 (de) | Verfahren und schaltungsanordnung zur datenübertragung zwischen prozessorbausteinen | |
CN104899170A (zh) | 分布式智能平台管理总线ipmb连接方法及atca机框 | |
CN104854845B (zh) | 使用高效的原子操作的方法和装置 | |
CN110659238A (zh) | 数据通信系统 | |
CN107766267A (zh) | 一种i2c总线的仲裁方法及系统 | |
CN107066413B (zh) | 一种用于处理多个总线设备数据的方法及其总线系统 | |
CN104426793A (zh) | 用于控制网络信息流通量的装置 | |
CN103995789B (zh) | 一种直接内存存取的实现系统及方法 | |
CN107102822B (zh) | 一种数据回写方法及装置 | |
CN210324188U (zh) | 一种集成电路总线iic主从竞争自动切换设备及其系统 | |
CN103529766B (zh) | 自动化系统 | |
TW201701161A (zh) | 用於分離突發頻寬裁定之方法及裝置 | |
CN113515477B (zh) | 一种总线网络中优先级动态调整方法、装置和存储介质 | |
DE102015218250A1 (de) | Initiierung mehrerer Datentransaktionen auf einem Systembus | |
US10565157B1 (en) | I2C data communication system and method applied between multiple master devices | |
CN111723032B (zh) | 一种中断管控方法及电子设备 | |
CN107085557A (zh) | 直接存储器访问系统以及相关方法 | |
CN206270753U (zh) | 基于dcs的集成自动化控制系统 | |
CN113363986A (zh) | 用于以太网络供电的供电系统及其供电方法 | |
JP2002032326A (ja) | 拡張スロットホットプラグ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161123 |
|
RJ01 | Rejection of invention patent application after publication |