一种无晶体计量SoC芯片及其时钟获取方法
【技术领域】
[0001]本发明涉及电参量测量的技术领域,特别是涉及一种无晶体计量SoC芯片及其时钟获取方法。
【背景技术】
[0002]在电参量测量应用中,例如智能插座、智能家电及智能电表等,常常会采用计量模块与主控微控制器MCU模块分离的实现方案,随着智能电表国际法规IR46的执行,要求计量模块实现法规相关的计量功能,外部通信控制模块即MCU部分不能影响计量模块的功能和性能,可见基于计量SoC (System on Chip,片上系统芯片)设计的计量模块与多功能通信加密主控MCU模块相结合的实现方案将占据主导地位。
[0003]在这个应用中,主控微控制器模块的核心芯片为微控制器芯片,计量模块的核心芯片为计量SoC,微控制芯片和计量SoC都需要一个外置晶体以达到所需的时钟精度,若没有外置晶体,计量SoC不能获取所需的时钟频率,也不能进行测量应用。而且,增加的外置晶体会提高系统成本,而且外置晶体本身会存在停振的风险,一旦出现停振,计量SoC也无法获取所需的时钟频率,这样会降低计量SoC中计量模块获得到时钟的可靠性。
【发明内容】
[0004]本发明的目的是提供一种无晶体计量SoC芯片及其时钟获取方法,以实现无晶体计量SoC芯片本身能够获取与主控MCU同步的时钟频率,不必使用外置晶体提供时钟频率,降低了系统成本,提高了计量SoC芯片中计量模块获取时钟的可靠性。
[0005]为解决上述技术问题,本发明提供一种无晶体计量SoC芯片的时钟获取方法,该方法包括:
[0006]通过串口 UART接收外部主控MCU发送的训练字节;
[0007]在RC时钟模块产生的预设时钟频率Fideal的作用下,对所述训练字节的两个下降沿的时间间隔TMf进行计数得到计数值N一
[0008]利用所述预设时钟频率Fideal及所述计数值N ^计算得到所述外部主控MCU发送所述训练字节的预估波特率Fibaud,通过查表获取所述外部主控MCU发送所述训练字节的实际波特率Fbaud,依据所述实际波特率Fbaud得到所述训练字节的两个下降沿的时间间隔T ref;
[0009]利用所述计数值Nrc和所述时间间隔T %计算得到所述RC时钟模块的实际时钟频率F?,依据所述实际时钟频率Frc与所述预设时钟频率F ideal之间的差值调整所述RC时钟模块的时钟频率,获取所述RC时钟模块调整后的时钟频率Frc。。
[0010]优选的,所述利用所述预设时钟频率Fideal及所述计数值N 计算得到所述外部主控MCU发送所述训练字节的预估波特率Fibaud,包括:
[0011]利用所述预设时钟频率F—及所述计数值N r。,依据Fibaud= Fideal/(8*NJ得到所述外部主控MCU发送所述训练字节的预估波特率Fibaud。
[0012]优选的,所述依据所述实际波特率Fbaud得到所述训练字节的两个下降沿的时间间隔TMf,包括:
[0013]利用所述实际波特率Fbaud,依据TMf= 8/Fbaud得到所述训练字节的两个下降沿的时间间隔TMf。
[0014]优选的,所述利用所述计数值队。和所述时间间隔T %计算得到所述RC时钟模块的实际时钟频率F?,包括:
[0015]利用所述计数值Nrc和所述时间间隔T ref,依据Fk = \。/%#得到所述RC时钟模块的实际时钟频率F?。
[0016]优选的,所述依据所述实际时钟频率Frc与所述预设时钟频率Fideal之间的差值调整所述RC时钟模块的时钟频率,获取所述RC时钟模块调整后的准确的时钟频率Fra之后,还包括:
[0017]通过计量模块对功率进行测量得到功率P ;
[0018]利用所述预设时钟频率Fidea^所述时钟频率F rcc,依据C;。= F ideal/Frcc-l得到需要对所述功率P进行补偿的补偿值Cm;
[0019]利用所述补偿值C;。对所述功率P进行补偿,依据P。= (1+C rc) XP得到补偿后的功率P。。
[0020]本发明还提供一种无晶体计量SoC芯片,包括:
[0021]串口 UART,用于接收外部主控MCU发送的训练字节;
[0022]与所述串口 UART相连的波特率调整模块,用于在RC时钟模块产生的预设时钟频率Fideal的作用下,对所述训练字节的两个下降沿的时间间隔TMf进行计数得到计数值N“
[0023]与所述波特率调整模块相连的内部MCU模块,用于利用所述预设时钟频率Fidea^S计数值队。计算得到所述外部主控MCU发送所述训练字节的预估波特率F ibaud,通过查表获取所述外部主控MCU发送所述训练字节的实际波特率Fbaud,依据所述实际波特率Fbaud得到所述训练字节的两个下降沿的时间间隔TMf;并利用所述计数值所述时间间隔T %计算得到所述RC时钟模块的实际时钟频率F?;
[0024]与所述内部MCU模块相连的RC时钟调整控制模块,用于在所述内部MCU模块的控制作用下,依据所述实际时钟频率Fre与所述预设时钟频率F idMl之间的差值调整所述RC时钟模块的时钟频率,获取所述RC时钟模块调整后的准确的时钟频率Fkx;
[0025]与所述RC时钟调整控制模块、内部MCU模块、波特率测量模块和串口 UART相连的所述RC时钟模块,用于为所述无晶体计量SoC芯片提供时钟频率;
[0026]与所述串口 UART、内部MCU模块、RC时钟模块及RC时钟调整控制模块相连的计量模块,用于输出电能参数的测量值。
[0027]优选的,所述预估波特率Fibaud的计算公式为:Fibaud= F ideal/(8*Nr。),其中,Fideal为所述RC时钟模块产生的预设时钟频率,队。为对所述训练字节的两个下降沿的时间间隔Tref进行计数得到计数值。
[0028]优选的,所述训练字节的两个下降沿的时间间隔Tref的计算公式为:TMf= 8/Fbaud,其中,所述Fbaud为所述训练字节的实际波特率。
[0029]优选的,所述实际时钟频率Fre的计算公式为:FM= NrcAref,其中,Nrc为对所述训练字节的两个下降沿的时间间隔TMf进行计数得到计数值,TMf为所述训练字节的两个下降沿的时间间隔。
[0030]优选的,所述无晶体计量SoC芯片还包括:
[0031]与所述计量模块和所述RC时钟模块相连的功率补偿模块,用于通过所述计量模块对功率进行测量得到功率P,利用所述预设时钟频率Fidea^s所述时钟频率F rcc,依据C;。=Fideal/Frcc-1得到需要对所述功率P进行补偿的补偿值CTC,利用所述补偿值Ctc对所述功率P进行补偿,依据P。= (l+c rc) XP得到补偿后的功率P。。
[0032]本发明所提供的一种无晶体计量SoC芯片及其时钟获取方法,在RC时钟模块产生的预设时钟频率匕_的作用下,对训练字节的两个下降沿的时间间隔TMf进行计数得到计数值队。,并利用预设时钟频率FidMl&计数值N M计算得到外部主控MCU发送训练字节的预估波特率Fibaund,再通过查表获取外部主控MCU发送训练字节的实际波特率Fbaund,依据实际波特率Fbaud得到训练字节的两个下降沿的时间间隔T ref,且利用计数值队。和时间间隔T ref计算得到RC时钟模块的实际时钟频率F?,依据实际时钟频率FJ.周整RC时钟模块的时钟频率,获取RC时钟模块调整后的时钟频率F?。。可见,无晶体计量SoC芯片本身能够获取与主控MCU同步的时钟频率,不必使用外置晶体提供时钟频率,降低了系统成本,提高了计量SoC芯片中计量模块获取时钟的可靠性。
【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或