WO2019136595A1 - 处理i2c总线死锁的方法、电子设备和通信系统 - Google Patents
处理i2c总线死锁的方法、电子设备和通信系统 Download PDFInfo
- Publication number
- WO2019136595A1 WO2019136595A1 PCT/CN2018/071926 CN2018071926W WO2019136595A1 WO 2019136595 A1 WO2019136595 A1 WO 2019136595A1 CN 2018071926 W CN2018071926 W CN 2018071926W WO 2019136595 A1 WO2019136595 A1 WO 2019136595A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bus
- sda
- master device
- scl
- electronic device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004891 communication Methods 0.000 title claims abstract description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
一种处理I2C总线死锁的方法、电子设备和通信系统,该I2C总线用于主设备与从设备之间的通信,该方法包括:在该主设备确定该I2C总线处于死锁状态的情况下,该主设备将该I2C总线中的串行数据线SDA置为浮空态(S110);在该主设备将该SDA置为浮空态之后,该主设备控制该I2C总线中的串行时钟线SCL连续输出至少(n+1)个时钟,该至少(n+1)个时钟用于该从设备控制该SDA继续进行数据传输,其中,n为所述I2C总线的数据位宽(S120)。所述方法、电子设备和通信系统,在确定I2C总线处于死锁状态的情况下,通过将SDA浮空,并控制SCL连续输出至少(n+1)个时钟来控制SDA,有利于在I2C总线处于死锁状态的情况下,恢复数据的正常传输。
Description
本申请涉及通信领域,尤其涉及一种用于处理I2C总线死锁的方法、电子设备和通信系统。
由于I2C(Inter-Integrated Circuit)总线协议的缺陷,当I2C主设备异常复位时(如看门狗复位,板上电源异常导致芯片复位,手动复位等等)有可能使得I2C总线进入一种死锁状态,从而导致设备无法完成正常传输。
发明内容
有鉴于此,本申请实施例提出了一种处理I2C总线死锁的方法和设备,有利于在I2C总线处于死锁状态的情况下,恢复数据的正常传输。
第一方面,提供了一种处理I2C总线死锁的方法,该I2C总线用于主设备与从设备之间的通信,该方法包括:在该主设备确定该I2C总线处于死锁状态的情况下,该主设备将该I2C总线中的串行数据线SDA置为浮空态;在该主设备将该SDA置为浮空态之后,该主设备控制该I2C总线中的串行时钟线SCL连续输出至少(n+1)个时钟,该至少(n+1)个时钟用于该从设备控制该SDA继续进行数据传输,其中,n为所述I2C总线的数据位宽。
在主设备确定I2C总线处于死锁状态的情况下,通过将SDA浮空,并控制SCL连续输出至少(n+1)时钟来控制SDA,使得I2C总线能够解除死锁,从而恢复设备的正常传输。在一种可能的设计中,n=8*m,m为正整数。可选地,n=8,也就是说主设备只要控制SCL输出9个时钟就可以完成I2C总线的解锁。
在一种可能的设计中,该方法还包括:在该主设备复位之后,该主设备检测该SCL和该SDA的状态;若该SCL处于高电平且该SDA处于低电平,该主设备确定该I2C总线处于死锁状态。
在一种可能的设计中,在该主设备控制该SCL连续输出该至少(n+1)个时钟之后,该方法还包括:该主设备控制该SCL和该SDA输出停止信号。
第二方面,提供一种电子设备,用于执行第一方面或第一方面任意可能 的实现方式中的方法。具体地,该电子设备可以包括用于执行第一方面或第一方面任意可能的实现方式中的方法的单元。
第三方面,提供一种电子设备,包括存储器和处理器,该存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,当程序被运行时,该处理器执行上述第一方面或第一方面任意可能的实现方式中的方法。
第四方面,提供了一种通信系统,包括第二方面或第二方面任意可能的实现方式中的电子设备和从设备,该电子设备为主设备,该主设备通过I2C总线与该从设备通信。
第五方面,提供一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第六方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可选的实现方式中的方法。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
图1示出了一种典型I2C总线接口电路结构。
图2示出了I2C总线的一次完整的数据传输时序。
图3示出了本申请实施例的处理I2C总线死锁的方法的示意性框图。
图4示出了本申请实施例的处理I2C总线死锁的方法的示意性流程图。
图5示出了本申请实施例的电子设备的示意性框图。
图6示出了本申请实施例的电子设备的另一示意性框图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
I2C总线是由串行数据线(Serial Data Line,SDA)和串行时钟线(Serial Clock Line,SCL)构成的串行总线,可发送和接收数据。I2C总线是一个多设备的总线,也就是说可以连接多于一个能控制总线的器件到总线。如图1 所示,微控制器A、微控制器B、静态随机存储器(Static Random Access Memory,SRAM)或电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、模数变换器(Analog to Digital Converter,ADC)或数模变换器(Digital to Analog Converter,DAC)、时钟日历和其他I2C外围设备都可以连接到I2C总线上,在信息的传输过程中,I2C总线上并接的每一器件既可以是主设备(或从设备),又可以是发送设备(或接收设备),这取决于它所要完成的功能。每一个连接到I2C总线上的器件都通过一个电流源或上拉电阻将SDA和SCL连接到正的电源电压,当总线空闲时,这两条信号线都是高电平。由于各器件的SDA及SCL都是线“与”关系,连到总线上的任一器件输出的低电平,都将使总线的信号变低。
为了便于理解,下面先介绍I2C协议中的一些定义以及I2C总线的工作时序。
在I2C总线通信下,总线时序通常包括空闲信号、起始信号、数据信号、响应信号以及停止信号。I2C总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。SCL为高电平期间,SDA由高电平向低电平的变化表示起始信号;SCL为高电平期间,SDA由低电平向高电平的变化表示终止信号。发送设备每发送一个字节,由接收设备反馈一个响应信号。响应信号为低电平时,规定为有效应答位(ACK),表示接收设备已经成功地接收了该字节;响应信号为高电平时,规定为非应答位(NACK),一般表示接收设备接收该字节没有成功。I2C总线进行数据传送时,时钟信号为高电平期间,SDA上的数据必须保持稳定,只有在SCL上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。
图2示出了I2C总线完整的一次数据传输时序。首先,主设备控制SCL和SDA信号产生一个开始信号(S),然后发送8位从地址信号,地址信号的最后一位表明此次操作是读(高电平)还是写操作(低电平)。I2C总线上匹配该地址的从设备在第9个时钟周期应答。如果是写操作,主设备控制SCL和SDA信号,输出8位数据信号,然后从设备应答,表示已经正常完成数据写操作。如果是读操作,主设备控制SCL产生时钟脉冲,从设备控制SDA输出正确的8位数据,然后主设备应答,表示已经正常完成数据读操作。最后 主设备控制SCL和SDA产生一个结束信号(P),表示此次操作结束;或者产生一个新的开始信号(S),开始下一帧的数据传输。
在正常情况下,I2C总线协议能够保证总线正常的读写操作,但是当I2C主设备异常复位时(如看门狗复位,板上电源异常导致芯片复位,手动复位等等)有可能导致I2C总线死锁产生。产生死锁的原因主要包括以下两个方面:
1)在I2C主设备进行读写操作时,从设备处于输出应答信号阶段(SDA信号为低电平),若此时主设备出现异常复位,SCL就会一直处于高电平,从设备在没有复位情况下,会持续应答(SDA一直为低电平),直到SCL变为低电平结束应答。而对于I2C主设备来说,复位后会检测SCL和SDA信号,如果发现SDA信号为低电平,则会认为I2C总线被占用,会一直等待SCL和SDA信号变为高电平;I2C从设备由于一直未收到来自主设备对SCL信号的拉低操作,会一直保持SDA为低,两者相互等待,总线进入一种死锁状态。
2)当I2C主设备进行读操作,I2C从设备应答后输出数据,并且输出的数据位正好为0,若在这个时刻I2C主设备异常复位,也会出现和1)相同的情况,从而导致I2C总线进入死锁状态。
在综合考虑了上述两种死锁情况下,本申请实施例提供了一种处理I2C总线死锁的方法,使得I2C总线能够解除死锁,从而恢复设备的正常传输。
图3示出了本申请实施例的一种处理I2C总线死锁的方法100的示意性框图。其中,所述I2C总线用于主设备与从设备之间的通信,如图3所示,该方法100包括以下部分或全部内容:
S110,在该主设备确定该I2C总线处于死锁状态的情况下,该主设备将该I2C总线中的串行数据线SDA置为浮空态;
S120,在该主设备将该SDA置为浮空态之后,该主设备控制该I2C总线中的串行时钟线SCL连续输出至少(n+1)个时钟,该至少(n+1)个时钟用于该从设备控制该SDA继续进行数据传输,其中,n为该I2C总线的数据位宽。
具体地,由于主设备在工作状况下发生复位,主设备并不清楚当前操作是主设备向从设备读数据还是主设备向从设备写数据,假设当前操作为主设备向从设备读数据,也就是主设备处于接收数据的状态,主设备是不能控制SDA的,因此SDA是必须处于浮空状态。在主设备确定I2C总线处于死锁 状态下,主设备可以先将SDA置为浮空,进一步地,主设备可以控制SLC输出至少(n+1)个时钟,从设备可以在主设备输出的至少(n+1)个时钟的控制下继续进行数据传输。
下面将结合上述I2C总线产生死锁的原因来详细阐述一下本申请实施例的技术方案。第一种产生死锁的具体原因主要在于从设备拉低了SDA,由于主设备异常复位,从设备处于输出应答信号阶段。在该类死锁情况下,主设备可以只需要一个下拉SCL信号即可使从设备释放总线。当从设备收到时钟下降沿完成响应阶段后可以释放总线,由上拉电阻将SDA拉成高电平,从设备在释放总线后可由主设备控制总线继续传输。
第二种产生死锁的具体原因在于从设备在数据输出阶段,从设备输出数据为0,由于主设备异常复位,从设备无法完成当前位传输,一直拉低SDA。在该类死锁情况下,主设备需要多个时钟来完成本次读取操作,以便在数据传输完成后释放总线。可选地,在本申请实施例中,主设备可以连续发送多个时钟来主动引导从设备释放总线,由于一个读操作可能需要连续输出n(n由I2C总线数据位宽决定)个数据位以及1个ACK位,或者主设备也可以不发送ACK直接发送停止信号结束流程。因此SCL总线至少需要发送n个时钟完成本次数据传输,进一步地,主设备可以控制I2C总线输出1个停止信号来结束本次数据传输流程。
综合上述2种死锁,可能的一种应用场景为:主设备读取从设备,发送完读命令,正等待从设备的ACK信号时,主设备发生了异常复位,I2C总线进入死锁(第一种死锁)。这种情况下,主设备需要先发送一个时钟解锁ACK,此时从设备会继续发送数据,如果发送的数据为0,此时又会进入死锁(第二种死锁)。
因此,本申请实施例的处理I2C总线死锁的方法,在主设备确定I2C总线处于死锁状态的情况下,通过将SDA浮空,并控制SCL连续输出至少(n+1)个时钟来控制SDA,有利于解除I2C总线的死锁,从而恢复设备的正常传输。由上述分析可知,主设备在确定I2C总线处于死锁状态下,主设备在第一种死锁产生的情况下可以控制SCL输出一个时钟就可以解锁,而主设备在第二种死锁产生的情况下需要控制SCL输出多个时钟,由于在主设备产生复位时,主设备根本不知道产生死锁的原因,也并不清楚复位之前数据传输的状态(即是从设备处于输出响应阶段,还是从设备处于发送数据状态,发送 的是第几位),因此,为了保证一定能完成本次数据操作,本申请实施例提出主设备可以控制SCL连续输出至少(n+1)个时钟,n为I2C总线的数据位宽。而对于从设备而言,当本次数据操作完成之后,可能会存在多余的时钟,但SDA总线上存在着上拉电阻,主设备和从设备端口都处于悬空时,SDA会被拉成高电平,因此在解锁完成之后,多余的时钟会被从设备解析成ACK的时钟信号。此时,由于SDA为高电平,主设备可以认为NACK将不会做出数据响应。
可选地,n通常大于或等于8,例如,n为8的倍数。
可选地,在本申请实施例中,在该主设备控制该SCL连续输出该至少(n+1)个时钟之后,该方法还包括:该主设备控制该SCL和该SDA输出停止信号。
可选地,在本申请实施例中,该方法还包括:在该主设备复位之后,该主设备检测该SCL和SDA的状态;若该SCL处于高电平且该SDA处于低电平,该主设备确定该I2C总线处于死锁状态。
下面将结合图4详细描述本申请实施例的处理I2C总线死锁的方法200的硬件控制流程。如图4所示,该方法200主要由3个流程组成,首先主设备在复位后检测总线状态;然后主设备通过主动发送时钟来引导设备间恢复数据操作流程;最后主设备发送结束信号来完成数据操作流程。具体实施流程包括如下:
S201,I2C主设备复位;
S202,主设备检测总线状态,也就是检测SDA信号线和SCL信号线;
S203,主设备判断I2C总线是否处于死锁状态,若判断出来I2C总线不处于死锁状态,直接跳转为S206;
S204,若S203判断出来I2C总线处于死锁状态,则将SDA信号线置为浮空,并控制SCL连续输出(n+1)个时钟;
S205,控制SDA信号线和SCL信号线输出结束信号;
S206,主设备标识为空闲态。
图5示出了本申请实施例的一种电子设备300的示意性框图。如图5所示,该电子设备为主设备,该设备通过内置集成电路I2C总线与从设备进行通信,该电子设备300包括:
确定单元310,用于确定该主设备与从设备之间的该I2C总线处于死锁 状态;
处理单元320,用于在该确定单元确定该I2C总线处于死锁状态的情况下,将该I2C总线中的串行数据线SDA置为浮空态;
控制单元330,用于在该处理单元将该SDA置为浮空态之后,控制该I2C总线中的串行时钟线SCL连续输出至少(n+1)个时钟,该至少(n+1)个时钟用于该从设备控制该SDA继续进行数据传输,其中,n为该I2C总线的数据位宽。
因此,本申请实施例的电子设备,在确定I2C总线处于死锁状态的情况下,通过将SDA浮空,并控制SCL连续输出至少(n+1)个时钟来控制SDA,有利于解除I2C总线的死锁,从而恢复设备的正常传输。
可选地,在本申请实施例中,n=8*m,m为正整数。可选地,在本申请实施例中,该电子设备还包括:检测单元,用于在该主设备复位之后,检测该SCL和该SDA的状态;该确定单元具体用于:若该检测单元检测的该SCL处于高电平且该SDA处于低电平,确定该I2C总线处于死锁状态。
应理解,本申请实施例的电子设备300可对应于本申请方法实施例中的主设备,并且电子设备300中的各个模块的上述和其它操作和/或功能分别为了实现图3和图4各方法的相应流程,为了简洁,在此不再赘述。
图6示出了本申请实施例的一种电子设备400的示意性框图。该电子设备为主设备,该设备通过内置集成电路I2C总线与从设备进行通信,如图6所示,该电子设备400包括:网络接口410、存储器420和处理器430;该网络接口包括接收接口和/或发送接口,用于接收或发送数据;该存储器用于存储指令;该处理器用于确定该主设备与从设备之间的该I2C总线处于死锁状态;并在确定该I2C总线处于死锁状态的情况下,将该I2C总线中的串行数据线SDA置为浮空态;以及在将该SDA置为浮空态之后,控制该I2C总线中的串行时钟线SCL连续输出至少(n+1)个时钟,该至少(n+1)个时钟用于该从设备控制该SDA继续进行数据传输,其中,n为所述I2C总线的数据位宽。
因此,本申请实施例的电子设备,在确定I2C总线处于死锁状态的情况下,通过将SDA浮空,并控制SCL连续输出至少(n+1)个时钟来控制SDA,有利于解除I2C总线的死锁,从而恢复设备的正常传输。
应理解,在本申请实施例中,该处理器430可以是CPU,该处理器430 还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器420可以包括只读存储器和随机存取存储器,并向处理器430提供指令和数据。存储器420的一部分还可以包括非易失性随机存取存储器。例如,存储器420还可以存储设备类型的信息。
在实现过程中,上述方法的各内容可以通过处理器430中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的内容可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器420,处理器430读取存储器420中的信息,结合其硬件完成上述方法的内容。为避免重复,这里不再详细描述。
一个具体的实施方式中,电子设备300中的确定单元、处理单元、控制单元和检测单元可以由图6中的处理器430实现。
本申请实施例还提供了一种通信系统,所述通信系统包括上述电子设备300和从设备,所述电子设备300为主设备,所述主设备和所述从设备通过内置集成电路I2C总线进行通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及电路,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的电路、支路和单元,可以通过其它的方式实现。例如,以上所描述的支路是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到一个支路,或一些特征可以忽略,或不执行。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销 售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (9)
- 一种处理I2C总线死锁的方法,其特征在于,所述I2C总线用于主设备与从设备之间的通信,所述方法包括:在所述主设备确定所述I2C总线处于死锁状态的情况下,所述主设备将所述I2C总线中的串行数据线SDA置为浮空态;所述主设备控制所述I2C总线中的串行时钟线SCL连续输出至少(n+1)个时钟,所述至少(n+1)个时钟用于所述从设备控制所述SDA继续进行数据传输,其中,n为所述I2C总线的数据位宽。
- 根据权利要求1所述的方法,其特征在于,n=8*m,m为正整数。
- 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在所述主设备复位之后,所述主设备检测所述SCL和所述SDA的状态;若所述SCL处于高电平且所述SDA处于低电平,所述主设备确定所述I2C总线处于死锁状态。
- 根据权利要求1至3中任一项所述的方法,其特征在于,在所述主设备控制所述SCL连续输出所述至少(n+1)个时钟之后,所述方法还包括:所述主设备控制所述SCL和所述SDA输出停止信号。
- 一种电子设备,其特征在于,所述电子设备为主设备,所述设备通过I2C总线与从设备进行通信,所述电子设备包括:确定单元,用于确定所述主设备与从设备之间的所述I2C总线处于死锁状态;处理单元,用于在所述确定单元确定所述I2C总线处于死锁状态的情况下,将所述I2C总线中的串行数据线SDA置为浮空态;控制单元,用于在所述处理单元将所述SDA置为浮空态之后,控制所述I2C总线中的串行时钟线SCL连续输出至少(n+1)个时钟,所述至少(n+1)个时钟用于所述从设备控制所述SDA继续进行数据传输,其中,n为所述I2C总线的数据位宽。
- 根据权利要求5所述的电子设备,其特征在于,n=8*m,m为正整数。
- 根据权利要求5或6所述的电子设备,其特征在于,所述电子设备还包括:检测单元,在所述电子设备复位之后,检测所述SCL和所述SDA的状 态;所述确定单元具体用于:若所述检测单元检测的所述SCL处于高电平且所述SDA处于低电平,确定所述I2C总线处于死锁状态。
- 根据权利要求5至7中任一项所述的电子设备,其特征在于,所述控制单元还用于:在控制所述SCL输出所述至少(n+1)个时钟之后,控制所述SCL和所述SDA输出停止信号。
- 一种通信系统,其特征在于,所述通信系统包括如权利要求5至8中任一项所述的电子设备和从设备,所述电子设备为主设备,所述主设备和所述从设备通过I2C总线进行通信。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201880000226.8A CN110249319A (zh) | 2018-01-09 | 2018-01-09 | 处理i2c总线死锁的方法、电子设备和通信系统 |
EP18877304.8A EP3537307A4 (en) | 2018-01-09 | 2018-01-09 | METHOD FOR HANDLING THE I2C BUS BLOCKING, ELECTRONIC DEVICE AND COMMUNICATION SYSTEM |
PCT/CN2018/071926 WO2019136595A1 (zh) | 2018-01-09 | 2018-01-09 | 处理i2c总线死锁的方法、电子设备和通信系统 |
US16/418,999 US20190272252A1 (en) | 2018-01-09 | 2019-05-22 | Method of processing deadlock of i2c bus, electronic device and communication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/071926 WO2019136595A1 (zh) | 2018-01-09 | 2018-01-09 | 处理i2c总线死锁的方法、电子设备和通信系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/418,999 Continuation US20190272252A1 (en) | 2018-01-09 | 2019-05-22 | Method of processing deadlock of i2c bus, electronic device and communication system |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019136595A1 true WO2019136595A1 (zh) | 2019-07-18 |
Family
ID=67218840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/071926 WO2019136595A1 (zh) | 2018-01-09 | 2018-01-09 | 处理i2c总线死锁的方法、电子设备和通信系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190272252A1 (zh) |
EP (1) | EP3537307A4 (zh) |
CN (1) | CN110249319A (zh) |
WO (1) | WO2019136595A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114992A (zh) * | 2020-09-21 | 2020-12-22 | 济南浪潮高新科技投资发展有限公司 | 一种i2c防挂死设计方法 |
CN113656340A (zh) * | 2021-08-20 | 2021-11-16 | 西安易朴通讯技术有限公司 | I2c总线的通信控制方法、系统和装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3537307A4 (en) * | 2018-01-09 | 2019-12-25 | Shenzhen Goodix Technology Co., Ltd. | METHOD FOR HANDLING THE I2C BUS BLOCKING, ELECTRONIC DEVICE AND COMMUNICATION SYSTEM |
CN110609762B (zh) * | 2019-09-24 | 2021-04-27 | 深圳市航顺芯片技术研发有限公司 | 一种防止先进高性能总线(ahb)死锁的方法及装置 |
CN110908841B (zh) * | 2019-12-03 | 2022-09-20 | 锐捷网络股份有限公司 | 一种i2c通信异常恢复方法及装置 |
CN111061587A (zh) * | 2019-12-12 | 2020-04-24 | 浪潮商用机器有限公司 | 一种i2c总线的通信控制方法、装置、设备及存储介质 |
CN111538626B (zh) * | 2020-05-08 | 2023-03-24 | 成都蓉博通信技术有限公司 | 一种从i2c设备解挂死的方法 |
CN111881076B (zh) * | 2020-06-29 | 2023-05-26 | 苏州浪潮智能科技有限公司 | 一种国产cpu和bbu通信的i2c总线挂死修复方法及装置 |
CN113992501A (zh) * | 2020-07-09 | 2022-01-28 | 华为技术有限公司 | 一种故障定位系统、方法及计算装置 |
CN112187474B (zh) * | 2020-09-27 | 2024-04-09 | 三未信安科技股份有限公司 | 基于iic多主一从通信的密码认证自协商切换系统及方法 |
CN113868178B (zh) * | 2021-09-09 | 2024-02-13 | 浪潮电子信息产业股份有限公司 | 一种基于i2c总线的通信方法、系统及存储介质 |
CN113590527B (zh) * | 2021-10-08 | 2022-02-22 | 苏州浪潮智能科技有限公司 | 通信总线的挂死修复方法、装置、电子设备及存储介质 |
CN116048849B (zh) * | 2022-07-20 | 2023-11-07 | 荣耀终端有限公司 | 一种i2c总线的通信控制方法、装置、设备及存储介质 |
CN115834970A (zh) * | 2022-11-03 | 2023-03-21 | 深圳创维-Rgb电子有限公司 | 光感模块控制方法、装置、显示设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521187A (zh) * | 2011-11-29 | 2012-06-27 | 广东东研网络科技有限公司 | 一种i2c总线通信死锁解决方法 |
CN103678198A (zh) * | 2012-09-14 | 2014-03-26 | 京信通信系统(中国)有限公司 | 总线的锁定解除方法、装置及系统 |
US20150286607A1 (en) * | 2014-04-08 | 2015-10-08 | Robert Bosch Gmbh | Determination of the state of an i2c bus |
CN106649180A (zh) * | 2016-09-09 | 2017-05-10 | 锐捷网络股份有限公司 | 一种解除i2c总线死锁的方法及装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7149838B2 (en) * | 2001-05-29 | 2006-12-12 | Sun Microsystems, Inc. | Method and apparatus for configuring multiple segment wired-AND bus systems |
US20040225814A1 (en) * | 2001-05-29 | 2004-11-11 | Ervin Joseph J. | Method and apparatus for constructing wired-AND bus systems |
US20070240019A1 (en) * | 2005-12-29 | 2007-10-11 | International Business Machines Corporation | Systems and methods for correcting errors in I2C bus communications |
US8103896B2 (en) * | 2006-03-31 | 2012-01-24 | Nxp B.V. | Method and system for I2C clock generation |
US7526589B2 (en) * | 2007-01-23 | 2009-04-28 | International Business Machines Corporation | Apparatus, system, and method for resetting an inter-integrated circuit data line using a negative voltage |
US7761728B2 (en) * | 2007-01-23 | 2010-07-20 | International Business Machines Corporation | Apparatus, system, and method for resetting an inter-integrated circuit data line with a clock line |
JP4988671B2 (ja) * | 2008-08-29 | 2012-08-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シリアルバスシステム及びハングアップスレーブリセット方法 |
CN101763331B (zh) * | 2010-01-18 | 2014-04-09 | 中兴通讯股份有限公司 | 一种实现i2c总线控制的系统及方法 |
US20110208885A1 (en) * | 2010-02-25 | 2011-08-25 | Panasonic Corporation | Data bus control method and apparatus |
CN102073613B (zh) * | 2010-12-15 | 2013-05-08 | 创新科存储技术有限公司 | 一种消除i2c总线死锁的装置及方法 |
WO2015104193A1 (en) * | 2014-01-10 | 2015-07-16 | Koninklijke Philips N.V. | Multi-master bus |
US9665528B2 (en) * | 2014-11-20 | 2017-05-30 | International Business Machines Corporation | Bus serialization for devices without multi-device support |
US10102176B2 (en) * | 2015-02-06 | 2018-10-16 | Apple Inc. | Methods and apparatus for rapid switching of hardware configurations with a speed limited bus |
US20170104607A1 (en) * | 2015-10-13 | 2017-04-13 | Qualcomm Incorporated | Methods to avoid i2c void message in i3c |
CN106598891B (zh) * | 2015-10-15 | 2021-04-30 | 恩智浦美国有限公司 | 集成电路间i2c总线系统中的从设备报警信号 |
US10229086B2 (en) * | 2015-12-26 | 2019-03-12 | Intel Corporation | Technologies for automatic timing calibration in an inter-integrated circuit data bus |
JPWO2017122586A1 (ja) * | 2016-01-12 | 2018-11-01 | オリンパス株式会社 | 内視鏡装置 |
US10296434B2 (en) * | 2017-01-17 | 2019-05-21 | Quanta Computer Inc. | Bus hang detection and find out |
CN109388605B (zh) * | 2017-08-10 | 2021-04-27 | 深圳市中兴微电子技术有限公司 | 一种解除i2c总线死锁的方法和装置 |
CN107562668B (zh) * | 2017-08-31 | 2019-02-12 | Oppo广东移动通信有限公司 | 总线死锁恢复系统和方法 |
CN207833491U (zh) * | 2017-12-08 | 2018-09-07 | 新华三技术有限公司 | I2c总线死锁恢复电路和电子设备 |
EP3537307A4 (en) * | 2018-01-09 | 2019-12-25 | Shenzhen Goodix Technology Co., Ltd. | METHOD FOR HANDLING THE I2C BUS BLOCKING, ELECTRONIC DEVICE AND COMMUNICATION SYSTEM |
-
2018
- 2018-01-09 EP EP18877304.8A patent/EP3537307A4/en not_active Withdrawn
- 2018-01-09 WO PCT/CN2018/071926 patent/WO2019136595A1/zh unknown
- 2018-01-09 CN CN201880000226.8A patent/CN110249319A/zh active Pending
-
2019
- 2019-05-22 US US16/418,999 patent/US20190272252A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521187A (zh) * | 2011-11-29 | 2012-06-27 | 广东东研网络科技有限公司 | 一种i2c总线通信死锁解决方法 |
CN103678198A (zh) * | 2012-09-14 | 2014-03-26 | 京信通信系统(中国)有限公司 | 总线的锁定解除方法、装置及系统 |
US20150286607A1 (en) * | 2014-04-08 | 2015-10-08 | Robert Bosch Gmbh | Determination of the state of an i2c bus |
CN106649180A (zh) * | 2016-09-09 | 2017-05-10 | 锐捷网络股份有限公司 | 一种解除i2c总线死锁的方法及装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3537307A4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114992A (zh) * | 2020-09-21 | 2020-12-22 | 济南浪潮高新科技投资发展有限公司 | 一种i2c防挂死设计方法 |
CN112114992B (zh) * | 2020-09-21 | 2023-11-14 | 山东浪潮科学研究院有限公司 | 一种i2c防挂死设计方法 |
CN113656340A (zh) * | 2021-08-20 | 2021-11-16 | 西安易朴通讯技术有限公司 | I2c总线的通信控制方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3537307A1 (en) | 2019-09-11 |
EP3537307A4 (en) | 2019-12-25 |
CN110249319A (zh) | 2019-09-17 |
US20190272252A1 (en) | 2019-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019136595A1 (zh) | 处理i2c总线死锁的方法、电子设备和通信系统 | |
KR101842568B1 (ko) | 트랜잭션 버퍼링된 메모리에서의 초기 식별 | |
US8386764B2 (en) | BIOS architecture | |
US9423972B2 (en) | Error recovery in a data processing system which implements partial writes | |
CN103270497A (zh) | 实时错误恢复的方法和系统 | |
JP2008197752A (ja) | データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体 | |
US20140143588A1 (en) | Instant Communication Error Indication From Slave | |
TWI771299B (zh) | 通訊裝置、通訊方法、程式以及通訊系統 | |
US11422828B2 (en) | Interleaved host reset and next re-initialization operations | |
US4858234A (en) | Method and apparatus for error recovery in a multibus computer system | |
WO2012046634A1 (ja) | 電子装置およびシリアルデータ通信方法 | |
US8799545B2 (en) | Restoring stability to an unstable bus | |
US4837767A (en) | Bus adapter module with improved error recovery in a multibus computer system | |
US20140244874A1 (en) | Restoring stability to an unstable bus | |
WO2017036101A1 (zh) | 一种更新寄存器的方法及装置 | |
US20060159023A1 (en) | CRC error history mechanism | |
CN116560902A (zh) | 处理系统、相关集成电路和方法 | |
US5617433A (en) | Serial data transfer apparatus | |
CN112445744A (zh) | I2c通信 | |
JPS60178561A (ja) | 標準デイジタル・インタ−フエイス装置 | |
US9542266B2 (en) | Semiconductor integrated circuit and method of processing in semiconductor integrated circuit | |
US20230251926A1 (en) | Processing system, related integrated circuit and method | |
US20230280933A1 (en) | Processing system, related integrated circuit, device and method | |
TWI738627B (zh) | 具有錯誤偵測功能的智能網卡系統及錯誤偵測方法 | |
GB2457147A (en) | Reading back data on an I2C bus to detect transmission errors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2018877304 Country of ref document: EP Effective date: 20190522 |
|
ENP | Entry into the national phase |
Ref document number: 2018877304 Country of ref document: EP Effective date: 20190522 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |