CN106489137A - 通用串行总线(usb)通信系统和方法 - Google Patents

通用串行总线(usb)通信系统和方法 Download PDF

Info

Publication number
CN106489137A
CN106489137A CN201580032235.1A CN201580032235A CN106489137A CN 106489137 A CN106489137 A CN 106489137A CN 201580032235 A CN201580032235 A CN 201580032235A CN 106489137 A CN106489137 A CN 106489137A
Authority
CN
China
Prior art keywords
usb
bulk
data
endpoint
bulk endpoint
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
Application number
CN201580032235.1A
Other languages
English (en)
Inventor
N·格伯
D·H·金
A·波洛维特斯基
D·瓦迪
A·M·巴拉诺夫斯基
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN106489137A publication Critical patent/CN106489137A/zh
Pending legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

公开了通用串行总线(USB)通信系统和方法。具体而言,本公开的各方面优化来自通过USB连接来连接的批量端点的批量数据传输的轮询和调度。通过减少轮询量以及通过偏向于已知具有要传输的数据的端点,避免了不必要的信令。信令的缩减允许在更短的时间量中传输更多的数据。减少数据传输所需要的时间可允许使用低功率模式,这进而进一步省电。

Description

通用串行总线(USB)通信系统和方法
优先权要求
本申请要求于2014年6月18日提交的题为“UNIVERSAL SERIAL BUS(USB)COMMUNICATION SYSTEMS AND METHODS(通用串行总线(USB)通信系统和方法)”的美国专利申请序列号14/308,053的优先权,该申请通过援引全部纳入于此。
背景
I.公开领域
本公开的技术一般涉及控制经由遵循通用串行总线(USB)的连接来耦合的各组件之间的通信。
II.背景
计算设备常常是从在某种形式的数据总线上彼此通信的多个模块来构建的。附加地,一个或多个外围组件可以通过与这种数据总线互操作的连接器或电缆来耦合至计算设备。例如,台式计算机可以通过将可移除的闪存存储器棒插入卡座来耦合至该存储器棒,或者通过用电缆来耦合计算机和电话来耦合至电话。用于互连诸模块或外围组件的许多数据总线可以遵循通用串行总线(USB)协议。尽管存在多个版本的USB协议,但最常用的是USB2.0和USB 3.0。
在USB协议内,单个遵循USB的连接器可以将主机连接至具有最多达三十二(32)个端点的设备。USB协议的规范允许各种类型的端点,包括同步、中断、控制、和批量。批量数据传输通常是突发的并且包含大量的时间不敏感的数据(例如,被发送至打印机的打印作业)。USB协议的规范要求端点间的公平性。该公平性是通过向每个端点提供微帧内的时隙来实现的。另外,在USB 2.0中,通过循环格式来达成公平性,其中主机依次轮询设备的每个端点。在批量端点的情形中,如果不存在数据,则该批量端点返回NAK信号。USB 3.0提供了端点可藉以返回所存储的未准备好(NRDY)信号的替换过程。随后,当数据在批量端点处为可用时,该设备发送端点准备好信号(ERDY),并且主机可以重新调度该事务。
在实践中,可以轮询若干批量端点,其重复地返回NAK信号。该循环要求指示:即使主机知道一不同的端点具有要传输的数据(例如,因为该端点在它最后一次被轮询时具有要传输的数据,并且并非所有数据都能落在微帧中所分配的空间内),那些相同的端点也将再次被轮询。另外,这种恒定的轮询妨碍进入低功率模式中。即使在USB 3.0中,也可以基于哪个端点具有要传输的数据来作出吞吐量优化。
公开概述
详细描述中公开的各方面包括通用串行总线(USB)通信系统和方法。具体而言,本公开的各方面优化来自通过USB连接来连接的批量端点的批量数据传输的轮询和调度。通过减少轮询量以及通过偏向于已知具有要传输的数据的端点,避免了不必要的信令。信令的缩减允许在更短的时间量中传输更多的数据。减少数据传输所需要的时间可允许使用低功率模式,这进而进一步省电。
在第一示例性方面,该优化是通过一旦批量端点已经发送了否定指示(例如,NAK、NYET、NRDY)信号就不轮询或者跳过它们来达成的。这一跳过可以持续预定义的时间段。在第二示例性方面,当不存在要完成的批量传输时,调度与中断传输相关联的信号,而不是等待在新帧的开始处进行中断传输。在每种情形中,通过减少到不活跃端点的信令并且将信令合并到较短的时间和较少的帧中,该优化导致功率节省以使得可以使用低功率模式。
鉴于此,在一个方面,公开了一种控制通过USB连接的数据传输的方法。该方法包括在与耦合至USB连接的主机相关联的控制系统处接收来自多个批量端点中的至少一个批量端点的否定指示,该否定指示指示该多个批量端点中的该至少一个批量端点不具有准备好要传输的数据。该方法还包括基于该否定指示来使通过USB连接至该多个批量端点中的其他端点的批量数据传输优先。
在另一方面,公开了一种计算设备。该计算设备包括配置成耦合至USB连接的主机。该计算设备还包括与该主机和USB连接相关联的控制系统。该控制系统被配置成接收来自多个批量端点中的至少一个批量端点的否定指示,该否定指示指示该多个批量端点中的该至少一个批量端点不具有要传输的数据。该控制系统还被配置成基于该否定指示来使通过USB连接至该多个批量端点中的其他端点的批量数据传输优先。
在另一方面,公开了一种控制通过USB连接的数据传输的方法。该方法包括确定多个批量端点中的每一个批量端点都不具有要传输至主机的数据。该方法还包括确定待决帧包括一个或多个中断传输。该方法还包括在待决帧开始之前将中断查询发送至中断端点。
在另一方面,公开了一种计算设备。该计算设备包括配置成耦合至USB连接的主机。该计算设备还包括与该主机相关联的控制系统。该控制系统被配置成确定多个批量端点中的每一个批量端点都不具有要传输至主机的数据。该控制系统还配置成确定待决帧包括一个或多个中断传输。该控制系统还配置成在待决帧开始之前通过USB连接将中断查询发送至中断端点。
附图简述
图1A是具有耦合至多个设备的主机的计算设备的简化框图,该多个设备各自具有一个或多个端点,该主机通过通用串行总线(USB)连接来耦合至该多个设备;
图1B是图1A的多个设备中的一个设备的简化框图,其中解说了端点;
图2是解说常规USB 2.0循环批量传输序列的查询响应的具有时间戳的帧的简化示图;
图3是通过USB 2.0总线至具有四个批量IN端点的设备的常规循环查询的简化解说;
图4是根据本公开的示例性方面的具有耦合至多个设备的主机的计算设备的简化框图,每个设备具有一个或多个端点,其中该主机通过USB连接来耦合至这些设备;
图5是经优化的批量传输过程的示例性方面的简化解说;
图6是经加权的批量传输过程的示例性方面的简化解说;
图7是经优化的中断过程的示例性方面的简化解说;
图8是允许使用低功率模式的经优化的批量传输的简化解说;
图9是示出根据本公开的示例性方面的用于USB 2.0的示例性端点仲裁过程的流程图;
图10是示出根据本公开的示例性方面的用于USB 3.0的示例性端点仲裁过程的流程图;
图11是可用于优化通过USB连接器的数据传输的外部调度器的框图;以及
图12是根据本公开的示例性方面的可包括经优化的USB连接器的基于处理器的示例性系统的框图。
详细描述
现在参照附图,描述了本公开的若干示例性方面。措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
详细描述中公开的各方面包括通用串行总线(USB)通信系统和方法。具体而言,本公开的各方面优化来自通过USB连接来连接的批量端点的批量数据传输的轮询和调度。通过减少轮询量以及通过偏向于已知具有要传输的数据的端点,避免了不必要的信令。信令的缩减允许在更短的时间量中传输更多的数据。减少数据传输所需要的时间可允许使用低功率模式,这进而进一步省电。
在第一示例性方面,该优化是通过一旦批量端点已经发送了否定指示(例如,NAK、NYET、NRDY)信号就不轮询或者跳过它们来达成的。这一跳过可以持续预定义的时间段。在第二示例性方面,在没有要进行的批量传输时而不是在帧的开始处调度与中断传输相关联的信号。在每种情形中,通过减少到不活跃端点的信令以及将信令合并到较短的时间和较少的帧中,该优化导致功率节省,以使得可以使用低功率模式。
在解决本公开的示例性方面之前,参照图1A-3讨论了通过USB连接来耦合至多个设备的常规主机的简要概览。本公开的示例性方面在以下参照图4开始。
在此方面,图1A是具有主机12的计算设备10的简化框图。主机12可具有可包括提供USB主机的常规功能性的硬件和/或软件的控制系统(CS)14。主机12可以通过USB连接18来耦合至USB集线器16。USB连接18可以是连接器、连接器和电缆、或者固定的连接,这是很好理解的并且可以根据USB 2.0、USB 3.0、或者USB 3.1标准来操作。USB集线器16可以通过相应的USB连接22(1)-22(N)(一般是连接22)来耦合至一个或多个设备20(1)-20(N)(一般是设备20)。USB连接22(1)-22(N)可以是连接器、具有电缆的连接器、或者固定的连接,这是很好理解的并且可以根据USB 2.0、USB 3.0、或者USB 3.1标准来操作。此外,一个或多个USB连接22可以具有居间的附加USB集线器26。例如,如解说的,USB连接22(N)具有居间的附加USB集线器26。注意,USB集线器16和居间的附加USB集线器26都是可任选的。
举例而言,主机12是耦合至USB集线器16(诸如USB 2.0 4端口超小型集线器或者具有9个USB 3.0数据端口+1个智能充电端口的AH231 USB集线器)的台式计算机,并且设备20(1)-20(N)是外围设备,诸如USB存储器棒、打印机、扬声器、鼠标、键盘等。居间的附加USB集线器26可以用于扩展短的电缆或者提供附加的端口,这是很好理解的。
参照图1B来更好地解说设备20。具体而言,图1B的设备20可包括一个或多个端点(EP)28(1)-28(M)。USB标准允许设备内的最多达三十二个EP。由此,M可以在一和三十二之间。EP 28(1)-28(M)可以是各种类型的端点中的任一者,包括同步、中断、控制、和批量。同样,EP 28(1)-28(M)可以是输入(IN)或者输出(OUT)EP,这是很好理解的。
参照图1A和图1B两者,CS 14使用主机控制器接口(HCI)标准来查询设备20(1)-20(N)的EP 28。例如,在遵循USB 2.0的系统中,HCI可遵循增强型HCI(eHCI)标准并且在遵循USB 3.0或者3.1的系统中,HCI可遵循可扩展(xHCI)标准。在这种HCI标准下,可存在四种类型的数据传输:控制、中断、批量、以及同步。由此,EP 28可以是控制端点、中断端点、批量端点、或者同步端点。感兴趣的是批量数据传输,该批量数据传输通常是大的、突发式的、时间不敏感的数据块,诸如举例而言被发送至打印机的打印作业或者被发送至存储的文件。
继续参照图1A和1B,为了确保公平性,CS 14以循环格式来查询设备20(1)-20(N)的EP 28之中的批量端点。然而,此类循环查询不是高效的,尤其是对于批量端点而言。具体而言,如果批量端点不具有要传输至主机12的数据,则批量端点将否定指示发送回主机12。在USB 2.0中,否定指示是NAK信号。在USB 3.0和3.1中,否定指示是NRDY(未准备好)或者NYET信号。每当发送查询和否定指示时,丢失了原本可用于来自具有数据的其他批量端点的传输数据的时间。
鉴于此,图2解说了由图1A的主机12发送的假设帧30。出于示例的考虑,假定每个设备20(1)-20(N)的所有EP 28(1)-28(M)都是批量端点并且在下文中被称为批量EP 28。帧的起始(SOF)32使帧30开始。主机在34(1)处以输入(IN)令牌的形式向第一批量EP 28(1)发送查询。第一批量EP 28(1)发送NAK信号36(1)。如由时间戳38中的值所证明的,这可花费0.2微秒。附加的输入令牌在34(2)、34(3)处被发送至其他批量EP 28(1)-28(M),并且接收到附加的NAK信号36(2)、36(3)。如在时间戳38中指示的,发送附加的输入令牌消耗6.2微秒。最后,34(4)处的到第四批量EP 28(4)的输入令牌导致数据40被发送至主机12并且后续的ACK信号42被发送。这一过程在整个帧30中继续,其中输入令牌被发送至批量EP 28并且否定指示由主机12接收。对于给定的帧30,在给定批量传输的突发特性的情况下,如果批量EP 28中给定的一个EP 28通过NAK信号来指示一次没有数据,则很有可能对于该帧30的其他部分,该批量EP 28将继续返回NAK信号。同样,如果在接收输入令牌之后批量EP 28返回数据,则在给定与批量传输相关联的较大数据文件的情况下,批量EP 28很有可能不能够在帧30内的单个时隙中发送其所有的数据。
图3中解说了循环法要求的后果的简化解说,其假定存在要被查询的四个批量端点EP 28(1)-28(4)。这些EP 28(1)-28(4)可以在单个设备20中或者跨多个设备20扩展。出于图3的目的,批量EP 28(1)、28(2)、以及28(4)都具有要传输至主机12的数据。批量EP 28(3)没有要传输的数据。在帧30的子帧44中,主机12依次将输入令牌发送至每个端点,并且从EP 28(1)和EP 28(2)接收数据,但是从EP 28(3)接收NAK信号,并且随后从EP 28(4)接收数据。在子帧46中,发生同样的结果并且以此类推贯穿帧30到子帧48以及帧30的结束。
如容易领会的,每个查询和否定指示消耗功率。同样,针对每个EP 28的恒定查询意味着数据传输频繁地持续多于一个帧30,这意味着主机12通过多个帧30保持活跃。这种活动妨碍进入低功率状态。过多的消息收发以及缺乏低功率状态两者都对功耗有贡献。尽管在台式计算设备中功耗可能不属于关注问题,但是移动终端(诸如智能电话、平板设备、以及膝上型设备)具有减少功耗以延长重新充电之间的可用时间的压力。
本公开的示例性方面通过优化批量数据传输来减少功耗。具体而言,代替xHCI和eHCI的循环格式,在本公开的示例性方面中,给予已知具有数据的批量端点优先级,并且在后续子帧中跳过发送否定指示的端点。可以在直至帧的结束或者在否定指示之后的预定义的时间(例如,数毫秒)内作出该跳过。
鉴于此,图4解说了具有带有CS 54的主机52的计算设备50。主机52通过USB连接58来耦合至设备56。设备56可包括多个EP 60(1)-60(N)(通称为(诸)EP 60)。CS 54可包括实现本公开的示例性方面的硬件和/或软件。USB连接58可以根据如由本文公开的诸方面修改的USB 2.0、USB 3.0、或者USB 3.1标准来操作。
如以上所提及的,在示例性方面,控制系统54可以通过跳过不具有数据的批量端点来优化数据传输。在图5中解说这一跳过。具体地,解说了具有帧的起始(SOF)72的帧70帧70进一步具有子帧74(1)-74(N)。在第一子帧74(1)中,向计算设备50的EP 60(1)-60(4)中的每一者发送查询(图4)。该查询可以是如先前讨论的输入令牌。第一EP 60(1)返回数据,第二EP 60(2)也返回数据。然而,第三EP 60(3)返回NAK信号。第四EP 60(4)返回数据。由此,在后续子帧74(2)-74(N)中跳过第三EP 60(3)。通过跳过第三EP 60(3),主机52不使用功率和时间来发送将可能生成NAK信号的输入令牌。在后续帧中,主机52可以再次查询第三EP 60(3)。然而,考虑到批量数据传输一般时间不敏感的特性,对第三EP 60(3)的这种查询之间的延迟是可接受的。代替延迟对后续帧的后续查询,主机52可以延迟此类后续查询达预定义的时间。
代替通过参照图5描述的跳过来达成优化或者除了通过跳过参照图5描述的跳过来达成优化之外,可以通过将特定端点进行加权来完成进一步的优化。鉴于此,图6解说了对第一EP 60(1)进行加权并且在顺序子帧中继续查询剩余的EP 60(2)、60(3)、60(4)。由此,在所提供的示例中,帧78内的每个子帧76(1)-76(3)给予第一EP 60(1)三个时隙。子帧76(1)-76(3)各自将一个时隙给予其他EP 60(2)-60(4)之一(即第一子帧76(1)也查询第二EP 60(2),第二子帧76(2)查询第三EP 60(3)等)。这一经修改的公平性可以被用于使来自占优势的端点的特别大的数据传输优先,或者在批量数据传输实际上对时间敏感的不太可能的事件中提供及时的批量数据传输。经加权的循环法还可以基于给定EP 60、设备56的所有EP 60(1)-60(N)的历史ACK/NAK响应、或者按需求或按期望的其他准则。
代替使批量数据传输优先或者除了使批量数据传输优先之外,本公开的示例性方面还可被应用于中断传输。正常情况下,在USB协议中,如果EP 60要求主机52的关注,则EP60必须等待直到主机52轮询EP 60。主机52周期性地轮询中断EP 60(即,被指定为中断端点的EP 60)。轮询的速率是由端点描述符来设置的,但是通常发生在帧的开始处。然而,经常有时候不存在要作出的可有利地用于轮询中断端点的批量传输。
鉴于此,图7解说了具有子帧82(1)-82(N)的简化帧80.在第一子帧82(1)中,EP 60(1)-60(4)是批量EP,并且仅有一个EP 60(3)返回NAK。在后续子帧82(2)中,剩余的EP 60(1)、60(2)和60(4)返回NAK。如以上提及的,EP 60(3)由于其先前的NAK信号而已经被跳过。在本公开的示例性方面下,一旦所有的批量EP 60都已经返回NAK信号,则每个EP 60都被跳过直至帧80的结束。如所解说的,如果所有EP 60的这一跳过发生在帧80内的最后子帧82(N)之前,则剩余的子帧82可以被用于将中断查询84发送至中断EP 60。后续帧86可以在帧90的起始之后消除或者跳过其经正常地调度的中断查询88。
代替如以上参照图7描述的移动中断查询或者除了移动中断查询之外,有可能充分地优化批量传输的调度,从而主机可以进入低功率或者睡眠模式。进入这种低功率或者睡眠模式对于移动终端而言节省了功率并且延长了电池寿命。鉴于此,参照图8,与控制系统54相关联的软件可以包括与调度控制器94进行通信的软件调度寄存器92,调度控制器94可以对批量传输的不同速率进行优先级排序以优化批量数据传输。具体而言,调度控制器94可以知晓待决批量数据传输的大小,并且评估如何最佳地调度传输以在最短的时间量中完成所有的传输。例如,如果一个批量传输特别大,则帧98的子帧96(1)中的所有时隙可以专用于该数据传输。随后,后续子帧96(2)可以专用于下一最大的批量数据传输,其中一个(或者数个)时隙专用于其他数据传输。因为已经传输了来自较大传输的大多数数据,所以可以为稍后的子帧(例如,子帧96(3))调度更多甚至平衡的数据传输。相对于USB标准的常规HCI的循环格式而言,此类调度允许将更多的数据投入到给定的帧98中。相应地,有可能整个帧可以是没有数据传输的。调度控制器94可以识别没有为特定帧调度数据,并且针对此类未被占据的帧100进入低功率或者睡眠模式。注意,这一方面也适用于USB 3.0和3.1。
尽管以上附图表示在帧或者子帧内可能发生什么的简化版本,但是讨论已经聚焦于至主机52的数据传输。本公开并不被如此限定。对于从主机到特定端点的数据传输可以作出类似优化。
鉴于此,图9在适用于USB 2.0的过程110的单个流程图中解说了各种各样的优化技术。在主机52开始EP仲裁时,过程110开始(框112)。CS 54等待帧的起始(框114)。在帧(例如,帧80)的起始之后,CS 54使得主机52向任何相关的中断或者同步EP 60发出输入令牌(框116)。CS 54评估EP组成是否包括任何所需要的批量EP 60(框118)。EP组成是每一应用以及经连接的相关设备的主机52的活跃EP 60的列表。如此,EP组成取决于设备和主机驱动器。如果对框118的回答为否,则过程110返回到框114。然而,如果对框118的回答为是,则CS54开始批量EP循环查询(框120)。
继续参照图9,CS 54可以根据现有数据和公平共享限制来向主机52正向其发送数据的批量EP 60发出输出(OUT)令牌(框122)。CS 54评估是否存在更多的输出EP 60(框124)。如果对框124的回答为是,则在框122处发出更多的输出令牌。如果对框124的回答为否,则以CS 54向批量EP 60发出批量输入令牌(框126)来继续过程110。CS 54确定是否存在ACK且没有短分组(即,在USB 2.0中少于512字节或者在USB 3.0中少于1024字节的分组,并且通常意味着完成了传输,这暗示下一传输中有数据的概率较低;如果不存在短分组,则在这一输入EP 60处存在更多数据的概率较高)(框128)。如果回答为是,则存在ACK,通过返回到框126,该过程对于下一批量EP 60重复。对于N个批量EP 60(1)-60(N)中的每一个批量EP重复框128,并且随后过程110继续。CS 54保存用于下一仲裁或者帧的ACK的数目。如果仅返回NAK,则CS 54配置再次发出针对此EP 60的批量输入令牌之前的等待时间(框130)。CS 54检查是否存在具有数据的更多的潜在批量EP 60(框132)。如果回答为是,则过程110移动至下一批量EP 60(框134)并且随后过程110返回到具有批量循环的框120。
继续参照图9,如果对框132的回答为否,则不存在潜在的批量EP 60,CS 54评估是否存在来自待决帧的待决中断EP 60(框136)。如果对框136的回答为是,则CS 54向相关的中断EP(而不是在下一帧处)发出输入令牌(框138)。该过程随后返回到框114。如果对框136的回答为否,则过程返回到框114,而不发出此类抢先的输入令牌。
过程110允许EP响应的自适应学习并且允许批量EP传输的调度,以优化令牌并且减少将被用于发送查询和接收否定指示的时间和功率的可能性。另外,该过程允许基于吞吐量需求和基于先前的响应来用批量EP 60进行传输。由此,如果不需要传输,则计算设备50可以进入低功率模式达可配置的时间。类似地,优先级可以被给予具有要传输的数据的EP 60并且在帧内分配更多的时隙。作为进一步优化的方面,如果批量输出EP 60正在传输数据,则为了更好的效率,CS 54可以使该数据传输优先直至该传输完成即,经常在EP 60之间改变会消耗额外的时间。当数据在特定的EP 60处可用时,停留在该EP 60并且继续作出批量输出EP 60或者批量输入EP 60,直至输出中没有数据或者根据在输入EP 60中将不会有数据的预测一般会更高效。
尽管过程110对于USB 2.0是恰适的,但是USB 3.0具有不同的输入令牌和响应过程。相应地,本公开的示例性方面可被修改以便按USB 3.0和3.1来操作。此类过程140的示例性方面参照图10来提供。过程140开始于主机52开始EP仲裁(框142)。CS 54等待帧的起始(框144)。在帧(例如,帧80)的起始之后,CS 54使得主机52向任何相关的中断或者同步EP60发出输入令牌(框146)。CS 54评估组成是否包括任何所需要的批量EP 60(框148)。如果对框148的回答为否,则过程140返回到框144。然而,如果框148的回答为是,则CS 54开始批量EP循环查询(框150)。
继续参照图10,CS 54可以根据现有数据和公平共享限制来向主机52正向其发送数据的批量EP 60发出输出令牌(框152)。CS 54评估是否存在更多的输出EP 60(框154)。如果对框154的回答为是,则在框152处发出更多的输出令牌。如果对框154的回答为否,则以CS 54向批量EP 60发出批量输入令牌来继续过程140或者在接收来自EP 60的ERDY信号之后继续过程140(框156)。CS 54确定是否存在数据并且没有短分组(框158)。如果回答为是,则存在数据,通过返回到框156,该过程对于下一批量EP 60重复。对于N个批量EP中的每一个批量EP重复框158,并且随后过程140继续。CS 54保存用于下一仲裁或者帧的数据响应的数目。如果仅返回否定指示(NRDY或者NYET),则CS 54针对下一次接收到ERDY减小该EP的优先级(框160)。CS 54检查是否存在具有数据的更多的潜在批量EP 60(框162)。如果回答为是,则过程140移动至下一批量EP 60(框164)并且随后过程140返回到具有批量循环的框150。
继续参照图10,如果对框152的回答为否,则不存在潜在的批量EP 60,CS 54评估是否存在来自待决帧的待决中断EP 60(框166)。如果对框166的回答为是,则CS 45向相关的中断EP 60(而不是在下一帧处)发出输入令牌(框168)。该过程随后返回到框144。如果对框166的回答为否,则过程返回到框134而不发出此类抢先的输入令牌。
尽管以上讨论构想了CS 54是在主机52的内部,但是本公开并不被如此限定。还可以使用外部的控制器或者外部的调度器。鉴于此,图11解说了使用高级高性能总线(AHB)从模块174通过作为从设备的AHB 172来耦合至主机52的外部调度器170。配置数据被传递至软件调度和设置寄存器176。外部调度器170可以在高级可扩展接口(AXI)主模块180处进一步耦合至AXI 178。如所提及的,外部主机调度器模块182接收数据,并且通过AHB主模块184和AXI从模块186来与USB主机/双重角色控制器188发送数据,以便通过USB连接58来与设备56通信。可任选的集线器116可以被放置在外部调度器170与设备56之间。由此,如所解说的,基于至系统存储器的AXI写入来分析响应。如果外部调度器170藉由NAK来标识不存在来自特定EP 60的数据,则外部调度器170可以指令控制器停止查询该特定EP 60。
根据本文中所公开的诸方面的用于改进USB和相关的组件上的性能的系统和方法可以被提供在或集成到任何基于处理器的设备中。不作为限定的示例包括机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD)播放器、以及便携式数字视频播放器。
鉴于此,图12解说了可采用本文中所公开的方法和硬件的基于处理器的系统190的示例。在该示例中,基于处理器的系统190包括一个或多个中央处理单元(CPU)192,其各自包括一个或多个处理器194。(诸)CPU 192可具有耦合至(诸)处理器194以用于对临时存储的数据进行快速访问的高速缓存存储器196。(诸)CPU 192被耦合至系统总线198,并且可将基于处理器的系统190中所包括的设备进行相互耦合。如图4中解说的,系统总线198可以是具有主机52和设备56的遵循USB的总线。如众所周知的,(诸)CPU 192通过在系统总线198上交换地址、控制、以及数据信息来与这些其他设备通信。例如,(诸)CPU 192可将总线事务请求传达到存储器控制器200。
其它设备可连接到系统总线198。如图12中所解说的,作为示例,这些设备可包括存储器系统200、一个或多个输入设备202、一个或多个输出设备204、一个或多个网络接口设备206、以及一个或多个显示器控制器208。(诸)输入设备202可包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。(诸)输入设备202可以是通过USB连接来耦合至基于处理器的系统190的外围设备。(诸)输出设备204可包括任何类型的输出设备,包括但不限于音频、视频、其他视觉指示器等。(诸)输出设备204可以是通过USB连接来耦合至基于处理器的系统190的外围设备。(诸)网络接口设备206可以是被配置成允许去往和来自网络210的数据交换的任何设备。网络210可以是任何类型的网络,包括但不限于:有线或无线网络、私有或公共网络、局域网(LAN)、广域网、无线局域网、以及因特网。(诸)网络接口设备216可被配置成支持所期望的任何类型的通信协议。
(诸)CPU 192还可被配置成在系统总线198上访问(诸)显示器控制器208以控制发送至一个或多个显示器212的信息。(诸)显示器控制器208经由一个或多个视频处理器214向(诸)显示器212发送要显示的信息,视频处理器214将要显示的信息处理成适于(诸)显示器212的格式。(诸)显示器212可包括任何类型的显示器,包括但不限于:阴极射线管(CRT)、发光二极管(LED)显示器、液晶显示器(LCD)、等离子显示器等。
本领域技术人员将进一步领会,结合本文所公开的诸方面描述的各种解说性逻辑块、模块、电路和算法可被实现为电子硬件、存储在存储器中或在另一计算机可读介质中并由处理器或其它处理设备执行的指令、或两者的组合。作为示例,本文中描述的设备可在任何电路、硬件组件、集成电路(IC)、或IC芯片中采用。本文所公开的存储器可以是任何类型和大小的存储器,且可被配置成存储所期望的任何类型的信息。为了清楚地解说这种可互换性,以上已经以其功能性的形式一般地描述了各种解说性组件、框、模块、电路和步骤。此类功能性如何被实现取决于具体应用、设计选择、和/或加诸于整体系统上的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应当被解读为致使脱离本公开的范围。
结合本文中公开的诸方面描述的各种解说性逻辑块、模块、以及电路可用设计成执行本文中描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。
本文所公开的诸方面可被实施在硬件和存储在硬件中的指令中,并且可驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM,或本领域中所知的任何其它形式的计算机可读介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取/写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在远程站中。在替换方案中,处理器和存储介质可作为分立组件驻留在远程站、基站或服务器中。
还注意到,本文任何示例性方面中描述的操作步骤是为了提供示例和讨论而被描述的。所描述的操作可按除了所解说的顺序之外的众多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可在多个不同步骤中执行。另外,示例性方面中讨论的一个或多个操作步骤可被组合。将理解,如对本领域技术人员显而易见地,在流程图中解说的操作步骤可进行众多不同的修改。本领域技术人员还将理解,可使用各种不同技术中的任何一种来表示信息和信号。例如,贯穿上面描述始终可能被述及的数据、指令、命令、信息、信号、位(比特)、码元、以及码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员而言将容易是显而易见的,并且本文中所定义的普适原理可被应用到其他变型而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖特征一致的最广义的范围。

Claims (26)

1.一种控制通过通用串行总线(USB)连接的数据传输的方法,包括:
在与耦合至所述USB连接的主机相关联的控制系统处,接收来自多个批量端点中的至少一个批量端点的否定指示,所述否定指示指示所述多个批量端点中的所述至少一个批量端点不具有准备好要传输的数据;以及
基于所述否定指示来使通过所述USB连接至所述多个批量端点中的其他端点的批量数据传输优先。
2.如权利要求1所述的方法,其特征在于,所述否定指示包括NAK、NRDY、或者NYET信号中的一者。
3.如权利要求1所述的方法,其特征在于,使批量数据传输优先包括:至少针对在其中接收到所述否定指示的帧使批量数据传输优先。
4.如权利要求1所述的方法,其特征在于,使批量数据传输优先包括:使批量数据传输优先达接收到所述否定指示之后的预定义时间。
5.如权利要求1所述的方法,其特征在于,进一步包括:向请求可用数据的所述多个批量端点中的每一个批量端点发送查询。
6.如权利要求5所述的方法,其特征在于,发送所述查询包括发出输入令牌。
7.如权利要求1所述的方法,其特征在于,使批量数据传输优先包括:跳过与所述否定指示相关联的所述至少一个批量端点。
8.如权利要求5所述的方法,其特征在于,进一步包括:从所述多个批量端点中的第二批量端点接收数据。
9.如权利要求8所述的方法,其特征在于,使批量数据传输优先包括:优先从所述多个批量端点中的所述第二批量端点接收数据。
10.如权利要求1所述的方法,其特征在于,使所述USB连接上至其他端点的批量数据传输优先包括:使用自适应学习算法来使至具有要传输的数据的端点的批量数据传输优先。
11.如权利要求1所述的方法,其特征在于,从多个批量端点中的至少一个批量端点接收所述否定指示包括:最初在外部控制器处接收所述否定指示并且将所述否定指示传递到所述控制系统,所述否定指示指示所述多个批量端点中的所述至少一个批量端点不具有准备好要传输的数据。
12.一种计算设备,包括:
配置成耦合至通用串行总线(USB)连接的主机;以及
与所述主机和所述USB连接相关联的控制系统,所述控制系统配置成:
从多个批量端点中的至少一个批量端点接收否定指示,所述否定指示指示所述多个批量端点中的所述至少一个批量端点不具有准备好要传输的数据;以及
基于所述否定指示来使通过所述USB连接至所述多个批量端点中的其他端点的批量数据传输优先。
13.如权利要求12所述的计算设备,其特征在于,所述否定指示包括NAK信号。
14.如权利要求12所述的计算设备,其特征在于,所述控制系统被进一步配置成向请求可用数据的所述多个批量端点中的每一个批量端点发送查询。
15.如权利要求12所述的计算设备,其特征在于,所述控制系统被配置成通过跳过与所述否定指示相关联的所述至少一个批量端点来进行优先。
16.如权利要求12所述的计算设备,其特征在于,所述控制系统位于所述主机外部。
17.如权利要求12所述的计算设备,其特征在于,所述控制系统被纳入到所述主机中。
18.如权利要求12所述的计算设备,其特征在于,所述控制系统被配置成如果所述多个批量端点中没有一个批量端点具有要传输的数据,则进入低功率模式。
19.如权利要求12所述的计算设备,其特征在于,所述主机和所述控制系统被集成到集成电路(IC)中。
20.如权利要求12所述的计算设备,其特征在于,所述计算设备被集成到选自下组的设备中:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光碟(DVD)播放器、和便携式数字视频播放器。
21.如权利要求12所述的计算设备,其特征在于,所述计算设备进一步包括与所述控制系统相关联的外部调度器,其中所述外部控制器被配置成接收所述否定指示并且将信息传递至所述控制系统。
22.一种控制通过通用串行总线(USB)连接的数据传输的方法,包括:
确定多个批量端点中的每一个批量端点都不具有要传输至主机的数据;
确定待决帧包括一个或多个中断传输;以及
在所述待决帧开始之前将中断查询发送至中断端点。
23.如权利要求22所述的方法,其特征在于,进一步包括:在没有任何中断查询的情况下开始所述待决帧。
24.如权利要求22所述的方法,其特征在于,进一步包括:如果响应于所述中断查询没有接收到中断数据,则进入低功率模式。
25.如权利要求22所述的方法,其特征在于,进一步包括:如果所述多个批量端点中的任何批量端点具有要传输至所述主机的数据,则使批量数据传输优先。
26.一种计算设备,包括:
配置成耦合至通用串行总线(USB)连接的主机;以及
与所述主机相关联的控制系统,所述控制系统配置成:
确定多个批量端点中的每个批量端点都不具有要传输至所述主机的数据;
确定待决帧包括一个或多个中断传输;以及
在所述待决帧开始之前通过所述USB连接来将中断查询发送至中断端点。
CN201580032235.1A 2014-06-18 2015-06-17 通用串行总线(usb)通信系统和方法 Pending CN106489137A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/308,053 2014-06-18
US14/308,053 US9524260B2 (en) 2014-06-18 2014-06-18 Universal serial bus (USB) communication systems and methods
PCT/US2015/036210 WO2015195790A1 (en) 2014-06-18 2015-06-17 Universal serial bus (usb) communication systems and methods

Publications (1)

Publication Number Publication Date
CN106489137A true CN106489137A (zh) 2017-03-08

Family

ID=53496971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580032235.1A Pending CN106489137A (zh) 2014-06-18 2015-06-17 通用串行总线(usb)通信系统和方法

Country Status (5)

Country Link
US (1) US9524260B2 (zh)
EP (1) EP3158460A1 (zh)
JP (1) JP2017520052A (zh)
CN (1) CN106489137A (zh)
WO (1) WO2015195790A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628784A (zh) * 2018-04-28 2018-10-09 湖南大学 串行通信器及串行通信系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170024344A1 (en) * 2015-07-22 2017-01-26 Microchip Technology Incorporated Method and System for USB 2.0 Bandwidth Reservation
CN110990323B (zh) * 2019-10-17 2023-09-15 尧芯微半导体(重庆)有限公司 一种优化的xhci调度方法
US11709791B2 (en) * 2020-09-21 2023-07-25 Icron Technologies Corporation Techniques for deconflicting USB traffic in an extension environment
KR102487899B1 (ko) * 2021-02-03 2023-01-12 효성티앤에스 주식회사 금융자동화기기의 호스트와 디바이스 간 통신 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174533A1 (en) * 2006-01-20 2007-07-26 Via Technologies, Inc. Usb data transfer method
US8200858B1 (en) * 2009-06-08 2012-06-12 Wisair Ltd. System and a method for quality of service in USB and WUSB endpoints
US8521930B1 (en) * 2010-02-25 2013-08-27 Fresco Logic, Inc. Method and apparatus for scheduling transactions in a host-controlled packet-based bus environment

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140586A (en) * 1988-01-26 1992-08-18 E-Systems, Inc. Token associated data network communications protocol
US5832492A (en) * 1995-09-05 1998-11-03 Compaq Computer Corporation Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus
US6311294B1 (en) * 1998-10-20 2001-10-30 Cypress Semiconductor Corp. Device and method for efficient bulk data retrieval using a universal serial bus
US7023868B2 (en) * 1999-04-13 2006-04-04 Broadcom Corporation Voice gateway with downstream voice synchronization
EP1102171A3 (en) 1999-11-22 2004-09-08 Texas Instruments Incorporated Universal serial bus network peripheral device
US6718412B2 (en) 2000-12-14 2004-04-06 Agilent Technologies, Inc. Apparatus and method for universal serial bus communications
CA2345596C (en) * 2001-04-27 2007-12-04 Icron Systems Inc. Method and apparatus for extending the range of the universal serial bus protocol
JP3832733B2 (ja) * 2002-01-17 2006-10-11 シャープ株式会社 ポーリング装置および通信装置
US20090024746A1 (en) * 2003-09-25 2009-01-22 Eric Welch Method and apparatus for host controller operations over a network
JP2005122372A (ja) * 2003-10-15 2005-05-12 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US7600843B2 (en) * 2004-05-27 2009-10-13 Silverbrook Research Pty Ltd Printer controller for controlling a printhead module based on thermal sensing
JP2006120115A (ja) * 2004-09-22 2006-05-11 Seiko Epson Corp 情報機器及びその制御方法
US7149839B2 (en) * 2004-12-03 2006-12-12 Microsoft Corporation Wireless USB hardware scheduling
US7640378B2 (en) * 2005-03-11 2009-12-29 Icron Technologies Corporation Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
US8560753B1 (en) * 2005-03-30 2013-10-15 Teradici Corporation Method and apparatus for remote input/output in a computer system
US20060277330A1 (en) 2005-06-01 2006-12-07 Wilhelmus Diepstraten Techniques for managing priority queues and escalation considerations in USB wireless communication systems
US8169185B2 (en) * 2006-01-31 2012-05-01 Mojo Mobility, Inc. System and method for inductive charging of portable devices
US8966141B2 (en) 2007-03-15 2015-02-24 Realtek Semiconductor Corp. Virtual pipe for wire adapter communications
US20100198999A1 (en) 2009-02-05 2010-08-05 Qualcomm Incorporated Method and system for wireless usb transfer of isochronous data using bulk data transfer type
CN101963947B (zh) * 2010-09-30 2013-10-02 威盛电子股份有限公司 通用序列总线传输转译器及大量传输方法
JP2013029884A (ja) * 2011-07-26 2013-02-07 Ricoh Co Ltd データ転送装置、画像投影装置、データ転送方法およびプログラム
JP2014052981A (ja) * 2012-09-10 2014-03-20 Renesas Electronics Corp Usbペリフェラル装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174533A1 (en) * 2006-01-20 2007-07-26 Via Technologies, Inc. Usb data transfer method
US8200858B1 (en) * 2009-06-08 2012-06-12 Wisair Ltd. System and a method for quality of service in USB and WUSB endpoints
US8521930B1 (en) * 2010-02-25 2013-08-27 Fresco Logic, Inc. Method and apparatus for scheduling transactions in a host-controlled packet-based bus environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628784A (zh) * 2018-04-28 2018-10-09 湖南大学 串行通信器及串行通信系统

Also Published As

Publication number Publication date
WO2015195790A1 (en) 2015-12-23
EP3158460A1 (en) 2017-04-26
US20150370733A1 (en) 2015-12-24
JP2017520052A (ja) 2017-07-20
US9524260B2 (en) 2016-12-20

Similar Documents

Publication Publication Date Title
US10182398B2 (en) Downstream device service latency reporting for power management
CN105657639B (zh) 双模设备及其实现同时通信的方法
CN106489137A (zh) 通用串行总线(usb)通信系统和方法
TWI410789B (zh) 單晶片系統及用於其之方法
CN112449694B (zh) 多端口电力传送应用中的负载平衡
CN100595744C (zh) 芯片上系统集成电路、电子系统及在其内传送数据的方法
CN1551592B (zh) 数据传输控制装置、电子设备及数据传输控制方法
RU2716560C2 (ru) Базовая радиостанция и система связи, содержащая базовую радиостанцию
CN107533531B (zh) 经调度的通用串行总线(usb)低功率操作
TW200815985A (en) Address assignment through device ID broadcast
CN1444752A (zh) 智能卡虚拟集线器
CN108027792B (zh) 用于芯片间和芯片内节点通信的统一系统和方法
US11513991B2 (en) Batch operation across an interface
CN103092701A (zh) 一种通信方法、装置及电子设备
EP2717533A1 (en) Method, network card and hard disk card for accessing to shut-down hard disk
TW202014904A (zh) I3c上的低等待時間虛擬通用輸入/輸出
CN103353851A (zh) 一种管理任务的方法和设备
CN101581964B (zh) 计算机系统及外围设备驱动方法
US20190013962A1 (en) Modular communication framework
CN101452430B (zh) 多处理器之间的通信方法与包括多处理器的通信装置
JP2005122372A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
CN102445981B (zh) 数据传输系统以及数据传输方法
CN103986588A (zh) 电脑系统及电脑装置的远端遥控方法
CN113250944B (zh) 一种基于主从控制系统的控制方法及水泵控制系统
CN100403285C (zh) 一种具有主机系统操作功能的半导体存储装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170308

WD01 Invention patent application deemed withdrawn after publication