基于SOC芯片电表的MCU内置基准温度补偿方法技术

技术编号:7775140 阅读:386 留言:0更新日期:2012-09-15 15:05
本发明专利技术公开了一种基于SOC电表方案的MCU内置基准温度补偿方法。该方法首先测量得到内置基准及误差与温度的关系数据,再通过计算得到内置基准校正所需的微调因子与温度的对应关系,并将相关数据点存储起来,建立补偿数据表格以供查表使用;然后通过使用MCU微控制器的片上温度传感器定时读取片上温度,并采用查表和插值相结合的方法计算该温度下的内置基准微调因子;最后使用计算得到的微调因子设置内置基准数字调节寄存器的值,以补偿由于温度变化造成的内置基准的波动。本发明专利技术克服了温度效应对基准电压、A/D转换结果及电能测量精度的影响,简化了后续的温度补偿处理环节,可操作性强、成本低、稳定性好,可广泛应用于基于嵌入式SOC方案的电能计量领域中。

【技术实现步骤摘要】

本专利技术主要涉及电能计量
,具体涉及基于SOC芯片电表的MCU内置基准温补偿方法。
技术介绍
随着大規模集成电路的逐渐发展及片上系统SOC技术的日益成熟,电能表计量方案逐步进入SOC单芯片设计方案时代。基于嵌入式SOC芯片方案的智能电表绝大部分使用片内A/D等模拟部件完成模拟信号采集。參考电压用于为A/D转换器中的电阻阶梯网络提供基准电压,在模拟信号采集中必不可少。理论与实践均表明,參考电压的波动会导致A/D转换结果产生较大的误差,从而影响测量精度。在实际应用中,參考电压可直接由SOC芯片内置精密电压源提供,也可由专用电压參考芯片提供。无论是内置基准还是外置专用基准芯片,一般都使用能隙电压源结构。这种能隙电压源只有在室温附近能够得到近似于零的温度系数,在低温时具有正的温度特性,在高温时具有负的温度特性,并且在低温和高温区域,温度系数能够达到±30 10X107/°C。这说明參考电压的温度效应会导致测量结果产生较大误差。SOC芯片内置的參考电压一般不带温度补偿。虽然目前已有内部自带温度补偿、温度系数小的外置专用基准芯片,但价格昂贵。因此,如何减小參考电压的温度效应,并且成本较低是目前亟待解决的问题。
技术实现思路
本专利技术的目的在于提供一种能减小參考电压的温度效应,并且应用成本低的基于SOC芯片电表的MCU内置基准温度补偿方法 本专利技术基于SOC芯片电表的MCU内置基准温度补偿方法,包括以下步骤 (I).建立温度补偿数据表 a.将电表置于温度点T的环境中工作; b.測量并记录MCU内置基准的输出电压值,记为U(T); c.计算MCU内置基准电压误差e⑴, 适用公式为e (T) =u (T)-U。, 式中Utl为MCU内置基准在室温时的标定输出值,可从MCU技术特性手册中查到; d.计算MCU内置基准的电压补偿值, 适用公式为r(T)=rcre(T)/m,式中,r0为MCU内置基准校准寄存器的电压初始值,e(T)为步骤c计算得到的MCU内置基准的电压误差,m为MCU内置基准的最小校正电压,该m值从MCU技术手册中查到;在电表工作环境可能到达的温度范围,将数据(T,r(T))用ー个ー维数组表示并按照温度由小到大依序存放得到温度补偿数据表,其中T是指电表工作环境可能到达的温度范围内的任一温度点;r(T)是对应于该温度点MCU内置基准的电压补偿值;(2).线性插值计算得到MCU内置基准在当前温度下的微调因子 读取SOC芯片片上温度,对于当前温度值Tc可以从所述温度补偿数据表中查到与该温度值T。相邻的两个补偿数据点(Ta,ra)和(Tb,rb),并以此两点进行线性插值得到MCU内置基准在当前温度下的微调因子r。,插值公式为re=ra+(rb-ra) X (Tc-Ta)/ (Tb-Ta); (3)用步骤(2)得到的微调因子对MCU内置基准当前的电压进行补偿; (4)重复步骤(2)和(3),并且每隔一定时间进行一次,用于电表在工作过程中一直得到MCU内置基准温度补偿。所述温度点T设在-40°C到+80°C的范围内。所述步骤(I)中数据(T,r(T)),以I摄氏度为间隔的数据点进行选取存储起来。所述步骤(4)的设定时间为100毫秒。所述步骤(2)中SOC芯片片上温度通过SOC芯片内部温度传感器读取。本专利技术方法能减小參考电压的温度效应,尤其在电能表等对电压參考的温度特性要求很高的应用场合,其效果更加明显。本专利技术能克服温度效应对基准电压、A/D转换结果及电能测量精度的影响,简化了后续的温度补偿处理环节,可操作性强、成本低、稳定性好,可广泛应用于基于嵌入式SOC方案的电能计量领域中。附图说明图I为温度补偿前和温度补偿后的基准电压曲线比较图。图2本专利技术方法实现时硬件平台框图。图3为本专利技术方法实施时的软件设计流程图。具体实施例方式本专利技术方法要做的第一件事是建立温度补偿数据表,具体实施时可以按如下步骤来做 a.先将电表放置在ー个温度能调节的高低温箱中工作,我们可以先设定ー个环境温度范围,这个范围应当是电表工作环境可能到达的温度范围,比如设在_40°C到+80°C,然后按照温度从低到高的原则,先将高低温箱设在_40°C,待温度稳定后,用ー个高精度数字万用表測量并记录MCU内置基准的输出电压值,记为u (-40); b.计算MCU内置基准电压误差e(-40), 适用公式为:e (-40) =U (-40)-U0, 式中Utl为MCU内置基准在室温(25摄氏度)时的标定输出值,可从MCU技术特性手册中查到; d.计算MCU内置基准的电压补偿值, 适用公式为r(-40)=rQ-e(-40)/m, 式中,rQ为MCU内置基准校准寄存器的电压初始值,e (-40) y由上一步骤得到,m为MCU 内置基准的最小校正电压,该m值从MCU技术手册中查到; 将数据(-40,r(-40))记录并存储起来。按照上面的方法将高低温箱的温度打到-39°C,得到数据(-39,r(_39)),再打到-38°C,得到数据(-38,r(-38)),如此这般以I摄氏度为间隔的数据点进行选取由小到大依序存放起来,便得到温度补偿数据表。要做的第二件事是线性插值计算得到MCU内置基准在当前温度下的微调因子 通过SOC芯片内部温度传感器读取SOC芯片片上温度,对于读取的当前温度值Tc可以从所述温度补偿数据表中查到与该温度值T。相邻的两个补偿数据点(Ta,ra)和(Tb,rb),并以此两点进行线性插值得到MCU内置基准在当前温度下的微调因子r。,插值公式为rc=ra+(rb-ra) X (Tc-TaV(Tb-Ta)。用得到微调因子对MCU内置基准当前的电压进行补偿。对于SOC芯片片上温度应定时读取,比如本实施方式是每隔100毫秒读取一次,然后插值计算得到微调因子,并进行电压补偿,如此不断重复该步骤,将对电表的MCU内置基准电压不断进行补偿,从而达到克服因环境温度的变化而引起的内置基准精度的变化的现状。本实施方式对电表补偿前和补偿后的数据进行了记录并形成了图1,从图I可以 看出补偿前电表的SOC芯片随着片上温度的增高MCU内置基准电压也不断增高,形成的线是一条向上的曲线(虚线所示),而补偿后片上温度高低对MCU内置基准电压几乎没有影响,形成的线接近一条水平线。本专利技术方法实施时以SOC智能电表为硬件平台,通过开发、配置SOC芯片的内部资源进行具体实施,參见图2,使用C语言对SOC芯片进行编程,使得SOC芯片内部配置有温度采样ADC、温度采样结果寄存器、温度补偿数据表、100毫秒定时器及补偿数据运算处理单元。其中温度采样ADC用于采集SOC芯片内部的温度传感器信号,采集到的温度存放于温度采样结果寄存器中;温度补偿数据表为一数组变量,用于存储基准电压在工作温度范围内各个温度点的微调因子,各个温度点之间的间隔为I摄氏度;100毫秒定时器用于控制温度采样ADC进行定时采样;补偿数据运算处理单元主要进行查表、线性插值等操作。根据本专利技术方法设计的软件流程图见图3,程序首先初始化系统,对ADC、定时器等模块及MCU进行初始化设置后,程序将温度补偿数据表从FLASH闪存中拷贝到RAM缓冲区中,以供直接、快速查表使用。然后程序不断查询10本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于SOC芯片电表的MCU内置基准温度补偿方法,包括以下步骤 (I).建立温度补偿数据表 a.将电表置于温度点T的环境中工作; b.測量并记录MCU内置基准的输出电压值,记为u(T); c.计算MCU内置基准电压误差e⑴, 适用公式为e (T) =u (T)-U。, 式中Utl为MCU内置基准在室温时的标定输出值,可从MCU技术特性手册中查到; d.计算MCU内置基准的电压补偿值, 适用公式为r(T)=rcre(T)/m, 式中,r0为MCU内置基准校准寄存器的电压初始值,e(T)为步骤c计算得到的MCU内置基准的电压误差,m为MCU内置基准的最小校正电压,该m值从MCU技术手册中查到; 在电表工作环境可能到达的温度范围,将数据(T,r(T))用ー个ー维数组表示并按照温度由小到大依序存放得到温度补偿数据表,其中T是指电表工作环境可能到达的温度范围内的任一温度点;r(T)是对应于该温度点MCU内置基准的电压补偿值; 线性插值计算得到MCU内置基准在当前温度下的微调因子 读取SOC芯片片上温度,对于当前温度值Tc可以从所...

【专利技术属性】
技术研发人员:汪龙峰任智仁贾俊周宣韩潇俊黄杰
申请(专利权)人:威胜集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1