CN1287259C - 在通信设备中操作多个i2c从器件的装置及其方法 - Google Patents
在通信设备中操作多个i2c从器件的装置及其方法 Download PDFInfo
- Publication number
- CN1287259C CN1287259C CNB2004100091026A CN200410009102A CN1287259C CN 1287259 C CN1287259 C CN 1287259C CN B2004100091026 A CNB2004100091026 A CN B2004100091026A CN 200410009102 A CN200410009102 A CN 200410009102A CN 1287259 C CN1287259 C CN 1287259C
- Authority
- CN
- China
- Prior art keywords
- data
- register
- cpu
- logical device
- data line
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明涉及一种在通信设备中操作多个I2C从器件的装置及其方法,该装置包括有CPU、与CPU总线连接的逻辑器件,每个从器件的I2C接口的串行时钟线都与逻辑器件的同一个时钟线管脚连接,每个从器件的I2C接口的串行数据线分别与逻辑器件的对应的不同的数据线管脚连接;并且逻辑器件内包括有:一时钟寄存器,其输出端连接至所述逻辑器件的时钟线管脚;多个数据寄存器,每个数据寄存器的输出端与数据线管脚之间均设置一电子开关,其输出端连接至数据线管脚,分别与多个从器件的I2C接口的串行数据线对应,并通过一输入输出状态寄存器控制该电子开关的闭合和断开,CPU通过访问逻辑器件内部对应的寄存器来实现对一个或多个I2C从器件的操作。
Description
技术领域
本发明涉及计算机网络通信领域,特别是涉及一种在计算机网络通信设备中操作多个I2C从器件的方法。
背景技术
在计算机网络通信设备中,具有I2C总线(INTER-IC BUS或IC TO BUS)接口的器件应用越来越多,I2C总线接口具有信号线少、操作方便的优点。一般的对I2C操作方法是依靠不同的器件地址来区分器件,I2C总线上的每个器件都有唯一的器件地址。有的器件地址是靠本身外部硬件配置,而有的器件地址是制造商固化在芯片内部的,不可配置。在实际应用中,会用到多个同一器件地址且不可配置的I2C从器件。比如小封装可插拔光模块(SFP,SmallForm-Factor Pluggable)的I2C从器件地址已由制造商固定为“000”,无法由外部设定。这种情况下,如果按标准的I2C总线的结构连接,将无法区分每一个器件。
一种现有技术是给每个I2C从器件提供一个I2C接口,系统控制器或CPU对每个接口分别进行操作。这种方法的缺点是占用系统资源较多。当系统接有数十个具有相同器件地址的I2C从器件时,采用这种方式会占用大量的系统硬件资源。
另一种现有技术是用逻辑器件和模拟开关相结合,用逻辑器件做单刀多掷开关,控制CPU I2C总线接口的串行时钟线(SCL,Serial Clock Line)与I2C从器件的串行时钟线相连;模拟开关用来控制分组的I2C从器件的串行数据信号线(SDA,Serial DAta)与CPU的I2C接口的串行数据信号线相连。这样分别对每个I2C从器件操作。此方式的缺点是所增硬件设备多,若CPU无I2C总线接口,则无法实现对I2C从器件的操作。
发明内容
本发明所要解决的技术问题在于提供一种在通信设备中操作多个I2C从器件的设备及其方法,使得CPU在无I2C总线接口的情形下也能实现对I2C从器件的操作,并且实现高效低成本的目的。
为了实现上述目的,本发明提供了一种在通信设备中操作多个I2C从器件的装置,包括有一逻辑器件、多个I2C从器件、CPU,其特点在于,所述CPU与所述逻辑器件以总线方式相连,所述多个I2C从器件的每个I2C接口的串行时钟线都与所述逻辑器件的同一个时钟线管脚连接,每个I2C接口的串行数据线分别与所述逻辑器件的对应的不同的数据线管脚连接;并且,所述逻辑器件内部包括有:
一时钟寄存器,其输出端连接至所述逻辑器件的时钟线管脚,与所述多个从器件的串行时钟线对应;
多个数据寄存器,每个数据寄存器的输出端与所述数据线管脚之间均设置一电子开关,该电子开关的输出端连接所述逻辑器件的数据线管脚,分别与所述多个I2C从器件的I2C接口的串行数据线对应,每一电子开关通过一输入输出状态寄存器控制该电子开关的闭合和断开,以连通所述数据寄存器的输出端与所述逻辑器件的数据线管脚;
其中,所述时钟寄存器、数据寄存器、输入输出状态寄存器均可被所述CPU操作,所述数据线管脚的状态也可由CPU通过所述逻辑器件读取;所述CPU通过访问所述逻辑器件内部与所述I2C从器件的串行时钟线和串行数据线对应的寄存器来实现对一个或多个I2C从器件的操作。
上述的在通信设备中操作多个I2C从器件的装置,其特点在于,对于未设置有内部上拉电阻的接口线,所述多个I2C从器件的每个I2C接口的串行数据线还分别通过一上拉电阻与所述接口的供电电源连接。
本发明还提供了一种在通信设备中操作多个I2C从器件的方法,其特点在于,该方法包括如下步骤:
步骤一,设置一CPU与一逻辑器件以总线方式连接,并将所述多个I2C从器件的每个I2C从器件的串行数据线分别与所述逻辑器件的对应的不同的数据线管脚连接,每个I2C从器件的串行时钟线都与所述逻辑器件的同一个时钟线管脚连接;
步骤二,在所述逻辑器件内用多个数据寄存器分别与所述逻辑器件的多个不同的数据线管脚对应,每个数据寄存器的输出与对应的数据线管脚之间设置一电子开关,由该电子开关状态决定是否连通所述数据寄存器的输出与对应的数据线管脚,另设置有一输入输出状态寄存器控制每一电子开关的状态;并用一个时钟寄存器与所述逻辑器件的对应的时钟线管脚对应;
步骤三,当CPU需要操作I2C从器件时,按I2C总线规范的时序,分别访问对应于所述逻辑器件的数据寄存器和时钟寄存器以及输入输出状态寄存器,以使需操作的I2C从器件的串行数据线和串行时钟线与标准的I2C总线主设备的串行数据线和串行时钟线的作用相同,从而实现CPU对I2C从器件的操作。
上述的在通信设备中操作多个I2C从器件的方法,其特点在于,在步骤一中,对于未设置有内部上拉电阻的接口线,所述多个I2C从器件的每个I2C接口的串行数据线还分别通过一上拉电阻与所述接口的供电电源连接。
上述的在通信设备中操作多个I2C从器件的方法,其特点在于,在步骤二中,相对所述逻辑器件来说,当需要所述数据线管脚作为输出时,所述电子开关闭合,数据线管脚输出内容来自对应的数据寄存器的输出;当不需要所述数据线管脚作为输出时,所述电子开关断开;当需要所述数据线管脚作为输入时,所述电子开关也断开,所述数据线管脚的电平状态,可由CPU通过所述逻辑器件读取;并且,当输入输出状态寄存器的输出为高电平时,所述电子开关闭合,当输入输出状态寄存器的输出为低电平时,所述电子开关断开。
上述的在通信设备中操作多个I2C从器件的方法,其特点在于,在步骤三中,当CPU需往所述多个I2C从器件中任一从器件的寄存器中写入数据时,还包括如下步骤:
开始操作;
写入需写入数据的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则写入需写入的寄存器地址,并进入下一步骤,否则发送出错报告并停止操作;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则向该I2C从器件写入所需写入的数据,并进入下一步骤,否则发送出错报告并停止操作;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则表示写入数据成功,停止操作,否则发送出错报告并停止操作。
上述的在通信设备中操作多个I2C从器件的方法,其特点在于,在步骤三中,当CPU需读取所述多个I2C从器件中任一从器件的寄存器中的数据时,还包括如下步骤:
开始操作;
写入需读取的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则写入需读取的寄存器地址,并进入下一步骤,否则发送出错报告并停止操作;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则再次开始操作,并进入下一步骤,否则发送出错报告并停止操作;
写入需读取的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则开始读取数据,并在读取数据完毕后停止操作,否则发送出错报告并停止操作。
上述的在通信设备中操作多个I2C从器件的方法,其特点在于,在步骤三中,当CPU需连续读取所述多个I2C从器件中任一从器件的寄存器中地址为0~N的N+1个字节的数据时,还包括如下步骤:
开始操作;
写入需读取的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则写入需读取的寄存器地址的初始地址0,并进入下一步骤,否则发送出错报告并停止操作;
再次开始操作;
写入需读取的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则赋值0给一变量L,并开始读取寄存器地址为0中的数据,并在读取完该寄存器地址为0的数据后将该变量L加1后重新赋值予该变量L,同时向该I2C从器件发送低电平的应答信息,并读取下一地址中的数据,如此循环直至该变量L的值等于N,此时向该I2C从器件发送高电平的非应答信息,并停止操作,结束操作。
上述的在通信设备中操作多个I2C从器件的方法,其特点在于,在器件地址操作中,只操作对应所述逻辑器件中对应的数据寄存器,并配合操作所述逻辑器件中的时钟寄存器。
与现有技术相比,本发明通过多个I2C从器件的I2C接口的SCL接到逻辑器件上,多个I2C从器件的每个I2C接口的SDA分别接到逻辑器件的IO上,CPU通过访问逻辑器件内部与SCL和SDA对应的寄存器来实现对一个或多个I2C从器件的操作。不论CPU有没有I2C总线接口,都可实现对多个I2C从器件的操作。方便灵活,速度快,硬件成本低。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明装置的硬件连接结构图;
图2为本发明的逻辑器件内部控制SDA、SCL线的寄存器示意图;
图3为本发明连续读I2C从器件方法的流程图;
图4为本发明写I2C从器件任一寄存器的方法的流程图;
图5为本发明读I2C从器件任一寄存器的方法的流程图。
具体实施方式
本发明的硬件连接方式见图1,包括有CPU10、逻辑器件20、多个I2C从器件30,其中所述多个I2C从器件都具有一个I2C接口,每个I2C接口包括有串行时钟线321和串行数据线323,用以与所述逻辑器件20连接。每个I2C从器件30的串行数据线323分别与逻辑器件20的不同IO管脚(以下标称为数据线管脚)相连,标称为SDA1,SDA2,……,SDAn。其中,SDA1,SDA2,……,SDAn分别用一上拉电阻R拉至接口信号的供电电源VDD上;若与接口线上带内部上拉电阻的接口连接,可以不外加上拉电阻。每个I2C从器件30的串行时钟线321都与逻辑器件的同一IO管脚(以下标称为时钟线管脚)相连,标称为SCL;逻辑器件20与CPU10通过接口以总线方式相连,以使CPU10能访问逻辑器件20的寄存器和管脚状态。
在逻辑器件20内部的与SCL线和SDAm(m=1,2,…,n)线相对应的寄存器和这些寄存器与SCL、SDAm(m=1,2,…,n)之间的逻辑关系如图2所示,该逻辑器件20内部包括有:
一时钟寄存器21,标称为Reg SCL,其输出端连接至所述逻辑器件20的时钟线管脚,与所述多个I2C从器件30的串行时钟线321对应。
多个数据寄存器22,标称为Reg SDAm(m=1,2,…,n),共n个,每个数据寄存器22的输出端与所述数据线管脚之间均设置一电子开关23,该电子开关23的输出端连接所述逻辑器件20的数据线管脚,分别与所述多个I2C从器件30的I2C接口的串行数据线323对应,每一电子开关23通过一输入输出状态寄存器(标称为Reg inout)24控制该电子开关23的闭合和断开,以连通所述数据寄存器22的输出端与所述逻辑器件20的数据线管脚。
由于在I2C总线规范中,总线协议有严格的时序要求。总线工作时,由时钟控制线SCL传送时钟脉冲,由串行数据线SDA传送数据。总线传送的每帧数据均为一个字节(8bit),但启动I2C总线后,传送的字节个数没有限制,只要求每传送一个字节后,对方回应一个应答位(Acknowledge Bit)。发送数据时首先发送数据的最高位(MSB)。
I2C总线协议规定,启动总线后第一个字节的高7位是从器件的寻址地址,第8位为方向位(“0”表示主器件对从器件的写操作;“1”表示主器件对从器件的读操作),其余的字节为操作的数据。总线每次传送开始时有起始信号,结束时有停止信号。在总线传送完一个或几个字节后,可以使SCL线的电平变低,从而使传送暂停。
依据I2C总线的传输协议,总线工作时的具体时序如下:
起始信号(S):在时钟线SCL为高电平期间,数据线SDA出现由高电平向低电平的变化,用于启动I2C总线,准备开始传送数据;
停止信号(P):在时钟线SCL为高电平期间,数据线SDA出现由低电平向高电平的变化,用于停止I2C总线上的数据传送;
应答信号(A):I2C总线的第9个脉冲对应应答位,若SDA线上显示低电平则为总线“应答”(A),若SDA线上显示高电平则为“非应答”(/A);
数据位传送:I2C总线起始信号或应答信号之后的第1~8个时钟脉冲对应一个字节的8位数据传送。在脉冲高电平期间,数据串行传送;在脉冲低电平期间,数据准备,允许总线上数据电平变化。
因此,本发明中当CPU需要操作I2C从器件时,按I2C总线规范的时序,由CPU分别访问逻辑器件中数据寄存器Reg_SDAm、时钟寄存器Reg_SCL和输入输出状态寄存器Reg_inout,以使数据线SDAm和时钟线SCL产生与标准的I2C总线主设备的SDA、SCL相同的作用,如产生起始、停止条件,应答,数据传送等作用。
在本发明的逻辑器件20中,I2C从器件30的SCL线由时钟寄存器Reg_SCL控制,Reg_SCL输出为‘1’时,SCL为高电平,Reg_SCL输出为‘0’时,SCL为低电平,Reg SCL输出从‘0’变为‘1’时,SCL为正跳沿,Reg_SCL输出从‘1’变为‘0’时,为负跳沿。
相对逻辑器件20来说,当需要数据线SDAm作为输出时,电子开关闭合,数据线SDAm输出内容来自对应的数据寄存器Reg_SDAm的输出,当数据线SDAm不作为输出时,电子开关断开,当需要数据线SDAm作为输入时,电子开关也断开,此时数据线SDAm的状态(是‘1’还是‘0’)可由CPU通过逻辑器件读取;输入输出状态寄存器Reg_inout的输出为‘1’时,电子开关闭合,输入输出状态寄存器Reg_inout的输出为‘0’时,电子开关断开;相对逻辑器件来说,SDAm线作为输出,I2C从器件作为输入时,该线状态由寄存器Reg_SDAm的输出控制,Reg_SDAm输出为‘1’,则SDAm线为高电平,Reg_SDAm输出为‘0’,则SDAm线为低电平,Reg_SDAm输出从‘0’变为‘1’时,SDAm线为正跳沿,Reg_SDAm输出从‘1’变为‘0’时,SDAm线为负跳沿。
因此,本发明中,在通信设备中操作多个I2C从器件的方法,包括如下步骤:
步骤一,设置一CPU与一逻辑器件以总线方式连接,并将所述多个I2C从器件的每个I2C从器件的串行数据线分别与所述逻辑器件的对应的不同的数据线管脚连接,每个I2C从器件的串行时钟线都与所述逻辑器件的同一个时钟线管脚连接;
步骤二,在所述逻辑器件内用多个数据寄存器分别与所述逻辑器件的多个不同的数据线管脚对应,每个数据寄存器的输出与对应的数据线管脚之间设置一电子开关,由该电子开关状态决定是否连通所述数据寄存器的输出与对应的数据线管脚,另设置有一输入输出状态寄存器控制每一电子开关的状态;并用一个时钟寄存器与所述逻辑器件的对应的时钟线管脚对应;
步骤三,当CPU需要操作I2C从器件时,按I2C总线规范的时序,分别访问对应于所述逻辑器件的数据寄存器和时钟寄存器以及输入输出状态寄存器,以使需操作的I2C从器件的串行数据线和串行时钟线与标准的I2C总线主设备的串行数据线和串行时钟线的作用相同,从而实现CPU对I2C从器件的操作。
下面以某产品中的具有24个SFP光接口业务板为例,SFP光模块具有I2C接口,系统可通过I2C接口读取SFP光模块信息。每个SFP光模块I2C器件地址都为10100000。单板上24个SFP光模块的I2C接口的串行时钟(SCL,Serial Clock)信号连接到逻辑芯片上,24个SFP光模块的I2C接口中的串行数据(SDA,Serial Data)信号分别与逻辑芯片的不同管脚连接,CPU通过CPU总线与逻辑器件连接。当CPU需要读取SFP光模块内部信息时,按I2C总线规范,分别操作逻辑器件内部的数据寄存器Reg_SDAm和时钟寄存器Reg_SCL以及输入输出转换控制寄存器,Reg_inout,使(SDAm(m=1,…,24)、SCL产生与标准I2C总线的数据线、时钟线相同的作用,从而将SFP的信息被读入CPU中。
具体举例连续读取SFP中的寄存器地址从‘0’到‘N’的N+1个字节的内容至CPU中,其操作流程图如图3所示:
步骤301,开始操作;
步骤302,向SFP写器件地址‘10100000’;
步骤303,读取从器件SFP的应答信息ACK,若ACK=0,即为低电平,则进入步骤304,否则进入步骤315和316;
步骤304,向SFP写寄存器地址‘0’;
步骤305,重新开始操作;
步骤306,写器件地址‘10100000’;
步骤307,读取从器件SFP的应答信息ACK,若ACK=0,即为低电平,则继续下一步骤308,否则进入步骤315和316;
步骤308,赋值0给一变量L;
步骤309,读取寄存器M的值至CPU(M=0,1,2……N);
步骤310,判断L=N?若否,则说明连续读取数据过程未结束,进入步骤311,否则说明连续读取数据过程已结束,进入步骤313;
步骤311,赋值L=L+1;
步骤312,向从器件发送应答消息ACK为“0”,并回到步骤309,继续读取寄存器M的值至CPU;
步骤313,向从器件发送应答消息ACK为“1”,即非应答,并进入步骤314;
步骤314,停止操作;
步骤315,发送出错报告;
步骤316,停止操作。
如图3的流程图所示,为读一个SFP内容,实际操作中可同时读取24个SFP的内容。在操作中,也可以只操作要读取的SFP内容,在器件地址操作中,只操作对应逻辑器件中对应的数据寄存器(而使其它数据寄存器保持为值“1”不变),并配合操作逻辑器件中的时钟寄存器。这样就可以读取24个SFP中的某一个或某几个的信息。
再以某产品中的一个电路板使用一片CY22393FC、两片CY22150FC为例,CY22393FC、CY22150FC的I2C器件地址都为‘1101001’,以上两芯片为锁相环时钟芯片,需要对其内部寄存器写入配置数据才能得到需要的时钟信号。硬件也如图1方式。
如图4所示,为写CY22393FC、CY22150FC某一个寄存器的操作流程,其步骤如下:
步骤401,开始操作;
步骤402,写器件地址;
步骤403,读取从器件SFP的应答信息ACK,若ACK=0,即为低电平,则进入步骤404,否则进入步骤409和410;
步骤404,再写所需要写入的寄存器地址;
步骤405,读取从器件SFP的应答信息ACK,若ACK=0,即为低电平,则进入步骤406,否则进入步骤409和410;
步骤406,再写入需要配置的数据;
步骤407,读取从器件SFP的应答信息ACK,若ACK=0,即为低电平,则说明写入数据成功,进入步骤408,否则进入步骤409和410;
步骤408,停止操作;
步骤409,发送出错报告;
步骤410,停止操作。
上述为写操作过程,对于读CY22393FC、CY22150FC某一个寄存器的操作流程请参见图5,其包括如下步骤:
步骤501,开始操作;
步骤502,写从器件的器件地址;
步骤503,读取从器件的应答信息ACK,若ACK=0,即为低电平,则进入步骤504,否则进入步骤511和512;
步骤504,再写入所要读的寄存器地址;
步骤505,读取从器件的应答信息ACK,若ACK=0,即为低电平,则进入步骤506,否则进入步骤511和512;
步骤506,重新再做开始操作;
步骤507,写从器件的器件地址;
步骤508,读取从器件的应答信息ACK,若ACK=0,即为低电平,则进入步骤509,否则进入步骤511和512;
步骤509,进行读操作;
步骤510,在读操作进行完毕后停止操作;
步骤511,发送出错报告;
步骤512,停止操作。
本发明提供的方法在对多个I2C从器件操作时方便灵活,速度快,硬件成本低。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (9)
1、一种在通信设备中操作多个I2C从器件的装置,包括有一逻辑器件、多个I2C从器件、CPU,其特征在于,所述CPU与所述逻辑器件以总线方式相连,所述多个I2C从器件的每个I2C接口的串行时钟线都与所述逻辑器件的同一个时钟线管脚连接,每个I2C接口的串行数据线分别与所述逻辑器件的对应的不同的数据线管脚连接;并且,所述逻辑器件内部包括有:
一时钟寄存器,其输出端连接至所述逻辑器件的时钟线管脚,与所述多个从器件的串行时钟线对应;
多个数据寄存器,每个数据寄存器的输出端与所述数据线管脚之间均设置一电子开关,该电子开关的输出端连接所述逻辑器件的数据线管脚,分别与所述多个I2C从器件的I2C接口的串行数据线对应,每一电子开关通过一输入输出状态寄存器控制该电子开关的闭合和断开,以连通所述数据寄存器的输出端与所述逻辑器件的数据线管脚;
其中,所述时钟寄存器、数据寄存器、输入输出状态寄存器均被所述CPU操作,所述数据线管脚的电平状态由CPU通过所述逻辑器件读取。
2、根据权利要求1所述的在通信设备中操作多个I2C从器件的装置,其特征在于,对于未设置有内部上拉电阻的接口线,所述多个I2C从器件的每个I2C接口的串行数据线还分别通过一上拉电阻与所述接口的供电电源连接。
3、一种在通信设备中操作多个I2C从器件的方法,其特征在于,该方法包括如下步骤:
步骤一,设置一CPU与一逻辑器件以总线方式连接,并将所述多个I2C从器件的每个I2C从器件的串行数据线分别与所述逻辑器件的对应的不同的数据线管脚连接,每个I2C从器件的串行时钟线都与所述逻辑器件的同一个时钟线管脚连接;
步骤二,在所述逻辑器件内用多个数据寄存器分别与所述逻辑器件的多个不同的数据线管脚对应,每个数据寄存器的输出与对应的数据线管脚之间设置一电子开关,由该电子开关状态决定是否连通所述数据寄存器的输出与对应的数据线管脚,另设置有一输入输出状态寄存器控制每一电子开关的状态;并用一个时钟寄存器与所述逻辑器件的对应的时钟线管脚对应;
步骤三,当CPU需要操作I2C从器件时,按I2C总线规范的时序,分别访问对应于I2C从器件的所述逻辑器件的数据寄存器和时钟寄存器以及输入输出状态寄存器,以使需操作的I2C从器件的串行数据线和串行时钟线与标准的I2C总线主设备的串行数据线和串行时钟线的作用相同,从而实现CPU对I2C从器件的操作。
4、根据权利要求3所述的在通信设备中操作多个I2C从器件的方法,其特征在于,在步骤一中,对于未设置有内部上拉电阻的接口线,所述多个I2C从器件的每个I2C接口的串行数据线还分别通过一上拉电阻与所述接口的供电电源连接。
5、根据权利要求3所述的在通信设备中操作多个I2C从器件的方法,其特征在于,在步骤二中,相对所述逻辑器件来说,当需要所述数据线管脚作为输出时,所述电子开关闭合,数据线管脚输出内容来自对应的数据寄存器的输出;当不需要所述数据线管脚作为输出时,所述电子开关断开;当需要所述数据线管脚作为输入时,所述电子开关也断开,所述数据线管脚的电平状态,由CPU通过所述逻辑器件读取;并且,当输入输出状态寄存器的输出为高电平时,所述电子开关闭合,当输入输出状态寄存器的输出为低电平时,所述电子开关断开。
6、根据权利要求5所述的在通信设备中操作多个I2C从器件的方法,其特征在于,在步骤三中,当CPU需往所述多个I2C从器件中任一从器件本身具有的寄存器中写入数据时,还包括如下步骤:
开始操作;
写入逻辑器件需写入数据的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则写入逻辑器件需写入的寄存器地址,并进入下一步骤,否则发送出错报告并停止操作;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则向该I2C从器件写入所需写入的数据,并进入下一步骤,否则发送出错报告并停止操作;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则表示写入数据成功,停止操作,否则发送出错报告并停止操作。
7、根据权利要求5所述的在通信设备中操作多个I2C从器件的方法,其特征在于,在步骤三中,当CPU需读取所述多个I2C从器件中任一从器件本身具有的寄存器中的数据时,还包括如下步骤:
开始操作;
写入逻辑器件需读取的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则写入逻辑器件需读取的寄存器地址,并进入下一步骤,否则发送出错报告并停止操作;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则再次开始操作,并进入下一步骤,否则发送出错报告并停止操作;
写入需读取的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则开始读取数据,并在读取数据完毕后停止操作,否则发送出错报告并停止操作。
8、根据权利要求5所述的在通信设备中操作多个I2C从器件的方法,其特征在于,在步骤三中,当CPU需连续读取所述多个I2C从器件中任一从器件本身具有的寄存器中地址为0~N的N+1个字节的数据时,还包括如下步骤:
开始操作;
写入的逻辑器件需读取的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则写入逻辑器件需读取的寄存器地址的初始地址0,并进入下一步骤,否则发送出错报告并停止操作;
再次开始操作;
写入逻辑器件需读取的I2C从器件地址;
CPU读取该I2C从器件的应答信息,判断是否为表示收到数据的低电平,若是则赋值0给一变量L,并开始读取寄存器地址为0中的数据,并在读取完该寄存器地址为0的数据后将该变量L加1后重新赋值予该变量L,同时向该I2C从器件发送低电平的应答信息,并读取下一地址中的数据,如此循环直至该变量L的值等于N,此时向该I2C从器件发送高电平的非应答信息,并停止操作,结束操作。
9、根据权利要求5或6或7或8所述的在通信设备中操作多个I2C从器件的方法,其特征在于,在写入和读取器件地址操作中,只操作对应I2C从器件的所述逻辑器件中对应的数据寄存器,并配合操作所述逻辑器件中的时钟寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100091026A CN1287259C (zh) | 2004-05-19 | 2004-05-19 | 在通信设备中操作多个i2c从器件的装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100091026A CN1287259C (zh) | 2004-05-19 | 2004-05-19 | 在通信设备中操作多个i2c从器件的装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1581026A CN1581026A (zh) | 2005-02-16 |
CN1287259C true CN1287259C (zh) | 2006-11-29 |
Family
ID=34581616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100091026A Expired - Fee Related CN1287259C (zh) | 2004-05-19 | 2004-05-19 | 在通信设备中操作多个i2c从器件的装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1287259C (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100458722C (zh) * | 2005-12-12 | 2009-02-04 | 深圳艾科创新微电子有限公司 | 一种通过pc对i2c接口器件进行调试的系统及方法 |
US7673084B2 (en) * | 2007-02-20 | 2010-03-02 | Infineon Technologies Ag | Bus system and methods of operation using a combined data and synchronization line to communicate between bus master and slaves |
CN102801744B (zh) * | 2012-09-05 | 2015-11-25 | 上海斐讯数据通信技术有限公司 | 一种通信方法及系统 |
CN103593270B (zh) * | 2013-11-29 | 2016-08-17 | 龙迅半导体(合肥)股份有限公司 | 一种数据处理方法和装置 |
CN105117365A (zh) * | 2015-07-16 | 2015-12-02 | 上海斐讯数据通信技术有限公司 | 一种基于Mpc837x框架的数据读取方法 |
CN105224497A (zh) * | 2015-09-10 | 2016-01-06 | 上海斐讯数据通信技术有限公司 | 串行接口可扩展的处理装置及方法 |
CN105373511B (zh) * | 2015-10-30 | 2018-06-29 | 上海斐讯数据通信技术有限公司 | 一种与多个光模块可同时通信的装置和方法 |
CN105930294A (zh) * | 2016-06-25 | 2016-09-07 | 张宏彬 | 一种基于状态机的数字集成电路总线系统 |
CN106168934B (zh) * | 2016-06-29 | 2018-12-14 | 锐捷网络股份有限公司 | 一种数据传输方法及装置 |
CN106936496B (zh) * | 2017-04-20 | 2023-05-09 | 江苏奥雷光电有限公司 | 多个iic通信设备热插拔装置 |
CN108134599B (zh) * | 2017-12-04 | 2019-03-08 | 山东高云半导体科技有限公司 | 一种i3c总线控制接口电路 |
JP7200370B2 (ja) | 2018-12-03 | 2023-01-06 | ヒューレット-パッカード デベロップメント カンパニー エル.ピー. | 論理回路 |
CN110781119B (zh) * | 2019-10-22 | 2023-07-04 | 广东高云半导体科技股份有限公司 | 一种i2c总线扩展接口及其控制方法、片上系统 |
CN117056274B (zh) * | 2023-08-29 | 2024-01-30 | 浙江波誓盾科技有限公司 | 一种用于单核处理器的并行数据通信架构及方法 |
-
2004
- 2004-05-19 CN CNB2004100091026A patent/CN1287259C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1581026A (zh) | 2005-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1287259C (zh) | 在通信设备中操作多个i2c从器件的装置及其方法 | |
CN101060412A (zh) | 以太网电源系统、控制单元、主控模块及以太网电源供电方法 | |
CN1251100C (zh) | 存储器系统及其控制方法 | |
CN1804799A (zh) | 单片机在线加载升级方法及系统 | |
CN1266515A (zh) | 通用串行总线装置控制器 | |
CN1877552A (zh) | 通信装置、转换方法和转换程序 | |
CN1913445A (zh) | 具有多信道省电和唤醒的数据通信系统和方法 | |
CN1048272A (zh) | 具有把组块脉冲式操作转换为流水线操作装置的数据处理系统 | |
CN1292360C (zh) | 一种实现自动读写内部集成电路设备的装置和方法 | |
CN1118478A (zh) | 在信息处理系统的不同总线结构之间提供准确和完整的通信的方法和设备 | |
CN1740980A (zh) | 一种基于可编程逻辑器件的故障注入方法和装置 | |
CN1758324A (zh) | 接口和用于显示装置的控制设备及其集成电路芯片 | |
CN1135806C (zh) | 显示用驱动集成电路及使用该集成电路的电子装置 | |
CN1355764A (zh) | 电梯的通信控制装置 | |
CN1858611A (zh) | 一种验证系统、验证系统的创建方法及验证方法 | |
CN1517871A (zh) | 多计算机切换器 | |
CN1324421C (zh) | 一种中央处理器变频及中央处理器风扇变速的方法和装置 | |
CN1118752C (zh) | Vxi数字i/o模块模拟isa总线的方法 | |
CN1761954A (zh) | 处理器阵列 | |
CN1456990A (zh) | 应用程序并行处理系统和应用程序并行处理方法 | |
CN1934551A (zh) | 数据转发控制系统 | |
CN100340998C (zh) | 存取电路 | |
CN1190925C (zh) | 通用串行总线复合装置及其实现方法 | |
CN1624673A (zh) | 数据传输装置 | |
CN101056312A (zh) | 一种设备间通信的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180709 Address after: California, USA Patentee after: Global innovation polymerization LLC Address before: 518057, Nanshan District high tech Industrial Park, Guangdong province Shenzhen science and technology south road Zhongxing building A block 6 Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061129 |
|
CF01 | Termination of patent right due to non-payment of annual fee |