《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于STM32的海洋浮标无线通信网络设计
基于STM32的海洋浮标无线通信网络设计
王 宗,刘敬彪,蔡文郁
(杭州电子科技大学 电子信息学院,浙江 杭州310018)
摘要: 针对在远海海洋的特殊环境下,数据传输能力不能满足海洋环境检测需求的现状,提出以无线传感器和铱星模块构建海洋浮标通信网络的设计方案,并给出具体的组网方法及通信协议。
中图分类号: TN929
文献标识码: A
文章编号: 0258-7998(2011)07-0042-03
The design of communication wireless network among ocean floats based on STM32
Wang Zong,Liu Jingbiao,Cai Wenyu
Electronic Information College of Hangzhou Dianzi University, Hangzhou 310018,China
Abstract: Due to the status quo that data transmission capacity cannot meet the demand of the marine environment detection in the special marine circumstance far away from the coastal area, the paper puts forward a scheme to design a communication network among ocean floats based on wireless sensors and iridium modules, which also gives a concrete networking method and communication protocols.
Key words : ocean communication;wireless network;Iridium satellite;STM32;protocol


    在世界人口数量剧增、陆地资源锐减、环境污染日益严重的今天,进军海洋、开发海洋已成为世界海洋技术领域的一大主题。发展海洋科技,尤其是海洋高新技术首先要解决的问题就是海洋环境监测。
    目前,使用较多的是ARGO[1,2](Array for Real-time Geotropic Oceanography)即地转海洋学实时观测阵,它是全球海洋观测业务系统GOOS(Global Ocean Observing System)[3,4]中的针对深海区温度盐度结构观测的一个子计划。ARGO节点借助液压动力来改变自身体积以便在0~2 000 m深的海水中下沉与上浮,同时,在上浮过程中对海洋环境进行剖面测量。AGRO采集的数据是以10~14天为周期通过卫星系统来传输的。
    本系统针对远海海洋数据传输不能满足实时检测的现状,以无线传感器为节点构成数据传输网络,采用铱星模块将采集数据发往陆地基站。
1 系统简介
    本海洋浮标网络数据传输系统结构如图1所示,主要由海洋浮标节点、无线网络、卫星通信系统组成。
    海洋浮标节点通过光纤、电缆或无线方式与其下方的传感器网络通信,以实现对一定范围内海洋环境的检测,同时每个浮标节点都携带有无线通信模块和卫星通信模块。无线网络完成两个功能:将浮标网络中各节点采集的数据传输到中心节点;在中心节点发生故障时选择新的中心节点,尽量保证系统的正常运行。卫星通信系统负责将汇集在中心节点的数据发送到陆地基站。

    本论文研究无线网络的数据传输与网络维护以及卫星通信。
2 系统原理
2.1 无线网络结构选择及协议制定

    无线网络不同于有线网络,在有线网络中,一个节点发出的数据通过有线链路直接抵达目标节点或中继节点,在此过程中,不会对其他节点造成影响。而无线网络中,节点发出的无线信号会对网络中所有节点造成干扰,若不加限制,则无线网络完全无法运行。
    此外,本无线网络还具有以下特点:(1)网络中节点一般不会超过10个;(2)网络一旦建立,短期内不会加入新的节点,数据传输量不大但频率较快。
    介于以上特点,本网络设计如下:(1)采用星型结构,与此同时,任何通信都由中心节点发起,这样可以避免中心节点同时收到多条数据而造成混乱;(2)网络分三层:物理层、传输层、应用层;(3)网络内节点拥有唯一的网络地址(初始设置中心节点地址为02,外围节点依次递增),以实现数据的定点通信。
    图2所示为网络协议帧格式。由于每次通信都是由中心节点发起的,所以协议中不设立源地址。各层功能如下:物理层提供数据的实际传输,由无线模块完成,传输层只需以字节为单位发送数据即可;传输层负责检测网络状态以及数据帧的提取,并对比目的地址与该节点地址,若不符合接收条件,则丢弃数据包;应用层完成中心节点指定的任务,如采集数据的发送、节点地址的设定等。

    应用层标志位意义如下:
    G:中心节点获取数据标志,此时,外围节点以采集数据来填充数据帧并发送。
    D:表示采集数据,此时,中心节点接收到的数据为采集到的数据。
    A:重新设定节点地址标志,此时,数据域有三个字节且每个字节都为新地址并相等。该功能可在中心节点检测到卫星通信发生故障时设定新的中心节点。
    S:成功标志位,外围节点成功设定本节点新地址后置位该位,否则清零该位,并告知中心节点。
    W:警告标志位,外围节点发生故障时置位该位,请求将故障信息发往陆地基站。
    R:授权标志位,指定新的节点为中心节点时置位该位,为了防止误码造成的中心节点转移而造成网络混乱,此时数据域必须是0x5555。
    N:备用中心节点标志,告知外围节点数据域指定的为备用中心节点地址,此时数据域由三个字节组成,且每个字节都为备用中心节点地址并相等。
2.2 网络自我修复
    星型网络对中心节点的依赖性很强,一旦中心节点发生故障,网络便会瘫痪。针对这一情况,本论文提出了网络中心节点转移的概念。考虑到各节点都有检测网络状态的能力(传输层完成此功能),同时,任何一个性能良好的节点都有能力至少完成一次网络扫描并告知其他节点备用中心节点的地址,所以可以很容易地实现中心节点的转移。
    中心节点故障[5]包括卫星通信故障和无线模块故障两种。
    设中心节点地址为X,当卫星通信发生故障时,中心节点首先在网络中查找无故障的目标节点(W=0),然后将目标节点地址设置为X-1、将自身地址设置为目标节点的原始地址,同时向目标节点发送中心节点授权(R=1,数据域为0x5555),最后,目标节点将自身地址设为X,成为新的中心节点。
    当无线模块发生故障时,所有外围节点都不会检测到任何无线信号,此时,外围节点与备用中心节点地址进行对比,匹配的外围节点成为中心节点,发起数据通信,查找无故障的节点并将该节点指定为新的备用中心节点,同时告知其他外围节点。
3 节点硬件设计
    节点需具有以下功能:卫星通信、无线通信、水下数据接收、数据存储,同时尽量降低节点的功耗及成本。综合考虑,选用处理能力适中的STM32作为CPU;选用9XTend作为无线收发模块,该模块在使用偶极天线时通信距离可达22 km,在使用高增益天线时最远可达64 km;选用9601SBD(9601 Short Burst Data Transceiver)铱星收发模块通过铱星卫星与陆地基站进行通信。由于STM32只有两个USART资源,而铱星收发需要实时检测信号质量并尽量保证在较小的延迟下将数据发往陆地基站,所以9601SBD占用一个USART,无线通信及水下数据接收共享一个USART。图3所示为节点硬件框图。

4 软件设计
    系统软件应完成水下数据接收、铱星模块控制、无线网络通信与维护、数据存储等功能。开机后,各节点读取系统配置对本节点初始化,包括SPI接口初始化、定时器初始化、水下数据接收初始化、9XTend初始化。此外中心节点需要初始化9601SBD控制模块,而外围节点则将9601SBD控制模块置于休眠状态,以降低功耗。之后系统进入工作状态。图4所示为不同节点工作状态下的程序流程图。

5 实验结果
    实验中设计了4个无线节点,并以图5连接方式将这些节点随意放置于10 m×8 m的房间中,各节点供电电压为9 V,铱星天线置于室外,无线RF模块的通信速率为19 200 b/s,RF模块与CPU的通信速率为9 600 b/s。首先将各节点配置为非网络运行状态,此时记录其中一个节点接收数据情况,如表1所示。由表1可以发现,当各节点发送数据帧的间隔时间不断减小时,误码率明显提高,当间隔时间为0.5 s时,9%的误码率导致几乎不能提取出正确的数据帧。


    当把各节点用本论文所述方式进行配置后,查看其中一个节点接收数据情况并记录如表2所示,此时即使将发送间隔时间降低到0.3 s也不会出现误码,不足之处是有些数据帧需要延迟发送。从协议上分析,由于通信总是由中心节点发起的,所以不应该出现误码,但当间隔时间降低到0.1 s时,出现了误码,这应该是由于中心节点分配给外围节点的时间片较小而造成的,若增加时间片,则会降低网络数据传输的效率,所以可以综合考虑通信速率和网络效率并依据实际需求选择最佳的时间片值。


    通过电脑查看铱星卫星通信状态,当铱星天线信号良好时,从中心节点发送的数据仅需20 s即可抵达陆地基站。表3记录为3 h时间段内,9601SBD信号质量状况,其中0代表无信号,5代表信号质量最好。实验表明,天气状况良好,信号质量为“3-5”时可以正常进行铱星卫星通信;天气状况较差,如阴雨天时,信号质量为“4-5”时才能保证铱星卫星正常通信。

    针对远海海洋特殊的应用环境,本文提出了以9XTend无线模块及9601SBD铱星模块构建海洋浮标网络数据传输系统的设计方案,并给出了无线网络的架构及协议。实验证明本设计切实可行并表现出较大的优越性,完全可以应用于海洋浮标网络的数据传输,对我国海洋环境检测技术的发展有较大的意义。
    本设计目前针对的是网络中节点较少的情况,理论上可以支持最多254个节点(地址0不使用,地址1作为中心节点转移时的临时地址),但随着节点的增多,就会增加中心节点的负担,在后续改进中,可以将网络分层或划分子网,从而减轻中心节点的负担并实现网络的更大范围覆盖。
参考文献
[1] 朱伯康,刘仁清,许建平.一种专门用于低纬度洋区观测的Argo剖面浮标[J].海洋技术,2009,28(4):123-125.
[2] Deng Ziwang,Tang Youmin,Wang Guihua.Assimilation of argo temperature and salinity profiles using a bias-aware  localized EnKF system for the Pacific Ocean[J].Ocean Modelling,2010,35(3):187-205.
[3] 麻常雷,高艳波.多系统集成的全球地球观测系统与全球海洋观测系统[J].海洋技术,2006,25(3):41-44+50.
[4] Farhan A R,Lim S.Integrated coastal zone management towards Indonesia global ocean observing system(INA-GOOS):review and recommendation[J].Ocean and Coastal Manage ment,2010,53(8):421-427.
[5] 刘卫,徐晓玲,杨杨.浅议无线网故障解决方法[J].甘肃高师学报,2010,15(5):38-40.

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