首页 > 专利 > 上海斐讯数据通信技术有限公司 > 一种背板I2C总线死锁的消除方法、系统及电子设备专利详情

一种背板I2C总线死锁的消除方法、系统及电子设备   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2015-10-30
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2016-03-16
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2019-07-16
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2035-10-30
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201510729056.5 申请日 2015-10-30
公开/公告号 CN105335328B 公开/公告日 2019-07-16
授权日 2019-07-16 预估到期日 2035-10-30
申请年 2015年 公开/公告年 2019年
缴费截止日 2022-11-30
分类号 G06F13/42G06F13/40 主分类号 G06F13/42
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 0
引用专利数量 3 被引证专利数量 0
非专利引证
引用专利 CN102073613A、CN101251831A、US6438634B1 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、授权、权利转移
申请人信息
申请人 第一申请人
专利权人 上海斐讯数据通信技术有限公司 当前专利权人 湖州帷幄知识产权运营有限公司
发明人 王亦鸾 第一发明人 王亦鸾
地址 上海市松江区思贤路3666号 邮编 201616
申请人数量 1 发明人数量 1
申请人所在省 上海市 申请人所在市 上海市松江区
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州千克知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
周希良
摘要
本发明提供一种背板I2C总线死锁的消除方法,包括以下步骤:接收主备板的切换命令;根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板;若否,则发送抢占信号,根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板,若否,则返回发送包含有低电平数据位的抢占信号以继续监测所述I2C总线。本发明从根源上消除主备切换时的背板I2C总线死锁的条件,现有的技术是发生死锁后再采取补救措施,且不会导致其它板卡功能和业务的暂时中断。
  • 摘要附图
    一种背板I2C总线死锁的消除方法、系统及电子设备
  • 说明书附图:图1
    一种背板I2C总线死锁的消除方法、系统及电子设备
  • 说明书附图:图2
    一种背板I2C总线死锁的消除方法、系统及电子设备
  • 说明书附图:图3
    一种背板I2C总线死锁的消除方法、系统及电子设备
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-03-23 专利权的转移 登记生效日: 2021.03.11 专利权人由蚌埠立超信息科技有限公司变更为湖州帷幄知识产权运营有限公司 地址由233000 安徽省蚌埠市燕山路8319号(上理工科技园6号302室)变更为313000 浙江省湖州市吴兴区爱山街道新天地商务写字楼1019室
2 2019-07-16 授权
3 2016-03-16 实质审查的生效 IPC(主分类): G06F 13/42 专利申请号: 201510729056.5 申请日: 2015.10.30
4 2016-02-17 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种背板I2C总线死锁的消除方法,其特征在于,所述背板I2C总线死锁的消除方法包括以下步骤:
接收主备板的切换命令;
根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板;若否,则执行下一步骤;
发送抢占信号;
根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板,若否,则返回发送包含有低电平数据位的抢占信号以继续监测所述I2C总线;
在发送包含有低电平数据位的抢占信号的步骤之后,所述背板I2C总线死锁的消除方法还包括:
将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较以判断两信号是否一致,若是,则所述I2C器件继续占用I2C总线,不执行切换命令;若否,则所述I2C器件释放所占用的I2C总线,执行切换命令。

2.根据权利要求1所述的背板I2C总线死锁的消除方法,其特征在于:所述抢占信号中包含低电平数据信号。

3.根据权利要求1所述的背板I2C总线死锁的消除方法,其特征在于:将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较是指判断通过I2C总线连接在背板上的I2C器件输出的数据信号是否为低电平数据信号。

4.根据权利要求1所述的背板I2C总线死锁的消除方法,其特征在于:所述背板I2C总线死锁的消除方法还包括:发送主备板的切换命令。

5.一种背板I2C总线死锁的消除系统,其特征在于,所述背板I2C总线死锁的消除系统包括:
控制模块,用于接收主备板的切换命令;
第一监测模块,与所述控制模块连接,用于根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则调用所述控制模块以执行切换命令,将主板转换成备板,将备板转换成主板的执行模块;若否,则调用发送抢占信号的信号发送模块;
第二监测模块,与所述第一监测模块和信号发送模块连接,用于根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则调用所述控制模块以执行切换命令,将主板转换成备板,将备板转换成主板,若否,则调用所述发送模块继续发送包含有低电平数据位的抢占信号以继续监测所述I2C总线;
所述背板I2C总线死锁的消除系统还包括与所述第二监测模块连接的比较模块,所述比较模块用于将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较以判断两信号是否一致;若是,则不执行切换命令,继续调用所述信号发送模块发送包含有低电平数据位的抢占信号以继续监测所述I2C总线;若否,则调用所述控制模块以执行切换命令,将主板转换成备板,将备板转换成主板。

6.根据权利要求5所述的背板I2C总线死锁的消除系统,其特征在于:所述比较模块将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较是指所述比较模块判断通过I2C总线连接在背板上的I2C器件输出的数据信号是否为低电平数据信号。

7.根据权利要求5所述的背板I2C总线死锁的消除系统,其特征在于:所述背板I2C总线死锁的消除系统还包括用于发送主备板的切换命令的中央处理模块。

8.一种电子设备,其特征在于,所述电子设备包括:
背板,所述背板包括主板和备板;
其中,所述主板和备板都包括:
中央处理器,用于发送主备板的切换命令;
可编程逻辑器件,与所述中央处理器通过I2C总线连接,用于接收主备板的切换命令,根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板;若否,则发送抢占信号;
驱动器,与所述中央处理器和可编程逻辑器件通过I2C总线连接,用于根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则通过所述可编程逻辑器件执行切换命令,将主板转换成备板,将备板转换成主板,若否,则令所述可编程逻辑器件发送包含有低电平数据位的抢占信号以继续监测所述I2C总线;所述电子设备还包括板卡,所述板卡上插有I2C器件,所述I2C器件用于将所述抢占信号与自身输出的数据信号进行比较以判断两信号是否一致;若是,则可编程逻辑器件不执行切换命令,可编程逻辑器件继续发送包含有低电平数据位的抢占信号以继续监测所述I2C总线;若否,则可编程逻辑器件执行切换命令,将主板转换成备板,将备板转换成主板。
说明书

技术领域

[0001] 本发明属于电子技术领域,涉及一种死锁的消除方法及系统,特别是涉及一种背板I2C总线死锁的消除方法、系统及电子设备。

背景技术

[0002] 在带有主备双主控板系统中,有些板卡上面有一些I2C器件,比如温度传感器件,风扇转速控制器件等,板卡上没有CPU管理这些I2C器件,主控板的CPU通过背板管理这些板卡上的I2C器件。主控板和这些板卡的I2C接口要支持热插拔功能。在主备切换时,背板I2C总线的控制权会由原来的主用主控板切换到新的主用主控板上,在某种特定的条件下,主控板上的CPU无法通过背板访问其它板卡的I2C总线,出现背板I2C总线出现死锁的问题。
[0003] 现有背板出现死锁的解决方案为:
[0004] 系统主备切换时,背板I2C总线死锁发生在某种特定的条件下,概率比较低,当CPU无法通过背板访问其它板卡的I2C器件时,CPU会通过背板的硬件复位连线,复位其它板卡,来恢复I2C总线的正常通信。
[0005] 而现有技术在I2C总线死锁后,需要主控板复位其它板卡,会导致板卡的功能和业务暂时中断。
[0006] 因此,如何提供一种背板I2C总线死锁的消除方法、系统及电子设备,以解决现有技术中在I2C总线死锁后,需要主控板复位其它板卡,会导致板卡的功能和业务暂时中断等缺陷,实已成为本领域从业者亟待解决的技术问题。。

发明内容

[0007] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种背板I2C总线死锁的消除方法、系统及电子设备,用于解决现有技术中I2C总线死锁后,需要主控板复位其它板卡,会导致板卡的功能和业务暂时中断的问题。
[0008] 为实现上述目的及其他相关目的,本发明一方面提供一种背板I2C总线死锁的消除方法,所述背板I2C总线死锁的消除方法包括以下步骤:接收主备板的切换命令;根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板;若否,则执行下一步骤;发送抢占信号;根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板,若否,则返回发送包含有低电平数据位的抢占信号以继续监测所述I2C总线。
[0009] 于本发明的一实施例中,所述抢占信号中包含低电平数据信号。
[0010] 于本发明的一实施例中,在发送包含有低电平数据位的抢占信号的步骤之后,所述背板I2C总线死锁的消除方法还包括:将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较以判断两信号是否一致,若是,则所述I2C器件继续占用I2C总线,不执行切换命令;若否,则所述I2C器件释放所占用的I2C总线,执行切换命令。
[0011] 于本发明的一实施例中,将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较是指判断通过I2C总线连接在背板上的I2C器件输出的数据信号是否为低电平数据信号。
[0012] 于本发明的一实施例中,所述背板I2C总线死锁的消除方法还包括:发送主备板的切换命令。
[0013] 本发明另一方面还提供一种背板I2C总线死锁的消除系统,所述背板I2C总线死锁的消除系统包括:控制模块,用于接收主备板的切换命令;第一监测模块,与所述控制模块连接,用于根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则调用所述控制模块以执行切换命令,将主板转换成备板,将备板转换成主板的执行模块;若否,则调用发送抢占信号的信号发送模块;第二监测模块,与所述第一监测模块和信号发送模块连接,用于根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则调用所述控制模块以执行切换命令,将主板转换成备板,将备板转换成主板,若否,则调用所述发送模块继续发送包含有低电平数据位的抢占信号以继续监测所述I2C总线。
[0014] 于本发明的一实施例中,所述背板I2C总线死锁的消除系统还包括与所述第二监测模块连接的比较模块,所述比较模块用于将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较以判断两信号是否一致。
[0015] 于本发明的一实施例中,所述比较模块将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较是指所述比较模块判断通过I2C总线连接在背板上的I2C器件输出的数据信号是否为低电平数据信号。
[0016] 于本发明的一实施例中,所述背板I2C总线死锁的消除系统还包括用于发送主备板的切换命令的中央处理模块。
[0017] 本发明又一方面还提供一种电子设备,所述电子设备包括:背板,所述背板包括主板和备板;其中,所述主板和备板都包括:中央处理器,用于发送主备板的切换命令;可编程逻辑器件,与所述中央处理器通过I2C总线连接,用于接收主备板的切换命令,根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板;若否,则发送抢占信号。驱动器,与所述中央处理器和可编程逻辑器件通过I2C总线连接,用于根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则通过所述可编程逻辑器件执行切换命令,将主板转换成备板,将备板转换成主板,若否,则令所述可编程逻辑器件发送包含有低电平数据位的抢占信号以继续监测所述I2C总线。
[0018] 于本发明的一实施例中,所述电子设备还包括板卡,所述板卡上插有I2C器件,所述I2C器件用于将所述抢占信号与自身输出的数据信号进行比较以判断两信号是否一致。
[0019] 如上所述,本发明的背板I2C总线死锁的消除方法、系统及电子设备,具有以下有益效果:
[0020] 第一,从根源上消除主备切换时的背板I2C总线死锁的条件,现有的技术是发生死锁后再采取补救措施。
[0021] 第二,不会导致其它板卡功能和业务的暂时中断,对整个系统没有任何不良影响。

实施方案

[0043] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0044] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0045] 本发明所述的背板I2C总线死锁的消除方法、系统及电子设备的发明原理如下:
[0046] 将CPLD接入主控板的I2C总线中,在CPLD接收到来自CPU的主备切换命令后,先监测I2C总线状态,如果I2C总线是空闲状态,CPLD就执行CPU的主备切换指令,否则,CPLD发出抢主操作,迫使正在使用I2C总线的器件,退出操作,释放总线,CPLD在消除了背板I2C总线死锁条件后,才执行主备切换。
[0047] 实施例一
[0048] 本实施例提供一种背板I2C总线死锁的消除方法,其特征在于,所述背板I2C总线死锁的消除方法包括以下步骤:
[0049] 接收主备板的切换命令;
[0050] 根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板;若否,则执行下一步骤;
[0051] 发送抢占信号;
[0052] 根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板,若否,则返回发送包含有低电平数据位的抢占信号以继续监测所述I2C总线。
[0053] 以下将结合图示对本实施例提供的背板I2C总线死锁的消除方法进行详细阐述。本实施例提供一种所述的背板I2C总线死锁的消除方法,所述背板上通过IC2总线连接有其他板卡,其他板卡上插入有I2C器件,所述I2C器件包括温度传感器件,风扇转速控制器件,电源管理器,时钟质量监控器等等。请参阅图1,显示为背板I2C总线死锁的消除方法于一实施例中的流程示意图。如图1所示,所述背板I2C总线死锁的消除方法具体包括以下几个步骤:
[0054] S1,根据需求发送主备板的切换命令。所述主备板的切换命令就是根据需求将主板转换成备板,将备板转换成主板。所述主板也可称为主用主控板,所述备板也可称为备用主控板。
[0055] S2,接收主备板的切换命令。
[0056] S3,根据所述切换命令监测所述I2C总线是否处于空闲状态,若是,则执行步骤S4;若否,则执行步骤S5。在本步骤中,所述I2C总线是否处于空闲状态的判断标准是根据I2C总线中SDA和SCL信号都为高时,即I2C总线处于空闲状态。
[0057] S4,执行切换命令,将主板转换成备板,将备板转换成主板。
[0058] S5,发送抢占信号。所述抢占信号包括多个低电平数据信号。
[0059] S6,根据所述抢占信号继续监测所述I2C总线。
[0060] S7,将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较以判断两信号是否一致,若是,则表示所述I2C器件可继续占用I2C总线,不执行切换命令,返回步骤S5,即继续发送包含有低电平数据位的抢占信号以继续监测所述I2C总线;若否,则表示所述I2C器件可释放所占用的I2C总线,执行步骤S4,即执行切换命令,将主板转换成备板,将备板转换成主板。在本实施例中,一旦监测到I2C总线处于空闲状态,就开始执行硬件信号主备切换。
[0061] 实施例二
[0062] 本实施例提供一种背板I2C总线死锁的消除系统,所述背板I2C总线死锁的消除系统包括:
[0063] 控制模块,用于接收主备板的切换命令;
[0064] 第一监测模块,与所述控制模块连接,用于根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则调用用于执行切换命令,将主板转换成备板,将备板转换成主板的执行模块;若否,则调用发送抢占信号的信号发送模块;
[0065] 第二监测模块,与所述第一监测模块和信号发送模块连接,用于根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则调用所述执行模块执行切换命令,将主板转换成备板,将备板转换成主板,若否,则调用所述发送模块继续发送包含有低电平数据位的抢占信号以继续监测所述I2C总线。
[0066] 以下将结合图示对本实施例提供的背板I2C总线死锁的消除系统进行详细阐述。本实施例提供一种所述的背板I2C总线死锁的消除系统10,请参阅图2,显示为背板I2C总线死锁的消除系统于一实施例中的原理结构示意图。如图2所示,所述背板I2C总线死锁的消除系统10包括:中央处理模块101、控制模块102、第一监测模块103、信号发送模块104、第二监测模块105、及比较模块106。
[0067] 所述中央处理模块101用于根据需求发送主备板的切换命令。所述主备板的切换命令就是根据需求将主板转换成备板,将备板转换成主板。所述主板也可称为主用主控板,所述备板也可称为备用主控板。
[0068] 与所述中央处理模块101连接的控制模块102用于接收主备板的切换命令。
[0069] 与所述控制模块102连接的第一监测模块103用于根据所述切换命令监测所述I2C总线是否处于空闲状态,若是,则调用所述控制模块102以执行切换命令,将主板转换成备板,将备板转换成主板;若否,则调用用于发送抢占信号的信号发送模块104。所述抢占信号包括多个低电平数据信号。在本步骤中,所述I2C总线是否处于空闲状态的判断标准是根据I2C总线中SDA和SCL信号都为高时,即I2C总线处于空闲状态。
[0070] 与所述第一监测模块103和信号发送模块104连接的第二监测模块105用于根据所述抢占信号继续监测所述I2C总线。
[0071] 与所述第二监测模块105连接的比较模块106用于将所述抢占信号与通过I2C总线连接在背板上的I2C器件输出的数据信号进行比较以判断抢占信号和所述输出的数据信号是否一致,若是,则表示所述I2C器件可继续占用I2C总线,不执行切换命令,继续调用所述信号发送模块104发送包含有低电平数据位的抢占信号以继续监测所述I2C总线;若否,则表示所述I2C器件可释放所占用的I2C总线,则调用所述控制模块102以执行切换命令,将主板转换成备板,将备板转换成主板。在本实施例中,一旦监测到I2C总线处于空闲状态,就开始执行硬件信号主备切换。
[0072] 本实施例还提供一种电子设备1,请参阅图3,显示为电子设备于一实施例中的电路结构示意图。如图3所示,所述电子设备1包括:背板11和通过I2C总线与所述背板11连接的板卡12,所述板卡12上插入有I2C器件121,所述I2C器件121包括温度传感器件,风扇转速控制器件,电源管理器,时钟质量监控器等等。如图3中所示,本实施例中所述背板11包括主板111和备板112,但是备板112的数量不限于1个。所述主板也可称为主用主控板,所述备板也可称为备用主控板。
[0073] 所述主板111和所述备板112内部的配置是一样的。如图3所示,所述主板111和备板112都包括:中央处理器201、可编程逻辑器件202、及驱动器203。
[0074] 其中,所述中央处理器(CPU)201用于发送主备板的切换命令。在本实施例中,所述中央处理器201还用于管理I2C器件121。主控板和板卡上的I2C接口都要支持热拔插功能。
[0075] 与所述中央处理器201通过I2C总线连接的所述可编程逻辑器件202用于接收主备板的切换命令,根据所述切换命令监测所述I2C总线是否处于空闲状态;若是,则执行切换命令,将主板转换成备板,将备板转换成主板;若否,则发送抢占信号。所述抢占信号包括多个低电平数据信号。在本实施例中,为了实现主备板切换前后,背板的I2C总线总是能够和主用主控板的中央处理器通信,在所述可编程逻辑器件202设置有I2C接口。
[0076] 与所述中央处理器201和可编程逻辑器件202通过I2C总线连接的驱动器203用于根据所述抢占信号继续监测所述I2C总线是否处于空闲状态;若是,则通过所述可编程逻辑器件执行切换命令,将主板转换成备板,将备板转换成主板,若否,则令所述可编程逻辑器件发送包含有低电平数据位的抢占信号以继续监测所述I2C总线。在本实施例中,所述驱动器203选取型号为PCA9511的芯片。
[0077] 通过I2C总线连接在背板的主板111和备板112上的I2C器件,所述I2C器件用于将所述抢占信号与自身输出的数据信号进行比较以判断两信号是否一致。若是,则表示所述I2C器件121可继续占用I2C总线,可编程逻辑器件202不执行切换命令,可编程逻辑器件202继续发送包含有低电平数据位的抢占信号以继续监测所述I2C总线;若否,则表示所述I2C器件可释放所占用的I2C总线,则可编程逻辑器件202执行切换命令,将主板转换成备板,将备板转换成主板。在本实施例中,可编程逻辑器件202一旦监测到I2C总线处于空闲状态,就开始执行硬件信号主备切换。
[0078] 以下是所述电子设备1在工作状态下为了使背板的I2C总线不出现死锁现象的具体工作过程:
[0079] 可编程逻辑器件202收到中央处理器201的主备板的切换命令后,首先监测I2C总线,如果I2C总线上的SDA和SCL信号线在2个I2C时钟周期内都为常高,则判定I2C总线是空闲状态,这时可以执行主备板的切换,不会导致系统I2C总线出现死锁问题。如果这时检测到I2C总线是非空闲状态,可编程逻辑器件202开始执行I2C总线的抢主操作,可编程逻辑器件202向I2C总线发抢占信号,抢占信号的数据内容包含多个低电平数据位,这时,就有两个数据源头在向数据线发送数据,一个是可编程逻辑器件202发出的数据DATA1,另一个是正在占用I2C总线的I2C器件121发出的DATA2,因为I2C总线的特性,I2C的数据线上的数据信号是DATA1和DATA2相与的结果,根据I2C协议,I2C器件121在每次发出一个数据位的同时都要对自己输出端的信号电平进行抽检,只要抽检的结果与它们预期的电平相符,就会继续占用总线,如果不相符,检测到了冲突,就会退出I2C总线的占用,释放总线。I2C总线冲突检测实际上遵循的是低电平优先的仲裁原则,可编程逻辑器件202利用I2C总线的这一特性,发送带有低电平的数据位到总线上,会强迫其它正在使用I2C总线的设备退出I2C总线的占用,使总线在较短的时间达到空闲状态。一旦可编程逻辑器件202监测到I2C总线处于空闲状态,可编程逻辑器件202开始做硬件信号主备切换,这时切换,新的主控板上的PCA9511的内部控制检测电路检测到两侧的I2C总线是空闲状态,会将两侧的I2C总线接通,整个系统I2C总线正常工作,不会出现死锁的现象。
[0080] 在此工作过程中,PCA9511是热插拔I2C总线驱动器,允许其他板卡上插入工作的背板中而不影响I2C总线的数据和时钟信号。PCA9511内部有一个初始化电路,当完成上电后,ENABLE管脚为由低变高,电路进入初始化状态,完成管脚的预充电功能,预充电的功能将插入的单板对I2C总线的影响降低到最小。在初始化结束后,PCA9511的内部控制检测电路开始工作,当检测到所有的SDA和SCL信号都为高时,即监测到所述I2C总线处于空闲状态,才允许驱动器两端开启连接,即图3中SDAIN和SDAOUT相连通,SCLIN和SCLOUT相连通,以保证在板卡中插入I2C器件时,不影响系统中正在进行的I2C总线操作。
[0081] 主用主控板的中央处理器201将主备板的切换命令下达到可编程逻辑器件202后,CPLD实现硬件信号的切换,将主板切换成备板,可编程逻辑器件202的ACTIVE信号由高变低,关断主板上的PCA9511,断开和其它板卡I2C总线的通信。同时备板切换成主板,成为主板的备板上的ACTIVE信号由低变高,将其上的PCA9511的使能管脚ENABLE拉高,通过背板和其它板卡的I2C总线通信。这样就实现了主备用主控板切换前后,背板的I2C总线总是能够和主用主控板的中央处理器201通信。
[0082] 综上所述,本发明所述的背板I2C总线死锁的消除方法、系统及电子设备具有以下几个优点:
[0083] 第一,从根源上消除主备切换时的背板I2C总线死锁的条件,现有的技术是发生死锁后再采取补救措施。
[0084] 第二,不会导致其它板卡功能和业务的暂时中断,对整个系统没有任何不良影响。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0085] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

附图说明

[0022] 图1显示为本发明背板I2C总线死锁的消除方法于一实施例中的流程示意图。
[0023] 图2显示为本发明背板I2C总线死锁的消除系统于一实施例中的原理结构示意图。
[0024] 图3显示为本发明电子设备于一实施例中的电路结构示意图。
[0025] 元件标号说明
[0026] 1       电子设备
[0027] 10      背板I2C总线死锁的消除系统
[0028] 101     中央处理模块
[0029] 102     控制模块
[0030] 103     第一监测模块
[0031] 104     信号发送模块
[0032] 105     第二监测模块
[0033] 106     比较模块
[0034] 11      背板
[0035] 12      板卡
[0036] 111     主板
[0037] 112     备板
[0038] 201     中央处理器
[0039] 202     可编程逻辑器件
[0040] 203     驱动器
[0041] 121     I2C器件
[0042] S1~S7  步骤
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号