本发明涉及电子技术和热力学
技术领域:
,尤其涉及一种提高嵌入式系统时钟精度的方法、系统、设备及存储介质。
背景技术:
:目前嵌入式系统soc(或mcu)工作时均需要使用时钟晶振,为系统提供时钟,起到计时、同步和量化频率等作用。然而,嵌入式产品在工作时soc发热量大,时钟晶振对温度极为敏感,特别是如果时钟晶振靠近soc放置,受到soc的发热影响更大,时钟晶振在不同温度下频率不同,导致频偏较大,影响精准计时。针对上述精度问题,现有的改进方案大都选择高精度的晶振作为时钟源,但难以满足对时间精度要求高的系统要求。具体地,普通的晶振频率绝对精度可达百万分之五十(50ppm),高级的精度更高。如果晶振在常温下的误差为20ppm,则一天时间误差则为:δt=20ppm×32768×24×3600/32768=1.728(s)每周的累计误差为12.1s。而且,在不同温度下,其误差随温度变化。这么大的时间误差和波动,对于那些对时间精度要求高的嵌入式系统或产品来说,仍然是不能接受的。技术实现要素:本发明的目的在于提出一种提高嵌入式系统时钟精度的方法、系统、设备及存储介质,能有效避免晶振因温度变化影响其频率精度,造成系统时间误差大和波动大的问题,以克服现有技术中的不足之处。为达此目的,本发明采用以下技术方案:提高嵌入式系统时钟精度的方法,包括以下步骤:步骤s1:获取时钟晶振在不同温度下频率的误差g,建立温度与晶振时钟误差g的对应关系;步骤s2:根据soc内部温度推算出时钟晶振的温度;步骤s3:计算嵌入式系统的时间补偿。优选的,所述步骤s1具体包括:根据时钟晶振的规格书获取时钟晶振在不同温度tjz下的误差g,进行曲线拟合,得到误差g与温度tjz的关系式:g=atjz2 btjz c其中a、b、c为常数。优选的,所述步骤s2具体包括:步骤s201:建立热力学仿真模型:以x轴向为例建立网格,其中,γ=k/c,c为固体或流体的比热,k为固体或流体的传热系数,ρ为固体或流体的密度,u为流体速度矢量,t为时间,n代表第i个单元体的中心点,s为总发热量;步骤s202:设置热力学仿真模型的初始条件和边界条件,其中,初始条件为仿真环境的温度,边界条件为-40~80℃;步骤s203:对热力学仿真模型进行网格划分,其中,第一空气区域的网格尺寸为8~12mm,垂直于pcb板方向的网格尺寸为0.1~0.2mm,平行于pcb板方向的网格尺寸为0.5~1.5mm,第二空气区域的网格尺寸为0.2~10mm;步骤s204:将边界条件数值代入热力学仿真模型,利用仿真软件得到soc温度tsoc、晶振温度tjz,并采用一元线性回归分析法,获得晶振温度tjz、环境温度thj随soc温度tsoc呈线性变化的方程:tjz=k1tsoc k2thj=k3tsoc k4其中,k1、k2、k3、k4均为常数,根据仿真数据和回归分析获得。优选的,所述步骤s3具体包括:步骤s301:计算嵌入式系统在关机状态的补偿时间:开机时程序读取内核温度值tsoc,代入以下公式获得环境温度thj:thj=k3tsoc k4令tjz=thj,代入以下公式获得晶振误差值g:g=atjz2 btjz c每次关机时记录关机的时间值τ1,开机时记录时间为τ2;补偿时间值为tbc=(τ2-τ1)g;晶振在关机状态阶段的温度误差时间补偿公式为:tdqbc=tdq tbc=tdq (τ2-τ1)g其中,tdq为当前时间,tbc为补偿时间,tdqbc为补偿后的时间;步骤s302:计算嵌入式系统在工作状态的补偿时间:开机后每分钟读取soc温度tsoc,并将tsoc代入以下公式:tjz=k1tsoc k2g=atjz2 btjz c分别获得晶振温度tjz和晶振误差值g;补偿时间值为tbc=(τ2-τ1)g;将补偿时间tbc依次存储到数组a[tbc1......tbcn],在数组a存储满后或者系统关机前进行时间补偿;对补偿时间数组a求和求得补偿时间为:tsum=tbc1 tbc2 … tbcn补偿后的修改时间为:tdqbc=tdq tsum时间补偿完成后,对数组a进行清零;进入下一次补偿循环或记录关机时间τ1,进行关机动作。提高嵌入式系统时钟精度的系统,包括温度与晶振时钟误差建立模块、晶振温度计算模块和时间补偿计算模块;所述温度与晶振时钟误差建立模块,用于获取时钟晶振在不同温度下频率的误差g,建立温度与晶振时钟误差g的对应关系;所述晶振温度计算模块,用于根据soc内部温度推算出时钟晶振的温度;所述时间补偿计算模块,用于计算嵌入式系统的时间补偿。优选的,所述温度与晶振时钟误差建立模块,具体用于根据时钟晶振的规格书获取时钟晶振在不同温度tjz下的误差g,进行曲线拟合,得到误差g与温度tjz的关系式:g=atjz2 btjz c其中a、b、c为常数。优选的,所述晶振温度计算模块包括模型建立单元、条件设置单元、网格划分单元和仿真运行单元;所述模型建立单元,用于以x轴向为例建立网格,其中,γ=k/c,c为固体或流体的比热,k为固体或流体的传热系数,ρ为固体或流体的密度,u为流体速度矢量,t为时间,n代表第i个单元体的中心点,s为总发热量;所述条件设置单元,用于设置热力学仿真模型的初始条件和边界条件,其中,初始条件为仿真环境的温度,边界条件为-40~80℃;所述网格划分单元,用于对热力学仿真模型进行网格划分,其中,第一空气区域的网格尺寸为8~12mm,垂直于pcb板方向的网格尺寸为0.1~0.2mm,平行于pcb板方向的网格尺寸为0.5~1.5mm,第二空气区域的网格尺寸为0.2~10mm;所述仿真运行单元,用于将边界条件数值代入热力学仿真模型,利用仿真得到soc温度tsoc、晶振温度tjz,并采用一元线性回归分析法,获得晶振温度tjz、环境温度thj随soc温度tsoc呈线性变化的方程:tjz=k1tsoc k2thj=k3tsoc k4其中,k1、k2、k3、k4均为常数,可由仿真数据和回归分析获得。优选的,所述时间补偿计算模块包括关机状态补偿时间计算单元和工作状态补偿时间计算单元;所述关机状态补偿时间计算单元,用于计算嵌入式系统在关机状态的补偿时间;具体地,开机后程序读取内核温度值tsoc,代入以下公式获得环境温度thj:thj=k3tsoc k4令tjz=thj,代入以下公式获得晶振误差值g:g=atjz2 btjz c每次关机时记录关机的时间值τ1,开机时记录时间为τ2;关机状态的温度无法获取,通过开机时推算出环境温度,认为此时的环境温度值为关机阶段的环境温度;补偿时间值为tbc=(τ2-τ1)g;晶振在关机状态阶段的温度误差时间补偿公式为:tdqbc=tdq tbc=tdq (τ2-τ1)g其中,tdq为当前时间,tbc为补偿时间,tdqbc为补偿后的时间;所述工作状态补偿时间计算单元,用于计算嵌入式系统在工作状态的补偿时间;具体地,开机后每分钟读取soc温度tsoc,并将tsoc代入以下公式:tjz=k1tsoc k2g=atjz2 btjz c分别获得晶振温度tjz和晶振误差值g;补偿时间值为tbc=(τ2-τ1)g;将补偿时间tbc依次存储到数组a[tbc1......tbcn],在数组a存储满后或者系统关机前进行时间补偿;对补偿时间数组a求和求得补偿时间为:tsum=tbc1 tbc2 … tbcn补偿后的修改时间为:tdqbc=tdq tsum时间补偿完成后,对数组a进行清零;进入下一次补偿循环或记录关机时间τ1,进行关机动作。设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算程序时实现上述的提高嵌入式系统时钟精度的方法中的步骤。存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述的提高嵌入式系统时钟精度的方法中的步骤。本发明的有益效果:本技术方案通过晶振规格书的温度偏差曲线数据,得到不同温度下时钟晶振的时钟偏差值,即晶振误差与其温度的关系式;然后,利用soc内部温度传感器读取soc的实时温度值,根据热力学模型以及嵌入式产品的总功率、散热面积和材质、soc与晶振的距离和系统的散热结构等参数,通过热仿真,获得soc内核温度与时钟晶振的温度值的函数;最后再通过函数计算时钟晶振的温度值,对照时钟晶振频率偏差值与温度的关系,求得时钟晶振在此温度下的频率偏差值,累计一定误差时间,定时修正时钟值,解决因晶振频率偏差导致的误差累计问题,使时钟精准度明显提高。附图说明附图对本发明做进一步说明,但附图中的内容不构成对本发明的任何限制。图1是本发明一种提高嵌入式系统时钟精度的方法的流程图。图2是本发明一种提高嵌入式系统时钟精度的系统的示意图。具体实施方式由于嵌入式产品在工作时soc发热量大,时钟晶振对温度极为敏感,特别是如果时钟晶振靠近soc放置,受到soc的发热影响更大,时钟晶振在不同温度下频率不同,导致频偏较大,影响精准计时。为了解决上述晶振因温度影响其频率精度,造成系统时间误差大和波动大的问题,本发明提供一种提高嵌入式系统时钟精度的方法,包括以下步骤:步骤s1:获取时钟晶振在不同温度下频率误差g,建立温度与晶振时钟误差g的对应关系;步骤s2:根据soc内部温度推算出时钟晶振的温度;步骤s3:计算嵌入式系统的时间补偿。下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。本发明主要提升无网络定时的嵌入式系统或产品的时间精度。根据晶振在不同温度的偏差值,利用soc内部温度传感器以及热力学定理,计算soc内部温度值与晶振温度值的关系。通过在嵌入式系统上增加算法,将soc温度与晶振的温度偏差数据相关联,计算出当前时间温度的偏差,定时对时钟的偏差进行补偿,从而提升时间精度。更进一步说明,所述步骤s1具体包括:根据时钟晶振的规格书获取时钟晶振在不同温度tjz下的误差g,进行曲线拟合,得到误差g与温度tjz的关系式:g=atjz2 btjz c其中a、b、c为常数,例如a=-0.0258,b=1.1247,c=-15.215,但不限制于此。更进一步说明,所述步骤s2具体包括:步骤s201:建立热力学仿真模型:以x轴向为例建立网格,单元体积:vp=δxδyδz,x轴向面积:ax=δyδz,x轴向的质量守恒方程为:x轴向的能量守恒方程为:对于有限体积法的质量守恒方程有:所以,有限体积法的质量守恒方程为:对于有限体积法的能量守恒方程,有瞬态项:传递项:由于thxf=tp;ρhxf=ρp;tlxf=tlx;ρl×f=ρlx所以控制项:热源项:所以,有限体积法的能量守恒方程为:上式,两边同时除以vp,并联立质量守恒方程得,令γ=k/c,得该方程也可以表示为:由单个网格方程推导出(i2-i1 1)个网格方程,则为:其中,c为固体或流体的比热,k为固体或流体的传热系数,ρ为固体或流体的密度,u为流体速度矢量,t为时间,n代表第i个单元体的中心点,s为总发热量;步骤s202:设置热力学仿真模型的初始条件和边界条件,其中,初始条件为仿真环境的温度,边界条件为-40~80℃;步骤s203、对热力学仿真模型进行网格划分,其中,第一空气区域的网格尺寸为8~12mm,垂直于pcb板方向的网格尺寸为0.1~0.2mm,平行于pcb板方向的网格尺寸为0.5~1.5mm,第二空气区域的网格尺寸为0.2~10mm;步骤s204、将边界条件数值代入热力学仿真模型,利用热仿真软件得到soc温度tsoc、晶振温度tjz,并采用一元线性回归分析法,获得晶振温度tjz、环境温度thj随soc温度tsoc呈线性变化的方程:tjz=k1tsoc k2thj=k3tsoc k4其中,k1、k2、k3、k4均为常数。在本技术方案的一个实施例中,步骤s201可使用flotherm仿真软件建立热力学仿真模型,热力学仿真模型包含固体和流体,需要说明的是,在本技术方案中,固体主要为mpu、晶振、pcb、ddr3、散热片等,流体为空气。在本技术方案的步骤s202中,初始条件为空气的初始温度,即环境的温度。边界条件为空气的区域边界,即环境温度的上下限,本技术方案将初始条件设定为仿真环境的温度,边界条件设定为-40~80℃,有利于提高热力学仿真模型的有效性。在本技术方案的步骤s203中,对热力学仿真模型进行网格划分,为了保证计算精度和计算效率,对于区域大且物质均匀的第一空气区域的网格尺寸设置为8~12mm,更优选为10mm。对于电器件(固体)则采用局部网格细化,从而获取较高精度的温度值,其中,垂直于pcb板方向的网格尺寸设置为0.1~0.2mm,更优选为0.2mm;平行于pcb板方向的网格尺寸设置为0.5~1.5mm,更优选为1mm;固体周边的第二空气区域则采用0.2~10mm变化的过渡网格。在本技术方案的一个实施例中,步骤s204中,将边界条件数值代入热力学仿真模型,通过仿真软件获得的仿真结果如下表:环境温度/℃晶振温度/℃soc温度/℃-40414.5-3012.723.1-2021.331.4-1030.140.1038.848.71047.457.32056.165.83064.774.34073.382.8508291.36090.799.97099.4108.580108.1117.1根据上表数据,使用一元线性回归分析法,可得到k1=1.0143,k2=-10.65,k3=1.1701,k4=-56.939。更进一步说明,所述步骤s3具体包括:步骤s301:计算嵌入式系统在关机状态的补偿时间:大部分嵌入式系统在关机或休眠时,晶振时钟仍通过备用电池或金电容工作。由于关机状态的温度无法获取,通过开机时推算出环境温度,认为此时的晶振温度值即为关机阶段的环境温度。开机时程序读取内核温度值tsoc,代入以下公式获得环境温度thj:thj=k3tsoc k4令tjz=thj,代入以下公式获得晶振误差值g:g=atjz2 btjz c每次关机时记录关机的时间值τ1,开机时记录时间为τ2;关机状态的温度无法获取,通过开机时推算出环境温度,认为此时的环境温度值为关机阶段的环境温度;补偿时间值为tbc=(τ2-τ1)g;晶振在关机状态阶段的温度误差时间补偿公式为:tdqbc=tdq tbc=tdq (τ2-τ1)g其中,tdq为当前时间,tbc为补偿时间,tdqbc为补偿后的时间;步骤s302:计算嵌入式系统在工作状态的补偿时间:开机后每分钟读取soc温度tsoc,并将tsoc代入以下公式:tjz=k1tsoc k2g=atjz2 btjz c分别获得晶振温度tjz和晶振误差值g;补偿时间值为tbc=(τ2-τ1)g;将补偿时间tbc依次存储到数组a[tbc1......tbcn],在数组a存储满后或者系统关机前进行时间补偿;对补偿时间数组a求和求得补偿时间为:tsum=tbc1 tbc2 … tbcn补偿后的修改时间为:tdqbc=tdq tsum时间补偿完成后,对数组a进行清零;进入下一次补偿循环或记录关机时间τ1,进行关机动作。在本技术方案的一个实施例中,k1=1.0143,k2=-10.65,k3=1.1701,k4=-56.939,那么步骤s302的具体步骤是:开机后每分钟读取soc温度tsoc,并将tsoc代入以下公式:tjz=1.0143*tsoc-10.65g=-0.0258*tjz2 1.1247*tjz-15.21分别获得晶振温度tjz和晶振误差值g;补偿时间值为tbc=(τ2-τ1)g=60g;将补偿时间tbc依次存储到数组a[tbc1......tbcn],在数组a存储满后或者系统关机前进行时间补偿;对补偿时间数组a求和求得补偿时间为:tsum=tbc1 tbc2 … tbcn补偿后的修改时间为:tdqbc=tdq tsum时间补偿完成后,对数组a进行清零;进入下一次补偿循环或记录关机时间τ1,进行关机动作。在本技术方案的一个实施例中,若:开机时间τ2=12:00:00,关机时间τ1=10:00:00当前时间tdq=12:00:20,soc温度tsoc=50℃计算出环境温度thj=1.1701*tsoc-56.939=1.566℃在关机状态,晶振温度等于环境温度tjz=thj=1.566℃求得误差值:g=-0.0258*tjz2 1.1247*tjz-15.215=-13.5ppm时间修正补偿时间为:tbc=(τ2-τ1)g=(12:00:00.00-10:00:00.00)*(-13.5ppm)=-0.0972s则补偿后的修正时间为:tdqbc=tdq tbc=12:00:20.0000-0.0972s=12:00:19.9028。在本技术方案的另一个实施例中,设tsoc=100℃,且温度稳定,数组a宽为100,则:tjz=1.0143*tsoc-10.65=90.78g=-0.0258*tjz2 1.1247*tjz-15.21=-125.7277ppmtbc=60g=60*(-125.7277ppm)=-7,543.6620ppm数组a为[-7,543.6620,-7,543.6620……-7,543.6620]当数组a存储满时,当前时间tdq=18:10:80.0000补偿时间合计为:tsum=tbc1 tbc2 ... tbcn=100*(-7,543.6620ppm)=-0.7543s则补偿后的修正时间为:tdqbc=tdq tsum=18:10:50.0000-0.7543=18:10:49.2457。本技术方案还提出了一种提高嵌入式系统时钟精度的系统,包括温度与晶振时钟误差建立模块、晶振温度计算模块和时间补偿计算模块;所述温度与晶振时钟误差建立模块,用于获取时钟晶振在不同温度下频率的误差g,建立温度与晶振时钟误差g的对应关系;所述晶振温度计算模块,用于根据soc内部温度推算出时钟晶振的温度;所述时间补偿计算模块,用于计算嵌入式系统的时间补偿。更进一步说明,所述温度与晶振时钟误差建立模块,具体用于根据时钟晶振的规格书获取时钟晶振在不同温度tjz下的误差g,进行曲线拟合,得到误差g与温度tjz的关系式:g=atjz2 btjz c其中a、b、c为常数。更进一步说明,所述晶振温度计算模块包括模型建立单元、条件设置单元、网格划分单元和仿真运行单元;所述模型建立单元,用于以x轴向为例建立网格,单元体积:vp=δxδyδz,x轴向面积:ax=δyδz,x轴向的质量守恒方程为:x轴向的能量守恒方程为:对于有限体积法的质量守恒方程有:所以,有限体积法的质量守恒方程为:对于有限体积法的能量守恒方程,有瞬态项:传递项:由于thxf=tp;ρhxf=ρp;tlxf=tlx;ρlxf=ρlx所以控制项:热源项:所以,有限体积法的能量守恒方程为:上式,两边同时除以vp,并联立质量守恒方程得,令γ=k/c,得该方程也可以表示为:由单个网格方程推导出(i2-i1 1)个网格方程,则为:其中,c为固体或流体的比热,k为固体或流体的传热系数,ρ为固体或流体的密度,u为流体速度矢量,t为时间,n代表第i个单元体的中心点,s为总发热量;所述条件设置单元,用于设置热力学仿真模型的初始条件和边界条件,其中,初始条件为仿真环境的温度,边界条件为-40~80℃;所述网格划分单元,用于对热力学仿真模型进行网格划分,其中,第一空气区域的网格尺寸为8~12mm,垂直于pcb板方向的网格尺寸为0.1~0.2mm,平行于pcb板方向的网格尺寸为0.5~1.5mm,第二空气区域的网格尺寸为0.2~10mm;所述仿真运行单元,用于将边界条件数值代入热力学仿真模型,通过热仿真软件得到soc温度tsoc、晶振温度tjz,并采用一元线性回归分析法,获得晶振温度tjz、环境温度thj随soc温度tsoc呈线性变化的方程:tjz=k1tsoc k2thj=k3tsoc k4其中,k1、k2、k3、k4均为常数。更进一步说明,所述时间补偿计算模块包括关机状态补偿时间计算单元和工作状态补偿时间计算单元;所述关机状态补偿时间计算单元,用于计算嵌入式系统在关机状态的补偿时间;具体地,开机时程序读取内核温度值tsoc,代入以下公式获得环境温度thj和晶振误差值g:thj=k3tsoc k4令tjz=thj,代入以下公式获得晶振误差值g:g=atjz2 btjz c每次关机时记录关机的时间值τ1,开机时记录时间为τ2;关机状态的温度无法获取,通过开机时推算出环境温度,认为此时的环境温度值为关机阶段的环境温度;补偿时间值为tbc=(τ2-τ1)g;晶振在关机状态阶段的温度误差时间补偿公式为:tdqbc=tdq tbc=tdq (τ2-τ1)g其中,tdq为当前时间,tbc为补偿时间,tdqbc为补偿后的时间;所述工作状态补偿时间计算单元,用于计算嵌入式系统在工作状态的补偿时间:开机后每分钟读取soc温度tsoc,并将tsoc代入以下公式:tjz=k1tsoc k2g=atjz2 btjz c分别获得晶振温度tjz和晶振误差值g;补偿时间值为tbc=(τ2-τ1)g;将补偿时间tbc依次存储到数组a[tbc1......tbcn],在数组a存储满后或者系统关机前进行时间补偿;对补偿时间数组a求和求得补偿时间为:tsum=tbc1 tbc2 … tbcn补偿后的修改时间为:tdqbc=tdq tsum时间补偿完成后,对数组a进行清零;进入下一次补偿循环或记录关机时间τ1,进行关机动作。进一步地,本技术方案还提出了一种设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算程序时实现上述的提高嵌入式系统时钟精度的方法中的步骤。更进一步地,本技术方案还提出了一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述的提高嵌入式系统时钟精度的方法中的步骤。以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。当前第1页1 2 3 
技术特征:1.提高嵌入式系统时钟精度的方法,其特征在于,包括以下步骤:
步骤s1:获取时钟晶振在不同温度下频率的误差g,建立温度与晶振时钟误差g的对应关系;
步骤s2:根据soc内部温度推算出时钟晶振的温度;
步骤s3:计算嵌入式系统的时间补偿。
2.根据权利要求1所述的提高嵌入式系统时钟精度的方法,其特征在于:所述步骤s1具体包括:
根据时钟晶振的规格书获取时钟晶振在不同温度tjz下的误差g,进行曲线拟合,得到误差g与温度tjz的关系式:
g=atjz2 btjz c
其中a、b、c为常数。
3.根据权利要求1所述的提高嵌入式系统时钟精度的方法,其特征在于:所述步骤s2具体包括:
步骤s201:建立热力学仿真模型:
以x轴向为例建立网格,
其中,γ=k/c,c为固体或流体的比热,k为固体或流体的传热系数,ρ为固体或流体的密度,u为流体速度矢量,t为时间,n代表第i个单元体的中心点,s为总发热量;
步骤s202:设置热力学仿真模型的初始条件和边界条件,其中,初始条件为仿真环境的温度,边界条件为-40~80℃;
步骤s203:对热力学仿真模型进行网格划分,其中,第一空气区域的网格尺寸为8~12mm,垂直于pcb板方向的网格尺寸为0.1~0.2mm,平行于pcb板方向的网格尺寸为0.5~1.5mm,第二空气区域的网格尺寸为0.2~10mm;
步骤s204:将边界条件数值代入热力学仿真模型,利用仿真软件得到soc温度tsoc、晶振温度tjz,并采用一元线性回归分析法,获得晶振温度tjz、环境温度thj随soc温度tsoc呈线性变化的方程:
tjz=k1tsoc k2
thj=k3tsoc k4
其中,k1、k2、k3、k4均为常数,根据仿真数据和回归分析获得。
4.根据权利要求1所述的提高嵌入式系统时钟精度的方法,其特征在于:所述步骤s3具体包括:
步骤s301:计算嵌入式系统在关机状态的补偿时间:
开机时程序读取内核温度值tsoc,代入以下公式获得环境温度thj:
thj=k3tsoc k4
令tjz=thj,代入以下公式获得晶振误差值g:
g=atjz2 btjz c
每次关机时记录关机的时间值τ1,开机时记录时间为τ2;
补偿时间值为tbc=(τ2-τ1)g;
晶振在关机状态阶段的温度误差时间补偿公式为:
tdqbc=tdq tbc=tdq (τ2-τ1)g
其中,tdq为当前时间,tbc为补偿时间,tdqbc为补偿后的时间;
步骤s302:计算嵌入式系统在工作状态的补偿时间:
开机后每分钟读取soc温度tsoc,并将tsoc代入以下公式:
tjz=k1tsoc k2
g=atjz2 btjz c
分别获得晶振温度tjz和晶振误差值g;
补偿时间值为tbc=(τ2-τ1)g;
将补偿时间tbc依次存储到数组a[tbc1......tbcn],在数组a存储满后或者系统关机前进行时间补偿;
对补偿时间数组a求和,求得补偿时间为:
tsum=tbc1 tbc2 … tbcn
补偿后的修改时间为:
tdqbc=tdq tsum
时间补偿完成后,对数组a进行清零;进入下一次补偿循环或记录关机时间τ1,进行关机动作。
5.提高嵌入式系统时钟精度的系统,其特征在于:包括温度与晶振时钟误差建立模块、晶振温度计算模块和时间补偿计算模块;
所述温度与晶振时钟误差建立模块,用于获取时钟晶振在不同温度下频率的误差g,建立温度与晶振时钟误差g的对应关系;
所述晶振温度计算模块,用于根据soc内部温度推算出时钟晶振的温度;
所述时间补偿计算模块,用于计算嵌入式系统的时间补偿。
6.根据权利要求5所述的提高嵌入式系统时钟精度的系统,其特征在于:所述温度与晶振时钟误差建立模块,具体用于根据时钟晶振的规格书获取时钟晶振在不同温度tjz下的误差g,进行曲线拟合,得到误差g与温度tjz的关系式:
g=atjz2 btjz c
其中a、b、c为常数。
7.根据权利要求5所述的提高嵌入式系统时钟精度的系统,其特征在于:所述晶振温度计算模块包括模型建立单元、条件设置单元、网格划分单元和仿真运行单元;
所述模型建立单元,用于以x轴向为例建立网格,
其中,γ=k/c,c为固体或流体的比热,k为固体或流体的传热系数,ρ为固体或流体的密度,u为流体速度矢量,t为时间,n代表第i个单元体的中心点,s为总发热量;
所述条件设置单元,用于设置热力学仿真模型的初始条件和边界条件,其中,初始条件为仿真环境的温度,边界条件为-40~80℃;
所述网格划分单元,用于对热力学仿真模型进行网格划分,其中,第一空气区域的网格尺寸为8~12mm,垂直于pcb板方向的网格尺寸为0.1~0.2mm,平行于pcb板方向的网格尺寸为0.5~1.5mm,第二空气区域的网格尺寸为0.2~10mm;
所述仿真运行单元,用于将边界条件数值代入热力学仿真模型,通过仿真软件得到soc温度tsoc、晶振温度tjz,并采用一元线性回归分析法,获得晶振温度tjz、环境温度thj随soc温度tsoc呈线性变化的方程:
tjz=k1tsoc k2
thj=k3tsoc k4
其中,k1、k2、k3、k4均为常数。
8.根据权利要求5所述的提高嵌入式系统时钟精度的系统,其特征在于:所述时间补偿计算模块包括关机状态补偿时间计算单元和工作状态补偿时间计算单元;
所述关机状态补偿时间计算单元,用于计算嵌入式系统在关机状态的补偿时间;
具体地,开机时程序读取内核温度值tsoc,代入以下公式获得环境温度thj:
thj=k3tsoc k4
令tjz=thj,代入以下公式获得晶振误差值g:
g=atjz2 btjz c
每次关机时记录关机的时间值τ1,开机时记录时间为τ2;
关机状态的温度无法获取,通过开机时推算出环境温度,认为此时的环境温度值为关机阶段的环境温度;
补偿时间值为tbc=(τ2-τ1)g;
晶振在关机状态阶段的温度误差时间补偿公式为:
tdqbc=tdq tbc=tdq (τ2-τ1)g
其中,tdq为当前时间,tbc为补偿时间,tdqbc为补偿后的时间;
所述工作状态补偿时间计算单元,用于计算嵌入式系统在工作状态的补偿时间;
具体地,开机后每分钟读取soc温度tsoc,并将tsoc代入以下公式:
tjz=k1tsoc k2
g=atjz2 btjz c
分别获得晶振温度tjz和晶振误差值g;
补偿时间值为tbc=(τ2-τ1)g;
将补偿时间tbc依次存储到数组a[tbc1......tbcn],在数组a存储满后或者系统关机前进行时间补偿;
对补偿时间数组a求和求得补偿时间为:
tsum=tbc1 tbc2 … tbcn
补偿后的修改时间为:
tdqbc=tdq tsum
时间补偿完成后,对数组a进行清零;
进入下一次补偿循环或记录关机时间τ1,进行关机动作。
9.设备,其特征在于:包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算程序时实现权利要求1~4中任意一项所述的提高嵌入式系统时钟精度的方法中的步骤。
10.存储介质,其特征在于:所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~4中任意一项所述的提高嵌入式系统时钟精度的方法中的步骤。
技术总结本发明公开了提高嵌入式系统时钟精度的方法、系统、设备及存储介质,其中,提高嵌入式系统时钟精度的方法,包括以下步骤:步骤S1,获取时钟晶振在不同温度下频率的误差g,建立温度与晶振时钟误差g的对应关系;步骤S2,根据SOC内部温度推算出时钟晶振的温度;步骤S3,计算嵌入式系统的时间补偿。本技术方案提出的一种提高嵌入式系统时钟精度的方法、系统、设备及存储介质,能有效避免晶振因温度变化影响其频率精度,造成系统时间误差大和波动大的问题,以克服现有技术中的不足之处。
技术研发人员:林为;李佳敏;陈伟镇;郑品棋;冯泽君
受保护的技术使用者:佛山职业技术学院
技术研发日:2020.10.30
技术公布日:2021.03.12