总线死锁恢复系统和方法技术方案

技术编号:17007277 阅读:35 留言:0更新日期:2018-01-11 03:43
本发明专利技术涉及一种总线死锁恢复系统和方法。恢复系统包括I2C总线、主设备和从设备,主设备、从设备连接在I2C总线上,主设备包括:输入输出接口,输入输出接口接地或与I2C总线的时钟线连接;检测模块,用于检测I2C总线上传输的时钟信号的状态和数据信号的状态,并根据检测结果判断I2C总线是否处于死锁状态;控制模块,分别与输入输出接口和检测模块连接,当I2C总线处于死锁状态时,控制模块通过控制输入输出接口使时钟信号在预设时间段后变为低电平信号,使I2C总线从死锁状态恢复。上述系统能够在不增加任何复位信号线或缓冲器件的条件下,消除I2C总线的死锁,提高I2C总线的可靠性和稳定性。

【技术实现步骤摘要】
总线死锁恢复系统和方法
本专利技术涉及通信
,特别是涉及总线死锁恢复系统和方法。
技术介绍
I2C总线是一种广泛应用于嵌入式系统设备中,实现主控制器与外设之间通信的双线串行总线。I2C总线包括双向的数据线(SerialData,SDA)和时钟线(SerialClockLine,SCL)。每一连接到I2C总线上的I2C设备既可作为主设备,用以负责总线时钟、起始信号及相关初始化数据的产生,也可作为从设备,用以作为被寻址对象。I2C总线上连接有至少一个主设备和至少一个从设备。在实际通信时,主设备先发送一个开始信号,对I2C总线上的从设备进行寻址,从设备响应后可以进行相应的读写操作。读写数据长度以字节为单位,从设备每接收到一个字节,就发出一个应答信号(AK),当受到干扰,时钟信号保持为高电平,数据信号保持为低电电平时,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总线的可靠性和稳定性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1A为一个实施例中总线死锁恢复系统处于正常工作状态下的示意图;图1B为图1A中总线死锁恢复系统的I2C总线处于死锁状态下的示意图;图2为另一个实施例中总线死锁恢复系统的示意图;图3为再一个实施例中总线死锁恢复系统的示意图;图4为一个实施例中总线死锁恢复方法的流程示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1A所示,一种总线死锁恢复系统,包括I2C总线、主设备110和从设备120,主设备110、从设备120连接在I2C总线上。I2C总线包括数据线SDA和时钟线SCL,数据线SDA用于传输数据信号,时钟线SCL用于传输时钟信号。主设备110、从设备120分别包含两连接线,每一设备的两连接线中,与I2C总线中的数据线SDA连接的连接线称为数据连接线,与I2C总线中的时钟线SCL连接的连接线称为时钟连接线。其中,主设备110、从设备120可以为I2C总线上允许连接的微处理器以及各种外围设备,如存储器、LED及LCD驱动器、A/D及D/A转换器等。在一个实施例中,主设备110包括输入输出接口112、检测模块114和控制模块116。其中,输入输出接口112接地。检测模块114能够检测I2C总线上传输的时钟信号的状态和数据信号的状态,并根据检测结果判断I2C总线是否处于死锁状态。如图1B所示,控制模块116分别与输入输出接口112、检测模块114连接,当I2C总线处于死锁状态时,控制模块116通过控制输入输出接口使时钟信号在预设时间段后变为低电平信号,使I2C总线从死锁状态恢复。也即,当I2C总线处于死锁状态时,控制模块116通过断开输入输出接口与地的连接,使I2C总线的时钟线与地连接,使时钟信号在预设时间段后变为低电平信号,数据信号变就会由低电平信号变为高电平信号,使I2C总线从死锁状态恢复。该系统能够在降低成本的同时,消除I2C总线的死锁,提高I2C总线的可靠性和稳定性。在一个实施例中,控制模块116使时钟信号在预设时间段后变为低电平信号,数据信号就会由低电平信号变为高电平信号,使I2C总线从死锁状态恢复。其中,预设时间段为时钟周期的9倍及以上。对于传输速率为100k时,一个时钟周期典型值为10us,高低电平各自保持的时间在5us,也即,可以将时钟信号置低90微秒及以上,就能保证数据信号由低电平信号变为高电平信号,使I2C总线从死锁状态恢复。具体地,预设时间段可以设置为100毫秒。在一个实施例中,时钟信号的状态包括低电平状态和高电平状态,数据信号的状态包括低电平状态和高电平状态。检测模块的检测结果会呈现多种结果,当检测结果为时钟信号为高电平状态的持续时间大于第一预设值,且数据信号为低电平状态的持续时长大于第二预设值时,检测模块114判定I2C总线处于死锁状态。第一预设值、第二预设值可以相等,也可以不等,其第一预设值、第二预设值均大于时钟周期的9倍及以上。当然,第一预设值、第二预设值也可以根据实际需求来设定,在此不做限定。可选的,检测模块114还可以通过检测是否收到从设备120反馈的应答信号判断I2C总线是否处于死锁状态。I2C总线的数据传输可分为四个阶段,包括:开始、数据读写、应答和停止。在实际通信时,主设备110先发送一个开始信号(start),对I2C总线上的从设备120进行寻址,从设备120响应后可以进行相应的读写操作。读写数据长度以字节为单位,从设备120每接收到一个字节,就发出一个应答信号(AK),表示当前传输状态是否正常,一次操作对数据长度没有限制,传输完成后,主设备110向总线发送停止信号(stop)释放总线。当检测模块114未检测到从设备120反馈的应答信号时,则说明I2C总线处于死锁状态,控制模块116通过控制输入输出接口112使时钟信号在预设时间段后变为低电平信号,使I2C总线从死锁状态恢复。如图2所示,在一个实施例中,总线死锁恢复系统还包括开关单元118,开关单元包括控制端、第一连接端和第二连接端。其中,控制端与输入输出接口112连接,第一连接端与I本文档来自技高网...
总线死锁恢复系统和方法

【技术保护点】
一种总线死锁恢复系统,包括I2C总线、主设备和从设备,所述主设备、从设备连接在所述I2C总线上,其特征在于,所述主设备包括:输入输出接口,所述输入输出接口接地或与所述I2C总线的时钟线连接;检测模块,用于检测所述I2C总线上传输的时钟信号的状态和数据信号的状态,并根据检测结果判断所述I2C总线是否处于死锁状态;控制模块,分别与所述输入输出接口和所述检测模块连接,当所述I2C总线处于死锁状态时,所述控制模块通过控制所述输入输出接口使所述时钟信号在预设时间段后变为低电平信号,使所述I2C总线从死锁状态恢复。

【技术特征摘要】
1.一种总线死锁恢复系统,包括I2C总线、主设备和从设备,所述主设备、从设备连接在所述I2C总线上,其特征在于,所述主设备包括:输入输出接口,所述输入输出接口接地或与所述I2C总线的时钟线连接;检测模块,用于检测所述I2C总线上传输的时钟信号的状态和数据信号的状态,并根据检测结果判断所述I2C总线是否处于死锁状态;控制模块,分别与所述输入输出接口和所述检测模块连接,当所述I2C总线处于死锁状态时,所述控制模块通过控制所述输入输出接口使所述时钟信号在预设时间段后变为低电平信号,使所述I2C总线从死锁状态恢复。2.根据权利要求1所述的总线死锁恢复系统,其特征在于,所述时钟信号的状态包括低电平状态和高电平状态,所述数据信号的状态包括低电平状态和高电平状态;当所述检测模块检测到所述时钟信号为高电平状态的持续时间大于第一预设值,且所述数据信号为低电平状态的持续时长大于第二预设值时,所述检测模块断定所述I2C总线处于死锁状态。3.根据权利要求1所述的总线死锁恢复系统,其特征在于,所述系统还包括开关单元,所述开关单元包括控制端、第一连接端和第二连接端,所述控制端与所述输入输出接口连接,所述第一连接端与所述I2C总线的时钟线连接,所述第二连接端接地;所述I2C总线处于死锁状态时,所述主设备通过所述输入输出接口控制所述开关单元导通所述第一连接端和所述第二连接端,将所述时钟信号置低变为低电平信号。4.根据权利要求1所述的总线死锁恢复系统,其特征在于,所述输入输出接口为开漏结构或开集结构,所述输入输出接口与所述时钟线连接;所述I2C总线处于死锁状态时,所述主设备控制所述输入输出接口输出低电平信号,将所述时钟信号置低变为低电平信号。5.根据权利要求1所述的总线死锁恢复系统,其特征在于,所述预设时间段为时钟周期的9倍及以上。6.一种总线死锁恢复方法,其特征...

【专利技术属性】
技术研发人员:刘绍斌
申请(专利权)人:广东欧珀移动通信有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1