XMODEM文件传输技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XMODEM文件传输技术

在水情报文传输中的应用

文波

(新疆水文水资源局信息中心830000)

摘要: 为了提高水情传输质量及速度,减轻工作人员劳动强度,结合实际情况本文提出了一种新的解决办法,引入了Xmodem点对点传输协议。首先介绍了Xmodem协议族的基本原理,提出了应用Xmodem协议来解决水情报文传输所面临的问题。然后给出了解决方案和利用Varian Async32组件在Delphi5开发环境下具体实现的方法,并应用在了新疆水情传输上,实验运行了一年,正式使用了两年,结果非常理想,不光解决了以往水情报文上报慢错报多的问题,还大大减轻了人员的工作量。

关键词: Xmodem;水情报文;传输;组件

引言

近年来水文自动测报技术已经改变了我国由人工采集雨水情信息参数,再通过电报电话等方式传递的传统报汛手段,它利用遥测、通信、计算机等现代高科技实时完成降水量、水位等数据的采集、传输和加工处理,可在无人值守的情况下快速准确地掌握所需区域的水雨情等水文信息,传递至决策机构,进行洪水预报和优化调度,最大限度地减少洪涝灾害损失,提高水资源利用率,具有良好的社会效益和经济效益。

但是这只是解决了数据从测站到中心站的传输问题,而从地区分局到省中心局却还是使用传统的电报或电台话报,这样工作效率低下,速度慢,差错率高。

所以就急需寻找一个好的解决方案,能快速高效,费用低廉的解决从分局到省中心局报文传输的问题。

本文选出了三种常用的通讯方式,基于TCP/IP的SOCKET传输,基于公网的电子邮件的传输,和点对点的基于Xmodem的文件传输协议。通过在全新疆14个地区分局实验比较了它们的性能指标,最后证明了Xmodem文件传输协议是最经济,快速方便的。

1 串行通信协议XModem

XMODEM协议是一个通过调制解调器直接拨号通讯的文件传输协议,是在个人计算机通信中广泛使用的异步文件运输协议,是由Ward Chritensen 于1977年提出并实现的。

这种协议原理是以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个认可字节。然而,这种对每个块都进行认可的策略将导致低性能。

由于XMODEM的一些缺点,人们就提出了很多种改进的XMODEM协议,比如使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K,它以1024字节一块来传输数据。ZMODEM是最有效的一个XMODEM版本,它不需要对每个块都进行认可。事实上,它只是简单地要求对损坏的块进行重发。ZMODEM对按块收费的分组交换网络是非常有用的。不需要认可回送分组在很大程度上减少了通信量。

YMODEM也是一种XMODEM的实现。它包括XMODEM-1K的所有特征,另外在一次单一会话期间为发送一组文件,增加了批处理文件传输模式。

2 水情报文传输

2.1 水情报文传输的现状及问题

新疆是一个地广人稀的大省,全疆土地面积达到了160万平方公里,新疆水文局的14个水文勘测分局,44个水文测站就分布在这六分之一的国土上。它们距离遥远,从几十公里到上千公里,而且基础设施差,有些测站电都没有通上。每天水情报文要从全疆各地44个测

站上报到中心局,原有的通信方式是通过电报拍报或电台喊话,这样工作效率低下,速度慢,差错率高。为了满足在短时间内准确快速上报水情,减轻工作人员劳动强度,所以就急需开发出一套能满足工作要求的水情传输系统。

2.2 应用计算机技术来解决水情报文传输的问题

2.2.1 三种技术的比较

水情电码传输要求快速、实时、准确、安全,必须在每天早八点开始发送接收,要在20分钟内收完15个地方分局的水情报文,因此我提出了三种常用的传输方式:

(1)远程拨号进入中心Windows NT网络,用基于TCP/IP 的SOCKET 。

这种方式经实际测试,不实用,远程(长途)拨号,从分局计算机拨号进入中

心局NT网络,建立网络连接速度慢,(连接时间从几分钟到几十分钟)费用高,使用人

员需要一定的网络知识,有的地方甚至1个小时都连不上,而且由于设备有限只能一个

一个的拨入,费用高,因此不能采用这种方式。

(2)点对点,基于XMODEM 传输协议

这种方式经实际测试,速度快,30秒内就能发送一份报文,而且一台服务器可安装多个MODEM,可满足多个电话同时拨入,同时发送报文,由于时间短,所以费用低廉,而且采用的是内部网络安全性好,可以采用这种方式。

(3)拨号入169 公网,发送电子邮件

这种方式经实际测试,虽然费用低,可同时发送水情报文,但因为要上公网,要依靠第三方的邮件服务器,所以速度、安全性不能保证,只能做备用方式。

所以经过实验对比后,只有点对点的XMODEM协议才能满足现在的需要,其他两种可作为备用。

2.2.2 基于Xmodem技术的设计思想及实现

由于在使用Microsoft的Win32 COMM API时非常繁琐,Win32 COMM API的函数库比较少,而且语法十分复杂,所以在Windows NT、Windows 95/98下开发串口应用软件会感到相当困难。

为了提高工作效率,就需要一个封装了这些协议的组件,Varian公司就提供了一套组件Varian Async32,它支持在Windows平台上串口通讯的大部分协议,是专为Borland Delphi 3/4/5 和CBuilder 4 设计的。这个组件可以为应用程序提供串口通信的功能,它的以事件驱动的体系结构可以为应用程序提供很好的执行效率。Async32 在设计层提供的清晰的属性及方法使管理使用端口更加方便有效。其中就包括XMODEM,YMODEM,ZMODEM协议。利用这套组件在DELPHI5.0 下就可以快速的开发出报文传输系统。

主要使用的组件有:

TvaComm,这个组件为应用程序提供了通过串口收发数据的功能;

TvaModem,这个组件为应用程序提供存取modem的例程,包含初始化,配置,拨号等功能。

TvaXModem,包含Xmodem协议的组件。

由于要求功能模块独立化,便于拆卸、测试,所以就把电码传输子系统设计成了两个单独的可执行程序。它们和别的子系统之间用文本文件传输数据,电码录入子系统把要上报的报文生成文本文件S0010.TXT,存在目录NETS\里,发送程序从NETS\目录里取出S0010.TXT文件,发送给接收程序,接收程序收到报文后,从报文中取出发送人标识码,标识码是辨别报文是哪个地方分局发来的,然后保存到TEMP\目录下,同时翻译入数据库程序读取这些文件,翻译成明文添加到数据库里,为避免同时读取文件冲突,收到的报文将以不同的文件名称存盘。电码传输子系统数据流图(略):

说明:电码文件是由电码录入子系统生成的文本文件S0010.TXT,远程拨号是由各地方分局

相关文档
最新文档