1、引言
海气边界层是海洋与大气之间进行能量、动量和物质交换的枢纽和桥梁,对局部地区乃至全球的海洋气候有着巨大的影响,是中长期数值天气预报和气候变化预测的理论基础。因此,海气界面能量和物质交换以及海洋大气边界层结构已经成为近十几年来海洋和气象学家非常关注的问题,同时也是大气科学和物理海洋学研究的难点。
海气边界层的观测手段主要集中在气象观测塔、海洋测量船、无线电探空仪、天气雷达等。30多年来国际上进行了大量科学试验,如大西洋季风实验(ATEX),海洋湿度交换试验(HEXOS)、热带海洋和全球大气试验(TOGA)。正在进行的全球能量与水循环试验(GEWEX)、气候变化和可预报性计划(CLIVAR)等都把海-气通量观测研究作为其主要内容。我国在海气相互作用方面也开展了科学调查和现场观测试验。如2002年在我国广东沿海开展中国登陆台风外场科学试验CLATEX(China Land fallingTyphoon Experiment),首次进行登陆台风的边界层观测试验。
2009~2010年 “台风登陆前后异常变化及机理研究”项目中实施了“台风登陆过程外场科学试验”,进行登陆台风界面通量交换、海洋气象要素变化、大气边界层结构等方面的探测。在开展的“我国近海海洋综合调查与评价”大型科学调查研究中,海洋气象和海气界面通量观测是非常重要的一个方面。
2009年9月开始,国家海洋技术中心在南海海域和东海海域安装了几套岸基海气边界层监测系统,为用户提供了大量宝贵的原始观测资料。但 是其 数据 采 集器采用C8051作为主控制器,在数据处理、接口通用性和功能扩展等性能上也有明显不足。因此,本文基于Intel XScaleIXP422设计开发出一种可用于海气边界层系统数据采集和处理的采集器。采集器充分利用Linux嵌入式系统的多任务、低功耗、实时性高等性能,及其丰富的接口资源,实现对于梯度风速、风向,梯度温湿度,气压,海表层水温等观测要素的数据采集和处理。
2、海气边界层系统结构
海气边界层系统可以连续、自动获取铁塔所在区域大气边界层近地面层(距离海面40m左右)温湿和风廓线数据,海表水温和水位数据,气压数据。每一层传感器和数据变送器可以自成系统,独立运行。
如图1所示,风速、风向传感器、温度、湿度传感器和数据变送器安装在观测铁塔上。每一层安装一套风速风向传感器、温湿度传感器和数据变送器。数据变送器的主要功能是采集风速风向和温湿度信号,并把数据通过RS485总线发送到数据采集器中。水温传感器安装在温盐井中,水位传感器安装在验潮井中。为了保证系统的安全运行,数据采集器和数据变送器以及水位和水温传感器之间通信也是采用带隔离功能的RS485通信模块,因此需要分离电源对数据采集器和数据变送器进行供电。通常情况下,水温和水位传感器和数据变送器使用同一电源。
采集器将数据采 集以后,进行 处理,以 文本格 式保存在CF卡中。每5min通过北斗通信机将前1min的原始数据发送出去。数据显示和采集器参数配置可以通过触摸屏来实现。现场有稳定220V交流电源的条件下可以选择性的配置一台PC作为值班机,值班机和触摸屏的功能相同,通过值班机也可以实现数据显示和采集器参数配置。
3、采集器软硬件设计
3.1控制器介绍
采集器主要负责采集海气边界层监测系统各个监测要素的数据,对数据进行保存,确保系统能够及时、准确地采集到各个监测要素的数据。因此采集器至少需要以下功能:
1)数据采集;2)数据管理和存储;3)参数设置和校时;4)事件记录;5)数据上行及下行传输;6)本地状态等指示通信功能;7)终端本地及主站远程维护。
通过比较和分析,采集器使用IXP422作为主控制器,此款芯片是一种多功能的处理器,集成了许多必要的接口,具有强大的网络安全功能,特别适合用于工业控制,而且功耗相对较低,无需考虑添加额外的散热设备,从而可减小产品的体积、降低产品成本、提高产品的可靠性。采集器硬件结构和接口如图2所示。
3.2开发环境
Linux是模块化设计的操作系统。用户可以方便地对其进行配置,去除系统不需要的模块以减少开销。Linux在进程管理、内存管理方面功能强大,可以满足大多数应用的复杂要求。强大的网络支持功能。
Linux诞生于Internet并具有Unix的特性,这保证它支持所有标准Internet协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式TCP/IP网络协议栈。具有很高的适应性和可靠性。和其他运行于PC上的系统相比,因为Linux继承了Unix的优点,在适应性和稳定性方面性能是非常突出的。嵌入式Linux的可移植性。将Linux移植到新的微处理器体系比较容易,一般将其移植到一种新型的目标板,其中包含独特的外设。大部分内核代码都是相同的,因为它们和微处理器无关,所以,移植的工作多集中在一些存储器管理以及中断处理程序上,一旦完成,它们将非常稳定。
采用交叉编译方式进行嵌入式采集器的开发。为了确保在宿主机中编译完成的可执行文件能够在采集器的系统运行,必须确保宿主机中有源代码编译所需要的库文件。采用在虚拟机中安装Redhat 9.0嵌入式操作系统,在此操作系统中安装交叉编译器xscale_be_gcc。在虚拟机中将编写的代码编译链接,生成可执行文件,通过网口或串口将可执行文件下载到采集器中运行调试。
3.3软件设计
为了充分发挥嵌入式系统的多任务处理能力,采集器应用软件开发采用多线程设计。分为数据采集和处理线程,数据存储和转发线程,北斗通信线程。
3.3.1数据采集和处理线程数据采集和处理线程主要是对铁塔数据,和其他的气压数据、水位,水温数据进行采集,进行处理,求出最大值,最小值,极大值,极小值等数据。如图3所示,铁塔数据采集流程图,每次数据采集开始前发送同步命令“$000/r/n”,使得数据变送器清除已保存的数据并重新开始数据采集。发送当前层数的采集命令,由于采集命令“$+地址+□+1+<CR><LF>”7个字节和响应命令“$ +地址+ □ +1+ □ + ±AA.A□BBB□CC.C□DDD+校验码+<CR><LF>”30个字节。波特率为9 600bps,总共响应时间为37×11/9 600=0.043s。程序中设计等待时间为0.05s。得到原始数据需要判断当前气象秒的下标是否为0,也就是判断当前是否为00s,如果是00s,则需要求出上分钟的平均值,保存为这分钟的原始数据,并将每秒采集的数据初始化。如果不是00s则直接将将当前的每秒数据保存就可以了。如果是00s,则需要求出上分钟的平均值,保存为这分钟的原始数据,并将每秒采集的数据初始化,然后再保存00s的数据。最后再判断当前层是否为最高层,不是最高层,则层数加1,继续下一层的数据采集,直到最高层。
对于气压和水温盐度数据的采集,由于气压和水温盐度传感器都是采用主动发送的格式,每秒主动发送一个数据。采集器需要每秒从串口缓冲区中读一次数据可以了。对于水位数据的采集,需要发送采集命令进行数据采集。
3.3.2数据存储和转发线程数据存储和转发,包括每分钟将原始数据以文本文件格式保存到CF卡中,保存目录“/var/hda”。本文设置可以保存一年的原始数据。每天建立一个文件,以当前日期“YYYYMMDD”,比如“20130101”作为文件名。在处理超过1年的原始数据时,有2种方式,第1种方式是将去年这天的文件直接删除,重新建立新的文件,但是这种方法会产生碎片。第2种方式是检查是不是有这个文件,如果有这个文件,将文件更名并将其内部数据清空,然后将最新的原始数据存储到文件中,此方式不会产生碎片,在此采用第2种方式。
由于给上位机和触摸屏发送原始数据也是每分钟一次,所以在每次保存完数据后直接将原始数据打包,通过串口发送触摸屏,以socket接口发送到上位机。
3.3.3北斗通信线程采集器每5min给北斗通信机发送一次数据,将上1min的原始数据按照北斗通信格式发送出去。通信数据采用十六进制数据方式编码。数据以单字节的形式传送,2bit整型数据,高字节在前,低字节在后。
4、结论
充分利用Linux嵌入式系统的高性能、低功耗,丰富的接口资源等优点,开发出一种可用于海气边界层监测系统的数据采集器。可采用上位机和触摸屏实现对数据的显示、监控,以及对采集器和前端传感器的一些参数配置。上位机和触控屏数据显示如图4和图5所示。海气边界层数为6层,每层包括气压、湿度、风速、风向,另外有当地的气压、水位和水温观测要素。
经过测试,采集器性能可靠稳定,由它构成的系统性能优越。可为海气边界层的理论研究提供现场观测原始数据,另外采集器设计小巧轻便,功耗低,并且可实现无人值守。
参考文献:
[1] 李云波,张永刚,唐海川,等.海气通算法在海上蒸发波导诊断中的应用[J].海洋技术,2008,27(1):106-111.
[2] 夏华永,张燕,段存志.2006年夏季珠江口外海域船基海气通量观测资料质量评估[J].热带海洋学报,2008,11,27(6):66-70.
[3] 金明,唐振,黄均安.基于IXP422的电能量管理终端的软件系统设计[J].安庆师范学院学报,2012.11,18(4):85-86.