地址扩展电路和I2C通信接口芯片的制作方法

文档序号:17251841发布日期:2019-03-30 09:06阅读:265来源:国知局
地址扩展电路和I2C通信接口芯片的制作方法

本实用新型涉及I2C通信技术领域,更具体地说,涉及一种地址扩展电路和I2C通信接口芯片。



背景技术:

I2C(Inter-Integrated Circuit)总线是由飞利浦公司开发的一种同步串行总线,其通过串行数据线SDA和串行时钟线SCL实现器件之间的数据传输。其中,初始化I2C总线的数据传输并产生允许传输的时钟信号的器件被称为主机,任何被寻址即被输送或被输出数据的器件被称为从机。

其中,为了便于主机访问,每个从机的都要有一个唯一的地址。而为了让I2C总线挂载更多的从机,常用的做法是对从机的地址进行扩展。例如,现有的一种可作为从机的I2C通信接口芯片,采用一个单独的端口作为器件的地址端ADDR,并将地址端ADDR与接地端GND或电源端VDD连接,来区分器件的地址。

但是,即便如此,一个器件也仅仅只有两个地址可供选择,必然会出现由于器件地址选择过少而导致地址出现冲突的情况,然而,若通过增加地址端ADDR的数量来实现地址的扩展,那么,芯片尺寸和测试时间等也会相应增加,从而导致芯片的成本有所增加。



技术实现要素:

有鉴于此,本实用新型提供了一种地址扩展电路和I2C通信接口芯片,以对I2C通信接口芯片的可供选择地址进行扩展。

为实现上述目的,本实用新型提供如下技术方案:

一种地址扩展电路,应用于具有I2C通信接口的芯片,所述芯片包括至少一个地址端、电源端、接地端、数据线接口端和时钟线接口端,所述数据线接口端与I2C总线中的串行数据线相连,所述时钟线接口端与所述I2C总线中的串行时钟线相连,所述地址扩展电路包括至少一个触发器组和地址编码器,所述触发器组包括第一触发模块至第三触发模块;

所述第一触发模块用于根据第一信号和第二信号产生第一地址信号,所述第一信号为与对应的所述地址端相连的延时电路输出的延时后的地址信号,所述第二信号为所述时钟线接口端输出的时钟信号;

所述第二触发模块用于根据所述第一信号和所述第二信号产生第二地址信号;所述第三触发模块用于根据所述第一信号和所述第二信号产生第三地址信号;

所述地址编码器用于根据所述第一地址信号、所述第二地址信号和所述第三地址信号生成地址编码,且当所述地址端分别与所述电源端、所述接地端、所述数据线接口端和所述时钟线接口端相连时,所述地址编码器生成的地址编码各不相同。

可选地,所述第一触发模块包括第一触发器和第一与门;所述第二触发模块包括第二触发器和第二与门;所述第三触发模块包括第三触发器和或门;所述第一触发器为上升沿触发的异步置位触发器,所述第二触发器为下降沿触发的异步复位触发器,所述第三触发器为上升沿触发的异步复位触发器;

所述第一与门的第一输入端与所述第一触发器的输出端相连,所述第一与门的第二输入端通过所述延时电路与所述地址端相连,所述第一与门的输出端与所述第一触发器的输入端相连,所述第一触发器的输出端与所述地址编码器相连;

所述第二与门的第一输入端与所述第二触发器的输出端相连,所述第二与门的第二输入端通过所述延时电路与所述地址端相连,所述第二与门的输出端与所述第二触发器的输入端相连,所述第二触发器的输出端与所述地址编码器相连;

所述或门的第一输入端与所述第三触发器的输出端相连,所述或门的第二输入端通过所述延时电路与所述地址端相连,所述或门的输出端与所述第三触发器的输入端相连,所述第三触发器的输出端与所述地址编码器相连;

所述第一触发器、所述第二触发器和所述第三触发器的时钟信号端都与所述时钟线接口端相连。

可选地,所述第一触发模块包括第一触发器和第一或门;所述第二触发模块包括第二触发器和第二或门;所述第三触发模块包括第三触发器和与门;所述第一触发器为上升沿触发的异步复位触发器,所述第二触发器为下降沿触发的异步复位触发器,所述第三触发器为上升沿触发的异步置位触发器;

所述第一或门的第一输入端与所述第一触发器的输出端相连,所述第一或门的第二输入端通过所述延时电路与所述地址端相连,所述第一或门的输出端与所述第一触发器的输入端相连,所述第一触发器的输出端与所述地址编码器相连;

所述第二或门的第一输入端与所述第二触发器的输出端相连,所述第二或门的第二输入端通过所述延时电路与所述地址端相连,所述第二或门的输出端与所述第二触发器的输入端相连,所述第二触发器的输出端与所述地址编码器相连;

所述与门的第一输入端与所述第三触发器的输出端相连,所述与门的第二输入端通过所述延时电路与所述地址端相连,所述与门的输出端与所述第三触发器的输入端相连,所述第三触发器的输出端与所述地址编码器相连;

所述第一触发器、所述第二触发器和所述第三触发器的时钟信号端都与所述时钟线接口端相连。

可选地,还包括复位模块,所述复位模块输出复位信号至所有触发器的复位端或置位端,以使所述触发器复位或置位。

可选地,所述复位模块的第一输入端与所述数据线接口端相连,所述复位模块的第二输入端与所述时钟线接口端相连;所述复位模块根据所述数据线接口端输出的数据信号和所述时钟线接口端输出的时钟信号获得数据传输的启动信号,并根据所述启动信号获得所述复位信号。

一种I2C通信接口芯片,包括如上任一项所述的地址扩展电路。

与现有技术相比,本实用新型所提供的技术方案具有以下优点:

本实用新型所提供的地址扩展电路和I2C通信接口芯片,当地址端分别与电源端、接地端、数据线接口端和时钟线接口端相连时,地址扩展电路生成的地址编码各不相同,也就是说,地址扩展电路可以生成四个各不相同的地址,从而可以在不增加端口的情况下,实现芯片地址的扩展。

附图说明

为了更清楚地说明本实用新型实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实用新型的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本实用新型实施例提供的I2C通信系统的结构示意图;

图2为本实用新型实施例提供的一种地址扩展电路的结构示意图;

图3为图2所示的地址扩展电路的一种具体结构示意图;

图4为地址端ADDR与电源端VDD相连时图3所示的地址扩展电路的时序图;

图5为地址端ADDR与接地端GND相连时图3所示的地址扩展电路的时序图;

图6为地址端ADDR与时钟线接口端SCL相连时图3所示的地址扩展电路的时序图;

图7为地址端ADDR与数据线接口端SDA相连时图3所示的地址扩展电路的时序图;

图8为图2所示的地址扩展电路的另一种具体结构示意图;

图9为地址端ADDR与电源端VDD相连时图8所示的地址扩展电路的时序图;

图10为地址端ADDR与接地端GND相连时图8所示的地址扩展电路的时序图;

图11为地址端ADDR与时钟线接口端SCL相连时图8所示的地址扩展电路的时序图;

图12为地址端ADDR与数据线接口端SDA相连时图8所示的地址扩展电路的时序图。

具体实施方式

下面将结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本实用新型保护的范围。

本实用新型实施例提供了一种地址扩展电路,应用于I2C通信接口芯片。如图1所示,该I2C通信接口芯片包括至少一个地址端ADDR、电源端VDD、接地端GND、数据线接口端SDA和时钟线接口端SCL,数据线接口端SDA与I2C总线中的串行数据线相连,时钟线接口端SCL与I2C总线中的串行时钟线相连。

也就是说,I2C通信接口芯片的数据线接口端SDA通过I2C总线中的串行数据线与主机的数据线接口端SDA相连,I2C通信接口芯片的时钟线接口端SCL通过I2C总线中的串行时钟线与主机的时钟线接口端SCL相连,以实现主机与从机即I2C通信接口芯片的数据传输。

需要说明的是,在数据传输开始之前,主机会先向从机发送启动信号start,接着会发送一个命令字节,该命令字节由需要传输数据的从机的7位的地址和1位读写控制位R/W组成,通常最低一位为R/W位,该位为0表示主机向从机写入数据,该位为1表示主机读取从机的数据。从机在接收到该命令字节后,会将命令中的地址与自身的地址进行对比,对比成功,从机向主机回馈应答信号,主机和从机开始输出的传输,对比不成功,该从机不应答,主机不向该从机传输数据。

本实用新型中,通过地址扩展电路对I2C通信接口芯片的地址进行扩展,以通过一个地址端ADDR实现4个地址,并将生成的地址传输至I2C通信接口芯片的处理模块,以使处理模块将该地址与主机发生的地址进行对比。需要说明的是,地址扩展电路可以是I2C通信接口芯片内部的电路,也可以是I2C通信接口芯片的外围电路。

在一个实施例中,如图2所示,地址扩展电路包括至少一个触发器组和地址编码器20,每个触发器组都包括第一触发模块21至第三触发模块23。本实用新型实施例中仅以一个地址端ADDR和一个触发器组为例进行说明,但并不仅限于此。

第一触发模块21用于根据第一信号和第二信号产生第一地址信号,第一信号为与地址端VDDR相连的延时电路10输出的延时后的地址信号,第二信号为时钟线接口端SCL输出的时钟信号;第二触发模块22用于根据第一信号和第二信号产生第二地址信号;第三触发模块23用于根据第一信号和第二信号产生第三地址信号;

地址编码器20用于根据第一地址信号、第二地址信号和第三地址信号生成地址编码,且当地址端VDDR分别与电源端VDD、接地端GND、数据线接口端SDA和时钟线接口端SCL相连时,地址编码器20生成的地址编码各不相同。

基于此,本实用新型实施例提供的地址扩展电路可以生成四个各不相同的地址,从而可以在不增加端口的情况下,实现芯片地址的扩展。需要说明的是,本实用新型实施例中的每个触发器组都与一个地址端ADDR对应连接,所有的触发器组与地址编码器20连接。地址编码器20根据所有触发器组输出的第一地址信号、第二地址信号和第三地址信号生成地址编码。也就是说,当芯片包括N个地址端ADDR时,地址扩展电路包括N个触发器组,生成4N个各不相同的地址。

在上述实施例的基础上,地址扩展电路还包括复位模块11,复位模块11输出复位信号至所有触发器的复位端R或置位端S,以使触发器复位或置位。其中,复位模块11的第一输入端与数据线接口端SDA相连,复位模块11的第二输入端与时钟线接口端SCL相连。

复位模块11根据数据线接口端SDA输出的数据信号和时钟线接口端SCL输出的时钟信号获得数据传输的启动信号start,并对启动信号start取反后,获得复位信号。也就是说,复位模块11检测主机通过I2C总线传输给从机的启动信号start,并根据启动信号start获得复位信号。需要说明的是,为了防止地址扩展电路在I2C总线发送有效数据之前发生异常锁定,start脉冲信号的下降沿相对于SCL时钟信号的第一个下降沿有t时间的延时,t小于T/2,T为一个时钟信号的周期。在一个具体实施方式中,如图3所示,第一触发模块21包括第一触发器210和第一与门211;第二触发模块22包括第二触发器220和第二与门221;第三触发模块23包括第三触发器230和或门231;第一触发器210为上升沿触发的异步置位触发器,第二触发器220为下降沿触发的异步复位触发器,第三触发器230为上升沿触发的异步复位触发器。

第一与门211的第一输入端与第一触发器210的输出端相连,第一与门211的第二输入端通过延时电路10与地址端ADDR相连,第一与门211的输出端与第一触发器210的输入端相连,第一触发器210的输出端与地址编码器20相连;

第二与门221的第一输入端与第二触发器220的输出端相连,第二与门221的第二输入端通过延时电路10与地址端ADDR相连,第二与门221的输出端与第二触发器220的输入端相连,第二触发器220的输出端与地址编码器20相连;

或门231的第一输入端与第三触发器230的输出端相连,或门231的第二输入端通过延时电路10与地址端ADDR相连,或门231的输出端与第三触发器230的输入端相连,第三触发器230的输出端与地址编码器20相连;

第一触发器210、第二触发器220和第三触发器230的时钟信号端CLK都与时钟线接口端SCL相连。

下面对图3所示的地址扩展电路的工作过程进行说明。

首先,主机发送启动信号start,复位模块11输出复位信号对第一触发器210、第二触发器220和第三触发器230进行复位或置位。由于第一触发器210为上升沿触发的异步置位触发器、第二触发器220为下降沿触发的异步置位触发器、第三触发器230为上升沿触发的异步复位触发器,因此,复位或置位后的第一触发器210和第二触发器220的输出端Q1的电位为高电平1、第三触发器230的电位为低电平0。

当地址端ADDR与电源端VDD相连时,第一信号始终为高电平1,参考图3和图4,当时钟线接口端SCL的时钟信号即第二信号由低电平变为高电平,即由0变为1时,第一与门211的第一输入端和第二输入端都为1,使得第一触发器210的输入端D1输入的是高电平1,第一触发器210的输出端Q1为高电平1,即第一地址信号ID[1]=1;或门231的第一输入端为0、第二输入端为1,使得第三触发器230的输入端D3为1、输出端Q3为高电平1,即第三地址信号ID[3]=1。当时钟线接口端SCL的时钟信号即第二信号由高电平变为低电平,即由1变为0时,第二与门221的第一输入端为1、第二输入端为1,使得第二触发器222的输入端D2为1、输出端Q2为1,即第二地址信号ID[2]=1。

当地址端ADDR与接地端GND相连时,第一信号始终为低电平0,参考图3和图5,当时钟线接口端SCL的时钟信号即第二信号由低电平变为高电平,即由0变为1时,第一触发器212的输出端Q1输出低电平0,即第一地址信号ID[1]=0,第三触发器232的输出端Q3输出低电平0,即第三地址信号ID[3]=0;当时钟线接口端SCL的时钟信号即第二信号由高电平变为低电平,即由1变为0时,第二触发器222的输出端Q2输出低电平0,即第二地址信号ID[2]=0。

当地址端ADDR与时钟线接口端SCL相连时,第一信号与时钟线接口端SCL输入的时钟信号相同,参考图3和图6,但是,由于第一信号与时钟信号有一定的延时,因此,当时钟线接口端SCL的时钟信号即第二信号由低电平变为高电平,即由0变为1时,第一与门211的第二输入端和或门231的第二输入端一直是低电平0,因此,第一触发器212的输出端Q1输出低电平0,即第一地址信号ID[1]=0,第三触发器232的输出端Q3输出低电平0,即第三地址信号ID[3]=0。当时钟线接口端SCL的时钟信号由高电平变为低电平,即由1变为0时,第二与门221的第二输入端一直是1,使得第二触发器222的输出端Q2输出1,即第二地址信号ID[2]=1。

当地址端ADDR与数据线接口端SDA相连时,第一信号与数据线接口端SDA输入的数据信号相同,参考图3和图7,根据I2C时序,触发器的上升沿和下降沿都将采样到相同的值。如图7所示,在第一个时序,当时钟线接口端SCL的时钟信号即第二信号由低电平变为高电平,即由0变为1时,第一触发器212的输出端Q1为高电平1,即第一地址信号ID[1]=1,第三触发器232的输出端Q3为高电平1,即第三地址信号ID[3]=1;当时钟线接口端SCL的时钟信号即第二信号由高电平变为低电平,即由1变为0时,第二触发器222的输出端Q2为高电平1,即第二地址信号ID[2]=1。但是,由于此时的ID=111,与地址端ADDR与电源端VDD相连时的ID相同,因此,不再采用这一ID。而在前7个时序中,第一触发器212的输出端Q1还可以为低电平0,即第一地址信号ID[1]=0,第二触发器222的输出端Q2还可以为低电平0,即第二地址信号ID[2]=0,使得ID=001。

也就是说,当地址端ADDR与电源端VDD相连时,地址扩展电路输出的地址ID=111;当地址端ADDR与接地端GND相连时,地址扩展电路输出的地址ID=000;当地址端ADDR与时钟线接口端SCL相连时,地址扩展电路输出的地址ID=010;当地址端ADDR与数据线接口端SDA相连时,地址扩展电路输出的地址ID=001。之后地址编码器20再根据相应的地址ID生成7位的地址,以便处理模块将该地址与主机发生的地址进行对比。

需要说明的是,由于第一触发器210和第二触发器220的输出端都通过一个与门与其输入端相连,因此,当第一触发器210和第二触发器220的输出端输出0以后,第一触发器210和第二触发器220的输出端将被锁定在输出0的状态,从而增强了地址扩展电路的抗干扰性能。并且,由于第三触发器230的输出端通过一个或门与其输入端相连,因此,只要或门的第二输入端输入高电平信号,则触发器的输出就锁定为高电平,可以进一步增强地址扩展电路的抗干扰能力。

在另一个具体实施方式中,如图8所示,第一触发模块21包括第一触发器212和第一或门213;第二触发模块22包括第二触发器222和第二或门223;第三触发模块23包括第三触发器232和与门233;第一触发器212为上升沿触发的异步复位触发器,第二触发器222为下降沿触发的异步复位触发器,第三触发器222为上升沿触发的异步置位触发器。

第一或门213的第一输入端与第一触发器212的输出端相连,第一或门213的第二输入端通过延时电路10与地址端ADDR相连,第一或门213的输出端与第一触发器212的输入端相连,第一触发器212的输出端与地址编码器20相连;

第二或门223的第一输入端与第二触发器222的输出端相连,第二或门223的第二输入端通过延时电路10与地址端ADDR相连,第二或门223的输出端与第二触发器222的输入端相连,第二触发器222的输出端与地址编码器20相连;

与门233的第一输入端与第三触发器232的输出端相连,与门233的第二输入端通过延时电路10与地址端ADDR相连,与门233的输出端与第三触发器232的输入端相连,第三触发器232的输出端与地址编码器20相连;

第一触发器212、第二触发器222和第三触发器232的时钟信号端CLK都与时钟线接口端SCL相连。

下面对图8所示的地址扩展电路的工作过程进行说明。

同样,主机发送启动信号start,复位模块11输出复位信号对第一触发器212、第二触发器222和第三触发器232进行复位或置位。由于第一触发器212为上升沿触发的异步复位触发器、第二触发器222为下降沿触发的异步复位触发器、第三触发器232为上升沿触发的异步置位触发器,因此,复位或置位后的第一触发器212和第二触发器222的输出端Q1的电位为低电平0、第三触发器232的电位为高电平1。

当地址端ADDR与电源端VDD相连时,第一信号始终为高电平1,参考图8和图9,当时钟线接口端SCL的时钟信号即第二信号由低电平变为高电平,即由0变为1时,第一或门213的第一输入端为0、第二输入端为1,使得第一触发器212的输入端D1输入的是高电平1,第一触发器212的输出端Q1为高电平1,即第一地址信号ID[1]=1;与门233的第一输入端为1、第二输入端为1,使得第三触发器232的输入端D3为1、输出端Q3为高电平1,即第三地址信号ID[3]=1。当时钟线接口端SCL的时钟信号即第二信号由高电平变为低电平,即由1变为0时,第二或门223的第一输入端为0、第二输入端为1,使得第二触发器222的输入端D2为1、输出端Q2为1,即第二地址信号ID[2]=1。

当地址端ADDR与接地端GND相连时,第一信号始终为低电平0,参考图8和图10,当时钟线接口端SCL的时钟信号即第二信号由低电平变为高电平,即由0变为1时,第一触发器212的输出端Q1输出低电平0,即第一地址信号ID[1]=0,第三触发器232的输出端Q3输出低电平0,即第三地址信号ID[3]=0;当时钟线接口端SCL的时钟信号即第二信号由高电平变为低电平,即由1变为0时,第二触发器222的输出端Q2输出低电平0,即第二地址信号ID[2]=0。

当地址端ADDR与时钟线接口端SCL相连时,第一信号与时钟信号相同,参考图8和图11,但是,由于第一信号与时钟信号有一定的延时,因此,当时钟线接口端SCL的时钟信号即第二信号由低电平变为高电平,即由0变为1时,第一或门213的第二输入端和与门233的第二输入端一直是低电平0,因此,第一触发器212的输出端Q1输出低电平0,即第一地址信号ID[1]=0,第三触发器232的输出端Q3输出低电平0,即第三地址信号ID[3]=0。当时钟线接口端SCL的时钟信号即第二信号由高电平变为低电平,即由1变为0时,第二或门223的第二输入端一直是1,使得第二触发器222的输出端Q2输出1,即第二地址信号ID[2]=1。

当地址端ADDR与数据线接口端SDA相连时,第一信号与数据信号相同,参考图8和图12,根据I2C时序,触发器的上升沿和下降沿都将采样到相同的值。如图12所示,在第一个时序,当时钟线接口端SCL的时钟信号即第二信号由低电平变为高电平,即由0变为1时,第一触发器212的输出端Q1为高电平1,即第一地址信号ID[1]=1,第三触发器232的输出端Q3为高电平1,即第三地址信号ID[3]=1;当时钟线接口端SCL的时钟信号即第二信号由高电平变为低电平,即由1变为0时,第二触发器222的输出端Q2为高电平1,即第二地址信号ID[2]=1。但是,由于此时的ID=111,与地址端ADDR与电源端VDD相连时的ID相同,因此,不再采用这一ID。而在前7个时序中,第三触发器232的输出端Q3还可以为低电平0,即第三地址信号ID[3]=0,使得ID=110。

也就是说,当地址端ADDR与电源端VDD相连时,地址扩展电路输出的地址ID=111;当地址端ADDR与接地端GND相连时,地址扩展电路输出的地址ID=000;当地址端ADDR与时钟线接口端SCL相连时,地址扩展电路输出的地址ID=010;当地址端ADDR与数据线接口端SDA相连时,地址扩展电路输出的地址ID=110。

需要说明的是,由于第三触发器232的输出端通过一个与门与其输入端相连,因此,当第三触发器232的输出端输出0以后,第三触发器232的输出端将被锁定在输出0的状态,从而增强了地址扩展电路的抗干扰性能。并且,由于第一触发器212和第二触发器222的输出端通过一个或门与其输入端相连,因此,只要或门的第二输入端输入高电平信号,则触发器的输出就锁定为高电平,可以进一步增强地址扩展电路的抗干扰能力。

本实用新型实施例还提供了一种I2C通信接口芯片,包括上述任一实施例提供的地址扩展电路。

本实用新型所提供的地址扩展电路和I2C通信接口芯片,当地址端分别与电源端、接地端、数据线接口端和时钟线接口端相连时,地址扩展电路生成的地址编码各不相同,也就是说,地址扩展电路可以生成四个各不相同的地址,从而可以在不增加端口的情况下,实现芯片地址的扩展。并且,该地址扩展电路还具有逻辑较少、结构简单、电路抗干扰能力强等优点。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本实用新型。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本实用新型的精神或范围的情况下,在其它实施例中实现。因此,本实用新型将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1