RUDP协议在嵌入式气象设备数据通信终端中的应用*

2013-09-21 10:44李建勇伍光胜刘艳中
单片机与嵌入式系统应用 2013年4期
关键词:气象站字节报文

李建勇,伍光胜,刘艳中

(广东省大气探测技术中心,广州 510080)

引 言

为了使气象探测资料具有一定的地域代表性,自动气象站一般都安装到省内各地,分布上具有分散性和流动性的特点。按照业务化的要求,常规天气下自动气象站每5分钟就要上传一次报文,如果是灾害性天气或公共突发事件气象应急过程中,自动气象站就要求每分钟上传一组观测资料。根据自动气象站站点分布和资料传输的特点,自动气象站一般则采用无线通信业务(如GPRS或CDMA)作为通信组网方式。在网络数据传输应用中,TCP协议会产生大量的网络状态确认和数据确认而消耗系统资源,UDP协议采用面向非连接的传输策略,会大大提高UDP协议的传输速度和效率,但UDP协议不提供数据传送保证机制,这就降低了资料传输的可靠性。因此,这就需要设计一个具有可靠UDP协议(Reliable UDP,简称RUDP)的通信终端,本文就通信终端的硬件和软件设计及关键技术作相关论述。

1 系统通信网络简介

GPRS(General Packet Radio Service)无线传输业务以其成本低廉、性能可靠等优点,被无线通信系统广泛采用。截止到2012年底,广东省已建成由1900余个自动气象站网组成的中尺度资料探测系统。网络逻辑图如图1所示,系统由自动气象站、数据通信终端单元(Data Communication terminal Unit,DCU)、数 据 处 理 中 心 (Data Process Center,DPC)以及GPRS网络组成。自动气象站主要负责采集气温、雨量、风向、风速等气象要素,并形成数据报文;DCU将自动气象站生成的数据传输到GPRS信网络;DPC对接收的报文进行分析处理。为了保证数据的安全,避免在传输过程中的泄漏,数据处理中心采用APN专线接入GPRS网络,在GGSN(网关支持节点)与移动公司互联路由器之间采用GRE隧道,使用私网IP地址进行连接。按照业务化的要求,自动气象站每5分钟向数据处理中心上传1份报文,加密观测时每分钟要上传1份报文。探测资料实行全省统一采集、处理,该种组网方式大大提升了全省自动气象站探测网资料的采集处理能力[1]。DCU作为数据上传、命令下达的双向通信设备,在系统中起着重要作用,它的性能直接影响业务系统运行效率。市场上绝大多数数据通信终端为了满足不同用户的不同需求,基本都采用的是透明UDP传输协议。为了增强数据传输的可靠性,提高探测设备的来报率,在不改变原有自动气象站软件的情况下,就要对原本的通信协议进行改进。

图1 系统网络逻辑结构

2 DCU的设计

DCU应具备串口通信功能,能够收发自动气象站数据和DPC的控制命令。此外DCU还应具有自动登录GPRS网络、自动检测网络在线状态、下线时自动拨号、按照设置的周期向数据处理中心发送注册信息,以及按照设定的端口和协议向指定IP地址发送用户协议数据等功能。

2.1 硬件设计

DCU硬件上可以分为电源、GPRS模块、单片机和外围部件4部分。电源主要为GPRS模块和系统芯片提供电源;单片机主要内嵌了TCP/IP协议,负责将采集器数据打包成用户协议,控制GPRS模块将数据发送到通信网络;GPRS模块负责无线通信;外围部件包括串口、SIM卡座接口等,完成接口的转换。电路原理图如图2所示。

单片机选用W77E58芯片,其自带的32KB ROM和1KB的SRAM,双串口、双指针、13个中断源、3个16位定时器,能够满足硬件设计。I2C总线芯片选用CAT24WC64,用于存储设备设置参数,如通信波特率等。串行口通信芯片MAX202将通信信号转换成RS232电平,实现与自动气象站的通信。GPRS模块采用MC35i模块,它是Siemens公司新一代无线通信GSM模块,内嵌的软件部分执行应用接口和所有GSM协议站的功能,它主要由GSM基带处理器(GSM Baseband Processor)、GSM射频部分、电源模块(ASIC)、闪存、ZIF连接器、天线接口6部分组成[2]。

图2 模块硬件电路

2.2 软件设计

DCU上电初始化后,就会连接配置MC35i模块,成功后进行拨号,流程如图3所示。拨号又分为2个阶段:第一步首先登陆基站服务器;第二步通过基站服务器的LCP配置、PAP/CHAP认证建立PPP链接,取得IP地址获准登陆到GPRS网络。取得IP地址后,DCU就可在PPP协议的框架中嵌入TCP/IP协议进行网络数据的传输。

图3 软件流程

按照功能层次从下到上软件设计可以分为串口驱动层、GPRS模块驱动层、PPP协议层、IP协议层、UDP协议层、RUDP协议层几部分。串口驱动层是软件最底层的协议,主要实现打开、关闭串口,读写串口数据的功能。GPRS模块的驱动主要是依靠AT指令来完成,对于MC35i的配置和操作可参见其用户资料和相关文献,因比较成熟这里就不再详细介绍。需要注意的是MC35i模块在点火之前必须先关闭单片机的相应串行口,否则MC35i会因载波不正常而无法工作,另外由于MC35i读SIM卡大约需要10s时间,延时时间一定要够用。PPP(Point to Point Protocol)协议也叫点对点协议,主要任务有链路建立、维护、拆除、上层协议协商和认证等[3]。下面分别是打开、关闭串口和通过串口发送一个字符的程序:

3 RUDP协议设计

3.1 UDP协议的优缺点

在网络数据传输应用中,UDP协议特别适合于频繁、少量的突发数据传输。UDP协议采用面向非连接的传输策略,使得UDP协议在数据传输过程中避免如TCP协议那样产生大量的网络状态确认和数据确认而消耗系统资源,大大提高了UDP协议的传输速度和效率,同时也不存在如TCP协议的海量并发连接问题。对绝大多数基于消息包传递的应用程序来说,特别在无线网络中,基于帧的通信比基于流的通信更为直接和有效[4]。但UDP协议不提供数据传送保证机制协议,存在可靠性差、传输功能单一的缺点。所以在充分利用UDP协议优势的前提下,为确保自动气象站资料传输的可靠性,提高网络通信系统的性能,通过对UDP协议结构的改进,解决UDP协议的无连接性、多个数据报突发传输时可能出现的数据报无序性及流量控制问题。

3.2 RUDP协议的结构设计[5]

在网络体系结构中,UDP协议处于网络层和应用层之间的传输层,通过在传输层与应用层之间加入可靠传输协议RUDP,形成5层的协议结构,包括应用层、RUDP层、传输层、网络层和物理层。

RUDP通过对UDP协议结构的扩展,在原8个字节报头的基础上增加5个字节,用于对自动气象站资料进行有序报文封装、站号标识及报文识别,其结构如下所示。

字节1~8 9 1 0 1 1 1 2 1 3 1 4~6 5 5 3 6 U D P报头命令标识I D高位I D低位数据包流水号高位数据包流水号低位用户数据,可变长度,一般小于1 K B

① 第9个字节“命令”指DCU与DPC通信的握手标识,不同的标识表示UDP包是注册包(DCU上线时发出)、心跳包(DCU在线定时测试通信链路)还是用户数据包等。

② 第10个字节“ID高位”和第11个字节“ID低位”指DCU标识0~65 535,用于区别不同安装地点的自动气象站发送的信息。

③ 第12个字节“数据包序列号高位”和第13个字节“数据包序列号低位”指每个自动气象站发送到DPC的数据包流水号,从0~65 535重复执行,用于使UDP报文从无序变为有序。

④ 从第14个字节开始到第65 536个字节为自动气象站的监测数据,根据自动气象站每次观测的数据量、无线传输网络的特性及UDP协议的特点,用户数据长度一般可设计小于1KB。

3.3 RUDP协议的工作原理

当DCU完成与无线网络有关PPP通信链路的操作协商后,IP通信链路被创建。DCU向通信服务系统发出长度为13字节的RUDP注册包,在DPC进行登记后,就可以进行基于RUDP协议报文的资料传输,同时通过定时器的注册包连续无回应次数K来判断通信链路是否建立成功,其工作流程如图4所示。为了避免通信链路不稳定或断链时进行无效的数据传输,在每次完成缓冲队列的数据传输前,都要进行链路RUDP心跳包(13字节)测试。在数据等待队列为空时,通过启动定时器的次数M决定是否发送心跳包来保持DCU的PPP链路持续连接。当永久连接的链路出现错误时,通过定时器的心跳包连续无回应次数N来决定是否关闭通信链路。

图4 RUDP协议的工作流程

在图4的RUDP协议工作模式中,定时器1、定时器2、定时器3和K、M、N为何值时,RUDP协议工作在最佳状态?在不同带宽的通信网络中,其取值可能不太一样。如基于GPRS业务的自动气象站资料传输网络中,从DPC服务器到DCU的PING时间最大延时为3s,则对于小数据量注册包和心跳包的定时器1及定时器2的等待时间可设定为6s左右,连续没有收到ACK包的K、N值可设定为3次;对于每分钟产生300字节的气象观测数据包,定时器3及定时器4的等待时间可设定为12s左右,M可在定时器3连续累计时间3~5min取值,视网络情况及需要,若为3min,则 M为180/12=15。

基于RUDP的自动气象站资料传输采用消息收发同步以及流量控制。探测数据传递的序号采用两个字节无符号整数表示,取值范围为0~65 535,形成一个大的循环队列,发送数据大小相同且可设为一次探测数据的大小,有效地控制了发送数据的速度,防止在大流量时出现网络过度拥塞的现象。在可靠数据传递协议中保证数据可靠传递的基本就是要使用确认技术。在RUDP的设计中为了更好地控制流量,达到最大限度地利用网络资源的目的,采用捎带确认、累计确认和超时确认方式相结合的方式来实现确认。

结 语

通过对数据通信终端系统的设计,研究了基于UDP协议的可靠应用传输协议。广东省区域站监测网络中1800多个自动气象站全部使用该DCU,实际应用中取得了良好的效果,来报率达到99.7%以上。测试和应用表明,该技术解决了基于无线网络无人值守,及实时性、突发性UDP数据传输的不稳定性、无序性等问题,实现了大规模突发浪涌气象数据的实时传输,满足气象现代化业务的发展需求。

[1] 敖振浪,伍光胜,李建勇,等.基于GPRS技术的气象站数据采集系统[J].广东气象,2007,29(4):1-4.

[2] Siemens.Siemens MC35iHardware Interface Description V04.00,2003.

[3] 杜建波.基于GPRS的实时在线环境监测研究与实现[D].沈阳:沈阳理工大学,2009:16-18.

[4] 伍光胜,宋信忠,郑明辉.多线程技术及其应用的研究[J].计算机应用研究,2001,18(1):33-36.

[5] 施伟年,凌海宏.GPRS网络上的两种数据传输协议[J].电力系统通信,2004(8):20-22.

[6] 黄超.WINDOWS网络编程[M].北京:人民邮电出版社,2003:264-301.

[7] 冯林,彭尉,滕弘飞.车辆监控系统中通信服务器性能优化设计与实现[J].计算机工程与应用,2005,41(6):199-201.

猜你喜欢
气象站字节报文
基于J1939 协议多包报文的时序研究及应用
珠峰上架起世界最高气象站
No.8 字节跳动将推出独立出口电商APP
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
No.10 “字节跳动手机”要来了?
心灵气象站
DZZ3型自动气象站一次地温数据异常的处理过程
简谈MC7字节码
ATS与列车通信报文分析