ZMD31010校准流程和DLL说明.._第1页
ZMD31010校准流程和DLL说明.._第2页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ZMD31010RBic 低成本传感器信号处理器RBiCLiteTM校准流程和 DLL 说明I1 DLL 文件的使用. 11.1输出函数. 11.1.1计算函数. 11.1.2其它函数. 51.2结构体介绍. 61.2.1 CalPoint. 61.2.2 CCoeffs. 72 校准过程. 82.1概述. 82.2 Setup . 92.2.1 RBicLiteTM的 ID. 92.3采集数据. 102.4修正参数计算. 113 校准点的期望位置 . 124 举例. 134.1校准流程图. 134.2源程序(2 点校准). 141RBiCLiteTMa准流程和 DLL 说明1 DLL 文件的

2、使用调用 DLL 文件中的功能函数,必须使用 C 语言的调用机制。在调用功能函数 时,传递参数可采用结构体类型,也可采用数组类型以便更好兼容不同程序语言。1.1 输出函数DLL 中的功能函数,都有两个版本(结构体类型和数组类型)。函数名称中 不含有“ _Arr ”字样的是结构体类型。1.1.1计算函数1.1.1.1结构体格式(名称中不含“ _Arr ”)int calc2pt(CCoeffs *vals,CalPoint points2)in t calc3ptBr(CCoeffs *vals,CalPoi nt poi nts3)in t calc3ptTco(CCoeffs *vals,C

3、alPoi nt poi nts3)in t calc3ptTcg(CCoeffs *vals,CalPoi nt poi nts3)in t calc4ptTcoTcg(CCoeffs *vals,CalPoi nt poi nts4)int calc4ptSotBrTco (CCoeffs *vals,CalPoint points4)in t calc4ptSotBrTcg(CCoeffs *vals,CalPoi nt poi nts4)int calc5ptSotBr(CCoeffs *vals,CalPoint points5)in t calc5ptSotTco(CCoeffs

4、*vals,CalPoi nt poi nts5)in t calc5ptSotTcg(CCoeffs *vals,CalPoi nt poi nts5)功能描述:函数的主要功能是计算 RBiCLiteTM的修正参数。若需要修正温度,函数会根 据数据点自动算出温度的修正参数。传递参数时数据点(points)不需要另外存储,因为调用的函数不会改变其数值。函数声明:2Int calcXXX(CCoeffs *vals, CalPoint points)参数 1:CCoeffs *valsCCoeffs 结构的指针,指向一个 CCoeffs 对象。计算出的修正参数存储在此 结构体对象中,无需计算的修

5、正参数缺省值为0。参数 2:CalPoi nt poi ntsCalPoi nt 对象的数组,不需要另外存储。返回值:0计算成功1gainb、offsetb 等参数超出范围2 sot 超出范围3 tcg 超出范围4 tco 超出范围1.1.1.2数组格式的调用函数in t calc2pt_Arr(double vals10,double b2,double raw2)int calc3ptBr_Arr(double vals10,double b3,double raw3)in t calc3ptTco_Arr(double vals10,double b3,double t3,double

6、raw3,double tr3)in t calc3ptTcg_Arr(double vals10,double b3, double t3,double raw3 ,double tr3)int calc4ptTcoTcg_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)in t calc4ptSotBrTco_Arr(double vals10,double b4, double t4,double raw4 ,double tr4)in t calc4ptSotBrTcg_Arr(double vals10,d

7、ouble b4, double t4,double raw4 ,double tr4)in t calc5ptSotBr_Arr(double vals10,double b5, double t5,3double raw5 ,double tr5)int calc5ptSotTco_Arr(double vals10,double b5, double t5,double raw5 ,double tr5)in t calc5ptSotTcg_Arr(double vals10,double b5, double t5,double raw5 ,double tr5)功能描述:“_Arr”

8、函数去除了使用结构体调用时数据格式的限制, 增强了程序的兼容性。通常,它和相对应的结构体格式的函数功能相同,计算出的数值也是对等的。函数声明:1Int calcXXX_Arr( double vals10,double b,double t,1double raw ,double tr )注:上标“ T 表示 t、tr 在 calc2pt 和 calc3ptBr 中没有使用。参数 1: double vals10计算出的修正参数存储在此数组中,无需计算的修正参数缺省值为0。数组中每一项的含义如下:val0=d_ga inbval1=d_ga intval2=d_offsetbval3=d_of

9、fsettval4=d_sotval5=d_tcgval6=d_tcoval7=d_tsetlval8=tc_cfg在此版本程序中没有计算val0=sot_cfg计算出的数据并不是 RBICLite 格式,因此,将数据写入 EEPROM 前需调用“convertToLite ()” 函数。参数 2-5:数据点数组,上文中的一个“ Point 0”对象和 b0、t0、raw0、tr0相当。4这里注意,数组的下标要保持一致,不能出错。数组的大小应大于或等于数据点 的个数。b桥信号的理想值 t温度的理想值 raw桥信号的原始值 tr温度的原始值返回值:0 计算成功1 gainb、offsetb 等参

10、数超出范围1.1.1.3功能函数表函数声明描述计算的参数int calc2pt(CCoeffs *vals,CalPoint points2)int calc2pt_Arr(double *vals10,double b2,double raw2)对桥信号增益、偏 移量进行修正。不 考虑温度影响。gain b,offsetbsot_cfgint calc3ptBr(CCoeffs *vals,CalPoi nt poi nts3)int calc3ptBr_Arr(double vals10,double b3,double raw3)桥信号的二阶非 线性修正。不考虑 温度影响。gain b,

11、offsetbsot(br),sot_cfgint calc3ptTco(CCoeffs *vals,CalPoint points3)int calc3ptTco_Arr(double vals10,double b3,double t3, doubleraw3,double tr3)桥信号偏移量修 正。考虑温度影 响。gain b,offsetbtco, sot_cfgint calc3ptTcg(CCoeffs *vals,CalPoint points3) intcalc3ptTcg_Arr(double vals10,double b3, double t3, doubleraw3

12、,double tr3)桥信号增益修正。 考虑温度影响。gain b,offsetbtcg, sot_cfgint calc4ptTcoTcg(CCoeffs *vals,CalPoi nt poi nts4) intcalc4ptTcoTcg_Arr(double vals10,double b4, double t4,doubleraw4 ,double tr4)桥信号偏移量、增 益修正。考虑温度 影响。gain b,offsetbtco,tcg sot cfgint calc4ptSotBrTco(CCoeffs *vals,CalPoi nt poi nts4) intcalc4ptS

13、otBrTco_Arr(double vals10,double b4, doublet4,double raw4 ,double tr4)二阶非线性、偏移 量修正。考虑温度 影响。gain b,offsetbtco, sot(br) sotcfgint calc4ptSotBrTcg(CCoeffs *vals,CalPoi nt poi nts4) intcalc4ptSotBrTcg_Arr(double vals10,double b4, doublet4,double raw4 ,double tr4)二阶非线性、增益 修正。考虑温度影 响。gain b,offsetbtcg,sot

14、(br),sotcfgint calc5ptSotBr(CCoeffs *vals,CalPoint points5) intcalc5ptSotBr_Arr(double vals10,double b5, double t5,doubleraw5 ,double tr5)二阶非线性、增 益、偏移量修正。 考虑温度影响。gain b,offsetbtco,tcg sot(br),sot cfgint calc5ptSotTco(CCoeffs *vals,CalPoint points5) intcalc5ptSotTco_Arr(double vals10,double b5, doubl

15、e t5,doubleraw5 ,double tr5)二阶偏移量、增益 修正。考虑温度影 响。gain b,offsetbtco,tcg,sot(tco),sot_cfg5int calc5ptSotTcg(CCoeffs *vals,CalPoint points5) intcalc5ptSotTcg_Arr(double vals10,double b5, double t5,doubleraw5 ,double tr5)二阶增益、偏移量 修正。考虑温度影 响。gain b,offsetbtco,tcg,sot(tcg),sot cfg1.1.2其它函数1.1.2.1 SortPoi n

16、ts功能描述:缺省情况下,此函数以 CalPoint 的第三个参数(温度)对 CalPoint 数组进行 排序,此函数并不是每次必须调用的。函数声明:void sortPo in ts(CalPo int p, int nu mPo in ts, bool byTemp)参数 1: CalPoint p需要排列的数组参数 2: int numPoints排列点的个数参数 3: bool byTemp为“true”时,数组以温度值进行排序。若温度值相同,则以信号原始值大 小排序。为“false”时,数组以信号原始值大小排序。1.1.2.2 Co nvertToLite功能描述:将“_Arr”函数

17、的计算值转换为 RBIClite 格式。使用“ _Arr”函数时,在将 修正参数写入EEPROM之前调用此函数; 若使用非“ _Arr”函数, 不需进行此 操作, 因为 CCoeffs中已含有 RBIClite 格式数据。函数声明:int convertToLite(int outVals10, double inVals10)参数 1: int outVals10存放转换后数据的数组。 写入 EEPROM 中的数据长度为 1 个字节 (如要写 入 ValsO,6写入值=outVals0&OxOOFF)。outVals0= gai nboutVals1= gai ntoutVals2=

18、 offsetboutVals3= offsettoutVals4= sotoutVals5 = tcgoutVals6 = tcooutVals7 = tsetloutVals8 = tc_cfgoutVals9= sot_cfg参数 2: double inVals10需要转换的数据。数据的顺序和输出数据的顺序相同(参见上面函数的输出 数组)。返回值:0 成功2 sot 超出范围3 tcg 超出范围4 tco 超出范围1.2 结构体介绍定义结构体类型的目的是为了简化程序。在 DLL 中同样也存在相对应的数组格式的调用函数。1.2.1 CalPoi nt功能描述:CalPoint 结构包含

19、4 个 double 型变量,分别代表每个数据点的 4 个数值:桥7信号理想值、桥信号原始值、温度理想值、温度原始值。若不进行温度校准,则相应变量的缺省值为零结构体声明:struct CalPoi ntdouble bdouble tdouble trdouble raw1.2.2 CCoeffs功能描述:CCoeffs 结构中含有公式计算出的“double”型变量和要写入 EEPROM 中的“int”型变量,若变量名称含有“ d_”即为“ double”型变量。写入 EEPROM 中的“int”型变量并不一定就是写入 EEPROM 中的实际值,因为实际值受字节 长度(1 字节)限制:若写入值

20、超出范围,则实际写入值应为“OxOOFF”。结构体声明:struct CCoeffsint gainbint offsetbint tcoint tcgint sotint sot_cfgint tc_cfgint gaintint offsetint tsetl double d_ga inb double d offsetbdouble d_tco double d sotBR double d_sot_TCO8double d_tc_sotTCGdouble d_ga intdouble d_offset double d_tsetltc_cfg: bit 0 tco 为负bit 1放大

21、因子(x8)bit 2 tcg 为负sot_cfg: =0 sot 为桥信号二阶修正参数=1 sot 为 Tcg 二阶修正参数=2 sot 为 Tco 二阶修正参数2 校准过程2.1 概述RBiCLite可和多种阻抗类桥式传感器组合,这里假定它和一压力桥式传感 器连接,其校准过程叙述如下。校准需采集几组不同的标定数据,标定值可通过以下方法获得:将传感器放 入已知压力和温度的环境中,读取传感器测量的原始值(未经修正),重复此步骤,直到获取足够的标定点。原始值经过校准主设备(如电脑)处理,计算出修 正参数,最后将修正参数写入 EEPROM。校准过程有三个主要步骤:1)Setup, Setup 步骤

22、包括 EEPROM 的初始化。另外,对 EEPROM 的已知参数进行设置,设置完成后,电脑给RBiCLiteTM分配一个 ID,此 ID 将被写入EEPROM 中。2)收集数据。此过程包括获取原始值的标定过程。所得的标定值(压力、 温度的原始值及理想值)存储在指定的数据库文件中,数据库文件的索引即为 RBiCLiteTM的 ID。3)修正参数的计算和写入。一旦获取足够的标定值后,就可计算修正参数, 最后将修正参数写入 EEPROM。92.2Setup2.2.1 RBicLite的 ID校准过程的第一步就是分配 RBiCLiteTM的 ID 号。ID 号存储在 EEPROM 中, 并且由寄存器

23、TSETL、Tcg、Tco的数据组合而成。当校准过程结束时,TSETL、TcgTco这三个寄存器的数据将被重写,因此, RBiCLiteTM的 ID 号并不是一个一成不 变的数。在存储标定值数据时,RBiCLiteTM的 ID 是数据库文件的索引,数据库文 件中含有温度、压力的原始值及理想值。EEPROM中的位置符号功能2: 0Osc_Trim更多信息可参见“振荡器调节”表6: 31V_Trim/JFET_Trim参见“参考电压源模块” 一节。8: 7A2D_Offset偏移设置:11=-1/2,1/2信号输入模式10= -1/4 ,3/4信号输入模式01= -1/8 ,7/8信号输入模式00

24、= -1/16 ,15/16信号输入模式要改变桥信号极性需设置Tc_cfg3(第 87 位)10: 9Output_Select数字输出 w/Temp(0 x00)12: 11Update_Rate用户选择00= 1mS(1KHz)0仁=5mS(200Hz)10=25mS(40Hz)11= 125mS(8Hz)14: 13JFET_Cfg用户选择00= 没有三极管控制(低功耗模式)01= 没有三极管控制(低功耗模式)10= 三极管控制在 5V 左右11= 三极管控制在 5.5V 左右29: 15Gain_B模块(0 x800)43: 30Offset_B0 x0051: 44Gain_T模块(

25、0 x80)59: 52Offset_T0 x0067: 60TSETL用户 ID 区(临时)75: 68Tcg用户 ID 区(临时)83: 76Tco用户 ID 区(临时)87: 84Tc_cfg0 x0095: 88SOT0 x001099: 96SOT_cfg,Pamp_Gain99 : 98 = SOT_cfg ( 0 x01)用户选择可预放大器增益(97 : 96):00= 增益为 60仁= 增益为 24 (缺省设置)10= 增益为 121 仁=增益为 48注:加粗一一必须设定模块斜体一一推荐设置2.3 采集数据RBicLiteTM在 RM ( Raw Mode)模式下才可获得传感器

26、的原始数据。要进入RM 模式, 需首先发送“ Start Comma nd Mode”( 0 x50 0 x00) 指令, 然后再发送 “StartRaw Mode”(0 x40 0 x10)指令。若 RBiCLiteTM工作在 RM 模式,并且EEPROM 中桥增益和温度增益的设置为0 x800、0 x80(如上表中所示) 时, 其输 出口 ( SigTM)输出的是原始值,而不再是修正后的数据。获取每一个原始值时, 都对被测量进行多次测量(推荐 16 次),最后取平均值。压力、温度的原始值和 理想值最后以数据库文件的形式存储在电脑上。RM 模式下数据输出格式依次是Bridge_High、Br

27、idge_Low、Temp 每个数据的长度为 1 个字节,Bridge_High 的前两位是“ 0”。如果使用开发板进行通信,则在输出数据前分别加上 0 x01、 0 x02、 0 x03。RM 模式下输出的温度数据只有 8 位,不能满足温度校准时的精度要求。解 决的方法就是在 NOM 模式下获取温度数据的高 3 位。11 位数据将使测量精度达 到 0.098C。当“ NOk 数据”和“ RM 数据”的第 7 位不一致时,温度数据的高 3 位和低 8 位数据就不能进行简单的叠加, 具体做法是: 在 NOM 模式下获取温度数 据的10:3位, 通过和“ RM数据”比较以确定读数,如下例所示:例:

28、RM 模式下温度的读数 temp=11111111NOM 模式下温度的读数 temp= 10100000最终读数temp= 10100000 000RM 模式下温度的读数 temp=10000000NOM 模式下温度的读数 temp= 10101111最终读数temp= 10101111 11111当第 7 位数据相同时,将 NOM 模式下的高三位与 RM 模式下数据串行叠加。例:RM 模式下温度的读数 temp=00111111NOM 模式下温度的读数 temp= 10101000最终读数temp= 10100111 111因为 PTAT 有较高的精度,因此温度数据不需要取平均值。然而,如果

29、为了提高精度而取平均值时,应取 11 位温度值的平均值。2.4 修正参数计算校准点的数量最少为 2,最多为 5。 具体选择几个校准点由要求精度和桥式 传感器的动态特性而定。1) 若选取 2 个校准点,则只能对桥信号的增益和偏移量进行修正,并且不考虑 温度因素的影响。2) 选取 3 个校准点,只能对 Teo 或 Teg 中的一个进行一阶补偿。3)在不考虑温度补偿的情况下,3 个校准点同样也可以对桥式传感器进行二阶 非线性修正。4) 4 个校准点可以对 Tco 和 Tcg 两个参数进行一阶补偿。5)4 个校准点也可以对桥式传感器进行二阶非线性修正,但这时就只能对Tco 或Tcg 中的一个进行一阶补

30、偿。6)5 个校准点可对 Tco 和 Tcg 两个参数进行一阶补偿,与此同时,可选取 Tco、 Tcg和非线性中的一个参量进行二阶修正。12一但校准模式选疋,选取的校准点的个数也同时确疋。计算修正参数的功能函数可从 ZMDCalMathLib.dll 中调用,最后将返回值(修正参数)写入 EEPROM3 校准点的期望位置下图说明了不同校准模式下校准点的期望位置。 数据点的序号不重要,但每个温度值下的校准点的个数需要记录,否则校准过程失败。Temp- TempTm口Calc4ptTcoTcgCai4ptSotBrTcoCalc4ptSotBrTcgCalcSptSotBro o245a TempCaicSptSotTcoCalcSptSotTcgTemoCalc3ptSotBre5 0 40 3 0 2 0iCalc2ptCalcSptTcoCaic3ptTcg134 举例4.1 校准流程图Received as Lead曰瞋电Dart (hdMD曲曰宝8 002 Data7:O thO3TempErrtar Norm al M ode/ReceivehightempvaluesARecerved as fl_ead! bvlefiData)CM33 Tem pombiv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论