CN105247500B - 针对wi-fi串行总线的基于媒体时间的usb帧计数器同步 - Google Patents
针对wi-fi串行总线的基于媒体时间的usb帧计数器同步 Download PDFInfo
- Publication number
- CN105247500B CN105247500B CN201480027932.3A CN201480027932A CN105247500B CN 105247500 B CN105247500 B CN 105247500B CN 201480027932 A CN201480027932 A CN 201480027932A CN 105247500 B CN105247500 B CN 105247500B
- Authority
- CN
- China
- Prior art keywords
- general
- serial bus
- frame
- bus usb
- purpose serial
- 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
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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
公开了一种在通信信道上传送通用串行总线(USB)帧的方法。USB设备经由网络从主机设备接收一个或多个USB帧,其中该一个或多个USB帧被封装在基于与该网络相关联的通信协议的一个或多个数据分组中。该USB设备进一步使用该通信协议的时钟同步机制将本地时钟信号与主机设备的时钟信号同步。该USB设备随后确定由该主机设备传送的USB帧的数目,并且至少部分基于经同步的本地时钟信号来处理该一个或多个USB帧。对于一些实施例而言,该USB设备可以从该主机设备接收帧计数值和对应的媒体时间值。
Description
技术领域
本公开实施例一般涉及通信系统,并且尤其涉及在Wi-Fi信道上发送通用串行总线(USB)协议分组。
相关技术背景
用于连接计算机、外部外围设备以及网络的各种接口标准被采用来提供简单的高速连通性。例如,通用串行总线(USB)是通常用于将计算机(诸如PC和膝上型计算机)连接到各种各样的外围设备(诸如鼠标、键盘、打印机、闪存驱动器、扬声器以及类似设备)的高速串行总线协议。更具体地,USB协议已被开发以为用户提供用来将极广范围的多样化外围设备以即插即用方式连接到他们的计算机的增强且易用的接口。
更近期来,无线通信协议已经被开发成允许通信设备(诸如PC、膝上型计算机、平板设备和智能电话)与其他通信设备连接而不用物理电线或电缆。例如,IEEE 802.11标准定义了允许使用RF信号进行无线通信的各种Wi-Fi协议。例如,Wi-Fi接入点可以提供允许一个或多个客户端设备(诸如移动站(STA))互相通信和/或连接到外部有线网络(诸如因特网)的无线局域网(WLAN)。
由此,会期望主机设备(例如,计算机、膝上型计算机、平板设备、智能电话)与数个客户端设备(例如,鼠标、键盘、打印机、闪存驱动器、扬声器)使用相关联的WLAN来交换USB数据,例如以免除在该主机设备与客户端设备之间进行缆线连接的需要。虽然技术可以允许主机设备与客户端设备之间的无线通信,但是WLAN通信具有比蓝牙通信大得多的射程。
概述
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题内容的关键特征或必要特征,亦非旨在限定要求保护的主题内容的范围。
公开了一种在网络上传送通用串行总线(USB)帧的方法。USB设备经由网络从主机设备接收一个或多个USB帧,其中该一个或多个USB帧被封装在基于与该网络相关联的通信协议的一个或多个数据分组中。该USB设备进一步使用该通信协议的时钟同步机制将本地时钟信号与主机设备的时钟信号同步。例如,该通信协议可以对应于IEEE 802.11无线协议。由此,USB设备可以基于从主机设备(例如,在一个或多个信标帧中)接收到的定时同步功能(TSF)来调节其本地时钟信号。该USB设备随后确定由该主机设备传送的USB帧的数目,并且至少部分基于经同步的本地时钟信号来处理该一个或多个USB帧。
该USB设备可包括数据缓冲器来临时存储接收自主机设备的该一个或多个USB帧。该USB设备可以进一步部分地基于存储在该数据缓冲器中的USB帧的数目来更新本地帧计数器。相应地,USB设备可以基于该本地帧计数器来确定由主机设备传送的USB帧的数目。当本地帧计数器达到第一阈值时,USB设备可以随后开始处理存储在数据缓冲器中的USB帧。
对于一些实施例,USB设备可以从主机设备接收指示由主机设备所传送的USB帧的数目的帧计数值。USB设备也可以接收与帧计数值相关联的媒体时间值,该媒体时间值指示了帧计数值被记录时的时间。例如,该帧计数值和该媒体时间值可以在至少一个USB帧中被一起接收。USB设备可以进一步部分地基于本地时钟信号、帧计数值和媒体时间值将其本地帧计数器与主机设备中的USB帧计数器同步。
对于其他实施例,基于与网络相关联的通信协议,计算设备可以将一个或多个USB帧封装在一个或多个数据分组中。计算设备可以随后经由网络向一个或多个设备传送包括经封装的USB帧在内的该一个或多个数据分组。计算设备可以进一步向该一个或多个设备传送一组同步数据来使得该一个或多个设备中的每一个设备能处理该一个或多个USB帧。
该同步数据可包括使得该一个或多个设备中的每一个设备能将各自的本地时钟信号与该计算设备的时钟信号同步的时钟同步数据。例如,通信协议可以对应于802.11无线协议。相应地,计算设备可以用一个或多个信标帧来广播时钟同步数据,其中时钟同步数据包括TSF值。
同步数据可以进一步包括帧计数值和与该帧计数值相关联的媒体时间值。例如,计算设备可以基于传送到该一个或多个设备的USB帧的数目来更新USB帧计数器。帧计数值可以指示USB帧计数器的当前值,而媒体时间值可以指示该帧计数值被记录的时间。对于一些实施例,该帧计数值和该媒体时间值可以被一起封装在该一个或多个USB帧中的至少一个USB帧中。
对于一些实施例,该计算设备可以进一步向该一个或多个设备传送处理请求。该处理请求可以包括要开始处理该一个或多个USB帧的指令。例如,该处理请求可包括帧计数阈值。当由该计算设备传送的USB帧的数目等于帧计数阈值时,该一个或多个设备将开始处理该一个或多个USB帧。
附图简述
本发明各实施例是作为示例来解说的,且不旨在受附图中各图的限定,其中:
图1是根据一些实施例的网络设备的框图。
图2示出根据一些实施例的无线USB通信系统。
图3是描绘了将USB客户端设备与主机设备进行无线同步的潜在问题的解说性时序图。
图4A-4B是描绘根据一些实施例的示例性无线USB同步操作的序列图。
图5是描绘根据一些实施例的操作USB客户端设备的示例性方法的解说性流程图。
图6是描绘根据一些实施例的操作USB主机设备的示例性方法的解说性流程图。
图7是描绘根据一些实施例的无线USB同步操作的解说性流程图。
图8是根据一些实施例的启用USB的客户端设备的框图。
图9是根据一些实施例的启用USB的主机设备的框图。
相同的附图标记贯穿全部附图指示对应的部件。
详细描述
仅为了简便起见,以下在使用WLAN通信协议来交换USB数据的上下文中描述本公开实施例。将会理解,本公开实施例可等同地应用于在其他合适的无线标准上交换USB数据。如本文所使用的,术语WLAN和Wi-Fi可包括由IEEE 802.11标准、蓝牙、HiperLAN(与IEEE802.11标准相当的无线标准集,主要在欧洲使用)、以及具有相对较短无线电传播射程的其他技术来管控的通信。如本文中所使用的,术语“主机设备”可在本文中被使用来指代能够向其他启用USB的设备传送USB数据(例如,经由无线通信信道)的任何启用USB的设备。进一步,术语“客户端设备”可在本文中被使用来指代能够从主机设备接收USB数据(例如,经由无线通信信道)的任何启用USB的设备。应当注意,对于一些实施例,主机设备也可以可操作为客户端设备,并且反之亦然。
在以下描述中,阐述了众多具体细节(诸如具体组件、电路、和过程的示例),以提供对本公开的透彻理解。如本文所使用的,术语“耦合”意指直接连接到、或通过一个或多个居间组件或电路来连接。而且,在以下描述中并且出于解释目的,阐述了具体的命名以提供对本公开各实施例的透彻理解。然而,对于本领域技术人员将明显的是,可以不需要这些具体细节就能实践本发明各实施例。在其他实例中,以框图形式示出公知的电路和设备以避免混淆本公开。本文所描述的各种总线上所提供的任何信号可以与其他信号进行时间复用并且在一条或多条共用总线上提供。另外,各电路元件或软件块之间的互连可被示为总线或单信号线。每条总线可替换地是单信号线,而每条单信号线可替换地是总线,并且单线或总线可表示用于各组件之间的通信的大量物理或逻辑机制中的任一个或多个。本发明各实施例不应被解释为限于本文描述的具体示例,而是在其范围内包括由所附权利要求所限定的所有实施例。
如以上所提及的,将会期望主机设备(例如,计算机、膝上型计算机、平板设备、智能电话等)与一个或多个客户端设备(例如,扬声器、打印机、键盘、鼠标等)在对应WLAN上交换USB数据。与在WLAN上与一个或多个客户端设备交换USB数据相关联的至少一个问题是在不存在有线连接的情况下将客户端设备中的时钟和/或计数器与主机设备中的时钟和/或计数器进行同步。例如,USB标准定义了相关联的USB电缆上的通信协议,并且一般依靠在USB电缆上对时钟和计数器信息的交换来确保客户端设备中的时钟和/或计数器保持与主机设备中的时钟和/或计数器的同步。由此,因为WLAN通信并不使用有线连接(例如,USB电缆),所以当尝试在与WLAN相关联的无线信道上传送USB数据时,由USB标准定义的时钟同步技术可能不可用。
对于本文中的公开,可以参考开放系统互联(OSI)模型,其包括7个逻辑层:层1为物理层,层2为数据链路层,层3为网络层,层4为传输层,层5为会话层,层6为表示层,并且层7为应用层。OSI层的阶层越高,其越接近于最终用户;OSI层的阶层越低,其越接近于物理信道。例如,在OSI模型阶层的顶部的是应用层,其直接与最终用户的软件应用交互。在OSI模型阶层的底部的是物理层,其定义了网络设备与物理通信介质之间的关系。
物理层提供了对物理介质的电和物理规范,并且包括了可以调制/解调要在介质上传送/接收的数据的收发机。数据链路层为设备之间的数据传输提供了功能和/或规程上的细节,诸如寻址和信道接入控制机制。数据链路层包括两个子层:逻辑链路控制(LLC)层和介质接入控制(MAC)层。
MAC层和PHY层之间存在接口以促进这两层之间的信息交换。该接口被称为介质无关接口(MII),因为MAC层对于用于数据传输的物理介质是不表态的(并且由此对于所采用的具体PHY设备是不表态的)。以此方式,MII允许给定的MAC设备与各种各样的PHY设备结合使用。术语MII除了指全类属之外,也可指特定类型的介质无关接口。如本文中所使用的,除非另外注明,否则术语“介质接入接口”和“MII”将是指此类接口的全类属。MII的示例包括附连单元接口(AUI)、MII、精简MII、千兆位MII(GMII)、精简GMII、串行GMII(SGMII)、四重SGMII(QSGMII)、10GMII以及源同步串行MII(S3MII)。
图1是根据一些实施例的网络设备100的框图。具体地,网络设备100可以能够经由介质M1(例如,无线信道)与另一设备(为了简化起见未示出)通信。网络设备100包括处理器110、存储器120、PHY设备130和MAC设备140。PHY设备130包括耦合到无线介质M1的收发机135。虽然收发机135在图1中被解说为包括在PHY设备130中,但是收发机135可以是自立设备或者集成电路。存储器120可以是任何合适的存储器元件或者设备,包括例如EEPROM或者闪存存储器。处理器110可以是能够执行存储在例如存储器120中的一个或多个软件程序的脚本或指令的任何合适的处理器。
PHY设备130和MAC设备140各自分别包括用于经由一组信号路径160在这两个设备之间传送信号的介质无关接口(MII)150-1和150-2。对于一些实施例,MII 150-1可以包括用于分别向和从MAC设备140传送和接收数据的第一和第二PHY侧差分晶体管对(为了简化起见而未示出),并且MII 150-2可以包括用于分别向和从PHY设备130传送和接收数据的第一和第二MAC侧差分晶体管对(为了简化起见而未示出)。由此,MII 150-1在本文中可被称为PHY侧MII,而MII 150-2在本文中可以被称为MAC侧MII。
MAC设备140可以是实现OSI MAC子层的功能的任何设备或集成电路,并且可以是自立设备或者可以被集成到网络设备100中。类似地,PHY设备130可以是实现OSI物理层的功能的任何设备或集成电路,并且可以是自立设备或者可以被集成到网络设备100中。
在数据传输操作期间,当网络设备100上的最终用户软件应用经由介质M1向另一设备传送数据时,处理器110根据OSI模型的顶层来处理该数据,并且随后通过MAC设备140向PHY设备130传送该数据。随后,PHY设备130经由收发机135将该数据传送到介质M1上。
图2示出根据一些实施例的通信系统200。系统200被示为包括主级设备210和三个客户端设备220(1)-220(3),其可以使用通信信道230互相通信。对于一些实施例,通信信道230可以是促进根据IEEE 802.11标准进行通信的无线(例如,WLAN或Wi-Fi)信道,尽管其他合适的无线通信协议也是可以使用的。对于其他实施例,通信信道230可以是有线链路(例如,10GBASE-T以太网信道)。进一步,虽然图2中为了简化起见示出了三个客户端设备220(1)-220(3),但是系统200可以包括经由通信信道230连接到主机设备210的任何数目的客户端设备220。
主机设备210(其可以是计算机、膝上型计算机、平板设备、智能电话或其他合适的计算或通信设备)包括处理器211、USB控制器212、协议适配层(PAL)站管理实体(SME)213和WLAN接口214。处理器211被耦合到USB控制器212,且可以控制USB控制器212和/或主机设备210的其他组件的操作。USB控制器212可以是能够促进处理器211与PAL SME 213之间的USB通信的任何合适的USB控制器。对于至少一些实施例来说,USB控制器212可以包括物理编码子层(PCS)电路(为了简化起见而未示出)或与之相关联,来为USB通信提供编码功能。PALSME 213(其可根据由Wi-Fi千兆比特联盟(WGA)所定义的协议来操作)可以使得能在无线信道230上在主机设备210与客户端设备220(1)-220(3)之间进行USB数据的交换。耦合到PALSME 213的WLAN接口214可以包括在无线信道230上向和从客户端设备220(1)-220(3)传送和接收数据的收发机。
客户端设备220可以是任何合适的USB外围设备(例如,扬声器、打印机、键盘、鼠标等)。虽然为了简便起见未在图2中示出,但是每个客户端设备220(1)-220(3)可包括处理器、USB控制器、PAL SME、和WLAN接口以促进在无线信道230上交换USB数据。
为了由主机设备210使得客户端设备220(1)-220(3)在正确的时刻(例如,彼此并发地)提呈等时的USB数据,主机USB控制器212中的USB帧计数器应当是与客户端设备220(1)-220(3)中的USB帧计数器同步的。例如,若USB数据包含要由客户端设备(例如,作为扬声器)回放的音频信息,则可能期望使得能并发地从多个设备220(1)-220(3)回放音频信息。相应地,将客户端设备220(1)-220(3)与主机设备210同步和/或彼此同步。
对于一些实施例,主机设备210与客户端设备220(1)-220(3)之间的通信可以是双向的。例如,在特定的实例中,每个客户端设备220(1)-220(3)可以作为主机设备,而主机设备210可以作为客户端设备。更具体地,主机设备210和客户端设备220(1)-220(3)可以是能够经由无线通信信道(例如,无线信道230)进行USB帧的传送和接收二者的实质上类似的计算设备。
图3是描绘将客户端设备220(1)-220(3)与主机设备210进行同步的潜在问题的解说性时序图300。同样参见图2,当USB控制器212从处理器211接收数据时,USB控制器212可以将时戳(Tp)附于该数据,并且将该数据封装分组中用于后续传送给客户端设备220(1)-220(3)。然而,在主机设备210的MAC和PHY层之间(例如,在USB控制器212与WLAN接口214之间)可能有传输延迟(Td)。该传输延迟(其对于不同数据分组而言可能不是恒常的)可能会引起与接收、处理和/或显示从主机设备210传送的数据分组的一个或多个客户端设备220(1)-220(3)相关联的定时误差。
对于这种定时问题的一种解决方案可以涉及在主机设备210中解析数据分组,提取原始时戳(Tp),计算传输延迟(Td),并且随后更新原始时戳来反映此传输延迟。该过程(其可以涉及主机设备210内的深度分组检视(DPI)操作)消耗了宝贵的处理资源,并且可能是耗时的。进一步,许多现有的主机设备可能不包括能够对接收自USB控制器212的USB数据分组/帧执行DPI操作的电路系统或软件模块。
对于一些实施例,主机设备210和/或客户端设备220(1)-220(3)可以利用由IEEE802.11标准定义的WLAN操作来将客户端设备220(1)-220(3)与主机设备210进行同步。更具体地,主机设备210可以采用由IEEE 802.11标准实施的技术,以确保客户端设备220(1)-220(3)的计数器和/或时钟与主机设备210的对应的计数器和/或时钟被同步(并且保持同步)。例如,图4A-4B是描绘根据一些实施例的示例性无线USB同步操作的序列图。
例如,参考图4A,主机设备210生成了可以用以对去往(和/或来自)客户端设备220(1)-220(3)的数据的传送(和/或接收)进行定时的内部时钟信号(ClkH)。类似地,每个客户端设备220(1)-220(3)可以生成可以被用来对来自(和/或去往)主机设备的数据的接收(和/或传送)进行定时的对应的本地时钟信号(Clk1-Clk3)。对于一些实施例,主机设备210可以为了将本地时钟信号Clk1-Clk3与主机时钟信号ClkH进行同步的目的而向每个客户端设备220(1)-220(3)传送时钟同步(Clk_Sync)数据。每个客户端设备220(1)-220(3)可以接着使用Clk_Sync数据(例如,通过将相应的定时偏移应用与本地时钟Clk1-Clk3)来将其本地时钟与主机时钟ClkH对齐。
对于一些实施例来说,时钟同步操作可以使用已经由与通信信道230相关联的通信协议提供的一个或多个时钟同步机制或技术来执行。例如,主机时钟信号ClkH和本地时钟信号Clk1-Clk3可以基于由IEEE 802.11无线协议的定时同步功能(TSF)来生成。替换地,和/或附加地,取决于特定应用所期望的准确性程度,主机时钟信号ClkH可以使用其他时钟同步技术(例如,诸如由802.1AS、802.11v、和/或802.11mc标准所定义的那些时钟同步技术)来被与本地时钟信号Clk1-Clk3同步。
TSF定时器可以是以微秒来递增(例如,“滴答”)的模264计数器,并且由此具有264=102,400微秒的最大计数值(虽然也可以使用其他合适的定时器、时钟、和/或计数器)。对于一些实施例而言,主机设备210可以在一个或多个信标帧中向客户端设备220(1)-220(3)广播其TSF定时器值。一旦接收信标帧,每个客户端设备220(1)-220(3)可以将其自身的本地TSF定时器设置成所接收到的TSF定时器值。这确保了客户端设备220(1)-220(3)的本地TSF定时器(例如,Clk1-Clk3)是与主机设备210的TSF定时器(例如,ClkH)同步的。
对于一些实施例而言,Clk_Sync数据可以被周期性地广播和/或传送以维持主机设备210与客户端设备220(1)-220(3)之间的时钟同步。例如,在通信信道230是Wi-Fi信道的场合,802.11规范定义了其中主机设备210周期性地向客户端设备220(1)-220(3)广播信标帧的时钟同步机制。相应地,客户端设备220(1)-220(3)和主机设备210可以建立由信标区间(例如,在信标帧内提供)间隔开的一系列目标信标传送时间(TBTT)。客户端设备220(1)-220(3)可以随后在每次接收到新的信标帧时将其本地TSF定时器与主机设备210的TSF定时器重新同步。
一旦本地时钟信号Clk1-Clk3与主机时钟信号ClkH同步了,主机设备210就可以随后开始将经封装的USB帧经由通信信道230传送到客户端设备220(1)-220(3)。例如,USB帧可以对应于本会以其他方式经由USB电缆传送到一个或多个客户端设备220(1)-220(2)的USB数据。对于一些实施例,作为替代,USB帧可以被封装在要经由通信信道230传送的基于无线通信协议的一个或多个数据分组中(例如,被写入其中和/或由其携带)。客户端设备220(1)-220(3)可以将接收到的数据分组解封装以恢复原始的USB帧。对于一些实施例,每个客户端设备220(1)-220(3)可以为接收自主机设备210的每个USB帧更新本地帧计数器(例如,Cnt1-Cnt3)。
例如,参考图4B,主机设备210可以向客户端设备220(1)-220(3)传送标识帧计数值(F_Count)和与该计数值相关联的媒体时间(M_Time)的信息以将主机设备210的帧计数器CntH分别与客户端设备220(1)-220(3)的本地帧计数器Cnt1-Cnt3进行同步。帧计数器CntH可以指示由主机设备210传送的USB帧的数目。例如,主机设备210可以为要传送给客户端设备220(1)-220(3)的每个USB帧更新帧计数器CntH。
F_Count值可以指示由主机设备210(例如,基于主机帧计数器CntH)在任何给定时间传送的USB帧的总数目。更具体地,M_Time值可以(例如,基于主机时钟信号ClkH)来指定F_Count值被确定和/或嵌入在传出数据分组和/或USB帧内时的特定的时间。对于一些实施例,M_Time值可对应于嵌入在每个数据分组和/或由主机设备210所传送的帧内的传送时戳(例如,由802.11规范所定义的)。对于一些实施例,F_Count和M_Time值可以在实质上相同的时间被编码,并且由此彼此“配对”。例如,F_Count和M_Time值可以被封装在一个或多个USB帧中并且与其他经封装的USB数据一起提供。替代地,F_Count和M_Time值可以与USB数据分开地来传送(例如,作为独立管理帧的一部分)。
每个本地帧计数器Cnt1-Cnt3可以分别基于F_Count值、M_Time值和对应的本地时钟信号Clk1-Clk3来与主机帧计数器CntH进行同步。例如,帧计数同步操作可以基于下式针对任何客户端设备220来执行:
由此,在将每个本地时钟信号Clk1-Clk3与主机时钟信号ClkH同步(例如,如上文针对图4A所描述的)之后,由主机编码F_Count值与客户端设备220(1)-220(3)之一接收该F_Count值之间所流逝的时间量可以通过取F_Count值被接收到的时间(例如,基于本地时钟信号Clk1-Clk3)并减去M_Time值来确定。主机设备210在该流逝的时间期间很可能传送了的附加USB帧的数目可以通过将所流逝的时间乘以主机设备210的传送速率(例如,每时钟循环所能传送的USB帧的总数)来确定。可以将该结果加上F_Count值来确定主机计数器CntH的当前计数值。
客户端设备220(1)-220(3)可以随后基于后续接收到的USB帧来更新它们各自的本地计数器Cnt1-Cnt3。然而,应当注意,个体客户端设备220(1)-220(3)接收USB帧的速率可以有所不同。例如,由于主机设备210的数据传送中的延迟、沿着通信信道230的传播延迟、和/或多径条件,每个客户端设备220(1)-220(3)可以在不同时间接收USB帧。由此,在任何给定的时间,客户端设备220(1)-220(3)之一所缓冲的USB帧的数目可以不同于另一客户端设备所缓冲的USB帧的数目。例如,在特定的时间T,主机计数器CntH可能具有计数值N,本地计数器Cnt1可能存储有计数值N,本地计数器Cnt2可能存储有计数值N-1,而本地计数器Cnt3可能存储有计数值N-2。对于一些实施例,主机设备210可以周期性地向客户端设备220(1)-220(3)传送新的F_Count和M_Time值,从而在主机计数器CntH与每个本地计数器Cnt1-Cnt3之间维持同步。这允许每个本地帧计数器Cnt1-Cnt3维持对主机设备210所传送的帧的总数的计数,而不仅仅是客户端设备220(1)-220(3)中相应的一个客户端设备所接收的和/或缓冲的USB帧的数目。
对于一些实施例,主机设备210可以向一个或多个客户端设备220(1)-220(3)传送具有要基于特定帧计数来开始处理和/或提呈接收到的USB帧的指令的处理请求消息。例如,客户端设备220(1)-220(3)中的每一个可以包括缓存接收自主机设备210的USB帧的内部存储元件。客户端设备220(1)-220(3)可以继续缓存USB帧直到主机设备210指令其开始处理或提呈所缓存的USB帧。对于一些实施例,该处理请求消息可以指令客户端设备220(1)-220(3)要在本地帧计数器达到特定帧计数阈值之后开始处理这些USB帧。然而,如以上所描述的,本地帧计数器Cnt1-Cnt3可以相对于主机计数器CntH漂移。尽管如此,仍然期望每个客户端设备220(1)-220(3)在大致相同的时间开始处理或提呈所存储的USB帧(例如,正如在客户端设备220(1)-220(3)中的每一者都是配置成回放相同音频信号的扬声器的情形中那样)。由此,将每个本地帧计数器Cnt1-Cnt3与主机计数器CntH同步可以使得多个客户端设备220(1)-220(3)能并发地开始处理USB。
通过利用为通信信道230提供的现有时钟协议,系统200可以高效且准确地在主机设备210与客户端设备220(1)-220(3)之间维持经同步的USB帧而不要求深度分组检视。此外,根据本公开实施例,每个客户端设备220(1)-220(3)可以使用F_Count和M_Time值来确定主机设备210的当前帧计数,即使客户端设备220(1)-220(3)在不同时间接收此类值亦是如此。
图5是根据一些实施例描绘操作USB客户端设备的示例性方法500的解说性流程图。例如,方法500可以由以上参考图2和4A-4B描述的任何客户端设备220实现。具体地,客户端设备220可以经由网络从主机设备210接收一个或多个USB帧(501)。对于一些实施例,该一个或多个USB帧可以被封装在基于与该网络相关联的通信协议的一个或多个数据分组中。客户端设备220可以解封装所接收到的数据分组以恢复该一个或多个USB帧。进一步,对于一些实施例,客户端设备220可以在数据缓冲器中存储接收到的USB帧。
客户端设备220进一步将其本地时钟信号与主机设备的时钟信号同步(502)。具体地,客户端设备220可以基于通信协议的时钟同步机制将其本地时钟信号与主机时钟信号同步。例如,主机设备210可以周期性地传送或广播可以被客户端设备220使用来调节其本地时钟信号的时钟同步(Clk_Sync)数据。在802.11无线网络中,时钟同步数据可以对应于主机设备210在一个或多个信标帧中广播的TSF值。客户端设备220可以接着调节其自身的TSF值(若需要)以匹配主机设备210的TSF值(例如,如以上针对图4A所描述的)。
客户端设备220随后确定主机设备210所传送的USB帧的数目(503)。具体地,客户端设备220可以基于经同步的本地时钟信号来确定主机设备210所传送的USB帧的数目。例如,客户端设备220可以为了从主机设备210接收到的每个USB帧来更新本地帧计数器。然而,如以上所描述的,客户端设备220所接收到的USB帧的数目可能并不总是匹配主机设备210所传送的USB帧的数目(例如,由于漂移和/或丢失的数据分组)。由此,对于一些实施例,本地帧计数器可以基于主机设备210所传送的同步数据来追踪主机设备210中的USB帧计数器。同步数据可包括,例如,帧计数(F_Count)值和媒体时间(M_Time)值。更具体地,F_Count值可以指示在M_Time值所指定的时间由主机设备210传送的USB帧的数目。客户端设备220可以随后使用经同步的本地时钟信号来确定自M_Time值所指示的时间以来所传送的附加USB帧的数目(例如,如以上针对图4B所描述的)。对于一些实施例,客户端设备220可以周期性地将其本地帧计数器与主机设备210的帧计数器重新同步。
最后,客户端设备220可以基于主机设备210所传送的USB帧的数目来处理所接收到的USB帧的数目(504)。例如,主机设备210可以指令客户端设备220一旦本地帧计数器达到特定的帧计数阈值就开始处理和/或提呈所接收到的USB帧。因为本地帧计数器可以被与主机帧计数器同步,所以客户端设备220可以在主机设备210所指示的任何时间开始处理USB帧。这可以允许多个客户端设备220在大致相同的时间开始处理USB帧,而不管每个客户端设备220在那时事实上接收到的USB帧的数目。
图6是根据一些实施例描绘操作USB主机设备的示例性方法600的解说性流程图。例如,方法600可以由以上参考图2和4A-4B描述的主机设备210实现。具体地,网络上的主机设备210可以将USB帧封装在基于与该网络相关联的通信协议数据分组中(610)。如以上所描述的,USB帧可以对应于本会以其他方式经由USB电缆被传送到一个或多个客户端设备220的USB数据。主机设备210可以例如通过将对应的USB数据嵌入到要经由特定类型的通信信道传送的一个或多个数据分组中来封装USB帧。
该主机设备210可以随后经由该网络向一个或多个客户端设备220传送包括经封装的USB帧的这些数据分组。例如,该网络可以对应于由IEEE 802.11标准定义的Wi-Fi网络。相应地,主机设备210可以基于一个或多个802.11无线协议向一个或多个客户端设备220传送数据分组。对于一些实施例,主机设备210可以并发地向多个客户端设备220传送数据分组。进一步,对于一些实施例,主机设备210可包括USB帧计数器来保持对于传送到该一个或多个客户端设备220的USB帧的数目的追踪。例如,主机设备210可以为了每个所传送的USB帧来更新其USB帧计数器。
主机设备210可以进一步向该一个或多个客户端设备220传送一组同步数据来使得每个客户端设备220能处理这些USB帧(603)。同步数据可包括,例如,时钟同步(Clk_Sync)数据、帧计数(F_Count)值、和/或媒体时间(M_Time)值。更具体地,Clk_Sync数据可以被用来将主机设备210的时钟信号与该一个或多个客户端设备220(例如,以上针对图4A所描述的)的本地时钟信号进行同步。对于一些实施例,Clk_Sync数据可以由与无线通信协议相关联的时钟同步机制提供。F_Count和M_Time值可以被用来将主机设备210的USB帧计数器与该一个或多个客户端设备220(例如,以上针对图4B所描述的)的本地帧计数器同步。如以上所描述的,F_Count值可以指示在由M_Time值所指定的时间主机设备210所传送的USB帧的数目。对于一些实施例,主机设备210可以周期性地传送经更新的同步数据来维持与该一个或多个客户端设备220中的每一个客户端设备的同步。
图7是描绘根据一些实施例的无线USB同步操作700的解说性流程图。例如,参见图4A-4B,主机设备210首先经由无线通信信道230向客户端设备(例如,客户端设备220(1))传送时钟同步数据(701)。对于一些实施例,时钟同步数据可以对应于信标帧内所提供的TSF定时器值。客户端设备220(1)经由无线通信信道230接收时钟同步数据(702),并且使用与通信信道230相关联的时钟同步机制将其本地时钟信号Clk1与主机时钟信号ClkH同步704。例如,客户端设备220(1)可使用主机设备的TSF定时器值来同步其本地时钟信号Clk1(例如,如以上针对图4A所描述的)。
主机设备210封装USB帧以用于经由无线通信信道230来传送(703)。例如,参见图2,PAL SME 213可以根据Wi-Fi协议来封装要经由Wi-Fi信道传送的USB帧(例如,经由USB控制器212接收的)。对于一些实施例,可以根据WGA协议来执行封装。主机设备210将当前帧计数和媒体时间值嵌入经封装的USB帧中(705)。例如,可以从主机帧计数器CntH记录F_Count值,并且可以从主机时钟信号ClkH记录对应的M_Time值。对于一些实施例,F_Count和M_Time值是配对在一起的并且在大致相同时间被记录。最后,主机设备210将经封装的USB帧经由无线通信信道230传送到客户端设备220(1)(707)。
客户端设备220(1)经由无线通信信道接收经封装的USB帧(706),并且解析随其提供的F_Count和M_Time值(708)。对于一些实施例,客户端设备220(1)可以解析来自所接收到的数据分组的F_Count和M_Time值而不解封装USB数据。客户端设备220(1)随后基于所接收到的F_Count和M_Time值以及经同步的本地时钟信号Clk1来将其本地帧计数器Cnt1与主机帧计数器CntH同步(710)。例如,客户端设备220(1)可以基于式1(例如,以上针对图4B所描述的)来更新其本地帧计数器Cnt1。
对于一些实施例,主机设备210可以随后发布要在特定帧计数开始处理和/或提呈USB帧的指令(709)。例如,如由主机设备210所指定的,帧计数可对应于主机帧计数器CntH的计数值。一旦接收到此类指令,客户端设备220(1)可以进而基于其本地帧计数器Cnt1来处理和/或提呈经缓冲的USB帧(712)。具体地,因为本地帧计数器Cnt1被与主机帧计数器CntH同步,所以客户端设备220(1)可以在期望的时间开始处理器经缓冲的USB数据,而不顾客户端设备220(1)事实上接收到的和/或缓冲的USB帧的数目。
为了且仅为了简便起见,前述同步操作700是针对客户端设备220(1)描述的。然而,操作700可以在主机设备210与任何客户端设备220(1)-220(3)之间以大致类似的方式执行。进一步,同步操作700可确保经由无线信道230传送到多个客户端设备220(1)-220(3)的USB数据分组被播放和/或提呈(例如,在正确的时间(例如,同步地)从与客户端设备220(1)220(3)相关联的扬声器输出)。
图8是根据一些实施例的启用USB的客户端设备800的框图。客户端设备800包括无线接口810、USB接口820、处理器830和存储器840。无线接口810被耦合到处理器830并且可以被用来经由无线通信信道接收和/或传送数据信号。例如,无线通信信道可以对应于IEEE802.11无线信道。USB接口820也耦合到处理器830并且可以被用来向和/或从客户端设备800(例如经由USB电缆)传达USB数据。对于一些实施例,无线接口810可以接收封装在数据分组中的USB帧,其本将以其他方式经由USB接口820来接收。
存储器840可包括可被用来缓冲要由设备800处理和/或回放的USB帧的数据存储842。例如,经由无线接口810接收的USB帧可以被存储在数据存储842中。此外,存储器840还可包括非瞬态计算机可读存储介质(例如,一个或多个非易失性存储器元件,诸如EPROM、EEPROM、闪存存储器、硬盘驱动器、等等),其可存储以下软件模块:
·用以将本地时钟信号与主机设备的时钟信号同步的时钟同步模块844;
·用以将本地帧计数器与主机设备的USB帧计数器同步的帧同步模块846;以及
·基于本地帧计数器的帧计数值来处理接收到的USB帧的USB处理模块848。
每个软件模块可以包括指令,这些指令在由处理器830执行时可以使设备800执行相应的功能。由此,存储器840的非瞬态计算机可读存储介质可包括用于执行针对图5和7描述的操作的全部或一部分的指令。
处理器830(其耦合到存储器840)可以是能够执行存储在客户端设备800中(例如,存储器840内)的一个或多个软件程序的指令脚本的任何合适的处理器。例如,处理器830可以执行时钟同步模块844,帧同步模块846、和/或USB处理模块848。
时钟同步模块844可以由处理器830执行以将本地时钟信号与主机设备的时钟信号同步。例如,客户端设备800可以经由无线接口810从主机设备接收时钟同步(Clk_Sync)数据。对于一些实施例,Clk_Sync数据可以对应于由主机设备周期性地(例如,在信标帧中)广播的TSF值。时钟同步模块844(如由处理器830执行的时钟同步模块)可以通过将其自身的本地TSF定时器设置成接收到的TSF值来将其本地时钟信号与主机时钟信号同步(例如,以上针对图4A所描述的)。
帧同步模块846可以由处理器830执行以将本地帧计数器与主机设备的USB帧计数器同步。例如,客户端设备800可以进一步经由无线接口810从主机设备接收帧计数(F_Count)值和媒体时间(M_Time)值。如以上所描述的,F_Count值可以指示在由M_Time值所指示的特定时间主机设备所传送的USB帧的数目。帧同步模块846(如由处理器830执行的帧同步模块)可以基于F_Count和M_Time值、本地时钟信号、和主机设备的传送速率将其本地帧计数器与主机帧计数器同步(例如,如以上针对图4B所描述的)。对于一些实施例,正在执行帧同步模块846的处理器830可以为接收自主机设备的每个USB帧持续地更新(例如,递增)本地帧计数器。
USB处理模块848可以由处理器830执行以基于本地帧计数器的帧计数值来处理所接收到的USB帧。例如,一旦本地帧计数器达到特定帧计数阈值,USB处理模块848(如由处理器830执行的USB处理模块)就可开始处理存储在数据存储842中的USB帧。对于一些实施例,帧计数阈值可以由主机设备指定(例如,通过向客户端设备800传送处理请求消息)。因为本地帧计数器可以被与主机帧计数器同步,所以正在执行USB处理模块848的处理器830可以在主机设备所指示的任何时间开始处理USB帧。
图9是根据一些实施例的启用USB的主机设备900的框图。主机设备900包括无线接口910、处理器920和存储器930。无线接口910被耦合到处理器920并且可以被用来经由无线通信信道传送和/或接收数据信号。例如,无线通信信道可以对应于IEEE 802.11无线信道。对于一些实施例,无线接口910可以无线地传送封装在数据分组中的USB帧。
存储器930可包括可被用来缓冲要被封装并传送给一个或多个客户端设备的USB帧的数据存储932。此外,存储器930还可包括非瞬态计算机可读存储介质(例如,一个或多个非易失性存储器元件,诸如EPROM、EEPROM、闪存存储器、硬盘驱动器、等等),其可存储以下软件模块:
·用以将主机时钟信号与客户端设备的本地时钟信号同步的时钟同步模块934;
·用以将主机帧计数器和客户端设备的本地帧计数器同步的帧同步模块936;以及
·用以将USB帧编码到数据分组中以经由无线接口910传送的USB封装模块938。
每个软件模块可以包括指令,这些指令在由处理器920执行时可以使设备900执行相应的功能。由此,存储器930的非瞬态计算机可读存储介质可包括用于执行针对图6和7描述的操作的全部或一部分的指令。
处理器920(其耦合到存储器930)可以是能够执行存储在主机设备900中(例如,存储器930内)的一个或多个软件程序的指令脚本的任何合适的处理器。例如,处理器920能够执行时钟同步模块934,帧同步模块936、和/或USB处理模块938。
时钟同步模块934可以由处理器920执行以将主机时钟信号与客户端设备的本地时钟信号同步。例如,时钟同步模块934(如由处理器920执行的时钟同步模块)可以生成要经由无线接口910传送给一个或多个客户端设备的时钟同步(Clk_Sync)数据。对于一些实施例,Clk_Sync数据可以对应于基于主机设备900的TSF定时器的TSF值(例如,由IEEE802.11规范所定义的)。该一个或多个客户端设备中的每一个可以随后使用Clk_Sync数据将其本地时钟信号与主机时钟信号同步(例如,以上针对图4A所描述的)。对于一些实施例,正在执行时钟同步模块934的处理器920可以向多个客户端同时周期性地(例如在信标帧内)广播Clock_Sync数据
帧同步模块936可以由处理器920执行以将主机帧计数器与客户端设备的本地帧计数器同步。例如,帧同步模块936(如由处理器920执行的帧同步模块)可以生成要经由无线接口910传送给该一个或多个客户端设备的帧计数(F_Count)值和媒体时间(M_Time)值。对于一些实施例,F_Count值可以对应于M_Time值所指示的特定时间处主机帧计数器的计数值。该一个或多个客户端设备中的每一者可以随后可以基于F_Count和M_Time值、本地时钟信号、和主机设备的传送速率来将其本地帧计数器与主机帧计数器同步(例如,如以上针对图4B所描述的)。对于一些实施例,正在执行帧同步模块936的处理器920可以为传送给该一个或多个客户端设备的每个USB帧持续地更新(例如,递增)主机帧计数器。
USB处理模块938可以由处理器920执行以将USB帧编码到数据分组中以经由无线接口910来传送。例如,USB处理模块938(如由处理器920执行的USB处理模块)可以通过将对应USB数据写到要被无线地传送的一个或多个数据分组来封装USB帧。对于一些实施例,可以根据WGA协议来执行封装。进一步,对于一些实施例,正在执行USB处理模块938的处理器920可以生成要随同USB帧一起被传送给该一个或多个客户端设备的处理请求消息。如以上所描述的,处理请求消息可以包括用于(例如,基于特定USB帧计数)处理对应USB帧的指令。
应当注意,对于一些实施例,客户端设备800可以执行主机设备900的一个或多个功能,反之亦然。例如,客户端设备800可包括主机设备900的一个或多个软件模块(例如,934-938)。类似地,主机设备900可包括客户端设备800的一个或多个软件模块(例如,844-848)。
在说明书前述篇幅中,本发明各实施例已参照其具体示例性实施例进行了描述。然而将明显的是,可对其作出各种修改和改变而不会脱离如所附权利要求中所阐述的本公开更宽泛的范围。相应地,本说明书和附图应被认为是解说性而非限定性的。例如,在图5-7的流程图中描绘的方法步骤可以按其他合适的次序执行,多个步骤可以合并成单个步骤,和/或一些步骤可以被省略。
Claims (40)
1.一种在网络上操作通用串行总线USB设备的方法,所述方法包括:
经由所述网络从主机设备接收一个或多个通用串行总线USB帧,其中所述一个或多个通用串行总线USB帧被封装在基于与所述网络相关联的通信协议的一个或多个数据分组中;
使用所述通信协议的时钟同步机制来将所述通用串行总线USB设备的本地时钟信号与所述主机设备的时钟信号同步;
至少部分地基于经同步的本地时钟信号来确定由所述主机设备传送的通用串行总线USB帧的数目;以及
至少部分地基于由所述主机设备传送的通用串行总线USB帧的数目来处理所述一个或多个通用串行总线USB帧。
2.如权利要求1所述的方法,其特征在于,所述通信协议对应于IEEE802.11无线协议。
3.如权利要求1所述的方法,其特征在于,同步所述本地时钟信号包括:
从所述主机设备接收一个或多个信标帧,其中至少一个所述信标帧包括定时同步功能TSF值;以及
基于所接收到的定时同步功能TSF值来调节所述本地时钟信号。
4.如权利要求1所述的方法,其特征在于,进一步包括:
将所述一个或多个通用串行总线USB帧存储在数据缓冲器中。
5.如权利要求4所述的方法,其特征在于,确定由所述主机设备传送的通用串行总线USB帧的数目包括:
至少部分地基于存储在所述数据缓冲器中的所述通用串行总线USB帧的数目来更新本地帧计数器;以及
基于所述本地帧计数器来确定由所述主机设备传送的通用串行总线USB帧的数目。
6.如权利要求5所述的方法,其特征在于,进一步包括:
从所述主机设备接收帧计数值,其中所述帧计数值指示了由所述主机设备传送的通用串行总线USB帧的数目;以及
从所述主机设备接收媒体时间值,其中所述媒体时间值指示了所述帧计数值被记录时的时间。
7.如权利要求6所述的方法,其特征在于,所述帧计数值和所述媒体时间值在至少一个所述通用串行总线USB帧中一起被接收。
8.如权利要求6所述的方法,其特征在于,确定由所述主机设备传送的通用串行总线USB帧的数目进一步包括:
至少部分地基于所述本地时钟信号、所述帧计数值和所述媒体时间值将所述本地帧计数器与所述主机设备中的通用串行总线USB帧计数器同步。
9.如权利要求8所述的方法,其特征在于,处理所述一个或多个通用串行总线USB帧包括:
当所述本地帧计数器达到第一阈值时处理所述一个或多个通用串行总线USB帧。
10.一种在网络上操作计算设备的方法,所述方法包括:
将一个或多个通用串行总线USB帧封装在基于与所述网络相关联的通信协议的一个或多个数据分组中;
经由所述网络向一个或多个客户端设备传送包括所述一个或多个经封装的通用串行总线USB帧的所述一个或多个数据分组;以及
向所述一个或多个客户端设备传送允许所述一个或多个客户端设备处理所述一个或多个通用串行总线USB帧的一组同步数据,其中所述一组同步数据包括允许所述一个或多个客户端设备将各自的本地时钟信号与所述计算设备的时钟信号同步的时钟同步数据。
11.如权利要求10所述的方法,其特征在于,所述通信协议对应于IEEE802.11无线协议。
12.如权利要求11所述的方法,其特征在于,传送所述时钟同步数据包括:
在一个或多个信标帧内广播所述时钟同步数据,其中所述时钟同步数据包括定时同步功能TSF值。
13.如权利要求10所述的方法,其特征在于,进一步包括:
基于传送到所述一个或多个客户端设备的通用串行总线USB帧的数目来更新通用串行总线USB帧计数器。
14.如权利要求13所述的方法,其特征在于,传送所述一组同步数据包括:
向所述一个或多个客户端设备传送帧计数值,其中所述帧计数值指示了所述通用串行总线USB帧计数器的当前值;以及
向所述一个或多个客户端设备传送媒体时间值,其中所述媒体时间值指示了所述帧计数值被记录时的时间。
15.如权利要求14所述的方法,其特征在于,进一步包括:
将所述帧计数值和所述媒体时间值一起封装在所述一个或多个通用串行总线USB帧中的至少一个通用串行总线USB帧中。
16.如权利要求10所述的方法,其特征在于,进一步包括:
将处理请求传送到所述一个或多个客户端设备,其中所述处理请求包括要开始处理所述一个或多个通用串行总线USB帧的指令。
17.如权利要求16所述的方法,其特征在于,所述处理请求包括帧计数阈值,并且其中所述一个或多个客户端设备在由所述计算设备传送的通用串行总线USB帧的数目等于所述帧计数阈值时将开始处理所述一个或多个通用串行总线USB帧。
18.如权利要求17所述的方法,其特征在于,所述一组同步数据允许所述一个或多个客户端设备并发地开始处理所述一个或多个通用串行总线USB帧。
19.一种通用串行总线USB设备,包括:
经由网络从主机设备接收一个或多个通用串行总线USB帧的接收机,其中所述一个或多个通用串行总线USB帧被封装在基于与所述网络相关联的通信协议的一个或多个数据分组中;
一个或多个处理器;以及
存储指令的存储器,所述指令在由所述一个或多个处理器执行时使得所述通用串行总线USB设备:
使用所述通信协议的时钟同步机制将所述通用串行总线USB设备的本地时钟信号与所述主机设备的时钟信号同步;
至少部分基于经同步的本地时钟信号来确定由所述主机设备传送的通用串行总线USB帧的数目;以及
至少部分地基于由所述主机设备传送的通用串行总线USB帧的数目来处理所述一个或多个通用串行总线USB帧。
20.如权利要求19所述的通用串行总线USB设备,其特征在于,所述通信协议对应于IEEE 802.11无线协议,并且其中所述接收机进一步:
从所述主机设备接收一个或多个信标帧,其中至少一个所述信标帧包括定时同步功能TSF值。
21.如权利要求19所述的通用串行总线USB设备,其特征在于,执行所述指令以将所述本地时钟信号与所述主机设备的所述时钟信号同步使得所述通用串行总线USB设备:
基于所接收到的定时同步功能TSF值来调节所述本地时钟信号。
22.如权利要求19所述的通用串行总线USB设备,其特征在于,进一步包括:
用以存储所述一个或多个通用串行总线USB帧的数据缓冲器。
23.如权利要求22所述的通用串行总线USB设备,其特征在于,执行所述指令以确定由所述主机设备传送的通用串行总线USB帧的数目使得所述通用串行总线USB设备:
至少部分地基于存储在所述数据缓冲器中的所述通用串行总线USB帧的数目来更新本地帧计数器;以及
基于所述本地帧计数器来确定由所述主机设备传送的通用串行总线USB帧的数目。
24.如权利要求23所述的通用串行总线USB设备,其特征在于,执行所述指令进一步使得所述通用串行总线USB设备:
从所述主机设备接收帧计数值,其中所述帧计数值指示了由所述主机设备传送的通用串行总线USB帧的数目;以及
从所述主机设备接收媒体时间值,其中所述媒体时间值指示了所述帧计数值被记录时的时间。
25.如权利要求24所述的通用串行总线USB设备,其特征在于,所述帧计数值和所述媒体时间值在所述一个或多个通用串行总线USB帧中的至少一个通用串行总线USB帧中一起被接收。
26.如权利要求24所述的通用串行总线USB设备,其特征在于,执行所述指令以确定由所述主机设备传送的通用串行总线USB帧的数目使得所述通用串行总线USB设备:
至少部分地基于所述本地时钟信号、所述帧计数值和所述媒体时间值将所述本地帧计数器与所述主机设备中的通用串行总线USB帧计数器同步。
27.如权利要求26所述的通用串行总线USB设备,其特征在于,执行所述指令以处理所述一个或多个通用串行总线USB帧使得所述通用串行总线USB设备:
当所述本地帧计数器达到第一阈值时处理所述一个或多个通用串行总线USB帧。
28.一种计算设备,包括:
一个或多个处理器;
存储指令的存储器,所述指令在由所述一个或多个处理器执行时使得所述计算设备将一个或多个通用串行总线USB帧封装在基于与网络相关联的通信协议的一个或多个数据分组中;以及
发射机,用以:
经由所述网络向一个或多个客户端设备传送包括所述一个或多个经封装的通用串行总线USB帧的所述一个或多个数据分组;以及
向所述一个或多个客户端设备传送允许所述一个或多个客户端设备处理所述一个或多个通用串行总线USB帧的一组同步数据,其中所述一组同步数据包括允许所述一个或多个客户端设备将各自的本地时钟信号与所述计算设备的时钟信号同步的时钟同步数据。
29.如权利要求28所述的计算设备,其特征在于,所述通信协议对应于IEEE 802.11无线协议,并且其中所述发射机用以通过以下方式传送所述时钟同步数据:
在一个或多个信标帧内广播所述时钟同步数据,其中所述时钟同步数据包括定时同步功能TSF值。
30.如权利要求28所述的计算设备,其特征在于,执行所述指令进一步使得所述计算设备:
基于传送到所述一个或多个客户端设备的通用串行总线USB帧的数目来更新通用串行总线USB帧计数器。
31.如权利要求30所述的计算设备,其特征在于,所述发射机用以通过以下方式来传送所述一组同步数据:
向所述一个或多个客户端设备传送帧计数值,其中所述帧计数值指示了所述通用串行总线USB帧计数器的当前值;以及
向所述一个或多个客户端设备传送媒体时间值,其中所述媒体时间值指示了所述帧计数值被记录时的时间。
32.如权利要求31所述的计算设备,其特征在于,执行所述指令进一步使得所述计算设备:
将所述帧计数值和所述媒体时间值一起封装在所述一个或多个通用串行总线USB帧中的至少一个通用串行总线USB帧中。
33.如权利要求28所述的计算设备,其特征在于,执行所述指令进一步使得所述计算设备:
生成处理请求,其中所述处理请求包括要开始处理所述一个或多个通用串行总线USB帧的指令。
34.如权利要求33所述的计算设备,其特征在于,所述发射机进一步用于:
向所述一个或多个客户端设备传送所述处理请求。
35.如权利要求34所述的计算设备,其特征在于,所述处理请求包括帧计数阈值,并且其中所述一个或多个客户端设备在由所述计算设备传送的通用串行总线USB帧的数目等于所述帧计数阈值时开始处理所述一个或多个通用串行总线USB帧。
36.如权利要求35所述的计算设备,其特征在于,所述一组同步数据允许所述一个或多个客户端设备并发地开始处理所述一个或多个通用串行总线USB帧。
37.一种包含程序指令的计算机可读存储介质,所述程序指令在由通用串行总线USB设备内提供的处理器执行时使所述通用串行总线USB设备:
经由网络从主机设备接收一个或多个通用串行总线USB帧,其中所述一个或多个通用串行总线USB帧被封装在基于与所述网络相关联的通信协议的一个或多个数据分组中;
使用所述通信协议的时钟同步机制将所述通用串行总线USB设备的本地时钟信号与所述主机设备的时钟信号同步;
至少部分地基于经同步的本地时钟信号来确定由所述主机设备所传送的通用串行总线USB帧的数目;以及
至少部分地基于由所述主机设备传送的通用串行总线USB帧的数目来处理所述一个或多个通用串行总线USB帧。
38.一种包含程序指令的计算机可读存储介质,所述程序指令在由计算设备内的处理器执行时使所述计算设备:
将一个或多个通用串行总线USB帧封装在基于与网络相关联的通信协议的一个或多个数据分组中;
经由所述网络向一个或多个客户端设备传送包括所述一个或多个经封装的通用串行总线USB帧的所述一个或多个数据分组;以及
向所述一个或多个客户端设备传送允许所述一个或多个客户端设备处理所述一个或多个通用串行总线USB帧的一组同步数据,其中所述一组同步数据包括允许所述一个或多个客户端设备将各自的本地时钟信号与所述计算设备的时钟信号同步的时钟同步数据。
39.一种通用串行总线USB设备,包括:
用于经由网络从主机设备接收一个或多个通用串行总线USB帧的装置,其中所述一个或多个通用串行总线USB帧被封装在基于与所述网络相关联的通信协议的一个或多个数据分组中;
用于使用所述通信协议的时钟同步机制将所述通用串行总线USB设备的本地时钟信号与所述主机设备的时钟信号同步的装置;
用于至少部分地基于经同步的本地时钟信号来确定由所述主机设备传送的通用串行总线USB帧的数目的装置;以及
用于至少部分地基于由所述主机设备传送的通用串行总线USB帧的数目来处理所述一个或多个通用串行总线USB帧的装置。
40.一种计算设备,包括:
用于将一个或多个通用串行总线USB帧封装在基于与网络相关联的通信协议的一个或多个数据分组中的装置;
用于经由所述网络向一个或多个客户端设备传送包括所述一个或多个经封装的通用串行总线USB帧的所述一个或多个数据分组的装置;以及
用于经由所述网络向所述一个或多个客户端设备传送一组同步数据的装置,其中所述一组同步数据允许所述一个或多个客户端设备处理所述一个或多个通用串行总线USB帧,其中所述一组同步数据包括允许所述一个或多个客户端设备将各自的本地时钟信号与所述计算设备的时钟信号同步的时钟同步数据。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361823805P | 2013-05-15 | 2013-05-15 | |
US61/823,805 | 2013-05-15 | ||
US14/270,124 | 2014-05-05 | ||
US14/270,124 US9830298B2 (en) | 2013-05-15 | 2014-05-05 | Media time based USB frame counter synchronization for Wi-Fi serial bus |
PCT/US2014/037035 WO2014186179A1 (en) | 2013-05-15 | 2014-05-06 | Media time based usb frame counter synchronization for wi-fi serial bus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105247500A CN105247500A (zh) | 2016-01-13 |
CN105247500B true CN105247500B (zh) | 2018-04-27 |
Family
ID=51896736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480027932.3A Active CN105247500B (zh) | 2013-05-15 | 2014-05-06 | 针对wi-fi串行总线的基于媒体时间的usb帧计数器同步 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9830298B2 (zh) |
EP (1) | EP2997485B1 (zh) |
JP (1) | JP6333963B2 (zh) |
KR (1) | KR102249244B1 (zh) |
CN (1) | CN105247500B (zh) |
AR (1) | AR099254A1 (zh) |
ES (1) | ES2638212T3 (zh) |
TW (1) | TWI552558B (zh) |
WO (1) | WO2014186179A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150026505A1 (en) * | 2013-07-17 | 2015-01-22 | Kabushiki Kaisha Toshiba | Storage device, storage system, and background processing execution method |
US9723610B2 (en) * | 2015-04-07 | 2017-08-01 | Qualcomm Incorporated | Multi-layer timing synchronization framework |
JP6534913B2 (ja) * | 2015-11-06 | 2019-06-26 | 日立オートモティブシステムズ株式会社 | 情報処理装置および不正メッセージ検知方法 |
US10095653B2 (en) * | 2016-04-02 | 2018-10-09 | Intel Corporation | Apparatuses, systems, and methods for accurately measuring packet propagation delays through USB retimers |
US10929314B2 (en) * | 2016-07-29 | 2021-02-23 | Razer (Asia-Pacific) Pte. Ltd. | Interface devices, methods for controlling an interface device, and computer-readable media |
US10915490B2 (en) | 2018-02-15 | 2021-02-09 | Qualcomm Incorporated | Audio streams over peripheral component interconnect (PCI) express (PCIE) links |
KR20190119400A (ko) * | 2018-04-12 | 2019-10-22 | (주)에프씨아이 | 비콘 신호의 수신 시간을 효율적으로 추정하기 위한 방법 및 이를 위한 수신 장치 |
DE102018206934A1 (de) | 2018-05-04 | 2019-11-07 | Continental Automotive Gmbh | Gateway zur Datenkommunikation in einem Fahrzeug |
US10896106B2 (en) | 2018-05-10 | 2021-01-19 | Teradyne, Inc. | Bus synchronization system that aggregates status |
TWI772574B (zh) * | 2018-12-07 | 2022-08-01 | 新唐科技股份有限公司 | 通用序列匯流排裝置及其操作方法 |
CN115913442A (zh) * | 2019-01-22 | 2023-04-04 | 华为技术有限公司 | 通信方法和光模块 |
US11245985B2 (en) * | 2019-03-27 | 2022-02-08 | Microsoft Technology Licensing, Llc | Architecture for USB-synchronized array of speakers |
EP3987731A4 (en) * | 2019-06-18 | 2022-05-18 | Razer (Asia-Pacific) Pte. Ltd. | METHOD AND APPARATUS FOR OPTIMIZING INPUT LATENCY IN A WIRELESS HUMAN INTERFACE SYSTEM |
CN110768739B (zh) * | 2019-09-27 | 2021-04-20 | 上海鹰钛智能科技有限公司 | 一种同步串行控制系统及方法 |
CN114780469A (zh) * | 2022-06-24 | 2022-07-22 | 浙江地芯引力科技有限公司 | 时钟频率校准装置、数据芯片以及时钟频率校准方法 |
US20230239819A1 (en) * | 2023-03-28 | 2023-07-27 | Intel Corporation | Enhanced time synchronization and coordination in wireless networks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734758B1 (en) * | 2000-07-19 | 2010-06-08 | Cisco Technology, Inc. | USB encapsulation for network transmission |
CN101794269A (zh) * | 2002-07-17 | 2010-08-04 | 克罗诺洛吉克有限公司 | 同步多信道通用串行总线 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5943328A (en) * | 1996-08-13 | 1999-08-24 | Lucent Technologies Inc. | Frame counter for synchronized communication |
JP3045985B2 (ja) * | 1997-08-07 | 2000-05-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ |
US6389029B1 (en) * | 1998-11-10 | 2002-05-14 | Nortel Networks Limited | Local area network incorporating universal serial bus protocol |
US6978412B1 (en) * | 1999-08-16 | 2005-12-20 | Advanced Micro Devices, Inc. | Method and apparatus for adaptive frame tracking |
US6678747B2 (en) | 1999-08-23 | 2004-01-13 | Honeywell International Inc. | Scalable data collection and computing apparatus |
US6934752B1 (en) * | 2000-03-23 | 2005-08-23 | Sharewave, Inc. | Quality of service extensions for multimedia applications in wireless computer networks |
US7065036B1 (en) * | 2001-03-19 | 2006-06-20 | Cisco Systems Wireless Networking (Australia) Pty Limited | Method and apparatus to reduce latency in a data network wireless radio receiver |
US6898652B2 (en) * | 2001-08-22 | 2005-05-24 | General Atomics | Wireless device attachment and detachment system, apparatus and method |
EP1433071B1 (en) | 2001-09-28 | 2010-08-18 | Nxp B.V. | Bus system and bus interface for connection to a bus |
US7284081B2 (en) | 2004-01-27 | 2007-10-16 | Atmel Corporation | Method and system for routing data between USB ports |
US7668243B2 (en) * | 2004-05-18 | 2010-02-23 | Texas Instruments Incorporated | Audio and video clock synchronization in a wireless network |
US7149839B2 (en) * | 2004-12-03 | 2006-12-12 | Microsoft Corporation | Wireless USB hardware scheduling |
US8560753B1 (en) * | 2005-03-30 | 2013-10-15 | Teradici Corporation | Method and apparatus for remote input/output in a computer system |
US7406476B1 (en) * | 2005-04-04 | 2008-07-29 | Apple Inc. | Updating a data structure |
US7539889B2 (en) * | 2005-12-30 | 2009-05-26 | Avega Systems Pty Ltd | Media data synchronization in a wireless network |
JP2007194791A (ja) * | 2006-01-18 | 2007-08-02 | Kawasaki Microelectronics Kk | データ転送装置 |
US8069294B2 (en) * | 2006-03-30 | 2011-11-29 | Intel Corporation | Power-optimized frame synchronization for multiple USB controllers with non-uniform frame rates |
US20070294456A1 (en) * | 2006-06-16 | 2007-12-20 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Data communication interface and communication devices incorporating same |
JP4835345B2 (ja) * | 2006-09-19 | 2011-12-14 | ソニー株式会社 | 無線通信装置、無線通信方法、無線通信システムおよびコンピュータプログラム |
US7697522B2 (en) * | 2006-11-20 | 2010-04-13 | Broadcom Corporation | Systems and methods for aggregation of packets for transmission through a communications network |
JP4935345B2 (ja) * | 2006-12-25 | 2012-05-23 | ソニー株式会社 | コンテンツ再生システム、再生装置、再生制御方法及びプログラム |
CA2677655A1 (en) * | 2007-05-15 | 2008-11-20 | Chronologic Pty Ltd. | Usb based synchronization and timing system |
KR101141276B1 (ko) * | 2007-06-04 | 2012-05-04 | 삼성전자주식회사 | 무선 usb를 이용하여 디바이스와 접속 가능한 호스트장치의 통신 방법 및 호스트 장치와 디바이스를 포함하는무선 접속 시스템 |
JP2009003677A (ja) * | 2007-06-21 | 2009-01-08 | Nec Electronics Corp | Usbホスト、usbスレーブ、無線通信方式、及びデータ転送方法 |
CN102089932B (zh) * | 2008-07-10 | 2015-04-22 | 马维尔国际贸易有限公司 | 用于降低无线设备中的功耗的系统和方法 |
WO2010007578A1 (en) * | 2008-07-17 | 2010-01-21 | Jungo Ltd. | Cableless usb connectivity over ieee 802.11 networks |
US8503596B2 (en) | 2008-10-02 | 2013-08-06 | Aliphcom | Wireless clock regeneration and synchronization |
US20140075567A1 (en) * | 2009-01-28 | 2014-03-13 | Headwater Partners I Llc | Service Processor Configurations for Enhancing or Augmenting System Software of a Mobile Communications Device |
JP5418003B2 (ja) * | 2009-06-12 | 2014-02-19 | ソニー株式会社 | 情報処理装置、同期補正方法及びコンピュータプログラム |
US8493992B2 (en) * | 2010-02-04 | 2013-07-23 | Texas Instruments Incorporated | Interrelated WiFi and USB protocols and other application framework processes, circuits and systems |
GB201116521D0 (en) * | 2011-09-23 | 2011-11-09 | Imagination Tech Ltd | Method and apparatus for time synchronisation in wireless networks |
EP2608444B1 (en) * | 2011-12-19 | 2014-10-22 | GN Netcom A/S | Method and system for synchronizing isochronous usb audio data to a rf communication device clock |
WO2014139178A1 (zh) * | 2013-03-15 | 2014-09-18 | 华为技术有限公司 | 一种光通道数据单元业务传送装置和方法 |
US9532043B2 (en) * | 2013-08-02 | 2016-12-27 | Blackberry Limited | Wireless transmission of real-time media |
US9412332B2 (en) * | 2013-12-20 | 2016-08-09 | Blackberry Limited | Method for wirelessly transmitting content from a source device to a sink device |
-
2014
- 2014-05-05 US US14/270,124 patent/US9830298B2/en active Active
- 2014-05-06 CN CN201480027932.3A patent/CN105247500B/zh active Active
- 2014-05-06 EP EP14730016.4A patent/EP2997485B1/en active Active
- 2014-05-06 WO PCT/US2014/037035 patent/WO2014186179A1/en active Application Filing
- 2014-05-06 ES ES14730016.4T patent/ES2638212T3/es active Active
- 2014-05-06 JP JP2016513982A patent/JP6333963B2/ja active Active
- 2014-05-06 KR KR1020157035312A patent/KR102249244B1/ko active IP Right Grant
- 2014-05-14 TW TW103117039A patent/TWI552558B/zh active
- 2014-05-14 AR ARP140101947A patent/AR099254A1/es not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734758B1 (en) * | 2000-07-19 | 2010-06-08 | Cisco Technology, Inc. | USB encapsulation for network transmission |
CN101794269A (zh) * | 2002-07-17 | 2010-08-04 | 克罗诺洛吉克有限公司 | 同步多信道通用串行总线 |
Also Published As
Publication number | Publication date |
---|---|
TWI552558B (zh) | 2016-10-01 |
KR102249244B1 (ko) | 2021-05-06 |
JP2016526325A (ja) | 2016-09-01 |
JP6333963B2 (ja) | 2018-05-30 |
WO2014186179A1 (en) | 2014-11-20 |
EP2997485A1 (en) | 2016-03-23 |
CN105247500A (zh) | 2016-01-13 |
TW201448539A (zh) | 2014-12-16 |
AR099254A1 (es) | 2016-07-13 |
US20140344490A1 (en) | 2014-11-20 |
ES2638212T3 (es) | 2017-10-19 |
US9830298B2 (en) | 2017-11-28 |
EP2997485B1 (en) | 2017-06-14 |
KR20160008602A (ko) | 2016-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105247500B (zh) | 针对wi-fi串行总线的基于媒体时间的usb帧计数器同步 | |
US8023976B2 (en) | Method and system for accurate clock synchronization for communication networks | |
CN102783078B (zh) | 通过用于通信系统的通信层和子层之间的交互来进行精确时钟同步的方法和系统 | |
US11546682B2 (en) | Method and system for synchronous audio playback of TWS earphones | |
TWI559804B (zh) | Wireless devices and wireless base station devices | |
CN106878926A (zh) | 一种基于低功耗蓝牙的数据传输方法、从主设备及系统 | |
CN103650575B (zh) | 用于具有经压缩网络标识符的低开销无线信标的系统和方法 | |
CN108418896A (zh) | 用于将蓝牙设备集成到邻居感知网络中的方法和装置 | |
CN107005557A (zh) | 用于同步到多个宿设备的无线流式传输的时序的技术 | |
CN104935390B (zh) | 同步低能量检测技术 | |
JP6527289B2 (ja) | 時刻同期方法、センサ収容端末、およびセンサネットワークシステム | |
CN101548510A (zh) | 用于发送传输流包的方法和设备 | |
CN110401505A (zh) | 一种无线网络精确时间同步方法 | |
JP2016526325A5 (zh) | ||
GB2521500A (en) | Exchanging configuration information wirelessly | |
Wang et al. | Linear estimation of clock frequency offset for time synchronization based on overhearing in wireless sensor networks | |
CN1199493C (zh) | 带有用户时钟同步的无线网 | |
CN110115067A (zh) | 用于wlan管理的快速传播的操作信息 | |
CN103533630A (zh) | 空口时间同步方法及系统、无线设备、无线设备控制器 | |
CN103763676B (zh) | Ap与ac间的通信方法和设备 | |
CN105284184B (zh) | 一种数据传输方法、装置及网络系统 | |
WO2012152007A1 (zh) | 设备驱动消息处理方法及装置 | |
JP2006521074A5 (zh) | ||
KR101958374B1 (ko) | 네트워크 내의 지연을 정확하게 추정하는 서비스들, 시스템들 및 방법들 | |
CN106604305A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |