I2c设备的控制方法、装置及终端的制作方法

文档序号:9349902阅读:416来源:国知局
I2c设备的控制方法、装置及终端的制作方法
【技术领域】
[0001]本发明涉及I2C通信领域,尤其涉及一种I2C设备的控制方法、装置及终端。
【背景技术】
[0002]由于I2C(Inter — Integrated Circuit)总线具有信号线少、控制简单方便等优点,在现今计算机网络通讯设备中,越来越多的设备采用I2C总线实现设备之间的通信。I2C总线由一根串行时钟总线(SCK)和一根串行数据总线(SDA)组成。现有的I2C从设备连接在同一个I2C主设备下,其访问地址为相同固定的地址,由于其不能直接一起挂载在I2C主设备的下方,因此并不能直接访问多个具有同一设备地址的I2C从设备,而必须增加额外的方案来实现对每一 I2C从设备的单独访问。
[0003]参见图1,现有技术中目前主要采用I2C多路选择芯片做类似的开关电路来物理打开一个I2C从设备并进行访问。所述I2C多路选择芯片采用I2C协议来选通需要访问的I2C从设备,这样I2C主设备就可以访问所述I2C从设备。在本方案中,当需要访问I2C从设备时,每一次都需要先控制所述I2C多路选择芯片将该路I2C从设备通道选通,访问结束后再将该路通道关闭,所述I2C多路选择芯片通道选通和关闭也是通过I2C协议进行的。由于I2C总线接口为一个低速接口,每一次操作至少需要20个时钟周期,I2C从设备的访问效率较低,且如果频繁访问I2C从设备,将会占据大量CPU资源而影响系统性能。

【发明内容】

[0004]鉴于此,本发明提供一种I2C设备的控制方法、装置及终端,解决现有I2C设备的访问效率低和占据大量CPU资源而影响系统性能技术问题。
[0005]为此,本发明采用以下技术方案:
[0006]根据本发明的一个实施例,提供一种I2C设备的控制方法,包括:检测I2C时钟总线的脉冲信号的脉冲宽度;判定所述脉冲信号为时钟信号或指令脉冲信号;当所述脉冲信号判定为指令脉冲信号时,译码所述指令脉冲信号获得对应的通道控制指令;当所述脉冲信号判定为指令脉冲信号时,返回继续检测I2C时钟总线的脉冲信号的脉冲宽度;以及根据所述通道控制指令打开或关闭相应的I2C从设备通道。
[0007]优选的,在检测I2C时钟总线的脉冲信号步骤之前还包括:检测I2C总线状态;当检测到所述I2C总线为空闲状态时发送预设脉宽的脉冲信号,所述预设脉宽的脉冲信号对应的通道控制指令设置为打开或关闭预设I2C从设备通道。
[0008]优选的,所述当检测到所述I2C总线为空闲状态时发送预设脉宽的脉冲信号步骤包括:在I2C时钟总线上发送第一预设脉宽的脉冲信号,所述第一预设脉宽的脉冲信号对应的通道控制指令设置为打开预设I2C从设备通道;在I2C总线上为主设备模拟I2C时序访问I2C从设备;在模拟I2C时序访问I2C从设备结束时在I2C时钟总线上发送第二预设脉宽的脉冲信号,所述第二预设脉宽的脉冲信号对应的通道控制指令设置为关闭所述预设12C从设备通道。
[0009]优选的,所述检测I2C时钟总线的脉冲信号的脉冲宽度步骤包括:通过可编程器件使用高速时钟在检测I2C时钟信号下降沿到上升沿的计数数值;以及根据所述计数数值获得所述脉冲的宽度。
[0010]优选的,使用MOS管打开或关闭相应的I2C从设备通道。
[0011]根据本发明的另一实施例,提供一种I2C设备的控制装置,其包括I2C控制器、译码模块和通道控制模块,所述I2C控制器包括用于发送预设脉宽的脉冲信号的脉冲信号发送模块,所述译码模块包括用于检测I2C时钟总线的脉冲信号脉冲宽度的检测模块、用于判定所述脉冲信号为时钟信号或指令脉冲信号的判定模块和用于当所述脉冲信号判定为指令脉冲信号时译码所述指令脉冲信号获得对应的通道控制指令的指令译码模块,所述通道控制模块用于根据所述通道控制指令打开或关闭相应的I2C从设备通道。
[0012]优选的,所述I2C控制器还包括用于检测I2C总线状态的状态检测模块,当所述状态检测模块检测到所述I2C总线为空闲状态时所述脉冲信号发送模块发送预设脉宽的脉冲信号,所述脉冲信号发送模块配置所述预设脉宽的脉冲信号为打开或关闭预设I2C从设备通道对应的通道控制指令。
[0013]优选的,所述脉冲信号发送模块在I2C时钟总线上发送第一预设脉宽的脉冲信号,所述第一预设脉宽的脉冲信号配置为打开预设I2C从设备通道对应的通道控制指令,所述脉冲信号发送模块在模拟I2C时序访问I2C从设备结束时在I2C时钟总线上发送第二预设脉宽的脉冲信号,所述第二预设脉宽的脉冲信号配置为关闭所述预设I2C从设备通道对应的通道控制指令,所述I2C控制器还包括用于在所述脉冲信号发送模块发送第一、第二预设脉宽的脉冲信号之间在I2C总线上为主设备模拟I2C时序访问I2C从设备的I2C模拟丰吴块。
[0014]优选的,所述检测模块包括可编程器件,所述可编程器件使用高速时钟在检测I2C时钟信号下降沿到上升沿的计数数值,并根据所述计数数值获得所述脉冲的宽度。
[0015]此外,根据本发明的又一实施例,提供一种终端,其包括上述的I2C设备的控制装置。
[0016]本发明提供的I2C设备的控制方法、装置及终端,通过检测I2C时钟总线的脉冲信号的脉冲宽度并判定其为指令脉冲信号后,对其进行译码获得通道控制指令,最终根据道控制指令打开或关闭相应的I2C从设备通道,实现对多个具有同一设备地址的I2C从设备的控制。在本发明技术方案中,I2C从设备通道的打开或关闭时间只需要不到一个I2C时钟周期,相比于现有技术I2C低速接口至少需要20个时钟周期,提高了 I2C设备的系统效率,降低了对I2C设备CPU资源的占用,可应用于频繁访问I2C从设备的应用场景。此外,本发明对于I2C从设备的通道数量不设限制,具有很大的灵活性和适应性,解决了现有技术中专用I2C多路选择芯片通道接口数量有限的技术问题。
【附图说明】
[0017]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为现有技术中采用I2C多路选择芯片实现多I2C从设备控制的结构示意图。
[0019]图2为本发明第一实施例中I2C设备的控制方法的流程示意图。
[0020]图3为本发明第一实施例12C设备的控制方法中检测I2C时钟总线的脉冲信号的脉冲宽度的流程示意图。
[0021]图4为本发明第二实施例中I2C设备的控制方法的流程示意图。
[0022]图5为本发明第二实施例12C设备的控制方法中发送预设脉宽的脉冲信号的流程示意图
[0023]图6为本发明第三实施例中I2C设备的控制装置的结构示意图。
[0024]图7为本发明第四实施例中I2C设备的控制装置的结构示意图。
[0025]图8为本发明第五实施例中终端的结构示意图。
【具体实施方式】
[0026]下面结合附图和【具体实施方式】对本发明的技术方案作进一步更详细的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0027]为了实现对每一 I2C从设备的单独访问,本发明的构思是:利用I2C协议的特性,在I2C总线空闲状态下,首选通过在I2C时钟总线SCK上发送预设宽度的脉宽信号来传输预设的控制预设通道的控制信息,然后利用可编程器件解码该控制信息,并根据该控制信息相应地选通或关闭该路I2C设备,这样就可以达到I2C主设备可以访问多个具有同一设备地址的I2C从设备的目的。
[0028]图2为本发明第一实施例中I2C设备的控制方法的流程示意图。如图所示,本发明第一实施例中所述I2C设备的控制方法包括:
[0029]步骤S20:检测I2C时钟总线的脉冲信号的脉冲宽度。
[0030]在本发明实施例中,首选通过可编程器件FGPA(Field-Programmable GateArray,现场可编程门阵列)使用高速时钟检测I2C时钟总线SCK有无脉冲信号,当检测到所述I2C时钟总线上有脉冲信号时,开始检测所述脉冲信号的脉冲宽度,此时所述脉冲信号可能为时钟信号,也可能为包括上述控制指令的指令脉冲信号,在后续步骤中需要首先判定其是否为用来传输预设通道控制信息的指令脉冲信号。
[0031]参见图3,在本发明实施例中,所述检测I2C时钟总线的脉冲信号的脉冲宽度步骤S20包括步骤:
[0032]步骤S202:使用高速时钟在检测I2C时钟信号下降沿到上升沿的计数数值。
[0033]其中,所述I2C总线为空闲状态下,时钟总线SCK处于高电平。当时钟总线SCK上检测到脉冲信号时,时钟总线SCK上的时钟信号开始由高电平下降为低电平,高速时钟从检测到时钟信号下降沿脉冲计数单元开始计数。当检测到脉冲信号消失时,时钟总线SCK上的时
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1