基于Socket技术的飞机增雨远程通信平台的实现

2016-09-18 11:51游积平崔哲虎高建秋钟晨赵博郑凯林俊君
广东气象 2016年4期
关键词:空地串口数据包

游积平,崔哲虎,高建秋,钟晨,赵博,郑凯,林俊君

(1.广东省人工影响天气办公室,广东广州 510080;2.中国气象科学研究院,北京 100081)

基于Socket技术的飞机增雨远程通信平台的实现

游积平1,崔哲虎2,高建秋1,钟晨1,赵博1,郑凯1,林俊君1

(1.广东省人工影响天气办公室,广东广州510080;2.中国气象科学研究院,北京100081)

介绍了飞机增雨的空地传输串口通信技术、计算机网络端口Socket技术和互联网信息加密传输技术,通过具有公网IP地址的服务器为信息转发平台,以无线数字电台结合互联网为通信载体,在Windows操作系统平台下利用C++Builder语言搭建异步、非阻塞和多线程的远程飞机增雨信息传输平台,实现了增雨飞机与地面之间的远程通信。

计算机技术与应用;套接字技术;飞机增雨;远程通信;空地传输

游积平,崔哲虎,高建秋,等.基于Socket技术的飞机增雨远程通信平台的实现[J].广东气象,2016,38(4):70-73.

2010年中国气象局为推进全国人工影响天气工作机制体制创新,加强跨省(区)联合作业,统筹考虑天气系统上下游相关地方人工增雨的有利条件,组织开展规模化的作业,旨在提高区域性作业水平和服务整体效益,推动建立跨省(区)人影作业机制。目前我国大部分省均已开展飞机增雨的业务工作,飞机增雨作为实现跨省、跨区域作业的一个主要手段,空地通信能够科学有效地指挥飞机开展增雨作业,只有了解飞机的实际飞行情况,结合地面的气象资料及时指导飞机增雨作业,才能提高飞机增雨效率。飞机增雨空地通信方式主要有无线电台[1-3]、北斗卫星[4-5]等。北斗卫星虽然具有通信远、不受地形影响等特点,但其带宽窄、费用高,每次只能发送几十个字节的短信,不能传输图像、数据文件,且需在飞机上方安装北斗卫星天线,一定程度上影响北斗卫星在飞机增雨业务中的应用。利用数字无线电台在其有效半径(200 km)范围内进行空地信息通信,实现较大数据文件的传输,而且具有安装简单、价格低廉等特点,若结合互联网通信技术,建立基于Socket技术的远程通信平台,对开展飞机跨省增雨作业,实现地面与飞机甚至飞机与飞机之间的远程通信,有效提高全国人工增雨作业规模化、集约化和区域云水资源利用率具有重要意义。

1 关键技术的处理

1.1互联网通信与串口通信的衔接

目前互联网通信主要利用Socket技术,通过公网IP地址的服务器实现C/S模式下多个客户端机器之间的有效连接。服务器端作为一个转发数据包的机器,主要负责将某一用户发来的数据包转送到另一用户和管理所有在线用户的信息。而对于客户端在向服务器端的Socket发出连接请求并与服务器建立连接后,就可以通过Internet传输数据和文件,其传输方式主要有阻塞、同步和非阻塞、异步等。飞机增雨的空地数据传输通过飞机上的PC机与地面上PC机之间的串口通信,无线数字电台是实现空地之间通信的载体,而与地面数字电台和互联网连接的PC机既是客户端又是服务器端,对于互联网来说,该PC机是客户端,但对于增雨飞机来说,该PC机相当于服务器端,解析由互联网传来的数据包信息并通过串口转发到增雨飞机上的电脑。同时,解析由增雨飞机上串口传来的信息转发到互联网其它用户。当从互联网Client Socket控件On Read事件中的Receive Buf函数获得数据包并进行解析,若该数据包是发给增雨飞机的,则通过串口通信YbCommDevice控件中的Write Package函数将此数据包发出;同样,当从串口通信Yb Comm Device控件On Package事件中Read Package的函数获得的数据包进行解析,若此数据包是发给地面互联网用户的,则通过互联网通信Socket控件的Send Buf函数将此数据包发送给公网IP地址的服务器,并由此服务器转发数据包到指定的互联网客户。通过互联网和串口通信的衔接技术从而实现增雨飞机与地面互联网多个客户端用户的数据交流。

1.2人影数据传输的加密和解密技术

由于互联网中的数据信息传输大多数是没有经过加密处理,对于人工影响天气的作业指令发送和增雨飞机的实时航迹传输等一些重要信息容易被侦听截取,甚至恶意篡改,为保证在互联网中人影数据传输的安全问题,飞机增雨远程通信平台在互联网数据传输中采用了目前技术上较为成熟的对称密钥加密方法对人影作业信息进行加密处理,对称加密算法是一种传统的密码算法,在互联网中不同节点之间的加密解密双方拥有相同的密钥,在互联网的客户端发出数据信息前进行加密,到达服务器后进行解密,了解数据包的属性和接收方,然后对数据包进行加密转送到接收端,接收端对数据包进行解密。因此在互联网的数据传输过程中其安全性主要依靠于密钥的保管。

2 广东飞机增雨远程空地通信平台

2.1通信架构

空地通信系统采用了有线互联网结合数字电台的无线通信网络数据传输方式。其中有2个通信端节点是非常重要的,一个Socket服务器端节点,所有通信端均登录到Socket服务器,由Socket服务器组织各通信节点之间的通信,完成互联网之间数据包转发的任务;另一个重要的通信节点是既连接数字电台又连接互联网的地空连接端,在地面上的互联网通信节点与飞机的通信要通过地空连接端,它实际起到一个互联网节点与增雨飞机之间的地空通信互传的作用。增雨飞机上有2个电台,一个电台与GPS定位设备相连,负责将增雨飞机的定位信息向地面发送,并由地空连接端将增雨飞机的实时定位信息转送到互联网端的其它节点;另一个电台用于空-地通信,通过地空连接端,实现将互联网上的其它节点与增雨飞机之间的互送信息。对于互联网端,在地面上只要通过Internet,登录到广东省人影办的Socket服务器,就可实现与增雨飞机的实时通信。飞机增雨远程通信网络拓扑图见图1。

2.2信息流程

飞机增雨远程空地通信系统的建立是基于互联网的Socket技术和无线电台的串口通信技术,其通信信息流程见图2。

图1 基于Socket技术飞机增雨远程通信网络拓扑图

在互联网端的服务器监听特定的一个端口,等待客户端的连接请求,在接到互联网客户端的连接请求时,服务器就为它建立一个连接,并把该连接的有关信息加入到用户链表。在建立连接的过程中,服务器与客户机都被分配一个本地端口,并将套接字绑定到各自的端口上进行通信。广东飞机增雨远程空地通信平台利用C+ +Builder编程语言进行开发建设,采用非阻塞、异步通信连接方式,在互联网的客户端和地空连接端分别将ClientSocket控件的ClientType属性设置为ctNonBlocking(非阻塞连接)、端口号Port =11000;服务器端的ServerSocket的ServerType属性同样设置为ctNonBlocking、端口号Port= 11000。当服务器端的Socket进行读或写时,客户端和地空连接端就会触发OnRead或OnWrite异步读或写事件。同理,当客户端的Socket试图进行读或写时,服务器端的Socket也会触发On-Read或OnWrite异步读或写事件。并利用C++Builder语言提供的TThread类完成多线程的文件传输功能。同时,在互联网通信过程中均使用了对称密钥加密方法进行加密,增雨飞机终端通过地空连接端登录到服务器,作为一个单独的客户加入到服务器的用户链表中,实现与其它用户进行通信。

图2 基于Socket技术飞机增雨远程通信信息流程图

2.3设计思路

飞机增雨远程通信平台的研发是充分利用广东人影现有的计算机、网络条件进行的。包括目前已有的无线数字电台、公网IP地址的服务器、计算机、GPS定位设备、3G无线上网卡以及飞机增雨作业外场的ADSL有线宽带网等硬件,通过软件开发将这些设备有效地连接一起。同时,设计每个通信包的数据结构和信息标识,数据包中前4个字节分别代表要传输该数据包的信息。其中$NU$用户#1:代表新用户进入;$ CL$用户#1:代表该在线用户退出;$SE$用户1 #1用户2#2:代表用户1向用户2发送文字信息;$AU$用户名#1:代表该用户向所有在线用户群发信息;$FI$用户1#1用户2#2文件名#3文件大小#4每次传输文件包的大小#5:代表用户1向用户2发送要传输的文件信息,将要传输的文件名、文件大小以及每次传输数据包的大小告知用户2;$FT$用户1#2用户2#2:代表用户1向用户2发送文件内容;$FE$用户1#1用户2# 2:代表用户1向用户2发送文件最后一个数据包等,其中$、#1、#2、#3、#4、#5均为分隔符。通过计算机的串口通信与互联网通信的有效衔接,在互联网传输过程中利用公网IP地址的服务器解析数据包内容识别用户和转发数据包,从而实现了多个用户对增雨飞机的远程通信(图3)。

图3 增雨飞机空地通信平台界面

其中通信平台界面右上角的在线用户可以是多个互联网用户或者增雨飞机的用户,选择不同的用户名就可以向其发送信息或发送文件。

3 业务应用

广东飞机增雨远程空地平台之间的串口通信速率为19 200 bit/s(波特率bps)、输入输出缓冲均为8 192 byte(字节),为解决由于互联网传输速率快而空地串口传输速率慢容易造成数据缓冲溢出等问题,适当降低有线互联端的传输速率,在由地面互联客户端向增雨飞机传输文件过程中,每个数据包大小设定1 024 byte,而数据包之间的时间间隔设定2 s,即每隔2 s发送一个数据包,这样较好地解决了互联网与无线网之间由于传输速率差别所造成的数据缓冲溢出。

广东飞机增雨远程空地平台已经投入实际飞机人工增雨业务使用,每年3—5月开展飞机增雨作业中,在广东省气象局安放一台具有公网IP的计算机作为SOCKET服务器,以深圳机场或佛山机场或湛江机场作为空地通信的地面接收、发送及中转节点,而在互联网上作为其它的通信网节点,组成一个全方位、空地为一体的远程通信平台,其业务应用通信方式及网络节点布局见图4。

图4 基于SOCKET技术的飞机增雨远程通信方式及网络节点连接示意图

在业务应用中,不同的通信连接方式在不同的地点均可实现与空中飞行的增雨飞机之间进行通信联系和文件传输,且地面上各个通信网络节点也可相互通信。增雨飞机作为其中一个网络节点能与地面任何地点上的网络节点进行通信。同时,通过增雨飞机上的其中一个数字电台每隔2 s就实时向地面传输航迹,在地面上各个网络节点能同时接收并实时显示增雨飞机的航迹,从而实现了在地面不同地点利用互联网实时监控增雨飞机的能力。

4 结论

1)利用有线互联网结合无线数字电台的综合通信技术,实现了飞机增雨的远程空地传输,大大拓宽飞机增雨的空地通信距离,有利于我国组织开展跨省、跨区域的飞机增雨作业。

2)客户端可采用多种通信方式连上互联网并登录到Socket服务器,就可以实现与增雨飞机的通信。

3)利用互联网的Socket技术和空地串口通信技术的原理,可以实现增雨飞机与增雨飞机之间的通信联络。

4)由于数据无线电台的传输距离有限,一般在半径200 km左右,因此地面接收天线的位置和飞机作业区域不宜太远。

[1]游积平,冯永基,林俊君,等.飞机增雨远程遥控催化作业的实现[J].气象,2007,33(9):103-106.

[2]阮征,彭浩,周国春,等.信息空地传输显示系统及试用[J].气象,2005,31(7):80-84.

[3]樊鹏,陈保国,郭强,等.飞机人工增雨空地传输网络系统[J].气象科技,2005,33(3):260-263.

[4]陈农,郑凯,孙利民.黑龙江省飞机人工增雨空地传输系统业务化设计与研制[J].黑龙江气象,2008,25(2):26-27.

[5]王文新,王金民,刘国进,等.飞机人工增雪空地传输系统的研制及应用[J].科技创新导报,2008(6):166 -171.

TP39

A

10.3969/j.issn.1007-6190.2016.04.018

2015-12-10

中国气象科学研究院项目“飞机探测空地实时通信系统”

游积平(1964年生),男,本科,高级工程师,主要从事人工影响天气工作。E-mail:jpyou@grmc.gov.cn

猜你喜欢
空地串口数据包
二维隐蔽时间信道构建的研究*
第六章 神秘的空地
第六章 神秘的空地
浅谈AB PLC串口跟RFID传感器的通讯应用
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
空地一体化技术在IFTD试飞中的应用
SmartSniff
假如你有一块空地,千万别做庭院
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索