一种数据传输方法及相关装置与流程

文档序号:22141785发布日期:2020-09-08 13:43阅读:138来源:国知局
一种数据传输方法及相关装置与流程
本申请涉及计算机
技术领域
,特别涉及一种数据传输方法、数据传输装置、计算机设备以及计算机可读存储介质。
背景技术
:随着信息技术的不断发展,在信息设备中出现了串行接口用于传输数据。其中,串行接口是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低成本。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通信。也就是说,数据位的传送按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度慢。进一步的,出现了异步串行,异步串行是指uart(universalasynchronousreceiver/transmitter),通用异步接收/发送。串行接口按电气标准及协议来分包括rs-232-c、rs-422、rs-485等。由于异步串口比较简单,经常作为设备与人的交互接口。目前常用的基于异步串行通信的传输方法包括xmodem、ymodem和zmodem。其中,xmodem协议是用于调制解调器纠错的协议。使用此协议的调制解调器发送的数据包大小为128-byte。如果包成功接收,接收方会返回一个肯定应答信号,如果发现错误,则返回一个否定应答信号并重新发送数据包。ymodem协议是以1024字节数的块发送数据,类似于xmodem-1k,不同之处是提供批处理模式。在批处理模式下,可以使用一个命令发送一些文件。ymodem协议使用循环冗余校验作为错误校验方式。zmodem是xmodem文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小。另外包含一种名为检查点重启的特性,如果通信链接在数据传输过程中中断,能从断点处而不是从开始处恢复传输。但是,对着计算机技术的不断发展,现有的传输协议包的长度不利于发挥硬件的最优性能,也就是导致在数据传输过程中性能浪费,降低了硬件性能利用率。因此,如何提高串口通信时的硬件性能利用率是本领域技术人员关注的重点问题。技术实现要素:本申请的目的是提供一种数据传输方法、数据传输装置、计算机设备以及计算机可读存储介质,通过先获取到的数据包长度确定用于数据传输的传输协议,当接收到数据请求时再根据该数据长度可变的传输协议将待发送数据进行全部连续发送,最后第二设备再进行校验处理,实现数据传输过程,由于该传输协议的数据包长度可变,而不是固定的,可以适配设备性能进行数据传输,提高了数据传输时的性能利用率。为解决上述技术问题,本申请提供一种数据传输方法,包括:第一设备根据获取的数据包长度确定传输协议;当第一设备接收到第二设备发送的数据请求时,根据所述传输协议将待发送数据分为多个数据包,并向所述第二设备连续发送所述多个数据包;当发送结束时,向所述第二设备发送数据传输结束指令,以便所述第二设备根据接收到的校验码对接收到的数据包进行校验处理,实现数据传输过程。可选的,所述第二设备根据接收到的校验码对接收到的数据包进行校验处理,实现数据传输过程,包括:所述第二设备从接收到的数据包中提取出校验码和包序号;根据所述包序号和所述校验码判断接收到的数据包是否完整;若是,则发送接收成功指令;若否,则根据所述传输协议向所述第一设备发送待重传数据包号,以便所述第一设备根据所述待重传数据包号向所述第二设备进行重传处理。可选的,还包括:根据所述第一设备的设备信息和所述第二设备的设备信息进行最优长度计算,得到所述数据包长度。可选的,还包括:根据所述第一设备的传输性能测试信息和所述第二设备的传输性能测试信息进行最优长度计算,得到所述数据包长度。本申请还提供一种数据传输装置,包括:传输协议确定模块,用于根据获取的数据包长度确定传输协议;数据包连续发送模块,用于当第一设备接收到第二设备发送的数据请求时,根据所述传输协议将待发送数据分为多个数据包,并向所述第二设备连续发送所述多个数据包;数据包传输完成模块,用于当发送结束时,向所述第二设备发送数据传输结束指令,以便所述第二设备根据接收到的校验码对接收到的数据包进行校验处理,实现数据传输过程。可选的,所述数据包传输完成模块,还包括:校验码提取单元,用于从接收到的数据包中提取出校验码和包序号;校验码判断单元,用于根据所述包序号和所述校验码判断接收到的数据包是否完整;传输完成单元,用于当接收到完全的数据包时,发送接收成功指令;数据重传单元,用于当接收到部分的数据包时,根据所述传输协议向所述第一设备发送待重传数据包号,以便所述第一设备根据所述待重传数据包号向所述第二设备进行重传处理。可选的,还包括:第一长度计算模块,用于根据所述第一设备的设备信息和所述第二设备的设备信息进行最优长度计算,得到所述数据包长度。可选的,还包括:第二长度计算模块,用于根据所述第一设备的传输性能测试信息和所述第二设备的传输性能测试信息进行最优长度计算,得到所述数据包长度。本申请还提供一种计算机设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的数据传输方法的步骤。本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据传输方法的步骤。本申请所提供的一种数据传输方法,包括:第一设备根据获取的数据包长度确定传输协议;当第一设备接收到第二设备发送的数据请求时,根据所述传输协议将待发送数据分为多个数据包,并向所述第二设备连续发送所述多个数据包;当发送结束时,向所述第二设备发送数据传输结束指令,以便所述第二设备根据接收到的校验码对接收到的数据包进行校验处理,实现数据传输过程。通过先获取到的数据包长度确定用于数据传输的传输协议,当接收到数据请求时再根据该数据长度可变的传输协议将待发送数据进行全部连续发送,最后第二设备再进行校验处理,实现数据传输过程,由于该传输协议的数据包长度可变,而不是固定的,可以适配设备性能进行数据传输,提高了数据传输时的性能利用率。本申请还提供一种数据传输装置、计算机设备以及计算机可读存储介质,具有以上有益效果,在此不做赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种数据传输方法的流程图;图2为本申请实施例所提供的一种数据传输装置的结构示意图。具体实施方式本申请的核心是提供一种数据传输方法、数据传输装置、计算机设备以及计算机可读存储介质,通过先获取到的数据包长度确定用于数据传输的传输协议,当接收到数据请求时再根据该数据长度可变的传输协议将待发送数据进行全部连续发送,最后第二设备再进行校验处理,实现数据传输过程,由于该传输协议的数据包长度可变,而不是固定的,可以适配设备性能进行数据传输,提高了数据传输时的性能利用率。为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。现有技术中,常用的基于异步串行通信的传输方法包括xmodem、ymodem和zmodem。其中,xmodem协议是用于调制解调器纠错的协议。使用此协议的调制解调器发送的数据包大小为128-byte。如果包成功接收,接收方会返回一个肯定应答信号,如果发现错误,则返回一个否定应答信号并重新发送数据包。ymodem协议是以1024字节数的块发送数据,类似于xmodem-1k,不同之处是提供批处理模式。在批处理模式下,可以使用一个命令发送一些文件。ymodem协议使用循环冗余校验作为错误校验方式。zmodem是xmodem文件传输协议的一种增强形式,不仅能传输更大的数据,而且错误率更小。另外包含一种名为检查点重启的特性,如果通信链接在数据传输过程中中断,能从断点处而不是从开始处恢复传输。但是,对着计算机技术的不断发展,现有的传输协议包的长度不利于发挥硬件的最优性能,也就是导致在数据传输过程中性能浪费,降低了硬件性能利用率。因此,本申请提供一种数据传输方法,通过先获取到的数据包长度确定用于数据传输的传输协议,当接收到数据请求时再根据该数据长度可变的传输协议将待发送数据进行全部连续发送,最后第二设备再进行校验处理,实现数据传输过程,由于该传输协议的数据包长度可变,而不是固定的,可以适配设备性能进行数据传输,提高了数据传输时的性能利用率。以下通过一个实施例,对本申请提供的一种数据传输方法进行说明。请参考图1,图1为本申请实施例所提供的一种数据传输方法的流程图。本实施例中,该方法可以包括:s101,第一设备根据获取的数据包长度确定传输协议;本步骤旨在第一设备,也就是需要发送数据的设备第一设备根据获取的数据包长度确定传输协议。也就是说,本实施例中的传输协议的数据包长度是可以进行修改的,长度可以进行调整和修改,实现了单次数据传输的协议的长度可控。进而,就可以根据适合硬件性能的数据包长度确定传输协议。本实施例,还可以包括:根据第一设备的设备信息和第二设备的设备信息进行最优长度计算,得到数据包长度。为了在本实施例之前获取到更准确的数据包长度,本实施例中该可以根据第一设备的设备信息和第二设备的设备信息进行最优长度计算,得到数据包长度。也就是,根据两个设备的设备信息计算出最合适的数据包长度,进而得到该数据包长度。可以提高数据包长度获取的准确性,进一步提高数据传输过程中对硬件性能的利用率。本实施例,还可以包括:根据第一设备的传输性能测试信息和第二设备的传输性能测试信息进行最优长度计算,得到数据包长度。为了进一步获取到更加准确的更加贴合设备信息的数据包长度。本可选方案中还可以分别根据不同长度不同数据量大小以及不同性能的对端对第一设备和第二设备进行传输性能压力测试,得到第一设备的传输性能测试信息和第二设备的传输性能测试信息,然后,在此基础上,根据第一设备的传输性能测试信息和第二设备的传输性能测试信息进行最优计算,得到该数据包长度。其中,最优计算就时再获取到两者的传输性能测试信息的情况下相互对比选择最合适的长度数据,得到该数据包长度。s102,当第一设备接收到第二设备发送的数据请求时,根据传输协议将待发送数据分为多个数据包,并向第二设备连续发送多个数据包;在s101的基础上,本步骤旨在当第一设备接收到第二设备发送的数据请求时,根据该确定好长度的传输协议将待发送数据包分为多个数据包,并向该第二设备连续得发送多个数据包而不是将多个数据包一个一个进行发送,以便第二设备可以一次性接收到所有的数据。而不采用一个数据包发送后等待反馈的方式进行发送,提高了数据传输的效率。而在一般的现有技术中,该串口的数据传输协议一般是获取到多个数据包,然后向第二设备发送一个数据后等待第二设备是否反馈接收完成消息,若反馈则表示接收成功,第一设备再向第二设备发送下一个数据包,周而复始,将所有的数据包传输完成。虽然现有的数据传输方式可以保持数据传输的可靠性,但是效率极低,无法高效传输数据。因此,本实施例中通过s102将待传输数据包分为多个数据包,然后连续将该多个数据包同时发送至第二设备中,以便第二设备可以完整的接收到所有的数据包,而不用再向第一设备反馈单个数据包接收到的反馈信息,减少了操作步骤提高了数据传输效率。s103,当发送结束时,向第二设备发送数据传输结束指令,以便第二设备根据接收到的校验码对接收到的数据包进行校验处理,实现数据传输过程。在s102的基础上,本步骤旨在当第一设备将所有的数据包发送结束时,向该第二设备发送数据传输结束消息,以便通知该第二设备已经将所有的数据包传输完毕。此时,第二设备就可以对接收到的数据包进行校验处理,以便确定接收到的数据包是否完整。若完整则表示接收到完全的数据包,接收完成,此时可以向第一设备发送接收成功指令。若不完整,则向第一设备发送重传数据包号,以便第一设备根据该待重传数据包向第二设备进行重新发送。可选的,本步骤可以包括:步骤1,第二设备从接收到的数据包中提取出校验码和包序号;步骤2,根据包序号和所述校验码判断接收到的数据包是否完整;步骤3,若是,则发送接收成功指令;步骤4,若否,则根据传输协议向第一设备发送待重传数据包号,以便第一设备根据待重传数据包号向第二设备进行重传处理。可见,本可选方案主要是对本实施例中的校验处理作进一步说明。首先,第二设备从接收到的数据包中提取出校验码和包序号;然后,根据包序号和所述校验码判断接收到的数据包是否完整;当接收到的完全时,发送接收成功指令;当接收到的数据包不完全时,根据传输协议向第一设备发送待重传数据包号,以便第一设备根据待重传数据包号向第二设备进行重传处理。综上,本实施例通过先获取到的数据包长度确定用于数据传输的传输协议,当接收到数据请求时再根据该数据长度可变的传输协议将待发送数据进行全部连续发送,最后第二设备再进行校验处理,实现数据传输过程,由于该传输协议的数据包长度可变,而不是固定的,可以适配设备性能进行数据传输,提高了数据传输时的性能利用率。以下通过一个具体的实施例,对本申请提供的一种数据传输方法做进一步说明。本实施例中,该方法可以包括:发送端和接收端的流程如上图所示:步骤1,接收端发送请求数据发送包(类型为1);步骤2,发送端发送数据包(类型为2),根据需要连续发送,无须等待接收端反馈;步骤3,发送端发送数据发送结束请求(类型为3)步骤4,接收端根据自己接收包的情况,完成数据校验,如果全部接收成功,则发送应答发送结果反馈接收全部成功,通信过程结束;如果有部分包未接收成功,则按照协议发送应答发送结果反馈哪些数据包未接收成功;(类型为4);步骤5,发送端重新发送未接收成功的数据包(类型为2),根据需要连续发送,无须等待接收端反馈;步骤6,发送端发送数据发送结束请求(类型为3)步骤7,接收端根据自己接收包的情况,完成数据校验,如果全部接收成功,则发送应答发送结果反馈接收全部成功,通信过程结束;如果有部分包未接收成功,则按照协议发送应答发送结果反馈哪些数据包未接收成功;(类型为4);步骤8,重新第6个步骤。其中,协议的格式可以如表1。表1传输协议格式示意表byte1-2byte3byte4-5byte6-7byte8-9byte10-(n-2)byten-1-n0xa5a5a5a5类型长度包号总包数数据crc其中,byte1-2是一个模数,作为一个数据包的包头,固定为0xa5a5a5;byte3是一个类型,具体取值及含义如下表2。表2类型释义表byte4-5为整个包的长度;byte6-7为包号,从0开始编制;byte8-9为本数据包的总包数;byte10–n–2为数据区,格式与包类型相关,具体见表2;byten–1–n为crc校验。可加,本实施例通过先获取到的数据包长度确定用于数据传输的传输协议,当接收到数据请求时再根据该数据长度可变的传输协议将待发送数据进行全部连续发送,最后第二设备再进行校验处理,实现数据传输过程,由于该传输协议的数据包长度可变,而不是固定的,可以适配设备性能进行数据传输,提高了数据传输时的性能利用率。下面对本申请实施例提供的一种数据传输装置进行介绍,下文描述的一种数据传输装置与上文描述的一种数据传输方法可相互对应参照。请参考图2,图2为本申请实施例所提供的一种数据传输装置的结构示意图。本实施例中,该装置可以包括:传输协议确定模块100,用于根据获取的数据包长度确定传输协议;数据包连续发送模块200,用于当第一设备接收到第二设备发送的数据请求时,根据传输协议将待发送数据分为多个数据包,并向第二设备连续发送多个数据包;数据包传输完成模块300,用于当发送结束时,向第二设备发送数据传输结束指令,以便第二设备根据接收到的校验码对接收到的数据包进行校验处理,实现数据传输过程。可选的,该数据包传输完成模块300,还可以包括:校验码提取单元,用于从接收到的数据包中提取出校验码;校验码判断单元,用于根据包序号和所述校验码判断接收到的数据包是否完整;传输完成单元,用于当接收到完全的数据包时,发送接收成功指令;数据重传单元,用于当接收到部分的数据包时,根据传输协议向第一设备发送待重传数据包号,以便第一设备根据待重传数据包号向第二设备进行重传处理。可选的,该装置还可以包括:第一长度计算模块,用于根据第一设备的设备信息和第二设备的设备信息进行最优长度计算,得到数据包长度。可选的,该装置还可以包括:第二长度计算模块,用于根据第一设备的传输性能测试信息和第二设备的传输性能测试信息进行最优长度计算,得到数据包长度。本申请实施例还提供一种计算机设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如以上实施例所述的数据传输方法的步骤。本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的数据传输方法的步骤。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
内所公知的任意其它形式的存储介质中。以上对本申请所提供的一种数据传输方法、数据传输装置、计算机设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1