您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > XMODEM文件传输技术
XMODEM文件传输技术在水情报文传输中的应用文波(新疆水文水资源局信息中心830000)摘要:为了提高水情传输质量及速度,减轻工作人员劳动强度,结合实际情况本文提出了一种新的解决办法,引入了Xmodem点对点传输协议。首先介绍了Xmodem协议族的基本原理,提出了应用Xmodem协议来解决水情报文传输所面临的问题。然后给出了解决方案和利用VarianAsync32组件在Delphi5开发环境下具体实现的方法,并应用在了新疆水情传输上,实验运行了一年,正式使用了两年,结果非常理想,不光解决了以往水情报文上报慢错报多的问题,还大大减轻了人员的工作量。关键词:Xmodem;水情报文;传输;组件引言近年来水文自动测报技术已经改变了我国由人工采集雨水情信息参数,再通过电报电话等方式传递的传统报汛手段,它利用遥测、通信、计算机等现代高科技实时完成降水量、水位等数据的采集、传输和加工处理,可在无人值守的情况下快速准确地掌握所需区域的水雨情等水文信息,传递至决策机构,进行洪水预报和优化调度,最大限度地减少洪涝灾害损失,提高水资源利用率,具有良好的社会效益和经济效益。但是这只是解决了数据从测站到中心站的传输问题,而从地区分局到省中心局却还是使用传统的电报或电台话报,这样工作效率低下,速度慢,差错率高。所以就急需寻找一个好的解决方案,能快速高效,费用低廉的解决从分局到省中心局报文传输的问题。本文选出了三种常用的通讯方式,基于TCP/IP的SOCKET传输,基于公网的电子邮件的传输,和点对点的基于Xmodem的文件传输协议。通过在全新疆14个地区分局实验比较了它们的性能指标,最后证明了Xmodem文件传输协议是最经济,快速方便的。1串行通信协议XModemXMODEM协议是一个通过调制解调器直接拨号通讯的文件传输协议,是在个人计算机通信中广泛使用的异步文件运输协议,是由WardChritensen于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)远程拨号进入中心WindowsNT网络,用基于TCP/IP的SOCKET。这种方式经实际测试,不实用,远程(长途)拨号,从分局计算机拨号进入中心局NT网络,建立网络连接速度慢,(连接时间从几分钟到几十分钟)费用高,使用人员需要一定的网络知识,有的地方甚至1个小时都连不上,而且由于设备有限只能一个一个的拨入,费用高,因此不能采用这种方式。(2)点对点,基于XMODEM传输协议这种方式经实际测试,速度快,30秒内就能发送一份报文,而且一台服务器可安装多个MODEM,可满足多个电话同时拨入,同时发送报文,由于时间短,所以费用低廉,而且采用的是内部网络安全性好,可以采用这种方式。(3)拨号入169公网,发送电子邮件这种方式经实际测试,虽然费用低,可同时发送水情报文,但因为要上公网,要依靠第三方的邮件服务器,所以速度、安全性不能保证,只能做备用方式。所以经过实验对比后,只有点对点的XMODEM协议才能满足现在的需要,其他两种可作为备用。2.2.2基于Xmodem技术的设计思想及实现由于在使用Microsoft的Win32COMMAPI时非常繁琐,Win32COMMAPI的函数库比较少,而且语法十分复杂,所以在WindowsNT、Windows95/98下开发串口应用软件会感到相当困难。为了提高工作效率,就需要一个封装了这些协议的组件,Varian公司就提供了一套组件VarianAsync32,它支持在Windows平台上串口通讯的大部分协议,是专为BorlandDelphi3/4/5和CBuilder4设计的。这个组件可以为应用程序提供串口通信的功能,它的以事件驱动的体系结构可以为应用程序提供很好的执行效率。Async32在设计层提供的清晰的属性及方法使管理使用端口更加方便有效。其中就包括XMODEM,YMODEM,ZMODEM协议。利用这套组件在DELPHI5.0下就可以快速的开发出报文传输系统。主要使用的组件有:TvaComm,这个组件为应用程序提供了通过串口收发数据的功能;TvaModem,这个组件为应用程序提供存取modem的例程,包含初始化,配置,拨号等功能。TvaXModem,包含Xmodem协议的组件。由于要求功能模块独立化,便于拆卸、测试,所以就把电码传输子系统设计成了两个单独的可执行程序。它们和别的子系统之间用文本文件传输数据,电码录入子系统把要上报的报文生成文本文件S0010.TXT,存在目录NETS\里,发送程序从NETS\目录里取出S0010.TXT文件,发送给接收程序,接收程序收到报文后,从报文中取出发送人标识码,标识码是辨别报文是哪个地方分局发来的,然后保存到TEMP\目录下,同时翻译入数据库程序读取这些文件,翻译成明文添加到数据库里,为避免同时读取文件冲突,收到的报文将以不同的文件名称存盘。电码传输子系统数据流图(略):说明:电码文件是由电码录入子系统生成的文本文件S0010.TXT,远程拨号是由各地方分局通过公用电话网拨长途电话到省中心局,省中心服务器一直开机,接收程序一直处于监听状态接收程序收到报文后,另存为sqxt_tempn.sqb,n代表不重复的一个整数,避免和电码入库程序发送访问冲突。发送程序流程图(略):接收程序启动后一直处于监听电话信号状态,为了加快接收报文速度,采用了两条电话线、两个MODEM,这样可同时接收两个地方分局的报文。接收程序原理上和发送程序相同,但有些具体实现上不同。接收程序流程图(略):3结论这种传输方式经过新疆14个地方分局6个月的测试,平均在30秒内都可以发送完毕。它速度快、稳定、操作简便,电话号码和MODEM在第一次都设置好,以后用户要发送水情电码时,一般情况下只要点击发送按钮即可,因此反映非常好。这样大大降低了操作难度,还有大大减少了电话费用。到目前为止,该系统试用了一年,正式使用了两年,每年发送接收处理水情电报1.2万多份,期间没有任何因软件故障导致数据传输中断的事故发生,所以这种基于Xmodem的点对点的文件传输技术在远距离的水情报文传输中是可行的。它改变了水情信息的传输处理模式,缩短了数据的滞留时间,加快了水情信息的传输速度,使各级防汛部门接收水情信息的时间比原来提前近2小时,提高了报汛质量,为各级防汛部门及时、准确、全面、有效地进行防洪调度和预报提供更可靠的依据。参考文献:[1]实时水雨情库表结构.国家防汛指挥系统办,2002年[2]水文情报预报拍报办法.水利电力部,1964年[3]水文自动测报系统规范.SL61-94[4]水利水电工程水情自动测报系统设计规定.DL/T5051-1996[5]JohnW.SatzingerRobertB.JacksonStephenD.Burd,朱群雄汪晓男等译系统分析与设计,机械工业出版社,2002[6]姚永熙.水文仪器与水利水文自动化.南京:河海大学出版社,2000.[7]吴时霖等译.数据通信与网络.北京:机械工业出版社,2001.
本文标题:XMODEM文件传输技术
链接地址:https://www.777doc.com/doc-2868177 .html