CN116107790A - I2c通信异常的处理方法、电子设备、系统和存储介质 - Google Patents
I2c通信异常的处理方法、电子设备、系统和存储介质 Download PDFInfo
- Publication number
- CN116107790A CN116107790A CN202310172134.0A CN202310172134A CN116107790A CN 116107790 A CN116107790 A CN 116107790A CN 202310172134 A CN202310172134 A CN 202310172134A CN 116107790 A CN116107790 A CN 116107790A
- Authority
- CN
- China
- Prior art keywords
- slave device
- bus
- communication
- slave
- line scl
- 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.)
- Pending
Links
- 230000006854 communication Effects 0.000 title claims abstract description 139
- 238000004891 communication Methods 0.000 title claims abstract description 138
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000002159 abnormal effect Effects 0.000 claims abstract description 50
- 230000005856 abnormality Effects 0.000 claims description 41
- 238000001514 detection method Methods 0.000 claims description 37
- 238000012545 processing Methods 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0748—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- 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
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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
-
- 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/0002—Serial port, e.g. RS232C
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Quality & Reliability (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及I2C通信技术领域,尤其涉及一种I2C通信异常的处理方法、电子设备、系统和存储介质。所述方法包括:从设备确定主设备在时钟线SCL发送的时钟信号周期T;所述从设备确定I2C总线通信异常时,从设备根据所述时钟信号周期T,周期性地拉低时钟线SCL以在所述时钟线SCL上产生第一时钟信号,所述第一时钟信号用于恢复I2C总线上的通信。在本发明实施例方案中,当I2C总线处于通信异常状态时能够通过从设备恢复I2C总线上的通信。
Description
技术领域
本发明涉及I2C通信技术领域,尤其涉及一种I2C通信异常的处理方法、电子设备、系统和存储介质。
背景技术
内置集成电路(Inter-Integrated Circuit,I2C)总线是一种双向二线制的同步串行总线。I2C总线包括串行数据线(Serial Data,简称为数据线SDA)和串行时钟线(Serial Clock Line,简称为数据线SCL)。连接于I2C总线上的主设备和从设备通过数据线SDA和时钟线SCL两根线完成通信。在实际通信过程中,I2C总线有时会出现通信异常问题。例如,当从设备回复ACK或者回复数据位0时主设备异常复位,则数据线SDA处于被从设备拉低状态,时钟线SCL处于高电平状态。此时,从设备会等待主设备拉低时钟线SCL取走ACK或者数据位0,主设备会等待从设备释放数据线SDA。主设备和从设备互相等待,进入通信异常状态。当I2C总线进入通信异常状态时,如何恢复主从设备之间的正常通信成为需要解决的技术问题。
发明内容
本发明实施例提供了一种I2C通信异常的处理方法、电子设备、系统和存储介质,当I2C总线处于通信异常状态时能够通过从设备侧的操作恢复I2C总线上的通信。
第一方面,本发明实施例提供了一种I2C通信异常的处理方法,包括:
从设备确定主设备在时钟线SCL发送的时钟信号周期T;
所述从设备确定I2C总线通信异常时,所述从设备根据所述时钟信号周期T,周期性地拉低时钟线SCL以在所述时钟线SCL上产生第一时钟信号,所述第一时钟信号用于恢复I2C总线上的通信。
可选的,所述从设备确定I2C总线通信异常,包括:
所述从设备检测到所述时钟线SCL保持高电平以及所述数据线SDA保持低电平,并且持续时长大于或者等于异常检测阈值时,所述从设备确定I2C总线通信异常。
可选的,所述从设备根据所述时钟信号周期T,周期性地拉低时钟线SCL以在所述时钟线SCL上产生第一时钟信号,包括:
所述第一时钟信号的周期为T,所述第一时钟信号的每个周期T的前m时段为低电平,所述m为预设已知值。
可选的,所述方法还包括:所述从设备检测到所述主设备恢复在时钟线SCL上发送第二时钟信号时,所述从设备停止对时钟线SCL的控制。
可选的,所述从设备设置有用于确定I2C总线通信异常的异常检测阈值,所述方法还包括:
所述从设备根据所述异常检测阈值和所述第一时钟信号的持续时长,确定所述I2C总线通信异常的总时长。
可选的,所述从设备为连接于I2C总线上的任意一个从设备。
可选的,所述从设备确定I2C总线通信异常时,所述从设备根据所述时钟信号周期T,周期性地拉低时钟线SCL以在所述时钟线SCL上产生第一时钟信号,包括:
连接于I2C总线上的各个从设备均具有各自的异常检测阈值;
各个从设备根据自身的异常检测阈值来确定I2C总线是否通信异常,当连接于I2C总线上的任意一个从设备确定I2C总线通信异常时,则相应从设备周期性地拉低时钟线SCL;或者,
当前未与主设备建立通信的从设备根据自身的异常检测阈值来确定I2C总线是否通信异常,当前未与主设备建立通信的任意一个从设备确定I2C总线通信异常时,则相应从设备周期性地拉低时钟线SCL。
第二方面,本发明实施例提供了一种电子设备,所述电子设备为连接于I2C总线的从设备,包括:
接口模块,用于连接于I2C总线;
存储模块,用于存储包括程序指令的信息;
控制模块,用于控制程序指令的执行,所述程序指令被控制模块加载并执行时实现上述第一方面或者第一方面任一项所述的方法。
第三方面,本发明实施例提供了一种I2C设备系统,包括:主设备和从设备,所述主设备和所述从设备均连接于I2C总线,所述从设备用于执行上述第一方面或者第一方面任一项所述的方法。
可选的,连接于I2C总线的所述从设备的数量为多个,连接于I2C总线上的任意一个从设备用于执行上述第一方面或者第一方面任一项所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述第一方面或者第一方面任一项所述的方法。
本发明实施例方案中,从设备确定I2C总线通信异常时,从设备可以根据主设备的时钟信号周期T,周期性地拉低时钟线SCL以在时钟线SCL上恢复时钟信号。基于从设备的控制在时钟线SCL上触发时钟信号后,主设备可以取走数据线SDA上的ACK或者数据位,从而可以恢复I2C总线上的通信。可见,在本发明实施例方案中,当I2C总线处于通信异常时能够通过从设备侧的操作恢复I2C总线上的通信。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于I2C的设备系统示意图;
图2为本发明实施例提供的一种主设备和从设备的数据传输时序示意图;
图3为本发明实施例提供的一种开始信号的示意图;
图4为本发明实施例提供的一种I2C总线出现通信异常的示意图;
图5为为本发明实施例提供的一种I2C通信异常的处理方法流程图;
图6为本发明实施例提供的一种恢复I2C总线上的通信的示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更好的理解本发明实施例的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明实施例保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明实施例。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
I2C通信是一种串行通信方式。I2C通信使用主从架构,便于主板、嵌入式系统或者电子设备与周边设备组件建立通信。由于I2C协议的简单性,其被广泛应用于微控制器与传感器阵列、显示器、IoT设备或者EEPROM等之间的通信。参见图1,为本发明实施例提供的一种基于I2C的设备系统示意图。如图1所示,I2C总线包括数据线SDA和时钟线SCL。主设备和从设备均连接在数据线SDA和时钟线SCL上。I2C的主从架构可以是一对一结构,即包括一个主设备和一个从设备,也可是一对多结构,即包括一个主设备和多个从设备。图1所示即为一对多架构,一个主设备对应多个从设备,如从设备1、从设备2和从设备3。
I2C通信由主设备发起和主导。主设备可以决策某一时间和哪个从设备通信。从设备被动接受和响应主设备的通信。
参见图2,为本发明实施例提供的一种主设备和从设备的数据传输时序示意图。如图2所示,主设备和从设备之间的数据传输时序主要分为:开始传输、数据传输和结束传输。
(1)开始传输。开始传输由主设备发起,用于传输主设备发起的开始信号。如图3所示,当I2C总线空闲时,数据线SDA和时钟线SCL均处于高电平状态。当主设备发起通信时,主设备将数据线SDA由高电平切换至低电平,数据线SDA由高电平切换至低电平的跳变信号可以作为开始数据传输的开始信号。从设备,如图1中的从设备1、从设备2和从设备3检测到主设备发送的开始信号后,从设备1、从设备2和从设备3由睡眠状态进入活动状态。从设备1、从设备2和从设备3进入活动状态后等待接收主设备发送的地址信号。
(2)数据传输。如图2所示,主设备发送开始信号之后,主设备与从设备之间开始进行数据传输。如图2所示,主设备和从设备之间的数据传输包括:地址位、读/写位以及数据位的传输,其中,每次传输数据后,对端设备会发送一个响应位。具体的,如图3所示,主设备在数据线SDA上触发开始信号后,主设备拉低时钟线SCL的电平并在时钟线SCL上发送时钟信号。主设备在时钟线SCL上发送时钟信号的过程中,主设备可以在数据线SDA上发送地址位和读/写位。其中,连接于I2C总线上的各个从设备均具有各自的从设备地址。主设备在数据线SDA上发送的地址位用于表示待通信的目标从设备的地址。主设备在数据线SDA上发送的读/写位用于表示主设备需要对目标从设备进行读操作,还是需要对目标从设备进行写操作。
各个从设备检测到主设备在数据线SDA上发送的地址位和读/写位之后,判断数据线SDA上发送的地址位是否与自身的从设备地址一致。若一致,则从设备拉低数据线SDA,以向主设备返回ACK,从而响应与主设备的通信。可选的,从设备地址与主设备传输的地址位一致的从设备也称为目标从设备,或者也可以称为当前与主设备建立通信的从设备。若SDA上发送的地址位与从设备自身的从设备地址不一致,则从设备此时不做响应。可选的,从设备地址与主设备传输的地址位不一致的从设备可以称为当前未与主设备建立通信的从设备。
主设备根据ACK信号确定目标从设备之后,主设备和目标从设备之间开始进行数据位的传输。可选的,主设备和从设备之间的数据位传输包括主设备向目标从设备写入数据,以及主设备向目标从设备读取数据。可选的,主设备和目标从设备之间每次传输的数据通常为固定比特数,在固定比特数之后会跟一个响应位。在一些示例中,主设备和目标从设备之间每次传输8比特位,在第9个比特位传输响应位。例如,主设备向目标从设备写入数据时,每次在数据线SDA上传输8个比特位。目标从设备在第9个比特位拉低数据线SDA,以向主设备发送一个ACK信号。同理,主设备向目标从设备读取数据时,目标从设备每次在数据线SDA上传输8个比特位,主设备在第9个比特位拉低数据线SDA,以向目标从设备发送一个ACK信号。
(3)结束传输。当主设备和从设备之间的数据位传输结束时,主设备向目标从设备发送结束信号。其中,如果数据线SDA未被从设备占用,数据线SDA被主设备控制为低电平,且时钟线SCL为高电平时,主设备将数据线SDA从低电平切换至高电平时,数据线SDA从低电平向高电平切换时产生的跳变信号则可以作为结束信号。
在上述I2C数据传输的过程中,有时会出现下述情况,1、从设备在回复ACK时,主设备异常复位。2、从设备在回复数据位0时,主设备异常复位。两种情况的相同点都是:如图4所示,主设备异常复位时数据线SDA处于被从设备拉低状态,而主设备复位后时钟线SCL处于高电平状态。此时从设备会等待主设备拉低时钟线SCL取走ACK或者数据位0,主设备会等待从设备释放数据线SDA。如图4所示,从t1时刻起,时钟线SCL和数据线SDA进入互相等待状态若该状态持续的时长达到预设的异常检测阈值,则确定I2C总线通信异常。当I2C总线通信异常时,相关技术中通常是通过主设备侧的操作来恢复I2C通信。不同于相关技术,本发明实施例提出了一种I2C通信异常的处理方法。本发明实施例方法在从设备侧对I2C总线进行操作,以恢复I2C总线上的通信。
参见图5,为本发明实施例提供的一种I2C通信异常的处理方法流程图。如图5所示,该方法的处理步骤包括:
201,从设备确定主设备在时钟线SCL发送的时钟信号周期T。
202,从设备确定I2C总线通信异常时,从设备根据时钟信号周期T,周期性地拉低时钟线SCL以在时钟线SCL上产生第一时钟信号,第一时钟信号用于恢复I2C总线上的通信。
本发明实施例中,当从设备确定I2C总线通信异常时,从设备根据主设备在通信异常之前触发的时钟信号周期T,周期性地拉低时钟线SCL以在时钟线SCL上恢复时钟信号,本发明实施例称为第一时钟信号。主设备检测到时钟线SCL上的时钟信号后,主设备可以取走数据线SDA上传输的数据位,由此以恢复在I2C总线上的通信。
上述步骤202中,从设备确定I2C总线通信异常,包括:从设备检测到时钟线SCL保持高电平以及数据线SDA保持低电平,并且该状态的持续时长大于或者等于异常检测阈值时,从设备确定I2C总线通信异常。本发明实施例中,当时钟线SCL保持高电平以及数据线SDA保持低电平时,有可能是I2C总线在传输数据位0,也有可能是I2C总线的通信出现异常。因此,当从设备检测到时钟线SCL保持高电平以及数据线SDA保持低电平时,并不立即对I2C总线进行操作,而是对该状态的持续时长进行计时。若时钟线SCL保持高电平以及数据线SDA保持低电平的持续时长大于或者等于异常检测阈值,则从设备确定I2C总线出现了通信异常。此时从设备根据时钟信号周期T,周期性地拉低时钟线SCL以在时钟线SCL上产生第一时钟信号。可选的,上述异常检测阈值可以根据需要设置。在一些实施例中,上述异常检测阈值可以为n1*T,n1为正整数。即时钟线SCL保持高电平以及数据线SDA保持低电平的持续时长大于或者等于n1个时钟信号周期T后,从设备周期性地拉低时钟线SCL以在时钟线SCL上产生第一时钟信号。
在一些实施例中,从设备周期性地拉低时钟线SCL以在时钟线SCL上产生第一时钟信号,包括:上述第一时钟信号的周期为T。从设备周期性地拉低时钟线SCL包括:从设备拉低每个周期T的前m时段为低电平,m为预设已知值。在一些实施例中,从设备可以拉低每个周期T的前30%T、前50%T、前70%T或者其它可能的时段为低电平,从而在时钟线SCL上产生第一时钟信号。
在一些实施例中,当从设备检测到主设备恢复在时钟线SCL发送第二时钟信号时,从设备停止对时钟线SCL的控制。即,从设备确定主设备恢复在时钟线SCL上发送时钟信号后,从设备停止对时钟线SCL的控制。
在一些实施例中,从设备还进一步统计I2C总线处于通信异常的总时长。可选的,从设备统计I2C总线处于通信异常的总时长包括:从设备根据异常检测阈值和第一时钟信号的持续时长确定I2C总线处于通信异常的总时长。如图6所示,在t1时刻,从设备检测到时钟线SCL处于高电平状态且数据线SDA处于低电平状态。此时I2C总线可能在传输数据位0,也可能I2C总线通信异常。为了确定I2C总线是否通信异常,从设备继续检测SCL和SDA的状态并统计时钟线SCL保持高电平且数据线SDA保持低电平的持续时长。若在t2时刻,时钟线SCL保持高电平且数据线SDA保持低电平的持续时长大于或者等于了设定异常检测阈值n1*T,则从设备在t2时刻确定I2C总线通信异常。可选的,从设备在t2时刻确定I2C总线通信异常后,从设备可以确定I2C总线可以将t1时刻确定为I2C总线通信异常的初始时间。截止到t2时刻,I2C总线通信异常的持续时间为t2-t1=异常检测阈值n1*T。
在图6给出的示例中,从设备在t2时刻确定I2C总线通信异常,则从设备在t2时刻开始周期性地拉低时钟线SCL以在时钟线SCL上恢复时钟信号。从t2时刻经过n2*T时长到达t3时刻时,从设备检测到主设备开始恢复在时钟线SCL上发送第二时钟信号,则t3时刻为I2C总线上恢复通信的通信恢复时间,则第一时钟信号的持续时长为t3-t2=n2*T。综上可知,I2C总线在t1-t3时段处于通信异常状态,I2C总线处于通信异常的总时长=异常检测阈值+第一时钟信号的持续时长=n1*T+n2*T。可选的,上述n1可以根据实际需要设置,上述n2根据主设备恢复时钟信号传输的时间确定。可选的,从设备可以将I2C总线处于通信异常的总时长提供给用户,以供用户获取I2C总线的通信异常信息。
在图1给出的I2C的设备系统中,连接于I2C总线上的任意一个从设备均可以执行本发明实施例的方法。该任意一个设备可以是是当前与主设备建立通信的从设备,或者,也可以是连接于I2C总线且当前未与主设备建立通信的从设备。下述将结合具体实施例分别进行说明。
在一个示例中,当前与主设备建立通信的从设备用于执行本发明实施例方法。其中,当前与主设备建立通信的从设备是指从设备地址与主设备发送的地址位一致的从设备。参见图1所示设备系统,主设备发送开始信号后,主设备发送地址位信息。若从设备1的从设备地址与主设备发送的地址位一致,则从设备1为当前与主设备建立通信的从设备。在主设备和从设备1通信的过程中,从设备1确定主设备在时钟线SCL发送的时钟信号周期T。可选的,从设备1在与主设备通信的过程中,从设备1可以对主设备发送的时钟信号进行采样,以获取时钟信号周期T并对时钟信号周期T进行存储。可选的,从设备1在与主设备通信的过程中,从设备1还检测I2C总线的电平状态。若时钟线SCL保持高电平以及数据线SDA保持低电平,并且持续时长大于或者等于异常检测阈值n1*T时,从设备1确定I2C总线通信异常。从设备1确定I2C总线通信异常时,从设备1根据已经存储的时钟信号周期T周期性地拉低时钟线SCL以在时钟线SCL上产生第一时钟信号,n1为预设已知值。主设备检测到时钟线SCL上的时钟信号后,可以取走数据线SDA上的数据位,并且恢复在时钟线SCL上发送时钟信号。从设备1检测到主设备恢复在时钟线SCL上发送时钟信号时,从设备1停止对时钟线SCL的控制。可选的,从设备1还可以根据上述异常检测阈值和第一时钟信号的持续时长,确定I2C总线处于通信异常的总时长。
在一个示例中,设备系统中的当前未与主设备建立通信的从设备用于执行本发明实施例方法。其中,当前未与主设备建立通信的从设备是指从设备地址与主设备发送的地址位不一致的从设备。参见图1所示设备系统,主设备发送开始信号后,主设备发送地址位信息。若从设备1的从设备地址与主设备发送的地址位一致,则从设备1为当前与主设备建立通信的从设备。若从设备2和3与主设备发送的地址位不一致,则从设备2和3当前未与主设备建立通信的从设备。在主设备和从设备1通信的过程中,从设备2和/或从设备3均可以检测I2C总线的通信状态。可选的,设备2和从设备3中的其中之一可以用于执行本发明实施例方法。以从设备2为例,从设备2根据与主设备的历史通信记录,确定主设备发送的时钟信号周期T。从设备2检测到I2C总线通信异常时,从设备2周期性地拉低时钟线SCL以在时钟线SCL上恢复第一时钟信号。从设备2检测到主设备恢复在时钟线SCL上发送时钟信号时,从设备2停止对时钟线SCL的控制。可选的,从设备2还可以根据自身的异常检测阈值以及第一时钟信号的持续时长,确定I2C总线处于通信异常的总时长。本发明实施例中,可以通过设备系统中当前未与主设备通信的从设备来恢复I2C总线的通信,从而确保主设备和目标从设备之间通信状态的尽快恢复。
在一些示例中,图1所示设备系统中的各个从设备均具有各自的异常检测阈值。各个从设备的异常检测阈值可以相同,也可以不同。当主设备与其中一个从设备通信时,各个从设备可以根据自身的异常检测阈值来确定I2C总线是否通信异常,当连接于I2C总线上的任意一个从设备确定I2C总线通信异常时,则相应从设备周期性地拉低时钟线SCL。在此方式中,连接于I2C总线上的各个从设备根据自身的异常检测阈值来竞争对I2C总线恢复通信的机会。
例如,从设备1对应的异常检测阈值为n1*T,从设备2对应的异常检测阈值为(n1+1)*T,从设备3对应的异常检测阈值为(n1+2)*T。若当前从设备1与主设备通信。当时钟线SCL保持高电平以及数据线SDA保持低电平,并且持续时长大于或者等于n1*T时,从设备1在时钟线SCL上产生第一时钟信号以恢复主设备和从设备1之间的通信。此时,由当前与主设备通信的从设备来恢复I2C总线上的通信。若当前从设备2与主设备通信。当时钟线SCL保持高电平以及数据线SDA保持低电平,并且持续时长大于或者等于n1*T时,从设备1在时钟线SCL上产生第一时钟信号以恢复主设备和从设备2之间的通信。此时,由当前未与主设备通信的从设备来恢复I2C总线上的通信。
在一些示例中,图1所示设备系统中的各个从设备均具有各自的异常检测阈值。各个从设备的异常检测阈值可以相同,也可以不同。当I2C总线通信异常时,当前未与主设备建立通信的从设备根据自身的异常检测阈值来确定I2C总线是否通信异常,当前未与主设备建立通信的任意一个从设备确定I2C总线通信异常时,则相应从设备周期性地拉低时钟线SCL。在此方式中,总是由当前未与主设备通信的从设备来恢复I2C总线上的通信。
例如,从设备1对应的异常检测阈值为n1*T,从设备2对应的异常检测阈值为(n1+1)*T,从设备3对应的异常检测阈值为(n1+2)*T。若当前从设备1与主设备通信。当时钟线SCL保持高电平以及数据线SDA保持低电平,并且持续时长大于或者等于(n1+1)*T时,从设备2在时钟线SCL上产生第一时钟信号以恢复主设备和从设备1之间的通信。若当前从设备2与主设备通信。当时钟线SCL保持高电平以及数据线SDA保持低电平,并且持续时长大于或者等于n1*T时时,从设备1在时钟线SCL上产生第一时钟信号以恢复主设备和从设备2之间的通信。若当前从设备3与主设备通信。当时钟线SCL保持高电平以及数据线SDA保持低电平,并且持续时长大于或者等于n1*T时,从设备1在时钟线SCL上产生第一时钟信号以恢复主设备和从设备3之间的通信。
参见图7,为本发明实施例提供的一种电子设备的示意图。图7所示电子设备为连接于I2C总线的从设备。可选的,图7所示电子设备可以为当前与主设备建立通信的从设备,或者可以为当前未与主设备建立通信的从设备。如图7所示,所述电子设备包括:接口模块、存储模块和控制模块。其中,接口模块用于连接于I2C总线。接口模块通过数据线SDA和时钟线SCL与主设备建立连接。存储模块,用于存储包括程序指令的信息。可选的,存储模块还可以用于存储主设备发送的时钟信号周期T。控制模块,用于控制程序指令的执行,所述程序指令被控制模块加载并执行时实现上述的I2C通信异常的处理方法。
本发明实施例还保护一种I2C设备系统。所述I2C设备系统包括主设备和从设备,所述主设备和所述从设备均连接于I2C总线,所述从设备用于执行上述的I2C通信异常的处理方法。
在一些实施例中,连接于I2C总线的所述从设备的数量为多个,连接于I2C总线上的任意一个从设备均可用于执行上述I2C通信异常的处理方法。
本发明实施例还保护一种计算机可读存储介质。所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述的I2C通信异常的处理方法。
上述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnly Memory;以下简称:ROM)、可擦式可编程只读存储器(Erasable Programmable ReadOnly Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种I2C通信异常的处理方法,其特征在于,包括:
从设备确定主设备在时钟线SCL发送的时钟信号周期T;
所述从设备确定I2C总线通信异常时,所述从设备根据所述时钟信号周期T,周期性地拉低时钟线SCL以在所述时钟线SCL上产生第一时钟信号,所述第一时钟信号用于恢复I2C总线上的通信。
2.根据权利要求1所述的方法,其特征在于,所述从设备确定I2C总线通信异常,包括:
所述从设备检测到所述时钟线SCL保持高电平以及所述数据线SDA保持低电平,并且持续时长大于或者等于异常检测阈值时,所述从设备确定I2C总线通信异常。
3.根据权利要求1所述的方法,其特征在于,所述从设备根据所述时钟信号周期T,周期性地拉低时钟线SCL以在所述时钟线SCL上产生第一时钟信号,包括:
所述第一时钟信号的周期为T,所述第一时钟信号的每个周期T的前m时段为低电平,所述m为预设已知值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述从设备检测到所述主设备恢复在时钟线SCL上发送第二时钟信号时,所述从设备停止对时钟线SCL的控制。
5.根据权利要求1所述的方法,其特征在于,所述从设备设置有用于确定I2C总线通信异常的异常检测阈值,所述方法还包括:
所述从设备根据所述异常检测阈值和所述第一时钟信号的持续时长,确定所述I2C总线通信异常的总时长。
6.根据权利要求1所述的方法,其特征在于,所述从设备为连接于I2C总线上的任意一个从设备。
7.根据权利要求1或6所述的方法,其特征在于,所述从设备确定I2C总线通信异常时,所述从设备根据所述时钟信号周期T,周期性地拉低时钟线SCL以在所述时钟线SCL上产生第一时钟信号,包括:
连接于I2C总线上的各个从设备均具有各自的异常检测阈值;
各个从设备根据自身的异常检测阈值来确定I2C总线是否通信异常,当连接于I2C总线上的任意一个从设备确定I2C总线通信异常时,则相应从设备周期性地拉低时钟线SCL;或者,
当前未与主设备建立通信的从设备根据自身的异常检测阈值来确定I2C总线是否通信异常,当前未与主设备建立通信的任意一个从设备确定I2C总线通信异常时,则相应从设备周期性地拉低时钟线SCL。
8.一种电子设备,其特征在于,所述电子设备为连接于I2C总线的从设备,包括:
接口模块,用于连接于I2C总线;
存储模块,用于存储包括程序指令的信息;
控制模块,用于控制程序指令的执行,所述程序指令被控制模块加载并执行时实现权利要求1至7任一所述的方法。
9.一种I2C设备系统,其特征在,包括:主设备和从设备,所述主设备和所述从设备均连接于I2C总线,所述从设备用于执行权利要求1至7任一项所述的方法。
10.根据权利要求9所述的系统,其特征在于,连接于I2C总线的所述从设备的数量为多个,连接于I2C总线上的任意一个从设备用于执行权利要求1至7任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310172134.0A CN116107790A (zh) | 2023-02-24 | 2023-02-24 | I2c通信异常的处理方法、电子设备、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310172134.0A CN116107790A (zh) | 2023-02-24 | 2023-02-24 | I2c通信异常的处理方法、电子设备、系统和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116107790A true CN116107790A (zh) | 2023-05-12 |
Family
ID=86261549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310172134.0A Pending CN116107790A (zh) | 2023-02-24 | 2023-02-24 | I2c通信异常的处理方法、电子设备、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116107790A (zh) |
-
2023
- 2023-02-24 CN CN202310172134.0A patent/CN116107790A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908841B (zh) | 一种i2c通信异常恢复方法及装置 | |
US10116542B2 (en) | Communication device, communication method, program, and communication system | |
JP5160100B2 (ja) | データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体 | |
EP2413484B1 (en) | Safety control system | |
EP3092574B1 (en) | Multi-master bus | |
US11714778B2 (en) | Communication apparatus, communication method, program, and communication system | |
US9889762B2 (en) | Control system for charging vehicle battery in response to an unstable state | |
US20200272532A1 (en) | Communication apparatus, communication method, program, and communication system | |
CN111324494A (zh) | 处理器控制方法、装置和存储介质 | |
CN106776054A (zh) | 一种死锁检测方法、装置和电路 | |
US10929321B2 (en) | Communication apparatus, communication method, program, and communication system with avoidance of false detection of signal level changes | |
CN106126362B (zh) | 一种光模块i2c总线乱时序诊断方法及装置 | |
CN109074343B (zh) | 通信设备、通信方法、程序、以及通信系统 | |
CN116107790A (zh) | I2c通信异常的处理方法、电子设备、系统和存储介质 | |
CN102662902B (zh) | 一种防止i2c总线锁定的方法、装置及系统 | |
EP3459190B1 (en) | Communication device, communication method, program, and communication system | |
CN104717092A (zh) | 具有待机运行的主从通信系统 | |
EP3459189B1 (en) | Communication apparatus, communication method, program, and communication system | |
CN115114067A (zh) | 一种防止i2c挂起的方法、系统、设备和存储介质 | |
US20160267034A1 (en) | Controller, bus circuit, control method, and recording medium | |
US10824582B2 (en) | Communication apparatus, communication method, program, and communication system | |
KR102104967B1 (ko) | 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드 | |
JP2009187474A (ja) | 半導体装置、携帯可能な電子装置、自己診断方法、自己診断プログラム | |
JP2005338963A (ja) | 電子機器 | |
JP2023170679A (ja) | 車載装置、プログラム及び情報処理方法 |
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 |