[发明专利]一种I2C通讯控制的方法、装置、设备及可读介质在审
申请号: | 202211116664.5 | 申请日: | 2022-09-14 |
公开(公告)号: | CN115470168A | 公开(公告)日: | 2022-12-13 |
发明(设计)人: | 孙慧宁;马晓光;张久明 | 申请(专利权)人: | 西安超越申泰信息科技有限公司 |
主分类号: | G06F13/42 | 分类号: | G06F13/42 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 宋薇薇;李红萧 |
地址: | 710000 陕西省西安市国家民用*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 i2c 通讯 控制 方法 装置 设备 可读 介质 | ||
本发明提供了一种I2C通讯控制的方法、装置、设备及可读介质,方法包括:将负责服务器板级通讯的单片机全部挂载在I2C总线上,并选择一个单片机作为管理单片机;将管理单片机通过GPIO分别连接到其他单片机,并将管理单片机连接到I2C总线电源;响应于所述其他单片机检测到死锁,所述其他单片机进行初始化I2C总线;响应于管理单片机检测到死锁,管理单片机分别向其他单片机发送GPIO信号,其他单片机接收到GPIO信号后进行初始化I2C总线。通过使用本发明的方案,能够提升I2C通讯的稳定性,能够实现I2C通讯的自行检测和修复。
技术领域
本发明涉及计算机领域,并且更具体地涉及一种I2C通讯控制的方法、装置、设备及可读介质。
背景技术
嵌入式基础软件设计开发中,许多功能依赖于串行通讯,例:I2C、RS485、RS422等,在使用BMC(Baseboard Management Controller,基板管理控制器)的国产服务器中,往往选择I2C作为主要通讯机制。由于I2C通讯机制的问题,在通讯过程中,很容易发生数据线或时钟线被拉低,总线无法正常进行通讯。目前I2C通讯的相关故障主要依赖于软件对于死锁的检测和处理,当通讯一方发送完成后,长时间未收到另一方的回复,则认为产生通讯死锁,清除通讯所有标志位,强制重新初始化I2C。其他问题引起的通讯故障,单靠软件无法正常解除。
发明内容
有鉴于此,本发明实施例的目的在于提出一种I2C通讯控制的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够提升I2C通讯的稳定性,能够实现I2C通讯的自行检测和修复。
基于上述目的,本发明的实施例的一个方面提供了一种I2C通讯控制的方法,包括以下步骤:
将负责服务器板级通讯的单片机全部挂载在I2C总线上,并选择一个单片机作为管理单片机;
将管理单片机通过GPIO分别连接到其他单片机,并将管理单片机连接到I2C总线电源;
响应于所述其他单片机检测到死锁,所述其他单片机进行初始化I2C总线;
响应于管理单片机检测到死锁,管理单片机分别向其他单片机发送GPIO信号,其他单片机接收到GPIO信号后进行初始化I2C总线。
根据本发明的一个实施例,还包括:
响应于管理单片机未检测到死锁且I2C总线通讯异常,管理单片机分别向其他单片机发送GPIO信号;
响应于其他单片机接收到GPIO信号,其他单片机进行初始化I2C总线。
根据本发明的一个实施例,还包括:
响应于其他单片机初始化I2C总线,判断I2C总线是否恢复通讯;
响应于I2C总线未恢复通讯,所述其他单片机再次进行初始化I2C总线,并将单片机初始化次数加1。
根据本发明的一个实施例,还包括:
响应于所述其他单片机初始化次数达到阈值且I2C总线通讯异常,管理单片机控制I2C总线电源进行重新上电。
本发明的实施例的另一个方面,还提供了一种I2C通讯控制的装置,装置包括:
选择模块,选择模块配置为将负责服务器板级通讯的单片机全部挂载在I2C总线上,并选择一个单片机作为管理单片机;
连接模块,连接模块配置为将管理单片机通过GPIO分别连接到其他单片机,并将管理单片机连接到I2C总线电源;
初始化模块,初始化模块配置为响应于所述其他单片机检测到死锁,所述其他单片机进行初始化I2C总线;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安超越申泰信息科技有限公司,未经西安超越申泰信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211116664.5/2.html,转载请声明来源钻瓜专利网。