掌桥专利:专业的专利平台
掌桥专利
首页

芯片控制方法、装置、智能终端及计算机可读存储介质

文献发布时间:2023-06-19 11:22:42


芯片控制方法、装置、智能终端及计算机可读存储介质

技术领域

本发明涉及芯片技术领域,尤其涉及的是一种芯片控制方法、装置、智能终端及计算机可读存储介质。

背景技术

随着科学技术的迅速发展,电子产品的性能越来越强,耗电也随之增加。为了尽可能降低功耗,在某些情况下,需要使芯片进入低功耗模式。例如,作为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设备地址;当上述I2C设备地址与本机地址匹配时,基于上述I2C设备地址获取目标操作,其中,上述目标操作为读操作或写操作;当上述目标操作为写操作时,获取目标数据;当上述目标数据满足预设的目标条件时,对芯片进行唤醒控制。与现有技术相比,本发明方案在I2C设备地址与本机地址匹配时进一步获取目标操作,当目标操作为写操作时,获取目标数据,只有目标数据满足预设的目标条件时才对芯片进行唤醒控制。有利于避免I2C总线上与该芯片无关的数据通信或干扰引起芯片的内部时钟及电源打开,降低芯片耗电量。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例提供的一种现有技术中唤醒SOC时SOC的工作状态示意图;

图2是本发明实施例提供的另一种现有技术中唤醒SOC时SOC的工作状态示意图;

图3是本发明实施例提供的一种芯片控制方法的流程示意图;

图4是本发明实施例图3中步骤S200的具体流程示意图;

图5是本发明实施例提供的另一种芯片控制方法的流程示意图;

图6是本发明实施例提供的一种SOC的模块示意图;

图7是本发明实施例提供的一种芯片控制流程示意图;

图8是本发明实施例提供的一种SOC唤醒时工作状态示意图;

图9是本发明实施例提供的一种SOC休眠时工作状态示意图;

图10是本发明实施例提供的一种极低功耗模式下多机通信示意图;

图11是本发明实施例提供的一种低功耗模式下SOC唤醒时的状态示意图;

图12是本发明实施例提供的一种芯片控制装置的结构示意图;

图13是本发明实施例提供的一种智能终端的内部结构原理框图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。

下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

随着科学技术的迅速发展,电子产品的性能越来越强,耗电也随之增加。为了尽可能降低功耗,在某些情况下,需要使芯片进入低功耗模式。上述芯片可以是系统级芯片(SOC,System on Chip)。例如,作为I2C从机的低功耗芯片,在没有事务需要处理时,为了降低功耗,需要进入低功耗或超低功耗模式,此时芯片内部的电源及时钟处于关断状态。而当该芯片需要处理事务时,需要控制并唤醒对应的芯片,使其退出低功耗模式并正常工作。在低功耗便携式设备或传感器的应用中,I2C协议是一个广泛使用的协议。在芯片处于低功耗模式时,可以在I2C总线上通过检测电平跳变来唤醒芯片,但会有唤醒时延,效率较低,同时会影响总线上其它I2C设备的通信。

现有技术中,在SOC进入低功耗模式后,通常在检测到I2C起始标志时就唤醒SOC中的部分电路,打开I2C工作时钟并恢复SOC内部供电,同时继续接收I2C地址包,当地址匹配时完全唤醒芯片,否则重新进入低功耗模式。图1是本发明实施例提供的一种现有技术中唤醒SOC时SOC的工作状态示意图,如图1所示,这种方案的问题在于,I2C总线上有任何的数据通信或干扰,都可能使SOC的内部时钟及电源打开并持续一段时间,使得耗电量增加。并且,由于启动时钟和电源需要时间,使得I2C总线会被频繁的拉住,降低了数据传输效率。

现有技术中的另一种方案是增加一个地址检测电路,只有当地址匹配时,才发起唤醒信号,恢复SOC内部供电及时钟,达到唤醒的目的。但该方案的问题在于,当匹配到地址后,由于恢复电源及打开时钟需要较长的时间,在这段时间内,I2C总线被强制拉住,使得数据传输效率降低,并增加了功耗。特别是在I2C的衍生协议PMBUS以及SMBUS中,由于大量的广播帧的存在,使得每次广播发起时,处于休眠状态的设备都必须唤醒来判断是否响应,增加了功耗,降低了通信效率。图2是本发明实施例提供的该方案中唤醒SOC时SOC的工作状态示意图,如图2所示,主机并没有发起对当前SOC的访问,而SOC却在不停唤醒和工作。

为了解决现有技术的问题,本发明提供一种芯片控制方法,在本发明实施例中,获取I2C设备地址;当上述I2C设备地址与本机地址匹配时,基于上述I2C设备地址获取目标操作,其中,上述目标操作为读操作或写操作;当上述目标操作为写操作时,获取目标数据;当上述目标数据满足预设的目标条件时,对芯片进行唤醒控制。与现有技术相比,本发明方案在I2C设备地址与本机地址匹配时进一步获取目标操作,当目标操作为写操作时,获取目标数据,只有目标数据满足预设的目标条件时才对芯片进行唤醒控制。有利于避免I2C总线上与该芯片无关的数据通信或干扰引起芯片的内部时钟及电源打开,降低芯片耗电量。

如图3所示,本发明实施例提供一种芯片控制方法,具体的,上述方法包括如下步骤:

步骤S100,获取I2C设备地址。

其中,上述I2C设备地址是通过I2C总线传输的I2C地址。具体的,接收I2C起始位,当检测到I2C主机发出I2C起始时序后,通过I2C总线接收获取对应的I2C地址。如果是异常状态或干扰,则不会接收地址。其中,上述异常状态可以是上位机(I2C主机)发出错误的数据包,干扰可以是外部电磁干扰造成毛刺或脉冲等。进一步的,凡是不符合正确的I2C协议的帧格式的信号都会被过滤掉,降低干扰的影响。上述I2C主机是指I2C协议规定的主机,可以是系统中的主控芯片,也可以是上位PC机,在此不做具体限定。

步骤S200,当上述I2C设备地址与本机地址匹配时,基于上述I2C设备地址获取目标操作,其中,上述目标操作为读操作或写操作。

上述本机地址为芯片对应的地址,可选的,可以为低功耗模式下的SOC对应的地址。具体的,将接收到的I2C设备地址与芯片对应的本机地址进行比较,判断接收的I2C设备地址与本机地址是否匹配。当上述I2C设备地址与本机地址匹配时,基于接收的I2C设备地址获取后续的目标操作。

步骤S300,当上述目标操作为写操作时,获取目标数据。

当上述目标操作为写操作时,继续接收目标数据。其中,上述目标数据是通过I2C总线继续发送的数据,上述目标数据可以体现具体需要从机芯片执行的操作,从而可以根据上述目标数据判断是否需要唤醒对应的从机芯片。上述目标数据紧跟上述I2C设备地址,因此可以在接收获取上述I2C设备地址后继续接收获取上述目标数据。

步骤S400,当上述目标数据满足预设的目标条件时,对芯片进行唤醒控制。

其中,上述预设的目标条件为预先设置的用于判断上述目标数据是否满足唤醒当前芯片的要求的条件。例如,可以预先设置目标条件是目标数据的个数达到预先设定的数目,从而在接收到该预定的数目个目标数据后唤醒对应的芯片。可以有效的控制何时进入唤醒流程,避免I2C总线上与该芯片无关的数据通信或干扰引起芯片的内部时钟及电源打开,降低芯片耗电量。同时,有效提升通过I2C总线唤醒芯片(SOC)的效率,减小芯片唤醒过程对I2C总线的影响,提高总线通信效率。

由上可见,本发明实施例提供的芯片控制方法,获取I2C设备地址;当上述I2C设备地址与本机地址匹配时,基于上述I2C设备地址获取目标操作,其中,上述目标操作为读操作或写操作;当上述目标操作为写操作时,获取目标数据;当上述目标数据满足预设的目标条件时,对芯片进行唤醒控制。与现有技术相比,本发明方案在I2C设备地址与本机地址匹配时进一步获取目标操作,当目标操作为写操作时,获取目标数据,只有目标数据满足预设的目标条件时才对芯片进行唤醒控制。有利于避免I2C总线上与该芯片无关的数据通信或干扰引起芯片的内部时钟及电源打开,降低芯片耗电量。

其中,上述芯片控制方法用于控制I2C总线上的作为从机的芯片的工作状态,控制从机芯片进入唤醒状态或保持低功耗状态。

具体的,本实施例中,如图4所示,上述步骤S200包括:

步骤S201,当上述I2C设备地址与本机地址匹配时,获取上述I2C设备地址的最低位的值。

步骤S202,基于上述最低位的值获取目标操作。

具体的,本实施例中,在I2C总线协议中,可以基于上述I2C设备地址的最低位的值是0还是1来判定主机发出的后续的目标操作是读操作还是写操作,从而进一步基于目标操作确定后续操作。

可选的,本实施例中,如图5所示,在上述步骤S200之后,上述方法还包括:步骤S500,当上述目标操作为读操作时,对芯片进行唤醒控制。

具体的,由于I2C协议是基础的底层协议,大多数情况,I2C总线在接收了地址以后的下一个数据一般会被定义为应用层面的地址。例如,在EEPROM中,第一个数据是page地址,在SMBUS/PMBUS协议中,I2C设备地址其实是广播地址,第一个数据才是真正的器件地址。因此,如果后续的目标操作是是写操作,第一个数据是要访问的地址(此时不必唤醒芯片),然后才是数据(此时才需唤醒)。如果后续的目标操作是读操作,第一个数据就是真正的数据,那么就必须对芯片进行唤醒控制。

具体的,当上述目标操作为写操作时,继续接收并获取目标数据。可选的,上述目标数据包括设备地址、寄存器地址或操作命令。

其中,上述目标数据通常紧跟上述I2C设备地址,可能是设备地址、低存器地址或操作命令,还可能包括其它类型的数据,具体由实际的应用协议而定,在此不做具体限定。

接收到上述目标数据后,可以判断上述目标数据是否满足预设的目标条件。可选的,上述步骤S400包括:当上述目标数据的值等于预设的目标值或上述目标数据的个数大于预设的目标数目时,对芯片进行唤醒控制。

其中,上述预设的目标条件是预先设置的用于判断目标数据即对应的目标操作是否指向本芯片的条件,可以预先设定,也可以根据实际需求进行设置和调整,在此不做具体限定。本实施例中,上述目标条件可以是目标数据的值等于预设的目标值,或接收到的上述目标数据的个数大于预设的目标数目。其中,具体的目标条件也可以根据上述目标数据的类型来进行设置。例如,当上述目标数据为设备地址或寄存器地址时,上述目标条件可以对应设置为目标数据中的设备地址或寄存器地址具体与预设的某一地址(SOC地址)相同;当上述目标数据为操作命令时,上述目标条件可以对应设置为接收到的操作命令的个数大于预设的目标数目。

可选的,上述目标数据不满足预设的目标条件时,可以释放I2C总线进入空闲状态,也可以继续接收目标数据,具体可以根据实际设置的目标条件来确定,在此不做具体限定。例如,当上述目标条件是目标数据的值等于预设的目标值时,在目标数据不满足预设的目标条件的情况下,可以释放I2C总线进入空闲状态;当上述目标条件是目标数据的个数大于预设的目标数目时,在目标数据不满足预设的目标条件的情况下,可以返回继续接收目标数据。

可选的,上述对芯片进行唤醒控制,包括:控制上述芯片的电源管理单元恢复对芯片核心电源域的供电;启动上述芯片的时钟管理单元,控制上述时钟单元恢复上述芯片所需的时钟;唤醒上述芯片的中央处理器。

具体的,发起唤醒操作,发出唤醒信号通知SOC的电源管理单元,进入唤醒流程。控制电源管理单元恢复对SOC核心电源域的供电,并启动时钟管理单元,其中,上述SOC核心电源域包括I2C核心单元、时钟管理单元和CPU。时钟管理单元恢复提供SOC所需时钟,包括CPU所需时钟和I2C核心单元所需时钟。CPU唤醒,控制I2C核心单元,接管I2C输入输出控制单元,继续传输数据。

可选的,在上述步骤S100之后,上述方法还包括:当上述I2C设备地址与本机地址不匹配时,释放I2C总线进入空闲状态。

具体的,如果I2C设备地址与本机地址不匹配,则说明本机无需处理该事务,因此可以释放I2C总线进入空闲状态,避免总线被频繁拉住、影响总线上其它设备的通信,从而提高总线通信效率。同时避免芯片的无意义唤醒,降低芯片功耗。

本发明实施例还基于一种具体应用场景对上述芯片控制方法进行描述,图6是本发明实施例提供的一种SOC的模块示意图,其中SDA和SCL代表I2C总线的信号线,VCC代表电源。图7是本发明实施例提供的一种芯片控制流程示意图。如图6和图7所示,本发明实施例中,增加一个多级电路(包括读写判定电路、I2C数据接收电路和数据判断电路),在检测I2C的地址匹配后,如果判定是一个写操作,则并不发起唤醒信号唤醒SOC,而是继续接收数据。当接收到的数据包满足预先设定好的条件(例如可以是某个有效的二级地址或者命令等),才真正发起唤醒SOC的操作。具体的,I2C IO控制电路用于控制输入输出端口的输入输出状态。I2C地址接收电路接收I2C起始位以及I2C设备地址,判断主机发出的I2C设备地址与本机地址是否匹配,当地址不匹配时,返回至总线空闲状态。当地址匹配时,读写判定电路根据接收到的I2C设备地址进一步判定后续目标操作是读操作还是写操作,判定为读操作时,直接发起唤醒操作。判定为写操作时,I2C数据接收电路接收目标数据,且通过数据判定电路判定目标数据是否满足预设的目标条件。其中,上述I2C IO控制电路、I2C地址接收电路、读写判定电路、I2C数据接收电路以及数据判定电路不需要时钟管理电路提供工作时钟,也不需要电源管理单元供电。如图7所示,当上述目标数据不满足预设的目标条件时,可以返回至总线空闲状态,在另一种应用场景中,当上述目标数据不满足预设的目标条件时,还可以返回重新接收目标数据,在此不做具体限定。当上述目标数据满足预设的目标条件时,发起唤醒操作,电源管理单元恢复对SOC核心电源域供电,并启动时钟管理电路,时钟管理电路给SOC核心电源域提供工作时钟,唤醒CPU,从而使CPU控制I2C核心电路接管I2C IO控制电路,控制I2C接口的状态以及收发数据。其中,上述各电路也可以由对应的模块或单元来实现相同的功能,在此不做具体限定。图8是本发明实施例提供的一种SOC唤醒时工作状态示意图,图9是本发明实施例提供的一种SOC休眠时工作状态示意图。如图8所示,在I2C的衍生协议PMBUS/SMBUS协议中,当目标数据满足目标条件(例如目标数据中的地址与预设的设备地址匹配)时,SOC唤醒。如图9所示,当目标数据不满足目标条件(例如目标数据中的地址与预设的设备地址不匹配)时,SOC将一直处于休眠状态,不会被频繁唤醒后又进入休眠。例如,当主机在不停的发起广播时,在现有技术中,从机就一定会接收广播并唤醒,但可能其实主机并不是想访问当前设备。而本发明实施例中加入对目标数据的判定,只有当主机真正想访问当前设备的时候(也即满足预设的目标条件时),才予以响应并唤醒。如此,增加对目标数据的判定,避免无意义的唤醒。由于每一次唤醒时会受到芯片唤醒流程(比如内部上电,启动时间等)的限制,或多或少都会影响总线(拉住总线),避免无意义的唤醒则可以降低对总线上其它设备的通信的影响,提高总线通信效率。同时也可以避免无意义的唤醒使得芯片工作消耗电流,有利于降低芯片功耗。

在一种应用场景中,将上述芯片控制方法应用于SOC极低功耗模式下,此模式下,SOC内部LDO(低压差线性稳压器)关闭,只留下极少数的电路保持工作,例如用于唤醒芯片的I2C接口唤醒电路。整个SOC待机功耗极低,可以用于传感器或有低功耗场景的多机通信中。图10是本发明实施例提供的一种极低功耗模式下多机通信示意图,基于上述芯片控制方法,当I2C host通过广播地址发起访问时,只会有对应I2C device(目标数据满足目标条件的I2C device)唤醒响应,而其它I2C device保持休眠。相比于现有技术,功耗达到了最低。在现有技术中,总线上所有I2Cdevice都在不停的唤醒。

在另一种应用场景中,将上述芯片控制方法应用于SOC低功耗模式,例如停机模式下,此模式下,SOC内部LDO并未关闭,保持供电,CPU仅仅只是暂停,只要时钟恢复即可快速恢复工作。图11是该模式下SOC唤醒时的状态示意图,在该模式下,相比于SOC极低功耗模式,整个唤醒流程有所缩短,无需电源管理模块恢复供电的步骤,当检测到唤醒条件满足后,唤醒迅速,几乎不会出现拉住I2C总线等待CPU的情况。

由上可见,本发明实施例提供的芯片控制方法可以有效提高I2C总线上设备和休眠设备之间的通信效率,明显减小休眠设备之间通信时发生的功耗损失,使得用户的应用方案及产品有更长的电池续航时间,适用于基于I2C多主机通信场景的PMBUS/SMBUS协议,并且,总线上挂载的设备越多,节电的效果越明显。

如图12所示,对应于上述芯片控制方法,本发明实施例还提供一种芯片控制装置,上述芯片控制装置包括:

地址获取模块610,用于获取I2C设备地址。

其中,上述I2C设备地址是通过I2C总线传输的I2C地址。具体的,接收I2C起始位,当检测到I2C主机发出I2C起始时序后,通过I2C总线接收获取对应的I2C地址。如果是异常状态或干扰,则不会接收地址。其中,上述异常状态可以是上位机(I2C主机)发出错误的数据包,干扰可以是外部电磁干扰造成毛刺或脉冲等。进一步的,凡是不符合正确的I2C协议的帧格式的信号都会被过滤掉,降低干扰的影响。上述I2C主机是指I2C协议规定的主机,可以是系统中的主控芯片,也可以是上位PC机,在此不做具体限定。

目标操作获取模块620,用于当上述I2C设备地址与本机地址匹配时,基于上述I2C设备地址获取目标操作,其中,上述目标操作为读操作或写操作。

上述本机地址为芯片对应的地址,可选的,可以为低功耗模式下的SOC对应的地址。具体的,将接收到的I2C设备地址与芯片对应的本机地址进行比较,判断接收的I2C设备地址与本机地址是否匹配。当上述I2C设备地址与本机地址匹配时,基于接收的I2C设备地址获取后续的目标操作。

目标数据获取模块630,用于当上述目标操作为写操作时,获取目标数据。

当上述目标操作为写操作时,继续接收目标数据。其中,上述目标数据是通过I2C总线继续发送的数据,上述目标数据可以体现具体需要从机芯片执行的操作,从而可以根据上述目标数据判断是否需要唤醒对应的从机芯片。上述目标数据紧跟上述I2C设备地址,因此可以在接收获取上述I2C设备地址后继续接收获取上述目标数据。

控制模块640,用于当上述目标数据满足预设的目标条件时,对芯片进行唤醒控制。

其中,上述预设的目标条件为预先设置的用于判断上述目标数据是否满足唤醒当前芯片的要求的条件。例如,可以预先设置目标条件是目标数据的个数达到预先设定的数目,从而在接收到该预定的数目个目标数据后唤醒对应的芯片。可以有效的控制何时进入唤醒流程,避免I2C总线上与该芯片无关的数据通信或干扰引起芯片的内部时钟及电源打开,降低芯片耗电量。同时,有效提升通过I2C总线唤醒芯片(SOC)的效率,减小芯片唤醒过程对I2C总线的影响,提高总线通信效率。

由上可见,本发明实施例提供的芯片控制装置,通过地址获取模块610获取I2C设备地址;当上述I2C设备地址与本机地址匹配时,通过目标操作获取模块620基于上述I2C设备地址获取目标操作,其中,上述目标操作为读操作或写操作;当上述目标操作为写操作时,通过目标数据获取模块630获取目标数据;当上述目标数据满足预设的目标条件时,通过控制模块640对芯片进行唤醒控制。与现有技术相比,本发明方案在I2C设备地址与本机地址匹配时进一步获取目标操作,当目标操作为写操作时,获取目标数据,只有目标数据满足预设的目标条件时才对芯片进行唤醒控制。有利于避免I2C总线上与该芯片无关的数据通信或干扰引起芯片的内部时钟及电源打开,降低芯片耗电量。

其中,上述芯片控制装置用于控制I2C总线上的作为从机的芯片的工作状态,控制从机芯片进入唤醒状态或保持低功耗状态。

可选的,上述目标操作获取模块620具体用于:当上述I2C设备地址与本机地址匹配时,获取上述I2C设备地址的最低位的值;基于上述最低位的值获取目标操作。

具体的,本实施例中,在I2C总线协议中,可以基于上述I2C设备地址的最低位的值是0还是1来判定主机发出的后续的目标操作是读操作还是写操作,从而进一步基于目标操作确定后续操作。

可选的,上述控制模块640还用于:当上述目标操作为读操作时,对芯片进行唤醒控制。

具体的,由于I2C协议是基础的底层协议,大多数情况,I2C总线在接收了地址以后的下一个数据一般会被定义为应用层面的地址。例如,在EEPROM中,第一个数据是page地址,在SMBUS/PMBUS协议中,I2C设备地址其实是广播地址,第一个数据才是真正的器件地址。因此,如果后续的目标操作是是写操作,第一个数据是要访问的地址(此时不必唤醒芯片),然后才是数据(此时才需唤醒)。如果后续的目标操作是读操作,第一个数据就是真正的数据,那么就必须对芯片进行唤醒控制。

具体的,当上述目标操作为写操作时,通过目标数据获取模块630继续接收并获取目标数据。可选的,上述目标数据包括设备地址、寄存器地址或操作命令。

其中,上述目标数据通常紧跟上述I2C设备地址,可能是设备地址、低存器地址或操作命令,还可能包括其它类型的数据,具体由实际的应用协议而定,在此不做具体限定。

接收到上述目标数据后,可以判断上述目标数据是否满足预设的目标条件。可选的,上述控制模块640具体用于:当上述目标数据的值等于预设的目标值或上述目标数据的个数大于预设的目标数目时,对芯片进行唤醒控制。

其中,上述预设的目标条件是预先设置的用于判断目标数据即对应的目标操作是否指向本芯片的条件,可以预先设定,也可以根据实际需求进行设置和调整,在此不做具体限定。本实施例中,上述目标条件可以是目标数据的值等于预设的目标值,或接收到的上述目标数据的个数大于预设的目标数目。其中,具体的目标条件也可以根据上述目标数据的类型来进行设置。例如,当上述目标数据为设备地址或寄存器地址时,上述目标条件可以对应设置为目标数据中的设备地址或寄存器地址具体与预设的某一地址(SOC地址)相同;当上述目标数据为操作命令时,上述目标条件可以对应设置为接收到的操作命令的个数大于预设的目标数目。

可选的,上述目标数据不满足预设的目标条件时,可以释放I2C总线进入空闲状态,也可以继续接收目标数据,具体可以根据实际设置的目标条件来确定,在此不做具体限定。例如,当上述目标条件是目标数据的值等于预设的目标值时,在目标数据不满足预设的目标条件的情况下,可以释放I2C总线进入空闲状态;当上述目标条件是目标数据的个数大于预设的目标数目时,在目标数据不满足预设的目标条件的情况下,可以返回继续接收目标数据。

可选的,上述对芯片进行唤醒控制,包括:控制上述芯片的电源管理单元恢复对芯片核心电源域的供电;启动上述芯片的时钟管理单元,控制上述时钟单元恢复上述芯片所需的时钟;唤醒上述芯片的中央处理器。

具体的,发起唤醒操作,发出唤醒信号通知SOC的电源管理单元,进入唤醒流程。控制电源管理单元恢复对SOC核心电源域的供电,并启动时钟管理单元,其中,上述SOC核心电源域包括I2C核心单元、时钟管理单元和CPU。时钟管理单元恢复提供SOC所需时钟,包括CPU所需时钟和I2C核心单元所需时钟。CPU唤醒,控制I2C核心单元,接管I2C输入输出控制单元,继续传输数据。

可选的,上述芯片控制装置还用于:当上述I2C设备地址与本机地址不匹配时,释放I2C总线进入空闲状态。

具体的,如果I2C设备地址与本机地址不匹配,则说明本机无需处理该事务,因此可以释放I2C总线进入空闲状态,避免总线被频繁拉住、影响总线上其它设备的通信,从而提高总线通信效率。同时避免芯片的无意义唤醒,降低芯片功耗。

基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图13所示。上述智能终端包括通过系统总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和芯片控制程序。该内存储器为非易失性存储介质中的操作系统和芯片控制程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该芯片控制程序被处理器执行时实现上述任意一种芯片控制方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。

本领域技术人员可以理解,图13中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的芯片控制程序,上述芯片控制程序被上述处理器执行时进行以下操作指令:

获取I2C设备地址;

当上述I2C设备地址与本机地址匹配时,基于上述I2C设备地址获取目标操作,其中,上述目标操作为读操作或写操作;

当上述目标操作为写操作时,获取目标数据;

当上述目标数据满足预设的目标条件时,对芯片进行唤醒控制。

本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有芯片控制程序,上述芯片控制程序被处理器执行时实现本发明实施例提供的任意一种芯片控制方法的步骤。

应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

相关技术
  • 芯片控制方法、装置、智能终端及计算机可读存储介质
  • 智能终端的控制方法、智能终端及计算机可读存储介质
技术分类

06120112901302