一种基于串口硬流控的甚高频电台大文件传输方法

文档序号:9489270阅读:570来源:国知局
一种基于串口硬流控的甚高频电台大文件传输方法
【技术领域】
[0001]本发明属于串口通信技术领域,涉及一种基于串口硬流控的甚高频电台大文件传输方法。
【背景技术】
[0002]串口通信在通信领域中有着十分广泛的应用,如电话、传真、视频控制、远程通信、自动控制等行业。甚高频(Very High Frequency,VHF)电台的串口通信主要用来将多个无线电台组成网络,以增强各个电台之间的相互通信,被广泛应用于电力、油田、煤矿、城市水处理、集中供热等领域,用来实现现场数据的实时采集和传递。
[0003]通过串口通信实现VHF电台大文件传输时,大文件的大小由VHF电台间的传输协议决定,大文件的字节数为所述传输协议能够传输的最大文件的字节数的一半以上。现有的基于串口通信实现VHF电台大文件传输的技术的特点为:无流控、文件拆包和顺序传送机制,并根据链路质量决定拆包大小,发送端VHF电台每向接收端VHF电台发送一个文件包,接收端VHF电台便将该文件包的接收情况反馈给发送端VHF电台;如果发送端VHF电台收到的是成功应答,则继续发送下一个文件包,如果收到的是失败应答或者在规定时间内没有收到任何应答,则重发当前文件包,如果重发次数达到规定次数后,发送端VHF电台仍然没有收到成功应答,则认为大文件发送失败,如果在规定次数内,发送端VHF电台收到了成功应答,则继续发送下一个文件包,直到所有文件包都发送成功,就认为大文件发送成功。但是,当链路质量不稳定时(某一时段链路质量为0,即不可以通信,间隔一段时间后,链路质量恢复到大于0的状态,此时又可以通信),就会出现一个文件包在连续重发的过程中,链路质量一直不能通信,则大文件传输失败。

【发明内容】

[0004]针对上述现有技术的不足,本发明的目的在于提出一种基于串口硬流控的甚高频电台大文件传输方法。本发明基于串口的硬流控功能,并结合多线程技术以及自动重传技术,能够在VHF电台间的链路质量不稳定的情况下的实现大文件的传输,并且能够提高VHF电台间传输大文件的传输速率和传输成功率。
[0005]为实现上述技术目的,本发明采用以下技术方案予以实现。
[0006]—种基于串口硬流控的甚高频电台大文件传输方法,其特征在于,包括以下步骤:
[0007]步骤1,首先,设定应用环境包括:发送方VHF电台、发送方上位机、接收方VHF电台和接收方上位机,所述发送方VHF电台通过无线传输的方式向所述接收方VHF电台发送大文件,所述接收方VHF电台通过无线传输的方式与发送方VHF电台连接,所述发送方VHF电台通过发送方串口与发送方上位机实现通讯,所述接收方VHF电台通过接收方串口与接收方上位机实现通讯;然后,在发送大文件之前,查询发送方VHF电台到接收方VHF电台的链路质量,若所述链路质量的优劣等级大于或等于1,则将大文件拆分为N个大小相同的文件包,并根据所述链路质量的优劣等级,计算每个文件包的大小;若所述链路质量的优劣等级小于1,则重新查询发送方VHF电台到接收方VHF电台的链路质量;N为大于1的自然数;所述链路质量从劣到优依次分为0、1、2、3、4、5共6个优劣等级;
[0008]步骤2,首先,发送方VHF电台向接收方VHF电台发送大文件的头信息;如果接收方VHF电台收到大文件的头信息,则接收方VHF电台将大文件的头信息发送至接收方上位机,同时,接收方VHF电台向发送方VHF电台发送成功应答信息;如果发送方VHF电台没有收到成功应答信息,则发送方VHF电台重新向接收方VHF电台发送大文件的头信息;如果发送方VHF电台收到成功应答信息,则发送方VHF电台将该成功应答信息发送至发送方上位机,发送方上位机启动文件发送线程;
[0009]步骤3,发送方上位机启动文件发送线程后,发送方上位机将N个文件包按顺序依次发送至发送方VHF电台,发送方VHF电台将收到的每个文件包发送至接收方VHF电台;如果接收方VHF电台收到文件包,则接收方VHF电台将文件包发送至接收方上位机,同时,接收方VHF电台向发送方VHF电台发送成功应答信息;如果发送方VHF电台收到成功应答信息,则发送方VHF电台将该成功应答信息发送至发送方上位机;如果发送方VHF电台没有收到成功应答信息,则发送方VHF电台向发送方上位机发送失败应答信息;记录在文件发送线程中成功发送的文件包数为K和未成功发送方文件包数为N 0;
[0010]当文件发送线程将所有文件包发送完成后,并且发送方VHF电台再经过设定的时间后未收到任何应答信息,则认为第一遍文件发送已经完成;此时,如果第一遍文件发送的成功应答比率大于第一设定值,那么发送方上位机启动二次重发线程,否则,发送方上位机重新启动文件发送线程;
[0011]所述第一遍文件发送的成功应答比率=Ni/N ;
[0012]步骤4,发送方上位机启动二次重发线程后,发送方上位机将未成功发送的N。个文件包按顺序依次发送至发送方VHF电台,发送方VHF电台将每个文件包发送至接收方VHF电台;如果接收方VHF电台收到文件包,则接收方VHF电台将文件包发送至接收方上位机,同时,接收方VHF电台向发送方VHF电台发送成功应答信息;如果发送方VHF电台收到成功应答信息,则发送方VHF电台将该成功应答信息发送至发送方上位机;如果发送方VHF电台没有收到成功应答信息,则发送方VHF电台向发送方上位机发送失败应答信息;记录在二次重发线程中成功发送的文件包数为NM和未成功发送方文件包数为N。。;
[0013]当二次重发线程将所有文件包发送完成后,并且发送方VHF电台再经过设定的时间后未收到任何应答信息,则认为第二遍文件发送已经完成;此时,如果第二遍文件发送的成功应答比率大于第二设定值,则认为大文件发送成功,否则,发送方上位机重新启动二次重发线程;
[0014]所述第二遍文件发送的成功应答比率=N01/N0;
[0015]所述第二设定值大于所述第一设定值。
[0016]本发明的特点和进一步改进在于:
[0017](1)步骤1中,当所述链路质量的优劣等级大于或等于3时,所述每个文件包的大小为500字节,当所述链路质量的优劣等级小于3时,所述每个文件包的大小为250字节。
[0018](2)步骤2中,所述大文件的头信息包括大文件的路径、大文件的字节数和每个文件包的大小。
[0019](3)步骤2中,所述发送方VHF电台向接收方VHF电台发送大文件的头信息,该条指令的指令类型为OxBO。
[0020](4)步骤3中,发送方上位机向发送方VHF电台发送第一个文件包之前,启动应答处理线程,该应答处理线程对应答状态数组进行初始化,即将应答状态数组中的N个状态变量均初始化为0 ;所述状态变量的取值为0、1或-1,0表示状态变量的初值,1表示成功应答,-1表示失败应答。
[0021](5)步骤3中,发送方上位机向发送方VHF电台发送第一个文件包之后,应答处理线程对于发送方上位机接收到的成功应答信息,将其对应的文件包的包号作为应答状态数组的一个索引值,并将该索引值对应的状态变量赋值为1 ;并且,应答处理线程对于发送方上位机接收到的失败应答信息,将其对应的文件包的包号作为应答状态数组的一个索引值,并将该索引值对应的状态变量赋值为-1 ;当文件发送线程将所有文件包发送完成后,查询应答状态数组中的状态变量,其中,状态变量为1的索引值的个数为Ni,状态变量为-1的索引值的个数为N。。
[0022](6)步骤3中,发送方VHF电台向接收方VHF电台发送中间的文件包,其指令类型为OxBl ;发送方VHF电台向接收方VHF电台发送最后一个文件包,其指令类型为0xB2。
[0023](7)步骤4中,发送方上位机向发送方VHF电台发送第一个文件包之前,应答处理线程对应答状态数组进行初始化,即将应答状态数组中的N。个
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1