温度传感器选用Dallas Semiconductor公司的DS1624数字温度测量计,它具有测量精度高、测量温度范围宽,易与单片机接口等特点,其内部还带有256字节的E2PROM,用于存储测量系统的修正参数[3]。温度传感器实时采集系统的环境温度,将采集的温度值通过I2C总线送入单片机。
1.2 ADS1210和DS1624与AT89C52的接口电路
ADS1210和DS1624与AT89C52的接口电路如图2所示。传感器的输出接到ADS1210的AINP和AINN输入端。在这里,ADS1210和AT89C52采用的是三线连接,DRDY、SDIO、SCLK分别与P12、P13、P14相连接,其中SDIO用于数据的输入和输出,CS直接接地,MODE接地表示从机方式。由于在本系统中只用了一块ADS1210,故可将DSYNC与DVDD直接相连。
利用AT89C52的P1口的P10和P11分别与DS1624的引脚SCL和SDA相连构成I2C总线。I2C总线是一种串行数据总线,只用两根信号线,一根是双向数据线SDA,另一根是时钟线SCL。在I2C总线上传送的一个数据字节由八位组成,总线对每次传送的字节数没有限制,但是每个字节后必须跟一个应答位(ACK),数据传送首先传最高位(MSB)。

2 系统软件设计
本系统软件采用汇编语言编程,由主程序、计算子程序、ADS1210读写子程序、DS1624读写子程序和串口中断服务子程序等组成。倾角器温度补偿的相关参数存放在DS1624的E2ROM中,必要时上位计算机通过控制命令对其进行修正。中断服务程序随时接收上位计算机的控制命令,进行系统自检、参数修正、数据输出等。
2.1主程序
主程序完成初始化后,实时采集环境温度和电子倾角器数据,并进行补偿运算。为了保证采集倾角器数据的稳定性,采集一次环境温度数据后,连续采集10次倾角器数据进行算术平均,然后再采集一次环境温度如此,如此循环往复。

主程序的流程如图3所示。
2.2 计算子程序
电子倾角器输出的模拟电压V与倾斜角度θ的正弦近似成线性关系,即:
V=V0 K0×sinθ(1)
其中,K0是电子倾角器的转换比例因子。因倾角器的测量范围为±1。,可以用弧度值替代角度的正弦值,其计算误差为:

该误差可以忽略不计,则公式(1)简化为:
V=V0 K0×θ
从公式(2)可以看出,倾斜角度θ是随环境温度线性变化的函数,而线性传感器的温度补偿是对零位和灵敏度的补偿,所以经过温度补偿的倾角器输出为:
V=V0 K×ΔT K0(1 K1×ΔT) ×θ
式中,K为零位温度系数,K1为比例因子温度系数。
用AD表示A/D转换器输出的数据;K_AD表示A/D转换器的输出斜率,单位:1/V;B0表示基准零偏电压,单位:V;B_temp表示零点偏差系数,单位:V/℃;ΔT表示温度变化量,单位:℃;S.F._Temp表示比例因子温度系数;Title表示修正后的倾角,单位:"。则(3)式变为:

两边同时乘以K_AD,则(4)式变为:

由(9)式可以计算出温度补偿后的修正倾角。
计算子程序的流程如图4所示。
2.3 ADS1210的编程
对ADS1210编程,首先对其进行初始化,根据系统设计的要求,确定相关的参数,如增益PGA、加速因子TMR、数据输出率DR(抽取率)等。在初始化子程序中,将这些相关的参数写入CMR。启动ADS1210的转换,然后调用读DOR寄存器子程序,将转换的结果读到单片机中。ADS1210的初始化流程和读DOR寄存器流程如图5所示。
2.4 DS1624的编程
由于将DS1624的引脚SCL和SDA与AT89C52的P10和P11相连构成I2C总线,对DS1624的读写操作都要遵循I2C总线协议。利用单片机可以仿真I2C总线的读/写时序。I2C总线的控制主要包括以下五部分:开始、读数据、写数据、应答、停止。

DS1624的编程包括以下几个子程序:初始化子程序、启动温度转换子程序、读取温度值子程序。在初始化子程序中,向配置/状态寄存器写一个字节的数据用以将DS1624的工作方式设为连续转换方式。
DS1624的初始化子程序、读取温度值和启动温度转换子程序流程图如图6所示。
2.5 串口中断服务程序
如果更换电子倾角器,那么其相应的参数,如固定零偏差、零偏的温度系数、比例因子、比例因子温度系数等都会发生变化。为了提高系统的通用性,将这些参数通过串口中断的方式进行修改。单片机计算得到的结果即修正角度也是通过串口中断的方式输出的。本系统的串口中断服务程序包括以下几个命令:写零偏差、写零偏温度系数、写倾角器转换比例因子、写比例因子温偏差、写ADS1210的转换比例、写ADS1210的转换速率、写角度校准值、初始化E2ROM中的数据、读温度值、读计算后修正角度值、检查写进数据的正确性、检查芯片是否工作正常等。串口中断服务的流程图如图7所示。

本文介绍的高精度数字倾角测量系统已经在工程中得到实现,并通过T3经纬仪验证了它的测量精度。实验结果表明:在-10℃~ 50℃的温度范围内,其精度达到3”,能满足宽工作温度范围高精度测量系统的需要。更宽温度范围内的精度验证实验正在进行中。该系统已经在某项目的水平倾斜角测量中得到应用,运行稳定、性能可靠
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

