本申请涉及通信,尤其涉及一种i2c总线的通信控制方法、装置、设备及存储介质。
背景技术:
1、i2c总线是由串行数据线(serial data,sda)和串行时钟线(serial clock line,scl)构成的串行总线,可以发送和接收数据。在电子系统中,不同器件通过i2c信号线连接于i2c总线来传送信息,对于并联在一条总线上的每个ic都有唯一的地址。
2、如图1所示,i2c总线上的所有器件的sda信号线并接在一起接入i2c总线的sda信号线,所有器件的scl信号线并接在一起接入i2c总线的scl信号线,sda信号线和scl信号线分别通过上拉电阻r1、r2连接到正电源vdd。i2c总线中任何能够进行发送和接收数据的设备都可以成为i2c主设备(master),其余设备称为i2c从设备(slave 1、slave 2……)。在任何时间点上,只允许一个i2c主设备存在。
3、当i2c总线上连接有多个设备应用时,多个设备在进行通信时,虽然有总线仲裁机制,但是当其中一个设备硬件出现不稳定状态时,可能会产生异常的电平信号,从而导致i2c总线电平异常,若此时主设备正在和从设备通信,那么该异常电平会导致数据出错,使得通信超时,甚至总线卡死,造成该功能模块无法正常使用。
技术实现思路
1、本申请提供一种i2c总线的通信控制方法、装置、设备及存储介质,该通信控制方法可以将挂载在i2c总线上设备出现不稳定状态的时间与正常的通信时间避开,避免i2c总线卡死。
2、为达到上述目的,本申请的实施例采用如下技术方案:
3、第一方面,提供一种i2c总线的通信控制方法,接入i2c总线的设备具有非稳定状态,该方法包括:
4、在第一时刻,控制i2c总线处于非空闲状态,第一时刻为设备进入非稳定状态的时刻,或者第一时刻早于设备进入非稳定状态的时刻。
5、在第二时刻,控制i2c总线处于空闲状态,第二时刻为设备结束非稳定状态的时刻,或者第二时刻晚于设备结束非稳定状态的时刻。
6、在此基础上,通过控制i2c总线进入非空闲状态的时刻早于或者等于设备进入非稳定状态的时刻,控制i2c总线处于空闲状态(也即控制i2c总线结束非空闲状态)的时刻晚于或者等于设备结束非稳定状态的时刻,使得在设备处于非稳定状态期间,i2c总线始终处于非空闲状态,将设备出现不稳定状态的时间与正常的通信时间避开,避免了i2c总线被卡死。
7、在第一方面的一种可能的设计方式中,在控制i2c总线处于非空闲状态之前,还包括:
8、获取设备的非稳定状态信息,非稳定状态信息包括设备进入非稳定状态的时刻,以及设备处于非稳定状态的第一时长。
9、在此基础上,通过获取设备的非稳定状态信息,可以获知设备进入非稳定状态的时刻。以便控制i2c总线进入非空闲状态的时刻。通过获取设备处于非稳定状态的第一时长,可以根据设备进入非稳定状态的时刻以及设备处于非稳定状态的第一时长,得到设备结束非稳定状态的时刻,以便控制i2c总线结束非空闲状态(也即进入空闲状态)的时刻。在实际应用中,也可以通过获知设备进入和结束非稳定状态的时刻,根据设备进入和结束非稳定状态的时刻得出设备处于非稳定状态的第一时长。
10、在第一方面的一种可能的设计方式中,非稳定状态包括:设备的上电状态、下电状态和复位状态。
11、在第一方面的一种可能的设计方式中,还包括:通过设置i2c总线的状态标志,指示i2c总线处于空闲状态或者非空闲状态。该设计方式示出了一种控制i2c总线处于空闲状态或者非空闲状态的具体方式。
12、在第一方面的一种可能的设计方式中,包括:将状态标志设置为“0”,指示i2c总线处于空闲状态,将状态标志设置为“1”,指示i2c总线处于非空闲状态。或者,将状态标志设置为“1”,指示i2c总线处于空闲状态,将状态标志设置为“0”,指示i2c总线处于非空闲状态。
13、第二方面,提供一种i2c总线的通信控制装置,其中,接入i2c总线的设备具有非稳定状态,包括:
14、控制单元,用于在第一时刻,控制i2c总线处于非空闲状态,第一时刻为设备进入非稳定状态的时刻,或者第一时刻早于设备进入非稳定状态的时刻。
15、在第二时刻,控制i2c总线处于空闲状态,第二时刻为设备结束非稳定状态的时刻,或者第二时刻晚于设备结束非稳定状态的时刻。
16、在第二方面的一种可能的设计方式中,该装置还包括:
17、获取单元,用于获取设备的非稳定状态信息,非稳定状态信息包括设备进入非稳定状态的时刻,以及设备处于非稳定状态的第一时长。
18、在第二方面的一种可能的设计方式中,非稳定状态包括:设备的上电状态、下电状态和复位状态。
19、在第二方面的一种可能的设计方式中,还包括:
20、状态标志存储单元,用于存储表示i2c总线当前状态的i2c总线状态标志。设置i2c总线状态标志,指示i2c总线处于空闲状态或者非空闲状态。
21、在第二方面的一种可能的设计方式中,设置i2c总线状态标志,指示i2c总线处于空闲状态或者非空闲状态,包括:
22、将状态标志设置为“0”,指示i2c总线处于空闲状态,将状态标志设置为“1”,指示i2c总线处于非空闲状态。或者,将状态标志设置为“1”,指示i2c总线处于空闲状态,将状态标志设置为“0”,指示i2c总线处于非空闲状态。
23、第三方面,提供一种i2c总线的通信控制设备,包括:存储器,用于存储指令,指令包括第一方面及其任一种可能的设计方式所提供的通信控制方法的步骤;
24、处理器,用于执行指令。
25、第四方面,提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面及其任一种可能的设计方式所提供的通信控制方法的步骤。
26、可以理解地,上述提供的第二方面所提供的i2c总线的通信控制装置、第三方面所提供的i2c总线的通信控制设备以及第四方面所提供的存储介质所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
1.一种i2c总线的通信控制方法,其特征在于,接入所述i2c总线的设备具有非稳定状态,包括:
2.根据权利要求1所述的方法,其特征在于,在控制所述i2c总线处于非空闲状态之前,还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述非稳定状态包括:所述设备的上电状态、下电状态和复位状态。
4.根据权利要求1至3任意一项所述的方法,其特征在于,还包括:
5.根据权利要求4所述的方法,其特征在于,包括:
6.一种i2c总线的通信控制装置,其特征在于,接入所述i2c总线的设备具有非稳定状态,包括:
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
8.根据权利要求6或7所述的装置,其特征在于,所述非稳定状态包括:所述设备的上电状态、下电状态和复位状态。
9.根据权利要求6至8任意一项所述的装置,其特征在于,还包括:
10.根据权利要求9所述的装置,其特征在于,所述设置所述i2c总线状态标志,指示所述i2c总线处于空闲状态或者非空闲状态,包括:
11.一种i2c总线的通信控制设备,其特征在于,包括:存储器,用于存储指令,所述指令包括权利要求1至5任意一项所述i2c总线的通信控制方法的步骤;
12.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任意一项所述i2c总线的通信控制方法的步骤。