闫云鹏,章雪挺,刘敬彪
(杭州电子科技大学电子信息学院,浙江杭州310018)
目前随着人类活动的发展,陆地资源的日益匮乏,海底资源和海底工程勘查对于人类的发展极其重要,海洋探测逐渐被人类所重视。海洋面积占全地球总面积的71%,海洋的任何变化都关系着人类生存环境的变化。温度是海洋调查和监测中最重要的观测项目。要深入了解海洋的热交换过程,海洋微结构以及有效及时的环境保护研究,需要对温度测量提出更精确、更快速的要求[1]。为了更精确地测量海洋要素,国家863以及“九五”计划也将高精度温盐深仪(Conductivity Temperature Depth,CTD)研制列为其中的一个项目。更准确地测量海水温、盐、深,才能为海洋研究提供更可靠的数据依据。在今后的海洋测量和海洋相关研究中,高精度的CTD是必不可少的研究仪器。国外的海水测温设备主要是美国Seadird公司的系列CTD产品。最近20年来加拿大RBR公司的海洋观测技术以高精度、小体积和积木化设计也享誉业界。我国近几年对海洋勘探开发的投入逐年加大,国内也有很多机构在研制CTD。现在,我国的CTD测量技术迅速发展,已经有自容式、电缆式和电磁耦合式测量仪,在精度上接近世界先进水平[2]。但是目前国内一般海洋勘探所用的测量海水温度设备CTD均采用进口,价格较为昂贵。本文介绍了一种高精度的多路海水温度检测系统,系统结构简单,成本远低于进口设备。同时系统具有小型化、低功耗等优点能长时间放置在海底工作,可用于替代进口CTD在一般海洋勘探时用于测量海洋海水温度。
本系统的硬件电路框图设计如图1所示。图1中4路PT100铂电阻的信号由惠斯通电桥驱动产生,经过RC构成的低通滤波器后送入AD。为了达到较高的进度及分辨率,模数转换电路拟采用TI公司24位△-∑型ADS1256,该芯片内部自带的可编程运放(PGA)可实现对信号的编程放大后再进行AD转换。最大可放大64倍。铂电阻采用的三线制密封良好耐高压的PT100。三线制铂电阻比常用的两线制铂电阻具有更好的精度。AD的参考电压是2.048V。由精度为0.05%的REF5020产生。水下系统微处理器采用的是意法半导体公司生产的基于ARM内核的32位微处理器STM32F103RCT6,该芯片外设丰富,程序开发简单,便于移植等优点[3]。系统支持容量为8GB的MicroSD卡,即常见的TF卡。SD卡用来存储采集到的温度信息。低通滤波器部分考虑到有源滤波器需要多个运算放大器芯片构成,引入了更多的噪声,所以采用了电阻电容构成的二阶低通滤波器。滤波器能有效地滤除频率大于1kHz的信号。水下系统工作时通过串口和甲板系统的PC机通信。因为距离较为远。实际使用的是串口光纤模块,水面上再用串口光端机还原成串口信号。为保证系统的精度简化系统设计,电源模块由高能锂电池供电以减小电源噪声,提高系统精度[4]。
图1 整体硬件结构框图
铂电阻的阻值Rt随温度t的变化而变化计算公式如下:
式1、2中,Rt为t℃时的电阻值。R0为0℃时的阻值,PT100即R0为100Ω。另外系数A、B为实验测定。在这里给出了常见的 DIN IEC751 标准系数:A=3.908E -3、B= -5.775E -7、C= -4.183E -12[5]。
铂电阻驱动电路和铂电阻实物如图2所示。驱动设计采用的是常用的惠斯通电桥,Vref电压由2.5V精密基准电压源提供。电路图中V1、V2是电压输出端。铂电阻温度传感器选用的是丹麦AQUAMATIC公司的AQTE-PT100。它的传感元件是一个特殊设计的PT100与外部玻璃涂层的陶瓷外壳。外壳厚1.6mm,十分坚固且具有良好的防水和保护功能。该传感器线性温度响应,精度高,100%过热,响应时间快,体积小。测温范围是 -2℃ +38℃,精度 ±0.002℃,漂移小于 ±0.05℃/年,灵敏度0.003 85Ω/℃。
图2 惠斯通电桥和铂电阻实物照片
ADS1256是TI公司2007年推出的一款低噪声、高分辨率的24位△-Σ模数转换器。受带宽和有效采样率的限制,ADS1256不适用于高速的数据采集应用,但适合用于采集信号变化较为缓慢的模拟系统中。ADS1256提供了一个SPI串行数字接口,能灵活方便地和STM32进行通信。该ADC最大特点是在输入级内置了可编程的运算放大器,能直接编程控制放大倍数。这样不但能够极大的精简模拟电路结构,不需要在前端自己增加放大电路,同时电路误差也减小了,能够提高系统精度。同时输入级能作为差分信号输入,也能单端输入。输入级的缓冲器具有10GΩ以上的高输入阻抗。ADS1256的输入级由100Ω电阻和3个电容值分别为10μF,0.1μF,10nF的钽电容构成的低通滤波器。
本系统的设计对电源的要求比较高。为了充分保证并发挥24位高精度AD低噪声的优点,需要低噪声模拟电源给基准源和AD供电。因此电路采用了低噪声的线性电源芯片。尽管线性电源的效率低于开关电源。但是噪声远低于开关电源。此外在布局时数字电源和模拟电源需要隔离分开,分别在电路板不同部位。数字地和模拟地分开后最终单点连接以减少干扰。
设计采用ST公司的32位STM32F103RCT6单片机作为微处理器。嵌入式系统集成开发环境选择RealView MDK开发工具下的最新版本的Keil uVision4.02,使用C语言来开发程序。程序主要包括了系统初始化配置、AD转换控制程序、SD卡存储、串口发送数据、内部ADC、IWDG看门狗等模块等。ADS1256工作过程的建立主要是对芯片内部11个独立8位寄存器的设置来完成。包括通道选择设置,PGA放大倍数的设置,采样速率设置,自动校正方式等。ADS1256的自校准命令用来矫正内部和外部的漂移和增益错误。多路模拟开关MUX用来选择作为差分信号输入的通道。
上位机软件编写采用的是微软公司的VS2008下面的C#开发环境。C#是面向对象的高级语言,具有编写界面简洁,美观特点。甲板PC机通过串口接收到水下传来的数据后先保存到数据库Access中相应的table中后再绘制曲线,显示在界面上。绘图控件采用的是ZedGraph。该控件是一个开源的.NET图表类库。该控件全部代码都是用C#开发的[6]。C#能利用任意的数据集合创建2D的线性和柱形图表。在需要实时绘制曲线时十分方便,使用简单高效。绘图区具有自动缩放,调整坐标值功能。还支持查看历史文件记录,细节查看等功能。甲板系统软件设计流程图如图3所示。
图3 甲板系统软件流程图
系统电路经过多次测试修改,测试过前端信号放大采用独立的运算放大器,屏蔽了AD内部的PGA,测试结果显示独立放大电路引入的偏差和噪声都大于采用内部PGA放大方式。这主要是因为采用运算放大器虽然有着比较大的输入阻抗,但是也同时存在输入失调电压和失调电流,工作一段时间后芯片发热还会产生温漂。还有运放做放大器时若带有容性负载很容易产生自激振荡。考虑以上原因最终直接采用了ADS1256内部的PGA。另外前期设计电路时没有注意到要把模拟电路和数字电路的地分开也影响了一些精度。在上位机编写需要显示实时温度曲线选择控件时参考了Steema公司的Teechart for.NET控件。该控件显示效果完美,但是这是一个付费控件。最终选用了网络开源的Zedgraph控件,功能效果接近Teechart。在测试系统的精度时,把美国海鸟公司的SBE911CTD作为参照,同时放置在相同的环境下一段时间后取平均读数。测试数据如表1所示。表1中,数据显示本系统的精度优于0.000 5℃,完全能够达到设计要求。
表1 对比测试数据(℃)
本设计从小信号转换,低通滤波,AD转换设计出发,首先给出了一套整体的设计方案,接着分析了电路硬件各个部分的工作原理。完成上位机,下位机软件设计调试工作。在完成过程中需要不断调整电路设计和布线结构,调整AD采样率,放大倍数,工作模式等。24位AD对噪声极为敏感,通过不断地实验和优化设计最终系统工作状态令人基本满意。
[1]E.J.W.Jones.海洋地球物理[M].北京:海洋出版社,2009:245 -263.
[2]宋文鹏,姜锡仁,鞠蓬.CTD与颠倒温度表、盐度计方法的系统比较[J].海洋通报,2009,28(2):87-94.
[3]刘军.工程师经验手记例说STM32[M].北京:北京航空航天大学出版社,2011:66-85.
[4]黄争.数据转换器应用手册[M].北京:电子工业出版社,2010:271-294.
[5]赵天池.传感器和探测器的物理原理和应用[M].北京:科学出版社,2008:277-290.
[6]赵增敏.Visual C#2008程序开发入门与提高[M].北京:电子工业出版社,2009:254-267.