文献标识码: A
文章编号: 0258-7998(2010)12-0036-03
以浮标平台为载体的海洋定点垂直剖面监测系统[1]可以实现海平面以下水体垂直剖环境监测数据的实时、自动获取,它由水下数据采集系统、电磁耦合系统、水上浮标远程监测和数据传输系统组成,可为海洋的探索和监测提供丰富可靠的数据信息和资料。从我国开始研制海洋资料浮标以来,实时数据传输系统先后采用过多种数据通信方式,包括短波通信、INMARSAT-C卫星通信以及GPRS/CDMA通信等。各种通信方式各有优点和局限性,短波通信抗干扰能力差、误码率高、数据接收率低;INMARSAT-C卫星通信可靠性高,数据接收率达95%以上,但通信费用较高;GPRSP/CDMA通信费用较低,但通信信号受到浮标到岸边距离的限制[1]。根据浮标系统对数据传输及功耗的要求,本文利用铱星突发短数据SBD(Short Burst Data)透明数传模块提供的SBD业务,实现了数据的可靠传输,利用监测板代替主控板完成对浮标系统的实时监测,并大幅降低了系统的浮标远程监测与数据传输系统的功耗。
1 系统工作原理概述
海洋定点垂直剖面监测系统的整体结构框图如图1所示。本文主要阐述由主控板、铱星通信终端和监测板组成的水上浮标远程监测与数据传输系统。它主要完成转发水下数据采集到的数据和对浮标体进行实时监测。为降低功耗,主控板未进行数据传输时休眠,铱星通信终端未发送数据时不供电。
水下数据采集系统利用波浪能自行下降,到设定的深度后上升并且开始采集数据。当上升到距海面浮标体一定距离时,嵌于数据采集系统顶部玻璃钢内的钕铁硼磁块将触发嵌于浮标底部玻璃钢内的磁敏开关电路,使其产生中断信号,唤醒处于休眠状态的主控板。然后,主控板通过RS232串口接收并保存从电磁耦合系统传来的数据。数据接收完毕后,水下数据采集系统再次下降去采集数据。与此同时,主控板通过铱星通信终端将接收到的数据发送到监控中心,并再次进入休眠状态,等待下次数据的到来。
主控板休眠时无法完成监测浮标、锚灯和电池电压等状态的工作,本文用监测板代替主控板完成这些重要的工作。当出现异常情况时,监测板通过I/O口产生中断信号来唤醒主控板,并与之进行串口通信,然后由主控板通过铱星将以上状态信息发送到监控中心。
2 系统硬件概述
2.1 主控板
主控板的微处理器选择Atmel公司生产的工业级ARM9芯片AT91SAM9G20,其主频高达400 MHz,在所有外设启动的全功率模式下,其功耗仅为80 mW。相对其他ARM9芯片,其功耗较低。它有丰富的串口资源,6路RS232串口和1路可配置为RS485或RS422串口,支持铱星通信终端所需的9线串口,使得主控板和铱星通信终端之间的通信更加稳定。安装WINCE操作系统后,支持大容量SD卡存储和多线程操作,非常适合应用在多串口数据采集、存储和通信的场合。主控板的简要框图如图2所示。
2.2 铱星通信终端
铱星系统是由66颗环绕地球的低轨卫星网组成的全球卫星移动通信系统,其最大优势是通信范围可以覆盖全球,而且无论在任何地方都能保证数据通信的信号强度和可靠性,不受天气、高度、电离层、距离等不稳定因素的制约,因此,特别适合现有通信手段达不到的地方。本系统工作的海洋环境就是这样的地方。此外,相对于其他数据通信方式,铱星通信的费用较低,而且功耗较小,能够满足海洋浮标设备低功耗的要求。
本系统中的铱星终端使用铱星SBD 透明数据传输模块,它嵌入了铱星9601 SBD和SBD协议,结合铱星全球覆盖网络提供铱星数据业务(SBD),通过采用数据包的方式实现短消息双向传输。在本系统中,主控板通过9线RS232串口向铱星模块发送AT指令集,实现SBD业务。用户可以通过邮件协议方式或DirectIP链接方式获取数据,也可在终端之间进行数据收发。模块的主叫消息可达205 B,被叫消息可达105 B。通信速率最高可达115 200 b/s,默认波特率为192 00 b/s,可通过AT+IPR命令设置[2]。
2.3 浮标状态监测板
主控板可以完成浮标状态的监测工作,但由于其功耗相对单片机较高,为尽可能降低电子系统功耗,满足长期无人值守监测需求,本系统选用了以低功耗MCU芯片STC12C5A60S2为核心的监测板来完成监测导航锚灯、浮标仓盖、仓体漏水和系统电池状态的工作。其正常工作时的电流为2 mA~7 mA。
浮标系统中,锚灯在夜间以一定频率闪烁,以免过往船只撞上浮标,如果它在白天闪烁,则说明其出现异常。对浮标仓盖进行监测,主是要为了防止其被人为打开。浮标仓体如果发生漏水,则会对其中的电子系统和电池产生致命的危害。系统的电池电压过低,也会严重影响系统的运行。如果以上这些异常情况发生了,都会通过主控板发送到监控中心。监测板的框图如图3所示。
3 系统软件设计
通过软件降低功耗的方式有两种:(1)使主控板未进行数据通信时休眠;(2)铱星通信终端没有发送数据时,通过主控板I/O口控制终端的相应引脚关断其电源。
3.1 AT91SAM9G20主控板程序设计
主程序设计可分为以下四个步骤:(1)安装中断。上电后,不打开任何串口而直接进入休眠状态。要使其返回正常状态工作,则必需通过中断将其唤醒。(2)串口配置和通信[3]。在WINCE中struct DCB包括了串口的波特率、字符位数和奇偶校验等重要属性,在修改好DCB之后,调用的串口操作API函数SetCommState使串口的属性配置生效。对于串口读写,设置串口读写超时是非常重要的,SetCommTimeouts函数提供了这样的功能。配置好串口后,用CreateFile函数打开数据接收串口和状态串口,并调用CreateThread创建串口监听线程。在监听线程中利用WaitCommEvent函数阻塞线程,等待串口事件中某一事件的发生。当串口发生错误时,则调用OnError清除错误。当有字符到达串口的缓冲区时,用ReadFile读串口。主控板与水下数据采集子系统之间的通信是在监听线程函数中回调函数OnReceive中完成的,接收到的数据保存在大容量SD卡中的文本文件。然后,利用线程同步API函数WaitForSingleObject(m_hSendWait, INFINITE)阻塞主线程。(3)数据传输。水下采集到的数据在传输完后,将会标识阻塞主线程的句柄m_hSendWait。之后,主控板将数据通过铱星发送到监控中心。(4)关闭串口。一次数据接收和发送完后,应该关闭打开的串口,然后再次进入休眠状态。主控板程序流程如图4所示。
3.2 铱星通信终端程序设计
主控板通过串口向铱星SBD透明数据传输模块发送AT指令就可以控制其发送数据。铱星模块发送数据时,其功耗最大,利用AT+CSQ命令可查询当前铱星模块与铱星卫星之间是否存在网络,这样也可以减小铱星模块的功耗。如果大于0,即应答信号位中的信号强度为1~5,则用AT+SBDIX命令发送数据。程序流程如图5所示。
3.3 监测板程序设计
监测板主要实现浮标体和电池状态的实时监测。当浮标、锚灯和电池体状态正常时,无需将当前的状态发回监控中心,也就不用产生中断信号。当出现异常情况时,如电池电压低于预设值,MCU将产生中断信号,并通过串口将状态字符串发送给主控板,由后者通过铱星通信终端发送到监控中心。
4 系统调试
将主控板的打印串口COM3与电脑的串口相连,打开串口调试助手,波特率设置为9 600 b/s,无奇偶校验位,8 bit数据位,1 bit停止位。系统上电后,把嵌有钕铁硼磁块的玻璃钢圆板向内嵌有磁敏板的玻璃钢片移动。当到达一定距离后,磁敏板产生中断信号。水下数据采集板与水上主控板握手成功后进行数据通信,主控板将数据保存在SD中。经过长时间运行,通过从串口调试助手打印出的信息与SD卡和邮箱中的数据比较可知,系统运行稳定。通过传感器模拟异常情况时,异常情况数据帧也能通过铱星通信终端发送到邮箱中。
测试到的主控板和监测板的功耗如表1所示。若以表1的数据为依据,用12 V/38 AH的蓄电池对主控板、铱星通信终端和监测板(不包括锚灯)供电,设系统每日完成一个数据采集周期,每个采集周期发送数据时间为2小时,则只采用主控板完成数据收发和状态监测所消耗的电能为22.7 WH,而用监测板代替主控板完成状态监测工作所消耗的电能为14.1 WH。在不借助太阳能电池板对蓄电池充电的情况下,前者大约能工作20天,后者大约能工作32天。可见,用监测板代替主控板完成状态监测工作非常必要。
本文利用铱星设计和实现了一种浮标远程监测和数据传输系统,在系统运行稳定的前提下,充分考虑到系统对功耗的要求,从硬件的选取到软件的实现,都尽可能地降低其功耗。用监测板代替主控板进行状态监测,不仅降低了系统的功耗,而且使状态监测和采集数据传输相对独立,更易于系统的稳定运行和功能的扩展。该浮标远程监控和数据传输系统很好地满足了海洋定点垂直剖面监测控制系统的需求,达到了设计目标。
参考文献
[1] 张曙伟,王秀芬,齐勇.铱星数据通信在海洋资料浮标上的应用[J].山东科学,2006(5).
[2] Iridium Satellite LLC.Iridium 9601 short burst data transceiver product developers guide V1.24[M],2005.
[3] 汪兵,李存赋,陈鹏,等.EVC高级编程及其应用开发[M]. 北京:中国水利出版社,2005.