为了实现降低功耗的目的,《电能计量芯片降低功耗的方法》为电能计量系统芯片设置多种时钟状态,并根据系统芯片当前的供电状态以及休眠唤醒复位的产生来源进行时钟状态的转换。
在本实施例中,使用系统芯片的一个输入引脚来判断当前的供电状态,定义PWRUP信号标志为从这个输入引脚得到的供电状态,PWRUP=0表示芯片由电池供电,PWRUP=1表示芯片由电力线供电,即正常供电。
系统芯片内部设置两个时钟域,CPU位于时钟域1,而计量电路包括功率有效值计算电路与能量累加电路,该二电路均位于时钟域2,两个时钟域分别使用独立的时钟。每个时钟域的时钟都可以由CPU运行的控制软件分别进行控制,时钟域1可以使用32768赫兹(低频时钟)以及32768xN(N为PLL倍频系数,N的典型值为100)赫兹(高频时钟),并可以被门控,即时钟域1的时钟停止动作,维持一个恒定电平。时钟域2可以使用32768赫兹(低频时钟)、204800赫兹(降频时钟)、819200赫兹(高频时钟),并可以被门控,即时钟域2的时钟停止动作,维持一个恒定电平。关于门控时钟的过程,具体原理如下:
1.程序或者某个动作触发电路写入一个控制寄存器;
2.电路查找时钟的上升沿;
3.由于上升沿是从低电平到高电平的一个过程,电路在检测到时钟的上升沿后,等待适当的延时以便时钟的电平变化过程稳定,然后电路根据此寄存器的值输出一个高电平或者低电平;
4.此高电平或者低电平与时钟信号进行“或操作”,输出的信号作为门控之后的信号;
5.如上所述,当控制寄存器的值无效的时候,门控电路输出的是低电平,和时钟信号进行或操作后,时钟信号依然保持原来的频率,只是相位稍有延迟;当控制寄存器的值有效的时候,门控电路输出的是高电平,和时钟信号进行或操作后,输出的时钟信号变为恒定的高电平,即被门控。
在系统芯片上电复位后的初始状态下,时钟域1使用32768赫兹时钟,时钟域2使用32768赫兹时钟。
在PWRUP=0的情况下,时钟域1可以使用低频时钟、高频时钟、或者被门控;时钟域2可以使用低频时钟、降频时钟、高频时钟、或者被门控。在PWRUP=1的情况下,时钟域1可以使用低频时钟、高频时钟,但是不能被门控;时钟域2可以使用低频时钟、降频时钟、高频时钟,但是也不能被门控。
定义时钟域1被门控的状态为芯片的休眠状态,而休眠状态又分为浅休眠和深休眠两种状态。在浅休眠状态下,当PWRUP从0变为1(电池供电变为正常供电)、IO事件(系统芯片的IO输入发生变化)或者休眠达到一定时间(对进入休眠状态的时间进行计时,达到某个阈值)都可以产生一个唤醒复位,从而使芯片回到初始状态。在深休眠状态下,只有PWRUP从0变为1(电池供电变为正常供电)、IO事件(系统芯片的IO输入发生变化)可以产生唤醒复位,休眠时间不能作为产生唤醒复位的依据。
在时钟域1的时钟不被门控的情况下,通过寄存器设定使时钟域1中的所有触发器的输入都不再发生变化,定义这种状态为时钟域1的挂起状态。
时钟域2中的电路分为两个部分,功率/有效值计算电路以及能量累加电路。在时钟域2的时钟不被门控的情况下,通过寄存器设定使功率/有效值计算电路中的所有触发器的输入都不再发生变化,并可以设定能量累加电路的输入为某个固定值,定义这种状态为时钟域2的常量计量状态。
参阅图1所示,为实施《电能计量芯片降低功耗的方法》的电能计量芯片降低功耗的方法的流程图,该方法包括如下步骤:
步骤100:判断PWRUP是否为0?
步骤101:如是,则判断计量电路检测电压输入信号的有效值是否小于某个阈值,并且电流输入信号的有效值是否大于某个阈值?
如是,则进入步骤102,即进入浅休眠与常量计量模式,之后持续判断是否有恢复供电复位或者IO休眠唤醒复位或者定时休眠唤醒复位发生,即步骤105,如有则回到步骤100,如否则保持为浅休眠与常量计量模式。其中浅休眠与常量计量模式是指时钟域1使用高频时钟,时钟域2使用高频时钟,计量电路计算电流输入的电流有效值,并把得到的电流有效值设定为能量累加电路的固定输入,并通过寄存器设定使功率有效值计算电路中的所有触发器输入不发生变化,即时钟域2进入常量计量状态,之后令时钟域一停止动作维持恒定电平,即芯片进入浅休眠状态。此特别适用于在某些窃电行为发生的时候,电流互感器产生的功率太小不足以让芯片工作,或者电能表中不存在电流互感器元件,或者为正常的停电状态,此时芯片完全由电能表中的电池供电。设时钟域1使用高频时钟的时间为t(即计算获得电流有效值的时间),保持浅休眠状态的时间为T。由于能量累加电路相比功率/有效值计算电路面积极小,其功耗相比也可以忽略,且时钟域2进入常量计量状态后,仅有与时钟电路相关的功耗,其功耗也可以忽略的情况下,则芯片的平均功耗为(Pswitching Pshort)t/T Pleakage。
如否,则进入库存模式,即步骤103,之后持续判断是否有恢复供电复位或者IO休眠唤醒复位发生,即步骤104,如有则回到步骤100,如否则保持为库存模式。其中在库存模式,系统门控时钟域2的时钟,并使芯片进入浅休眠状态,即此时时钟域1与时钟域2均被门控,处于停止动作维持恒定电平状态。休眠达到一定时间后,发生定时复位唤醒,重复休眠前的操作,并再次进入浅休眠。上述循环重复达到预设的次数后,如果在之前的过程中始终没有发生PWRUP从0变为1或者IO事件或者计量电路检测电压和电流输入的有效值超出阈值的事件,则门控时钟域2的时钟,使芯片进入深休眠状态。在库存模式下,只有恢复供电或者发生IO事件才能使芯片离开库存状态,否则,芯片会一直处于深休眠状态,维持在极低功耗的状态。在库存模式下,Pswitching=VDD×fclk×ΣαiCLiΔVi中的fclk为0,Pswitching为0,从而Pshort也为0,芯片只剩下Pleakage。根据芯片的制造工艺,整个芯片的漏电流维持在几百纳安培。
当在步骤100中判断PWRUP不为0时,计量电路检测电压输入信号的有效值是否小于某个阈值,即步骤106。
如是,则进入降频工作模式,即步骤108。其中降频工作模式时,因PWRUP=1,根据芯片时钟状态的描述,时钟域1和时钟域2都不能被门控。为了降低功耗,时钟域1使用32768xN(N<100,N的典型值为25)赫兹时钟,时钟域2使用降频时钟。并且在CPU处理任务的空闲时刻,时钟域1进入挂起状态,直到有其他应该处理的任务的时候(例如中断或者定时达到预设阈值),时钟域1才退出挂起状态。即在降频模式下,时钟域1和时钟域2降低了工作频率,时钟域2中的电路正常工作,正常计量电量。时钟域1中的电路间歇性的对外界事件做出响应。此适用于发生窃电行为且电压输入信号为0的时候,电能表里面的电流互感器能够产生感应电压,并为芯片供电。由于电流互感器产生的功率有限,不足以支持芯片的正常功耗,所以要求此时芯片能够工作,但是可以降低计量精度以及处理任务的能力。在降频工作模式下,Pswitching=VDD×fclk×ΣαiCLiΔVi中的fclk降为正常状态下的1/4,且时钟域1中的大部分ai在挂起状态下为0,只有与时钟相关的电路的ai不等于0,从而时钟域1中的大部分电路的Pswitching为0,从而相关的Pshort也为0。芯片只剩下Pleakage、降低为正常状态下1/4的时钟域2的Pswithcing,以及时钟域1中的前述的相关功耗。
如否,则进入正常工作模式,即步骤107,在正常工作模式下,时钟域1使用3.2768兆赫时钟(即N=100),时钟域2使用819200赫兹时钟,所有的电路均处于正常翻转状态,即Pswitching中的f,ai,deltavi均为正常值,时钟电路的功耗也处于正常状态。
从以上的描述中可以看出,在休眠状态下f为0,Pswitching=0,且时钟电路功耗也为0,而在挂起状态下,ai为0,Pswitching=0,仅存在时钟电路功耗;在降频模式下,功耗会根据降频倍数成倍降低,从而可以有效在降低该电能计量芯片的功耗。