CN117493248B - Usb数据传输方法、装置、系统、电子设备及存储介质 - Google Patents
Usb数据传输方法、装置、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117493248B CN117493248B CN202311850453.9A CN202311850453A CN117493248B CN 117493248 B CN117493248 B CN 117493248B CN 202311850453 A CN202311850453 A CN 202311850453A CN 117493248 B CN117493248 B CN 117493248B
- Authority
- CN
- China
- Prior art keywords
- data
- usb
- data packet
- transmitted
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 148
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000004891 communication Methods 0.000 claims abstract description 135
- 230000002093 peripheral effect Effects 0.000 claims description 26
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 230000002159 abnormal effect Effects 0.000 claims description 23
- 125000004122 cyclic group Chemical group 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 13
- 238000013524 data verification Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4013—Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供一种USB数据传输方法、装置、系统、电子设备及存储介质,涉及数据通信技术领域,该方法包括:获取USB数据发送端拟发送至USB数据接收端的待传输数据流;生成待传输数据流对应的数据包序列,数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;依次将数据包序列中的各目标数据包发送至USB数据接收端。本发明提供的USB数据传输方法、装置、系统、电子设备及存储介质,能在确保USB数据传输的安全性以及未增加设计复杂性的基础上,提高USB数据传输的传输速率,能降低USB数据传输的延迟率、增加数据链路的带宽利用率以及减小计算资源的占用。
Description
技术领域
本发明涉及数据通信技术领域,尤其涉及一种USB数据传输方法、装置、系统、电子设备及存储介质。
背景技术
通用串行总线(Universal Serial Bus,简称USB),是一种用于连接电脑与外部设备的串行总线标准。USB技术作为一种计算机外围互连技术,具有高速率、热插拔、可扩展性和多设备支持的优点,被广泛应用于计算机、电视、音频、视频、存储设备、游戏机等各种电子设备中。
USB数据传输是指利用USB接口进行数据交换的过程。为了确保USB数据传输的安全性,相关技术中通常采用循环冗余校验码(cyclic redundancy check,CRC)技术,检测和纠正USB数据传输过程中可能出现的错误。
但是,采用CRC技术检测和纠正USB数据传输过程中可能出现的错误,会对USB数据传输的传输速率产生不良影响。因此,如何在确保USB数据传输的安全性的基础上,提高USB数据传输的传输速率,是本领域亟待解决的技术问题。
发明内容
本发明提供一种USB数据传输方法、装置、系统、电子设备及存储介质,用以解决现有技术中采用CRC技术检测和纠正USB数据传输过程中可能出现的错误,会对USB数据传输的传输速率产生不良影响的缺陷,实现在确保USB数据传输的安全性的基础上,提高USB数据传输的传输速率。
本发明提供一种USB数据传输方法,包括:
在USB数据发送端与USB数据接收端有效连接的情况下,获取所述USB数据发送端拟发送至所述USB数据接收端的待传输数据流;
生成所述待传输数据流对应的数据包序列,所述数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;
依次将所述数据包序列中的各目标数据包发送至USB数据接收端。
根据本发明提供的一种USB数据传输方法,所述依次将所述数据包序列中的各目标数据包发送至USB数据接收端之前,所述方法还包括:
构建所述USB数据发送端与所述USB数据接收端之间的主路通信链路和旁路通信链路;
所述依次将所述数据包序列中的各目标数据包发送至USB数据接收端,包括:
通过所述主路通信链路,依次将所述数据包序列中的目标数据包发送至USB数据接收端,并在通过所述主路通信链路依次将所述数据包序列中的目标数据包发送至USB数据接收端的过程中,若确定所述主路通信链路出现异常,则按照所述数据包序列中剩余未发送的目标数据包的时序排列顺序,通过所述旁路通信链路,依次将所述数据包序列中剩余未发送的目标数据包发送至USB数据接收端。
根据本发明提供的一种USB数据传输方法,所述预设格式的空白数据包中包括依次排列的第一长度的空白数据包头、第二长度的空白数据块以及第三长度的空白校验码块依次排列,所述空白数据包头用于存放用于指示数据包类型的字段,所述空白数据块用于存放所述待传输数据流中的待传输数据,所述空白校验码块用于存放用于对所述待传输数据进行数据校验的校验码。
根据本发明提供的一种USB数据传输方法,所述预设格式的空白数据包中数据包头的前目标数量位用于存放指示数据包类型的字段。
根据本发明提供的一种USB数据传输方法,所述生成所述待传输数据流对应的数据包序列,包括:
按照所述USB数据发送端的发送时序顺序,将所述待传输数据流中的待传输数据依次存储至目标存储空间;
按照存储至所述目标存储空间的存储时序顺序,依次从所述目标存储空间中提取所述第二长度的待传输数据填充至一个所述预设格式的空白数据包中的数据块中,直至所述目标存储空间中所有的待传输数据填充至所述预设格式的空白数据包中的数据块中,获得多个原始数据包,
依据每一所述原始数据包的类型,填充每一所述原始数据包的前目标数量位,
依据目标算法生成每一所述原始数据包对应的校验码,将每一所述原始数据包对应的校验码填充至每一所述原始数据包的校验码块内,获得各所述目标数据包;
按照填充数据块的时序顺序排列各所述目标数据包,获得所述待传输数据流对应的数据包序列。
根据本发明提供的一种USB数据传输方法,所述构建所述USB数据发送端与所述USB数据接收端之间的旁路通信链路,包括:
向所述USB数据接收端发送所述USB数据发送端对应的旁路通信接口信号,以供所述USB数据接收端响应于所述旁路通信接口信号,建立与所述USB数据发送端之间的旁路通信链路。
根据本发明提供的一种USB数据传输方法,所述旁路通信接口信号,包括:输出信号、输出时钟信号、输入信号、输入时钟信号以及输出输入状态信号;所述输出信号和所述输入信号用于构建所述旁路通信链路,所述输出时钟信号和所述输入时钟信号用于同步所述USB数据接收端和所述USB数据发送端的时钟;所述输出输入状态信号用于指示所述旁路通信链路的通信状态。
根据本发明提供的一种USB数据传输方法,所述依据目标算法生成每一所述原始数据包对应的校验码,将每一所述原始数据包对应的校验码填充至每一所述原始数据包的校验码块内,获得各所述目标数据包,包括:
依据循环冗余校验算法,生成每一所述原始数据包对应的循环冗余校验码;
将每一所述原始数据包对应的循环冗余校验码填充至所述每一所述原始数据包的校验码块内。
根据本发明提供的一种USB数据传输方法,在所述按照所述USB数据发送端的发送时序顺序,将所述待传输数据流中的待传输数据依次存储至目标存储空间之后,在所述按照存储至所述目标存储空间的存储时序顺序,依次从所述目标存储空间中提取所述第二长度的待传输数据填充至一个所述预设格式的空白数据包中的数据块中,直至所述目标存储空间中所有的待传输数据填充至所述预设格式的空白数据包中的数据块中,获得多个原始数据包之前,所述方法还包括:
从所述目标存储空间中剔除所述待传输数据中的冗余数据。
根据本发明提供的一种USB数据传输方法,所述USB数据传输方式基于USB 3.0协议实现。
根据本发明提供的一种USB数据传输方法,所述获取所述USB数据发送端拟发送至所述USB数据接收端的待传输数据流,是在USB 3.0协议中的物理层完成的;
所述生成所述待传输数据流对应的数据包序列,是在USB 3.0协议中的协议层和数据链路层完成的;
所述依次将所述数据包序列中的各目标数据包发送至USB数据接收端,是在USB3.0协议中的物理层完成的。
根据本发明提供的一种USB数据传输方法,USB 3.0协议中物理层、数据链路层和协议层执行的具体步骤包括:
所述物理层获取所述待传输数据流,并将所述待传输数据流发送至所述数据链路层;
所述数据链路层在接收到所述物理层发送的所述待传输数据流的情况下,所述数据链路层将所述待传输数据流中的待传输数据依次存储至目标存储空间;
所述协议层按照存储至所述目标存储空间的存储时序顺序,依次从所述目标存储空间中提取所述第二长度的待传输数据填充至一个所述预设格式的空白数据包中的数据块中,直至所述目标存储空间中所有的待传输数据填充至所述预设格式的空白数据包中的数据块中,获得多个原始数据包,依据每一所述原始数据包的类型,填充每一所述原始数据包的数据包头的前目标数量位,依据目标算法生成每一所述原始数据包对应的校验码,将每一所述原始数据包对应的校验码填充至每一所述原始数据包的校验码块内,获得各所述目标数据包,按照填充数据块的时序顺序排列各所述目标数据包,获得所述数据包序列,并将所述数据包序列发送至所述数据链路层;
所述数据链路层在接收到所述数据包序列的情况下,将所述数据包序列发送至所述物理层;
所述物理层在接收到所述数据包序列的情况下,依次将所述数据包序列中的各目标数据包发送至USB数据接收端。
根据本发明提供的一种USB数据传输方法,判断所述主路通信链路是否出现异常,包括:
在接收到USB数据接收端发送的错误信息的情况下,确定所述主路通信链路出现异常;
其中,所述错误信息用于表示所述数据包序列中的任一数据包未通过数据校验,和/或,所述数据包序列中的任一数据包丢失。
根据本发明提供的一种USB数据传输方法,判断所述主路通信链路是否出现异常,包括:
在所述主路通信链路中的数据传输速率小于速率阈值,和/或,所述主路通信链路的传输延迟率大于延迟率阈值的情况下,确定所述主路通信链路出现异常。
本发明还提供一种USB数据传输装置,包括:
数据流获取模块,用于在USB数据发送端与USB数据接收端有效连接的情况下,获取所述USB数据发送端拟发送至所述USB数据接收端的待传输数据流;
数据包序列获取模块,用于生成所述待传输数据流对应的数据包序列,所述数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;
数据包发送模块,用于依次将所述数据包序列中的各目标数据包发送至USB数据接收端。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述USB数据传输方法。
根据本发明提供的一种电子设备,所述电子设备包括计算机和外设设备。
本发明还提供一种USB数据传输系统,包括:USB数据发送端、USB数据接收端以及如上所述的电子设备;所述USB数据发送端与所述电子设备电连接;所述USB数据接收端与所述电子设备电连接。
本发明还提供一种USB数据传输系统,包括:USB数据发送端和USB数据接收端;
其中,所述USB数据发送端为如上所述的电子设备,或者,所述USB数据接收端为如上所述的电子设备。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述USB数据传输方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述USB数据传输方法。
本发明提供的USB数据传输方法、装置、系统、电子设备及存储介质,通过将USB数据发送端拟发送至USB数据接收端的待传输数据流,转化为多个按照时序顺序排列的、格式相同且长度相同的数据包之后,按照数据包序列中各数据包的时序排列顺序,依次将数据包序列中的每一数据包发送至USB数据接收端,能统一USB数据发送端与USB数据接收端之间的数据流,能简化数据控制逻辑,能避免采用循环冗余校验码技术进行数据校验时需要重新读取数据包长度,能降低协议层和数据链路层的逻辑复杂度,能提高数据处理速度,能在确保USB数据传输的安全性以及未增加设计复杂性的基础上,提高USB数据传输的传输速率,能降低USB数据传输的延迟率、增加数据链路的带宽利用率以及减小计算资源的占用。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的USB数据传输方法的流程示意图;
图2是本发明提供的USB数据传输方法中预设格式的空白数据包的示意图;
图3是USB 3.0协议中各层的结构示意图和数据交互示意图;
图4是本发明提供的USB数据传输方法中组建目标数据包的流程示意图;
图5是本发明提供的USB数据传输方法中数据链路层中主路通信模块的结构示意图以及旁路通信模块的结构示意图;
图6是本发明提供的USB数据传输装置的结构示意图;
图7是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本申请的描述中,术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,本申请的描述中,“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
需要说明的是,人工智能、互联网以及移动端的快速发展给服务器市场带来了的巨大的机遇和挑战,大量的数据存储、数据计算和数据通信都需要有服务器来完成。服务器的构成与微机基本相似,都是由处理器、硬盘、内存、系统总线等组成,但是随着数据计算技术的发展,对信息系统的数据带宽、传输速率和数据安全性等的要求也越来越高。目前与服务器通信的外围设备(例如键盘、鼠标或者其他存储设备等)都是通过USB接口协议与服务器实现互联的,USB接口协议支持热插拔,即插即用且携带方便,越来越被业界客户应用。
USB是一种用于连接电脑与外部设备的串行总线标准,可以用于规范电脑与外部设备的连接和通讯。USB技术作为一种计算机外围互连技术,又称通用串行总线,因其具有易用性、速度快、灵活性、高速率、热插拔、可扩展性和多设备支持的优点,被广泛应用于计算机、电视、音频、视频、存储设备、游戏机等各种电子设备中。
随着人工智能技术和大数据技术的日益发展,视频数据和存储设备不断增加,使得人们对高性能存储容量和高带宽的需求日益提升。
相关技术中,USB技术最初可以提供低速传输速率供外设使用。随着计算机计算能力的发展,计算机能够处理更大量的数据,需要通过USB技术与计算机之间进行交互的数据越来越多。USB 2.0协议可以在提供更快的传输速率(480 Mb/s)的同时,保持了后向兼容性。
随着无线通信技术的发展,无线USB(Wireless USB)技术可以在不使用传统有线USB连接的情况下,通过无线方式将USB设备连接到计算机或其他主机设备。
随着计算机技术的发展,USB技术的应用已经远远超越了作为外设连接计算机的方式。打印机可以利用USB技术直接与相机连接;计算机利用USB技术连接键盘和鼠标。并且,USB On-The-Go(OTG)的定义提供了一种方式,供两个能支持双角色的设备互连并协商哪一个会作为"主机"来操作。
USB作为一种串行总线标准,还被用于许多非传统应用,例如工业自动化。随着技术创新的不断前进,新式设备,媒体格式,以及便宜的大容量存储在不断涌现,对USB数据传输的带宽具有更高的需求。例如,高清摄像机将会具有上百GB的存储内容需要利用USB技术迁移到计算机端供用户编辑,查看以及打包存储。
进一步地,各类电子设备例如数码相机等的存储容量越来越大,从数码相机里下载上百甚至上千个大小为10MB或更大的原始图片将会是一个十分耗时的过程,除非USB数据传输速率得到提高。
USB 3.0协议的最大传输带宽可达到5.0Gbps,USB 3.0协议通过增加更高的传输速率来匹配大容量存储的应用和设备,从而更好地满足对USB数据传输的带宽的需求。因此,USB技术仍然是计算机与外围设备、外围设备与外围设备构成的移动架构之间的连接性问题的最优解。
USB 3.0协议的目标仍然是要使能不同厂商的设备之间在此开放的架构下的互操作,同时维护并利用现有的USB基础设施(设备驱动,软件接口等)。满足产品功能多样性以及市场区分度,而无需保留过时的接口或者丢失兼容性。
随着信息技术的发展,为了满足日益增长的通信和计算需求,USB数据传输已由传统的并列传输方式,演进至高速串行传输,对信息系统的数据处理能力的要求也越来越高。
在USB数据传输中,由于各种干扰的影响,如脉冲干扰,随机噪声干扰和人为干扰等,导致USB数据产生差错。为了能够控制传输过程的差错,需要采用有效措施来控制差错的产生。循环冗余校验码(cyclic redundancy check,简称CRC),是一种能力相当强的检错、纠错码,并且实现编码和检码的电路比较简单,所以USB协议规定针对偶然的误差提供保护,包分帧(packet framing)以及链路命令(link commands)都具有足够的冗余信息来容忍单个比特错误(single-bit errors)。
相关技术中,通常采用循环冗余校验码(cyclic redundancy check,CRC)技术,检测和纠正USB数据传输过程中可能出现的错误。但是,虽然USB3.0协议最高支持5.0Gbps,但是USB3.0协议下进行USB数据传输时的每次发送的数据包大小并不一定相同,此时若采用CRC技术检测和纠正USB数据传输过程中可能出现的错误,则每个数据包均需要重新读取数据包长度,导致协议层数据逻辑复杂,进而导致USB数据传输的传输效率降低、数据传输延迟率升高以及控制器占用空间的增大。并且,传统的USB数据传输方法中USB数据流中的字节位通常包括很多冗余数据,亦对USB数据传输的传输效率产生不良影响。
并且,在进行链路训练和管理、链路初始化和调试的寄存器访问等功能的情况下,由于USB数据传输的通信链路只有一条,此时若进行通信链路的管理和配置,必将中断有效数据传输,导致USB数据传输的带宽利用率下降。
因此,为了在确保USB数据传输的安全性的基础上,提高USB数据的传输速率,以及降低数据传输的延迟率以及减小计算资源的占用,从而降低电子设备之间的大规模通信时间,本发明提供一种USB数据传输方法。本发明提供的USB数据传输方法,通过增加旁路通道和自定义固定格式的数据,简化USB3.0协议数字逻辑,从而在协议层和数据链路层进行优化,实现USB3.0设备工作快速通信,提高整体性能。
图1是本发明提供的USB数据传输方法的流程示意图。下面结合图1描述本发明的USB数据传输方法。如图1所示,该方法包括:步骤101、在USB数据发送端与USB数据接收端有效连接的情况下,获取USB数据发送端拟发送至USB数据接收端的待传输数据流。
需要说明的是,本发明实施例的执行主体为USB数据传输装置。
具体地,USB数据发送端拟发送至USB数据接收端的待传输数据流,是本发明提供的USB数据传输方法的传输对象。基于本发明提供的USB数据传输方法,可以在确保上述待传输数据流的传输安全性的基础上,提高上述待传输数据流的传输速率。
需要说明的是,本发明实施例中的USB数据接收端和USB数据发送端可以是基于实际需求确定的。本发明实施例中对USB数据接收端和USB数据发送端不作具体限定。
可以理解的是,本发明实施例中的USB数据接收端和USB数据发送端均可以为计算机、服务器以及外设设备中的任意一种。其中,外设设备(Peripheral Device)是指与计算机或其他主要设备相连并扩展其功能的设备,外设设备通常用于输入、输出、存储、通信等操作,以满足用户对计算机系统的特定需求。外设设备可以包括但不限于键盘、鼠标、打印机、显示器、扫描仪、数码相机、外部存储设备以及扬声器等。
可以理解的是,本发明实施例中的USB数据发送端与USB数据接收端有效连接,包括USB数据发送端与USB数据接收端之间已通过USB线缆或已通过无线USB技术连接。
本发明实施例中可以通过多种方式获取USB数据发送端拟发送至USB数据接收端的待传输数据流,例如:可以通过数据拦截的方式,获取USB数据发送端拟发送至USB数据接收端的待传输数据流。
步骤102、生成待传输数据流对应的数据包序列,数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包。
具体地,获取USB数据发送端拟发送至USB数据接收端的待传输数据流之后,可以通过对上述待传输数据流进行数据处理,获得上述待传输数据流对应的数据包序列,上述数据包序列中包括多个按照时序顺序排列的目标数据包,且每一目标数据包的格式均为预设格式。
其中,上述数据处理可以包括数据缓存、数据提取、冗余数据剔除以及数据简化中的至少一种。
可以理解的是,由于上述数据包序列中每一目标数据包的格式均为预设格式,因此,上述数据包序列中每一目标数据包的长度均相同。
作为一个可选地实施例,预设格式的空白数据包中包括依次排列的第一长度的空白数据包头、第二长度的空白数据块以及第三长度的空白校验码块依次排列,空白数据包头用于存放用于指示数据包类型的字段,空白数据块用于存放待传输数据流中的待传输数据,空白校验码块用于存放用于对待传输数据进行数据校验的校验码。
具体地,图2是本发明提供的USB数据传输方法中预设格式的空白数据包的示意图。预设格式的空白数据包如图2所示。
需要说明的是,本发明实施例中的第一长度、第二长度以及第三长度可以是基于先验知识和/或实际情况确定的。本发明实施例中对第一长度、第二长度以及第三长度的具体取值不作限定。
相应地,对于上述数据包序列中的任一目标数据包,上述目标数据包中包括依次排列的数据包头、数据块以及校验码块,上述目标数据包中的数据包头中填充有用于指示上述数据包类型的字段,上述目标数据包的数据块中填充有上述待传输数据流中的待传输数据,上述目标数据包的校验码块中填充有用于对上述待传输数据进行数据校验的校验码。
作为一个可选地实施例,第一长度为12字节,第二长度为50字节,第三长度为2个字节。
作为一个可选地实施例,预设格式的空白数据包中数据包头的前目标数量位用于存放指示数据包类型的字段。
具体地,如图2所示,本发明实施例中预设格式的空白数据包中数据包头的前目标数量位用于存放用于指示数据包类型的字段。
需要说明的是,本发明实施例中的目标数量可以根据先验知识和/或实际情况确定。本发明实施例中对目标数量的具体取值不作限定。
可选地,目标数量为5。
需要说明的是,本发明实施例中数据包头除了前目标数量位以外剩余部分的填充内容可以根据用户的需求进行定义,本发明实施例中对数据包头中除了前目标数量位以外剩余部分的填充内容不作具体限定。
作为一个可选地实施例,生成待传输数据流对应的数据包序列,包括:按照USB数据发送端的发送时序顺序,将待传输数据流中的待传输数据依次存储至目标存储空间。
按照存储至目标存储空间的存储时序顺序,依次从目标存储空间中提取第二长度的待传输数据填充至一个预设格式的空白数据包中的数据块中,直至目标存储空间中所有的待传输数据填充至预设格式的空白数据包中的数据块中,获得多个原始数据包,依据每一原始数据包的类型,填充每一原始数据包的数据包头的前目标数量位,依据目标算法生成每一原始数据包对应的校验码,将每一原始数据包对应的校验码填充至每一原始数据包的校验码块内,获得各目标数据包。
具体地,本发明实施例中的目标算法可以是基于先验知识和/或实际情况确定的,用于数据校验的校验算法。例如,本发明实施例中的目标算法可以为循环冗余校验算法、哈希算法等。本发明实施例中对目标算法不作具体限定。
作为一个可选地实施例,依据目标算法生成每一原始数据包对应的校验码,将每一原始数据包对应的校验码填充至每一原始数据包的校验码块内,包括:依据循环冗余校验算法,生成每一原始数据包对应的循环冗余校验码。
将每一原始数据包对应的循环冗余校验码填充至每一原始数据包的校验码块内。
需要说明的是,由于循环冗余校验算法具有计算速度快且占用的存储空间少等优点,因此本发明实施例中采用循环冗余校验算法生成每一原始数据包对应的循环冗余校验码,并将生成的每一原始数据包对应的循环冗余校验码填充至每一原始数据包的校验码块内。
按照填充数据块的时序顺序排列各目标数据包,获得待传输数据流对应的数据包序列。
具体地,获得多个目标数据包之后,可以按照填充数据块的时序顺序排列各目标数据包,进而可以得到上述待传输数据流对应的数据包序列。
作为一个可选地实施例,在按照USB数据发送端的发送时序顺序,将待传输数据流中的待传输数据依次存储至目标存储空间之后,在按照存储至目标存储空间的存储时序顺序,依次从目标存储空间中提取第二长度的待传输数据填充至一个预设格式的空白数据包中的数据块中,直至目标存储空间中所有的待传输数据填充至预设格式的空白数据包中的数据块中,获得多个原始数据包之前,所述方法还包括:从目标存储空间中剔除待传输数据中的冗余数据。
需要说明的是,采用传统的USB数据传输方法进行USB数据传输时,USB数据接收端与USB数据发送端之间USB数据流中的字节位通常包括较多冗余数据,而上述冗余数据会占用USB数据接收端与USB数据发送端之间通信链路的传输带宽,从而降低USB数据传输的传输速率。
因此,本发明实施例中在按照USB数据发送端的发送时序顺序,将待传输数据流中的待传输数据依次存储至目标存储空间之后,可以从目标存储空间中剔除待传输数据中的冗余数据。
具体地,本发明实施例中可以通过多种方式从目标存储空间中剔除待传输数据中的冗余数据,例如本发明实施例中可以通过去重、数据压缩、特征提取以及数据挖掘等方式,从目标存储空间中剔除待传输数据中的冗余数据。
其中,去重可以通过比较数据的内容或特征来确定是否存在重复项,并将重复的数据剔除。常用的去重算法包括但不限于哈希函数、指纹算法等;
数据压缩可以去除数据中的冗余信息,从而减小数据的大小。压缩算法通常利用数据中的重复模式或统计特性来减少存储空间。常用的压缩算法包括LZ77、Huffman编码等。
对于结构化数据或文本数据,特征提取可以通过特征提取的方法来识别和剔除冗余数据。特征提取可以通过选择关键特征、降维等方式来减少数据的冗余度。
数据挖掘可以用于发现数据中的模式和规律,并剔除冗余数据。例如,关联规则挖掘可以识别出频繁出现的组合,进而剔除其中的冗余项。
从目标存储空间中剔除待传输数据中的冗余数据之后,可以按照存储至目标存储空间的存储时序顺序,依次从目标存储空间中提取第二长度的待传输数据填充至一个预设格式的空白数据包中的数据块中,直至目标存储空间中所有的待传输数据填充至预设格式的空白数据包中的数据块中,获得多个原始数据包。
本发明实施例通过按照USB数据发送端的发送时序顺序,将待传输数据流中的待传输数据依次存储至目标存储空间之后,从目标存储空间中剔除待传输数据中的冗余数据,能避免字节位中的冗余数据占用USB数据接收端与USB数据发送端之间通信链路的传输带宽,能进一步提高USB数据传输的传输速率。
步骤103、依次将数据包序列中的各目标数据包发送至USB数据接收端。
具体地,获取USB数据发送端拟发送至USB数据接收端的待传输数据流对应的数据包序列之后,可以按照数据包序列中各目标数据包的实现排列顺序,通过USB数据发送端与USB数据接收端之间的通信链路,将上述数据包序列中的各数据包发送至USB数据接收端。
作为一个可选地实施例,USB数据传输方式基于USB 3.0协议实现。
作为一个可选地实施例,获取USB数据发送端拟发送至USB数据接收端的待传输数据流,是在USB 3.0协议中的物理层完成的;
生成待传输数据流对应的数据包序列,数据包序列中包括多个按照时序顺序排列的目标数据包,是在USB 3.0协议中的协议层和数据链路层完成的;
依次将数据包序列中的各目标数据包发送至USB数据接收端,是在USB 3.0协议中的物理层完成的。
作为一个可选地实施例,USB 3.0协议中物理层、数据链路层和协议层执行的具体步骤包括:物理层获取待传输数据流,并将待传输数据流发送至数据链路层;
数据链路层在接收到物理层发送的待传输数据流的情况下,数据链路层将待传输数据流中的待传输数据依次存储至目标存储空间;
协议层按照存储至目标存储空间的存储时序顺序,依次从目标存储空间中提取第二长度的待传输数据填充至一个预设格式的空白数据包中的数据块中,直至目标存储空间中所有的待传输数据填充至预设格式的空白数据包中的数据块中,获得多个原始数据包,依据每一原始数据包的类型,填充每一原始数据包的数据包头的前目标数量位,依据目标算法生成每一原始数据包对应的校验码,将每一原始数据包对应的校验码填充至每一原始数据包的校验码块内,获得各目标数据包,按照填充数据块的时序顺序排列各目标数据包,获得数据包序列,并将数据包序列发送至数据链路层;
数据链路层在接收到数据包序列的情况下,将数据包序列发送至物理层;
物理层在接收到数据包序列的情况下,依次将数据包序列中的各目标数据包发送至USB数据接收端。
需要说明的是,本发明提供的USB数据传输方法应用于USB 3.0协议下。
图3是USB 3.0协议中各层的结构示意图和数据交互示意图。如图3所示USB 3.0协议中物理层(Physical Layer)是USB 3.0协议的最底层,物理层定义了超高速总线信号技术,实现链路chip to chip的连接,具备了数据传输、编解码、数据时钟恢复、弹性缓冲等功能。数据链路层(Link Layer)是基于数据包和链路命令进行链路连接,可以实现两个链路伙伴之间的通信。协议层(Protocol Layer)在链路层能确保数据包的正确传输的前提下,主要负责管理主机和设备之间end to end的数据交流。USB 3.0协议中的分层结构即方便标准化,又方便扩展。
图4是本发明提供的USB数据传输方法中组建目标数据包的流程示意图。组建目标数据包的具体流程如图4所示。
而本发明提供的USB数据传输方法在USB 3.0协议中协议层和数据链路层做出适当改变,不对物理层进行改动,从而简化数据处理逻辑复杂度,实现信息数据更快速的处理和通信,保证了USB设备之间数据传输的传输速率和链路数据的完整性。
本发明实施例中通过将USB数据发送端拟发送至USB数据接收端的待传输数据流,转化为多个按照时序顺序排列的、格式相同且长度相同的数据包之后,按照数据包序列中各数据包的时序排列顺序,依次将数据包序列中的每一数据包发送至USB数据接收端,能统一USB数据发送端与USB数据接收端之间的数据流,能简化数据控制逻辑,能避免采用循环冗余校验码技术进行数据校验时需要重新读取数据包长度,能降低协议层和数据链路层的逻辑复杂度,能提高数据处理速度,能在确保USB数据传输的安全性以及未增加设计复杂性的基础上,提高USB数据传输的传输速率,能降低USB数据传输的延迟率、增加数据链路的带宽利用率以及减小计算资源的占用。
作为一个可选地实施例,依次将数据包序列中的各目标数据包发送至USB数据接收端之前,所述方法还包括:构建USB数据发送端与USB数据接收端之间的主路通信链路和旁路通信链路。
需要说明的是,传统的USB数据传输方法中,USB数据传输的通信链路只有一条,若上述通信链路出现异常或进行通路链路的管理和配置,会造成USB数据传输的中断,影响用户感知。
因此,本发明实施例中通过在按照数据包序列中各数据包的时序排列顺序,依次将数据包序列中的数据包发送至USB数据接收端之前,构建USB数据发送端与USB数据接收端之间的主路通信链路和旁路通信链路,可以在主路通信链路出现异常的情况下,通过旁路通信链路继续USB数据的传输,从而避免通信链路出现异常而造成的USB数据传输中断。
图5是本发明提供的USB数据传输方法中数据链路层中主路通信模块的结构示意图以及旁路通信模块的结构示意图。如图5所示,本发明实施例中数据链路层的通信主要依靠主路通信链路。数据链路层中的主路通信模块包括初始/训练模块、中断/配置模块和数据处理模块组成。其中,为了满足数据处理高带宽的需要,主路通信模块中可以灵活配置多个数据处理模块。数据链路层中的旁路通信模块包括数据处理模块。
作为一个可选地实施例,构建USB数据发送端与USB数据接收端之间的旁路通信链路,包括:向USB数据接收端发送USB数据发送端对应的旁路通信接口信号,以供USB数据接收端响应于旁路通信接口信号,建立与USB数据发送端之间的旁路通信链路。
具体地,本发明实施例中可以通过向USB数据接收端发送旁路通信接口信号的方式,构建USB数据发送端与USB数据接收端之间的旁路通信链路。
作为一个可选地实施例,旁路通信接口信号,包括:输出信号、输出时钟信号、输入信号、输入时钟信号以及输出输入状态信号;输出信号和输入信号用于构建旁路通信链路,输出时钟信号和输入时钟信号用于同步USB数据接收端和USB数据发送端的时钟;输出输入状态信号用于指示旁路通信链路的通信状态。
具体地,本发明实施例中的旁路通信接口信号由输出信号sb_tx、输出时钟信号sb_tx_clk、输入信号sb_rx、输入时钟信号sb_rx_clk以及输出输入状态信息sb_state组成。其中,输出信号sb_tx、输出时钟信号sb_tx_clk、输入信号sb_rx和输入时钟信号sb_rx_clk均为1位宽,输出输入状态信息sb_state为2位宽。
需要说明的是,本发明实施例中的输出信号sb_tx用于将USB串行总线上的数据从USB数据发送端发送到USB数据接收端。输出信号sb_tx可以驱动一个差分输出对,也可以驱动单端输出。
本发明实施例中的输出时钟信号sb_tx_clk可以用于驱动输出信号sb_tx信号进行数据发送。为了确保数据传输的稳定性和可靠性,输出时钟信号sb_tx_clk 信号需要与USB数据接收端的输入时钟信号sb_rx_clk时钟同步。
本发明实施例中的输入信号sb_rx用于将USB串行总线上的数据从USB数据接收端接收到USB数据发送端。输入信号sb_rx信号可以接受一个差分输入对,也可以接受单端输入。
本发明实施例中的输入时钟信号sb_rx_clk用于驱动输入信号sb_rx 信号进行数据接收。为了确保数据传输的稳定性和可靠性,输入时钟信号sb_rx_clk 信号需要与USB数据发送端的输出信号sb_tx_clk时钟同步。
本发明实施例中的输出输入状态信号sb_state用于指示旁路通信链路的通信状态。这个信号通常被用于控制和监测串行总线的操作,例如开始或结束传输,检测传输错误等。
依次将数据包序列中的各目标数据包发送至USB数据接收端,包括:通过主路通信链路,依次将数据包序列中的目标数据包发送至USB数据接收端,并在通过主路通信链路依次将数据包序列中的目标数据包发送至USB数据接收端的过程中,若确定主路通信链路出现异常,则按照数据包序列中剩余未发送的目标数据包的时序排列顺序,通过旁路通信链路,依次将数据包序列中剩余未发送的目标数据包发送至USB数据接收端。
具体地,构建得到USB数据接收端与USB数据发送端之间的主路通信链路和旁路通信链路之后,可以通过主路通信链路依次将数据包序列中的目标数据包发送至USB数据接收端。
本发明实施例中可以在通过主路通信链路依次将数据包序列中的目标数据包发送至USB数据接收端的过程,实时判断主路通信链路是否出现异常。其中,主路通信链路出现异常可以包括但不限于主路通信链路通信中断或出现错误。
若确定主路通信链路出现异常,则可以按照上述数据包序列中剩余未发送的目标数据包的时序排列顺序,通过旁路通信链路,依次将上述数据包序列中剩余未发送的目标数据包发送至USB数据接收端,从而可以在主路通信链路出现异常的情况下,无需通过初始化主路通信链路重新构建主路通信链路,进而无需中断目标数据包的发送。
作为一个可选地实施例,判断主路通信链路是否出现异常,包括:在接收到USB数据接收端发送的错误信息的情况下,确定主路通信链路出现异常;
其中,错误信息用于表示任一目标数据包未通过数据校验,和/或,数据包序列中的任一目标数据包丢失。
具体地,USB数据接收端在接收到上述数据包序列中的任一目标数据包之后,可以基于上述目标数据包中的校验码,对上述目标数据包中的待传输数据进行校验。
在基于上述目标数据包中的校验码确定上述目标数据包中的待传输数据未通过校验的情况下,可以确定上述目标数据包出现了传输错误,USB数据接收端将返回用于表示上述目标数据包未通过数据校验的错误信息。
USB数据接收端在确定上述数据包序列中的任一目标数据包丢失的情况下,USB数据接收端将返回用于表示上述目标数据包丢失的错误信息。
而出现上述数据包序列中的任一目标数据包丢失和/或未通过数据校验,表示USB数据接收端与USB数据发送端之间的主路通信链路出现异常。
作为一个可选地实施例,判断主路通信链路是否出现异常,包括:在主路通信链路中的数据传输速率小于速率阈值,和/或,主路通信链路的传输延迟率大于延迟率阈值的情况下,确定主路通信链路出现异常。
具体地,若USB数据发送端与USB数据接收端之间的主路通信链路的数据传输速率小于速率阈值,和/或,上述主路通信链路的传输延迟率大于延迟率阈值,则可以说明USB数据接收端与USB数据发送端之间的主路通信链路出现异常,因此,本发明实施例中在USB数据发送端与USB数据接收端之间的主路通信链路的数据传输速率小于速率阈值,和/或,上述主路通信链路的传输延迟率大于延迟率阈值的情况下,确定上述主路通信链路出现异常。
需要说明的是,本发明实施例中的速率阈值和延迟率阈值的取值可以根据先验知识和/或实际情况确定。本发明实施例中对速率阈值和延迟率阈值的具体取值不作限定。
本发明实施例通过在按照数据包序列中各数据包的时序排列顺序,依次将数据包序列中的数据包发送至USB数据接收端之前,构建USB数据发送端与USB数据接收端之间的主路通信链路和旁路通信链路,在获取到待传输数据流对应的数据包序列之后,通过主路通信链路,依次将数据包序列中的目标数据包发送至USB数据接收端,并在通过主路通信链路依次将数据包序列中的目标数据包发送至USB数据接收端的过程中,若确定主路通信链路出现异常,则按照数据包序列中剩余未发送的目标数据包的时序排列顺序,通过旁路通信链路,依次将数据包序列中剩余未发送的目标数据包发送至USB数据接收端,能在主路通信链路出现异常的情况下,通过旁路通信链路继续目标数据包的传输,能避免单一通信链路出现异常而造成的USB数据传输中断,还能通过构建旁路通信链路保证协议层和数据链路层流量控制和数据完整性,通过定义用于构建旁路通信链路的旁路通信接口信号,能增强USB设备之间的兼容性,减少了协议层设计的复杂性并且增加了数据链路的带宽利用率,还能便于后期进行拓展应用。
图6是本发明提供的USB数据传输装置的结构示意图。下面结合图6对本发明提供的USB数据传输装置进行描述,下文描述的USB数据传输装置与上文描述的本发明提供的USB数据传输方法可相互对应参照。如图6所示,数据流获取模块601、数据包序列获取模块602和数据包发送模块603。
数据流获取模块601,用于在USB数据发送端与USB数据接收端有效连接的情况下,获取USB数据发送端拟发送至USB数据接收端的待传输数据流;
数据包序列获取模块602,用于生成待传输数据流对应的数据包序列,数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;
数据包发送模块603,用于依次将数据包序列中的各目标数据包发送至USB数据接收端。
具体地,数据流获取模块601、数据包序列获取模块602和数据包发送模块603电连接。
本发明实施例中的USB传输装置,通过将USB数据发送端拟发送至USB数据接收端的待传输数据流,转化为多个按照时序顺序排列的、格式相同且长度相同的数据包之后,按照数据包序列中各数据包的时序排列顺序,依次将数据包序列中的每一数据包发送至USB数据接收端,能统一USB数据发送端与USB数据接收端之间的数据流,能简化数据控制逻辑,能避免采用循环冗余校验码技术进行数据校验时需要重新读取数据包长度,能降低协议层和数据链路层的逻辑复杂度,能提高数据处理速度,能在确保USB数据传输的安全性以及未增加设计复杂性的基础上,提高USB数据传输的传输速率,能降低USB数据传输的延迟率、增加数据链路的带宽利用率以及减小计算资源的占用。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行USB数据传输方法,该方法包括:在USB数据发送端与USB数据接收端有效连接的情况下,获取USB数据发送端拟发送至USB数据接收端的待传输数据流;生成待传输数据流对应的数据包序列,数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;依次将数据包序列中的各目标数据包发送至USB数据接收端。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
作为一个可选地实施例,电子设备包括计算机和外设设备。
具体地,在上述电子设备为计算机或外设设备的情况下,若上述电子设备需要向其他电子设备发送USB数据或其他电子设备需要向上述电子设备发送USB数据,则上述电子设备中的处理器可以通过执行本发明提供的USB数据传输方法实现与其他电子设备之间的USB数据传输。
基于上述各实施例的内容,一种USB数据传输系统,包括:USB数据发送端、USB数据接收端以及如上所述的电子设备;USB数据发送端与电子设备电连接;USB数据接收端与电子设备电连接。
具体地,本发明实施例中的USB数据发送端和USB数据发送端通过如上的电子设备实现USB数据传输。
基于上述各实施例的内容,一种USB数据传输系统,包括:USB数据发送端和USB数据接收端;
其中,USB数据发送端为如上所述的电子设备,或者,USB数据接收端为如上所述的电子设备。
可以理解的是,本发明实施例中的USB数据发送端可以为计算机或外设设备,USB数据发送端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上所述的USB数据传输方法。
或者,本发明实施例中的USB数据接收端可以为计算机或外设设备,USB数据接收端包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上的USB数据传输方法。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的USB数据传输方法,该方法包括:在USB数据发送端与USB数据接收端有效连接的情况下,获取USB数据发送端拟发送至USB数据接收端的待传输数据流;生成待传输数据流对应的数据包序列,数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;依次将数据包序列中的各目标数据包发送至USB数据接收端。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的USB数据传输方法,该方法包括:在USB数据发送端与USB数据接收端有效连接的情况下,获取USB数据发送端拟发送至USB数据接收端的待传输数据流;生成待传输数据流对应的数据包序列,数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;依次将数据包序列中的各目标数据包发送至USB数据接收端。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (16)
1.一种USB数据传输方法,其特征在于,包括:
在USB数据发送端与USB数据接收端有效连接的情况下,获取所述USB数据发送端拟发送至所述USB数据接收端的待传输数据流;
生成所述待传输数据流对应的数据包序列,所述数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;
依次将所述数据包序列中的各目标数据包发送至USB数据接收端;
其中,所述USB数据接收端为计算机、服务器以及外设设备中的任意一种;所述USB数据发送端为计算机、服务器以及外设设备中的任意一种;所述外设设备是指与计算机或其他主要设备相连并扩展其功能的设备;
所述预设格式的空白数据包中包括依次排列的第一长度的空白数据包头、第二长度的空白数据块以及第三长度的空白校验码块依次排列,所述空白数据包头用于存放用于指示数据包类型的字段,所述空白数据块用于存放所述待传输数据流中的待传输数据,所述空白校验码块用于存放用于对所述待传输数据进行数据校验的校验码;
所述依次将所述数据包序列中的各目标数据包发送至USB数据接收端之前,所述方法还包括:
构建所述USB数据发送端与所述USB数据接收端之间的主路通信链路和旁路通信链路;
所述依次将所述数据包序列中的各目标数据包发送至USB数据接收端,包括:
通过所述主路通信链路,依次将所述数据包序列中的目标数据包发送至USB数据接收端,并在通过所述主路通信链路依次将所述数据包序列中的目标数据包发送至USB数据接收端的过程中,若确定所述主路通信链路出现异常,则按照所述数据包序列中剩余未发送的目标数据包的时序排列顺序,通过所述旁路通信链路,依次将所述数据包序列中剩余未发送的目标数据包发送至USB数据接收端;
所述预设格式的空白数据包中数据包头的前目标数量位用于存放指示数据包类型的字段;
所述生成所述待传输数据流对应的数据包序列,包括:
按照所述USB数据发送端的发送时序顺序,将所述待传输数据流中的待传输数据依次存储至目标存储空间;
按照存储至所述目标存储空间的存储时序顺序,依次从所述目标存储空间中提取所述第二长度的待传输数据填充至一个所述预设格式的空白数据包中的数据块中,直至所述目标存储空间中所有的待传输数据填充至所述预设格式的空白数据包中的数据块中,获得多个原始数据包,
依据每一所述原始数据包的类型,填充每一所述原始数据包的数据包头的前目标数量位,
依据目标算法生成每一所述原始数据包对应的校验码,将每一所述原始数据包对应的校验码填充至每一所述原始数据包的校验码块内,获得各所述目标数据包;
按照填充数据块的时序顺序排列各所述目标数据包,获得所述待传输数据流对应的数据包序列。
2.根据权利要求1所述的USB数据传输方法,其特征在于,构建所述USB数据发送端与所述USB数据接收端之间的旁路通信链路,包括:
向所述USB数据接收端发送所述USB数据发送端对应的旁路通信接口信号,以供所述USB数据接收端响应于所述旁路通信接口信号,建立与所述USB数据发送端之间的旁路通信链路。
3.根据权利要求2所述的USB数据传输方法,其特征在于,所述旁路通信接口信号,包括:输出信号、输出时钟信号、输入信号、输入时钟信号以及输出输入状态信号;所述输出信号和所述输入信号用于构建所述旁路通信链路,所述输出时钟信号和所述输入时钟信号用于同步所述USB数据接收端和所述USB数据发送端的时钟;所述输出输入状态信号用于指示所述旁路通信链路的通信状态。
4.根据权利要求1所述的USB数据传输方法,其特征在于,所述依据目标算法生成每一所述原始数据包对应的校验码,将每一所述原始数据包对应的校验码填充至每一所述原始数据包的校验码块内,获得各所述目标数据包,包括:
依据循环冗余校验算法,生成每一所述原始数据包对应的循环冗余校验码;
将每一所述原始数据包对应的循环冗余校验码填充至所述每一所述原始数据包的校验码块内。
5.根据权利要求1所述的USB数据传输方法,其特征在于,在所述按照所述USB数据发送端的发送时序顺序,将所述待传输数据流中的待传输数据依次存储至目标存储空间之后,在所述按照存储至所述目标存储空间的存储时序顺序,依次从所述目标存储空间中提取所述第二长度的待传输数据填充至一个所述预设格式的空白数据包中的数据块中,直至所述目标存储空间中所有的待传输数据填充至所述预设格式的空白数据包中的数据块中,获得多个原始数据包之前,所述方法还包括:
从所述目标存储空间中剔除所述待传输数据中的冗余数据。
6.根据权利要求1所述的USB数据传输方法,其特征在于,所述USB数据传输方式基于USB 3.0协议实现。
7.根据权利要求6所述的USB数据传输方法,其特征在于,所述获取所述USB数据发送端拟发送至所述USB数据接收端的待传输数据流,是在USB 3.0协议中的物理层完成的;
所述生成所述待传输数据流对应的数据包序列,是在USB 3.0协议中的协议层和数据链路层完成的;
所述依次将所述数据包序列中的各目标数据包发送至USB数据接收端,是在USB 3.0协议中的物理层完成的。
8.根据权利要求7所述的USB数据传输方法,其特征在于,USB 3.0协议中物理层、数据链路层和协议层执行的具体步骤包括:
所述物理层获取所述待传输数据流,并将所述待传输数据流发送至所述数据链路层;
所述数据链路层在接收到所述物理层发送的所述待传输数据流的情况下,所述数据链路层将所述待传输数据流中的待传输数据依次存储至目标存储空间;
所述协议层按照存储至所述目标存储空间的存储时序顺序,依次从所述目标存储空间中提取所述第二长度的待传输数据填充至一个所述预设格式的空白数据包中的数据块中,直至所述目标存储空间中所有的待传输数据填充至所述预设格式的空白数据包中的数据块中,获得多个原始数据包,依据每一所述原始数据包的类型,填充每一所述原始数据包的数据包头的前目标数量位,依据目标算法生成每一所述原始数据包对应的校验码,将每一所述原始数据包对应的校验码填充至每一所述原始数据包的校验码块内,获得各所述目标数据包,按照填充数据块的时序顺序排列各所述目标数据包,获得所述数据包序列,并将所述数据包序列发送至所述数据链路层;
所述数据链路层在接收到所述数据包序列的情况下,将所述数据包序列发送至所述物理层;
所述物理层在接收到所述数据包序列的情况下,依次将所述数据包序列中的各目标数据包发送至USB数据接收端。
9.根据权利要求1所述的USB数据传输方法,其特征在于,判断所述主路通信链路是否出现异常,包括:
在接收到USB数据接收端发送的错误信息的情况下,确定所述主路通信链路出现异常;
其中,所述错误信息用于表示所述数据包序列中的任一数据包未通过数据校验,和/或,所述数据包序列中的任一数据包丢失。
10.根据权利要求1所述的USB数据传输方法,其特征在于,判断所述主路通信链路是否出现异常,包括:
在所述主路通信链路中的数据传输速率小于速率阈值,和/或,所述主路通信链路的传输延迟率大于延迟率阈值的情况下,确定所述主路通信链路出现异常。
11.一种USB数据传输装置,其特征在于,包括:
数据流获取模块,用于在USB数据发送端与USB数据接收端有效连接的情况下,获取所述USB数据发送端拟发送至所述USB数据接收端的待传输数据流;
数据包序列获取模块,用于生成所述待传输数据流对应的数据包序列,所述数据包序列中包括多个按照时序顺序排列的预设格式的目标数据包;
数据包发送模块,用于依次将所述数据包序列中的各目标数据包发送至USB数据接收端;
其中,所述USB数据接收端为计算机、服务器以及外设设备中的任意一种;所述USB数据发送端为计算机、服务器以及外设设备中的任意一种;所述外设设备是指与计算机或其他主要设备相连并扩展其功能的设备;
所述预设格式的空白数据包中包括依次排列的第一长度的空白数据包头、第二长度的空白数据块以及第三长度的空白校验码块依次排列,所述空白数据包头用于存放用于指示数据包类型的字段,所述空白数据块用于存放所述待传输数据流中的待传输数据,所述空白校验码块用于存放用于对所述待传输数据进行数据校验的校验码;
所述数据包发送模块依次将所述数据包序列中的各目标数据包发送至USB数据接收端之前,还用于:
构建所述USB数据发送端与所述USB数据接收端之间的主路通信链路和旁路通信链路;
所述数据包发送模块依次将所述数据包序列中的各目标数据包发送至USB数据接收端,包括:
通过所述主路通信链路,依次将所述数据包序列中的目标数据包发送至USB数据接收端,并在通过所述主路通信链路依次将所述数据包序列中的目标数据包发送至USB数据接收端的过程中,若确定所述主路通信链路出现异常,则按照所述数据包序列中剩余未发送的目标数据包的时序排列顺序,通过所述旁路通信链路,依次将所述数据包序列中剩余未发送的目标数据包发送至USB数据接收端;
所述预设格式的空白数据包中数据包头的前目标数量位用于存放指示数据包类型的字段;
所述数据包序列获取模块生成所述待传输数据流对应的数据包序列,包括:
按照所述USB数据发送端的发送时序顺序,将所述待传输数据流中的待传输数据依次存储至目标存储空间;
按照存储至所述目标存储空间的存储时序顺序,依次从所述目标存储空间中提取所述第二长度的待传输数据填充至一个所述预设格式的空白数据包中的数据块中,直至所述目标存储空间中所有的待传输数据填充至所述预设格式的空白数据包中的数据块中,获得多个原始数据包,
依据每一所述原始数据包的类型,填充每一所述原始数据包的数据包头的前目标数量位,
依据目标算法生成每一所述原始数据包对应的校验码,将每一所述原始数据包对应的校验码填充至每一所述原始数据包的校验码块内,获得各所述目标数据包;
按照填充数据块的时序顺序排列各所述目标数据包,获得所述待传输数据流对应的数据包序列。
12.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至10任一项所述USB数据传输方法。
13.根据权利要求12所述的电子设备,其特征在于,所述电子设备包括计算机和外设设备。
14.一种USB数据传输系统,其特征在于,包括:USB数据发送端、USB数据接收端以及如权利要求12所述的电子设备;所述USB数据发送端与所述电子设备电连接;所述USB数据接收端与所述电子设备电连接。
15.一种USB数据传输系统,其特征在于,包括:USB数据发送端和USB数据接收端;
其中,所述USB数据发送端为如权利要求13所述的电子设备,或者,所述USB数据接收端为如权利要求13所述的电子设备。
16.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述USB数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311850453.9A CN117493248B (zh) | 2023-12-29 | 2023-12-29 | Usb数据传输方法、装置、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311850453.9A CN117493248B (zh) | 2023-12-29 | 2023-12-29 | Usb数据传输方法、装置、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117493248A CN117493248A (zh) | 2024-02-02 |
CN117493248B true CN117493248B (zh) | 2024-04-05 |
Family
ID=89685342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311850453.9A Active CN117493248B (zh) | 2023-12-29 | 2023-12-29 | Usb数据传输方法、装置、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493248B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136722A (zh) * | 2007-10-15 | 2008-03-05 | 北京交通大学 | 一种适用于高速移动终端的数据发送方法及传输设备 |
CN110769465A (zh) * | 2019-10-24 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 数据传输方法及装置、电子设备及可读存储介质 |
CN113986785A (zh) * | 2021-11-03 | 2022-01-28 | 深圳市鑫鑫达电子有限公司 | 一种基于usb数据传输的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261175B2 (en) * | 2008-11-14 | 2012-09-04 | Intel Mobile Communications GmbH | Method and apparatus for performing a CRC check |
-
2023
- 2023-12-29 CN CN202311850453.9A patent/CN117493248B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136722A (zh) * | 2007-10-15 | 2008-03-05 | 北京交通大学 | 一种适用于高速移动终端的数据发送方法及传输设备 |
CN110769465A (zh) * | 2019-10-24 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 数据传输方法及装置、电子设备及可读存储介质 |
CN113986785A (zh) * | 2021-11-03 | 2022-01-28 | 深圳市鑫鑫达电子有限公司 | 一种基于usb数据传输的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117493248A (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210152183A1 (en) | Data compression method, data decompression method, and related apparatus, electronic device, and system | |
CN109426636B (zh) | 一种fpga片间高位宽数据传输的方法及装置 | |
US11023412B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
US8370716B2 (en) | USB device and correction method thereof | |
US9252812B2 (en) | Low latency serial data encoding scheme for enhanced burst error immunity and long term reliability | |
CN113176850B (zh) | 基于srio接口的共享存储盘及其存取方法 | |
WO2017012517A1 (zh) | 混合物理编码子层以及数据发送、接收方法、存储介质 | |
EP3229138A1 (en) | Method and device for data backup in a storage system | |
EP4092970A1 (en) | Monitoring controller area network (can) xl nodes | |
CN1322444C (zh) | 传输和处理命令与数据的方法 | |
TWI445374B (zh) | 遠端管理系統及遠端管理方法 | |
CN115395961A (zh) | 基于联合中间件的数据无损压缩及加密传输方法 | |
CN117493248B (zh) | Usb数据传输方法、装置、系统、电子设备及存储介质 | |
CN106716392B (zh) | 用于串行通信的栈定时调整 | |
CN110381050B (zh) | 数据包的多协议转化校验方法和装置 | |
JP3996928B2 (ja) | 破損データを処理する方法 | |
US9710420B2 (en) | System and method for improving the efficiency of a serial interface protocol | |
CN108347292A (zh) | 一种物理编码子层的数据编解码方法和装置 | |
CN115129509B (zh) | 一种数据传输方法、装置、介质 | |
CN112312396B (zh) | 一种NoC追踪数据的生成方法及相关装置 | |
JP2024531529A (ja) | チップ間インターフェースのためのオンデマンドパケット化 | |
US8331788B2 (en) | Encapsulation scheme for optical over Ethernet | |
US20050154968A1 (en) | Detection of errors | |
WO2024001874A1 (zh) | 模式协商方法、装置、设备、系统及计算机可读存储介质 | |
CN115378756B (zh) | 监控控制器域网络(can)xl节点 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |