CN109388605A - 一种解除i2c总线死锁的方法和装置 - Google Patents

一种解除i2c总线死锁的方法和装置 Download PDF

Info

Publication number
CN109388605A
CN109388605A CN201710680368.0A CN201710680368A CN109388605A CN 109388605 A CN109388605 A CN 109388605A CN 201710680368 A CN201710680368 A CN 201710680368A CN 109388605 A CN109388605 A CN 109388605A
Authority
CN
China
Prior art keywords
signal
bus
clock
detector
detection
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.)
Granted
Application number
CN201710680368.0A
Other languages
English (en)
Other versions
CN109388605B (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.)
Sanechips Technology Co Ltd
Shenzhen ZTE Microelectronics Technology Co Ltd
Original Assignee
Shenzhen ZTE Microelectronics 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 Shenzhen ZTE Microelectronics Technology Co Ltd filed Critical Shenzhen ZTE Microelectronics Technology Co Ltd
Priority to CN201710680368.0A priority Critical patent/CN109388605B/zh
Publication of CN109388605A publication Critical patent/CN109388605A/zh
Application granted granted Critical
Publication of CN109388605B publication Critical patent/CN109388605B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种解除I2C总线死锁的方法,所述I2C总线连接主机和从机;该方法包括:根据预设的死锁条件判断策略判断所述I2C总线是否处于死锁状态;当所述I2C总线处于死锁状态时,生成第一时钟信号,所述第一时钟信号用于表征所述从机将所述I2C总线的串行数据线SDA上的电平置为高电平;在所述I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断所述I2C总线是否处于正常状态;当所述I2C总线处于正常状态时,停止生成第一时钟信号。本发明实施例还公开了一种解除I2C总线死锁装置。

Description

一种解除I2C总线死锁的方法和装置
技术领域
本发明涉及通信领域,尤其涉及一种防止内部集成电路(Inter IntegratedCircuit,I2C)总线死锁的方法和装置。
背景技术
I2C总线是一种双向串行总线,包括串行数据线(Serial Data Line,SDA)和串行时钟线(Serial Clock Line,SCL),所有接到I2C总线上的设备的数据线都连接到I2C总线中的SDA数据线,所有接到I2C总线上的设备的时钟线均连接到I2C总线中的SCL时钟线。
I2C总线还是一种支持多主机和多从机系统的低速半双工数据通信总线,主机和从机在利用I2C总线进行通信时,当SDA数据线上的电平为低电平时,表明总线正在被某一个主机占用,其他主机无法获取总线的使用权,此时当出现主机异常复位、掉电或热拔等情况时,主机便不再向SCL上输入时钟脉冲,而从机会一直等待主机发送时钟脉冲,来释放SDA,但主机检测到SDA数据线上为低电平,认为总线已被其他主机占用,不会向SCL时钟线上输入时钟脉冲,从而导致I2C总线死锁,阻塞主机与从机之间的通信。
目前在解除I2C总线死锁时所采用的方法有:在检测到SDA数据线被拉低时,控制SCL时钟线产生固定个数的时钟脉冲(如:9个时钟脉冲或者16个时钟脉冲)来使从机释放SDA,将I2C总线从死锁中恢复,但是固定个数的时钟脉冲不能完全保证I2C总线从死锁中恢复。
发明内容
为解决上述技术问题,本发明实施例期望提供一种解除I2C总线死锁的方法和装置,能够完全保证I2C总线从死锁状态中恢复。
本发明的技术方案是这样实现的:
本发明实施例提供了一种解除I2C总线死锁的方法,所述I2C总线连接主机和从机;所述方法包括:
根据预设的死锁条件判断策略判断所述I2C总线是否处于死锁状态;
当所述I2C总线处于死锁状态时,生成第一时钟信号,所述第一时钟信号用于表征所述从机将所述I2C总线的串行数据线SDA上的电平置为高电平;
在所述I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断所述I2C总线是否处于正常状态;
当所述I2C总线处于正常状态时,停止生成第一时钟信号。
上述方案中,所述根据预设的死锁条件判断策略判断所述I2C总线是否处于死锁状态,包括:获取所述SDA上第一电流,根据所述第一电流生成第一检测信号,所述第一检测信号用于表征所述第一电流的流向;获取所述I2C总线的串行时钟线SCL上的第二时钟信号,根据所述第二时钟信号生成第二检测信号,所述第二检测信号用于表征所述第二时钟信号是否丢失;当所述第一检测信号表征所述第一电流流向从机,且所述第二检测信号表征所述SCL上的第二时钟信号丢失时,确定所述I2C总线处于死锁状态。
上述方案中,所述当所述I2C总线处于死锁状态时,生成第一时钟信号,包括:当所述I2C总线处于死锁状态时,第一控制信号控制时钟脉冲发生器生成所述第一时钟信号,其中,所述第一控制信号由所述第一检测信号和所述第二检测信号生成。
上述方案中,所述根据预设的解锁条件判断策略判断所述I2C总线是否处于正常状态,包括:获取所述SDA上第二电流,根据所述第二电流生成第三检测信号,所述第三检测信号用于表征所述第二电流的流向;获取所述SCL上的第三时钟信号,根据所述第三时钟信号生成第四检测信号,所述第四检测信号用于表征所述第三时钟信号是否丢失;当所述第三检测信号表征所述第二电流未流向从机,或所述第四检测信号表征所述SCL上的第三时钟信号未丢失时,确定所述I2C总线处于正常状态。
上述方案中,所述当所述I2C总线处于正常状态时,停止生成第一时钟信号,包括:当所述I2C总线处于正常状态时,第二控制信号控制所述时钟脉冲发生器停止生成所述第一时钟信号,其中,所述第二控制信号由所述第三检测信号和所述第四检测信号生成。
本发明实施例中还提供了一种解除内部集成电路I2C总线死锁装置,所述装置应用于I2C总线连接的主机和从机的系统中,所述装置包括:检测器和时钟脉冲发生器;
所述检测器,用于根据预设的死锁条件判断策略判断所述I2C总线是否处于死锁状态;
所述时钟脉冲发生器,用于当所述I2C总线处于死锁状态时,生成第一时钟信号,所述第一时钟信号用于表征所述从机将所述I2C总线的串行数据线SDA上的电平置为高电平;
所述检测器,还用于在所述I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断所述I2C总线是否处于正常状态;
所述时钟脉冲发生器,还用于当所述I2C总线处于正常状态时,停止生成第一时钟信号。
上述方案中,所述检测器包括:第一电流方向检测器、第一脉冲丢失检测器和第一信号检测器;所述第一电流方向检测器,用于获取所述SDA上第一电流,根据所述第一电流生成第一检测信号,所述第一检测信号用于表征所述第一电流的流向,并将所述第一检测信号输出至所述第一信号检测器的第一输入端;所述第一脉冲丢失检测器,用于获取所述I2C总线的串行时钟线SCL上的第二时钟信号,根据所述第二时钟信号生成第二检测信号,所述第二检测信号用于表征所述第二时钟信号是否丢失,并将所述第二检测信号输出至所述第一信号检测器的第二输入端;所述第一信号检测器,用于当所述第一检测信号表征所述第一电流流向从机,且所述第二检测信号表征所述SCL上的第二时钟信号丢失时,确定所述I2C总线处于死锁状态。
上述方案中,所述第一信号检测器为与门;所述与门的第一输入端接收所述第一检测信号,所述与门的第二输入端接收所述第二检测信号,所述与门的输出端输出第一控制信号;当所述第一控制信号满足第一预设值时,确定所述第一控制信号表征所述I2C总线处于死锁状态;所述时钟脉冲发生器,具体用于当所述I2C总线处于死锁状态时,受所述第一控制信号控制生成所述第一时钟信号。
上述方案中,所述检测器包括:第二电流方向检测器、第二脉冲丢失检测器和第二信号检测器;所述第二电流方向检测器,用于获取所述SDA上第二电流,根据所述第二电流生成第三检测信号,所述第三检测信号用于表征所述第二电流的流向,并将所述第三检测信号输出至所述第二信号检测器的第一输入端;所述第二脉冲丢失检测器,用于获取所述SCL上的第三时钟信号,根据所述第三时钟信号生成第四检测信号,所述第四检测信号用于表征所述第三时钟信号是否丢失,并将所述第四检测信号输出至所述第二信号检测器的第二输入端;所述第二信号检测器,用于当所述第三检测信号表征所述第二电流未流向从机,或所述第四检测信号表征所述SCL上的第三时钟信号未丢失时,确定所述I2C总线处于正常状态。
上述方案中,所述第二信号检测器为与门;所述与门的第一输入端接收所述第三检测信号,所述与门的第二输入端接收所述第四检测信号,所述与门的输出端输出第二控制信号;当所述第二控制信号满足第二预设值时,确定所述第二控制信号表征所述I2C总线处于正常状态;所述时钟脉冲发生器,具体用于当所述I2C总线处于正常状态时,受所述第二控制信号控制停止生成所述第一时钟信号。
本发明实施例提供的一种解除I2C总线死锁的方法和装置,根据预设的死锁条件判断策略判断I2C总线是否处于死锁状态;当I2C总线处于死锁状态时,生成第一时钟信号,第一时钟信号用于表征从机将I2C总线的串行数据线SDA上的电平置为高电平;在I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断I2C总线是否处于正常状态;当I2C总线处于正常状态时,停止生成第一时钟信号。与现有技术相比,当I2C总线处于死锁状态时,生成不定脉冲个数的第一时钟信号,只有当总线从死锁状态恢复至正常状态时才停止生成第一时钟信号。如此,能够完全保证I2C总线从死锁状态中恢复,避免通信受阻。
附图说明
图1为本发明实施例中解除I2C总线死锁的方法的流程示意图;
图2为本发明实施例中脉冲丢失检测器的激励-响应波形示意图;
图3为本发明实施例中解除I2C总线死锁装置的结构示意图;
图4为本发明实施例中第一种解除I2C总线死锁系统的结构示意图;
图5为本发明实施例中第二种解除I2C总线死锁系统的结构示意图;
图6为本发明实施例中第三种解除I2C总线死锁系统的结构示意图;
图7为本发明实施例中第四种解除I2C总线死锁系统的结构示意图。
具体实施方式
I2C总线还是一种支持多主机和多从机系统的低速半双工数据通信总线,根据I2C协议规定,在多主机I2C总线系统中,只有其中一个主机可以占用总线,即主机在SCL时钟线上产生时钟脉冲信号,通过驱动SDA数据线向从机发送地址和读写控制信号,以达到寻址从机以及控制SDA数据线上传输数据方向的目的。只有主机才能对12C总线实现管理与检测,开始和结束信号一般都是由主机产生。I2C总线数据传输时,在时钟线SCL为高电平期间,数据线SDA上必须保持有稳定的逻辑电平状态,只有在时钟线SCL为低电平时,才允许数据线SDA上的电平状态发生变化。
12C总线本身不会处于死锁状态,但当从机将SDA上的电平拉低时,主机发生复位,主机在复位后重新申请总线的控制权时发现SDA上为低电平,就不会产生时钟脉冲对I2C总线进行控制,此时I2C总线处于死锁状态,因此必须通过一定的手段来解除I2C总线死锁,保证正常通信。
对于解除I2C总线锁定所采用的方法主要有以下:
1、在申请号为200510089959.8的专利中公开了,通过检测主机上的复位信号,来启动SCL时钟脉冲发生器,驱动SCL产生9个共持续90ms的时钟脉冲,从而避免I2C总线的死锁。由于主机在通信中异常复位只是导致I2C总线死锁的实际场景之一,所以该发明只能对I2C主机发生的外部复位有效,而对于其他异常场景,如I2C主机中的内部复位(看门狗复位),则不起作用,即该专利对I2C总线死锁的检测存在漏检现象。而且该发明只能固定产生9个时钟脉冲,不能完全确保总线从死锁中恢复。此外,在多主机I2C总线系统中,该装置的复位检测信号数量与主机的个数成线性关系,假设系统中存在两个主机,装置就需要两个复位检测信号,增加了系统集成复杂度。
2、在申请号为200510053458.4的专利中公开了,需要在通信发生异常中断时,人工参与判断通信是否发送异常并复位主机。主机复位后检测SDA上的电平为低电平,此时主机会强制向SCL时钟线灌入时钟脉冲,从而使从机释放SDA。这种方案要求主机具有软件或硬件可编程的能力,且需要手动复位主机,在应用范围上有较大的局限性。
3、在申请号为02813054.5的专利中公开了,在I2C总线系统的从机侧实现从异常的主机行为中恢复的功能。但是,该方法不适用于不具备死锁恢复功能的I2C总线系统。
4、在申请号为200710076833.6的专利中公开了,用I2C主机控制所有I2C从机的工作电源,当I2C主机检测到总线死锁时,断开I2C从机的工作电源,等待设定时间后再恢复供电,使I2C从机恢复至初始状态。该专利没有涉及总线死锁检测的方法,只涉及死锁恢复的方法,且会使电源设计变得复杂,影响电源完整性,增加系统的风险,而且需要主机来控制从机电源,即必须在主机中增加电源控制功能,对于不具备这种电源控制能力的主机所在的I2C系统,就无能为力了。
5、Linear公司的产品LTC4307的原型美国专利US 7478286B2公开了,在检测到SDA或SCL上的电平被拉低后,触发一个30ms的定时器,如果SDA或SCL在30ms内仍然保持低电平,则该定时器就会启动8.5KHz的时钟脉冲发生器,向SCL发送16个脉冲,使总线恢复正常。但该方案在主机拉低SDA时,也会触发定时器,导致定时器被不必要地频繁触发,增加了系统功耗,甚至会使时钟脉冲发生器产生不必要的时钟脉冲从而影响正常通信,存在I2C总线死锁的误检;且该方案受定时器的定时时间限制,定时时间的设定直接影响着I2C总线死锁检测精度,若定时时间过小可能会导致定制器的频繁启动,若定时时间过大有会导致总线死锁无法得到及时检测,影响正常通信;另外,固定的时钟脉冲个数也可能使总线无法从死锁状态中恢复。
以上方案在对于解除I2C总线死锁存在一定的局限性,即对于I2C总线死锁的检测存在漏检或误检现象;不能完全保证I2C总线从死锁中恢复;对I2C总线系统中各部分的功能具有一定的要求。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
I2C总线(如未特别说明本发明实施例中出现的“总线”均为“I2C总线”)连接至少一个主机和至少一个从机,所有主机和从机均与I2C总线的SDA和SCL相连接,从而实现主机与从机之间的通信。本发明实施例中,通过判断总线的死锁状态,来生成不定脉冲个数的第一时钟信号,只有当总线从死锁中恢复后才停止生成第一时钟信号,能够完全保证总线从死锁中恢复。
图1为本发明实施例中解除I2C总线死锁的方法的流程示意图,如图1所示,该方法包括:
步骤101:根据预设的死锁条件判断策略判断I2C总线是否处于死锁状态。
本发明实施例中,当I2C总线的SDA上的电平被从机拉低,且SCL上时钟脉冲信号丢失时,确定I2C总线处于死锁状态。
需要说明的是,从机将SDA上的电平拉低可以包括:正常情况下从机向主机发送低电平信号,或者在I2C总线死锁状态下从机持续将SDA上的电平拉低。而在正常情况下,SDA上电平被从机拉低的同时,主机不会停止对SCL的控制,即主机会向SCL持续输入时钟脉冲信号。在I2C总线死锁状态下,SDA上电平被从机拉低的同时,主机会停止向SCL输入时钟脉冲信号。
这里,可以通过检测SDA上的电流流向来判断SDA上的电平是否被从机拉低。需要说明的是,当SDA上的电平被从机拉低时,SDA上靠近从机侧的电压低于靠近主机侧的电压,此时SDA上的电流会流向从机方向;当SDA上的电平被主机拉低时,SDA上靠近主机侧的电压低于靠近从机侧的电压,此时SDA上的电流会流向主机方向;还有一种情况时SDA上无电流。因此,可以通过检测SDA上的电流方向,当SDA上的电流流向从机时,确定此时SDA上的电平被从机拉低,当SDA上的电流未流向主机时,确定此时从机将SDA释放。可以理解的是,本发明实施例中通过电流方向检测器来检测是否有从机将SDA上的电平拉低,有效的避免了由于主机将SDA上的电平拉低时检测到I2C总线死锁的误检现象。而且对于主机在发生外部复位和内部复位时I2C总线的死锁状态均能进行有效检测,减小了I2C总线死锁的漏检现象。
在实际实施时,可以通过以下步骤来判断I2C总线是否处于死锁状态:获取SDA上第一电流,根据第一电流生成第一检测信号,第一检测信号用于表征第一电流的流向;
获取I2C总线的SCL上的第二时钟信号,根据第二时钟信号生成第二检测信号,第二检测信号用于表征第二时钟信号是否丢失;
当第一检测信号表征第一电流流向从机,且第二检测信号表征SCL上的第二时钟信号丢失时,确定I2C总线处于死锁状态。
示例性的,可以通过电流方向检测器来检测SDA上第一电流流向,并根据电流方向检测器的检测结果来生成第一检测信号;通过脉冲丢失检测器检测SCL上的第二时钟信号是否丢失,根据脉冲丢失检测器的检测结果生成第二检测信号;通过与门对第一检测信号和第二检测信号进行逻辑判断后输出第一控制信号,具体的,控制与门的第一输入端接收第一检测信号,控制与门的第二输入端接收第二检测信号,控制与门的输出端输出第一控制信号;当第一控制信号满足第一预设值时,确定第一控制信号表征I2C总线处于死锁状态。
示例性的,第一检测信号为高电平1时表征SDA上有电流流向从机,第二检测信号为高电平1时表征SCL上的第二时钟信号丢失,此时,第一预设值可以为高电平1,当第一控制信号为高电平1时,确定第一控制信号表征I2C总线处于死锁状态。
在实际实施时,脉冲丢失检测器可以为可重复触发的单稳态触发器,在正常情况下,当SCL上存在稳定的时钟脉冲信号时,单稳态触发器受到时钟脉冲上升沿或者下降沿的触发使输出信号保持暂稳态,当SCL上的时钟脉冲信号丢失时,可重复触发的单稳态触发器无法被触发使输出信号返回至稳态。
图2为本发明实施例中脉冲丢失检测器的激励-响应波形示意图,当脉冲丢失检测器为可重复触发的单稳态触发器时,触发器的输入信号波形和输出信号波形如图2所示,SCL为脉冲丢失检测器的输入激励信号(即SCL上的时钟脉冲信号)波形,RESPONSE为触发器的输出响应信号(即第二检测信号)波形,其中,输出响应信号中高电平为触发器稳态,低电平为触发器暂稳态,tW为延时时间,即在时钟脉冲丢失tW时间后输出响应信号翻转至稳态,tW是脉冲丢失检测器的预设值,可以根据系统的时钟脉冲周期进行设置。从图中可以看出,在SCL上存在正常的时钟脉冲信号时,触发器持续被触发使输出响应信号保持在低电平状态,在SCL上的时钟脉冲信号丢失时,输出响应信号的电平会在tW时间后翻转至高电平。当脉冲丢失检测器输出高电平信号时,表示SCL上的时钟信号丢失。
步骤102:当I2C总线处于死锁状态时,生成第一时钟信号,第一时钟信号用于表征从机将I2C总线的SDA上的电平置为高电平。
在实际实施时,可以根据上述第一检测信号和第二检测信号,生成第一控制信号;当I2C总线处于死锁状态时,第一控制信号控制时钟脉冲发生器生成第一时钟信号。
步骤103:在I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断I2C总线是否处于正常状态。
本发明实施例中,当I2C总线的SDA上的电平没有被从机拉低,或SCL上时钟脉冲信号未丢失时,确定I2C总线处于死锁状态。也就是说,当I2C总线的SDA上的电流未流向从机,或SCL上时钟脉冲信号未丢失时,确定I2C总线处于正常状态。
这里,SDA上的电流未流向从机包括:SDA上的电流流向主机或者SDA上的无电流。
在实际实施时,可以通过以下步骤来判断I2C总线是否处于正常状态:
获取SDA上第二电流,根据第二电流生成第三检测信号,第三检测信号用于表征第二电流的流向;
获取SCL上的第三时钟信号,根据第三时钟信号生成第四检测信号,第四检测信号用于表征第三时钟信号是否丢失;
当第三检测信号表征第二电流未流向从机,或第四检测信号表征SCL上的第三时钟信号未丢失时,确定I2C总线处于正常状态。
示例性的,可以通过电流方向检测器来检测SDA上第二电流流向,并根据电流方向检测器的检测结果来生成第三检测信号;通过脉冲丢失检测器检测SCL上的第三时钟信号是否丢失,根据脉冲丢失检测器的检测结果生成第四检测信号;通过与门对第三检测信号和第四检测信号进行逻辑判断后输出第二控制信号,具体的,控制与门的第一输入端接收第三检测信号,控制与门的第二输入端接收第四检测信号,控制与门的输出端输出第二控制信号;当第二控制信号满足第二预设值时,确定第二控制信号表征I2C总线处于正常状态;
示例性的,第三检测信号为低电平0时表征SDA上没有电流流向从机方向,第四检测信号为低电平0时表征SCL上的第二时钟信号未丢失,此时,第二预设值可以为低电平0,当第二控制信号为低电平0时,确定第二控制信号表征I2C总线处于正常状态。
另一种可选的实施方式是,可以通过或非门对第一检测信号和第二检测信号逻辑判断后输出第一控制信号,以及第三检测信号和第四检测信号进行逻辑判断后输出第二控制信号。
需要说明的是,SDA上的第一电流和第二电流为不同时刻流经SDA上的电流,SCL上的第二时钟信号和第三时钟信号为不同时刻SCL上的时钟信号。
步骤104:当I2C总线处于正常状态时,停止生成第一时钟信号。
在实际实施时,可以根据上述第三检测信号和第四检测信号,生成第二控制信号;当I2C总线处于正常状态时,第二控制信号控制时钟脉冲发生器停止生成第一时钟信号。
本发明实施例中,当I2C总线处于死锁状态时,可以通过控制时钟脉冲发生器来生成不定个数的时钟脉冲信号(即第一时钟信号),并将第一时钟信号注入到SCL时钟线上,当从机检测到SCL上存在时钟脉冲信号时,从机将SDA释放使SDA上的电平变为高电平;当主机检测到SDA上的电平为高电平时,确定当前总线处于正常状态,可以向总线发起访问,使总线从死锁状态中恢复;在确定总线处于正常状态,控制时钟脉冲发生器停止生成第一时钟信号。可以看出,本发明实施例通过检测SDA上电流流向来控制生成的第一时钟信号的脉冲个数,能够动态适配从机的状态,保证总线从死锁中恢复,无需预先设置脉冲个数,避免了现有技术中通过固定个数的时钟脉冲不能完全保证总线从死锁中恢复的情况,保证通讯正常。
本发明实施例中,根据预设的死锁条件判断策略判断I2C总线是否处于死锁状态;当I2C总线处于死锁状态时,生成第一时钟信号,第一时钟信号用于表征从机将I2C总线的串行数据线SDA上的电平置为高电平;在I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断I2C总线是否处于正常状态;当I2C总线处于正常状态时,停止生成第一时钟信号。与现有技术相比,当I2C总线处于死锁状态时,生成不定脉冲个数的第一时钟信号,只有当总线从死锁状态恢复至正常状态时才停止生成第一时钟信号。如此,能够完全保证I2C总线从死锁状态中恢复,避免通信受阻。
第二实施例
基于同一发明构思,本发明实施例还提供了一种解除I2C总线死锁装置,该装置应用于I2C总线连接的主机和从机的系统中,图3为本发明实施例中解除I2C总线死锁装置的结构示意图,如图3所示,该装置30包括:检测器301和时钟脉冲发生器302;
检测器301,用于根据预设的死锁条件判断策略判断I2C总线是否处于死锁状态;
时钟脉冲发生器302,用于当I2C总线处于死锁状态时,生成第一时钟信号,第一时钟信号用于表征从机将I2C总线的串行数据线SDA上的电平置为高电平;
检测器301,还用于在I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断I2C总线是否处于正常状态;
时钟脉冲发生器302,还用于当I2C总线处于正常状态时,停止生成第一时钟信号。
在实际实施时,检测器301可以包括:第一电流方向检测器、第一脉冲丢失检测器和第一信号检测器;
第一电流方向检测器,用于获取SDA上第一电流,根据第一电流生成第一检测信号,第一检测信号用于表征第一电流的流向,并将第一检测信号输出至第一信号检测器的第一输入端;
第一脉冲丢失检测器,用于获取I2C总线的串行时钟线SCL上的第二时钟信号,根据第二时钟信号生成第二检测信号,第二检测信号用于表征第二时钟信号是否丢失,并将第二检测信号输出至第一信号检测器的第二输入端;
第一信号检测器,用于当第一检测信号表征第一电流流向从机,且第二检测信号表征SCL上的第二时钟信号丢失时,确定I2C总线处于死锁状态。
在实际实施时,第一信号检测器可以为与门;
与门的第一输入端接收第一检测信号,与门的第二输入端接收第二检测信号,与门的输出端输出第一控制信号;当第一控制信号满足第一预设值时,确定第一控制信号表征I2C总线处于死锁状态;
时钟脉冲发生器,具体用于当I2C总线处于死锁状态时,受第一控制信号控制生成第一时钟信号。
在实际实施时,检测器可以包括:第二电流方向检测器、第二脉冲丢失检测器和第二信号检测器;
第二电流方向检测器,用于获取SDA上第二电流,根据第二电流生成第三检测信号,第三检测信号用于表征第二电流的流向,并将第三检测信号输出至第二信号检测器的第一输入端;
第二脉冲丢失检测器,用于获取SCL上的第三时钟信号,根据第三时钟信号生成第四检测信号,第四检测信号用于表征第三时钟信号是否丢失,并将第四检测信号输出至第二信号检测器的第二输入端;
第二信号检测器,用于当第三检测信号表征第二电流未流向从机,或第四检测信号表征SCL上的第三时钟信号未丢失时,确定I2C总线处于正常状态。
在实际实施时,第二信号检测器可以为与门;
与门的第一输入端接收第三检测信号,与门的第二输入端接收第四检测信号,与门的输出端输出第二控制信号;当第二控制信号满足第二预设值时,确定第二控制信号表征I2C总线处于正常状态;
时钟脉冲发生器,具体用于当I2C总线处于正常状态时,受第二控制信号控制停止生成第一时钟信号。
一种实施方式中,第一电流方向检测器和第二电流方向检测器可以为同一个电流方向检测器,第一检测信号和第三检测信号是同一个电流方向检测器在不同时刻检测SDA上的电流流向而生成的检测信号。第一脉冲丢失检测器和第二脉冲丢失检测器可以为同一个脉冲丢失检测器,同理,第二检测信号和第四检测信号是同一个脉冲丢失检测器在不同时刻检测SCL上的时钟信号是否丢失而生成的检测信号。第一信号检测器和第二信号检测器可以为同一个信号检测器,第一控制信号和第二控制信号是同一个信号检测器在不同时刻检测输入信号而生成的控制信号。
本发明实施例中提供的解除I2C总线死锁装置可以应用于I2C总线连接的主机和从机的系统中,下面为了更清楚的表达本发明的目的,对包含本发明实施例的解除I2C总线死锁装置的I2C总线系统进行举例说明。
图4为本发明实施例中第一种解除I2C总线死锁系统的结构示意图,该系统中包含了本发明实施例中的解除I2C总线死锁装置,如图4所示,该系统40包括:I2C总线401、解除I2C总线死锁装置402、主机403和从机404;其中,I2C总线401连接主机403和从机404;解除I2C总线死锁装置402连接至I2C总线401上,用于判断I2C总线401的状态。
解除I2C总线死锁装置在判断I2C总线的状态时,当I2C总线处于死锁状态时,生成第一时钟信号,第一时钟信号用于表征从机将I2C总线的SDA上的电平置为高电平;在I2C总线处于死锁状态后,当确定I2C总线恢复正常状态时,停止生成第一时钟信号。
第三实施例
为了能更加体现本发明的目的,在本发明第二实施例的基础上,进行进一步的举例说明。
图5为本发明实施例中第二种解除I2C总线死锁系统的结构示意图,如图5所示,该系统中I2C总线连接单主机和单从机,该系统包括:I2C总线1、主机4、从机5、解除I2C总线死锁装置10;其中,I2C总线1包括:SDA数据线2和SCL时钟线3;解除I2C总线死锁装置10包括:电流方向检测器6、脉冲丢失检测器7、与门8和时钟脉冲发生器9。
这里,主机4和从机5同时挂接在I2C总线1上,即主机4和从机5的数据线和时钟线通过线与的方式分别挂在I2C总线上;电流方向检测器6串接在SDA数据线2上,以获取SDA数据线上的电流信号来检测SDA数据线上的电流流向,并将生成的第一检测信号或第三检测信号输出至与门8的第一输入端;脉冲丢失检测器7与SCL时钟线3相连,获取SCL上的时钟信号后以检测SCL上的时钟脉冲信号是否丢失,并将生成的第二检测信号或第四检测信号输出至与门8的第二输入端;与门8的输出端连接时钟脉冲发生器9的输入端,时钟脉冲发生器9的输出端接入SCL时钟线3上。
与门8对第一检测信号和第二检测信号进行逻辑运算后输出第一控制信号,或者对第三检测信号和第四检测信号进行逻辑运算后输出第二控制信号,第一控制信号控制时钟脉冲发生器9生成第一时钟信号,第二控制信号控制时钟脉冲发生器9停止生成第一时钟信号。
示例性的,第一检测信号为高电平信号时表征SDA上有电流流向从机,第二检测信号为高电平信号时表征SCL上的第二时钟信号丢失,因此,与门可以通过判断第一检测信号和第二检测信号是否同时为高电平信号,来判断I2C总线是否处于死锁状态;第三检测信号为低电平信号是表征SDA上有电流未流向从机,第四检测信号为低电平信号是表征SCL上的第三时钟信号未丢失,因此,与门可以通过判断第三检测信号和第四检测信号中至少一个为低电平信号,来判断I2C总线是否处于正常状态。当第一检测信号和第二检测信号同时为高电平时,与门输出高电平信号,以控制时钟脉冲发生器生成第一时钟脉冲信号,第一时钟脉冲信号注入至SCL后,直至从机释放SDA。当从机释放SDA后,电流方向检测器会检测到SDA上的电流未流向从机,则电流方向检测器输出低电平信号,进一步使与门输出低电平信号,使时钟脉冲发生器停止生成第一时钟信号。另外,当主机检测到SDA上的电平为高电平时,重新发起对I2C总线的访问。
第四实施例
为了能更加体现本发明的目的,在本发明第二实施例的基础上,进行进一步的举例说明。
图6为本发明实施例中第三种解除I2C总线死锁系统的结构示意图,如图6所示,该系统中I2C总线连接单主机和多从机。该系统包括:I2C总线1、主机4、解除I2C总线死锁装置10、从机子系统11;其中,I2C总线1包括:SDA数据线2和SCL时钟线3;解除I2C总线死锁装置10包括:电流方向检测器6、脉冲丢失检测器7、与门8和时钟脉冲发生器9;从机子系统11中包括N个从机,N取正整数,具体包括:从机1(51)、从机2(52)至从机N(5N)。
这里,主机4和从机子系统11中的每一个从机都挂接在I2C总线1上,即分别与SDA数据线2和SCL时钟线3相连。电流方向检测器6串接在SDA数据线2上,以获取SDA数据线上的电流信号来检测SDA数据线上的电流是否流向从机子系统11中任意一个从机,并将生成的第一检测信号或第三检测信号输出至与门8的第一输入端;脉冲丢失检测器7与SCL时钟线3相连,获取SCL时钟线3上的第二时钟信号后以检测第二时钟脉冲信号是否丢失,并将生成的第二检测信号或第四检测信号输出至与门8的第二输入端;与门8的输出端与时钟脉冲发生器9的输入端相连,时钟脉冲发生器9的输出端接入SCL时钟线上。
与门8对第一检测信号和第二检测信号进行逻辑运算后输出第一控制信号,或者对第三检测信号和第四检测信号进行逻辑运算后输出第二控制信号,第一控制信号控制时钟脉冲发生器9生成第一时钟信号,第一时钟信号指示从机子系统11中的从机释放SDA数据线2,使I2C总线1从死锁中恢复;在I2C总线1从死锁状态中恢复后,第二控制信号控制时钟脉冲发生器9停止生成第一时钟信号。
需要说明的是,在第四实施例中主机与每一个从机的通信方式与本发明第三实施例中单主机和单从机系统的通信方式相同。
第五实施例
为了能更加体现本发明的目的,在本发明第三实施例的基础上,进行进一步的举例说明。
图7为本发明实施例中第四种解除I2C总线死锁系统的结构示意图,如图7所示,该系统包括:I2C总线1、主机4、从机5、解除I2C总线死锁装置10;其中,I2C总线1包括:SDA数据线2和SCL时钟线3;解除I2C总线死锁装置10包括:电流方向检测器12、可重复触发的单稳态触发器13、与门8和时钟脉冲发生器9。示例性的,电流方向检测器12包括:电阻121和电压比较器122;可重复触发的单稳态触发器13可以作为脉冲丢失检测器来检测第二时钟信号是否丢失。
这里,从机将SDA数据线上的电平拉低后,SDA数据线上靠近从机侧电压低于靠近主机侧的电压,因此SDA数据线上电流从主机侧流向从机侧。
在实际实施时,电流方向检测器12中的电阻121串接在SDA数据线2上,电压比较器122的正向输入端连接电阻121靠近主机侧一端,负向输入端连接电阻121靠近从机侧一端,当靠近主机侧的电压高于靠近从机侧的电压时(即电流流向从机),电压比较器122输出高电平信号,否侧输出低电平信号。
如图2所示的脉冲丢失检测器的激励-响应波形示意图,当SCL上的时钟信号丢失时,可重复触发的单稳态触发器13输出高电平信号,当SCL上的时钟信号未丢失时,输出低电平信号。
与门8根据电流方向检测器12中电压比较器122的输出的信号和可重复触发的单稳态触发器13的输出信号输出第一控制信号或第二控制信号,第一控制信号控制时钟脉冲发生器9生成第一脉冲信号,第二控制信号控制时钟脉冲发生器9停止生成第一脉冲信号。
本发明实施例中提供的解除I2C总线死锁方法和装置,在对I2C总线系统中总线的死锁检测和解除时不受系统中其他设备功能的限制,例如:不需要为主机或从机增加I2C总线死锁检测和解除功能,应用范围广泛。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种解除内部集成电路I2C总线死锁的方法,其特征在于,所述I2C总线连接主机和从机;所述方法包括:
根据预设的死锁条件判断策略判断所述I2C总线是否处于死锁状态;
当所述I2C总线处于死锁状态时,生成第一时钟信号,所述第一时钟信号用于表征所述从机将所述I2C总线的串行数据线SDA上的电平置为高电平;
在所述I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断所述I2C总线是否处于正常状态;
当所述I2C总线处于正常状态时,停止生成第一时钟信号。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的死锁条件判断策略判断所述I2C总线是否处于死锁状态,包括:
获取所述SDA上第一电流,根据所述第一电流生成第一检测信号,所述第一检测信号用于表征所述第一电流的流向;
获取所述I2C总线的串行时钟线SCL上的第二时钟信号,根据所述第二时钟信号生成第二检测信号,所述第二检测信号用于表征所述第二时钟信号是否丢失;
当所述第一检测信号表征所述第一电流流向从机,且所述第二检测信号表征所述SCL上的第二时钟信号丢失时,确定所述I2C总线处于死锁状态。
3.根据权利要求2所述的方法,其特征在于,所述当所述I2C总线处于死锁状态时,生成第一时钟信号,包括:
当所述I2C总线处于死锁状态时,第一控制信号控制时钟脉冲发生器生成所述第一时钟信号,其中,所述第一控制信号由所述第一检测信号和所述第二检测信号生成。
4.根据权利要求1所述的方法,其特征在于,所述根据预设的解锁条件判断策略判断所述I2C总线是否处于正常状态,包括:
获取所述SDA上第二电流,根据所述第二电流生成第三检测信号,所述第三检测信号用于表征所述第二电流的流向;
获取所述SCL上的第三时钟信号,根据所述第三时钟信号生成第四检测信号,所述第四检测信号用于表征所述第三时钟信号是否丢失;
当所述第三检测信号表征所述第二电流未流向从机,或所述第四检测信号表征所述SCL上的第三时钟信号未丢失时,确定所述I2C总线处于正常状态。
5.根据权利要求4所述的方法,其特征在于,所述当所述I2C总线处于正常状态时,停止生成第一时钟信号,包括:
当所述I2C总线处于正常状态时,第二控制信号控制所述时钟脉冲发生器停止生成所述第一时钟信号,其中,所述第二控制信号由所述第三检测信号和所述第四检测信号生成。
6.一种解除内部集成电路I2C总线死锁装置,其特征在于,所述装置应用于I2C总线连接的主机和从机的系统中,所述装置包括:检测器和时钟脉冲发生器;
所述检测器,用于根据预设的死锁条件判断策略判断所述I2C总线是否处于死锁状态;
所述时钟脉冲发生器,用于当所述I2C总线处于死锁状态时,生成第一时钟信号,所述第一时钟信号用于表征所述从机将所述I2C总线的串行数据线SDA上的电平置为高电平;
所述检测器,还用于在所述I2C总线处于死锁状态后,根据预设的解锁条件判断策略判断所述I2C总线是否处于正常状态;
所述时钟脉冲发生器,还用于当所述I2C总线处于正常状态时,停止生成第一时钟信号。
7.根据权利要求6所述的装置,其特征在于,所述检测器包括:第一电流方向检测器、第一脉冲丢失检测器和第一信号检测器;
所述第一电流方向检测器,用于获取所述SDA上第一电流,根据所述第一电流生成第一检测信号,所述第一检测信号用于表征所述第一电流的流向,并将所述第一检测信号输出至所述第一信号检测器的第一输入端;
所述第一脉冲丢失检测器,用于获取所述I2C总线的串行时钟线SCL上的第二时钟信号,根据所述第二时钟信号生成第二检测信号,所述第二检测信号用于表征所述第二时钟信号是否丢失,并将所述第二检测信号输出至所述第一信号检测器的第二输入端;
所述第一信号检测器,用于当所述第一检测信号表征所述第一电流流向从机,且所述第二检测信号表征所述SCL上的第二时钟信号丢失时,确定所述I2C总线处于死锁状态。
8.根据权利要求7所述的装置,其特征在于,所述第一信号检测器为与门;
所述与门的第一输入端接收所述第一检测信号,所述与门的第二输入端接收所述第二检测信号,所述与门的输出端输出第一控制信号;当所述第一控制信号满足第一预设值时,确定所述第一控制信号表征所述I2C总线处于死锁状态;
所述时钟脉冲发生器,具体用于当所述I2C总线处于死锁状态时,受所述第一控制信号控制生成所述第一时钟信号。
9.根据权利要求6所述的装置,其特征在于,所述检测器包括:第二电流方向检测器、第二脉冲丢失检测器和第二信号检测器;
所述第二电流方向检测器,用于获取所述SDA上第二电流,根据所述第二电流生成第三检测信号,所述第三检测信号用于表征所述第二电流的流向,并将所述第三检测信号输出至所述第二信号检测器的第一输入端;
所述第二脉冲丢失检测器,用于获取所述SCL上的第三时钟信号,根据所述第三时钟信号生成第四检测信号,所述第四检测信号用于表征所述第三时钟信号是否丢失,并将所述第四检测信号输出至所述第二信号检测器的第二输入端;
所述第二信号检测器,用于当所述第三检测信号表征所述第二电流未流向从机,或所述第四检测信号表征所述SCL上的第三时钟信号未丢失时,确定所述I2C总线处于正常状态。
10.根据权利要求9所述的装置,其特征在于,所述第二信号检测器为与门;
所述与门的第一输入端接收所述第三检测信号,所述与门的第二输入端接收所述第四检测信号,所述与门的输出端输出第二控制信号;当所述第二控制信号满足第二预设值时,确定所述第二控制信号表征所述I2C总线处于正常状态;
所述时钟脉冲发生器,具体用于当所述I2C总线处于正常状态时,受所述第二控制信号控制停止生成所述第一时钟信号。
CN201710680368.0A 2017-08-10 2017-08-10 一种解除i2c总线死锁的方法和装置 Active CN109388605B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710680368.0A CN109388605B (zh) 2017-08-10 2017-08-10 一种解除i2c总线死锁的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710680368.0A CN109388605B (zh) 2017-08-10 2017-08-10 一种解除i2c总线死锁的方法和装置

Publications (2)

Publication Number Publication Date
CN109388605A true CN109388605A (zh) 2019-02-26
CN109388605B CN109388605B (zh) 2021-04-27

Family

ID=65414809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710680368.0A Active CN109388605B (zh) 2017-08-10 2017-08-10 一种解除i2c总线死锁的方法和装置

Country Status (1)

Country Link
CN (1) CN109388605B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976489A (zh) * 2019-03-28 2019-07-05 烽火通信科技股份有限公司 一种iic总线异常情况下自动复位实现方法及系统
US20190272252A1 (en) * 2018-01-09 2019-09-05 Shenzhen GOODIX Technology Co., Ltd. Method of processing deadlock of i2c bus, electronic device and communication system
CN110609762A (zh) * 2019-09-24 2019-12-24 深圳市航顺芯片技术研发有限公司 一种防止先进高性能总线(ahb)死锁的方法及装置
CN111007763A (zh) * 2019-12-03 2020-04-14 宁波奥克斯电气股份有限公司 一种iic总线解锁的控制方法
CN111578489A (zh) * 2020-05-12 2020-08-25 珠海拓芯科技有限公司 一种eeprom芯片数据读取方法、控制系统、空调器及存储介质
CN112395143A (zh) * 2019-08-13 2021-02-23 智原科技股份有限公司 运用于i3c总线的开始与结束检测装置与方法
CN115834970A (zh) * 2022-11-03 2023-03-21 深圳创维-Rgb电子有限公司 光感模块控制方法、装置、显示设备及存储介质
CN116048849A (zh) * 2022-07-20 2023-05-02 荣耀终端有限公司 一种i2c总线的通信控制方法、装置、设备及存储介质
CN116431549A (zh) * 2023-03-02 2023-07-14 国网江苏省电力有限公司镇江供电分公司 一种i2c总线死锁监测、恢复的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081783A (en) * 1997-11-14 2000-06-27 Cirrus Logic, Inc. Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same
CN102521187A (zh) * 2011-11-29 2012-06-27 广东东研网络科技有限公司 一种i2c总线通信死锁解决方法
CN103645975A (zh) * 2013-11-28 2014-03-19 华为技术有限公司 一种异常恢复的方法及串行总线传输装置
CN104795802A (zh) * 2014-01-16 2015-07-22 西门子公司 具有通信总线故障诊断功能的保护装置、系统及方法
CN106649180A (zh) * 2016-09-09 2017-05-10 锐捷网络股份有限公司 一种解除i2c总线死锁的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081783A (en) * 1997-11-14 2000-06-27 Cirrus Logic, Inc. Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same
CN102521187A (zh) * 2011-11-29 2012-06-27 广东东研网络科技有限公司 一种i2c总线通信死锁解决方法
CN103645975A (zh) * 2013-11-28 2014-03-19 华为技术有限公司 一种异常恢复的方法及串行总线传输装置
CN104795802A (zh) * 2014-01-16 2015-07-22 西门子公司 具有通信总线故障诊断功能的保护装置、系统及方法
CN106649180A (zh) * 2016-09-09 2017-05-10 锐捷网络股份有限公司 一种解除i2c总线死锁的方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190272252A1 (en) * 2018-01-09 2019-09-05 Shenzhen GOODIX Technology Co., Ltd. Method of processing deadlock of i2c bus, electronic device and communication system
CN109976489A (zh) * 2019-03-28 2019-07-05 烽火通信科技股份有限公司 一种iic总线异常情况下自动复位实现方法及系统
CN112395143A (zh) * 2019-08-13 2021-02-23 智原科技股份有限公司 运用于i3c总线的开始与结束检测装置与方法
CN112395143B (zh) * 2019-08-13 2022-08-23 智原科技股份有限公司 运用于i3c总线的开始与结束检测装置与方法
CN110609762A (zh) * 2019-09-24 2019-12-24 深圳市航顺芯片技术研发有限公司 一种防止先进高性能总线(ahb)死锁的方法及装置
CN111007763A (zh) * 2019-12-03 2020-04-14 宁波奥克斯电气股份有限公司 一种iic总线解锁的控制方法
CN111007763B (zh) * 2019-12-03 2022-02-01 宁波奥克斯电气股份有限公司 一种iic总线解锁的控制方法
CN111578489A (zh) * 2020-05-12 2020-08-25 珠海拓芯科技有限公司 一种eeprom芯片数据读取方法、控制系统、空调器及存储介质
CN116048849A (zh) * 2022-07-20 2023-05-02 荣耀终端有限公司 一种i2c总线的通信控制方法、装置、设备及存储介质
CN116048849B (zh) * 2022-07-20 2023-11-07 荣耀终端有限公司 一种i2c总线的通信控制方法、装置、设备及存储介质
CN115834970A (zh) * 2022-11-03 2023-03-21 深圳创维-Rgb电子有限公司 光感模块控制方法、装置、显示设备及存储介质
CN116431549A (zh) * 2023-03-02 2023-07-14 国网江苏省电力有限公司镇江供电分公司 一种i2c总线死锁监测、恢复的方法

Also Published As

Publication number Publication date
CN109388605B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN109388605A (zh) 一种解除i2c总线死锁的方法和装置
US5925135A (en) Clock rate compensation for a low frequency slave device
CN103645794B (zh) 一种通过边沿检测电路实现睡眠模式唤醒的芯片及方法
JPS6128154A (ja) 割込みインタフエ−ス回路
CN103645975B (zh) 一种异常恢复的方法及串行总线传输装置
CN103795459B (zh) 基于光模块中故障的处理方法和装置及光模块
CN107123969A (zh) 输出保护电路和方法
CN103631360A (zh) 一种支持睡眠模式的芯片及方法
EP2005308A2 (en) Method and system for i2c clock generation
JP6107933B2 (ja) 接続制御装置、情報処理装置、及び接続制御方法
CN104272217A (zh) 主-从接口
CN105573948B (zh) 由主从式电路进行的芯片同步
CN110908841A (zh) 一种i2c通信异常恢复方法及装置
CN105071484B (zh) 一种具有数据交换功能的终端的充电方法和装置
CN106776054A (zh) 一种死锁检测方法、装置和电路
CN105426171B (zh) 多个二取二系统的同步和切换方法、系统
CN108369565B (zh) 通信装置、通信方法、存储介质、以及通信系统
CN106249687A (zh) 一种背板通讯的方法
US6219744B1 (en) Interrupt masker for an interrupt handler with double-edge interrupt request signals detection
CN112214343A (zh) 一种基于pac9511芯片的iic挂死的链路恢复电路及方法
CN103123463B (zh) 一种控制系统状态的方法及装置
CN105633908B (zh) 电子装置与电源保护方法
CN115234274A (zh) 一种工作面液压支架的急停装置及方法
CN110235394A (zh) 一种高频载波同步的实现方法及相关装置
CN108563593A (zh) 一种主机确定方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant