船载卫星通信远程集中监控系统设计与实现*

2015-09-28 12:10钱小云
电讯技术 2015年2期
关键词:卫星通信线程队列

钱小云,叶 勇,徐 俊

(中国卫星海上测控部,江苏 江阴214431)

随着信息技术的飞速发展,卫星通信作为最重要的通信方式之一,无论是在军用和民用上均占有着举足轻重的地位。卫星网络由于具有全球覆盖、接入简便、带宽按需分配等传统地面网络无法比拟的优势,已被广泛应用于气象预测、环境监测、定位导航、广播电视和网络通信等方面[1-3]。

船载卫星移动通信系统作为我国某型远洋船对地面网通信联系主要手段,需在有限通信带宽下完成业务数据、气象海况、设备状态的信息传输和对外电话通信等日常办公通信保障任务。船载卫星通信包含C频段、Ku/Ka频段多种站型,设备种类繁多,监控通信接口种类复杂,随着技术发展还面临设备升级更新需求。因此设计一套可靠性高、可扩展性强、可移植性好、通信带宽占用小的综合控制管理系统,实现船载卫星通信的集中控制、远程监视、多点访问、控制管理一体化等功能,具有重要意义。

1 系统设计方案

船载卫星通信集中监控系统需要实现船载卫星通信各种设备运行状态和参数信息实时采集、状态变化趋势图生成、故障告警主动上报、设备远程操作控制、参数预警门限设置、历史运行信息查询和工作日志生成,同时还需要动态适应站点设备更替升级和满足陆地中心对多个站点实现统一远程监视需求。

1.1 硬件设计

硬件部分可分为系统的被管对象和集中监控系统自身。

1.1.1 被管对象

被管对象是船载C频段、Ku/Ka频段卫通站设备,每个卫通站主要由天线部分、驱动部分、跟踪部分和信道部分组成,其中天线部分、驱动部分及跟踪部分由天线控制单元完成信息采集并向外提供管理通信接口,信道部分的高功率放大器、变频器及调制解调器分别向外提供管理通信接口。

1.1.2 设备组成和连接关系

集中监控系统除被管对象之外由前端机、Nport多串口服务器、Web服务器及操作维护控制终端组成,其底层承载网是卫星通信信道和IP网络,组成结构如图1所示。

图1 卫星通信集中监控系统组成结构图Fig.1 Composition and structure of satellite communication remote centralized monitoring and control system

1.2 软件设计

软件设计部分首先给出前端机软件、Web网站和远程操作控制软件之间的整体关系,而后分别给出系统各部分软件详细设计。

1.2.1 整体关系

系统软件部分由前端机软件、Web网站和远程操作控制终端软件组成。前端机包括设备数据采集和命令分发、网络数据收发、数据解封转换及信息存储。Web网站提供状态查询、变化趋势图、信息统计和工作日志查询。远程控制操作终端软件提供实时状态监测、远程控制操作、历史信息查询及工作记录上报。各部分软件的关系如图2所示。

图2 卫星通信集中监控系统软件关系Fig.2 The connection of satellite communication remote centralized monitoring and control system software

1.2.2 前端机软件

前端机根据功能需求划分为3个模块,分别为串口通信模块、网络通信模块和主处理模块。串口通信模块通过发送、接收两个线程和接收、发送两个先入先出(First In First Out,FIFO)队列实现对设备状态读取和命令下发;网络通信模块的发送线程通过FIFO队列[4]获取来自主处理模块的信息、通过IP网络向特定组播组发布及完成写入数据库操作。接收线程负责创建接收来自IP数据包并将数据包经过FIFO队列交由主处理模块;主处理模块负责解析来自其他模块信息,根据需求转换对应数据格式并记录相关操作、参数设置的重要信息。前端机软件整体结构如图3所示。

图3 前端机软件整体结构图Fig.3 The whole structure of front- end software

1.2.3 Web 服务器端软件

Web服务器端软件为Web网站,通过对数据库数据访问向IP网络内部授权用户提供设备实时信息浏览、历史信息查询等服务。Web服务器软件整体结构如图4所示。

图4 Web网站整体结构图Fig.4 The whole structure of Web server software

1.2.4 远程控制操作终端软件

远程控制操作终端通过3个线程实现IP数据包收发及用户交互功能,其中接收线程通过加入指定源的IP组播组接收来自前端机发送的信息并将解析数据包送入接收FIFO队列;发送线程从发送FIFO队列获取数据,将数据封包后创建UDP套接字向前端机发送并将对应操作命令写入数据库;主线程负责处理接收FIFO队列的数据,解封并将信息显示到用户界面,将用户命令依次加入发送FIFO队列。控制操作终端软件整体结构模式如图5所示。

图5 远程操作控制终端软件整体结构图Fig.5 The whole structure of remote operation and control terminal software

2 关键功能实现

在系统实现过程中遇到被管对象网管通信接口类型繁杂、设备响应时间差异大、后续设备更替升级对系统扩展性要求高和远洋船与陆地中心通信带宽小等问题,通过采用以下技术方法逐一解决。

2.1 统一多类型通信接口设备

MOXA NPort多串口服务器可以将传统的RS-232/422/485设备转接连入IP网络,实现通过IP网络对多台串口设备远程统一访问。计算机在安装NPort驱动程序后,即通过配置将远程设备COM口映射成特定的IP地址加端口号,使用串口通信程序完成与设备数据收发通信。

远洋船船载卫通站由C频段、Ka/Ku频段多个卫星通信系统组成。设备通信接口形式各样,有RS-232/422/485及IP等多种通信接口。目前常见解决方案是通过Nport多串口服务器及网络交换设备统一接入各类型设备,然后由管理程序根据不同设备数据帧格式进行解析并显示,同时管理程序按设备命令帧格式构造控制命令向对应设备发送。本系统同样是通过NPort多串口服务器和交换机统一接入各种串口类型设备,前端机被管设备连接关系如图6所示。

图6 前端机与卫星通信设备连接关系Fig.6 The connection of front- end with satellite communication equipment

在完成统一接入的基础上,本系统开发部署前端机程序,负责对各站设备的数据采集、解析、重封装而后转发及存储,对用户命令接收、解析、重封装并分发至对应设备。相比常见方案,采用前端机程序可以将不同帧格式数据先解析出来,再按自定义统一格式对数据进行编码封装,向管理程序提供统一访问接口。通过将管理控制与数据解析处理分离,便于两部分独立升级及管理控制程序多点部署。

2.2 系统设备访问线程自调度

传统设备网管软件采用的设备访问方式分别为依次轮询和针对每台套设备开辟独立线程按时查询。依次轮询方式效果较差,在设备较多或某套设备无响应情况下设备状态参数刷新缓慢,不能有效地实现实时监测。开辟独立进程按时查询方式效果较好,但不能动态调整对设备的访问频率,某些情况下会加重设备负荷。例如,某设备平时负荷较小、响应速度快因而设置访问频率较高,但当该设备处理因某种原因处于高负荷状态,此时仍以高频率定时访问会加重该设备负荷。

本系统采用双线程队列及线程自调度方式优化设备访问轮询方式。双线程队列分别采用两种不同的访问时间间隔,访问时间间隔短的队列为快队列,访问时间间隔长的队列为慢队列。系统初始化时所有设备的访问线程都预置在快队列,每个设备访问线程内部采用计时器和标志位统计自身响应时间,若某设备响应时间连续超过设置标准值3次,该设备访问线程调度到慢队列,相反若该设备的响应时间连续低于设置标准值3次,该设备访问线程调度到快队列,其他情况下保持该设备访问线程所处线程队列。通过这样设计实现根据设备工作情况动态调整对设备访问轮询频率,既不会因某套设备或设备过多造成状态参数刷新不及时,也不会因为过多访问加重本已处于高负荷状态下设备的负担。访问线程自调度流程如图7所示。

图7 设备自调度访问线程流程图Fig.7 The flow diagram of self- scheduling accessing equipment thread

2.3 系统可扩展性

传统设备网管软件与系统被管对象耦合紧密,往往是针对现有设备的类型和数量进行开发,一旦被管对象中设备的数量调整或是设备型号更替就需要对程序进行调整,特别是界面部分都是根据现有系统设计制作,界面调整时需要重新设计并对源代码进行修改或开发。本系统采用模型-视图-发布器(Model-View -Presenter,MVP)设计模式和读取可扩展标记语言(Extensible Markup Language,XML)文件配置实现设备类型数目动态加载两种方法以提高自身的可扩展性。

2.3.1 使用MVP设计模式

MVP模式是从经典的MVC模式演变而来的,模型建立业务逻辑,视图负责显示,发布器作为模型与视图间的桥梁。MVP模式中视图并未直接使用模型,它们之间的通信是通过发布器进行,所有交互发生在发布器内部[5]。

本系统在业务逻辑层通过Model类完成对设备信息解析封装、用户命令接收处理及向发布器层暴露设备信息和返回处理结果。在发布器层通过IView接口完成用户界面数据和命令封装,实现隔离界面与发布器媒介。通过Presenter类将界面数据映射Model类中的实际属性,通过委托方式完成将用户命令转化为Model类中的操作处理。在用户界面层通过View类实现IView接口,实现设备信息显示和用户命令生成。业务处理层和发布器层在前端机程序中实现,用户界面层在远程操作控制终端程序中实现,两者之间信息交互通过网络通信完成。

2.3.2 设备动态加载

XML即可扩展的标记语言,是一套定义语义标记的规范,其目标是能够定义计算机和人都方便标识的数据类型。XML文件具有定义方便、语义明确的特点。在规范XML数据格式后,通过XML Query查询可以快速获取用户在XML文件中定义数据类型和意义[6]。

系统采用XML文件记录船载卫星通信站中各种设备的类型、数量及与软件各层模块对应关系等配置信息,在前端机程序、远程操作控制终端程序和Web网站中都附带一份相同的XML配置文件。当具备操作权限终端程序可对系统配置进行可视化修改,若修改成功本地XML配置文件发生相应改变,此时需要更新其他部分的配置文件。系统各部分程序在初始化时首先会读取XML配置文件中的设备类型及数量,而后分别在用户界面层、发布器层及业务逻辑层创建对应数量的设备界面控件、Presenter类实例、设备Model类实例。这样在卫星通信站系统设备数量调整或是轮换使用时,用户仅需更改XML配置文件即可完成卫通集中监控系统中对应的调整,无需修改代码或是对界面重新设计。

2.4 降低系统占用传输带宽

IP组播是一种允许一个和多个发送者发送单一的数据包到多个接收者的网络技术[7]。在组播网络中,即使用户数量成倍增长,主干带宽不需要随之增加。组播通信具有两个层面的重要特征:控制层面(Control Plane)和数据层面(Data Plane)。其中,控制层面定义组成员的组织方式,而数据层面定义不同成员之间的数据传送模式。这两方面也有两种形式:“有根”(rooted)和“无根”(nonrooted),其模型如图8所示。

图8 组播通信控制层面两种模型Fig.8 Two models of multicast communication controlling level

卫星通信集中监控系统软件根据结构分为前端机软件、Web服务器端软件和远程控制操作终端软件三部分。前端机包括设备数据采集和命令分发、网络数据收发、数据解封转换三部分,Web服务器端软件包括组播数据接收软件和Web网站,远程控制操作终端软件包括组播数据接收、操作命令发送及用户界面交互三部分。

3 应用效果

本系统已在远洋船实际部署使用,应用表明系统运行良好,能较好地满足船载卫星通信系统集中监控的各种功能需求。系统关键参数界面及性能曲线界面如图9和图10所示。

在有根控制层面,存在一个特殊的组播组成员,叫做根结点(root),剩下的每个组成员叫做叶结点(leaf),根结点只能有一个。同样,在数据层面上也存在“有根”和“无根”,对有根数据层而言,它有一个参与者叫数据根(d_root)。数据传输只能在数据根和组播会话的其他所有成员数据叶(d_leaf)之间进行。对于无根数据层面交换方式,从任何节点发出的数据都会蔓延到整个组播组,同时每个节点对于数据的发送也没有任何限制,可以向任何组成员发送数据。

远洋船卫星通信信道带宽资源宝贵,既要承载业务信息传输,又需保障日常通信,能用于卫星通信集中监控系统带宽有限。为了在有限通信带宽基础上实现陆地中心对船载卫星通信站集中监视与控制,本系统从两方面降低对卫星通信信道带宽占用。一是在前端机与Web网站服务器、远程控制操作终端之间采用“有根”的组播技术交互数据。相对于采用IP单播技术,陆地中心部署N个操作控制终端经卫星通信信道就需要传输N份数据包,前端机程序采用组播方式向远程操作控制终端及Web服务器发送设备信息,经卫星通信信道仅需传送单份数据包,即可满足陆地中心多点控制终端对设备信息获取及实时监视的需求。二是在远洋船、中心两地分别部署Web服务器。在岸船数据库之间采用基于数据库增量同步技术保证两端Web服务器信息一致性,满足陆地中心多用户B/S方式访问的需求。通过采用组播技术和数据增量同步技术可大幅降低系统占用卫星通信信道的带宽。

图9 关键参数界面Fig.9 The UI of key parameter

图10 性能曲线界面Fig.10 The UI of performance curve

4 结束语

本文通过采用多串口服务器、双线程队列和线程自调度技术、MVP编程模式、动态加载XML配置文件、IP组播等技术和方法实现了船载卫星通信集中监控系统的各类功能需求。实际应用表明在低带宽占用的情况下,船载卫星通信集中监控系统运行稳定。本文中涉及到的技术方法可运用于其他与卫星通信信道高时延、低带宽特点类似条件下的系统设计开发中。

目前一般设备网管协议都是基于主动查询方式,仅在发生故障或关键参数状态改变时主动上报,因此要实现系统全态信息监测需要传输带宽较大。基于状态参数变化主动上报的网管机制既可以减小对信道带宽占用,又可以保证系统状态实时监测,对于基于卫星通信信道的网管系统具有重要意义,可以作为下一步卫星通信监控系统的研究方向之一。

[1]谭鉴荣,吕雪芹,郎东梅,等.基于卫星通信的海洋气象数据采集系统设计[J].气象科技,2013,41(1):51 -56.TAN Jianrong,LYU Xueqin,LANG Dongmei,et al.Marine Meteorological Data Acquisition System Based on Satellite Communication Network[J].Meteorological Science and Technology,2013,41(1):51 -56.(in Chinese)

[2]秦红祥,杨飞.一种新的卫星通信网流量预测算法[J].电讯技术,2013,53(7):835 -839.QIN Hongxiang,YANG Fei.A New Traffic Flow Prediction Algorithm for Satellite Communication Network[J].Telecommunication Engineering,2013,53(7):835 -839.(in Chinese)

[3]吕振肃,刘忠学,王连胜,等.现代通信与信息技术在海事通信中的应用展望[J].电讯技术,2011,51(4):126-130.LYU Zhensu,LIU Zhongxue,WANG Liansheng,et al.Application Prospect of Modern Communication and Information Technology in Maritime Communications[J].Telecommunication Engineering,2011,51(4):126 -130.(in Chinese)

[4]王艳平,张越.Windows网络与通信程序设计[M].北京:人民邮电出版社,2009:405-419.WANG Yanping,ZHANG Yue.Windows Network and Communication programming[M].Beijing:People's Psot and Telecommunication Press,2009:405 -419.(in Chinese)

[5]Olamendy J C.Model View Presenter(MVP)design pattern and data binding[EB/OL].2010 -04 -23[2014 -08 -10].http://www.c -sharpcorner.com.

[6]孙晓燕,白小军.电视发射机远程监控系统的设计与实现[J].计算机测量与控制,2011,19(6):1380 -1393.SUN Xiaoyan,BAI Xiaojun.Design and Implementation of Embedded Remote Control System of Transmitter[J].Computer Measurement& Control,2011,19(6):1380 -1393.(in Chinese)

[7]王小康.IP组播技术在卫星通信中的应用和分析[J].中国科技信息,2011(16):85-86.WANG Xiaokang.Application and Analasys of the IP multicast technology in satellite communication[J].China Science and Technology Information,2011(16):85 -86.(in Chinese)

猜你喜欢
卫星通信线程队列
基于C#线程实验探究
队列里的小秘密
船载卫星通信天线控制的关键技术
基于多队列切换的SDN拥塞控制*
基于国产化环境的线程池模型研究与实现
在队列里
丰田加速驶入自动驾驶队列
浅谈linux多线程协作
航空器的顺风耳——机载卫星通信
机载卫星通信设备BIT设计方案