一种基于单片机系统的数据流断点续传方法

文档序号:7851753阅读:282来源:国知局
专利名称:一种基于单片机系统的数据流断点续传方法
技术领域
本发明涉及单片机系统网络通讯领域,尤其涉及一种基于单片机系统的数据流断点续传方法。
背景技术
断点续传是指将下载或上传的数据流划分为几个部分,每个部分单独采用ー个线程进行上传或下载,当发生网络故障时,可以从已经上传或下载的部分开始继续上传下载,从而可以节省网络传输时间,提高传输速率。在缺乏断点续传技术的支持下,数据的传输效率、速度取决于网络状况和数据流的大小,尤其是在无线网络应用环境(如GPRS、CDMA、Zigbee以及VHF/UHF超短波无线通信),在网络信号无法保证的情况下,传输效率非常低下甚至无法传输。现有断点续传的方法只适用于计算机应用领域,或带操作系统支持的上位机系统,通常采用以HTTP或FTP协议为基础辅以多线程技术实现,这些方法无法直接应用在单片机应用领域。目前,单片机应用系统或设备应用于众多エ业控制、智能化通信、办公设备、家用电器等多个应用领域,越来越多的设备开始需要网络的支持,在这种背景下,数据的传输问题,尤其是大数据流的传输问题日益显现出来。在网络质量不佳、线路干扰的情况下,传输误码率高,耗时漫长,可能多次反复尝试也无法进行数据传输。这不仅造成时间上的浪费,而且在ー些商业性运营网络上,如GPRS、CDMA I. X网络等,还将造成通信费用的极大浪费,因此极有必要实现断点续传的功能,这些典型的应用诸如音视频文件传输、远程程序升级、远程诊断等。在计算机应用领域,利用多线程技术和HTTP、FTP等网络传输协议,可以很容易的实现数据流的断点续传。在HTTP/1. I协议中,通过在请求报文头中加入Range段来要求服务器从指定的数据地址开始传送数据,从而将数据流“分段”传输,达到续传的目的。同样在FTP协议中,通过RETR指令和REST指令也可以实现类似的效果。而在单片机应用系统中,仅有有限的资源和处理能力,缺乏多线程处理能力,通常也不具备HTTP或FTP这样的应用层网络协议,难以直接采用通行的计算机领域的技术手段实现数据流的断点续传。

发明内容
鉴于上述现有技术存在的缺陷,本发明的目的是提出ー种基于单片机系统的数据流断点续传方法,实现数据断点续传的功能,減少因网络质量不佳,出现大流量数据传输误码率高,重复传送校验,耗时长,通信成本浪费的问题。本发明的目的将通过以下技术方案得以实现 一种基于单片机系统的数据流断点续传方法,基于单片机系统的TCP或UDP基础传输层协议,采用“帧”这种形式的载体作为数据传输的基本単元,采用时间片轮转算法,实现数据的“并发”传输,包括如下步骤步骤一,将数据流按照大小拆分为多个数据包,再将数据包封装为“帧”,“帧”是指毎次发送的数据包,它是数据流被拆分的最小単位,是独立的逻辑单元;
步骤ニ,数据发送端首先发送握手信息,向数据接收端请求发送数据,数据接收端收到后,将应答发送端,并做好接收准备,其中握手信息是ー个特殊的“帧”,用于表明数据传输任务的开始以及任务的概况,标明本次任务共包含多少个“帧”,总数据长度等,数据接收端收到此握手信息后,便可应答发送端,告知已做好接收准备,可以发送数据了 ;
步骤三,数据发送端采用时间片轮转算法,将所有“帧”发送至数据接收端;由于数据接收端无须对每个收到的“帧”进行应答,因此数据发送端可以“并发”发送而无须等待数据接收端的应答,数据发送端将所有“帧”组成ー个队列,调度进程,首先把处理器分配给队列首进程,执行首个发送任务,并让其执行ー个时间片,当时间片用完后,由计时器发出时钟中断请求,调度程序根据这个请求停止发送,将它送到就绪队列的末尾,再把处理器分配给就绪队列中新的进程发送,同时让它也执行ー个时间片,由于发送过程主要依赖于网络部件(无线模块或网卡等),只需要很少的处理器处理,因此可以将CPU的效率,以及网络设备的传输能力发挥到极限,不会出现“发送-等待-发送-等待”的低效率过程;
步骤四,数据接收端接收到每个“帧”后,无需做出应答,数据接收端根据每个“帧”的校验码校验“帧”的完整性,如果接收到的“帧”校验正确,接收端将数据项内容取出,井根据帧序号将内容存放在指定的数组中,如果接收到的“帧”校验错误,将直接丢弃,帧序号保存在一个记录错误的数组中;
步骤五,若因网络连接超时只接受到部分“帧”,在网络恢复后,数据发送端和数据接收端重新建立连接,数据发送端将未能传输的“帧”再次发送,数据接收端根据“帧”的标识符确定其所属的传输任务,并将所属的传输任务调出并恢复载入,从而实现断点续传的功倉泛;
步骤六,所有“帧”发送完成后,数据发送端进入等待数据接收端应答的状态,数据接收端根据握手信息,判断是否所有“帧”都已正确接收,如果所有“帧”都正确接收,数据接收端返回给数据发送端一个“应答帧”,“应答帧”的帧命令码为0xA2,数据项内容为空,同时,数据接收端将所有“帧”中的数据项依据帧序号依次组装,从而完成了数据的接收,数据发送端接收到“应答帧”后,清理资源,断开连接,结束任务;如果数据接收端发现接收到的“帧”有异常情况,数据接收端返回给数据发送端ー个“失败响应帧”,表明接收有误,并在“失败响应帧”的数据项中包含错误的“帧”的帧序号,数据发送端收到“失败响应帧”后,再次发送错误的“帧”的帧序号对应的“帧”,循环进行直到数据接收端所有“帧”都正确接收,则进入上述所有“帧”都正确接收后的进程。由于只收发过程仅仅传输失败的帧数据,因此可以避免数据被重复传输,尤其在网络状况不佳的情况下,极大的提高了传输效率,降低了无效的网络流量。优选的,上述一种基于单片机系统的数据流断点续传方法,其中所述数据接收端和所述数据发送端均能判断、校验数据的完整性。优选的,上述一种基于单片机系统的数据流断点续传方法,其中所述“帧”是ー种具有“可读性”的数据封装体,具有可自我描述、可校验等特性,所述“帧”包含了作为任务标识的帧标识符。优选的,上述一种基于单片机系统的数据流断点续传方法,其中所述帧标识符为ー个4字节的随机码,作为断点续传的该帧数据流的唯一标识。 优选的,上述一种基于单片机系统的数据流断点续传方法,其中所述步骤四中的校验码校验的方法包括MD5算法或者校验和算法中的任意ー种,根据单片机的程序空间大小和处理能力,可以采用MD5算法,若MD5算法占用较多的程序空间以及较多的数据流量,可采用简单的校验和算法,其计算方式为帧头(含帧头本身)到校验码之间(不含校验码本身)的数据,按字节累加之和。优选的,上述一种基于单片机系统的数据流断点续传方法,其中所述步骤六中的异常情况包括以下两种情况情况一,所有“帧”均已接收,但有ー个或多个“帧”校验错误;情况ニ,只接收到部分“帧”,且未在规定时间内(如30秒内)接收到新的“帧”。本发明的突出效果为本发明基于单片机系统通常具备的TCP或UDP基础传输层协议,通过采用“时间片轮转算法”来模拟多线程的实现,采用“帧”作为数据结构的基本单元,达到或接近计算机领域的数据流断点续传效果,消除了传输过程中的高误码率,提高了 数据流的传输效率,降低了传输时间和网络流量,降低了通信成本。本发明还具有以下优点
1、本发明采用了基于TCP或UDP传输层协议实现数据续传的方法,不依赖于任何特定的应用层协议,仅需要底层的传输层协议,即可实现数据断点续传;
2、其基本原理并非模仿计算机领域的数据续传方法(FTP等),而是采用“帧”这样ー种具备自我描述特性的数据结构作为数据传输的基本単元,在网络中断再恢复的情况下,接收端能够识别数据属于哪ー个传输任务,并恢复载入,实现了数据的断点续传,保证了数据传输的有效性和可靠性;
3、不仅仅可应用于数据的续传,也同样可应用于数据上传过程,无需要特殊的服务器软件支持;
4、传输过程中,由于数据接收端和数据发送端均能够判断、校验数据的完整性,因此发送端不需要数据从头开始传输,从而提高了传输效率,降低了网络流量;
5、采用时间片轮转算法,实现了数据的“并发”传输。以下便结合实施例附图,对本发明的具体实施方式
作进ー步的详述,以使本发明技术方案更易于理解、掌握。


图I是本发明实施例的流程图。
具体实施例方式实施例
本实施例运行环境是在基站运维管理終端BSM3000中,用于实现控制程序的远程升级,在无线数据传输产品TCMK-GC中,用于实现文件的传输功能。本实施例一种基于单片机系统的数据流断点续传方法,基于单片机系统的TCP或UDP基础传输层协议,采用“帧”这种形式的载体作为数据传输的基本単元,采用时间片轮转算法,实现数据的“并发”传输,如图I所示,包括如下步骤
步骤一,将数据流按照大小拆分为多个数据包,再将数据包封装为“帧”,“帧”是指毎次发送的数据包,它是数据流被拆分的最小単位,是独立的逻辑单元,“帧”是ー种具有“可读性”的数据封装体,具有可自我描述、可校验等特性,所述“帧”包含了作为任务标识的帧标识符,帧标识符为ー个4字节的随机码,作为断点续传的该帧数据流的唯一标识;
“帧”的大小以不大于ー个MTU (最大传输单元)为原则,通常不大于1400字节,其基本结构为如下表I所示
权利要求
1.一种基于单片机系统的数据流断点续传方法,其特征在于基于单片机系统的TCP或UDP基础传输层协议,采用“帧”这种形式的载体作为数据传输的基本単元,采用时间片轮转算法,实现数据的“并发”传输,包括如下步骤 步骤一,将数据流按照大小拆分为多个数据包,再将数据包封装为“帧”; 步骤ニ,数据发送端首先发送握手信息,向数据接收端请求发送数据,数据接收端收到后,将应答数据发送端,并做好接收准备; 步骤三,数据发送端采用时间片轮转算法,将所有“帧”发送至数据接收端; 步骤四,数据接收端接收到每个“帧”后,无需做出应答,数据接收端根据每个“帧”的校验码校验“帧”的完整性,如果接收到的“帧”校验正确,数据接收端将数据项内容取出,井根据帧序号将内容存放在指定的数组中;如果接收到的“帧”校验错误,将直接丢弃,帧序号保存在一个记录错误的数组中; 步骤五,若因网络连接超时只接受到部分“帧”,在网络恢复后,数据发送端和数据接收端重新建立连接,数据发送端将未能传输的“帧”再次发送,数据接收端根据“帧”的标识符确定其所属的传输任务,并将所属的传输任务调出并恢复载入; 步骤六,所有“帧”发送完成后,数据发送端进入等待数据接收端应答的状态,数据接收端根据握手信息,判断是否所有“帧”都已正确接收,如果所有“帧”都正确接收,数据接收端返回给数据发送端一个“应答帧”,同时,数据接收端将所有“帧”中的数据项依据帧序号依次组装,从而完成了数据的接收,数据发送端接收到“应答帧”后,清理资源,断开连接,结束任务;如果数据接收端发现接收到的“帧”有异常情况,数据接收端返回给数据发送端ー个“失败响应帧”,并在“失败响应帧”的数据项中包含错误的“帧”的帧序号,数据发送端收到“失败响应帧”后,再次发送错误的“帧”的帧序号对应的“帧”,循环进行直到数据接收端所有“帧”都正确接收,则进入上述所有“帧”都正确接收后的进程。
2.根据权利要求I所述的ー种基于单片机系统的数据流断点续传方法,其特征在于所述数据接收端和所述数据发送端均能判断、校验数据的完整性。
3.根据权利要求I所述的ー种基于单片机系统的数据流断点续传方法,其特征在于所述“帧”是ー种具有“可读性”的数据封装体,所述“帧”包含了作为任务标识的帧标识符。
4.根据权利要求3所述的ー种基于单片机系统的数据流断点续传方法,其特征在于所述帧标识符为ー个4字节的随机码。
5.根据权利要求I所述的ー种基于单片机系统的数据流断点续传方法,其特征在于所述步骤四中的校验码校验的方法包括MD5算法或者校验和算法中的任意ー种。
6.根据权利要求I所述的ー种基于单片机系统的数据流断点续传方法,其特征在于所述步骤六中的异常情况包括以下两种情況情况一,所有“帧”均已接收,但有ー个或多个“中贞”校验错误;情况ニ,只接收到部分“巾贞”,且未在规定时间内接收到新的“帧”。
全文摘要
本发明揭示了一种基于单片机系统的数据流断点续传方法,基于单片机系统通常具备的TCP或UDP基础传输层协议,通过采用“时间片轮转算法”来模拟多线程的实现,采用“帧”作为数据结构的基本单元,达到或接近计算机领域的数据流断点续传效果,消除了传输过程中的高误码率,提高了数据流的传输效率,降低了传输时间和网络流量,降低了通信成本。
文档编号H04L29/08GK102710758SQ20121015986
公开日2012年10月3日 申请日期2012年5月22日 优先权日2012年5月22日
发明者荣宏, 莫立宇, 陈刚, 陈越 申请人:苏州云博信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1