CN116644016A - 一种数据传输方法、装置及设备 - Google Patents
一种数据传输方法、装置及设备 Download PDFInfo
- Publication number
- CN116644016A CN116644016A CN202310353734.7A CN202310353734A CN116644016A CN 116644016 A CN116644016 A CN 116644016A CN 202310353734 A CN202310353734 A CN 202310353734A CN 116644016 A CN116644016 A CN 116644016A
- Authority
- CN
- China
- Prior art keywords
- usb
- data
- read
- request
- connection device
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000004044 response Effects 0.000 claims abstract description 175
- 230000008569 process Effects 0.000 claims description 44
- 230000003287 optical effect Effects 0.000 claims description 33
- 239000000523 sample Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 12
- 230000003993 interaction Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000000977 initiatory effect Effects 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 230000002035 prolonged effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 241000699666 Mus <mouse, genus> Species 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004088 simulation 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- 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]
Abstract
本申请提供一种数据传输方法、装置及设备,该方法包括:第二连接设备接收主机设备发送的第一读取请求,模拟USB设备向主机设备返回针对第一读取请求的第一读取响应;其中,若第二连接设备已存储待读取数据,则第一读取响应包括待读取数据,若第二连接设备未存储待读取数据,则第一读取响应为否定应答;第一连接设备模拟主机设备向USB设备发送第二读取请求,接收USB设备针对第二读取请求返回的第二读取响应,所述第二读取响应包括待读取数据;将待读取数据发送给第二连接设备,由第二连接设备存储待读取数据。通过本申请的技术方案,能够保证主机设备和远距离的USB设备之间的数据传输稳定,提升远距离传输速率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置及设备。
背景技术
USB(Universal Serial Bus,通用串行总线)是一种外部总线标准,用于规范主机设备(如智能手机、个人计算机等)与外部设备(可以称为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接口与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数据传输效率。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的数据传输方法的流程示意图;
图2是本申请一种实施方式中的数据传输系统的结构示意图;
图3是本申请一种实施方式中的坐席管理系统的结构示意图;
图4是本申请一种实施方式中的信息协商过程的流程示意图;
图5是本申请一种实施方式中的数据读取过程的流程示意图;
图6是本申请一种实施方式中的数据读取过程的流程示意图;
图7是本申请一种实施方式中的数据写入过程的流程示意图;
图8是本申请一种实施方式中的数据写入过程的流程示意图;
图9A是本申请一种实施方式中的数据传输装置的结构示意图;
图9B是本申请一种实施方式中的数据传输装置的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种数据传输方法,数据传输系统可以包括但不限于第一连接设备、第二连接设备、USB设备和主机设备(如智能手机、个人计算机等)。第一连接设备通过USB接口与USB设备连接,第二连接设备通过USB接口与主机设备连接,第一连接设备与第二连接设备通过网口或者光口连接。参见图1所示,为该数据传输方法的流程示意图,该方法可以包括:
步骤101、第二连接设备接收主机设备发送的第一读取请求,并模拟USB设备向主机设备返回针对该第一读取请求的第一读取响应;其中,若第二连接设备已存储待读取数据,则该第一读取响应可以包括待读取数据,若第二连接设备未存储待读取数据,则该第一读取响应可以为否定应答NAK。
步骤102、第一连接设备模拟主机设备向USB设备发送第二读取请求,并接收USB设备针对该第二读取请求返回的第二读取响应,该第二读取响应可以包括待读取数据(如USB设备发送给主机设备的USB数据)。
步骤103、第一连接设备将该待读取数据发送给第二连接设备,由第二连接设备存储该待读取数据。这样,第二连接设备在接收到第一读取请求之后,由于已存储待读取数据,因此,第一读取响应可以包括该待读取数据。
在一种可能的实施方式中,第二连接设备还可以接收主机设备发送的第一写入请求,并模拟USB设备向主机设备返回针对第一写入请求的肯定应答ACK,并将第一写入请求发送给第一连接设备;其中,该第一写入请求可以包括待写入数据(如主机设备发送给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存储设备采用指定类型协议与主机设备通信,指定类型协议可以是Bulk Only协议,也可以是其它协议,对此不做限制,则由主机设备通过命令块包发起数据请求。
示例性的,若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线需要在指定长度范围内才可以使用,如USB线为几米。在某些特殊应用场合,要求USB设备与主机设备之间的距离为几十米或几百米,这样,需要延长USB线的长度,而如果延长USB线的长度,则会造成USB数据传输不稳定,USB数据传输失败。
针对上述发现,本申请实施例中提出一种数据传输方法,该数据传输方法可以应用于数据传输系统。参见图2所示,为数据传输系统的结构示意图,数据传输系统可以包括第一连接设备、第二连接设备、USB设备和主机设备。由于第二连接设备与主机设备之间的距离比较近,在USB设备与主机设备之间传输数据时,可以由第二连接设备模拟USB设备与主机设备交互数据,从而保证数据传输稳定,能够成功传输数据。由于第一连接设备与USB设备之间的距离比较近,在USB设备与主机设备之间传输数据时,可以由第一连接设备模拟主机设备与USB设备交互数据,从而保证数据传输稳定,能够成功传输数据。
USB设备可以包括但不限于USB存储设备(如大容量存储设备等)或者USB功能设备(如HID设备、Video/audio设备等),USB存储设备可以包括U盘、固态硬盘等,USB功能设备可以包括摄像头、麦克风、键盘、鼠标等,对此USB设备的类型不做限制,只要是支持USB功能的设备即可。
第一连接设备可以称为USB设备侧连接设备,第一连接设备通过USB接口与USB设备连接,第一连接设备可以为功能模块集成在已有设备上,也可以为独立设备。第一连接设备可以包括USB物理模块、处理器模块、网口物理模块/光口物理模块(若第一连接设备与第二连接设备通过网口连接,则为网口物理模块,若第一连接设备与第二连接设备通过光口连接,则为光口物理模块)。
USB物理模块为USB数据(如USB串行和并行数据)的转换模块,用于实现USB数据的封装和解析功能,从USB设备读取USB数据,将USB数据发送给USB设备。处理器模块可以包括MCU(Microcontroller Unit,微控制单元)、ARM(Advanced RISC Machine,高级精简指令集)、CPU(Central Processing Unit,中央处理单元)、FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)等,处理器模块用于实现数据处理。网口物理模块/光口物理模块为网络数据(如串行和并行网络数据)的转化模块,用于实现网络数据的封装和解析功能,比如说,网口物理模块用于将USB数据转换为网口协议的网络数据,或,将网口协议的网络数据转换为USB数据,光口物理模块用于将USB数据转换为光口协议的网络数据,或,将光口协议的网络数据转换为USB数据。
第一连接设备可以包括一个处理器模块,也可以包括多个处理器模块,能够完成USB物理接口转换、网口/光口数据转换和数据控制等功能。USB物理模块和处理器模块可以单独部署,也可以集成在同一个模块,如第一连接设备可以包括USB控制器模块,USB控制器模块集成USB物理模块和处理器模块。
主机设备可以包括但不限于智能手机、个人计算机、服务器等,对此主机设备的类型不做限制,只要是支持USB功能的主机设备即可。
第二连接设备可以称为主机设备侧连接设备,第二连接设备通过USB接口与主机设备连接,第二连接设备可以为功能模块集成在已有设备上,也可以为独立设备。第二连接设备可以包括USB物理模块、处理器模块、网口物理模块/光口物理模块(若第一连接设备与第二连接设备通过网口连接,则为网口物理模块,若第一连接设备与第二连接设备通过光口连接,则为光口物理模块)。
USB物理模块为USB数据的转换模块,用于实现USB数据的封装和解析功能。处理器模块包括MCU、ARM、CPU、ASIC、FPGA等,处理器模块用于实现数据处理,第二连接设备包括一个处理器模块或多个处理器模块,能够完成USB物理接口转换、网口/光口数据转换和数据控制等功能。网口物理模块/光口物理模块为网络数据的转化模块,用于实现网络数据的封装和解析功能。USB物理模块和处理器模块可以单独部署,或集成在同一个模块,如第二连接设备包括USB控制器模块,USB控制器模块集成USB物理模块和处理器模块。
第一连接设备与第二连接设备可以通过网口连接,为了实现更远距离的连接,第一连接设备与第二连接设备之间可以通过一个或者多个交换机连接。或者,第一连接设备与第二连接设备可以通过光口连接,为了实现更远距离的连接,第一连接设备与第二连接设备之间可以通过一个或者多个交换机连接。
在一种可能的实施方式中,数据传输方法可以应用于坐席管理系统,也可以应用于其它系统,对此不做限制,只要是需要远距离传输USB数据的系统即可,即USB设备与主机设备之间的距离比较远。当然,在USB设备与主机设备之间的距离比较近时,也可以采用本实施例中的数据传输方法。
为了方便描述,以坐席管理系统为例进行说明,坐席管理系统可以包括但不限于管理子系统(如机房)、交换子系统和坐席子系统。管理子系统用于获取视频图像,并通过交换子系统将视频图像发送给坐席子系统。交换子系统用于将管理子系统的视频图像发送给坐席子系统,以使坐席子系统显示视频图像,并将坐席子系统的控制数据发送给管理子系统,以通过控制数据对管理子系统进行控制。坐席子系统用于获取控制数据(如键盘的操作数据和/或鼠标的操作数据等),并通过交换子系统将该控制数据发送给管理子系统。
管理子系统可以包括但不限于主机设备和输入设备(如KVM输入板),主机设备可以获取视频图像,并将视频图像发送给输入设备。输入设备是主机设备与输出设备的桥接者,用于将视频图像转发给输出设备,比如说,对视频图像进行编码,将码流转发给输出设备。输入设备也可以接收来自输出设备的控制数据,并将控制数据转发给主机设备,以通过控制数据对主机设备进行控制。
交换子系统可以包括但不限于至少一个交换机,交换机用于传输管理子系统的视频图像,比如说,输入设备可以将视频图像发送给交换机,由交换机将视频图像转发给输出设备。交换机用于传输坐席子系统的控制数据,比如说,输出设备可以将控制数据发送给交换机,由交换机将控制数据发送给输入设备。
坐席子系统可以采用分布式部署,即可以同时部署多个坐席子系统,针对每个坐席子系统,坐席子系统可以包括显示设备、输出设备(如KVM输出板)、操作设备和USB设备。显示设备是显示器或者显示屏幕等,显示设备包括至少一个显示窗口,这些显示窗口能够显示主机设备发送的视频图像,操作设备可以对显示窗口进行操作,输出设备可以获取操作设备对显示窗口进行操作时的操作数据,并基于该操作数据对显示窗口进行操作,实现显示窗口的控制。操作设备还可以对管理子系统的主机设备进行操作,输出设备可以获取操作设备对主机设备进行操作时的控制数据,并将控制数据发送给管理子系统的输入设备,输入设备将控制数据转发给主机设备,基于控制数据对主机设备进行控制,实现主机设备的远程控制。输出设备还可以接收输入设备发送的视频图像,并将视频图像发送给显示设备,以通过显示设备的显示窗口显示该视频图像。
参见图3所示,为坐席管理系统的结构示意图,管理子系统可以包括主机设备和输入设备,主机设备通过USB接口与输入设备连接,且主机设备通过HDMI((High DefinitionMultimedia Interface,高清多媒体接口)与输入设备连接。坐席子系统可以包括显示设备、输出设备、操作设备和USB设备,输出设备通过HDMI与显示设备连接,输出设备通过USB接口与操作设备(如键盘、鼠标等)连接,输出设备通过USB接口与USB设备(如U盘、摄像头等)连接。在输出设备通过USB接口与操作设备连接时,也可以将操作设备称为USB设备。输入设备与输出设备之间通过交换子系统(交换机)连接。
在坐席管理系统中,第一连接设备可以为输出设备,即第一连接设备作为功能模块集成在输出设备,输出设备通过USB接口连接的设备称为USB设备,如键盘、鼠标、U盘、摄像头等。第二连接设备可以为输入设备,即第二连接设备作为功能模块集成在输入设备,输入设备通过USB接口连接的设备称为主机设备。此外,第一连接设备与第二连接设备之间通过网口或光口连接。
本申请实施例中,涉及USB设备与主机设备之间的信息协商过程、主机设备将USB数据(即待写入数据)写入到USB设备、主机设备从USB设备读取USB数据(即待读取数据)等过程,以下对这些过程进行说明。
第一、USB设备与主机设备之间的信息协商过程。
在USB设备与主机设备之间的信息协商过程中,主机设备需要获取USB设备对应的接口类型和描述符信息,并将USB设备对应的配置信息发送给USB设备,以通过该配置信息对USB设备进行配置。参见图4所示,为USB设备与主机设备之间的信息协商过程的流程示意图,该过程可以包括:
步骤1、USB设备接入到第一连接设备,即USB设备连入第一连接设备。
步骤2.1、在USB设备接入时,第一连接设备获取USB设备对应的接口类型,如第一连接设备与USB设备进行速率握手,得到USB设备对应的接口类型。
示例性的,第一连接设备在感知到USB设备连入第一连接设备时,第一连接设备自动与USB设备进行速率握手,获知USB设备对应的接口类型,该接口类型可以如USB3.0、USB2.0高速、USB2.0全速、USB2.0低速等接口类型。
其中,针对每个接口类型来说,该接口类型可以对应最高支持传输速率,如USB3.0对应的最高支持传输速率为500MB/s,USB2.0高速对应的最高支持传输速率为60MB/s。因此,通过速率握手可以获知USB设备所支持的接口类型,从而获知最高支持传输速率,在主机设备与USB设备之间传输USB数据时,可按照最高支持传输速率传输USB数据(如待写入数据或者待读取数据)。
步骤2.2、第一连接设备将USB设备对应的接口类型发送给第二连接设备,第二连接设备在接收到USB设备对应的接口类型之后,存储该接口类型。
步骤3.1、第一连接设备获取USB设备对应的设备类别。
示例性的,第一连接设备在感知到USB设备连入第一连接设备时,自动与USB设备进行枚举,通过枚举获取USB设备对应的设备类别,设备类别可以如USB大容量存储类别、视频类别、音频类别、HID类别等。
步骤3.2、第一连接设备基于该设备类别获取USB设备对应的描述符信息。
示例性的,第一连接设备在得到USB设备对应的设备类别之后,继续与USB设备进行枚举,通过枚举从USB设备获取该设备类别对应的描述符信息。
示例性的,USB设备对应的描述符信息可以包括但不限于以下至少一种:USB设备对应的产商信息、USB设备对应的端点信息、USB设备对应的接口信息、USB设备对应的端点最大包长、USB设备对应的数据传输方式、USB设备具备的功能、USB设备具备功能的功能参数,对此描述符信息不做限制。
示例性的,不同设备类别的USB设备对应的描述符信息可能相同,不同设备类别的USB设备对应的描述符信息也可能不同,对此不做限制。
步骤3.3、第一连接设备将USB设备对应的描述符信息发送给第二连接设备,第二连接设备接收到USB设备对应的描述符信息之后,存储该描述符信息。
步骤2.3、第二连接设备将USB设备对应的接口类型和描述符信息发送给主机设备,由主机设备存储USB设备对应的接口类型和描述符信息。
示例性的,第一连接设备将USB设备对应的所有描述符信息均发送给第二连接设备之后,可以向第二连接设备发送结束信号,通过结束信号表示已经传输所有描述符信息。第二连接设备在接收到结束信号之后,可以获知第二连接设备已经存储USB设备对应的接口类型和所有描述符信息,并向主机设备发送使能信号。主机设备在接收到该使能信号之后,获知第二连接设备接入到主机设备,即第二连接设备连入主机设备,相当于USB设备接入到主机设备。
在第二连接设备接入时,主机设备获取USB设备对应的接口类型,如主机设备与第二连接设备进行速率握手,得到USB设备对应的接口类型,该接口类型可以如USB3.0、USB2.0高速、USB2.0全速、USB2.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数据的传输过程不做限制。
步骤3.4、主机设备基于USB设备对应的接口类型和描述符信息生成USB设备对应的配置信息,并将该配置信息发送给第二连接设备。
示例性的,在得到USB设备对应的接口类型和描述符信息之后,在枚举过程中,主机设备还可以生成USB设备对应的配置信息。比如说,配置信息表示启用USB设备的哪些端点和哪些接口,例如,主机设备可以从描述符信息中获取USB设备对应的端点信息、USB设备对应的接口信息,继而决策启用USB设备的哪些端点和哪些接口,并通过配置信息表示启用USB设备的哪些端点和哪些接口。又例如,配置信息表示启用USB设备的哪些功能,例如,主机设备可以从描述符信息中获取USB设备具备的功能、USB设备具备功能的功能参数,继而决策启用USB设备的哪些功能,并通过配置信息表示启用USB设备的哪些功能。又例如,若USB设备为摄像头,则配置信息可以包括摄像头的分辨率、亮度等参数。当然,上述只是配置信息的几个示例,对此不做限制。
步骤3.5、第二连接设备在接收到USB设备对应的配置信息之后,将该配置信息发送给第一连接设备,由第一连接设备将该配置信息发送给USB设备。
USB设备在接收到该配置信息之后,通过该配置信息对USB设备进行配置。比如说,若配置信息表示启用USB设备的哪些端点和哪些接口,则USB设备基于该配置信息启用对应的端点和接口。若配置信息表示启用USB设备的哪些功能,则USB设备基于该配置信息启用对应的功能。若配置信息包括USB设备的分辨率、亮度等参数,则USB设备基于该配置信息设置该分辨率和该亮度。
至此,完成USB设备与主机设备之间的信息协商过程(即握手过程和枚举过程),在此基础上,可以在主机设备与USB设备之间进行USB数据传输过程。
第二、主机设备从USB设备读取USB数据(即待读取数据)的过程。
USB设备可以包括USB存储设备(如大容量存储设备等)或者USB功能设备(如HID设备、Video/audio设备等),若USB设备为USB存储设备(如U盘、固态硬盘),且USB存储设备采用指定类型协议与主机设备通信,指定类型协议可以是Bulk Only协议,对此不做限制,由于USB设备有USB数据读写,数据传输方向是双向,但是,每次读写命令均是由主机设备发起(如数据传输方向、数据量、命令类型等),而后主机设备和USB设备根据命令开始发送或者接收USB数据,在该情况下,可以通过命令块包阶段传输命令,并通过命令状态包阶段表示当前一次传输事务的结束。综上所述,主机设备从USB设备读取USB数据的过程,可以参见图5所示,该过程可以包括命令块包阶段、DATA(数据)阶段和命令状态包阶段。需要注意的是,命令块包阶段和命令状态包阶段均为可选过程,与传输协议有关,若传输协议支持命令块包阶段和命令状态包阶段,则执行命令块包阶段和命令状态包阶段,若传输协议不支持命令块包阶段和命令状态包阶段,则不执行命令块包阶段和命令状态包阶段。图5中以执行命令块包阶段和命令状态包阶段为例,在命令块包阶段,将命令块包请求记为CBW请求,在命令状态包阶段,将命令状态包请求记为CSW请求。
步骤1.1、主机设备向第二连接设备发送CBW请求,由第二连接设备接收主机设备发送的该CBW请求。其中,该CBW请求可以包括但不限于数据传输方向、数据量、数据地址等信息,对此CBW请求的内容不做限制。
步骤1.2、第二连接设备模拟USB设备向主机设备返回针对CBW请求的ACK(肯定应答)。比如说,第二连接设备在接收到CBW请求之后,不需要等待USB设备的反馈,可以将本设备作为USB设备,直接向主机设备返回ACK。
示例性的,第二连接设备在接收到CBW请求之后,还可以对CBW请求进行校验,若校验CBW请求正确,则模拟USB设备向主机设备返回ACK。若校验CBW请求错误,则模拟USB设备向主机设备返回NAK(否定应答),以使主机设备在接收到NAK之后,重新向第二连接设备发送CBW请求。
步骤1.3、第二连接设备将CBW请求发送给第一连接设备。
步骤1.4、第一连接设备在接收到CBW请求之后,可以模拟主机设备向USB设备发送该CBW请求,由USB设备接收该CBW请求。
步骤1.5、USB设备向第一连接设备发送针对该CBW请求返回的ACK,第一连接设备接收USB设备针对CBW请求返回的ACK。
示例性的,USB设备在接收到CBW请求之后,还可以对CBW请求进行校验,若校验CBW请求正确,则向第一连接设备发送针对CBW请求返回的ACK。若校验CBW请求错误,则向第一连接设备发送针对CBW请求返回的NAK,以使第一连接设备在接收到NAK之后,重新向USB设备发送CBW请求。
示例性的,第一连接设备在接收到USB设备返回的ACK之后,第一连接设备不需要将ACK发送给第二连接设备,并通过第二连接设备将ACK发送给主机设备,而是直接结束CBW请求的传输过程,完成CBW阶段。
步骤2.1、主机设备向第二连接设备发送第一读取请求(用于从USB设备获取待读取数据),由第二连接设备接收主机设备发送的第一读取请求。
步骤2.2、第二连接设备在接收到该第一读取请求之后,模拟USB设备向主机设备返回针对该第一读取请求的第一读取响应。示例性的,若第二连接设备已存储有待读取数据,则该第一读取响应可以包括该待读取数据,若第二连接设备未存储有待读取数据,则该第一读取响应可以为NAK。
示例性的,在CBW阶段结束之后,主机设备会主动向第二连接设备发起第一读取请求,第一读取请求用于从USB设备获取待读取数据。第二连接设备在接收到第一读取请求之后,由于还未接收到USB设备返回的待读取数据,因此,第二连接设备模拟USB设备向主机设备返回NAK,以使主机设备在接收到NAK之后,重新向第二连接设备发起第一读取请求,一直到接收到待读取数据。
示例性的,第二连接设备在接收到第一读取请求之后,不会将该第一读取请求转发给第一连接设备,而是结束第一读取请求的传输过程。
步骤2.3、第一连接设备模拟主机设备向USB设备发送第二读取请求。
步骤2.4、USB设备针对该第二读取请求向第一连接设备返回第二读取响应,第一连接设备接收该第二读取响应,该第二读取响应可以包括待读取数据。
步骤2.5、第一连接设备针对第二读取响应向USB设备发送ACK。
步骤2.6、第一连接设备将待读取数据发送给第二连接设备,由第二连接设备接收第一连接设备发送的该待读取数据,并存储该待读取数据。
示例性的,在CBW阶段结束之后,第一连接设备会主动向USB设备发起第二读取请求,第二读取请求用于从USB设备获取待读取数据。第二读取请求是第一连接设备自身生成的读取请求,而不是来自于主机设备的读取请求。
USB设备在接收到第二读取请求之后,可以向第一连接设备发送第二读取响应,且第二读取响应可以包括待读取数据。比如说,在CBW阶段,USB设备可以从CBW请求中解析出数据传输方向、数据量、数据地址等信息,结合接口类型对应的最高支持传输速率、USB设备对应的描述符信息(如端点最大包长、数据传输方式)、USB设备对应的配置信息(启用USB设备的哪些端点和哪些接口、启用USB设备的哪些功能等),USB设备可以发送待读取数据,对此待读取数据的发送过程不做限制。比如说,数据传输方向表示USB设备向第一连接设备发送数据,基于数据量和端点最大包长确定待读取数据的数据包数量,最高支持传输速率表示待读取数据的最大传输速率,数据传输方式表示待读取数据的传输方式,配置信息表示USB设备启用哪些端点和哪些接口,数据地址表示读取数据的物理地址,USB设备基于该数据地址获取待读取数据。
第一连接设备在接收到第二读取响应之后,从第二读取响应中获取待读取数据,对待读取数据进行校验,若校验待读取数据正确,则向USB设备发送针对第二读取响应的ACK。若校验待读取数据错误,则向USB设备发送针对第二读取响应的NAK,以使USB设备在接收到NAK之后,重新发送第二读取响应。
若校验待读取数据正确,第一连接设备还可以将待读取数据发送给第二连接设备,由第二连接设备接收该待读取数据,并存储该待读取数据。
步骤2.7、主机设备向第二连接设备发送第一读取请求(用于从USB设备获取待读取数据),由第二连接设备接收主机设备发送的第一读取请求。
步骤2.8、第二连接设备在接收到该第一读取请求之后,模拟USB设备向主机设备返回针对该第一读取请求的第一读取响应。示例性的,若第二连接设备已存储有待读取数据,则该第一读取响应可以包括该待读取数据,若第二连接设备未存储有待读取数据,则该第一读取响应可以为NAK。
示例性的,在步骤2.2中,主机设备接收到NAK之后,需要继续向第二连接设备发送第一读取请求(可以为多次)。第二连接设备在接收到第一读取请求之后,由于第二连接设备已经接收到USB设备返回的待读取数据(步骤2.6),因此,第二连接设备模拟USB设备向主机设备返回待读取数据。
步骤2.9、主机设备向第二连接设备发送ACK。比如说,主机设备对待读取数据进行校验,若校验正确,则向第二连接设备发送ACK。若校验错误,则向第二连接设备发送NAK,以使第二连接设备重新发送待读取数据。
若USB设备与主机设备之间需要交互多个数据包,则重复上述步骤,一直到完成所有数据包的传输,至此,完成DATA阶段,成功传输待读取数据。
在一种可能的实施方式中,由于主机设备发起读取请求(即第一读取请求)的频率和第一连接设备发起读取请求(即第二读取请求)的频率一致,因此,在步骤2.1-步骤2.2循环多次后,若开始有数据返回,后续主机设备每次请求都会有数据返回,如此可实现主机设备和USB设备最大的读取传输速率。
步骤3.1、第一连接设备模拟主机设备向USB设备发送CSW请求。
步骤3.2、USB设备针对CSW请求向第一连接设备返回CSW应答,第一连接设备接收USB设备针对CSW请求返回的CSW应答。
步骤3.3、第一连接设备针对CSW应答向USB设备返回ACK。
步骤3.4、第一连接设备将CSW应答发送给第二连接设备,由第二连接设备在接收到第一连接设备发送的CSW应答之后,存储该CSW应答。
示例性的,在DATA阶段之后,可以进行CSW阶段,CSW阶段表示当前一次传输事务的结束,由USB设备向主机设备传输。在CSW阶段中,第一连接设备模拟主机设备向USB设备发送CSW请求,USB设备在接收到CSW请求之后,向第一连接设备返回CSW应答。第一连接设备在接收到CSW应答之后,对CSW应答进行校验,若校验正确,则向USB设备返回ACK,若校验错误,则向USB设备返回NAK,以使USB设备重新向第一连接设备返回CSW应答。若校验正确,则第一连接设备还可以将CSW应答发送给第二连接设备。
步骤3.5、主机设备向第二连接设备发送CSW请求。
步骤3.6、第二连接设备接收主机设备发送的CSW请求;若第二连接设备已存储CSW应答,则第二连接设备可以模拟USB设备向主机设备返回针对CSW请求的CSW应答,若第二连接设备未存储CSW应答,则第二连接设备可以模拟USB设备向主机设备返回针对CSW请求的NAK。显然,在步骤3.6中,由于第二连接设备已存储CSW应答,因此,向主机设备返回CSW应答。
步骤3.7、主机设备针对CSW应答向第二连接设备返回ACK。
比如说,主机设备在接收到CSW应答之后,对CSW应答进行校验,若CSW应答校验正确,则向第二连接设备返回ACK,若CSW应答校验错误,则向第二连接设备返回NAK,以使第二连接设备重新向主机设备返回CSW应答。
第三、主机设备从USB设备读取USB数据(即待读取数据)的过程。
USB设备可以包括USB存储设备(如大容量存储设备等)或者USB功能设备(如HID设备、Video/audio设备等),若USB设备为USB功能设备(如摄像头、麦克风、键盘、鼠标等),由于数据传输方向固定为USB设备到主机设备,且数据传输格式和数据传输方式固定(在枚举阶段已协商完毕,即配置信息),主机设备的数据请求间隔固定(主机设备会固定间隔向USB设备请求数据,USB设备按照既定格式返回数据),由USB设备中的端点描述符决定,并在枚举阶段选择了启用的端点(即配置信息)。综上所述,主机设备从USB设备读取USB数据的过程,可以参见图6所示,该过程可以包括DATA阶段。
步骤1.1、主机设备向第二连接设备发送第一读取请求(用于从USB设备获取待读取数据),由第二连接设备接收主机设备发送的第一读取请求。
比如说,在主机设备和第二连接设备的枚举结束后,主机设备可以按照固定频率向第二连接设备请求数据,即向第二连接设备发送第一读取请求。
步骤1.2、第二连接设备在接收到该第一读取请求之后,模拟USB设备向主机设备返回针对该第一读取请求的第一读取响应。示例性的,若第二连接设备已存储有待读取数据,则该第一读取响应可以包括该待读取数据,若第二连接设备未存储有待读取数据,则该第一读取响应可以为NAK。
比如说,第二连接设备在接收到第一读取请求之后,由于还未接收到USB设备返回的待读取数据,
因此,模拟USB设备向主机设备返回NAK,以使主机设备在接收到NAK之后,重新发起第一读取请求,一直到接收到待读取数据。
示例性的,第二连接设备在接收到第一读取请求之后,不会将该第一读取请求转发给第一连接设备,而是结束第一读取请求的传输过程。
步骤1.3、第一连接设备模拟主机设备向USB设备发送第二读取请求。
步骤1.4、USB设备针对该第二读取请求向第一连接设备返回第二读取响应,第一连接设备接收该第二读取响应,该第二读取响应可以包括待读取数据。
步骤1.5、第一连接设备针对第二读取响应向USB设备发送ACK。
步骤1.6、第一连接设备将待读取数据发送给第二连接设备,由第二连接设备接收第一连接设备发送的该待读取数据,并存储该待读取数据。
示例性的,在第一连接设备和USB设备的枚举结束后,第一连接设备可以按照固定频率向USB设备请求数据,即向USB设备发送第二读取请求。USB设备在接收到第二读取请求之后,可以向第一连接设备发送第二读取响应,且第二读取响应可以包括待读取数据。比如说,基于接口类型对应的最高支持传输速率、USB设备对应的描述符信息(如端点最大包长、数据传输方式)、USB设备对应的配置信息(启用USB设备的哪些端点和哪些接口、启用USB设备的哪些功能等),USB设备可以发送待读取数据,对此待读取数据的发送过程不做限制。比如说,在枚举阶段,主机设备已经选择了进行数据交互的端点,该端点的数据请求间隔固定、最大包长固定,又由于最高支持传输速率、数据传输方式、数据传输格式等固定,因此,USB设备可以发送待读取数据。
第一连接设备在接收到第二读取响应之后,从第二读取响应中获取待读取数据,对待读取数据进行校验,若校验待读取数据正确,则向USB设备发送针对第二读取响应的ACK。若校验待读取数据错误,则向USB设备发送针对第二读取响应的NAK,以使USB设备在接收到NAK之后,重新发送第二读取响应。
若校验待读取数据正确,第一连接设备还可以将待读取数据发送给第二连接设备,由第二连接设备接收该待读取数据,并存储该待读取数据。
步骤1.7、主机设备向第二连接设备发送第一读取请求(用于从USB设备获取待读取数据),由第二连接设备接收主机设备发送的第一读取请求。
步骤1.8、第二连接设备在接收到该第一读取请求之后,模拟USB设备向主机设备返回针对该第一读取请求的第一读取响应。示例性的,若第二连接设备已存储有待读取数据,则该第一读取响应可以包括该待读取数据,若第二连接设备未存储有待读取数据,则该第一读取响应可以为NAK。
示例性的,在步骤1.2中,主机设备接收到NAK之后,需要继续向第二连接设备发送第一读取请求(可以为多次)。第二连接设备在接收到第一读取请求之后,由于第二连接设备已经接收到USB设备返回的待读取数据(步骤1.6),因此,第二连接设备模拟USB设备向主机设备返回待读取数据。
步骤1.9、主机设备向第二连接设备发送ACK。比如说,主机设备对待读取数据进行校验,若校验正确,则向第二连接设备发送ACK。若校验错误,则向第二连接设备发送NAK,以使第二连接设备重新发送待读取数据。
若USB设备与主机设备之间需要交互多个数据包,则重复上述步骤,一直到完成所有数据包的传输,至此,完成DATA阶段,成功传输待读取数据。
第四、主机设备向USB设备写入USB数据(即待写入数据)的过程。
USB设备包括USB存储设备或者USB功能设备,若USB设备为USB存储设备(如U盘、固态硬盘),且USB存储设备采用指定类型协议与主机设备通信,指定类型协议可以是BulkOnly协议,可以通过命令块包阶段传输命令,通过命令状态包阶段表示当前一次传输事务的结束。综上所述,主机设备向USB设备写入USB数据的过程,可以参见图7所示,可以包括命令块包阶段、DATA阶段和命令状态包阶段。需要注意的是,命令块包阶段和命令状态包阶段均为可选过程,与传输协议有关,若传输协议支持命令块包阶段和命令状态包阶段,则执行命令块包阶段和命令状态包阶段,若传输协议不支持命令块包阶段和命令状态包阶段,则不执行命令块包阶段和命令状态包阶段。图7中以执行命令块包阶段和命令状态包阶段为例,在命令块包阶段,将命令块包请求记为CBW请求,在命令状态包阶段,将命令状态包请求记为CSW请求。
步骤1.1、主机设备向第二连接设备发送CBW请求,由第二连接设备接收主机设备发送的该CBW请求。其中,该CBW请求可以包括但不限于数据传输方向、数据量、数据地址等信息,对此CBW请求的内容不做限制。
步骤1.2、第二连接设备模拟USB设备向主机设备返回ACK。
步骤1.3、第二连接设备将CBW请求发送给第一连接设备。
步骤1.4、第一连接设备在接收到CBW请求之后,可以模拟主机设备向USB设备发送该CBW请求,由USB设备接收该CBW请求。
步骤1.5、USB设备向第一连接设备发送针对该CBW请求返回的ACK,第一连接设备接收USB设备针对CBW请求返回的ACK。
示例性的,第一连接设备在接收到USB设备返回的ACK之后,第一连接设备不需要将ACK发送给第二连接设备,并通过第二连接设备将ACK发送给主机设备,而是直接结束CBW请求的传输过程,完成CBW阶段。
步骤2.1、主机设备向第二连接设备发送第一写入请求(用于向USB设备写入待写入数据),由第二连接设备接收主机设备发送的第一写入请求。
步骤2.2、第二连接设备在接收到该第一写入请求之后,模拟USB设备向主机设备返回针对第一写入请求的ACK。比如说,第二连接设备对第一写入请求中的待写入数据进行校验,若校验正确,则向主机设备发送ACK。若校验错误,则向主机设备发送NAK,以使第二连接设备重新发送第一写入请求。
步骤2.3、第二连接设备将第一写入请求发送给第一连接设备,该第一写入请求可以包括待写入数据(如主机设备发送给USB设备的USB数据)。
步骤2.4、第一连接设备在接收到第一写入请求之后,模拟主机设备向USB设备发送第二写入请求,该第二写入请求可以包括该待写入数据。
步骤2.5、USB设备在接收到第二写入请求之后,从第二写入请求中获取该待写入数据,并存储该待写入数据。USB设备还可以向第一连接设备发送针对第二写入请求返回的ACK,由第一连接设备接收USB设备针对第二写入请求返回的ACK。比如说,USB设备对第二写入请求中的待写入数据进行校验,若校验正确,则USB设备向第一连接设备发送ACK。若校验错误,则USB设备向第一连接设备发送NAK,以使第二连接设备重新发送第二写入请求。
步骤3.1、主机设备向第二连接设备发送CSW请求。
步骤3.2、第二连接设备接收主机设备发送的CSW请求;若第二连接设备已存储CSW应答,则第二连接设备可以模拟USB设备向主机设备返回针对CSW请求的CSW应答,若第二连接设备未存储CSW应答,则第二连接设备可以模拟USB设备向主机设备返回针对CSW请求的NAK。显然,在步骤3.2中,由于第二连接设备未存储CSW应答,因此,向主机设备返回NAK。
步骤3.3、第一连接设备模拟主机设备向USB设备发送CSW请求。
步骤3.4、USB设备针对CSW请求向第一连接设备返回CSW应答,第一连接设备接收USB设备针对CSW请求返回的CSW应答。
步骤3.5、第一连接设备针对CSW应答向USB设备返回ACK。
步骤3.6、第一连接设备将CSW应答发送给第二连接设备,由第二连接设备在接收到第一连接设备发送的CSW应答之后,存储该CSW应答。
步骤3.7、主机设备向第二连接设备发送CSW请求。
步骤3.8、第二连接设备接收主机设备发送的CSW请求;若第二连接设备已存储CSW应答,则第二连接设备可以模拟USB设备向主机设备返回针对CSW请求的CSW应答,若第二连接设备未存储CSW应答,则第二连接设备可以模拟USB设备向主机设备返回针对CSW请求的NAK。显然,在步骤3.8中,由于第二连接设备已存储CSW应答,因此,向主机设备返回CSW应答。
步骤3.9、主机设备针对CSW应答向第二连接设备返回ACK。
示例性的,图7所示流程可以参见图5所示流程,在此不再重复赘述。
第五、主机设备向USB设备写入USB数据(即待写入数据)的过程。
USB设备可以包括USB存储设备或者USB功能设备,若USB设备为USB功能设备(如摄像头、麦克风、键盘、鼠标等),主机设备向USB设备写入USB数据的过程,可以参见图8所示,可以包括DATA阶段。
步骤1.1、主机设备向第二连接设备发送第一写入请求(用于向USB设备写入待写入数据),由第二连接设备接收主机设备发送的第一写入请求。
步骤1.2、第二连接设备在接收到该第一写入请求之后,模拟USB设备向主机设备返回针对第一写入请求的ACK。比如说,第二连接设备对第一写入请求中的待写入数据进行校验,若校验正确,则向主机设备发送ACK。若校验错误,则向主机设备发送NAK,以使第二连接设备重新发送第一写入请求。
步骤1.3、第二连接设备将第一写入请求发送给第一连接设备,该第一写入请求可以包括待写入数据(如主机设备发送给USB设备的USB数据)。
步骤1.4、第一连接设备在接收到第一写入请求之后,模拟主机设备向USB设备发送第二写入请求,该第二写入请求可以包括该待写入数据。
步骤1.5、USB设备在接收到第二写入请求之后,从第二写入请求中获取该待写入数据,并存储该待写入数据。USB设备还可以向第一连接设备发送针对第二写入请求返回的ACK,由第一连接设备接收USB设备针对第二写入请求返回的ACK。比如说,USB设备对第二写入请求中的待写入数据进行校验,若校验正确,则USB设备向第一连接设备发送ACK。若校验错误,则USB设备向第一连接设备发送NAK,以使第二连接设备重新发送第二写入请求。
由以上技术方案可见,本申请实施例中,虽然USB设备与主机设备之间的距离比较远,但第二连接设备与主机设备之间的距离比较近,在USB设备与主机设备之间传输数据(如待读取数据和/或待写入数据等)时,可以由第二连接设备模拟USB设备向主机设备发送应答,从而使得每次主机设备的请求都能够有及时的响应,减少数据交互超时导致的数据传输失败,保证USB数据传输稳定,能够提高USB数据传输效率。虽然USB设备与主机设备之间的距离比较远,但第一连接设备与USB设备之间的距离比较近,在USB设备与主机设备之间传输数据(如待读取数据和/或待写入数据等)时,不需要等待主机设备发起对USB设备的数据请求,可以直接由第一连接设备模拟主机设备从USB设备获取待读取数据,并将待读取数据快速传输给第一连接设备,在交互过程上减少了数据读取请求的透传时间,从而能够提升主机设备从USB设备的数据读取速率,保证USB数据传输稳定,能够提高USB数据传输效率。
本实施例中,数据传输系统的适用程度更高,可选择的处理器模块和USB物理模块更多,适用于USB3.0及以上接口的开发,只要USB物理模块支持即可。数据传输系统的不仅能够支持USB大容量存储设备(U盘、固态硬盘)的连接,同样适用于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设备连接,第二连接设备通过USB接口与主机设备连接,第一连接设备与第二连接设备通过网口或光口连接,所述装置应用于第二连接设备,参见图9A所示,为该装置的结构示意图,该装置包括:
接收模块911,用于接收主机设备发送的第一读取请求;发送模块912,用于模拟USB设备向主机设备返回针对第一读取请求的第一读取响应;其中,若第二连接设备已存储待读取数据,则第一读取响应包括所述待读取数据,若第二连接设备未存储待读取数据,则第一读取响应为否定应答;所述接收模块911,还用于接收第一连接设备发送的待读取数据,并存储所述待读取数据,所述待读取数据是USB设备发送给第一连接设备;和/或,
所述接收模块911,还用于接收主机设备发送的第一写入请求;所述发送模块912,还用于模拟USB设备向主机设备返回针对所述第一写入请求的肯定应答,将所述第一写入请求发送给第一连接设备;其中,所述第一写入请求包括待写入数据,以使所述第一连接设备模拟主机设备向USB设备发送第二写入请求,且所述第二写入请求包括所述待写入数据。
示例性的,若所述USB设备采用指定类型协议与所述主机设备通信,且由所述主机设备通过命令块包发起数据请求,接收主机设备发送的第一读取请求或第一写入请求之前,所述接收模块911,还用于接收所述主机设备发送的命令块包请求,所述发送模块912,还用于模拟所述USB设备向所述主机设备返回针对所述命令块包请求的肯定应答;所述接收模块911,还用于将所述命令块包请求发送给所述第一连接设备,以使所述第一连接设备模拟所述主机设备向所述USB设备发送所述命令块包请求,并接收所述USB设备返回的肯定应答。
示例性的,若所述USB设备采用指定类型协议与所述主机设备通信,且由所述主机设备向所述USB设备读取数据写入和读取的状态反馈,在完成所述待读取数据的读取过程或所述待写入数据的写入过程之后,所述接收模块911,还用于接收所述主机设备发送的命令状态包请求;所述发送模块912,还用于若所述第二连接设备已存储命令状态包应答,则模拟所述USB设备向所述主机设备返回针对所述命令状态包请求的命令状态包应答,若所述第二连接设备未存储命令状态包应答,则模拟所述USB设备向所述主机设备返回针对所述命令状态包请求的否定应答;所述接收模块911,还用于接收所述第一连接设备发送的命令状态包应答,并存储所述命令状态包应答。
示例性的,所述接收模块911,还用于接收所述USB设备对应的接口类型和描述符信息,并存储所述接口类型和所述描述符信息;所述发送模块912,还用于向所述主机设备发送使能信号,以使所述主机设备在接收到所述使能信号之后,从所述第二连接设备获取所述接口类型和所述描述符信息,基于所述接口类型和所述描述符信息生成配置信息;所述接收模块911,还用于接收所述配置信息;所述发送模块912,还用于将所述配置信息发送给所述第一连接设备。
基于与上述方法同样的申请构思,本申请实施例中提出一种数据传输装置,第一连接设备通过USB接口与USB设备连接,第二连接设备通过USB接口与主机设备连接,第一连接设备与第二连接设备通过网口或光口连接,所述装置应用于第一连接设备,参见图9B所示,为该装置的结构示意图,该装置包括:
发送模块921,用于模拟主机设备向USB设备发送第二读取请求;接收模块922,用于接收USB设备针对所述第二读取请求返回的第二读取响应;其中,所述第二读取响应包括待读取数据;所述发送模块921,还用于将所述待读取数据发送给第二连接设备,由第二连接设备存储所述待读取数据,并在模拟USB设备向主机设备返回第一读取响应时,在所述第一读取响应中携带所述待读取数据;和/或,所述发送模块921,还用于模拟主机设备向USB设备发送第二写入请求,所述第二写入请求包括待写入数据,以使USB设备存储所述待写入数据;其中,所述待写入数据是从所述第二连接设备发送的第一写入请求中得到;所述接收模块922,还用于接收USB设备针对第二写入请求返回的肯定应答。
示例性的,若所述USB设备采用指定类型协议与所述主机设备通信,且由所述主机设备通过命令块包发起数据请求,接收主机设备发送的第一读取请求或第一写入请求之前,所述接收模块922,还用于接收第二连接设备发送的命令块包请求;所述发送模块921,还用于模拟主机设备向USB设备发送所述命令块包请求;所述接收模块922,还用于接收USB设备针对所述命令块包请求返回的肯定应答。
示例性的,若所述USB设备采用指定类型协议与所述主机设备通信,且由所述主机设备向所述USB设备读取数据写入和读取的状态反馈,在完成所述待读取数据的读取过程或所述待写入数据的写入过程之后,所述发送模块921,还用于模拟所述主机设备向所述USB设备发送命令状态包请求;所述接收模块922,还用于接收所述USB设备针对所述命令状态包请求返回的命令状态包应答;所述发送模块921,还用于将所述命令状态包应答发送给所述第二连接设备,由所述第二连接设备存储所述命令状态包应答。
示例性的,所述发送模块921,还用于在所述USB设备接入时,获取所述USB设备对应的接口类型和描述符信息,将所述接口类型和所述描述符信息发送给所述第二连接设备,以使所述第二连接设备存储所述接口类型和所述描述符信息;所述接收模块922,还用于接收所述第二连接设备发送的所述USB设备对应的配置信息;所述发送模块921,还用于将所述配置信息发送给所述USB设备,以通过所述配置信息对所述USB设备进行配置。
示例性的,所述发送模块921获取所述USB设备对应的接口类型和描述符信息,将所述接口类型和所述描述符信息发送给所述第二连接设备时具体用于:与USB设备进行速率握手,得到USB设备对应的接口类型,并将所述接口类型发送给第二连接设备;与所述USB设备进行枚举,得到所述USB设备对应的描述符信息,并将所述描述符信息发送给第二连接设备。
基于与上述方法同样的申请构思,本申请实施例中提出一种电子设备(如第一连接设备或者第二连接设备),电子设备包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令;处理器用于执行机器可执行指令,以实现本申请上述示例公开的数据传输方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的数据传输方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种数据传输方法,其特征在于,第一连接设备通过USB接口与USB设备连接,第二连接设备通过USB接口与主机设备连接,所述第一连接设备与所述第二连接设备通过网口或光口连接,所述方法包括:
第二连接设备接收主机设备发送的第一读取请求,模拟USB设备向主机设备返回针对所述第一读取请求的第一读取响应;其中,若所述第二连接设备已存储待读取数据,则所述第一读取响应包括所述待读取数据,若所述第二连接设备未存储待读取数据,则所述第一读取响应为否定应答;
第一连接设备模拟主机设备向USB设备发送第二读取请求,接收USB设备针对所述第二读取请求返回的第二读取响应,所述第二读取响应包括待读取数据;将待读取数据发送给第二连接设备,由第二连接设备存储待读取数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二连接设备接收主机设备发送的第一写入请求,模拟USB设备向所述主机设备返回针对所述第一写入请求的肯定应答,将所述第一写入请求发送给所述第一连接设备;其中,所述第一写入请求包括待写入数据;
所述第一连接设备模拟主机设备向USB设备发送第二写入请求,所述第二写入请求包括所述待写入数据,以使所述USB设备存储所述待写入数据;
所述第一连接设备接收USB设备针对所述第二写入请求返回的肯定应答。
3.根据权利要求1或2所述的方法,其特征在于,若所述USB设备采用指定类型协议与所述主机设备通信,且由所述主机设备通过命令块包发起数据请求,所述第二连接设备接收主机设备发送的第一读取请求或第一写入请求之前,所述方法还包括:
所述第二连接设备接收所述主机设备发送的命令块包请求,模拟所述USB设备向所述主机设备返回针对所述命令块包请求的肯定应答;
所述第二连接设备将所述命令块包请求发送给所述第一连接设备;
所述第一连接设备模拟所述主机设备向所述USB设备发送所述命令块包请求,并接收所述USB设备针对所述命令块包请求返回的肯定应答。
4.根据权利要求1或2所述的方法,其特征在于,若所述USB设备采用指定类型协议与所述主机设备通信,且由所述主机设备向所述USB设备读取数据写入和读取的状态反馈,在完成所述待读取数据的读取过程或所述待写入数据的写入过程之后,所述方法还包括:
所述第二连接设备接收所述主机设备发送的命令状态包请求;若所述第二连接设备已存储命令状态包应答,则模拟所述USB设备向所述主机设备返回所述命令状态包应答,若所述第二连接设备未存储命令状态包应答,则模拟所述USB设备向所述主机设备返回针对所述命令状态包请求的否定应答;
所述第一连接设备模拟所述主机设备向USB设备发送命令状态包请求,接收USB设备针对所述命令状态包请求返回的命令状态包应答,将所述命令状态包应答发送给所述第二连接设备,由第二连接设备存储所述命令状态包应答。
5.根据权利要求1或2所述的方法,其特征在于,所述第二连接设备接收主机设备发送的第一读取请求或第一写入请求之前,所述方法还包括:
在所述USB设备接入时,所述第一连接设备获取所述USB设备对应的接口类型和描述符信息,将所述接口类型和所述描述符信息发送给所述第二连接设备,以使所述第二连接设备存储所述接口类型和所述描述符信息;
所述第二连接设备向所述主机设备发送使能信号,以使所述主机设备在接收到所述使能信号之后,从所述第二连接设备获取所述接口类型和所述描述符信息,基于所述接口类型和所述描述符信息生成配置信息;
所述第二连接设备接收所述配置信息,将所述配置信息发送给所述第一连接设备;所述第一连接设备接收所述配置信息,将所述配置信息发送给所述USB设备,以通过所述配置信息对所述USB设备进行配置。
6.根据权利要求5所述的方法,其特征在于,
所述第一连接设备获取所述USB设备对应的接口类型和描述符信息,将所述接口类型和所述描述符信息发送给所述第二连接设备,包括:
所述第一连接设备与所述USB设备进行速率握手,得到所述USB设备对应的接口类型,并将所述接口类型发送给所述第二连接设备;
所述第一连接设备与所述USB设备进行枚举,得到所述USB设备对应的描述符信息,并将所述描述符信息发送给所述第二连接设备。
7.一种数据传输方法,其特征在于,第一连接设备通过USB接口与USB设备连接,第二连接设备通过USB接口与主机设备连接,第一连接设备与第二连接设备通过网口或光口连接,所述方法应用于第二连接设备,所述方法包括:
接收所述主机设备发送的第一读取请求;
模拟所述USB设备向所述主机设备返回针对第一读取请求的第一读取响应;其中,若第二连接设备已存储待读取数据,则第一读取响应包括所述待读取数据,若第二连接设备未存储待读取数据,则第一读取响应为否定应答;
接收所述第一连接设备发送的待读取数据,并存储所述待读取数据,所述待读取数据是所述USB设备发送给所述第一连接设备;
和/或,
接收所述主机设备发送的第一写入请求;
模拟所述USB设备向所述主机设备返回针对所述第一写入请求的肯定应答,将所述第一写入请求发送给所述第一连接设备;其中,所述第一写入请求包括待写入数据,以使所述第一连接设备模拟所述主机设备向所述USB设备发送第二写入请求,且所述第二写入请求包括所述待写入数据。
8.一种数据传输方法,其特征在于,第一连接设备通过USB接口与USB设备连接,第二连接设备通过USB接口与主机设备连接,第一连接设备与第二连接设备通过网口或光口连接,所述方法应用于第一连接设备,所述方法包括:
模拟所述主机设备向所述USB设备发送第二读取请求;
接收所述USB设备针对所述第二读取请求返回的第二读取响应;其中,所述第二读取响应包括待读取数据;
将所述待读取数据发送给所述第二连接设备,由所述第二连接设备存储所述待读取数据,并在模拟所述USB设备向所述主机设备返回第一读取响应时,在所述第一读取响应中携带所述待读取数据;
和/或,
模拟所述主机设备向所述USB设备发送第二写入请求,所述第二写入请求包括待写入数据,以使所述USB设备存储所述待写入数据;其中,所述待写入数据是从所述第二连接设备发送的第一写入请求中得到;
接收所述USB设备针对第二写入请求返回的肯定应答。
9.一种数据传输装置,其特征在于,第一连接设备通过USB接口与USB设备连接,第二连接设备通过USB接口与主机设备连接,第一连接设备与第二连接设备通过网口或光口连接,所述装置应用于第二连接设备,所述装置包括:
接收模块,用于接收主机设备发送的第一读取请求;
发送模块,用于模拟USB设备向主机设备返回针对第一读取请求的第一读取响应;其中,若第二连接设备已存储待读取数据,则第一读取响应包括所述待读取数据,若第二连接设备未存储待读取数据,则第一读取响应为否定应答;
所述接收模块,还用于接收第一连接设备发送的待读取数据,并存储所述待读取数据,所述待读取数据是USB设备发送给第一连接设备;
和/或,所述接收模块,还用于接收主机设备发送的第一写入请求;
所述发送模块,还用于模拟USB设备向主机设备返回针对所述第一写入请求的肯定应答,将所述第一写入请求发送给第一连接设备;其中,所述第一写入请求包括待写入数据,以使所述第一连接设备模拟主机设备向USB设备发送第二写入请求,且所述第二写入请求包括所述待写入数据。
10.一种数据传输装置,其特征在于,第一连接设备通过USB接口与USB设备连接,第二连接设备通过USB接口与主机设备连接,第一连接设备与第二连接设备通过网口或光口连接,所述装置应用于第一连接设备,所述装置包括:
发送模块,用于模拟主机设备向USB设备发送第二读取请求;
接收模块,用于接收所述USB设备针对所述第二读取请求返回的第二读取响应;其中,所述第二读取响应包括待读取数据;
所述发送模块,还用于将所述待读取数据发送给第二连接设备,由所述第二连接设备存储所述待读取数据,并在模拟所述USB设备向主机设备返回第一读取响应时,在所述第一读取响应中携带所述待读取数据;
和/或,所述发送模块,还用于模拟主机设备向USB设备发送第二写入请求,所述第二写入请求包括待写入数据,以使USB设备存储所述待写入数据;其中,所述待写入数据是从所述第二连接设备发送的第一写入请求中得到;
所述接收模块,还用于接收USB设备针对第二写入请求返回的肯定应答。
11.一种电子设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求7或8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310353734.7A CN116644016A (zh) | 2023-03-30 | 2023-03-30 | 一种数据传输方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310353734.7A CN116644016A (zh) | 2023-03-30 | 2023-03-30 | 一种数据传输方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116644016A true CN116644016A (zh) | 2023-08-25 |
Family
ID=87614172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310353734.7A Pending CN116644016A (zh) | 2023-03-30 | 2023-03-30 | 一种数据传输方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116644016A (zh) |
-
2023
- 2023-03-30 CN CN202310353734.7A patent/CN116644016A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9087163B2 (en) | Transmission of multiple protocol data elements via an interface utilizing a data tunnel | |
TWI452469B (zh) | 周邊元件互連高速(PCIe)大容量儲存裝置、包含該PCIe大容量儲存裝置之系統及用於操作該PCIe大容量儲存裝置之方法 | |
WO2017084400A1 (zh) | 一种NVMe网络化存储的实现方法、终端、服务器及系统 | |
KR20130042370A (ko) | Ufs 인터페이스의 테스트 방법 및 이의 테스트 방법으로 테스트를 수행하는 메모리 장치 | |
TWI614608B (zh) | 用於觸控感測器資訊的通訊之設備、系統及方法 | |
CN107908589B (zh) | I3c验证从设备、主从设备的通信验证系统及方法 | |
CN101276316A (zh) | 用于控制主机设备与usb设备之间的通信的装置、方法及系统 | |
CN103744478A (zh) | 一种蓝牙无线显示器及其控制方法 | |
CN109992556A (zh) | 一种i2c驱动方法和装置 | |
CN111736792B (zh) | 可编程逻辑器件及其控制方法、控制系统和视频处理器 | |
CN105940384A (zh) | 外围设备的通用串行总线仿真 | |
TW201112130A (en) | Controllers and methods for controlling data transfer, and electronic systems | |
CN108920193A (zh) | Fpga和cpu间sdio通信接口实现方法、及装置 | |
WO2014000299A1 (zh) | 串口重定向处理方法、设备和系统 | |
CN116644016A (zh) | 一种数据传输方法、装置及设备 | |
CN112346665B (zh) | 基于pcie的通信方法、装置、设备、系统及存储介质 | |
CN116089124A (zh) | 一种仿真系统通信方法、装置、介质 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN115686164A (zh) | 供电端装置、供电系统以及非暂态电脑可读取媒体 | |
CN101976230B (zh) | 通用序列总线传输转译器及输入请求同步传输方法 | |
JP4431768B2 (ja) | 携帯型電子装置、読み出し方法及び書き込み方法 | |
CN111198837B (zh) | 基于fpga的sdio接口系统、控制器桥接方法 | |
CN216014148U (zh) | 一种服务器和服务器背板 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 | |
CN114513436B (zh) | Sdio设备传输速率的检测方法、系统及存储介质 |
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 |