深海海底边界层原位监测硬件系统设计
2013-09-30王雨飞李欣
王雨飞李欣
(1、中国海洋大学信息科学与工程学院,山东青岛266100;2、中国海洋大学信息科学与工程学院,青岛,266100)
1 概述
海底原位监测技术是一种能对海底表面或近海底进行定点、连续、多要素同步测量的水下监测技术。研发深海海底边界层原位监测技术,对于加快提升我国海底资源探测开发的技术创新能力、促进深海科学研究均具有极为重要的意义。
开发板的硬件系统是海底原位监测技术的核心基础,根据系统设计要求,实现深海海底边界层原位监测系统程序的自启动,采集数据的存储以及数据传输。
2 硬件系统
系统主要由以下几部分构成:可以在海底稳定工作的海洋探测仪器;控制系统自动化运行以及数据采集的嵌入式系统;负责电源管理和两路模拟量数据采集的单片机系统;实现数据中转的串口服务器和交换机系统。
鉴于以上分析,采用基于ARM9的嵌入式系统作为自动化控制系统,通过读取传感器的数据来判断环境位置,基于TCP/IP协议,通过串口服务器与海洋仪器进行通信,进行数据采集和管理。电源管理系统基于MSP430单片机,智能控制电源分配,采集一种其数据后,断开深海仪器与嵌入式系统的供电,进入低功耗模式,等待下一周期。
ARM微处理器具有体积小、低功耗、高性能的优点[1],嵌入式系统采用ATMEL公司的AT91S9263CU微处理器作为控制核心。2MB norflash用来存放u-boot引导程序;10M/100M以太网接口,用于程序下载、网络通讯应用;4GB SD卡作为系统的主存区,从深海设备中采集到的数据,经处理后保存到SD卡中。MSP430系列单片机是一种16位单片机,集成功能丰富,内存也比较强大[2]。MSP430单片机自带8路12位ADC,精度高,设计灵活巧妙,在本系统中的功能主要是采集模拟量数据和控制整个系统的电源供给。
系统共集成了8台海洋仪器,分别为声学多普勒流速计(ADV),三维海流计(Aquadopp),CO2、CH4、PH、DO 传感器,高度计和深海摄像子系统。其中ADV、Aquadopp、CO2、CH4 四台仪器为 RS232通讯接口,经过串口服务器转换与RJ45接口的交换机及ARM通讯。PH、DO传感器数据为模拟量输出,与MSP430单片机的12位转换通道相连,数据经模数转换后打包,通过串口服务器转换后上传给ARM。系统集成了深海摄像子系统拍摄海底影像。
3 嵌入式控制系统软件平台搭建
3.1 Linux内核配置
深海海底边界层原位监测系统的核心是以Atmel公司的AT91S9263CU为微处理器的ARM9开发板,采用Linux2.6.30作为开发板的操作系统。选择Linux操作系统作为开发板的操作系统主要是因为Linux操作系统是稳定的系统,可以进行独立工作,自由与开放,配置要求低廉,功能强大而稳定[3],适合需要小核心程序的嵌入式系统。
2.6 版本的内核相比于2.4版本的内核使用了新的进程调度算法,在高负载的情况下执行的极其出色,并且当有很多处理器时也可很好扩展[4]。内核任务可以被抢占,从而提高系统的实时性,可以处理任意数目的县城,增加对文件系统支持。
移植内核需要对内核进行适当的裁剪,以满足开发的需要。根据开发需求,对内核进行裁剪。这里,选择与Atmel公司的AT91S9263CU微处理器相关的配置。保存相关配置,对内核进行配置,并且对内核进行编译。因嵌入式系统需通过uboot来烧写Linux内核以及文件系统,而且uImage是u-boot加载的映像格式,生成可执行的内核镜像文件uImage。
3.2 镜像烧写
镜像烧写是开发板加载操作系统的基础,选择烧写jffs2镜像,是因为jffs2支持Nand Flash装置,是具有断电可靠性的日志结构文件系统。
JFFS2是JFFS的后继者,由Red Hat重新改写而成。JFFS2的全名为Journalling Flash File System Version 2(闪存日志型文件系统第2版),其功能就是管理在MTD设备上实现的日志型文件系统。与其他的存储设备存储方案相比,JFFS2并不准备提供让传统文件系统也可以使用此类设备的转换层。它只会直接在MTD设备上实现日志结构的文件系统。JFFS2会在安装的时候,扫描MTD设备的日志内容,并在RAM中重新建立文件系统结构本身。
深海海底边界层原位监测系统需要使用可写文件系统,因此选择使用JFFS2具有断电可靠性的日志结构文件系统。根据开发者的开发需求对开发板的系统文件进行适当的修改,以满足系统的需求。
3.3 自动挂载SD卡
在数据存储方面,选用Atmel公司的AT91S9263CU为微处理器的ARM9的开发板,其存储器容量为64MB SDRAM、128MB NandFlash、2MB DataFlash,不能满足存储大容量数据的要求,需要外接存储设备。在外围设备方面,本型号的开发板有1路SD/MMC卡接口,可以在外部扩展存储容量,通过外部扩展SD卡实现大容量数据存储的要求。
对开发板自启动文件进行相应的修改,实现自动挂载SD卡的功能。开机自启动的文件是Linux操作系统的系统文件,该文件完成各种设备的挂载。通过修改此文件,可以实现设备的自动挂载。
为实现自动挂载SD卡的功能,在此系统文件中添加相关命令。重新启动嵌入式系统,通过相关监测设备可以监测是否自动挂载SD卡。
3.4 程序启动
在深海海底边界层原位监测系统中,SD卡内的监测程序是整个系统中最核心的部分,而监测程序的自动启动是深海海底边界层原位监测系统能够顺利工作的基础。实现程序的自动启动除了实现开机后SD卡自动挂载,还需要实现使用者自定义开机启动程序,Linux启动最后阶段,系统会执行SD卡中相关文件命令。在系统开机时,需自动运行自定义开机启动程序。将通过交叉编译环境所生成的二进制文件存储到SD卡中并且建立相关文件,在该文件中添加启动命令,重新启动通过监测设备可以监测程序是否自动运行。
3.5 FTP服务器的搭建
FTP是文件传输协议(File Transfer Protocol)的简称,是因特网上使用的最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限[5],文件传送协议FTP使用TCP可靠的运输服务。在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:控制连接和数据连接。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建数据传送进程和数据连接,用来连接客户端和服务器端的数据传送进程。
通过FTP服务器,可以使上位机(PC机)通过网络接口访问嵌入式系统,实现上传下载数据的功能。FTP服务器使用简单,可以通过FTP客户端建远程登录FTP服务器,进行各种文件的操作。
FTP有多种实现形式,本系统在调试时使用bftpd服务器程序。bftpd可以广泛应用于 Linux、BSD/OS、FreeBSD、Solaris、DG-UX以及Tru64平台。bftpd主旨成为一款高速、小巧而且配置方便的服务器,可以使用其默认的配置选项,也可以通过交叉编译将其嵌入在不同的应用平台上,bftpd依赖关系比较简单,运行稳定。
结语
通过长时间连续挂载SD卡以及连接FTP服务器的试验,表明以上方法可以满足深海海底边界层原位监测系统硬件系统的设计要求,实现了在外围设备中的数据存储以及数据传输。
[1]刘锐,王林.基于ARM数据采集系统的设计[J].中国测量,2010(36):89-92.
[2]秦龙.MSP430单片机C语言应用程序设计[M].北京:电子工业出版社,2006:1.
[3]鸟哥.鸟哥的Linux私房菜,基础学习篇(第二版)[M].北京:人民邮电出版社,2007:16.
[4]宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008:45-46.
[5]谢希仁.计算机网络(第 5版)[M].北京:电子工业出版社,2007:232.