首页> 中国专利> 一种应用于无乘法指令单片机的测量值校准方法

一种应用于无乘法指令单片机的测量值校准方法

摘要

一种应用于无乘法指令单片机的测量值校准方法,包括以下步骤:(1)、采用非线性分段方式对测量值所在的区域进行分段;(2)、在每个分段后的线性区进行测量值校准,即将多次A/D采样值累加后右移n次,计算得到校准后的参数测量值,校准系数S用两个字节来保存,高字节定义为S

著录项

  • 公开/公告号CN101706295A

    专利类型发明专利

  • 公开/公告日2010-05-12

    原文格式PDF

  • 申请/专利权人 浙江工业大学;

    申请/专利号CN200910154593.6

  • 发明设计人 单晓杭;孙建辉;张利;丁力;

    申请日2009-11-13

  • 分类号G01D18/00;

  • 代理机构杭州天正专利事务所有限公司;

  • 代理人王兵

  • 地址 310014 浙江省杭州市下城区朝晖六区

  • 入库时间 2023-12-17 23:57:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-04

    未缴年费专利权终止 IPC(主分类):G01D18/00 授权公告日:20110525 终止日期:20151113 申请日:20091113

    专利权的终止

  • 2011-05-25

    授权

    授权

  • 2010-06-30

    实质审查的生效 IPC(主分类):G01D18/00 申请日:20091113

    实质审查的生效

  • 2010-05-12

    公开

    公开

说明书

技术领域

本发明涉及一种单片机的测量值校准方法。

背景技术

在检测系统中,被测物理量通过传感器转换成电信号,信号经过放大器再通过A/D将物理量转换得到所对应的数字量。被测物理量转换成数字量后,还需要转换成操作人员熟悉的工程量。因为A/D转换后得到的数码值不等于原来物理量的量纲,而仅仅表示数值的大小。必须将A/D采样值转换成带有量纲的数值后才能运算、显示。

在整个测量通道的任何一个环节的信号转换偏差都会造成最终测量结果的误差。因此,在整个检测系统中必须对最终显示结果进行校准,提供校准手段。目前所采用的校准方法不外乎两大类:

a、通过硬件方法实现

在A/D采样通道的硬件电路上增加可调器件(如电位器)来调整测量值。也就是直接对A/D转换前的信号进行调整。

该方法实现校准只能对确定偏差的信号进行校准,有很大的局限性,一方面增加了设备硬件开销,另一方面由于可调器件的性能容易产生变化,因此会直接导致测量结果的偏差。同时该方法无法实现检测值的自动校准。

b、软件方法实现

采用软件方法对测量值进行校准的方法就是对A/D转换得到的数字量通过复杂的数学运算,得到最终所需的测量结果。

目前使用的计算机CPU体系结构可分为CISC(全称是Complex Instruction Set Computer,复杂指令系统计算机)和RISC(全称Reduced Instruction Set Computer,精简指令系统计算机)。

复杂的数学运算对于CISC结构的单片机来说实现起来较为方便,而对于RISC结构的单片机来说则会成为一种负担。目前采用软件方法实现测量值校准的方法对于CISC单片机来说,尤其是用高级语言(如C语言)编程的单片机来说几乎不成问题,实现起来非常方便。而对于不含乘法运算的RISC单片机来说,一个简单的整数乘法运算都需要一个复杂的子程序来实现,更不用说复杂的浮点数运算了。同时,这类单片机由于价格低,因此往往只有很小的程序存储器空间,即使编制复杂的测量校准算法,也可能会导致程序存储器空间溢出。

在检测系统中,许多测量信号和被测量信号之间存在着明显的非线性,这严重影响了测量的精度,必须采用必要的手段对信号进行校准。非线性校准的方法很多,常用的数字处理与校准方法有查表法、插值法和拟合法。在单片机系统中使用最多的是插值法:对系统模型分段进行线性拟合。而对于实际检测系统,首先采用常规的非线性分段方式进行分段,然后在每个分段后的线性区进行测量值校准,每个分段的标准值由标准测量仪表获得。

对于那些不包含非线性环节的测量通道,线性标度变换的公式如下:

Y=(Ymax-Ymin)(X-Xmin)(Nmax-Nmin)+Ymin

式中Y——参数测量值

    Ymax——测量范围最大值;

Ymin——测量范围最小值;

Nmax——Ymax对应的A/D转换值;

Nmin——Ymin对应的A/D转换值;

X——测量值Y对应的A/D转换值。

对上述公式进行变换后得到:

Y=k×X+b

式中k=(Ymax-Ymin)(Nmax-Nmin)

b=Ymin-(Ymax-Ymin)Xmin(Nmax-Nmin)

对于某个确定的系统来说,k、b均为常数。对每一个被测参数而言,改变k与b的数值大小就能够实现对测量结果的校准。b值与测量结果之间为加法关系,任何单片机都能够很方便的实现,而k值则不然,需要进行复杂的浮点数乘法运算,这对于不包含乘法指令的单片机系统来说是很困难的事情。

k值往往不是整数,为了使测量值根据有效显示位数连续可调,k值的变化范围非常小,必须用浮点数来表达,甚至需要用双精度浮点数来实现。以10位A/D采样(数值范围:0000~1023)为例,当A/D值为958时,显示值为1900(本专利描述过程中的显示值均不考虑小数点位置),则k=1.98330。如果实际值为1901,则需要将k修正到1.98434;若实际值为1.899,则需要将K修正到1.98225。为了实现上述目的,在校准过程中,还必须对A/D值和测量值经过返算,计算得到k值,这中间就需要运用除法运算,这对于无乘法的单片机系统来说无异于雪上加霜。

发明内容

为了克服已有的无乘法指令单片机的测量值校准方法的处理能力受限、无法处理浮点数乘除法运算、校准效率低等的不足,本发明提供一种提升无乘法指令单片机的处理能力,避免采用浮点数乘除法操作、高效便捷的应用于无乘法指令单片机的测量值校准方法。

本发明解决其技术问题所采用的技术方案是:

一种应用于无乘法指令单片机的测量值校准方法,包括以下步骤:

(1)、采用非线性分段方式对测量值所在的区域进行分段;

(2)、在每个分段后的线性区进行测量值校准,即将多次A/D采样值累加后右移n次,参照下式,计算得到校准后的参数测量值:

Y=Σi=1SX2n+b

其中:

Y:参数测量值;

X:为A/D采样值;

S:校准系数,即连续采样的次数;

n:A/D分辨率,即A/D位数;

b:零位误差校准值;

所述的校准系数S用两个字节来保存,高字节定义为sH,低字节定义为sL,其中:

S=SH×256+SL

数据转换过程分为两步:

第一步:连续采样256次,计算累加和,然后将采样累加和再通过循环相加实现累加和乘以sH

第二步:连续采样sL次,并计算累加和;

(3)、依照标准仪表测得的标准测量值,通过调整所述校准系数S对参数测量值进行精确的校准。

本发明的技术构思为:不采用浮点数乘除法运算,只通过有限次数的加法运算和移位运算就能快速便捷地实现对测量值的校准功能

基本原理:将多次A/D采样值累加后除以2n,其中n为A/D芯片分辨率,即A/D位数。由于单片机中用右移n次就能够实现除以2n的功能,因此非常适合于单片机处理,尤其是无乘除法指令且程序存储器小的单片机。

Y=Σi=1SX2n+b

其中:

Y:参数测量值;

X:为A/D采样值;

S:校准系数;

n:A/D分辨率(A/D位数);

b:零位误差校准值。

为了实现能够按照仪器有效显示位数连续调节显示值,如上例所述,每次调节变化不大于0001。

条件:n=10,X=958,不考虑零点漂移,即b=0:

当S=2030,则Y=1899;

当S=2031,则Y=1900;

当S=2032,则Y=1901。

本发明的有益效果主要表现在:提升无乘法指令单片机的处理能力,避免采用浮点数乘除法操作、高效便捷。

具体实施方式

下面对本发明作进一步描述。

一种应用于无乘法指令单片机的测量值校准方法,包括以下步骤:

(1)、采用非线性分段方式对测量值所在的区域进行分段;

(2)、在每个分段后的线性区进行测量值校准,即将多次A/D采样值累加后右移n次,参照下式,计算得到校准后的参数测量值:

Y=Σi=1SX2n+b

其中:

Y:参数测量值;

X:为A/D采样值;

S:校准系数,即连续采样的次数;

n:A/D分辨率,即A/D位数;

b:零位误差校准值;

所述的校准系数S用两个字节来保存,高字节定义为sH,低字节定义为sL,其中:

S=SH×256+SL

数据转换过程分为两步:

第一步:连续采样256次,计算累加和,然后将采样累加和再通过循环相加实现累加和乘以sH

第二步:连续采样sL次,并计算累加和;

(3)、依照标准仪表的标准测量值,通过调整所述校准系数S对参数测量值进行精确的校准。

为了实现能够按照仪器有效显示位数连续调节显示值,如上例所述,每次调节变化不大于0001。

条件:n=10,X=958,不考虑零点漂移,即b=0:

当S=2030,则Y=1899;

当S=2031,则Y=1900;

当S=2032,则Y=1901。

对于10位A/D,采用上述方法,将连续S次采样值累加和去掉末尾字节(即除以256)后,再右移2位(即除以4)就能够得到测量值。对于12位A/D,采用上述方法,将连续S次采样值累加和去掉末尾字节(即除以256)后,再右移4位(即除以16)就能够得到测量值。以此类推。

本方法n取值为A/D分辨率(A/D位数),由于测量值X最大值为2n-1,因此采用上述方法就能够实现对测量值的精确校准。

在实际使用时,可通过按钮或编码器输入改变S值(通过两个按钮实现增加或减少S值,或编码器直接改变S数值,该按钮或编码器可以和系统中必须使用的按钮或编码器复用),或者通讯直接传递S值,就能够很方便地对测量值进行校准。使用通讯方式还能够实现对测量值的自动校准。通过该方法还同时实现了对测量值中值滤波功能。

为了实现上述功能,需要每次对测量值进行多次的采样,随着A/D位数的增加,测量累加次数也急剧增加,受到单片机运行速度及A/D采样周期的限制,该过程会耗费大量时间,从而难以达到测量速度的要求.

针对上述情况,本实施例对上述方法作了相应改进。对于单片机来说,校准系数S用两个字节来保存,高字节定义为sH,低字节定义为sL,其中:

S=SH×256+SL

整个校准数据的过程分为三步:

第一步:连续采样256次,计算累加和,然后将采样累加和乘以sH(该乘法运算不需要通过乘法指令,只需对256次采样累加和通过循环累加sH次即可实现)。

第二步:连续采样sL次,并计算累加和。

第三步:将前两步计算结果相加,然后往右移n次。移位后所得结果就是最终的测量值。

通过上述方法,实际采样次数为256+sL,由于sL最大值为255,因此,即便A/D位数为16位,最多也只需要采样511次就可得到测量结果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号