CN103856381A - 自动恢复热插拔i2c总线锁死的方法、装置和系统 - Google Patents

自动恢复热插拔i2c总线锁死的方法、装置和系统 Download PDF

Info

Publication number
CN103856381A
CN103856381A CN201210494060.4A CN201210494060A CN103856381A CN 103856381 A CN103856381 A CN 103856381A CN 201210494060 A CN201210494060 A CN 201210494060A CN 103856381 A CN103856381 A CN 103856381A
Authority
CN
China
Prior art keywords
bus
reset
controller
locked
main device
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
Application number
CN201210494060.4A
Other languages
English (en)
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.)
Suzhou Industrial Park New Hongbo Communication Technology Co Ltd
Original Assignee
Suzhou Industrial Park New Hongbo 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 Suzhou Industrial Park New Hongbo Communication Technology Co Ltd filed Critical Suzhou Industrial Park New Hongbo Communication Technology Co Ltd
Priority to CN201210494060.4A priority Critical patent/CN103856381A/zh
Publication of CN103856381A publication Critical patent/CN103856381A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种自动恢复热插拔I2C总线锁死的方法、装置和系统,所述装置包括复位检测器,与I2C主器件连接,用于检测I2C总线忙碌状态;复位I2C控制器,与所述I2C总线有效连接,用于对所述I2C总线进行复位。通过在硬件上采用硬件I2C总线接口将所述的I2C主器件和I2C从器件连接,保证总线竞争仲裁,解决总线竞争问题。软件控制流程中添加复位I2C总线流程,一旦检测到I2C总线锁死,复位I2C控制器,重新激活I2C总线,,恢复SDA、SCL信号,即可退出锁死状态。有效解决了I2C局部总线在热插拔机制下的锁死问题。

Description

自动恢复热插拔I2C总线锁死的方法、装置和系统
技术领域
本发明涉及串行通信总线领域,尤其是涉及一种自动恢复总线锁死的技术领域。
背景技术
I2C总线是Philips公司开发的一种简单的双向二线制串行通信总线,包括一条串行数据线SDA和一条串行时钟线SCL,这个总线被称为Inter-IC 或者I2C 总线。目前I2C 总线已经成为业界嵌入式应用的标准解决方案,被广泛地应用在各式各样基于微控器的专业、消费与电信产品中,作为控制、诊断与通讯总线。多个符合I2C 总线标准的器件都可以通过同一条I2C 总线进行通信,而不需要额外的地址译码器。
但是I2C总线在设计上存在着一个先天缺陷,在某一指定的异常工作情况下,I2C总线会进入一种死锁状态,其结果就是总线瘫痪,总线上的所有设备均无法正常工作。同时,这种总线死锁的状态很难清除,传统的看门狗复位方法也不能有效地解决这个问题。因此,一旦I2C总线死锁,就导致设备瘫痪。这时候只能通过人工手动干预,关闭启动设备电源的方式来重新启动设备。这对于自动控制、通信等强调高可靠性、高维护性的行业来说,是无法接受的。
在以I2C为局部总线的热插拔系统中,I2C总线上有多个节点,他们都有自己的寻址地址,主控板作为主设备,负责数据、控制流程的集中处理,各个功能板卡负责具体功能的处理。在正常情况下,I2C总线协议能够保证总线正常的读写操作。但是,当I2C主设备、I2C从设备因异常复位时,或者是板卡带电热插拔时,都有可能导致I2C总线死锁产生。具体产生总线锁死的原因为:在I2C主设备进行读写操作的过程中,主设备在开始信号后控制SCL产生8个时钟脉冲,然后拉低SCL信号为低电平,在这个时候,从设备输出应答信号,将SDA信号拉为低电平。如果这个时候主设备异常复位,SCL就会被释放为高电平。此时,如果从设备没有复位,就会继续I2C的应答,将SDA一直拉为低电平,直到SCL变为低电平,才会结束应答信号。而对于I2C主设备来说.复位后检测SCL和SDA信号,如果发现SDA信号为低电平,则会认为I2C总线被占用,会一直等待SCL和SDA信号变为高电平。这样,I2C主设备等待从设备释放SDA信号,而同时I2C从设备又在等待主设备将SCL信号拉低以释放应答信号,两者相互等待,I2C总线进人一种死锁状态。同样,当I2C进行读操作,I2C从设备应答后输出数据,如果在这个时刻I2C主设备异常复位而此时I2C从设备输出的数据位正好为0,也会导致I2C总线进入死锁状态。
同样,当I2C进行读操作,I2C从设备应答后输出数据,如果这个时刻I2C设备异常复位而此时I2C从设备的数据位正好为0,也会导致I2C总线进入死锁状态。
发明内容
为了解决上述技术问题,本发明公开了一种自动恢复热插拔I2C总线锁死的方法、装置和系统。
本发明所述的自动恢复热插拔I2C总线锁死的装置,包括复位检测器,与I2C主器件连接,用于检测I2C总线忙碌状态;复位I2C控制器,与所述I2C总线有效连接,用于对所述I2C总线进行复位。
进一步的,所述的I2C总线包括串行时钟线和双向串行数据线。
进一步的,所述复位I2C控制器的工作间隔时间为10ms。
进一步的,本发明还公开了一种防止I2C总线锁死的系统,所述系统包括I2C主器件和至少一个通过I2C总线与所述I2C主器件连接的I2C从器件,还包括自动恢复热插拔I2C总线锁死的装置;所述I2C主器件用于接收外界发送的复位信号,所述装置包括:复位检测器,与I2C主器件连接,用于检测I2C总线忙碌状态;复位I2C控制器,与所述I2C总线有效连接,用于对所述I2C总线进行复位。
进一步的,所述系统包括一个I2C主器件,控制I2C总线的调度工作,至少一个I2C从器件,接收I2C主器件发出的控制信号。
进一步的,本发明还公开了一种自动恢复热插拔I2C总线锁死的方法,其特征在于:检测所述I2C主器件是否忙碌,若检测到忙碌,所述复位检测器输送恢复信号给复位I2C控制器对I2C总线进行复位。每10ms对I2C总线进行一次复位。
本发明的优点在于:本发明公开了一种自动恢复热插拔I2C总线锁死的方法、装置和系统,装置,所述装置包括复位检测器,与I2C主器件连接,用于检测I2C总线忙碌状态;复位I2C控制器,与所述I2C总线有效连接,用于对所述I2C总线进行复位。通过在硬件上采用硬件I2C总线接口将所述的I2C主器件和I2C从器件连接,保证总线竞争仲裁,解决总线竞争问题。软件控制流程中添加复位I2C总线流程,一旦检测到I2C总线锁死,复位I2C控制器,重新激活I2C总线,,恢复SDA、SCL信号,即可退出锁死状态。有效解决了I2C局部总线在热插拔机制下的锁死问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的有关本发明的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述的自动恢复热插拔I2C总线锁死装置的结构框图;
图2为本发明所述的自动恢复热插拔I2C总线锁死系统的结构框图。
具体实施方式
 图1示出本发明所述的自动恢复热插拔I2C总线锁死装置的结构框图,包括一复位检测器10,用于检测I2C总线忙碌状态;所述复位检测器10与复位I2C控制器20相连,将检测到的I2C总线状态信号发送给复位I2C控制器20, I2C控制器20与所述I2C总线有效连接,根据复位检测器10检测到的I2C总线状态信号对所述I2C总线进行复位。
图2为本发明所述的自动恢复热插拔I2C总线锁死系统的结构框图,所述系统包括I2C主器件30和至少一个通过I2C总线与所述I2C主器件连接的I2C从器件40,还包括自动恢复热插拔I2C总线锁死的装置;所述I2C主器件30用于接收外界发送的复位信号,所述装置包括:复位检测器10,与I2C主器件30连接,用于检测I2C总线忙碌状态;复位I2C控制器20,与所述I2C总线有效连接,用于对所述I2C总线进行复位。图2所述的系统包括一个I2C主器件,用于控制I2C总线的调度工作,至少一个I2C从器件40,用于接收I2C主器件30发出的控制信号。
进一步的,本发明还公开了一种自动恢复热插拔I2C总线锁死的方法,复位检测器10检测所述I2C主器件30是否忙碌,若检测到忙碌,所述复位检测器输送恢复信号给复位I2C控制器对I2C总线进行复位。每10ms对I2C总线进行一次复位。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (7)

1.一种自动恢复热插拔I2C总线锁死的装置,其特征在于:
包括复位检测器,与I2C主器件连接,用于检测I2C总线忙碌状态;
复位I2C控制器,与所述I2C总线有效连接,用于对所述I2C总线进行复位。
2.根据权利要求1所述的装置,其特征在于:所述的I2C总线包括串行时钟线和双向串行数据线。
3.根据权利要求1所述的装置,其特征在于:所述复位I2C控制器的工作间隔时间为10ms。
4.一种防止I2C总线锁死的系统,其特征在于:包括I2C主器件和至少一个通过I2C总线与所述I2C主器件连接的I2C从器件,还包括自动恢复热插拔I2C总线锁死的装置;所述I2C主器件用于接收外界发送的复位信号,所述装置包括:
复位检测器,与I2C主器件连接,用于检测I2C总线忙碌状态;
复位I2C控制器,与所述I2C总线有效连接,用于对所述I2C总线进行复位。
5.根据权利要求4所述的一种防止I2C总线锁死的系统,其特征在于:所述系统包括一个I2C主器件,控制I2C总线的调度工作,至少一个I2C从器件,接收I2C主器件发出的控制信号。
6.一种自动恢复热插拔I2C总线锁死的方法,其特征在于:检测所述I2C主器件是否忙碌,若检测到忙碌,所述复位检测器输送恢复信号给复位I2C控制器对I2C总线进行复位。
7.根据权利要求7所述的一种自动恢复热插拔I2C总线锁死的方法,其特   征在于:每10ms对I2C总线进行一次复位。
CN201210494060.4A 2012-11-28 2012-11-28 自动恢复热插拔i2c总线锁死的方法、装置和系统 Pending CN103856381A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210494060.4A CN103856381A (zh) 2012-11-28 2012-11-28 自动恢复热插拔i2c总线锁死的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210494060.4A CN103856381A (zh) 2012-11-28 2012-11-28 自动恢复热插拔i2c总线锁死的方法、装置和系统

Publications (1)

Publication Number Publication Date
CN103856381A true CN103856381A (zh) 2014-06-11

Family

ID=50863620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210494060.4A Pending CN103856381A (zh) 2012-11-28 2012-11-28 自动恢复热插拔i2c总线锁死的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN103856381A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649180A (zh) * 2016-09-09 2017-05-10 锐捷网络股份有限公司 一种解除i2c总线死锁的方法及装置
CN108804259A (zh) * 2018-06-14 2018-11-13 北京旅居四方科技有限公司 水电桩以及对程序运行进行检测的方法和设备
CN111538626A (zh) * 2020-05-08 2020-08-14 成都迪谱光电科技有限公司 一种从i2c设备解挂死的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1912858A (zh) * 2005-08-08 2007-02-14 中兴通讯股份有限公司 避免i2c总线锁定的方法与装置
CN101154210A (zh) * 2006-09-26 2008-04-02 联想(北京)有限公司 防止lpc总线死锁的方法和装置
CN102073613A (zh) * 2010-12-15 2011-05-25 创新科存储技术有限公司 一种消除i2c总线死锁的装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1912858A (zh) * 2005-08-08 2007-02-14 中兴通讯股份有限公司 避免i2c总线锁定的方法与装置
CN101154210A (zh) * 2006-09-26 2008-04-02 联想(北京)有限公司 防止lpc总线死锁的方法和装置
CN102073613A (zh) * 2010-12-15 2011-05-25 创新科存储技术有限公司 一种消除i2c总线死锁的装置及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649180A (zh) * 2016-09-09 2017-05-10 锐捷网络股份有限公司 一种解除i2c总线死锁的方法及装置
CN106649180B (zh) * 2016-09-09 2019-08-20 锐捷网络股份有限公司 一种解除i2c总线死锁的方法及装置
CN108804259A (zh) * 2018-06-14 2018-11-13 北京旅居四方科技有限公司 水电桩以及对程序运行进行检测的方法和设备
CN111538626A (zh) * 2020-05-08 2020-08-14 成都迪谱光电科技有限公司 一种从i2c设备解挂死的方法
CN111538626B (zh) * 2020-05-08 2023-03-24 成都蓉博通信技术有限公司 一种从i2c设备解挂死的方法

Similar Documents

Publication Publication Date Title
CN110908841B (zh) 一种i2c通信异常恢复方法及装置
US20110208885A1 (en) Data bus control method and apparatus
US9940282B2 (en) Bus serialization for devices without multi-device support
US8990465B2 (en) Device presence detection using a single channel of a bus
EP3092574B1 (en) Multi-master bus
CN102073613A (zh) 一种消除i2c总线死锁的装置及方法
US9146797B2 (en) Method for ensuring remediation of hung multiplexer bus channels
CN106649180A (zh) 一种解除i2c总线死锁的方法及装置
EP2534496B1 (en) Determination of physical connectivity status of devices based on electrical measurement
US9645898B2 (en) Storage control device and control device for detecting abnormality of signal line
CN111061587A (zh) 一种i2c总线的通信控制方法、装置、设备及存储介质
CN110419035B (zh) Usb主机到主机自动切换
JP5987069B2 (ja) シリアル通信信号監視による内部レジスタ自己リセット機能を備えた数値制御システム
CN106776054A (zh) 一种死锁检测方法、装置和电路
CN106610712A (zh) 基板管理控制器复位系统及方法
CN103856381A (zh) 自动恢复热插拔i2c总线锁死的方法、装置和系统
CN113590527B (zh) 通信总线的挂死修复方法、装置、电子设备及存储介质
GB2492207A (en) Retrieving status information from a remote device and corresponding host system
US10942885B2 (en) Communicating apparatus, communication method, program, and communication system
CN112214343B (zh) 一种基于pca9511芯片的iic挂死的链路恢复电路及方法
EP3321814B1 (en) Method and apparatus for handling outstanding interconnect transactions
CN109074343A (zh) 通信设备、通信方法、程序、以及通信系统
CN102662902B (zh) 一种防止i2c总线锁定的方法、装置及系统
CN103207850A (zh) 外接设备,异质设备的传输系统与其方法扩展功能
CN112269678A (zh) 一种bbu iic总线恢复方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140611