《电子技术应用》
您所在的位置:首页 > 测试测量 > 设计应用 > 基于AD7791的海水温度和深度测量系统的设计
基于AD7791的海水温度和深度测量系统的设计
来源:微型机与应用2013年第20期
党武松, 范寒柏, 胡 杨
(华北电力大学 电气与电子工程学院,河北 保定071003)
摘要: 针对海洋环境恶劣、测量仪器投放和回收困难等问题,描述了一个大容量、高精度和低功耗的测量温度和深度的设计方案及其工作原理。该系统以AVR单片机ATmega64为控制芯片,运用比值法计算得到温度及其压力的AD值,再经过一系列计算得到所需的温度和深度。
Abstract:
Key words :

摘   要: 针对海洋环境恶劣、测量仪器投放和回收困难等问题,描述了一个大容量高精度低功耗的测量温度深度的设计方案及其工作原理。该系统以AVR单片机ATmega64为控制芯片,运用比值法计算得到温度及其压力的AD值,再经过一系列计算得到所需的温度和深度。
关键词: 温度; 深度; 大容量; 高精度; 低功耗

    在开发利用海洋的过程中,温度和深度扮演着非常重要的角色,这使它成为海洋观测中的重点观测对象。因长期地球变化或其他地理因素变化引起海洋温度和深度的变化,这关系到近海资源的开发和利用[1]。因此,本文设计了一种大容量、高精度和低功耗的测量温度和深度的系统以满足对其测量的需求。该系统可以采集不同区域、不同深度水域环境要素的温度、压力,然后通过对压力进行分析和一系列计算得到海洋深度。
1 系统总体设计
    本系统采用Atmel公司的ATmega64单片机作为控制芯片,主要分为A/D数据采集部分、时钟定时控制部分以及数据存储部分。系统总体结构图如图1所示。ATmega64是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega64的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。

    本系统由CR123A 3 V锂电池供电,晶振为3.686 4 MHz,使系统功耗非常低;采用24位精度高、功耗低的AD7791模/数转换器,将采集到的温度和压力模拟量转化为数字量;采用带有I2C总线接口的、具有极低功耗的PCF8583作为时钟控制芯片,将采样时间、采样间隔、采样频率等写入PCF8583来控制单片机工作或休眠,大大降低了功耗;由于测量采集时间长久且采集数据量大,所以采用具有非易失性和读写速度快的大容量NAND存储器[2]。
2 系统电路分析
    AD7791是美国ADI公司推出的一种高分辨率24位模/数转换器件,精度高、功耗低,其灵活的串行接口使AD7791可以很方便地与微处理器或移位寄存器相连接。由于AD7791采用了和-差(∑-Δ)转换技术,使它不受噪声环境的影响,适用于宽动态范围、低频信号的测量。所以温度采集电路和压力采集电路的A/D都选用AD7791。温度采集电路和压力采集电路都采用比值法的思想,避免了因电源电压不稳引起的漂移,大大提高了温度和压力的测量精度。
2.1 温度采集电路
    温度采集电路如图2所示。U1在温度采集电路中起到了电压跟随器的作用,Rt采用NTC热敏电阻,电阻R1和Rt及U1和AD7791由相等电压供电。由图2可知,Vo=VCC×Rt/(R1+Rt),AD7791输入电压AIN=Vo,参考电压VREF=VCC。

    输出码值为:Code=2N×Rt(AIN/VREF),采用电阻比值法计算出的温度AD值Code=2N×Rt/(R1/Rt),与电路供电电压无关,从而消除了由于电源电压不稳引起的漂移,提高了测温电路的精确度。如果把模拟地和数字地大面积直接相连,会导致互相干扰。R2为0 ?赘电阻,相当于很窄的电流通路,能够有效地限制环路电流,使噪声得到抑制,提高电路的稳定性[3]。
    测温电路通过固定电阻R1和热敏电阻Rt分压,得到热敏电阻的电压值;再经过电压跟随器,将AD采集到的热敏电阻的电压送给单片机进行数据分析。
2.2 压力采集电路
    压力传感器选用keller压力传感器,它是一种压阻式OEM压力传感器。当压力传感器上有压力产生时,电阻会发生形变,相对的两个电阻阻值变大,另外相对的两个电阻阻值变小,压力传感器两端电压不变。
    只有电桥中间产生压差,即引起电桥输出电压的变化,产生的电压变化作为输出来反映压力的大小。由于电桥输出的变化电压非常小,所以将压力变化值经过运算放大器U6进行放大,送入AD7791,再将得到的AD值送入单片机,压力采集电路如图3所示。

    R8和U5构成恒流源,流过R8的电流I=VCC/R8。由于流过电桥两支路的电流相等,则V32=V3-V2=0.5I×(R9-R10)。U6起差分放大的作用,其输出电压Vout=V32×G,G为放大增益。信号放大后送入AD7791进行模/数转换。输出码值为:Code=2N×(AIN/VREF),参考电压VREF=VCC,AD7791输入电压AIN=Vout。
    由计算得到Code=2N-1×(R9-R10)×G/R8,即通过比值法最后得到的AD值与电压的大小无关,从而消除了电压变化引起的温漂,提高了系统的稳定性和压力采集数据的精度。
2.3 时钟控制电路
    PCF8583是一个时钟控制芯片,带有256 B的静态RAM,使用I2C总线接口传输地址和数据。PCF8583带有内部32.768 kHz晶振,并且前8 B用于时钟、日历和计数功能;其后的8 B可作为闹钟寄存器;剩余的240 B是自由RAM区,可用来存放数据及其他标志位或采样间隔等常数。
    Y1为PCF8583提供稳定的32.768 kHz晶振,电路如图4所示。单片机通过I2C总线给PCF8583设定采样时间、采样间隔等采样参数。当 PCF8583 定时器计数溢出时,产生定时器溢出中断来控制单片机在采样、待机和休眠3种状态间转换,降低了功耗。

2.4 数据存储
    由于该系统用于测量海洋等恶劣环境,受客观因素影响,其投放和回收都很困难,并且要想观测的温度和深度信息准确必须采集长期大量的数据,因而必须要有大的数据存储容量来满足测量需要。鉴于此,本系统采用三星公司的 K9F1G08,它是128 M×8 bit NAND Flash。K9F1G08由1 046个块组成, 每一个块包含64个页, 而一页是2 KB+64 B=2 048 B+64 B=2 112 B。K9F1G08以页为基本单元进行存储 ,以块为基本单元进行擦除,具有很快的写入和擦除速度,是一种比硬盘驱动器更好的存储设备。
    单片机先将采集的数据放到自身RAM中,等数据达到一页时再存入K9F1G08,从而提高了时间利用率,降低了系统功耗。
3 系统软件设计
    系统软件主要完成了数据采样、数据存储、外部中断和定时中断控制等功能,主程序由中断控制工作在采样、休眠和待机3种状态,大大降低了系统功耗。程序流程图如图5所示。
    

 



    2012年10月将此测量系统投放到青岛中苑码头进行标定,该测量系统被投放到码头水平面下8 m左右的地方进行采样。投放24 h后将测量系统取出与计算机连接,通过相应的后台软件将采集到的A/D数据从大容量存储器NAND读出,通过上述计算方法将温度、压力、深度算出并绘制成图。温度如图6所示,压力如图7所示,深度如图8所示。

    通过对采集数据进行分析,可得温度精度达到±0.002℃(ITS-90标准),深度传感器精度为满量程的0.05%,满足了高精度、低功耗的测量要求。
    本文介绍了温度和深度的测量方法和工作原理,整个测量系统性能可靠,存储量大,功耗低,精确度高,因此在海洋温深测量方面具有非常广阔的应用前景。
参考文献
[1] 毕永良,孙毅,黄漠涛,等.海洋测量技术研究进展与展望[J].海洋测绘,2004,24(3):65-7.
[2] 王盛安,龙小敏,陈俊昌,等.大容量快闪存储器在压力式波潮仪中的应用[J].仪表技术与传感器, 2000(10):31-
32.
[3] 康华光.电子技术基础模拟部分[M].北京:高等教育出版社,1999.
[4] FOFONOFF N, MILLARD R. Algorithms for computation of  fundamental properties of seawater[J].UNESCO Technical Papers in Marine Science,1983(44):1-53.

此内容为AET网站原创,未经授权禁止转载。