气压高度表 联系客服

发布时间 : 星期四 文章气压高度表更新完毕开始阅读

大连理工大学本科毕业设计

图3-5 实际校正参数在芯片内的存储方式

通过上图,可以看到实际校正参数C1,C2,C3,C4,C5和C6在校正参数WORD1,WORD2,WORD3和WORD4中的存储位置,通过控制器的计算,可以从校正参数得到实际校正参数的结果,在STM32中的计算代码如下: C1=WORD1>>1;

C5=(WORD1&0X1)|(WORD2>>6); C6=WORD2&0X3F; C4=WORD3>>6; C3=WORD4>>6;

C2=((WORD3&0X3F)<<6)|(WORD4&0X3F);

在读取并计算得到实际校正参数之后,控制器需要再读取温度值和气压值D1和D2,读取完毕之后,控制器就可以根据这些参数计算得到想要的温度值和气压值,计算过程主要分三部分。 计算标准温度

首先控制器需要根据C5计算标准温度,其过程如图3-6所示。

图3-6 标准温度计算

计算实际温度

第二步控制器根据标准温度,D2和C6计算得到实际温度,其计算过程如图3-7所示。

16

大连理工大学本科毕业设计

图3-7 实际温度计算

计算经过温度校正的气压值。

第三步控制器需要根据C2,D2,C5,C1,C3,和D1计算温度补偿的气压值,其计算过程如图3-8所示。

图3-8 温度校正的气压计算

经过以上三个步骤,即可初步计算得到温度值和气压值。 此部分计算过程在STM32单片机中的代码如下所示: UT1=8*C5+20224;

dT=D2-UT1;

TEMP=200+dT*(C6+50)/1024; OFF=C2*4+((C4-512)*dT)/4096; SENS=C1+(C3*dT)/1024+24576; X=(SENS*(D1-7168))/16384-OFF;

17

大连理工大学本科毕业设计

P=X*10/32+2500;

但是仅通过以上计算,仍然会存在一定的误差,为了尽量减少这个误差,在MS5534-BP的数据手册中提出了二阶温度补偿的误差校正方式,可以进一步减少由于温度导致的测量误差。 3.2.3 二阶温度补偿

为了在整个温度范围内获得最佳的误差校正,控制器需要采用二阶温度补偿计算来消除由于温度传感器输出非线性问题导致的误差,此部分的计算方法比较简单,根据测量的温度值,在不同范围采取不同的算法计算出一个温度补偿参数和一个气压补偿参数,最后,用测量到的初始温度值和气压值减去补偿参数,就可以得到经过二阶温度补偿的温度值和气压值,此部分的计算过程如图3-9所示。

图3-9 二阶温度补偿算法

此部分计算过程在STM32单片机中的代码如下所示: if(TEMP<200)

{

T2=11*(C6+24)*(200-TEMP)*(200-TEMP)/pow(2,20); P2=3*T2*(P-3500)/pow(2,14); }

else if((TEMP>=200)&(TEMP<=450)) { T2=P2=0; }

else

18

大连理工大学本科毕业设计

{

T2=3*(C6+24)*(450-TEMP)*(450-TEMP)/pow(2,20); P2=T2*(P-10000)/pow(2,13); }

TEMP=TEMP-T2; P=P-P2;

二阶温度补偿可以有效的解决由于温度传感器非线性问题导致的测量误差,在温度很低或者很高的时候,此补偿方法尤为有效,可以大幅减少误差,采用二阶温度补偿和不采用此补偿的温度误差情况如图3-10所示。

图3-10 二阶温度补偿效果图

从上图可以看出,在极端温度情况下,二阶温度补偿计算可以将误差值从10度以上降至1度以内,效果非常明显。 3.2.4 气压传感器通信接口

传感器与控制器之间的通信采用三线同步串行通信接口,三个接口分别为SCLK,DOUT和DIN,其中,SCLK是通信的同步时钟信号,DOUT是传感器的输出端口,即控制器的输入端口,DIN是传感器的输入端口,即控制器的输出端口。

时钟信号由控制器产生输入至传感器,传感器的输出端是数据的输出端,也是传感器的状态引脚,通过检测此信号的电平,控制器可以知道传感器处于转换状态或者转换结束状态,以便于及时接收数据,控制器通过对DIN信号输入正确的数据,就可以控制传感器输出相应的数据。在控制器对传感器输入数据时,正确的数据应该保持在时钟信号的上升沿期间。

19