一种数据分帧传输方法、遥测设备和数据中心平台
文献发布时间:2023-06-19 11:21:00
技术领域
本发明属于视频图像传输技术领域,具体涉及一种数据分帧传输方法,还涉及一种遥测设备和一种数据中心平台。
背景技术
大数据分析逐步在各行业的遥测系统中得到应用,这要求遥测设备提供比传统的业务应用更大量的原始数据,例如在水文遥测领域,传统的业务主要包括水位,雨量、流量数据的采集和传输,而现在降雨过程数据、水位快速变化的过程数据,现场拍摄的视频数据、设备的实时状态等均纳入了水文遥测业务应用的范畴,借助大数据分析,运维人员可以更精确的了解现场监测对象的发展趋势以及设备的运行状况。
在这些应用大数据分析的遥测系统中,遥测设备和数据中心之间的数据传输量相对传统的遥测业务模式成倍增加,但是在一些遥测系统中,遥测设备往往架设在通信条件较差的地区,没有高带宽的传输信号(例如4G/5G)覆盖,设备和数据中心之间往往只能采用较小带宽的传输信道,例如超短波、短消息等,大量数据传输所需的时间相比高带宽信道要长很多。
现在针对遥测设备和数据中心之间的大量数据传输,普遍采用的技术方案是将所有数据分割成多帧,然后按帧顺序将数据发送至数据中心,再由数据中心按帧序号进行拼接,恢复为原始数据。如果对数据的传输时间没有限制,该方案还包括数据中心对遥测设备发送的每一帧数据进行确认,以使遥测设备能够对数据中心未收到的帧进行重发,确保所有数据能够完整传输至数据中心。
对于现有技术方案中不包含数据中心确认的模式,数据中心接收数据的完整性完全依赖于信道传输的质量,只要有一帧数据在传输过程中丢失,都将造成整包数据无法可用。在很多没有移动信号覆盖的山区,遥测设备和数据中心之间只能采用超短波信道传输数据,受地形或外界环境的影响,超短波信道的丢帧率有时可达5%以上,无法确保数据中心能够接收到所有的数据帧。
而对于方案中包含的数据中心对遥测设备发送的每一帧进行确认的模式,虽然这相比无确认的模式能够显著提升数据完整传输的成功率,但是显然也带来更大的数据传输延时,几乎比单向的遥测设备向数据中心的传输要多花一倍的时间,同时也会造成遥测设备电能消耗的增加。如果现场没有市电,遥测设备为应付大量的电能消耗,将需要配备更大容量的蓄电池和更大功率的太阳能电池,造成设备成本的显著增加。
发明内容
本发明的目的在于克服现有技术中的不足,提供了一种数据分帧传输方法,将待传输数据进行分帧传输,无需数据中心对每帧数据进行确认并且自动缺帧检索及补传,提高了分帧传输的可靠性。
为解决上述技术问题,本发明的技术方案如下。
第一方面,本发明提供了一种数据分帧传输方法,执行于遥测设备(传输端),包括以下过程:
将待传输的数据进行分帧,获得总帧数和每帧数据的帧序号,所述帧序号从小到大顺序排列;
将帧序号最小的一帧数据和总帧数按照上行传输帧结构发送到数据中心;
响应于接收到数据中心返回的确认帧,按照帧序号从小到大的顺序依次将剩下的所有帧数据按照上行传输帧结构发送至数据中心;
向数据中心发送传输结束请求帧;
响应于接收到数据中心返回的补传帧,将需要补传的帧序号对应的帧数据重新发送给数据中心,重新向数据中心发送传输结束请求帧;
响应于接收到数据中心返回的确认帧,结束数据传输。
进一步的,所述将待传输的数据进行分帧,包括:
根据实际待传输的数据量和传输信道本身一次传输所能容纳的数据量确定分帧的总帧数,总帧数计算公式如下:
式1)中,Pk_Num为总帧数,N
进一步的,所述上行传输帧结构为:
进一步的,所述将帧序号最小的一帧数据发送后,若在超时时间内没有收到数据中心返回的确认帧,则重新发送帧序号最小的一帧数据,若发送的次数超过最大重试次数,则放弃传输。
进一步的,所述向数据中心发送传输结束请求帧后,若在超时时间内没有收到数据中心的指令,则重新发送传输结束请求帧,若发送传输结束请求帧的次数超过最大重试次数,则放弃传输。
第二方面,本发明还提供了一种遥测设备,包括:
分帧模块,用于将待传输的数据进行分帧,获得总帧数和每帧数据的帧序号,所述帧序号从小到大顺序排列;
第一帧发送模块,用于将帧序号最小的一帧数据和总帧数按照上行传输帧结构发送到数据中心;
剩余帧发送模块,用于响应于接收到数据中心返回的确认帧,则按照帧序号从小到大的顺序依次将剩下的所有帧数据按照上行传输帧结构发送至数据中心;
结束请求模块,用于向数据中心发送传输结束请求帧;
补传模块,用于响应于接收到数据中心返回的补传帧,将需要补传的帧序号对应的帧数据重新发送给数据中心,重新向数据中心发送传输结束请求帧;
传输结束模块,用于响应于接收到数据中心返回的确认帧,结束数据传输。
第三方面,本发明提供了一种数据分帧传输方法,执行于数据中心(接收端),包括以下过程:
接收遥测设备发送的第一帧数据后,按下行传输帧结构向遥测设备发送确认帧;
依次接收遥测设备发送的后续所有帧数据;
对接收到的每一帧数据,记录下帧序号和总帧数;
响应于接收到遥测设备发送的传输结束请求帧后,根据总帧数和已收到的帧序号,检索是否存在丢失的数据帧:
若有丢帧,则将需要补传的帧序号按下行传输帧结构向遥测设备发送补传帧,等待遥测设备发送的补传数据;
若没有丢帧,则发送确认帧至遥测设备,全部数据接收成功。
如果数据中心未发现缺帧,则发送确认帧给遥测设备。并将临时数据区中的数据写入磁盘,至此全部数据接收成功。
进一步的,在所述接收到所有帧数据后,将每一帧的数据内容按帧序号排序依次写入临时数据区,在全部数据接收成功后,将临时数据区中的数据写入磁盘。
进一步的,所述下行传输帧结构为:
第四方面,本发明还提供了一种数据中心平台,包括:
第一帧接收模块,用于接收遥测设备发送的第一帧数据后,按下行传输帧结构向遥测设备发送确认帧;
剩余帧接收模块,用于依次接收遥测设备发送的后续所有帧数据;
帧记录模块,用于对接收到的每一帧数据,记录下帧序号和总帧数;
帧检索模块,用于响应于接收到遥测设备发送的传输结束请求帧后,根据总帧数和已收到的帧序号,检索是否存在丢失的数据帧:
补传帧发送模块,用于若有丢帧,则将需要补传的帧序号按下行传输帧结构向遥测设备发送补传帧,等待遥测设备发送的补传数据;
确认帧发送模块,用于若没有丢帧,则发送确认帧至遥测设备,全部数据接收成功。
第五方面,本发明提供了一种数据分帧传输系统,包括遥测设备和数据中心平台;
所述遥测设备为上述的一种遥测设备;
所述数据中心平台为上述的一种数据中心平台;
所述遥测设备和所述数据中心平台连接通信。
与现有技术相比,本发明所达到的有益效果是:
本发明提出的数据分帧传输方法,能够自动根据信道容量对所需传输的数据进行合理的分帧,无需数据中心对每帧数据进行确认,显著降低了下行数据的次数,能够显著提升数据传输的可靠性,确保数据的完整性。并且实现了自动缺帧检索及补传,确保了大量数据基于低容量或质量较差信道的传输可靠性。
附图说明
图1为遥测设备数据分帧传输流程;
图2为数据中心分帧接收流程。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1
本发明的一种数据分帧传输方法,包括以下过程:
步骤1)传输帧结构
本发明规定的数据传输帧结构如下:
上行传输帧:
下行传输帧:
其中上行传输帧是遥测设备向数据中心传输的数据;而下行传输帧是数据中心向遥测设备传输的数据,主要用于传输流程的控制。
上行传输帧的各字段定义如下:
·Head:帧头标识,可与实际所采用的传输协议帧头部保持一致。
·Length:帧长度,从FrmType到Chk的总字节数。
·FrmType:帧类型,用来表示不同的功能,在本发明中,上行传输帧的帧类型包括2种:一是数据帧,即遥测设备向数据中心发送的经过分割的数据帧,详见下面的Pk_Num和Pk_No的描述;二是传输结束请求帧,表示遥测设备已完成数据帧传输,向数据中心请求结束本次传输。
·Pk_Num:总帧数,需根据实际传输的数据量和传输信道本身一次传输所能容纳的数据量确定,例如实际传输的数据量为10240字节,而信道本身支持的一次传输最大数据量为1000字节,则总帧数为11帧,计算公式如下:
式1)中,Pk_Num为总帧数,N
·Pk_No:当前帧序号,从1开始,每传输1帧累加1,当前帧序号等于Pk_Num时,表示所有数据传输完毕。
·Data:经过帧分割以后的数据,例如总共需要传输的数据为10240字节,传输信道本身一次传输所能容纳的字节数为1000,全部数据按1000字节分成11帧进行传输,则第1帧数据的内容为第1字节到第1000字节,第2整数据的内容为第1001字节到第2000字节……最后一帧的数据为第10001字节到第10240字节。每帧报文的Data在全部所需传输的数据的起始位置的计算公式如下:
D
式2)中,D
·Chk:数据校验,可与实际所采用的传输协议的校验方法保持一致,一般常用的校验方法有和校验、CRC8、CRC16校验。
下行传输帧的各字段定义如下:
·Head:帧头,和上行传输帧的Head定义一致。
·Length:帧长度,从FrmType到Chk的总字节数。
·FrmType:帧类型,表示不同的功能。在本发明中,下行传输帧的帧类型包括2种:一是确认帧,表示数据中心接收正确,允许遥测设备开始下一步骤;二是帧补传请求,表示数据中心接收的遥测设备数据不完整,需要遥测设备补传缺失帧。
·FrmPara:对应不同FrmType的参数内容。在本发明中,当FrmType为确认帧时,FrmPara不包含任何内容;当FrmType为补传请求帧时,FrmPara为需要补传的缺失帧的帧序号。
·Chk:数据校验,和上行传输帧的Chk定义一致。
步骤2)传输流程控制
参见图1和图2所示,具体包括以下过程:
1)遥测设备在数据中心发起数传输前,按照式1)所述的公式对数据进行分帧,每帧数据的帧序号及对应的内容详见传输帧结构中的Pk_No和Data的描述。
2)遥测设备首先向数据中心发送帧序号为1的报文,并等待数据中心的确认。若在规定的超时时间内收到正确的确认,则转入步骤3)。
若在规定的超时时间内没有收到正确的确认,则重新发送第一帧报文,若发送的次数超过规定的最大重试次数,则放弃传输,退出本次传输流程。其中超时时间应根传输信道的传输延时以及经过的中继来确定,最大重试次数也应根据实际的应用需求确定,一般可设为3次。
3)遥测设备按照从小到大的顺序依次将序号为2~Pk_Num的帧报文发送给数据中心,每帧无需数据中心确认,数据中心对接收到每一帧报文,记录下该帧的序号,并把该帧的Data区内容按序号写入一个临时数据区。
例如10240字节的数据按1000字节分成11帧进行传输,数据中心的接收程序应开辟一个至少11000字节的临时数据区,对于接收到的帧序号为Pk_No的数据,应写入起始地址为(Pk_No-1)×1000的位置。
4)遥测设备发送完最后一帧数据后,接下来发送传输结束请求帧,等待数据中心的确认或补传的指令。
5)数据中心收到遥测设备发送的传输结束请求帧后,根据收到的总帧数和已收到的帧序号,检索是否存在丢失的数据帧。
如果有丢帧,则按下行传输帧结构中中补传请求帧的格式封装报文,并发送给遥测设备,请求遥测设备补传缺失帧。数据中心发送补传请求帧后等待遥测设备发送的补传数据,若在规定的超时时间内没有收到遥测设备发送的补传数据,则重新发送补传请求帧,若请求发送的次数超过规定的最大重试次数,则放弃本次的传输。其中超时时间和最大重试次数的值应和步骤2)中的描述一致。
如果数据中心未发现缺帧,则发送确认帧给遥测设备。并将临时数据区中的数据写入磁盘,至此全部数据接收成功。
6)遥测设备若在规定的超时时间内收到数据中心的指令:
若接收到的是确认帧,则认为本次传输成功,退出本次传输流程。
若接收到的是缺失帧补传指令,则将对应序号的帧重新发送给数据中心,发送完毕后回到步骤4)。
若在规定的超时时间内没有收到数据中心的指令,则重新发送结束请求帧,若发送传输结束请求帧的次数超过规定的最大重试次数,则放弃传输,退出本次传输流程。其中超时时间和最大重试次数的值应和步骤2)中的描述一致。
数据中心在接收遥测设备发送的数据帧的过程中,若超过规定时间内没有接收到后续的帧,则进入步骤5)进行缺帧检查。
本发明的关键点是:
1)传输帧结构及数据的分帧
在传输帧结构中,需要至少包含帧总数以及当前帧序号两个必要元素。其中帧总数按式1)计算得出,当前帧序号每次传输累加1。当前帧序号对应的数据内容在全部数据中的起始位置按式2)得出。
2)丢失帧的检索及补传机制
数据中心的接收程序需要记录每一帧报文的帧序号,在接收到遥测设备发送的传输结束请求或接收遥测设备的数据帧发生超时时,数据中心的接收程序自动根据已接收的帧序号及帧总数统计出缺失帧,并封装为报文发送给遥测设备,请求遥测设备发送缺失帧。直至数据中心接收到完整的数据。
本发明提出的数据分帧传输方法,能够自动根据信道容量对所需传输的数据进行合理的分帧,实现了自动缺帧检索及补传,确保了大量数据基于低容量或质量较差信道的传输可靠性。
本发明在不降低传输可靠性的前提下,无需数据中心对每帧数据进行确认,显著降低了下行数据的次数,从而有效缩短了传输所需的时间。
实施例2
相应的,本发明的一种遥测设备,包括:
分帧模块,用于将待传输的数据进行分帧,获得总帧数和每帧数据的帧序号,所述帧序号从小到大顺序排列;
第一帧发送模块,用于将帧序号最小的一帧数据和总帧数按照上行传输帧结构发送到数据中心;
剩余帧发送模块,用于响应于接收到数据中心返回的确认帧,则按照帧序号从小到大的顺序依次将剩下的所有帧数据按照上行传输帧结构发送至数据中心;
结束请求模块,用于向数据中心发送传输结束请求帧;
补传模块,用于响应于接收到数据中心返回的补传帧,将需要补传的帧序号对应的帧数据重新发送给数据中心,重新向数据中心发送传输结束请求帧;
传输结束模块,用于响应于接收到数据中心返回的确认帧,结束数据传输。
本发明中各模块的具体实现方案参见上述方法描述的各步骤过程。
实施例3
相应的,本发明的一种数据中心平台,包括:
第一帧接收模块,用于接收遥测设备发送的第一帧数据后,按下行传输帧结构向遥测设备发送确认帧;
剩余帧接收模块,用于依次接收遥测设备发送的后续所有帧数据;
帧记录模块,用于对接收到的每一帧数据,记录下帧序号和总帧数;
帧检索模块,用于响应于接收到遥测设备发送的传输结束请求帧后,根据总帧数和已收到的帧序号,检索是否存在丢失的数据帧:
补传帧发送模块,用于若有丢帧,则将需要补传的帧序号按下行传输帧结构向遥测设备发送补传帧,等待遥测设备发送的补传数据;
确认帧发送模块,用于若没有丢帧,则发送确认帧至遥测设备,全部数据接收成功。
本发明中各模块的具体实现方案参见上述方法描述的各步骤过程。
实施例4
本发明的一种数据分帧传输系统,包括遥测设备和数据中心平台;
所述遥测设备为上述的一种遥测设备;
所述数据中心平台为上述的一种数据中心平台;
所述遥测设备和所述数据中心平台连接通信。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
- 一种数据分帧传输方法、遥测设备和数据中心平台
- 一种分帧媒体数据传输方法、系统及装置