CN104615558A - 一种数据传送方法及电子装置 - Google Patents

一种数据传送方法及电子装置 Download PDF

Info

Publication number
CN104615558A
CN104615558A CN201310539183.XA CN201310539183A CN104615558A CN 104615558 A CN104615558 A CN 104615558A CN 201310539183 A CN201310539183 A CN 201310539183A CN 104615558 A CN104615558 A CN 104615558A
Authority
CN
China
Prior art keywords
data
request block
endpoint
usb request
usb
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.)
Granted
Application number
CN201310539183.XA
Other languages
English (en)
Other versions
CN104615558B (zh
Inventor
王战勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Smart Technology (hefei) Co Ltd
AutoChips Inc
Original Assignee
Smart Technology (hefei) Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Smart Technology (hefei) Co Ltd filed Critical Smart Technology (hefei) Co Ltd
Priority to CN201310539183.XA priority Critical patent/CN104615558B/zh
Priority to US14/453,607 priority patent/US10331594B2/en
Publication of CN104615558A publication Critical patent/CN104615558A/zh
Application granted granted Critical
Publication of CN104615558B publication Critical patent/CN104615558B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1268Job submission, e.g. submitting print job order or request not the print data itself
    • G06F3/1271Job submission at the printing node, e.g. creating a job from a data stored locally or remotely
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays

Abstract

本发明公开了一种数据传送方法及电子装置。数据传送方法包括:建立多个本地端点与多个远程端点之间的传送管道,其中,至少一个本地端点对应至少两个远程端点且建立至少两条传送管道;以及在本地端点和对应的远程端点之间,通过分时使用所述管道进行数据传送。本发明的数据传送方法及电子装置能够在多个USB逻辑设备所包括的远程端点数目大于USB主机所包括的本地端点数目的情况下,仍然实现USB主机与USB设备之间的数据传送。

Description

一种数据传送方法及电子装置
技术领域
本发明涉及嵌入式电子设备领域,特别是涉及一种数据传送方法及电子装置。
背景技术
目前,USB技术已广泛地应用于嵌入式电子设备中,具体来说,在嵌入式电子设备中通常集成有USB主机,以对插入嵌入式电子设备的USB设备,例如U盘、USB鼠标等等,进行控制以实现USB设备所支持的功能。通常,在对USB主机的芯片进行设计时,已限定其内部的本地端点(local endpoint)数目。本领域技术人员可以理解,按照USB标准规定的协议,当USB设备插入时,首先USB主机根据接口描述符获取USB设备的功能接口描述信息,其次获取该功能接口所对应的远程端点(remote endpoint),继而建立本地端点与远程端点之间的逻辑管道,本地端点和远程端点一一对应形成逻辑管道,随后通过该逻辑管道与USB设备进行数据传送以实现其所支持的功能。此时,USB主机端期望能支持尽可能多的USB设备,USB主机所包括的本地端点数目小于主机希望支持的所有USB逻辑设备所包括的远程端点数目时则某些USB逻辑设备因无足够的本地端点配对而无法成功建立管道,继而导致某些USB逻辑设备的功能无法得到实现。
为解决上述问题,现有技术的一种做法是:重新设计USB主机的芯片,增加其所支持的本地端点数目,或者增加USB控制器数目,但是,重新设计芯片需要花费很大的设计成本以及很长的生产周期,不利于嵌入式电子设备的生产。
现有技术的另一种做法是:对嵌入式电子设备的USB功能重新进行规划,减少USB主机支持USB逻辑设备的数目以及其所对应的功能,以满足现有的本地端点数目的限制。但是,由于功能的减少,嵌入式电子设备的市场竞争力将被减弱,不利于嵌入式电子设备的市场推广。
发明内容
有鉴于此,本发明提供以下技术方案。
根据本发明一实施例,本发明提供一种数据传送方法,用于具有多个本地端点的USB主机,数据传送方法包括:建立多个本地端点与多个远程端点之间的传送管道,其中,至少一个本地端点对应至少两个远程端点且建立至少两条传送管道;以及在本地端点和对应的远程端点之间,通过分时使用传送管道进行数据传送。
根据本发明另一实施例,本发明提供一种电子装置,包括具有多个本地端点的USB主机,电子装置包括管道建立模块及数据传送模块,管道建立模块用于建立多个本地端点与多个远程端点之间的传送管道,其中,至少一个本地端点对应至少两个远程端点且建立至少两条传送管道;数据传送模块用于在本地端点和对应的远程端点之间,通过分时使用所述传送管道进行数据传送。
本发明的数据传送方法及电子装置能够在多个USB逻辑设备所包括的远程端点数目大于USB主机所包括的本地端点数目的情况下,仍然实现USB主机与USB设备之间的数据传送。
附图说明
图1是本发明第一实施例的电子装置的结构示意图;
图2是本发明第二实施例的电子装置的结构示意图;
图3是图2所示电子装置中数据传送单元的第一实施例的结构示意图;
图4是图2所示电子装置中数据传送单元的第二实施例的结构示意图;
图5是本发明第一实施例的数据传送方法的流程图;
图6是本发明第二实施例的数据传送方法的流程图;
图7是本发明第二实施例的数据传送方法的子流程图;
图8是本发明第三实施例的数据传送方法的流程图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「耦接」一词在此包含任何直接及/或间接的电气耦接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气耦接于第二装置,或透过其它装置或耦接手段间接地电气耦接至第二装置。下面结合附图和实施例对本发明进行详细说明
图1是本发明第一实施例的电子装置的结构示意图。如图1所示,电子装置包括具有多个本地端点的USB主机100,USB主机100包括管道建立模块10和数据传送模块11。
管道建立模块10,用于建立多个本地端点与多个远程端点之间的传送管道,其中,至少一个本地端点对应至少两个的远程端点且建立至少两条传送管道。
数据传送模块11与管道建立模块10耦接,用于在本地端点和远程端点之间,通过传送管道进行数据传送。
图2是本发明第二实施例的电子装置的结构示意图。如图2所示,电子装置包括具有多个本地端点的USB主机200,USB主机200包括判断模块21、管道建立模块22、存储模块23和数据传送模块24。
判断模块21用于判断建立管道时,本地端点是否绑定了至少两个远程端点。
管道建立模块22与判断模块21耦接,用于当判断模块21判断本地端点绑定至少两个远程端点,建立本地端点与远程端点之间的传送管道,其中,至少一个本地端点对应至少两个远程端点且建立至少两条传送管道以使尽可能多的远程端点通过分时使用传送管道进行数据传送。
具体来说,管道建立模块22包括映射关系建立单元221和管道建立单元222。映射关系建立单元221与判断模块21耦接,用于建立本地端点与远程端点之间的映射关系,其中,映射关系包括一对一映射和一对多映射。管道建立单元222与映射关系建立单元221耦接,用于根据映射关系建立单元221建立的映射关系建立本地端点与远程端点之间的传送管道。
存储模块23与管道建立模块22耦接,具体来说,存储模块23与管道建立单元222耦接,用于在管道建立单元222建立传送管道后,将对应本地端点的远程端点的数据存储至数据队列中,其中,数据为多个USB逻辑设备请求块、对应远程端点的参数信息和本地端点信息。
数据传送模块24与存储模块23耦接,用于从存储模块23获取USB请求块后通过传送管道进行USB请求块的传送。
具体来说,数据传送模块24包括数据获取单元241、参数装载单元242、数据传送单元243和判断单元244。数据获取单元241与存储模块23耦接,用于按照先入先出的原则从存储模块23存储的数据队列中获取USB请求块。参数装载单元242与数据获取单元241耦接,用于装载传送数据获取单元241获取的USB请求块的本地端点对应的多个物理参数,其中,物理参数包括USB请求块对应的远程端点的端点号。数据传送单元243与参数装载单元242耦接,用于当参数装载单元242装载本地端点对应的多个物理参数后,将数据获取单元241获取的USB请求块从本地端点通过USB硬件模块串行化处理成物理信号,传送至对应的远程端点。判断单元244与传送单元243耦接,用于当传送单元243传送USB请求块后,判断数据队列中的多个USB请求块是否已传送完毕。当判断单元244判断数据队列中的多个USB请求块未传送完毕时,数据获取单元241按照先入先出的原则继续从数据队列中获取USB请求块等候调度。
图3是图2所示电子装置中数据传送单元的第一实施例的结构示意图。如图3所示,数据传送单元包括数据切换位设置子单元30、事务(transaction)传送子单元31、监测子单元32、判断子单元33、数据切换位调整子单元34、出错处理子单元35以及参数卸载子单元36。
数据切换位设置子单元30与参数装载单元242耦接,用于在参数装载单元242装载本地端点对应的物理参数后,在通过传送管道传送USB请求块前,设置由管道建立模块22建立的传送管道对应的数据切换位。
事务传送子单元31与数据切换位设置子单元30耦接,用于依次传送USB请求块中的事务对应的令牌包、数据包和握手包,其中,USB请求块包括多个事务,数据包根据数据切换位设置子单元30设置的传送管道对应的数据切换位进行传送。
监测子单元32与事务传送子单元31耦接,用于当事务传送子单元31传送事务时,监测事务传送时对应的传送状态标志位是否指示传送正确。
判断子单元33与监测子单元32耦接,用于当监测子单元32监测到传送状态标志位指示传送正确时,判断是否完成USB请求块中多个事务的传送。其中,当判断子单元33判断未完成USB请求块中多个事务的传送时,事务传送子单元31依次传送USB请求块中的事务对应的令牌包、数据包和握手包。
数据切换位调整子单元34与监测子单元32耦接,用于当监测子单元32监测到传送状态标志位指示传送错误时,调整传送管道对应的数据切换位。
出错处理子单元35与数据切换位调整子单元34耦接,用于当数据切换位调整子单元34调整传送管道对应的数据切换位后,对USB请求块进行出错处理。
参数卸载子单元36分别与判断子单元33和出错处理子单元35耦接,用于当判断子单元33判断完成USB请求块中多个事务的传送或者出错处理子单元35完成对USB请求块的出错处理后,卸载用于传送USB请求块的本地端点对应的多个物理参数。
判断单元244与参数卸载子单元36连接,用于在参数卸载子单元36卸载用于传送USB请求块的本地端点对应的多个物理参数后,进一步判断数据队列中的多个USB请求块是否传送完毕。
图4是图2所示电子装置中数据传送单元的第二实施例的结构示意图。如图4所示,数据传送单元包括数据切换位更新子单元40、事务传送子单元41、监测子单元42、判断子单元43、出错处理子单元44、参数卸载子单元45以及数据切换位备份子单元46。
在本实施例中,事务传送子单元41、监测子单元42、判断子单元43、出错处理子单元44、参数卸载子单元45与图3中事务传送子单元31、监测子单元32、判断子单元33、出错处理子单元35、参数卸载子单元36类似,在此不再赘述。
数据切换位更新子单元40与参数装载单元242耦接,用于在参数装载单元242装载本地端点对应的物理参数,进行下一个USB请求块传送前,更新对应传送管道的数据切换位。
数据切换位备份子单元46与参数卸载子单元45耦接,用于在数据传送单元243完成当前USB请求块的传送后,备份对应传送管道的数据切换位。其中本领域技术人员熟知如何得到数据切换位,在此不做赘述。
判断单元244与数据切换位备份子单元46耦接,用于在数据切换位备份子单元46备份由硬件计算得到的对应传送管道的数据切换位后,进一步判断数据队列中的多个USB请求块是否传送完毕。
图5是本发明第一实施例的数据传送方法的流程图,本发明的数据传送方法用于具有多个本地端点的USB主机。如图5所示,该方法包括如下步骤:
步骤S101:建立多个本地端点与多个远程端点之间的传送管道,其中,至少一个本地端点对应至少两个的远程端点建立一条以上传送管道;
步骤S102:在本地端点和远程端点之间,通过传送管道进行数据传送。
在步骤S101中,本地端点位于USB主机中,远程端点位于多个USB逻辑设备中,USB主机和多个USB逻辑设备通过本地端点与远程端点之间建立的传送管道进行数据交互。
当USB主机中的本地端点数目大于等于预期多个USB逻辑设备中的远程端点数目之和时,USB主机和USB设备之间建立的传送管道可以建立一对一映射关系的传送管道或建立一对多映射关系的传送管道。当USB主机中的本地端点数目小于预期多个USB逻辑设备中的远程端点数目之和时,USB主机和USB设备之间建立的传送管道可以预计产品最大支持的USB逻辑设备数目,建立一对多映射关系的多个传送管道,一对多映射关系的传送管道需要分时使用本地端点来完成物理上的数据传送。
在步骤S102中,当一对多映射关系的传送管道被建立后,待传送的数据通过分时使用传送管道来实现同一本地端点和其对应的至少两个远程端点之间的数据传送。其中,分时使用是指按照时间片来传送同一本地端点和其对应的至少两个远程端点之间的待传送数据,每个时间片内只传送同一本地端点与某一远程端点之间的待传送USB逻辑设备数据请求块,同一本地端点和其对应的至少两个远程端点之间的待传送数据按照USB逻辑设备提交数据请求块在不同时间片内轮流在传送管道内传输。
本发明第一实施例的数据传送方法在本地端点和远程端点之间建立一对一映射或一对多映射的传送管道,通过分时使用传送管道进行数据传送,从而在多个USB逻辑设备同时工作时所包括的远程端点数目大于USB主机所包括的本地端点数目的情况下,实现了USB主机与USB逻辑设备之间的数据传送。
图6是本发明第二实施例的数据传送方法的流程图,本发明的数据传送方法用于具有多个本地端点的USB主机。需注意的是,若有实质上相同的结果,本发明的方法并不以图6所示的流程顺序为限。如图6所示,该方法包括如下步骤:
步骤S201:建立本地端点与远程端点之间的映射关系。
USB主机在USB设备的枚举过程中获取USB设备中远程端点的信息。USB主机在获取USB设备的远程端点后,将会加载和所插入设备相对应的USB逻辑设备的客户端驱动程序,客户端驱动程序中将决定是否需要建立本地端点和对应的USB逻辑设备远程端点的映射关系,当本地端点绑定远程端点时,客户端驱动程序将会建立本地端点和远程端点之间的传送管道,并且调用底层的USB控制器驱动程序系统接口记录本地端点和远程端点的映射关系。当一个本地端点绑定至少两个的远程端点时,该至少两个远程端点将通过传送管道分时使用该本地端点进行数据传送。
在步骤S201中,映射包括一对一映射和一对多映射,一对一映射即一个本地端点与一个远程端点建立映射关系,一对多映射即一个本地端点与多个远程端点建立映射关系。
进一步,USB主机可以按照普通升序、普通降序、间隔升序或间隔降序的方式建立本地端点与远程端点之间的映射关系。具体来说,假设USB主机所支持的本地端点总数为31个,分别为15个输入端点、15个输出端点和本地端点0。其中,本地端点0缺省为USB设备在枚举阶段使用地址0来获取其对应的设备描述符、配置描述符、接口描述符等等的端点,因此本地端点0固定与多个USB设备的远程端点0形成映射。对于除本地端点0的其它端点,允许映射的远程端点数目可以按照需求进行设定,当设定某个本地端点允许映射的远程端点的数目为1时,该本地端点与远程端点形成一对一映射,当设定某个本地端点允许映射的远程端点的数目大于等于2时,该本地端点与远程端点形成一对多映射。
普通升序的方式是指按照端点序号从小到大的顺序依次建立本地端点与对应类型的多个远程端点的映射关系,也即,首先建立输入端点1与用于输出的远程端点的映射关系,待达到输入端点1允许的最大远程端点数目时,继续建立输入端点2与用于输出的多个远程端点的映射关系……依次建立,直至完成所有远程端点与输入端点的映射关系。对于15个输出端点,建立方式与此类似,在此不再详述。
普通降序的方式是指按照端点序号从大到小的顺序依次建立本地端点与对应类型的多个远程端点的映射关系,普通降序与普通升序的主要差别在于:普通降序按照端口序号从大到小的顺序来建立映射关系,而普通升序是按照端口序号从小到大的顺序来建立映射关系。
间隔升序的方式是指按照端点序号从小到大的顺序,依次建立相同序号的输入端点和输出端点与对应类型的多个远程端点的映射关系。也即,首先同时建立输入端点1和输出端点1与对应类型的多个远程端点的映射关系,待达到输入端点1和输出端点1允许的最大远程端点数目时,继续建立输入端点2和输出端点2与对应类型的多个远程端点的映射关系……依次建立,直至完成输入端点15和输出端点15与对应类型的远程端点的映射关系。本领域技术人员可以理解,当采用间隔升序的方式建立映射关系时,相同序号的输入端点和输入端点所允许的最大数目的远程端点数目是相同的。
间隔降序的方式是指按照端点序号从大到小的顺序依次建立相同序号的输入端点和输出端点与对应类型的多个远程端点的映射关系。间隔降序与间隔升序的主要差别在于:间隔降序按照端口序号从大到小的顺序来建立映射关系,而间隔升序是按照端口序号从小到大的顺序来建立映射关系。
步骤S202:根据映射关系建立本地端点与远程端点之间的传送管道。其中,当本地端点与远程端点为一对一映射时,数据可以按照USB规定的协议在本地端点与远程端点之间进行数据传送,该传送方法为现有技术,在此不再详述。当本地端点与远程端点为一对多映射时,本地端点与远程端点之间建立的传送管道为分时使用传送管道。具体来说,USB主机根据映射关系绑定同一本地端点与多个远程端点以建立逻辑上的分时使用传送管道,并根据USB设备在枚举过程中获得的接口描述符创建分时使用传送管道中每个远程端点对应的数据结构,并执行步骤S203。
步骤S203:设置对应传送管道的数据切换位。在步骤S203中,数据切换位为存储在USB主机中的变量,用于在传送数据时,与USB逻辑设备中的数据切换位对应,共同保证数据传送的准确性。具体来说,在成功完成一次数据中事务的传送后,数据切换位翻转一次。因此,按照需要传送的事务的次数来获取数据切换位的翻转次数,就能获得传送整个数据后的数据切换位的值。分时使用传送管道为同一本地端点和多个远程端点对应的传送管道,因此需要设置分时使用传送管道中对应每个远程端点的数据切换位,在完成一次本地端点和某一远程端点的数据的传送后,将获得的数据切换位的值保存至该远程端点对应的数据切换位变量中,以与具有该远程端点的USB设备中的数据切换位相对应。
步骤S204:将对应本地端点的远程端点的数据存储至数据队列中。在步骤S204中,多个远程端点与同一本地端点相对应,同一本地端点与数据队列相对应。数据队列的数据可以为一个USB逻辑设备中多个远程端点的USB请求块,也可以为多个USB逻辑设备中多个远程端点的USB请求块。
步骤S205:按照先入先出的原则从数据队列中获取多个USB请求块。在步骤S205中,先入先出是指先存储的USB请求块先被读取出来进行传送,待传送完成后,接着读取下一个USB请求块并进行传送,依此类推。在USB请求块中,包括有待访问的USB设备的远程端点的信息。
步骤S206:装载传送USB请求块的本地端点对应的多个物理参数。在步骤S206中,本地端点的物理参数包括与USB请求块对应的远程端点信息以及USB设备中的控制信息,如表一所示:
表一
远程端点信息 控制信息
符字节大小 速度类型
描述符类型 地址信息
远程端点号 动态
传输方向 数据切换位
传输类型
最大包尺寸
时间间隔
如上表所示,远程端点信息(Reference)包括:远程端点描述符字节大小(length),其固定为0x07;远程端点描述符类型(Description type),其固定为0x05;4个比特的远程端点的端点号(Remote endpoint);1个比特的远程端点的传输方向(Direction),用以区分远程端点是用于输入还是输出;远程端点使用的传输类型(Transfer type),其包括控制传输、批量传输、中断传输和同步传输;远程端点支持的最大包尺寸(Maximumpacket size),其指USB主机和USB设备通过传送管道进行串行化传输时,一次传送数据的最大字节数,通常不管在USB主机还是在USB设备都至少有一个能存储最大字节数数据的先进先出存储器(FIFO);以及远程端点传输数据的时间间隔(Interval)。通常USB主机利用该参数统筹安排传送管道上的带宽。
控制(Control)信息包括:速度类型(Speed type),用以区分USB设备是低速设备、高速设备还是全速设备;地址信息(Functionaddress/Hub address/Port number),其为USB主机与USB设备进行通讯时所使用的唯一的地址;动态FIFO(Dynamical FIFO),其为缓冲器(buffer);数据切换位(Data toggle),其通过Data0/Data1之间的切换,使USB主机与USB设备之间能够准确接收到通过传送管道传送的串行数据,其为与远程端点相对应的数据切换位变量中存储的值。
步骤S207:将USB请求块从本地端点通过对应的传送管道传送至对应的远程端点;在步骤S207中,当本地端点的物理参数被装载后,也即本地端点的物理参数被写入硬件后,USB控制器的硬件模块将把当前对应的远程端点的USB逻辑设备数据请求块转换成物理信号,准确传送到插入的USB设备,其中,USB请求块的传送根据传送管道对应的数据切换位进行传送。具体来说,每完成一次USB请求块中事务的传送,数据切换位翻转一次,当完成所有USB请求块中事务的传送后,将数据切换位的值存储至对应该远程端点的数据切换位变量中。
步骤S208:判断数据队列中的USB请求块是否已传送完毕,若否,执行步骤S205;若是,流程结束(S209)。在步骤S208中,当数据队列中的USB请求块未传送完毕时,继续按照先入先出的原则从数据队列中读取USB请求块的下一个事务并进行传送。
举例来说,假设本地端点A和远程端点B、远程端点C建立了传送管道。从数据队列中获取USB请求块,根据当前USB请求块的描述,假设该USB请求块是从端点A传送至远程端点C,则加载端点A对应该USB请求块的多个物理参数,其中,多个物理参数包括远程端点C的端口号,本地端点A和远程端点C之间的传输类型等等。然后,通过本地端点A和远程端点B、远程端点C之间的传送管道根据远程端点C对应的数据切换位将当前URB请求块的多个事务从本地端点A传送至远程端点C,直到整个URB中的事务传送结束。继续从数据队列中获取下一个USB请求块,根据该USB请求块的描述,假设该USB请求块是从端点A传送至远程端点B,则加载端点A对应该USB请求块的多个物理参数,其中,多个物理参数包括远程端点B的端口号,本地端点A和远程端点B之间的传输类型等等。然后,通过本地端点A和远程端点B、远程端点C之间的传送管道根据远程端点B对应的数据切换位将当前URB请求块从本地端点A传送至远程端点B。继续获取下一个USB请求块……..依次类推,直到数据队列中的USB请求块传送完毕。本领域技术人员可以理解,通过分时使用本地端点A和远程端点B、远程端点C之间的传送管道,就可以实现本地端点A和远程端点B、本地端点A和远程端点C之间的通讯。
图7是本发明第二实施例的数据传送方法的子流程图,具体来说,图7是图6中步骤S207的子流程图。需注意的是,若有实质上相同的结果,本发明的方法并不以图7所示的流程顺序为限。如图7所示,该方法包括如下步骤:
步骤S2071:依次传送USB请求块中事务对应的令牌包、数据包和握手包。在步骤S2071中,USB请求块包括多个事务,每个事务包括令牌包、数据包和握手包。其中,令牌包定义了事务处理的类型,数据包用于传送数据,握手包用于对数据发送方提供反馈信号,通知发送方数据是否已正确接收。另外,数据包的传送根据传送管道对应的数据切换位进行传送,具体来说,每完成一次USB请求块中的Transaction数据包的传送,数据切换位翻转一次。
步骤S2072:监测事务传送时对应的传送状态标志位是否指示传送正确:若传送状态标志位指示传送正确,执行步骤S2073,若传送状态标志位指示传送错误,执行步骤S2074。传送状态标志位和具体的USB控制硬件有关,例如状态标志位为一个寄存器,其中会标示一个完整事务USB控制硬件传送的状况。在步骤S2072中,传送状态标志位可以为与事务对应的握手包,举例来说,握手包包括ACK、NAK、STALL和NYET四种包,具体来说,ACK包表示接收器已成功接收数据,NAK包表示接收设备不能接收数据或发送设备不能发送数据,STALL包表示远程端点已终止,NYET包表示接收器还没有任何响应。传送状态标志也可以为串口引擎(Serial interface engine,SIE)传送错误状态位。传送状态标志位也可以是其他可以区分事务状态的其他标志位。本发明不限制传送状态标志位具体的形式和内容,只要能监测事务传送是否正确即可。
步骤S2073:判断是否完成USB请求块中多个事务的传送:若是,执行步骤S2076,若否,执行步骤S2071。
步骤S2074:调整传送管道对应的数据切换位。在步骤S2074中,当USB请求块在传送的过程中发生错误时,也即USB请求块中的事务在传送过程中发生错误时,调整传送管道中对应该USB请求块的远程端口的数据切换位,以保证USB主机和USB设备之间传送数据的准确性。
步骤S2075:对USB请求块进行出错处理。在步骤S2075中,当USB请求块传送失败后,可以通过发起重新传送来进行出错处理。本发明不限制在什么时间点发起重新传送,只要能实现USB请求块的成功传送即可。
步骤S2076:卸载用于传送USB请求块的本地端点对应的物理参数。在步骤S2076中,当完成USB请求块的传输后,将与USB请求块对应的本地端点的物理参数清除掉,以保证下一个USB请求块的准确传送。
本发明第二实施例的数据传送方法通过,建立一对一映射或一对多映射的传送管道,从而实现了USB主机与USB逻辑设备之间的数据传送。另外,本发明中通过事务传送的次数获取数据切换位,保证USB主机与USB设备的数据切换位相对应,由此进一步提高了USB主机与USB设备之间数据传送的正确性。
图8是本发明第三实施例的数据传送方法的流程图,本发明的数据传送方法用于具有多个本地端点的USB主机。需注意的是,若有实质上相同的结果,本发明的方法并不以图8所示的流程顺序为限。如图8所示,该方法包括如下步骤:
步骤S301:建立本地端点与至少两个远程端点之间的映射关系。在本实施例中,步骤S301与图6中步骤S201类似,在此不再赘述。
步骤S302:根据映射关系建立多个本地端点与多个远程端点之间的传送管道。在本实施例中,步骤S302与图6中步骤S202类似,在此不再赘述。
步骤S303:将对应同一本地端点的多个远程端点的数据存储至数据队列中。在本实施例中,步骤S303与图6中步骤S204类似,在此不再赘述。
步骤S304:按照先入先出的原则从数据队列中获取多个USB请求块。在本实施例中,步骤S304与图6中步骤S205类似,在此不再赘述。
步骤S305:更新对应传送管道的数据切换位。在步骤S305中,数据切换位的值为硬件传送USB请求块时记录自动翻转状况的寄存器中的值。具体来说,USB主机包括有内存存储加速模块,在加速模块工作的过程中,USB主机通过寄存器记录数据切换位的自动翻转后的值。在上一个USB请求块传送完毕后,更新传送管道中对应当前USB请求块的远程端点的数据切换位,以保证USB主机与USB设备之间数据传送的准确性。
步骤S306:装载传送USB请求块的本地端点对应的多个物理参数。在本实施例中,步骤S306与图6中步骤S206类似,在此不再赘述。
步骤S307:依次传送USB请求块中事务对应的令牌包、数据包和握手包。在本实施例中,步骤S307与图7中步骤S2081类似,在此不再赘述。
步骤S308:监测事务传送时对应的传送状态标志位是否指示传送正确:若传送状态标志位指示传送正确,执行步骤S309,若传送状态标志位指示传送错误,执行步骤S310。在本实施例中,步骤S308与图7中步骤S2072类似,在此不再赘述。
步骤S309:判断是否完成USB请求块中多个事务的传送:若是,执行步骤S311,若否,执行步骤S307。
步骤S310:对USB请求块进行出错处理。在本实施例中,步骤S310与图7中步骤S2085类似,在此不再赘述。
步骤S311:卸载用于传送USB请求块的本地端点对应的物理参数。在本实施例中,步骤S311与图7中步骤S2076类似,在此不再赘述。
步骤S312:备份由硬件计算得到的对应传送管道的数据切换位。在步骤S312中,当完成当前USB请求块的传送后,保存对应USB请求块的传送管道中远程端点的数据切换位。当后续USB请求块使用该远程端点进行传送时,将已保存的值恢复至本地端点对应的物理参数中。
步骤S313:判断数据队列中的USB请求块是否已传送完毕:若否,执行步骤S304,若是,流程结束(S314)。在本实施例中,步骤S313与图6中步骤S208类似,在此不再赘述。
本发明第三实施例的数据传送方法通过多个USB逻辑设备所包括的远程端点数目大于USB主机所包括的本地端点数目时,建立一对一映射或一对多映射的传送管道,从而实现了USB主机与USB逻辑设备之间的数据传送。另外,本发明中通过读取寄存器的值获取数据切换位,保证USB主机与USB设备的数据切换位相对应,由此进一步提高了USB主机与USB设备之间数据传送的正确性。
本领域的技术人员可以理解,对于远程端点来说,也就是对于外接USB设备而言,在数据传送、软硬件方面无需针对本发明作出更改,也就是说本发明兼容任意的外接USB设备。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (18)

1.一种数据传送方法,用于具有多个本地端点的USB主机,其特征在于,所述数据传送方法包括:
建立所述多个本地端点与多个远程端点之间的传送管道,其中,至少一个本地端点对应至少两个远程端点且建立至少两条传送管道;以及
在所述本地端点和对应的远程端点之间,通过分时使用所述传送管道进行数据传送。
2.根据权利要求1所述的方法,其特征在于,所述建立所述多个本地端点与多个远程端点之间的传送管道的步骤包括:
建立所述多个本地端点与所述多个远程端点之间的映射关系;以及
根据所述映射关系建立所述多个本地端点与所述多个远程端点之间的传送管道。
3.根据权利要求1所述的方法,其特征在于,所述方法更包括:
将对应同一本地端点的多个远程端点的数据存储至数据队列中,其中,所述数据为多个USB请求块。
4.根据权利要求3所述的方法,其特征在于,所述在所述本地端点和对应的远程端点之间,通过分时使用所述传送管道进行数据传送的步骤包括:
按照先入先出的原则从所述数据队列中获取所述USB请求块;
装载传送所述USB请求块的所述本地端点对应的多个物理参数;
将所述USB请求块从所述本地端点通过对应的传送管道传送至对应的远程端点;
判断所述数据队列中的所述USB请求块是否已传送完毕;以及
如果所述数据队列中的所述USB请求块未传送完毕,继续执行所述按照先入先出的原则从所述数据队列中获取所述USB请求块的步骤。
5.根据权利要求4所述的方法,其特征在于,所述USB请求块包括多个事务,所述将所述USB请求块从所述本地端点通过对应的传送管道传送至对应的远程端点的步骤包括:
依次传送所述USB请求块中所述事务对应的令牌包、数据包和握手包,其中,所述数据包根据所述传送管道对应的数据切换位进行传送;
监测所述事务传送时对应的传送状态标志位是否指示传送正确;
如果所述传送状态标志位指示传送正确,进一步判断是否完成所述USB请求块中所述多个事务的传送;以及
如果未完成所述USB请求块中所述多个事务的传送,继续执行所述依次传送所述USB请求块中的所述事务对应的令牌包、数据包和握手包的步骤。
6.根据权利要求5所述的方法,其特征在于,如果所述传送状态标志位指示传送错误时,对所述USB请求块进行出错处理。
7.根据权利要求5所述的方法,其特征在于,如果已完成所述USB请求块中多个所述事务的传送或者如果所述传送状态标志位指示传送错误,卸载用于传送所述USB请求块的所述本地端点对应的所述多个物理参数。
8.根据权利要求5所述的方法,其特征在于,所述方法更包括:
在通过所述传送管道传送所述USB请求块前,设置对应所述传送管道的数据切换位;
其中,如果所述传送状态标志位指示传送错误时,调整所述传送管道对应的所述数据切换位。
9.根据权利要求5所述的方法,其特征在于,所述方法更包括:
在当前USB请求块传送完毕后,备份对应所述传送管道的数据切换位;
其中,在进行下一个USB请求块传送前,更新对应所述传送管道的所述数据切换位。
10.一种电子装置,其特征在于,所述装置包括具有多个本地端点的USB主机,所述电子装置包括:
管道建立模块,用于建立所述多个本地端点与多个远程端点之间的传送管道,其中,至少一个本地端点对应至少两个远程端点且建立至少两条传送管道;以及
数据传送模块,用于在所述本地端点和对应的远程端点之间,通过分时使用所述传送管道进行数据传送。
11.根据权利要求10所述的电子装置,其特征在于,所述管道建立模块包括:
映射关系建立单元,用于建立所述多个本地端点与所述多个远程端点之间的映射关系;以及
管道建立单元,用于根据所述映射关系建立单元建立的所述映射关系建立所述多个本地端点与多个所述远程端点之间的传送管道。
12.根据权利要求10所述的电子装置,其特征在于,所述USB主机更包括:
存储模块,用于将对应同一本地端点的多个远程端点的数据存储至数据队列中,其中,所述数据为多个USB请求块。
13.根据权利要求12所述的电子装置,其特征在于,所述数据传送模块包括:
数据获取单元,用于按照先入先出的原则从所述存储模块存储的所述数据队列中获取所述USB请求块;
参数装载单元,用于装载传送所述USB请求块的所述本地端点对应的多个物理参数,所述物理参数包括所述USB请求块对应的所述远程端点的端点号;
数据传送单元,用于当所述参数装载单元装载所述本地端点对应的所述多个物理参数后,将所述数据获取单元获取的所述USB请求块从所述本地端点通过对应的所述传送管道传送至对应的所述远程端点;以及
判断单元,用于判断所述数据队列中的所述USB请求块是否已传送完毕;
其中,当所述判断单元判断所述数据队列中的所述USB请求块未传送完毕时,所述数据获取单元按照先入先出的原则从所述数据队列中获取所述USB请求块。
14.根据权利要求13所述的电子装置,其特征在于,所述USB请求块包括多个事务,所述数据传送单元更包括:
事务传送子单元,用于依次传送所述USB请求块中所述事务对应的令牌包、数据包和握手包,其中,所述数据包根据所述传送管道对应的数据切换位进行传送;
监测子单元,用于当所述事务传送子单元传送所述事务时,监测所述事务传送时对应的传送状态标志位是否指示传送正确;
判断子单元,用于当所述监测子单元监测到所述传送状态标志位指示传送正确时,判断是否完成所述USB请求块中所述多个事务的传送;
其中,当所述判断子单元判断未完成所述USB请求块中所述多个事务的传送时,所述事务传送子单元依次传送所述USB请求块中所述事务对应的令牌包、数据包和握手包。
15.根据权利要求14所述的电子装置,其特征在于,所述数据传送单元更包括:
出错处理子单元,用于当所述监测子单元监测到所述传送状态标志位指示传送错误时,对所述USB请求块进行出错处理。
16.根据权利要求14所述的电子装置,其特征在于,所述数据传送单元更包括:
参数卸载子单元,用于当所述判断子单元判断完成所述USB请求块中所述多个事务的传送或者所述监测子单元监测所述传送状态标志位指示传送错误时,卸载用于传送所述USB请求块的所述本地端点对应的所述多个物理参数。
17.根据权利要求14所述的电子装置,其特征在于,所述数据传送单元更包括:
数据切换位设置子单元,用于在通过所述传送管道传送所述USB请求块前,设置所述管道建立模块建立的所述传送管道对应的所述数据切换位;以及
数据切换位调整子单元,用于当所述监测子单元监测到所述传送状态标志位指示传送错误时,调整所述传送管道对应的所述数据切换位。
18.根据权利要求14所述的电子装置,其特征在于,所述数据传送单元更包括:
数据切换位备份子单元,用于在所述数据传送单元将当前USB请求块传送完毕后,备份对应所述传送管道的数据切换位;以及
数据切换位更新子单元,用于在所述数据传送单元进行下一个所述USB请求块传送前,更新对应所述传送管道的所述数据切换位。
CN201310539183.XA 2013-11-04 2013-11-04 一种数据传送方法及电子装置 Active CN104615558B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310539183.XA CN104615558B (zh) 2013-11-04 2013-11-04 一种数据传送方法及电子装置
US14/453,607 US10331594B2 (en) 2013-11-04 2014-08-06 Data transmission method and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310539183.XA CN104615558B (zh) 2013-11-04 2013-11-04 一种数据传送方法及电子装置

Publications (2)

Publication Number Publication Date
CN104615558A true CN104615558A (zh) 2015-05-13
CN104615558B CN104615558B (zh) 2018-08-10

Family

ID=53007931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310539183.XA Active CN104615558B (zh) 2013-11-04 2013-11-04 一种数据传送方法及电子装置

Country Status (2)

Country Link
US (1) US10331594B2 (zh)
CN (1) CN104615558B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301135A (zh) * 2017-06-22 2017-10-27 深圳天珑无线科技有限公司 连接建立方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10684906B2 (en) * 2016-06-15 2020-06-16 Microsoft Technology Licensing, Llc Monitoring peripheral transactions
CN111290983B (zh) * 2018-12-10 2023-05-16 澜至电子科技(成都)有限公司 Usb传输设备及传输方法
CN112929720A (zh) * 2021-01-28 2021-06-08 深圳市网旭科技有限公司 投屏方法、装置、电子设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502155B1 (en) * 1998-11-30 2002-12-31 Sony Corporation Radio network and method of establishing time synchronization among a plurality of buses
CN101446936A (zh) * 2007-11-27 2009-06-03 宏正自动科技股份有限公司 改良式远程通用序列总线存取方法
CN101473296A (zh) * 2006-06-16 2009-07-01 高通股份有限公司 Usb无线网络驱动器
CN101710313A (zh) * 2009-11-23 2010-05-19 中兴通讯股份有限公司 一种可动态配置的usb端口复用方法、系统和装置
CN101777032A (zh) * 2009-01-14 2010-07-14 华为终端有限公司 一种实现usb端点复用的方法和设备
CN102317884A (zh) * 2009-02-18 2012-01-11 高通股份有限公司 用于支持多个用户界面、环境和/或者虚拟机的唤醒触发信号
US20130114402A1 (en) * 2011-11-09 2013-05-09 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for detecting and locating network connection failures

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035948B1 (en) * 2001-03-19 2006-04-25 Transdimension, Inc. System and method for USB controllers
CN100410910C (zh) * 2004-09-27 2008-08-13 新科电子集团有限公司 采用通用串行总线的数据传输及控制系统以及相应的方法
US20060104295A1 (en) * 2004-11-16 2006-05-18 Secure64 Software Corporation Queued, asynchronous communication architecture interface
US8010630B2 (en) * 2007-12-06 2011-08-30 Wyse Technology Inc. Local device redirection
US8650330B2 (en) * 2010-03-12 2014-02-11 International Business Machines Corporation Self-tuning input output device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502155B1 (en) * 1998-11-30 2002-12-31 Sony Corporation Radio network and method of establishing time synchronization among a plurality of buses
CN101473296A (zh) * 2006-06-16 2009-07-01 高通股份有限公司 Usb无线网络驱动器
CN101446936A (zh) * 2007-11-27 2009-06-03 宏正自动科技股份有限公司 改良式远程通用序列总线存取方法
CN101777032A (zh) * 2009-01-14 2010-07-14 华为终端有限公司 一种实现usb端点复用的方法和设备
CN102317884A (zh) * 2009-02-18 2012-01-11 高通股份有限公司 用于支持多个用户界面、环境和/或者虚拟机的唤醒触发信号
CN101710313A (zh) * 2009-11-23 2010-05-19 中兴通讯股份有限公司 一种可动态配置的usb端口复用方法、系统和装置
US20130114402A1 (en) * 2011-11-09 2013-05-09 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for detecting and locating network connection failures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301135A (zh) * 2017-06-22 2017-10-27 深圳天珑无线科技有限公司 连接建立方法及装置

Also Published As

Publication number Publication date
US20150127859A1 (en) 2015-05-07
US10331594B2 (en) 2019-06-25
CN104615558B (zh) 2018-08-10

Similar Documents

Publication Publication Date Title
CN105824777B (zh) 一种spi总线在ipran设备中的实现方法
CN102057363A (zh) 从装置之间的直接数据传输
KR20160049200A (ko) 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
CN101814058A (zh) 通用存储装置
CN107908589B (zh) I3c验证从设备、主从设备的通信验证系统及方法
CN104615558A (zh) 一种数据传送方法及电子装置
CN101937413B (zh) 一种i2c总线的通信方法
US20100023669A1 (en) Host controller disposed in multi-function card reader
CN101160569A (zh) 改进具有多个存储器控制器的电路的带宽的设备
CN108170370A (zh) 数据储存装置与数据传输速率控制方法
CN103631534B (zh) 数据存储系统以及其管理方法
CN105094687B (zh) 固态硬盘控制电路及固态硬盘装置与固态硬盘存取系统
US9542251B2 (en) Error detection on a low pin count bus
CN105718396B (zh) 一种大数据主设备传输的i2c总线装置及其通讯方法
CN103412838B (zh) 一种扩展系统、通信方法、地址配置方法、设备及装置
US11144305B2 (en) Method for updating IC firmware
CN101261611A (zh) 一种外围设备间的数据传输装置和传输方法
CN102043741B (zh) 用于管道仲裁的电路和方法
CN109992556A (zh) 一种i2c驱动方法和装置
CN101976230B (zh) 通用序列总线传输转译器及输入请求同步传输方法
CN109753461B (zh) 一种dma设备及数据传输的方法
EP2026214A1 (en) Data transfer device, request issuing unit, and request issuing method
CN106325377A (zh) 外部设备扩展卡及输入输出外部设备的数据处理方法
US20050144331A1 (en) On-chip serialized peripheral bus system and operating method thereof
CN212229628U (zh) 从机设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Hefei City, Anhui province 230000 Wangjiang Road No. 800 building 10 layer A3 Innovation Industrial Park

Applicant after: Hefei Jie FA Technology Co., Ltd.

Address before: Hefei City, Anhui province 230000 Wangjiang Road No. 800 building 10 layer A3 Innovation Industrial Park

Applicant before: Smart technology (Hefei) Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant