CN105068967B - I2c设备的控制方法、装置及终端 - Google Patents

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

Info

Publication number
CN105068967B
CN105068967B CN201510581989.4A CN201510581989A CN105068967B CN 105068967 B CN105068967 B CN 105068967B CN 201510581989 A CN201510581989 A CN 201510581989A CN 105068967 B CN105068967 B CN 105068967B
Authority
CN
China
Prior art keywords
pulse signal
pulse
default
clock
slave devices
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.)
Active
Application number
CN201510581989.4A
Other languages
English (en)
Other versions
CN105068967A (zh
Inventor
吴夕周
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huzhou YingLie Intellectual Property Operation Co.,Ltd.
Original Assignee
Shanghai Feixun Data Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201510581989.4A priority Critical patent/CN105068967B/zh
Publication of CN105068967A publication Critical patent/CN105068967A/zh
Application granted granted Critical
Publication of CN105068967B publication Critical patent/CN105068967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Abstract

本发明公开了一种I2C设备的控制方法,包括:检测I2C时钟总线的脉冲信号的脉冲宽度;判定所述脉冲信号为时钟信号或指令脉冲信号;当所述脉冲信号判定为指令脉冲信号时,译码所述指令脉冲信号获得对应的通道控制指令;当所述脉冲信号判定为时钟信号时,返回继续检测I2C时钟总线的脉冲信号的脉冲宽度;以及根据所述通道控制指令打开或关闭相应的I2C从设备通道。相应地,本发明还公开一种I2C设备的控制装置及终端。本发明采用的技术方案提高了I2C设备的系统效率,减少了占用的CPU资源,可应用于频繁访问I2C从设备的应用场景。

Description

I2C设备的控制方法、装置及终端
技术领域
本发明涉及I2C通信领域,尤其涉及一种I2C设备的控制方法、装置及终端。
背景技术
由于I2C(Inter-Integrated Circuit)总线具有信号线少、控制简单方便等优点,在现今计算机网络通讯设备中,越来越多的设备采用I2C总线实现设备之间的通信。I2C总线由一根串行时钟总线(SCK)和一根串行数据总线(SDA)组成。现有的I2C从设备连接在同一个I2C主设备下,其访问地址为相同固定的地址,由于其不能直接一起挂载在I2C主设备的下方,因此并不能直接访问多个具有同一设备地址的I2C从设备,而必须增加额外的方案来实现对每一I2C从设备的单独访问。
参见图1,现有技术中目前主要采用I2C多路选择芯片做类似的开关电路来物理打开一个I2C从设备并进行访问。所述I2C多路选择芯片采用I2C协议来选通需要访问的I2C从设备,这样I2C主设备就可以访问所述I2C从设备。在本方案中,当需要访问I2C从设备时,每一次都需要先控制所述I2C多路选择芯片将该路I2C从设备通道选通,访问结束后再将该路通道关闭,所述I2C多路选择芯片通道选通和关闭也是通过I2C协议进行的。由于I2C总线接口为一个低速接口,每一次操作至少需要20个时钟周期,I2C从设备的访问效率较低,且如果频繁访问I2C从设备,将会占据大量CPU资源而影响系统性能。
发明内容
鉴于此,本发明提供一种I2C设备的控制方法、装置及终端,解决现有I2C设备的访问效率低和占据大量CPU资源而影响系统性能技术问题。
为此,本发明采用以下技术方案:
根据本发明的一个实施例,提供一种I2C设备的控制方法,包括:检测I2C时钟总线的脉冲信号的脉冲宽度;判定所述脉冲信号为时钟信号或指令脉冲信号;当所述脉冲信号判定为指令脉冲信号时,译码所述指令脉冲信号获得对应的通道控制指令;当所述脉冲信号判定为指令脉冲信号时,返回继续检测I2C时钟总线的脉冲信号的脉冲宽度;以及根据所述通道控制指令打开或关闭相应的I2C从设备通道。
优选的,在检测I2C时钟总线的脉冲信号步骤之前还包括:检测I2C总线状态;当检测到所述I2C总线为空闲状态时发送预设脉宽的脉冲信号,所述预设脉宽的脉冲信号对应的通道控制指令设置为打开或关闭预设I2C从设备通道。
优选的,所述当检测到所述I2C总线为空闲状态时发送预设脉宽的脉冲信号步骤包括:在I2C时钟总线上发送第一预设脉宽的脉冲信号,所述第一预设脉宽的脉冲信号对应的通道控制指令设置为打开预设I2C从设备通道;在I2C总线上为主设备模拟I2C时序访问I2C从设备;在模拟I2C时序访问I2C从设备结束时在I2C时钟总线上发送第二预设脉宽的脉冲信号,所述第二预设脉宽的脉冲信号对应的通道控制指令设置为关闭所述预设I2C从设备通道。
优选的,所述检测I2C时钟总线的脉冲信号的脉冲宽度步骤包括:通过可编程器件使用高速时钟在检测I2C时钟信号下降沿到上升沿的计数数值;以及根据所述计数数值获得所述脉冲的宽度。
优选的,使用MOS管打开或关闭相应的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低速接口至少需要20个时钟周期,提高了I2C设备的系统效率,降低了对I2C设备CPU资源的占用,可应用于频繁访问I2C从设备的应用场景。此外,本发明对于I2C从设备的通道数量不设限制,具有很大的灵活性和适应性,解决了现有技术中专用I2C多路选择芯片通道接口数量有限的技术问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中采用I2C多路选择芯片实现多I2C从设备控制的结构示意图。
图2为本发明第一实施例中I2C设备的控制方法的流程示意图。
图3为本发明第一实施例I2C设备的控制方法中检测I2C时钟总线的脉冲信号的脉冲宽度的流程示意图。
图4为本发明第二实施例中I2C设备的控制方法的流程示意图。
图5为本发明第二实施例I2C设备的控制方法中发送预设脉宽的脉冲信号的流程示意图
图6为本发明第三实施例中I2C设备的控制装置的结构示意图。
图7为本发明第四实施例中I2C设备的控制装置的结构示意图。
图8为本发明第五实施例中终端的结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步更详细的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
为了实现对每一I2C从设备的单独访问,本发明的构思是:利用I2C协议的特性,在I2C总线空闲状态下,首选通过在I2C时钟总线SCK上发送预设宽度的脉宽信号来传输预设的控制预设通道的控制信息,然后利用可编程器件解码该控制信息,并根据该控制信息相应地选通或关闭该路I2C设备,这样就可以达到I2C主设备可以访问多个具有同一设备地址的I2C从设备的目的。
图2为本发明第一实施例中I2C设备的控制方法的流程示意图。如图所示,本发明第一实施例中所述I2C设备的控制方法包括:
步骤S20:检测I2C时钟总线的脉冲信号的脉冲宽度。
在本发明实施例中,首选通过可编程器件FGPA(Field-Programmable GateArray,现场可编程门阵列)使用高速时钟检测I2C时钟总线SCK有无脉冲信号,当检测到所述I2C时钟总线上有脉冲信号时,开始检测所述脉冲信号的脉冲宽度,此时所述脉冲信号可能为时钟信号,也可能为包括上述控制指令的指令脉冲信号,在后续步骤中需要首先判定其是否为用来传输预设通道控制信息的指令脉冲信号。
参见图3,在本发明实施例中,所述检测I2C时钟总线的脉冲信号的脉冲宽度步骤S20包括步骤:
步骤S202:使用高速时钟在检测I2C时钟信号下降沿到上升沿的计数数值。
其中,所述I2C总线为空闲状态下,时钟总线SCK处于高电平。当时钟总线SCK上检测到脉冲信号时,时钟总线SCK上的时钟信号开始由高电平下降为低电平,高速时钟从检测到时钟信号下降沿脉冲计数单元开始计数。当检测到脉冲信号消失时,时钟总线SCK上的时钟信号开始由低电平上升为高电平,高速时钟从检测到时钟信号上升沿脉冲计数单元开始停止计数,这样可以得到钟信号下降沿到上升沿的计数数值N。
步骤S204:根据所述计数数值获得所述脉冲的宽度。
其中,所述脉冲的宽度也即为所述脉冲上升到下降之间的时间,所以根据所述I2C设备的时钟频率和所述计数数值N可以轻易获得所述脉冲的宽度T。
步骤S40:判定所述脉冲信号为时钟信号或指令脉冲信号。
由于I2C标准时钟频率最大为100KHZ,故时钟信号高低脉宽不低于5us。如果在步骤S204中获得的所述脉冲的宽度T大于或等于5us,则可判定所述脉冲信号为时钟信号;如果在步骤S204中获得的所述脉冲的宽度T小于5us,则可判定所述脉冲信号为指令脉冲信号。这样,就可以通过检测到的所述脉冲信号的宽度简便地判定所述脉冲信号的信号类型。
步骤S60:当所述脉冲信号判定为指令脉冲信号时,译码所述指令脉冲信号获得对应的通道控制指令;当所述脉冲信号判定为时钟信号时,返回继续检测I2C时钟总线的脉冲信号的脉冲宽度。
其中,当所述脉冲信号判定为指令脉冲信号时,则认定其实际为在I2C时钟总线生成的用来传输预设控制信息的预设脉宽信号。在本发明实施例中,通过译码模块利用预先配置的译码规则和格式进行译码获得所述对应通道控制指令,所述通道控制指令可包括操作码和地址码,所述操作码包括预设的打开或关闭通道的信息,所述地址码包括预设的I2C从设备通道的地址,对于通道控制指令,每一个I2C从设备通道包括打开和关闭两种操作码以及一个唯一的地址码。这样就获得I2C从设备的通道控制指令,可执行对预设的I2C从设备的通道进行预设的打开或关闭的控制。
其中,当所述脉冲信号判定为时钟信号时,则认定其并非为在I2C时钟总线生成的用来传输预设控制信息的预设脉宽信号,则返回步骤S20继续检测I2C时钟总线的脉冲信号的脉冲宽度,直到检测到用来传输预设控制信息的指令脉冲信号。
步骤S80:根据所述通道控制指令打开或关闭相应的I2C从设备通道。
在本实施例中,采用MOS管打开或关闭相应的I2C从设备通道。所述MOS管的基极(G极)控制关闭时具有隔绝源极(S极)和漏极(D极),基极(G极)控制开启时源极(S极)和漏极(D极)导通具有很小的导通电阻,可很好地实现本发明I2C从设备通道的双向传输信号要求,基极(G)控制为逻辑信号控制,可与译码模块直接通信。
根据译码得到的所述通道控制指令,可打开或关闭相应的I2C从设备通道。在本发明实施例中,I2C从设备通道的打开或关闭时间只需要不到一个I2C时钟周期,相比于现有技术I2C低速接口至少需要20个时钟周期,提高了I2C设备的系统效率,降低了对I2C设备CPU资源的占用,可应用于频繁访问I2C从设备的应用场景。此外,本发明对于I2C从设备的通道数量不设限制,具有很大的灵活性和适应性,解决了现有技术中专用I2C多路选择芯片通道接口数量有限的技术问题。
这样,本发明实施例,通过检测I2C时钟总线的脉冲信号的脉冲宽度并判定其为指令脉冲信号后,对其进行译码获得通道控制指令,最终根据道控制指令打开或关闭相应的I2C从设备通道,实现对多个具有同一设备地址的I2C从设备的控制。
图4为本发明第二实施例中I2C设备的控制方法的流程示意图。如图所示,所述I2C设备的控制方法包括:
步骤S10:检测I2C总线状态。
步骤S12:当检测到所述I2C总线为空闲状态时发送预设脉宽的脉冲信号,所述预设脉宽的脉冲信号对应的通道控制指令设置为打开或关闭预设I2C从设备通道。
步骤S20:检测I2C时钟总线的脉冲信号的脉冲宽度。
步骤S40:判定所述脉冲信号为时钟信号或指令脉冲信号。
步骤S60:当所述脉冲信号判定为指令脉冲信号时,译码所述指令脉冲信号获得对应的通道控制指令。
步骤S80:根据所述通道控制指令打开或关闭相应的I2C从设备通道。
在本发明实施例中,首选检测I2C总线状态是处在空闲状态还是工作状态,当处在工作状态时并不能实施本发明实施例的技术方案。当I2C总线状态处在空闲状态时,时钟总线SCK处于高电平,就可以在时钟总线SCK上发送脉冲信号。
在步骤S12中,预设脉宽的指令脉冲信号可通过所述I2C设备预先配置编码规则和格式,建立指令脉冲信号与预设通道控制指令的一一对应表,即每一个预设指令脉冲信号对应表示一个特定I2C从设备通道的打开或关闭的指令,所述通道控制指令可包括操作码和地址码,所述操作码包括预设的打开或关闭通道的信息,所述地址码包括预设的I2C从设备通道的地址,对于通道控制指令,每一个I2C从设备通道包括打开和关闭两种操作码以及一个唯一的地址码。相应的,在步骤S60中,通过译码模块利用预先配置的译码规则和格式进行译码获得所述对应通道控制指令。显然,所述I2C设备预先配置的所述编码规则与所述译码规则是对应的,具体的编码规则和格式可根据实际需要进行配置。
参见图5,在步骤S12中,所述当检测到所述I2C总线为空闲状态时发送预设脉宽的脉冲信号步骤包括:
步骤S122:在I2C时钟总线上发送第一预设脉宽的脉冲信号,所述第一预设脉宽的脉冲信号对应的通道控制指令设置为打开预设I2C从设备通道。
步骤S124:在I2C总线上为主设备模拟I2C时序访问I2C从设备。
步骤S126:在模拟I2C时序访问I2C从设备结束时在I2C时钟总线上发送第二预设脉宽的脉冲信号,所述第二预设脉宽的脉冲信号对应的通道控制指令设置为关闭所述预设I2C从设备通道。
在本发明实施例中,先后在I2C时钟总线上发送的第一、第二预设脉宽的脉冲信号分别用来传输打开、关闭预设I2C从设备通道的通道控制指令,每次打开预设I2C从设备通道访问完成后都要关闭预设I2C从设备通道。所述预设脉宽的脉冲信号配置为低电平脉冲,脉冲宽度可通过上述编码规则编译得到。优选的,为了译码的简洁和防止误触发,可配置所述预设脉宽的脉冲信号的预设脉宽小于4us。
基于本发明上述方法实施例,本发明第三实施例提供一种I2C设备的控制装置10。参见图6,所述I2C设备的控制装置10包括I2C控制器20、译码模块30和通道控制模块40,所述I2C控制器20包括用于发送预设脉宽的脉冲信号的脉冲信号发送模块210,所述译码模块30包括用于检测I2C时钟总线的脉冲信号的检测模块310、用于判定所述脉冲信号为时钟信号或指令脉冲信号的判定模块320和用于当所述脉冲信号判定为指令脉冲信号时译码所述指令脉冲信号获得对应的通道控制指令的指令译码模块330,所述通道控制模块40用于根据所述通道控制指令打开或关闭相应的I2C从设备通道。
在本发明实施例中,I2C控制器20设置在I2C主设备CPU 50上,首选检测I2C总线状态是处在空闲状态还是工作状态,当I2C总线状态处在空闲状态时,时钟总线SCK处于高电平,就可以通过所述脉冲信号发送模块210在时钟总线SCK上发送预设脉宽的脉冲信号。具体的,预设脉宽的指令脉冲信号可通过所述I2C设备预先配置编码规则和格式,建立指令脉冲信号与预设通道控制指令的一一对应表,即每一个预设指令脉冲信号对应表示一个特定I2C从设备通道的打开或关闭的指令,所述通道控制指令可包括操作码和地址码,所述操作码包括预设的打开或关闭通道的信息,所述地址码包括预设的I2C从设备通道的地址,对于通道控制指令,每一个I2C从设备通道包括打开和关闭两种操作码以及一个唯一的地址码。相应的,所述指令译码模块330利用预先配置的译码规则和格式进行译码获得所述对应通道控制指令。显然,所述I2C设备预先配置的所述编码规则与所述译码规则是对应的,具体的编码规则和格式可根据实际需要进行配置。
在本发明实施例中,所述译码模块30中的所述检测模块310首选通过可编程器件FGPA使用高速时钟检测I2C时钟总线SCK有无脉冲信号,当检测到所述I2C时钟总线上有脉冲信号时,所述检测模块310开始检测所述脉冲信号的脉冲宽度,此时所述脉冲信号可能为时钟信号,也可能为包括上述控制指令的指令脉冲信号,需要首先判定其是否为用来传输预设通道控制信息的指令脉冲信号。具体的,所述检测模块310在检测I2C时钟总线的脉冲信号的脉冲宽度时,使用高速时钟在检测I2C时钟信号下降沿到上升沿的计数数值,并根据所述计数数值获得所述脉冲的宽度。
其中,所述I2C总线为空闲状态下,时钟总线SCK处于高电平。当所述检测模块310在时钟总线SCK上检测到脉冲信号时,时钟总线SCK上的时钟信号开始由高电平下降为低电平,高速时钟从检测到时钟信号下降沿脉冲计数单元开始计数。当所述检测模块310检测到脉冲信号消失时,时钟总线SCK上的时钟信号开始由低电平上升为高电平,高速时钟从检测到时钟信号上升沿脉冲计数单元开始停止计数,这样所述检测模块310可以得到钟信号下降沿到上升沿的计数数值N。所述脉冲的宽度也即为所述脉冲上升到下降之间的时间,所以所述检测模块310根据所述I2C设备的时钟频率和所述计数数值N可以轻易获得所述脉冲的宽度T。
由于I2C标准时钟频率最大为100KHZ,故时钟信号高低脉宽不低于5us。如果所述检测模块310获得的所述脉冲的宽度T大于或等于5us,则可判定所述脉冲信号为时钟信号;如果所述检测模块310获得的所述脉冲的宽度T小于5us,则可判定所述脉冲信号为指令脉冲信号。这样,所述判定模块320就可以通过所述检测模块310检测到的所述脉冲信号的宽度简便地判定所述脉冲信号的信号类型。
当所述脉冲信号被,所述判定模块320判定为指令脉冲信号时,则认定其实际为在I2C时钟总线的所述脉冲信号发送模块210生成的用来传输预设控制信息的预设脉宽信号。在本发明实施例中,所述指令译码模块330利用预先配置的译码规则和格式进行译码获得所述对应通道控制指令,所述通道控制指令可包括操作码和地址码,所述操作码包括预设的打开或关闭通道的信息,所述地址码包括预设的I2C从设备通道的地址,对于通道控制指令,每一个I2C从设备通道包括打开和关闭两种操作码以及一个唯一的地址码。这样就获得I2C从设备的通道控制指令,可执行对预设的I2C从设备的通道进行预设的打开或关闭的控制。
在本实施例中,所述通道控制模块40采用MOS管根据所述指令译码模块330译码得到的通道控制指令打开或关闭相应的I2C从设备通道。所述MOS管的基极(G极)控制关闭时具有隔绝源极(S极)和漏极(D极),基极(G极)控制开启时源极(S极)和漏极(D极)导通具有很小的导通电阻,可很好地实现本发明I2C从设备通道的双向传输信号要求,基极(G)控制为逻辑信号控制,可与译码模块直接通信。
在本发明实施例中,I2C从设备通道的打开或关闭时间只需要不到一个I2C时钟周期,相比于现有技术I2C低速接口至少需要20个时钟周期,提高了I2C设备的系统效率,降低了对I2C设备CPU资源的占用,可应用于频繁访问I2C从设备的应用场景。此外,本发明对于I2C从设备的通道数量不设限制,具有很大的灵活性和适应性,解决了现有技术中专用I2C多路选择芯片通道接口数量有限的技术问题。
图7为本发明第四实施例中I2C设备的控制装置10的结构示意图。如图所示,在上述第三实施例的基础上,在本发明实施例提供的I2C设备的控制装置10中,所述I2C控制器20还包括用于检测I2C总线状态的状态检测模块220和用于在I2C总线上为主设备模拟I2C时序访问I2C从设备的I2C模拟模块230,所述通道控制模块40还包括MOS管410。
在本发明实施例中,当所述状态检测模块220检测到所述I2C总线为空闲状态时所述脉冲信号发送模块210发送预设脉宽的脉冲信号,所述脉冲信号发送模块配置所述预设脉宽的脉冲信号为打开或关闭预设I2C从设备通道对应的通道控制指令。具体的,所述脉冲信号发送模块210在I2C时钟总线上发送第一预设脉宽的脉冲信号,所述第一预设脉宽的脉冲信号对应的通道控制指令设置为打开预设I2C从设备通道,然后所述I2C模拟模块230在I2C总线上为主设备模拟I2C时序访问I2C从设备,最后在所述I2C模拟模块230模拟I2C时序访问I2C从设备结束时,所述脉冲信号发送模块210在I2C时钟总线上发送第二预设脉宽的脉冲信号,所述第二预设脉宽的脉冲信号对应的通道控制指令设置为关闭所述预设I2C从设备通道。
在本发明实施例中,所述脉冲信号发送模块210先后在I2C时钟总线上发送的第一、第二预设脉宽的脉冲信号分别用来传输打开、关闭预设I2C从设备通道的通道控制指令,每次打开预设I2C从设备通道访问完成后都要关闭预设I2C从设备通道。所述预设脉宽的脉冲信号配置为低电平脉冲,脉冲宽度可通过上述编码规则编译得到。优选的,为了译码的简洁和防止误触发,可配置所述预设脉宽的脉冲信号的预设脉宽小于4us。
参见图8,本发明第五实施例提供一种终端70,其包括上述的I2C设备的控制装置10,所述I2C设备的控制装置10包括I2C控制器20、译码模块30和通道控制模块40。所述终端70可以为任何具有I2C设备的电子终端,所述I2C设备的控制装置10配合I2C设备对其进行控制。
以上所揭露的仅为本发明实施例中的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (6)

1.一种I2C设备的控制方法,其特征在于,包括:
检测I2C总线状态;当检测到所述I2C总线为空闲状态时发送预设脉宽的脉冲信号,所述预设脉宽的脉冲信号对应的通道控制指令设置为打开或关闭预设I2C从设备通道,包括:在I2C时钟总线上发送第一预设脉宽的脉冲信号,所述第一预设脉宽的脉冲信号对应的通道控制指令设置为打开预设I2C从设备通道;在I2C总线上为主设备模拟I2C时序访问I2C从设备;在模拟I2C时序访问I2C从设备结束时在I2C时钟总线上发送第二预设脉宽的脉冲信号,所述第二预设脉宽的脉冲信号对应的通道控制指令设置为关闭所述预设I2C从设备通道;
检测I2C时钟总线的脉冲信号的脉冲宽度;
判定所述脉冲信号为时钟信号或指令脉冲信号;
当所述脉冲信号判定为指令脉冲信号时,译码所述指令脉冲信号获得对应的通道控制指令;当所述脉冲信号判定为时钟信号时,返回继续检测I2C时钟总线的脉冲信号的脉冲宽度;以及
根据所述通道控制指令打开或关闭相应的I2C从设备通道。
2.如权利要求1所述的I2C设备的控制方法,其特征在于,所述检测I2C时钟总线的脉冲信号的脉冲宽度步骤包括:通过可编程器件使用高速时钟在检测I2C时钟信号下降沿到上升沿的计数数值;以及根据所述计数数值获得脉冲的宽度。
3.如权利要求1所述的I2C设备的控制方法,其特征在于,使用MOS管打开或关闭相应的I2C从设备通道。
4.一种I2C设备的控制装置,其特征在于,其包括I2C控制器、译码模块和通道控制模块,所述I2C控制器包括用于发送预设脉宽的脉冲信号的脉冲信号发送模块,所述译码模块包括用于检测I2C时钟总线的脉冲信号脉冲宽度的检测模块、用于判定所述脉冲信号为时钟信号或指令脉冲信号的判定模块和用于当所述脉冲信号判定为指令脉冲信号时译码所述指令脉冲信号获得对应的通道控制指令的指令译码模块,所述通道控制模块用于根据所述通道控制指令打开或关闭相应的I2C从设备通道;所述I2C控制器还包括用于检测I2C总线状态的状态检测模块,当所述状态检测模块检测到所述I2C总线为空闲状态时所述脉冲信号发送模块发送预设脉宽的脉冲信号,所述脉冲信号发送模块配置所述预设脉宽的脉冲信号为打开或关闭预设I2C从设备通道对应的通道控制指令,且所述脉冲信号发送模块在I2C时钟总线上发送第一预设脉宽的脉冲信号,所述第一预设脉宽的脉冲信号配置为打开预设I2C从设备通道对应的通道控制指令,所述脉冲信号发送模块在模拟I2C时序访问I2C从设备结束时在I2C时钟总线上发送第二预设脉宽的脉冲信号,所述第二预设脉宽的脉冲信号配置为关闭所述预设I2C从设备通道对应的通道控制指令,所述I2C控制器还包括用于在所述脉冲信号发送模块发送第一、第二预设脉宽的脉冲信号之间在I2C总线上为主设备模拟I2C时序访问I2C从设备的I2C模拟模块。
5.如权利要求4所述的I2C设备的控制装置,其特征在于,所述脉冲宽度的检测模块包括可编程器件,所述可编程器件使用高速时钟在检测I2C时钟信号下降沿到上升沿的计数数值,并根据所述计数数值获得脉冲的宽度。
6.一种终端,其特征在于,其包括如权利要求4或5所述的I2C设备的控制装置。
CN201510581989.4A 2015-09-14 2015-09-14 I2c设备的控制方法、装置及终端 Active CN105068967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510581989.4A CN105068967B (zh) 2015-09-14 2015-09-14 I2c设备的控制方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510581989.4A CN105068967B (zh) 2015-09-14 2015-09-14 I2c设备的控制方法、装置及终端

Publications (2)

Publication Number Publication Date
CN105068967A CN105068967A (zh) 2015-11-18
CN105068967B true CN105068967B (zh) 2018-06-19

Family

ID=54498343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510581989.4A Active CN105068967B (zh) 2015-09-14 2015-09-14 I2c设备的控制方法、装置及终端

Country Status (1)

Country Link
CN (1) CN105068967B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970890B (zh) * 2016-08-31 2020-04-28 上海博达通信科技有限公司 一种多级i2c总线控制方法
CN108280041B (zh) * 2017-12-29 2020-03-10 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种内部集成电路主机的通信方法和装置
CN113641618A (zh) * 2021-08-12 2021-11-12 海信(山东)空调有限公司 Iic通讯控制方法、用电设备和计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1449168A (zh) * 2003-05-08 2003-10-15 尹启凤 一种单线串行接口协议
CN1731383A (zh) * 2005-08-29 2006-02-08 杭州华为三康技术有限公司 一种设备管理系统及方法
CN103530249A (zh) * 2012-07-06 2014-01-22 鸿富锦精密工业(深圳)有限公司 内部整合电路总线传输系统及其传输方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7141950B1 (en) * 2006-02-28 2006-11-28 Cypress Semiconductor Corp. Fan control utilizing bi-directional communication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1449168A (zh) * 2003-05-08 2003-10-15 尹启凤 一种单线串行接口协议
CN1731383A (zh) * 2005-08-29 2006-02-08 杭州华为三康技术有限公司 一种设备管理系统及方法
CN103530249A (zh) * 2012-07-06 2014-01-22 鸿富锦精密工业(深圳)有限公司 内部整合电路总线传输系统及其传输方法

Also Published As

Publication number Publication date
CN105068967A (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
CN107704346B (zh) Soc芯片调试方法及调试系统
EP3287905B1 (en) Circuit, method and apparatus for usb interface sharing
CN104079415B (zh) 网络装置及其联线检测方法
CN105068967B (zh) I2c设备的控制方法、装置及终端
CN106201943A (zh) 连接不同类型连接端口的通用序列总线之集线装置及方法
CN108984354A (zh) 一种服务器芯片调试电路、调试方法及服务器
CN104102603A (zh) 通用串行总线网络接口控制器及其操作模式切换方法
CN111090556B (zh) 一种片上系统及usb物理层测试方法
CN107370685A (zh) 一种物联网终端接入方法及装置
CN110445681A (zh) 一种多端口并行测试方法、装置及电子设备
CN103440187A (zh) 一种基于硬件脚本的can总线自动化测试方法
CN103684407A (zh) Otg装置
CN105528261A (zh) 一种嵌入式设备中智能输出调试信息的方法及系统
CN105760558B (zh) Fpga芯片中多输入查找表的布局方法
CN114168506B (zh) 多通道dma控制传输装置
CN104936055A (zh) 一种具有耳机接口的终端及一种耳机接口自适应方法
CN111104361B (zh) 串口的端口号查询方法、装置、计算机设备和存储介质
CN105956251A (zh) 一种i2c总线的设计方法及装置
CN203217573U (zh) 一种修复违规保持时间的电路结构
CN207200741U (zh) 控制局域网络can芯片和电子设备
CN105824773A (zh) 一种基于fpga调用osd实现多单元服务器多级级联的方法
CN106372017B (zh) 一种嵌入式设备和串口收发系统
CN215005739U (zh) 一种总线板级协议验证电路
CN216351051U (zh) 一种串口芯片测试系统的验证电路
CN104866401B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201125

Address after: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Jiji Intellectual Property Operation Co., Ltd

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Patentee before: Phicomm (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201216

Address after: 233000 3rd floor, Dong'an Market, Fengyang West Road, Longzihu District, Bengbu City, Anhui Province

Patentee after: Bengbu 309 Technology Consulting Co.,Ltd.

Address before: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Hangzhou Jiji Intellectual Property Operation Co., Ltd

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210201

Address after: 313001 room 1019, Xintiandi office building, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee after: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Address before: 233000 3rd floor, Dong'an Market, Fengyang West Road, Longzihu District, Bengbu City, Anhui Province

Patentee before: Bengbu 309 Technology Consulting Co.,Ltd.