支持批量读取校验的I2C多路复用器及控制方法转让专利

申请号 : CN201310711424.4

文献号 : CN103714036B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彭骞陈凯郑增强沈亚飞邓标华欧昌东唐奇林

申请人 : 武汉精立电子技术有限公司

摘要 :

本发明公开了一种支持批量读取校验的I2C多路复用器用于外部I2C主设备与多个外部I2C从设备的通信。本发明包括采样去抖模块、状态控制模块、内部I2C储存模块、通道控制模块和校验模块。本发明还公开了应用这种I2C多路复用器的控制方法,支持写入数据的批量读取校验、双向的SCL传输和可控通道广播方式的数据转发。本发明对协议完全支持,提高设备的兼容性,有一定的抗干扰能力,且具备较高的集成度;批量读取校验功能的导入,减少了读取校验的时间,从而提高了设备的通讯效率。

权利要求 :

1.一种支持批量读取校验的I2C多路复用器,它是一种连接外部I2C主设备和多个外部I2C从设备的通信装置,其特征在于:包括

采样去抖模块:包括高频时钟采样电路和去抖动电路,所述高频时钟采样电路用于对从外部I2C主设备输入的I2C数据做高速采样;所述去抖动电路用于将采样到的数据去除抖动;

状态控制模块:用于根据外部I2C主设备的命令和内部I2C储存模块的配置参数确定I2C多路复用器复用状态,状态控制模块中包含一个状态机,状态机根据主设备的I2C数据,确定其状态的转移;

内部I2C储存模块:用于配置参数以及存储需传送和校验的数据;

通道控制模块:用于控制外部I2C从设备通道的开启和关闭及数据的通信方向;

校验模块:用于接收从对应的外部I2C从设备中读取数据,并与内部I2C储存模块中的数据对比校验,并将校验结果返回给外部I2C主设备。

2.根据权利要求1所述的支持批量读取校验的I2C多路复用器,其特征在于:它是由基于FPGA或CPLD技术的电路板实现的。

3.应用权利要求1或2所述的支持批量读取校验的I2C多路复用器的控制方法,其特征在于,包括以下步骤:步骤一、当I2C多路复用器上电后,首先选择是否给I2C多路复用器配置参数:选择“是”,外部I2C主设备的数据通过采样去抖模块以及状态控制模块写入内部I2C储存模块中的用户寄存器,完成参数配置;选择“否”,直接进入步骤二;

步骤二、选择是否进行批量写入读取操作,选择“否”,I2C多路复用器进入单通道数据写入读取模式;选择“是”,I2C多路复用器进入批量数据写入读取操作;

步骤三、进入批量数据写入操作,状态控制模块的状态机配置为写数据状态,内部I2C储存模块中的用户寄存器将数据写入内部I2C储存模块中的广播控制寄存器,通过通道控制模块将需要广播的对应的外部I2C从设备通道的开关置为开,内部I2C储存模块中的数据再以广播方式下发到相对应的外部I2C从设备,完成批量写入过程;

步骤四、将状态控制模块的状态机配置为读取操作,将所需批量读取对应的外部I2C从设备通道的开关置为开;从外部I2C主设备往内部I2C储存模块中写入要比较的数据;

步骤五、外部I2C主设备发起读取操作,校验模块接收外部I2C从设备的数据并与内部I2C储存模块中的数据比较,通道控制模块将比较结果发送到外部I2C主设备;

步骤六、判断当前物理通道操作是否完成,选择“是”,完成当前操作;选择“否”,重新对外部I2C从设备进行步骤三所述的批量数据写入操作及步骤四、步骤五所述的读取操作。

说明书 :

支持批量读取校验的I2C多路复用器及控制方法

技术领域

[0001] 本发明涉及I2C总线通信技术领域,具体指一种支持批量读取校验的I2C多路复用器,本发明还涉及应用这种支持批量读取校验的I2C多路复用器的控制方法。

背景技术

[0002] I2C总线是由Philips开发的一组简单的双向两线串行总线,用来实现有效的微型电子器件或部件之间的控制。每个连接到I2C总线的器件都可通过硬件设定的唯一地址和一直存在的简单的主机/从器件关系软件设定地址。
[0003] 近年来I2C总线技术在电子测试测量领域得到了广泛的应用。由于电子测试测量技术在科技发展中的特殊使命决定着其对高可靠性和高可控精度的要求。其中在显示屏测试的技术领域中,由于显示屏中有EDID信息(含显示器分辨率,刷新率,驱动接口时序等),这些信息都需要通过I2C总线进行读取和配置。尤其是一些特殊的液晶显示屏还需要配置一些启动参数。同时测试设备中多个芯片或者多台设备间配置参数或者通信也需要通过I2C总线进行。
[0004] 目前现有的应用于一主多从I2C总线通信的PCA9546等专用集成电路芯片,通道数固定;使用不灵活,占用较大的PCB面积,仅能实现单通道或者全通道的写入读取;不能提供可控通道广播和可控的批量读取校验功能,且使用不灵活,占用较大的PCB面积。

发明内容

[0005] 本发明的第一目的是针对现有技术的不足,提供一种用于电子测试测量领域的一主多从I2C总线通信,有一定的抗干扰能力,且具备较高的集成度,支持批量读取校验的I2C多路复用器。
[0006] 本发明的第二目的是提供一种利用这种支持批量读取校验的I2C多路复用器的控制方法。
[0007] 本发明的第一目的是通过如下措施来达到的:一种支持批量读取校验的I2C多路复用器,它是一种连接外部I2C主设备和多个外部I2C从设备的通信装置,它包括:
[0008] 采样去抖模块:包括高频时钟采样电路和去抖动电路,所述高频采样电路用于对从外部I2C主设备输入的I2C数据做高速采样;所述去抖动电路用于将采样到的数据去除抖动;
[0009] 状态控制模块:用于根据外部I2C主设备的命令和内部I2C储存模块的配置参数确定I2C多路复用器复用状态,状态控制模块中包含一个状态机,状态机根据主设备的I2C数据,确定其状态的转移;
[0010] 内部I2C储存模块:用于配置参数以及存储需传送和校验的数据;
[0011] 通道控制模块:用于控制外部I2C从设备通道的开启和关闭及数据的通信方向;
[0012] 校验模块:用于接收从对应的外部I2C从设备中读取数据,并与内部I2C储存模块中的数据对比校验,并将校验结果返回给外部I2C主设备。
[0013] 进一步地,所述支持批量读取校验的I2C多路复用器是由基于FPGA或CPLD技术的电路板实现的。
[0014] 通过内部I2C储存模块,通道控制模块和校验模块的组合使得I2C多路复用器具备了可控通道功能和批量读取数据的功能。
[0015] 本发明的第二目的是通过如下措施来达到的,应用支持批量读取校验的I2C多路复用器的控制方法,它包括以下步骤:
[0016] 步骤一、当I2C多路复用器上电后,首先选择是否给I2C多路复用器配置参数:选择“是”,外部I2C主设备的数据通过采样去抖模块以及状态控制模块写入内部I2C储存模块中的用户寄存器,完成参数配置;选择“否”,直接进入步骤二;
[0017] 步骤二、选择是否进行批量写入读取操作,选择“否”,I2C多路复用器进入单通道数据写入读取模式;选择“是”,I2C多路复用器进入批量数据写入读取操作;
[0018] 步骤三、进入批量数据写入操作,状态控制模块的状态机配置为写数据状态,内部I2C储存模块中的用户寄存器将数据写入内部I2C储存模块中的广播控制寄存器,通过通道控制模块将需要广播的对应的外部I2C从设备通道的开关置为开,内部I2C储存模块中的数据再以广播方式下发到相对应的外部I2C从设备,完成批量写入过程;
[0019] 步骤四、将状态控制模块的状态机配置为读取操作,将所需批量读取对应的外部I2C从设备通道的开关置为开;从外部I2C主设备往内部I2C储存模块中写入要比较的数据;
[0020] 步骤五、外部I2C主设备发起读取操作,校验模块接收外部I2C从设备的数据并与内部I2C储存模块中的数据比较,通道控制模块将比较结果发送到外部I2C主设备;
[0021] 步骤六、判断当前物理通道操作是否完成,选择“是”,完成当前操作;选择“否”,重新对外部I2C从设备进行写入读取操作。
[0022] 与现有技术相比,本发明的有益之处是:本发明基于FPGA或CPLD实现,集成度高,从而有效的减小了PCB的面积,成本低;采用去抖动电路,提高抗干扰性;对协议完全支持,支持双向SCL传输及可选择通道的广播,提高设备的兼容性;批量读取校验功能的导入,减少了读取校验的时间,从而提高了设备的通讯效率。

附图说明

[0023] 图1 I2C多路复用器模块框图
[0024] 图2 I2C多路复用器的状态转移图
[0025] 图3 I2C多路复用器的控制流程图

具体实施方式

[0026] 下面结合附图与具体实施方式,对本发明做进一步详细说明。
[0027] 图1为本发明的功能模块框架图,一种支持批量读取校验的I2C多路复用器,用于一主多从的I2C总线通信,I2C多路复用器所述包括采样去抖模块、状态控制模块、内部I2C储存模块、通道控制模块和校验模块。
[0028] 采样去抖模块用于与外部I2C主设备相连接;采样去抖模块还与状态控制模块相连接;状态控制模块分别与通道控制模块、内部I2C储存模块以及校验模块相连接;内部I2C储存模块还与校验模块相连接;通道控制模块还用于与多个外部I2C从设备相连接。
[0029] 采样去抖模块包括高频时钟采样电路和去抖动电路,高频采样电路对输入的I2C数据做高速采样,采样的数据送到去抖动电路中。去抖动电路中包含一个系数全为一且长度参数可配置的滤波器,去抖动电路用于将采样到的数据去除抖动。
[0030] 状态控制模块根据外部I2C主设备的命令和内部I2C储存模块的配置参数确定I2C多路复用器复用状态。状态控制模块中包含一个状态机,状态机根据主设备的I2C数据,确定其状态的转移。如图2所示为本发明I2C多路复用器的状态转移图。状态机包含7个状态:空闲状态(IDEL)、片选响应(CS_ACK)、选中内部储存模块(NO_CS)、读数据(IN_DATA)、发送响应(DATA_ACK)、写数据(OUT_DATA)、等待响应(WAIT_ACK)。各状态的描述如下表所示:
[0031]状态名 状态名(英) 描               述
空闲状态 IDEL 此状态默认为空闲状态
片选响应 CS_ACK 此状态为外部I2C主设备接收内部I2C储存模块器件地址响应
选中内部储存模块 NO_CS 此状态为外部I2C主设备操作外部I2C从设备
写数据 OUT_DATA 此状态为外部I2C主设备写数据到外部I2C从设备。
发送响应 DATA_ACK 此状态为外部I2C主设备接收外部I2C从设备的响应
读数据 IN_DATA 此状态为外部I2C从设备发送数据给外部I2C主设备
等待响应 WAIT_ACK 此状态为外部I2C主设备发送数据响应给外部I2C从设备
[0032] 内部I2C储存模块用于配置参数及用于储存校验的数据,其器件地址可配置且不同于外部I2C从设备。其作用就是一个存储器。
[0033] 通道控制模块控制外部I2C从设备通道的开启和关闭及数据的通信方向。其内部是参数的双向开关,根据参数确定其方向和开/关状态,其参数来自于内部I2C储存模块。
[0034] 校验模块在设置为批量读取模式时,接收从对应的外部I2C从设备中读取的数据,并与内部I2C储存模块中的数据对比,并将比较结果状态返回给外部I2C主设备,同时在内部I2C储存模块中设置对应标志位。
[0035] 通过内部I2C储存模块,通道控制模块和校验模块的组合使得I2C多路复用器具备了可控通道功能和批量写入和读取数据的功能。
[0036] 图3所示为本发明的控制流程图,控制流程包括以下步骤:
[0037] 步骤一、当I2C多路复用器上电后,首先选择是否给I2C多路复用器配置参数:选择“是”,外部I2C主设备的数据通过采样去抖模块以及状态控制模块写入内部I2C储存模块中的用户寄存器,完成参数配置;选择“否”,直接进入步骤二;
[0038] 步骤二、选择是否进行批量写入读取操作,选择“否”,I2C多路复用器进入单通道数据写入读取模式;选择“是”,I2C多路复用器进入批量数据写入读取操作;
[0039] 步骤三、进入批量数据写入操作,状态控制模块的状态机配置为写数据状态,内部I2C储存模块中的用户寄存器将数据写入内部I2C储存模块中的广播控制寄存器,通过通道控制模块将需要广播的对应的外部I2C从设备通道的开关置为开,内部I2C储存模块中的数据再以广播方式下发到相对应的外部I2C从设备,完成批量写入过程;
[0040] 步骤四、将状态控制模块的状态机配置为读取操作,将所需批量读取对应的外部I2C从设备通道的开关置为开;从外部I2C主设备往内部I2C储存模块中写入要比较的数据;
[0041] 步骤五、外部I2C主设备发起读取操作,校验模块接收外部I2C从设备的数据并与内部I2C储存模块中的数据比较,通道控制模块将比较结果发送到外部I2C主设备;
[0042] 步骤六、判断当前物理通道操作是否完成,选择“是”,完成当前操作;选择“否”,重新对外部I2C从设备进行写入读取操作。
[0043] 容易知道本发明所述的控制方法还包括单通道的写入读取,即在是否进行批量读写操作时选择“否”;进入单通道写入读取模式;重复步骤三、步骤四、步骤五的流程,其中需要注意的是,与批量读写不同之处在于通道控制模块仅将所需要的单个通道开关置为开。
[0044] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以设计出若干改进,这些改进也应视为本发明的保护范围。