CN109417500A - 用于控制等时数据流的系统和方法 - Google Patents

用于控制等时数据流的系统和方法 Download PDF

Info

Publication number
CN109417500A
CN109417500A CN201780039891.3A CN201780039891A CN109417500A CN 109417500 A CN109417500 A CN 109417500A CN 201780039891 A CN201780039891 A CN 201780039891A CN 109417500 A CN109417500 A CN 109417500A
Authority
CN
China
Prior art keywords
processor
usb
drift
grouping
host
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
CN201780039891.3A
Other languages
English (en)
Other versions
CN109417500B (zh
Inventor
A·余
A·张
A·库尔卡尼
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 CN109417500A publication Critical patent/CN109417500A/zh
Application granted granted Critical
Publication of CN109417500B publication Critical patent/CN109417500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • 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
    • 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
    • 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/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • 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
    • 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/16Sound input; Sound output
    • G06F3/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40117Interconnection of audio or video/imaging devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/608ATM switches adapted to switch variable length packets, e.g. IP packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/002Arrangements for synchronising receiver with transmitter correction of synchronization errors correction by interpolation
    • H04L7/0029Arrangements for synchronising receiver with transmitter correction of synchronization errors correction by interpolation interpolation of received data signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/2849Audio/video appliances
    • 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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开了用于控制等时数据流的系统和方法。本公开的特定方面被设计成与几乎任何等时数据流联用,但非常适合于与通用串行总线(USB)协议联用。此外,本公开的各方面是灵活的,以既容适USB协议内的现有配置可能性又容适所提议的USB协议的将来改变。这些系统和方法的灵活性是通过计算以下各项来提供的:(1)USB主机系统时间与应用之间的漂移以及(2)该USB主机系统与USB设备时钟之间的漂移。基于这两个漂移计算,时间戳可被合成以编程下一递送调度。使用这一时间戳,可以进行抖动校正,并且可以组装均匀大小的分组以传递到应用处理器。

Description

用于控制等时数据流的系统和方法
优先权要求
本申请要求于2016年6月27日提交的题为“PROGRAMMABLE RATE-MATCHED DATARATE OUTPUT REGULATOR FOR ISOCHRONOUS DATA STREAMS(用于等时数据流的可编程速率匹配数据率输出调节器)”的美国临时专利申请S/N.62/355,166的优先权,该临时申请的全部内容通过援引纳入于此。
本申请还要求于2017年6月9日提交的题为“ISOCHRONOUS DATA STREAM CONTROLSYSTEMS AND METHODS(等时数据流控制系统和方法)”的美国临时专利申请S/N.62/517,247的优先权,该临时申请的全部内容通过援引纳入于此。
本申请还要求于2017年6月23日提交的题为“SYSTEMS AND METHODS FORCONTROLLING ISOCHRONOUS DATA STREAMS(用于控制等时数据流的系统和方法)”的美国专利申请S/N.15/631,807的优先权,该专利申请的全部内容通过援引纳入于此。
背景
I.公开领域
本公开的技术一般涉及处置数据总线上的任意数据流。
II.背景技术
计算设备在当代生活中已变得无处不在。计算设备的普及部分地由于这些计算设备上可用的不断增加的功能性而激增。在功能性增加的同时,可以与计算设备相关联的补充设备的数量和类型也在增加。在一些情形中,补充设备可被集成到计算设备中,诸如将相机集成到智能电话中。在其它情形中,补充设备可以是外围设备,诸如通过某种形式的外部接口耦合至计算设备的音频头戴式送受话器。在这两种情形中,已经出现各种协议以允许在计算设备上运行的应用按需与补充设备交互。
一种流行的协议是通用串行总线(USB)协议。USB存在各种形式,包括全速(FS)、高速(HS)和超高速(SS)。另外,USB允许主机和外围设备之间的各种时钟同步方案。具体而言,USB构想了同步到来自外围设备的时钟(被称为异步),同步到来自主机的时钟(被称为同步),以及在主机和外围设备之间共享时钟同步职责(被称为自适应)。虽然各种形式和时钟同步方案允许使用USB协议来增加设备数目的设计灵活性,但是大量选项使得一些设计决策更加困难。
当音频和/或视频流正在通过USB接口传送时,此类设计决策被进一步复杂化。由于USB形状因子的通用本质,预期USB主机能够容适来自外围设备的音频/视频捕捉和去往外围设备的音频/视频回放两者。具体而言,预期USB主机能够容适不同速度、不同时钟同步方案、不同采样率、以及大小可变的数据。常规系统将对此类容适的负担施加于应用层,这需要在应用层中的应用方面的实质性缓冲和复杂算法。另外,当前存在增加服务区间的提议,这可能对处置应用层的应用处理器施加附加的负担。相应地,存在对于用于提供允许在处置那些当前实现的可变数据流时有更大的灵活性并且具有处置不同输入参数的灵活性的USB兼容系统的方式的需求。
公开概述
详细描述中公开的各方面包括用于控制等时(isochronous)数据流的系统和方法。本公开的特定方面被设计成与几乎任何等时数据流联用,但非常适合于与通用串行总线(USB)协议联用。此外,本公开的各方面是灵活的,以既容适USB协议内的现有配置可能性又容适所提议的USB协议的将来改变。这些系统和方法的灵活性是通过计算以下各项来提供的:(1)USB主机系统时间与应用之间的漂移以及(2)该USB主机系统与USB设备时钟之间的漂移。基于这两个漂移计算,时间戳可被合成以编程下一递送调度。使用这一时间戳,可以进行抖动校正,并且可以组装均匀大小的分组以传递到应用处理器。使用此类均匀大小的分组可以消除对于应用层中的缓冲器的需求,这在数据流是音频数据流时可以改善用户体验。
就此而言,在一个方面,公开了一种用于控制USB系统中的通信的方法。该方法包括在具有USB驱动器的第一处理器处接收大小不同的分组。该方法还包括在第一处理器处组装均匀大小的分组。该方法还包括将这些均匀大小的分组传递给第二处理器以供协议栈中的应用层处的应用使用。
在另一方面,公开了一种主机。该主机包括应用处理器。该主机还包括USB硬件。该主机还包括音频数字信号处理器(ADSP)。该ADSP被配置成通过该USB硬件在该ADSP处接收大小不同的分组。该ADSP还被配置成在该ADSP处组装均匀大小的分组。该ADSP还被配置成将这些均匀大小的分组传递给该应用处理器以供协议栈中的应用层处的应用使用。
在另一方面,公开了一种主机。该主机包括应用层。该主机还包括USB硬件。该主机还包括片上系统(SoC),其包括多个处理器。该多个处理器被配置成在第一处理器处接收大小不同的分组。该多个处理器还被配置成在第一处理器处组装均匀大小的分组。该多个处理器还被配置成将这些均匀大小的分组传递给第二处理器以供协议栈中的应用层处的应用使用。
在另一方面,公开了一种用于检测USB系统中的漂移的方法。该方法包括确定分数采样率被用在音频外围设备与主机之间的USB总线上。该方法还包括确定服务区间上与该分数采样率相关联的第一分数余数。基于第一分数余数,该方法还包括计算与没有分数余数所需的区间数目相对应的整数。该方法还包括每整数个区间检查漂移。
在另一方面,公开了一种处理器。该处理器包括输入端。该处理器还包括控制系统。该控制系统被配置成确定分数采样率被用在音频外围设备与主机之间的USB总线上。该控制系统还被配置成确定服务区间上与该分数采样率相关联的第一分数余数。基于第一分数余数,该控制系统还被配置成计算与没有分数余数所需的区间数目相对应的整数。该控制系统还被配置成每整数个区间检查漂移。
在另一方面,公开了一种合成时间戳的方法。该方法包括从数据递送处置器接收运行命令。该方法还包括将来自高分辨率定时器的输出与所计算出的绝对时间戳求和。
在另一方面,公开了一种处理器。该处理器包括音频数据缓冲器。该处理器还包括USB音频客户端(UAC)。该UAC被配置成接收大小不同的分组。该UAC还被配置成组装均匀大小的分组。该UAC还被配置成将这些均匀大小的分组传递给第二处理器以供协议栈中的应用层处的应用使用。
附图简述
图1是根据本公开的示例性方面的具有通过通用串行总线(USB)电缆和连接器耦合的远程音频外围设备的移动通信设备的简化立体视图;
图2是从USB外围设备到处理器内的应用层的常规音频流的框图;
图3是根据本公开的示例性方面的USB系统内的音频流的框图;
图4A和4B示出了具有本公开的数据调节器的替代放置的两个USB系统;
图5是数据调节器的框图;
图6是示出如何计算分组大小以及如何将分组传递给应用层的信号流图;
图7是从话筒到USB主机的带内漂移报告过程的框图;
图8是从话筒到USB主机的带外漂移报告过程的框图;
图9是从话筒到主机的带内漂移报告过程以及该主机如何使用该过程来进行至扬声器的回放的框图;
图10是从话筒到主机的带外漂移报告过程以及该主机如何使用该过程来进行至扬声器的回放的框图;以及
图11是可包括图3的USB系统的示例性的基于处理器的系统的框图。
详细描述
现在参照附图,描述了本公开的若干示例性方面。措辞“示例性”在本文中用于表示“用作示例、实例、或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
详细描述中公开的各方面包括用于控制等时数据流的系统和方法。本公开的特定方面被设计成与几乎任何等时数据流联用,但非常适合于与通用串行总线(USB)协议联用。此外,本公开的各方面是灵活的,以既容适USB协议内的现有配置可能性又容适所提议的USB协议的将来改变。这些系统和方法的灵活性是通过计算以下各项来提供的:(1)USB主机系统时间与应用之间的漂移以及(2)该USB主机系统与USB设备时钟之间的漂移。基于这两个漂移计算,时间戳可被合成以编程下一递送调度。使用这一时间戳,可以进行抖动校正,并且可以组装均匀大小的分组以传递到应用处理器。使用此类均匀大小的分组可以消除对于应用层中的缓冲器的需求,这在数据流是音频数据流时可以改善用户体验。
在叙述本公开的特定方面之前,公开了可实现用于控制等时数据流的系统和方法的示例性系统的简要概述。如上所述,虽然适用于各种等时数据流,但示例性方面尤其适用于USB音频流。由此,该示例性系统是USB数字音频系统。
就此而言,图1是具有USB Type-C插槽102的移动通信设备100的简化立体视图,USB Type-C插槽102被配置成耦合至USB电缆106上的USB Type-C连接器104。在USB电缆106的远端处是数字音频头戴式送受话器108,其具有耳机112中的多个扬声器110以及话筒114。数字音频信号可通过USB电缆106在移动通信设备100和数字音频头戴式送受话器108之间传递。来自话筒114的音频可能不均匀地分布在时域中,因为话音模式很少是周期性的。同样,移动通信设备100并不先验已知数字音频头戴式送受话器108支持什么数据速度,移动通信设备100也不先验已知数字音频头戴式送受话器108使用什么同步格式。
虽然本公开的示例性方面非常适合于音频环境(诸如图1的数字音频头戴式送受话器108),但本公开并不被限定于此,并且可与在计算设备(诸如移动通信设备100)和具有显示器、扬声器和话筒的虚拟现实头戴式送受话器(或具有扬声器和话筒的显示器)之间传递的音频/视频信号联用。同样,虽然以上公开了USB Type-C电缆,但本公开能容易地与其它版本的USB联用。实际上,能够处置任何USB速度(例如,全速(FS)、超高速(SS)、高速(HS))是本公开的优点之一。
图2提供了在不实现本公开的各方面的移动通信设备200中如何处置音频(以及或许视频)数据的简化框图。移动通信设备200可耦合至USB外围设备202,诸如数字音频头戴式送受话器。USB外围设备202可支持异步、同步、自适应、或混合时钟同步模式并且可包括一个或多个锁相环(PLL,解说了两个PLL)或延迟锁定环(DLL,未解说)。USB外围设备202可诸如通过话筒来接收数据(被标记为数据输入)(有时被称为捕捉)以及诸如通过耳机中的扬声器来输出数据(被标记为数据输出)(有时被称为回放)。数据被传递往来于移动通信设备200(诸如通过USB电缆206),并通过恰适的插槽(图2中未解说)传递给移动通信设备200内的USB硬件控制器208。USB硬件(在附图中有时被标记为硬件)控制器208通信地连接至片上系统(SoC)210。SoC210可包括音频数字信号处理器(ADSP)212和应用处理器(在附图中被标记为AP)214。ADSP 212可包括USB音频客户端(UAC)驱动器216。来自USB外围设备202的数据在USB硬件控制器208处被接收并传递给SoC 210。注意,来自USB外围设备202的数据是抖动的并且包括可变数据帧大小(由USB硬件控制器208与UAC驱动器216之间的各种大小的框象征性地解说)。如果USB外围设备202的一个或多个PLL运行得较快或较慢,则可出现进一步的可变性。可出现再进一步的可变性,因为在USB协议中,不要求帧内存在固定数目的样本。虽然此类可变性是对USB协议的灵活性和吸引力作出贡献的事项的一部分,但此类可变性在音频处理中一般难以处置。当USB硬件控制器208在其内部缓冲器(未示出)中具有数据时,USB硬件控制器208生成针对UAC驱动器216的中断。USB硬件控制器208并不具有加时间戳功能。UAC驱动器216接收中断,排空USB硬件控制器208的缓冲器,并且尝试向应用处理器214提供恒定数据量。当存在部分式音频采样(诸如44.1千赫兹(kHz)的共用采样率,其相对于一毫秒(对应于1000Hz的共用USB总线传输速度)而言是部分式的)时,UAC驱动器216将以十个分组中有九个分组具有44个样本以及一个分组具有45个样本的方式发送数据。应用处理器214中的数据处理电路系统218协同高分辨率系统定时器222来使用其缓冲器220,以在向应用层算法224提供数据之前平滑掉该可变性。异步采样率转换器(ASRC)226可辅助校正漂移和样本在一时间历时内的抖动群集的这一过程。这一安排对应用处理器214施加了负担并且需要用于应用层算法224的附加编程。注意,虽然ADSP 212和应用处理器214被描述为分开的处理器,但这两个设备可被集成到单个集成电路(IC)中。虽然未解说,但硬件直接存储器访问(DMA)控制器可生成数据中断,并且来自高分辨率系统定时器222的硬件锁存的时间戳被存储在硬件寄存器中。这一时间戳不能容易地与USB分组相关联,并且由此不能容易地可用于辅助漂移检测。
本公开的示例性方面提供了无差错漂移检测,可以根据该无差错漂移检测来应用抖动校正并且可以根据该无差错漂移检测来计算合成时间戳。使用这一合成时间戳,可以计算被用于排空缓冲器的下一递送调度。此外,通过在应用处理器之外重新定位该计算,均匀的数据帧大小可被提供给应用处理器,这进而可以改善音频质量并且潜在地提供功率节省机会。本公开的益处之一是本公开容适主机和设备之间任何形式的时钟同步办法(异步、同步、或自适应)以及各种数据速度、不同采样率、大小可变的数据、不同USB速度(HS、FS、SS)和不同服务区间的灵活性。虽然本公开可以严格用硬件来实现,但本公开的灵活性通过使用软件得到改善,其中变量更容易调整以容适任何配置。在探索本公开的系统的详情以及可被用于实现本公开的各方面的各种信令之前,给出了用于创建该灵活性的公式的概览。
以下章节是数学密集的并且是为感兴趣的读者保留的,但对于理解本公开的示例性方面可能并非是关键的。对于不愿让数学扰乱其对本公开的理解的读者,下面参照图3再次开始示例性方面的讨论。
主机使用的经基本漂移补偿的速率匹配音频缓冲器递送模型可被表达为:
ticksnext=ticksreference+ticksoffset+D1+D2…+DM (式1)
在式1中,ticksnext(也被称为“Tnext”)是有效地用于编程下一递送调度的合成时间戳。ticksreference(也被称为“Tref”)是第一合成时间戳的时间戳。Ticksoffset(也被称为“Toffset”)是与用于缓冲器递送的ticksreference的增量(Δ)并且还充当拾取缓冲器以进行回放和捕捉的定时。在式1中,每个Di表示设备时钟与USB时间基准之间的总漂移。在大多数情形中,只要考虑三个时钟——USB主机时钟、音频应用时钟、以及USB设备时钟。USB主机时钟充当其它两个时钟两者的系统时间基准,并且由此,式1将通常简化为:
ticksnext=ticksreference+ticksoffset+Dapp-usb-Ddevice-usb (式2)
式2对音频捕捉路径和音频回放路径两者有效。Dapp-usb是音频应用时钟与USB主机时钟之间的时间差。Ddevice-usb是USB设备时钟相对于USB主机时钟走得有多快。这些值一起给出净系统漂移(即,音频样本移动较快还是较慢)。对于音频捕捉路径,当Ddevice-usb为正时,设备在比USB主机清除音频样本更快地递送它们。当Dapp-usb为正时,音频应用在比USB主机递送音频样本更快地检索它们。在音频回放路径上,当Dapp-usb为正时,音频应用在比USB主机清除音频样本更快地递送它们。当Ddevice-usb为正时,设备在比USB主机递送音频样本更快地检索它们。该值被递送给异步采样率转换器(ASRC)以合成和/或内插允许该ASRC知晓要校正多少的音频。
捕捉与回放路径的漂移Ddevice-usb可被显式或隐式地确定。漂移是基于数据流的方向(即,设备到主机(通常为捕捉)或主机到设备(通常为回放))来获得的。漂移信息源取决于USB宣告了什么以及高级操作系统(HLOS)为USB端点对选择了哪一等时同步模式。实际上,捕捉与回放路径之间存在二十种等时同步模式的组合。
下表1中概述了漂移信息源。Ddevice-usb在表1中缩写为Ddevice
表1 漂移信息源
表1假定音频应用时钟与USB主机时钟同相(Dapp-usb=0)。这一假定使所有同步和自适应回放(输出)路径具有输出:Ddevice=0。
本公开的示例性方面提供了用于检测采样频率、采样区间、样本大小、总线速度、时钟同步模式等的基本上任何变化的漂移的技术。这一灵活性是通过容适这些可变输入并且允许恰适漂移检测的通用公式来达成的。
应领会,质量、环境和制造精度都将影响一个异步时钟相比于系统中的另一异步时钟而言保持时间的能力。存在其中沿捕捉路径有多个时钟并且在回放路径上有多个时钟的系统。路径的净漂移是沿该路径的每个子系统时钟之间的时间差之和。本公开解说了通过测量恰适频率处的漂移,无差错漂移检测被启用且不需要的测量被避免,这可允许功率节省。
USB系统中的音频流送增加的难度在于,预期此类音频流送使用等时传输模式。它是不带有差错校验或重试的实时专用带宽模式。音频样本按音频分组的形式集束且音频分组可每(微)帧发送一次。每个此类帧为125μs或1ms,这取决于物理层选择HS还是FS USB传输模式。USB协议支持在突发中发送此类帧以用于功率节省以及处置较大的网络等待时间。每服务区间的帧数由2binterval-1描述,其中binterval当前是1到16之间的值。USB协议的主管机构之间已经进行了关于扩展这一数目的讨论。每服务区间的帧数是固定的,但每突发发送的音频样本数目可以是可变的。
已被认为是与评估漂移相关的因素包括使用源测量单位来保持累积漂移。从一个单位到另一单位的转换一般涉及除法运算,这可能引入舍入或截断误差。此类截断误差的累积可导致主机和设备之间在时间解读方面的分歧。通过在源测量单位中保持累积,任何截断误差都是临时的并且应当被系统认为是不显著的抖动。
另一因素是最大可容忍系统抖动。合理的可容忍系统抖动小于一个音频样本的精度,以避免被音频系统解读为实漂移。由此,可容忍系统抖动可以是音频采样频率的函数。如果可容忍抖动足够小,则硬件辅助可能是必要的,因为纯软件实现可能不能足够快地作出反应以服务向事件加时间戳的中断。
在给定了这些考量的情况下,当将USB音频设备的即时频率反馈看作时钟源时,可导出式6。在此类实例中,Ff是USB设备向USB主机报告的每帧音频样本的平均数目。在FSUSB传输模式中,在每个周期FS上向主机报告即时频率Ff
周期FS=210-bRefresh个帧 (式3)
或在HS USB传输模式中,在每个周期HS上向主机报告即时频率Ff
周期HS=2(binterval-1个微帧 (式4)
即时漂移由此为
Δ漂移=Ffk–Ffk-1 (式5)
并且当主机接收到反馈时计算该即时漂移
Ticksconv(D)=(D*1000)/fs*19.2MHz (式6)
其中fs是采样频率。注意,19.2MHz是一个示例性高分辨率系统定时器的速度。如果高分辨率系统定时器具有不同速度,则此处应当替换不同值,这将式6转变为以下通用公式。
Ticksconv(D)=(D*1000)/fs*f定时器 (式6A)
在从由虚拟分组是一个虚拟帧的定义等效性得到的USB 2.0信号中恢复时钟方面存在挑战。相应地,需要从非线性数据流中恢复时钟的解决方案。此类解决方案遵循每个时钟晶体具有至少500ppm的精度的假设。每虚拟帧的样本数被定义为:
每虚拟帧样本数=fs/ft*2(binterval-1) (式7)
其中fs是采样频率,ft是服务区间频率,并且binterval如上定义。为便于标记,每虚拟帧样本数可缩写为NSPVF。
另外,需要对齐乘数,并如下定义:
其中1000000被任意地选择为非常大的基数为10的值以提高分数精度。根据式7和8,可如下计算预期样本数:
预期样本数=NSPVF*对齐乘数 (式9)
对齐乘数表示在可能有稳定漂移确定之前主机所需要的最少数目的虚拟帧。预期样本数是预期接收到的样本数目。出于视觉清楚起见,NSPVF是中间变量,而不是浮点。对于接收到的每个虚拟帧对齐乘数,通过下式来计算Δ漂移:
Δ漂移=所接收样本数–预期样本数 (式10)
由此,通过下式来计算与音频会话的开始的净漂移:
D=D净漂移+Δ漂移 (式11)
D个音频样本到系统定时器(有时被称为Qtimer)滴答计数的转换为:
Ticksconv(D)=D净漂移/fs*19.2MHz (式12)
同样,注意,19.2MHz是高分辨率系统定时器的速度。如果高分辨率系统定时器具有不同值,则此处应当替换这一不同值,从而得到:
Ticksconv(D)=D/fs*f定时器 (式12A)
在具有以上概述的漂移信息和时钟检测信息的情况下,可以完成速率匹配。在速率匹配的情况下,均匀样本大小可被创建并发送给应用处理器,如以下所概述的。然而,在叙述均匀样本大小之前,给出了更多数学以解释速率匹配。具体而言,这有助于定义如何计算ticksoffset
记住,在没有漂移的情况下
ticksnext=ticksreference+ticksoffset (式13)
其中ticksoffset被定义为
其中fd是递送频率,并且i针对每一ticknext递增并在i=fs时绕回以避免i溢出。在绕回点处,ticksreference=ticksnext,进而i=0。
在掌握以上阐述的数学的情况下,现在阐述本公开的示例性方面。就此而言,图3是如何在实现本公开的示例性方面的移动通信设备300中处置音频(以及或许视频)的简化框图。
移动通信设备300包括应用处理器302和ADSP 304。在一示例性方面,应用处理器302和ADSP 304可在单个SoC 306中。同样,虽然被描述为概念上不同的处理器,但这些处理器可以是单个主机处理器的一部分。再进一步,虽然被赋予诸如“应用处理器”或“ADSP”之类的特定功能,但应领会,传统上不用此类称谓来指代的其它处理器仍然可以实现相当的功能性而不脱离本公开的范围。应用处理器302可与USB硬件控制器308通信,USB硬件控制器308通过USB接口312(其可包括USB插槽、USB连接器、以及USB电缆)与USB外围设备310(诸如头戴式送受话器)通信。
如同图2的USB外围设备202一样,USB外围设备310可支持异步、同步、自适应、或混合时钟同步模式并且可包括一个或多个PLL(解说了两个PLL)或DLL(未解说)。USB外围设备310可诸如通过话筒来接收数据(被标记为数据输入)(如上所述,有时被称为捕捉)以及诸如通过耳机中的扬声器来输出数据(被标记为数据输出)(如上所述,有时被称为回放)。数据通过USB接口312被传递往来于移动通信设备300。
ADSP 304可包括UAC驱动器314。UAC驱动器314可使用主机控制器接口(HCI)(未解说)来与USB硬件控制器308通信。在常规系统中,UAC驱动器314中没有HCI,因为ADSP 304不与USB硬件控制器308通信。然而,本公开的示例性方面允许USB硬件控制器308与ADSP 304之间的通信。相应地,HCI可被提供以实现此类通信。UAC驱动器314从USB硬件控制器308接收不稳定且大小不同的数据帧。
本公开的示例性方面向UAC驱动器314添加一个或多个缓冲器316以及将高分辨率系统定时器318耦合至UAC驱动器314,这允许UAC驱动器314向应用处理器302(或处置应用的其它处理器)中的数据处理电路系统320传递稳定、精确且固定的数据帧大小。再进一步,UAC驱动器314可通过信号322向数据处理电路系统320提供净回放和捕捉延迟。通过向数据处理电路系统320提供均匀数据帧,应用层算法324不必那样大量地缓冲数据或执行与图2的数据处理电路系统218相关联的校正。即使应用层算法324接收到均匀数据帧,应用处理器302也可包括ASRC 326,其可辅助处理信号322以对漂移校正信息和/或抖动问题进行动作。再次注意,应用处理器302可与ADSP 304合并作为单个微处理器,或者可由不同供应商提供不同名称。
虽然图3构想了将UAC驱动器314放置在ADSP 304中,但应领会,其它位置也是可能的,如图4A和4B中所解说的。
就此而言,图4A解说了具有数字音频转换器(DAC)402的头戴式送受话器400(或其它USB外围设备),DAC 402从话筒或类似物捕捉数据并将该数据提供给UAC数据调节器(UAC调节器)404UAC调节器404使得分组大小均匀并向硬件控制器406提供分组,硬件控制器406进而在电缆406上将这些分组传递给USB主机410。USB主机410用主机硬件控制器412接收这些分组。应用层(未具体解说)中的应用414(在附图中被标记为应用)接收到这些均匀分组并对它们进行处理,这是很好理解的。在此类安排中,USB主机410可类似于图2的USB主机那样操作,但受益于头戴式送受话器400发送给USB主机410的均匀分组。头戴式送受话器400中增加的电路系统可能提高了头戴式送受话器400的成本,但可以向旧式USB主机提供益处。
在图4B中,USB主机410保持不变,但是取代在头戴式送受话器400中放置数据调节器,在中间设备420(诸如保护器(dongle)420)中提供UAC数据调节器418。保护器420可以在电缆422的主机侧422A或外围侧422B。即,电缆422可在保护器420与头戴式送受话器424之间延伸(其中保护器420被插入到USB主机410的USB插槽中),或者电缆422可在USB主机410与保护器420之间延伸(其中保护器420被插入到头戴式送受话器424的USB插槽中)。作为又一可能性(如图所示),保护器可以在电缆422中,并且电缆422插入到USB主机410和头戴式送受话器424的相应插槽中。
图5是可在图3的UAC驱动器314内部实现的数据调节器的框图。缓冲器316(在图5中也被称为FIFO)接收大小不同的数据分组500。带内漂移检测器502在其接收到数据可用中断信号504时读取缓冲器316中的数据分组500的大小。替换地,带外漂移检测器506接收异步反馈分组信号508和数据可用中断信号504。检测器502或506中的一者由复用器510读取。复用器510通过设置检测类型信号512在检测器502和506的输出之间进行选择。复用器510向设备漂移累积器514输出信号。并发地,数据可用中断信号504被提供给本地时钟漂移检测器516,其向本地时钟漂移累积器518提供信号。求和器520从本地时钟漂移累积器518的输出(Dapp-usb)中减去设备漂移累积器514输出(Ddevice-usb)并输出信号522。信号522对应于Dapp-usb-Ddevice-usb
继续参照图5,数据可用中断信号504还被提供给初始参考处置器524。初始参考处置器524向高分辨率时钟功能526输出读计数器。高分辨率时钟功能526还从本地时钟漂移检测器516接收读计数器。高分辨率时钟功能526还可接收设置高分辨率定时器Ft值,其将允许时钟值被改变。注意,该值不太可能在中间操作中改变,但可以在系统初始化时或在类似时机时被设置。高分辨率时钟功能526与高分辨率系统定时器318互操作。初始参考处置器524还被添加到抖动延迟元件528,并且被用来设置启动时间戳加延迟信号530的初始Tref。
缓冲器316向数据递送处置器534输出数据信号532(被标记为“读数据”),数据递送处置器534还接收高分辨率系统定时器318的输出536。数据递送处置器534还可接收指示ASRC预期处理何种大小的缓冲器的设置输出缓冲器大小命令(或许来自ASRC 326)。信号530被提供给求和器538,求和器538向其添加Tref并生成中间信号540,向中间信号540添加Toffset以生成信号542,信号542被传递给求和器544(其实质上恰适地执行式6或式12)。求和器544将信号542、信号522和输出536相加以生成合成时间戳546(实质上为式2)。数据递送处置器534输出针对求和器544的运行命令,并向ASRC326提供固定数目的样本。ASRC 326还接收合成时间戳546,并输出经重采样的数据548。虽然未具体解说,但还可接收设置采样频率命令以辅助如上所述的计算。
在示例性方面,该数据调节器被实现为软件。在另一示例性方面,该数据调节器可以用硬件来实现。
图6是代表当数据处理器中的应用希望使用图3的UAC驱动器314时可能发生的信号和过程的信号流图。最初,在激活设立阶段,应用提供设立信息。该设立信息可包括采样率、总线传输频率、缓冲器大小、时钟恢复模式等。这一设立信息被提供给UAC驱动器314的数据率调节器(参见图5)。该数据率调节器计算如何以已被请求的速率准确地且稳定地(无抖动地)递送来自USB硬件控制器308的数据。上文解释了这一计算的过程。该示图中的定时器/时钟元件是图3的高分辨率系统定时器318,但也可使用其它定时器。
图6是代表当数据处理器(诸如应用处理器302)中的应用希望使用UAC驱动器314时可能发生的信号和过程的信号流图600。最初,在激活设立阶段(框602),该应用提供设立信息。应用处理器302设置ASRC 326处的输入和输出采样频率,并发送输入采样率频率、总线传输频率、服务区间(其大于或等于总线传输频率)、输出缓冲器大小、时钟恢复模式(异步、自适应、或同步)、因硬件接口而异的任何设立参数,并且向UAC驱动器314(尤其是向UAC驱动器314中的数据调节器)注册(诸)缓冲器316的任何物理存储器。最后,向数据调节器发送激活命令(信号604)。数据调节器将因硬件接口而异的设立参数传递给USB硬件控制器308(信号606),并对要写入的下一空闲缓冲器空间进行编程(信号608)。USB硬件控制器308向数据调节器发送数据就绪事件信号610。信号610使数据调节器读取高分辨率系统定时器318(信号612),从USB硬件控制器308读取数据大小(信号614),并执行包括以下动作的一系列动作:将该时钟值存储到Tref中,向Tref添加Tjitter(从缓冲器大小导出,并且在未被显式地反馈驱动的情况下从接收到的数据大小导出),初始化i=0、Ddevice-usb=0、Dapp-usb=0,并计算下一Toffset;计算Tnext(式2)(一般地参见框616)。数据调节器随后对高分辨率系统定时器318的Tnext进行编程(信号618),并对要写入的下一空闲缓冲器空间进行编程(信号620)。
继续参照图6,系统进入稳态且数据调节器接收来自USB硬件控制器308的下一数据就绪事件(信号622),这触发允许数据调节器更新净漂移(Ddevice-usb和Dapp-usb)的读时钟信号624和读数据大小信号626(一般地参见框628)。
在某一时刻,USB硬件控制器308可向数据调节器发送异步时钟反馈事件(信号630),这使该数据调节器更新Ddevice-usb(一般地参见框632)。
在某一其它时刻,高分辨率系统定时器318可向数据调节器发送定时器期满事件信号634。响应于这一信号634,该数据调节器可将i递增1,并在i等于采样频率的情况下将Tref设为Tnext且i=0;计算下一Toffset;并且计算式2(一般地参见框636)。数据调节器可向应用处理器302发送数据可用信号638,并对Tnext进行编程(信号640),并且对要写入的下一空闲缓冲器空间进行编程(信号642)。应用处理器302从数据调节器读取净漂移或时间戳(信号644),并从UAC驱动器314中的(诸)缓冲器316(信号646)和/或USB硬件控制器308(信号646A)读取数据。
应用处理器302根据新的净漂移和先前的净漂移来计算要校正的样本数(框648),并将数据写入到其文件系统中,诸如通过使用具有数据、数据长度、要校正的样本、以及校正变量的历时的写命令。注意,数据可以是语音分组。如果必要,漂移校正可以在可配置的时段上被伸展以减少可感知到的毛刺。然而,即使在具有伸展时段的情况下,还是预期此类校正在25ms(而不是如常规系统中有时使用的10秒)量级上发生。该过程随后停用(框660)。
进一步注意,本公开的附加方面提供了用于提供无差错漂移检测并且支持将来的规划功率节省创新的技术。就此而言,应领会,分数采样率(诸如相对常用的44.1kHz)由于外围设备处的累积器与主机处的累积器之间的相位失配而倾向于漂移误检。与包括辅助漂移检测的时间戳的信令协议形成对比,USB协议不包括从外围设备至主机的时间戳。确切而言,主机只接收分组化USB数据。在每个USB分组内部,数据量是可变的。业内已经很好地记录了分数采样率和未知分组大小的问题。通常的解决方案是在一长时段(诸如十分钟)上对样本取时间平均并随后执行漂移校正。组装样本时间平均的长延迟导致在校正被应用之前的等待时间。在校正被应用之前,用户可能经历降级的音频体验。同样,校正粒度对于即时或随机漂移事件而言可能是不恰适的。
本公开的示例性方面允许无差错漂移检测。这通过使用示例来作出最佳解释。假定采样频率(Fs)为44.1kHz且USB总线传输速度为1000Hz(即,每毫秒1个样本),并且binterval(每分组的样本)为11,则主机将预期每区间接收到45158.4个样本。在USB规则下,不能发送分数样本。外围设备累积器在样本被传送给主机时开始,但主机累积器被延迟直到接收之后,因此这些累积器是异相的。在第二区间,外围累积器为90316.8。再次,分数样本作为相对于主机累积器的漂移出现。随时间推移,在没有外部漂移的情况下,这一漂移将在1和0之间切换,但可能偶尔导致要进行不需要的校正。
替代如先前解决方案中那样对漂移取时间平均,本公开的示例性方面评估分数余数并找到达成整数所需的区间数目。在本示例中,如果分数余数为0.4,则达成整数所需的区间数目为5(0.4=2/5,分母为5,因此为五个区间)。UAC驱动器314可检查由这样计算出的区间数目确定的边界处的累积器。由此,在该示例中,UAC驱动器314每隔五个区间检查漂移。由分数采样率导致的虚漂移不存在,因此如果检测到漂移,则这是必须对其作出校正的实漂移(即,内插或抽取等)。此外,通过忽略中间样本的漂移,计算可被放弃,这可以导致功率节省。
USB协议构想了两种漂移报告形式。第一种是隐式漂移检测,其中检查界内信号并将其与已知值作比较以确定漂移。第二种是由外围设备向主机发送的显式带外信令,其中外围设备将所接收的样本与预期样本数作比较并报告回这两个值之间的任何漂移。USB协议并未谈及如何执行隐式漂移检测,并且USB协议也未谈及主机可如何校正(隐式地或显式地)检测到的任何漂移。本公开已阐述了以上若干等式以及用于处置漂移检测及其校正的过程。图7-10解说了音频源(图7和8)和音频阱(图9和10)两者的两种可能的漂移报告可能性以及校正过程。具体而言,图7解说了用于音频源(即,话筒700)的带内漂移报告过程。话筒700捕捉数据并通过USB设备驱动器704在大小不同的数据分组中以恒定速率将其传递给USB主机中的USB主机驱动器706(框702)。USB主机驱动器706从来自话筒700的数据隐式地导出漂移信息,并且所提取的漂移信息被用于在该数据被存储在缓冲器710中之时确定对至音频客户端和程序定时器的递送进行定时的Tref+Toffset(框708)。上文阐述了用于确定Tref+Toffset的方程。在基于框708的输出的定时器触发712处,以可变速率将固定数目的分组从缓冲器710发送给ASRC 716(框714)。并发地,使用该漂移信息来报告净回放延迟(框718),并且生成合成时间戳(框720)。ASRC 716输出经重采样的数据(框722)。虽然固定数目的分组实际上是固定的,但改变速率允许漂移被校正。即,分组递送可被加速以校正一个漂移,或者被减慢以校正另一方向上的漂移。
类似地,图8基本上类似,但反映了用于话筒800的带外漂移报告过程。具体而言,USB设备驱动器802基于话筒800的输出来执行漂移检测。USB设备驱动器802随后输出带外漂移报告(框804)以及以恒定速率发送大小不同的数据分组(框806)。漂移信息和数据两者被提供给USB主机中的USB主机驱动器808。漂移信息被用于在数据被存储在缓冲器812中之时使用上述等式来确定对至音频客户端和程序定时器的递送进行定时的Tref+Toffset(框810)。在基于框810的输出的定时器触发814处,缓冲器812以可变速率向ASRC 818发送固定数目的分组(框816)。并发地,使用该漂移信息来报告净回放延迟(框820),并且生成合成时间戳(框822)。ASRC 818输出经重采样的数据(框824)。再次,使用可变速率允许漂移校正。
作为对比,图9和10探索了漂移对回放路径的影响。就此而言,图9解说了带内漂移报告过程。话筒900可以充当图7的话筒700,但更感兴趣的是扬声器902。扬声器902从USB设备驱动器904接收数据。USB设备驱动器904从USB主机驱动器906接收数据。USB主机驱动器906将进入USB主机驱动器906的数据与如上所述的USB参考作比较以确定漂移信息。该漂移信息被用于使用上述等式来确定对至音频客户端和程序定时器的递送进行定时的Tref+Toffset(框908)。该确定被用于帮助生成定时器触发(框910),报告净记录延迟(框912),以及创建合成时间戳(框914)。在定时器触发(框910)处,以可变速率取回固定数目的分组(框916)并将其提供给音频模块918(其在缓冲器920中缓冲这些分组)。缓冲器920以恒定速率释放大小不同的数据分组(框922)并将它们提供给USB主机驱动器906,USB主机驱动器906通过USB设备驱动器904将它们传递给扬声器902。使用大小不同的数据分组允许漂移被校正。在话筒900和扬声器902两者经由相同源进行时钟控制的情况下,可从在USB主机驱动器906处经由带内漂移检测器检测到的漂移推断出扬声器方向上的漂移校正。
类似地,图10解说了带外漂移报告过程。话筒1000可以充当上述图8的话筒800。更感兴趣的是扬声器1002。扬声器1002向USB设备驱动器1006传递带外漂移信息和数据(框1004)。USB设备驱动器1006从USB主机驱动器1008接收数据并同样将带外漂移信息传递给USB主机驱动器1008。该漂移信息被用于确定对至音频客户端和程序定时器的递送进行定时的Tref+Toffset(框1010)。该确定被用于帮助生成定时器触发(框1012),报告净记录延迟(框1014),以及创建合成时间戳(框1016)。在定时器触发(框1012)处,以可变速率取回固定数目的分组(框1018)并将其提供给音频模块1020(其在缓冲器1022中缓冲这些分组)。缓冲器1022以恒定速率释放大小不同的数据分组(框1024)并将它们提供给USB主机驱动器1008,USB主机驱动器1002通过USB设备驱动器1006将它们传递给扬声器902。再次,使用大小不同的数据分组允许漂移校正。
如以上所提及的,示例性方面允许将来构想的功率节省。这一可能性是通过用于处置可变数据和采样率的通用(有时被称为不可知)算法来实现的。即,在以上等式中,这些等式开始于作为采样率的不可知fs和作为总线传输速度的ft(其已经构想了FS、SS和HS)。通过在应用层算法324中使用这些不可知值,其它新采样率或其它非标准采样率被容适。该不可知办法允许对DLL的合适估计。应领会,binterval(每分组样本数)的增大既增加了分组大小又增加了填充(诸)缓冲器316所花费的时间。由于在(诸)缓冲器316正被填充之时应用处理器302是空闲的,因此应用处理器302可被置于低功率模式或睡眠模式。填充(诸)缓冲器316所花费的时间越长(即,每分组样本数越大),应用处理器302可处于睡眠模式的时间越长。应用处理器302处于睡眠模式的时间越长,则越多功率被节省。由此,业内存在增加每分组样本数的压力。通过在应用层算法324中具有通用binterval,本公开的示例性方面可以接受音频设备描述符中更大的binterval值以及由此容适每分组样本数的任何将来变化,并由此允许将来功率节省。
根据本文公开的各方面的用于控制等时数据流的系统和方法可被提供在或被集成到任何基于处理器的设备中。不作为限定的示例包括:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)设备、移动电话、蜂窝电话、智能电话、会话发起协议(SIP)电话、平板设备、平板手机、服务器、计算机、便携式计算机、移动计算设备、可穿戴计算设备(例如,智能手表、保健或健康跟踪器、眼镜,等等)、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD)播放器、便携式数字视频播放器、汽车、车载组件、航空电子系统、无人机以及多旋翼直升机。
就此而言,图11解说了可采用执行本文描述的漂移检测、速率匹配和均匀分组组装的基于处理器的系统1100的示例。在该示例中,基于处理器的系统1100包括一个或多个中央处理单元(CPU)1102,每个中央处理单元包括一个或多个处理器1104。(诸)CPU 1102可以具有耦合至(诸)处理器1104以用于对临时存储的数据进行快速访问的高速缓存存储器1106。(诸)CPU1102被耦合至系统总线1108,且可交互耦合被包括在基于处理器的系统1100中的主设备和从设备。如众所周知的,(诸)CPU 1102通过在系统总线1108上交换地址、控制、以及数据信息来与这些其他设备通信。例如,(诸)CPU1102可以向作为从设备的示例的存储器控制器1110传达总线事务请求。尽管未在图11中解说,但可提供多个系统总线1108,其中每个系统总线1108构成不同的织构。
其他主设备和从设备可被连接到系统总线1108。如在图11中所解说的,作为示例,这些设备可以包括存储器系统1112、一个或多个输入设备1114、一个或多个输出设备1116、一个或多个网络接口设备1118、以及一个或多个显示器控制器1120。(诸)输入设备1114可以包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。(诸)输出设备1116可以包括任何类型的输出设备,包括但不限于音频、视频、其他视觉指示器等。(诸)网络接口设备1118可以是被配置成允许往来于网络1122的数据交换的任何设备。网络1122可以是任何类型的网络,包括但不限于有线或无线网络、私有或公共网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、蓝牙TM网络、以及因特网。(诸)网络接口设备1118可以被配置成支持所期望的任何类型的通信协议。存储器系统1112可包括一个或多个存储器单元1124(0-N)。
(诸)CPU 1102还可被配置成在系统总线1108上访问(诸)显示器控制器1120以控制发送给一个或多个显示器1126的信息。(诸)显示器控制器1120经由一个或多个视频处理器1128向(诸)显示器1126发送要显示的信息,该视频处理器1128将要显示的信息处理成适用于(诸)显示器1126的格式。(诸)显示器1126可包括任何类型的显示器,包括但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、发光二极管(LED)显示器等。
本领域技术人员将进一步领会,结合本文所公开的各方面描述的各种解说性逻辑块、模块、电路和算法可被实现为电子硬件、存储在存储器中或另一计算机可读介质中并由处理器或其他处理设备执行的指令、或这两者的组合。作为示例,本文中描述的设备可在任何电路、硬件组件、集成电路(IC)、或IC芯片中采用。本文中所公开的存储器可以是任何类型和大小的存储器,且可配置成存储所需的任何类型的信息。为清楚地解说这种可互换性,各种解说性组件、框、模块、电路和步骤在上文已经以其功能性的形式一般性地作了描述。此类功能性如何被实现取决于具体应用、设计选择、和/或加诸于整体系统上的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。
结合本文中所公开的各方面描述的各种解说性逻辑块、模块、以及电路可用设计成执行本文中描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。处理器可以是微处理器,但在替换方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合(例如DSP与微处理器的组合、多个微处理器、与DSP核协作的一个或多个微处理器、或任何其他此类配置)。
本文所公开的各方面可被体现为硬件和存储在硬件中的指令,并且可驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其它形式的计算机可读介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取信息和写入信息。替换地,存储介质可被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在远程站中。在替换方案中,处理器和存储介质可作为分立组件驻留在远程站、基站或服务器中。
还注意到,本文任何示例性方面中描述的操作步骤是为了提供示例和讨论而被描述的。所描述的操作可按除了所解说的顺序之外的众多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可在数个不同步骤中执行。另外,示例性方面中讨论的一个或多个操作步骤可被组合。应理解,如对本领域技术人员显而易见地,在流程图中解说的操作步骤可进行众多不同的修改。本领域技术人员还将理解,可使用各种不同技术和技艺中的任何一种来表示信息和信号。例如,贯穿上面说明始终可能被述及的数据、指令、命令、信息、信号、比特、码元和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员而言将容易是显而易见的,并且本文中所定义的普适原理可被应用到其他变型而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖特征一致的最广义的范围。

Claims (32)

1.一种用于控制通用串行总线(USB)系统中的通信的方法,包括:
在具有USB驱动器的第一处理器处接收大小不同的分组;
在所述第一处理器处组装均匀大小的分组;以及
将所述均匀大小的分组传递给第二处理器以供协议栈中的应用层处的应用使用。
2.如权利要求1所述的方法,其特征在于,所述第一处理器和所述第二处理器被集成到单个集成电路中。
3.如权利要求1所述的方法,其特征在于,在所述第一处理器处接收所述大小不同的分组包括在微处理器处接收所述大小不同的分组。
4.如权利要求1所述的方法,其特征在于,在所述第一处理器处接收所述大小不同的分组包括在音频数字信号处理器(ADSP)处接收所述大小不同的分组。
5.如权利要求1所述的方法,其特征在于,在所述第一处理器处接收所述大小不同的分组包括在外围设备与主机之间的中间设备处接收所述大小不同的分组。
6.如权利要求1所述的方法,其特征在于,接收所述大小不同的分组包括在外围设备中的处理器处接收所述大小不同的分组。
7.如权利要求1所述的方法,其特征在于,组装所述均匀大小的分组包括使用总线频率和每分组样本来计算大小。
8.如权利要求1所述的方法,其特征在于,组装所述均匀大小的分组包括使用内容的采样频率。
9.如权利要求1所述的方法,其特征在于,组装所述均匀大小的分组包括从高分辨率定时器接收时间戳。
10.一种主机,包括:
应用处理器;
通用串行总线(USB)硬件;以及
音频数字信号处理器(ADSP),其被配置成:
通过所述USB硬件在所述ADSP处接收大小不同的分组;
在所述ADSP处组装均匀大小的分组;以及
将所述均匀大小的分组传递给所述应用处理器以供协议栈中的应用层处的应用使用。
11.一种主机,包括:
应用处理器;
通用串行总线(USB)硬件;以及
片上系统(SoC),其包括多个处理器,所述多个处理器被配置成:
在第一处理器处接收大小不同的分组;
在所述第一处理器处组装均匀大小的分组;以及
将所述均匀大小的分组传递给第二处理器以供协议栈中的应用层处的应用使用。
12.如权利要求11所述的主机,其特征在于,所述第一处理器包括微处理器。
13.如权利要求11所述的主机,其特征在于,所述第一处理器包括音频数字信号处理器(ADSP)。
14.如权利要求11所述的主机,其特征在于,所述第一处理器被配置成通过以下动作来组装所述均匀大小的分组:使用总线频率和每分组样本来计算大小。
15.如权利要求11所述的主机,其特征在于,所述第一处理器被配置成通过使用内容的采样频率来组装所述均匀大小的分组。
16.如权利要求11所述的主机,其特征在于,所述第一处理器被配置成通过从高分辨率定时器接收时间戳来组装所述均匀大小的分组。
17.一种用于检测通用串行总线(USB)系统中的漂移的方法,包括:
确定分数采样率被用在音频外围设备与主机之间的USB总线上;
确定服务区间上与所述分数采样率相关联的第一分数余数;
基于所述第一分数余数,计算与没有分数余数所需的区间数目相对应的整数;以及
每整数个区间检查漂移。
18.如权利要求17所述的方法,其特征在于,进一步包括基于检查所述漂移来应用漂移校正。
19.一种处理器,包括:
输入端;以及
控制系统,其被配置成:
确定分数采样率被用在音频外围设备与主机之间的USB总线上;
确定服务区间上与所述分数采样率相关联的第一分数余数;
基于所述第一分数余数,计算与没有分数余数所需的区间数目相对应的整数;以及
每整数个区间检查漂移。
20.如权利要求19所述的处理器,其特征在于,所述处理器被集成到选自包括以下各项的组的设备中:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)设备、移动电话、蜂窝电话、智能电话、会话发起协议(SIP)电话、平板设备、平板手机、服务器、计算机、便携式计算机、移动计算设备、可穿戴计算设备、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD)播放器,便携式数字视频播放器、汽车、车载组件、航空电子系统、无人机以及多旋翼直升机。
21.一种合成时间戳的方法,包括:
从数据递送处置器接收运行命令;以及
将来自高分辨率定时器的输出与所计算出的绝对时间戳求和。
22.如权利要求21所述的方法,其特征在于,进一步向所述求和添加漂移校正以合成所述时间戳。
23.如权利要求22所述的方法,其特征在于,进一步包括执行带内漂移检测。
24.如权利要求22所述的方法,其特征在于,进一步包括执行带外漂移检测。
25.如权利要求22所述的方法,其特征在于,进一步包括向本地时钟漂移累积器输出添加设备漂移累积器输出。
26.如权利要求21所述的方法,其特征在于,求和包括在移动终端中的处理器中进行求和。
27.如权利要求21所述的方法,其特征在于,求和包括在保护器中进行求和。
28.一种处理器,包括:
音频数据缓冲器;以及
通用串行总线(USB)音频客户端(UAC),其被配置成:
接收大小不同的分组;
组装均匀大小的分组;以及
将所述均匀大小的分组传递给第二处理器以供协议栈中的应用层处的应用使用。
29.如权利要求28所述的处理器,其特征在于,所述处理器被置于USB外围设备内。
30.如权利要求28所述的处理器,其特征在于,所述处理器被置于处在外围设备与主机之间的中间设备中。
31.如权利要求28所述的处理器,其特征在于,所述处理器被置于主机中。
32.如权利要求28所述的处理器,其特征在于,所述处理器被集成到选自包括以下各项的组的设备中:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)设备、移动电话、蜂窝电话、智能电话、会话发起协议(SIP)电话、平板设备、平板手机、服务器、计算机、便携式计算机、移动计算设备、可穿戴计算设备、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD)播放器,便携式数字视频播放器、汽车、车载组件、航空电子系统、无人机以及多旋翼直升机。
CN201780039891.3A 2016-06-27 2017-06-26 用于控制等时数据流的系统和方法 Active CN109417500B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662355166P 2016-06-27 2016-06-27
US62/355,166 2016-06-27
US201762517247P 2017-06-09 2017-06-09
US62/517,247 2017-06-09
US15/631,807 US20170373881A1 (en) 2016-06-27 2017-06-23 Systems and methods for controlling isochronous data streams
US15/631,807 2017-06-23
PCT/US2017/039198 WO2018005322A1 (en) 2016-06-27 2017-06-26 Systems and methods for controlling isochronous data streams

Publications (2)

Publication Number Publication Date
CN109417500A true CN109417500A (zh) 2019-03-01
CN109417500B CN109417500B (zh) 2021-04-20

Family

ID=60678003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780039891.3A Active CN109417500B (zh) 2016-06-27 2017-06-26 用于控制等时数据流的系统和方法

Country Status (10)

Country Link
US (1) US20170373881A1 (zh)
EP (1) EP3476084B1 (zh)
JP (1) JP7148413B2 (zh)
KR (1) KR102464293B1 (zh)
CN (1) CN109417500B (zh)
AU (1) AU2017291490B2 (zh)
BR (1) BR112018076412A2 (zh)
ES (1) ES2882146T3 (zh)
TW (1) TW201802700A (zh)
WO (1) WO2018005322A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990323A (zh) * 2019-10-17 2020-04-10 上海尧芯微半导体有限公司 一种优化的xhci调度方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628172B2 (en) 2016-06-27 2020-04-21 Qualcomm Incorporated Systems and methods for using distributed universal serial bus (USB) host drivers
US10678494B2 (en) * 2016-06-27 2020-06-09 Qualcomm Incorporated Controlling data streams in universal serial bus (USB) systems
US10651860B2 (en) * 2017-06-15 2020-05-12 Cirrus Logic, Inc. Asynchronous positional feedback for asynchronous and isochronous communication
EP3680783B1 (en) * 2017-09-29 2023-03-08 Huawei Technologies Co., Ltd. Electronic apparatus and method and device for reducing power consumption
KR20200055901A (ko) * 2018-11-14 2020-05-22 삼성전자주식회사 액세서리 장치로부터 수신된 식별 정보에 기반하여 동작을 수행하는 전자 장치, 그의 동작 방법 및 액세서리 장치
CN114915880B (zh) * 2018-12-07 2023-07-07 华为技术有限公司 一种点对多点的数据传输方法及电子设备
FR3100629B1 (fr) * 2019-09-10 2023-04-07 St Microelectronics Grenoble 2 Communication par bus CAN
CN111210612B (zh) * 2019-10-29 2021-01-19 浙江浙大中控信息技术有限公司 基于公交gps数据与站点信息提取公交线路轨迹的方法
US11803498B2 (en) * 2020-10-30 2023-10-31 Icron Technologies Corporation Scheduling techniques for isochronous in traffic in a USB extension environment
TWI809564B (zh) * 2021-11-15 2023-07-21 優達科技股份有限公司 同步校正方法、主控裝置及僕裝置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1653778A (zh) * 2002-05-29 2005-08-10 松下电器产业株式会社 数据传送装置、数据接收装置、数据传送系统以及数据传送方法
US7215670B1 (en) * 1999-11-22 2007-05-08 Texas Instruments Incorporated Hardware acceleration for reassembly of message packets in a universal serial bus peripheral device
CN1987808A (zh) * 2005-12-23 2007-06-27 英业达股份有限公司 通用串行总线端口的连接测试装置及其测试方法
US20100122021A1 (en) * 2004-01-20 2010-05-13 Super Talent Electronics Inc. USB-Attached-SCSI Flash-Memory System with Additional Command, Status, and Control Pipes to a Smart-Storage Switch
US8223986B2 (en) * 2009-11-19 2012-07-17 Apple Inc. Electronic device and external equipment with digital noise cancellation and digital audio path
US8880696B1 (en) * 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
CN104270684A (zh) * 2014-09-24 2015-01-07 北京中科大洋科技发展股份有限公司 一种面向实时应用的视音频数据网络传输系统和方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
JP3387041B2 (ja) * 1999-09-30 2003-03-17 富士通株式会社 プロトコル変換装置、通信装置、通信プログラム記憶媒体、および通信システム
US6839322B1 (en) * 2000-02-09 2005-01-04 Nortel Networks Limited Method and system for optical routing of variable-length packet data
AUPQ896300A0 (en) 2000-07-24 2000-08-17 Nec Australia Pty Ltd A clock synchronisation method for usb sink devices
US20020110213A1 (en) * 2001-02-13 2002-08-15 Sigma Tel, Inc. Method and apparatus for providing data for sample rate conversion
DK200301664A (da) * 2003-11-10 2005-05-11 Gn Netcom As Kommunikationsenhed, der er koblet til en pc's pc-telefon
US7630383B2 (en) * 2005-03-29 2009-12-08 Alcatel-Lucent Usa Inc. Synchronization of time stamps of peer devices in a communication node
US20080126641A1 (en) * 2006-08-31 2008-05-29 Irish John D Methods and Apparatus for Combining Commands Prior to Issuing the Commands on a Bus
US20110103355A1 (en) * 2009-10-30 2011-05-05 Texas Instruments Incorporated Packet grouping for a co-existing wireless network environment
US9134909B2 (en) * 2011-08-30 2015-09-15 International Business Machines Corporation Multiple I/O request processing in a storage system
JP2013254479A (ja) 2012-05-08 2013-12-19 Unitex:Kk インタフェース変換装置及びインタフェース変換方法
TWI486780B (zh) * 2013-08-13 2015-06-01 Phison Electronics Corp 連接介面單元與記憶體儲存裝置
KR102278867B1 (ko) * 2014-12-16 2021-07-21 로베르트 보쉬 게엠베하 네트워크 디바이스들의 클록들을 동기화하는 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7215670B1 (en) * 1999-11-22 2007-05-08 Texas Instruments Incorporated Hardware acceleration for reassembly of message packets in a universal serial bus peripheral device
CN1653778A (zh) * 2002-05-29 2005-08-10 松下电器产业株式会社 数据传送装置、数据接收装置、数据传送系统以及数据传送方法
US20100122021A1 (en) * 2004-01-20 2010-05-13 Super Talent Electronics Inc. USB-Attached-SCSI Flash-Memory System with Additional Command, Status, and Control Pipes to a Smart-Storage Switch
CN1987808A (zh) * 2005-12-23 2007-06-27 英业达股份有限公司 通用串行总线端口的连接测试装置及其测试方法
US8880696B1 (en) * 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
US8223986B2 (en) * 2009-11-19 2012-07-17 Apple Inc. Electronic device and external equipment with digital noise cancellation and digital audio path
CN104270684A (zh) * 2014-09-24 2015-01-07 北京中科大洋科技发展股份有限公司 一种面向实时应用的视音频数据网络传输系统和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990323A (zh) * 2019-10-17 2020-04-10 上海尧芯微半导体有限公司 一种优化的xhci调度方法
CN110990323B (zh) * 2019-10-17 2023-09-15 尧芯微半导体(重庆)有限公司 一种优化的xhci调度方法

Also Published As

Publication number Publication date
US20170373881A1 (en) 2017-12-28
AU2017291490A1 (en) 2018-11-29
TW201802700A (zh) 2018-01-16
BR112018076412A2 (pt) 2019-07-16
KR20190022544A (ko) 2019-03-06
AU2017291490B2 (en) 2021-12-09
EP3476084B1 (en) 2021-07-14
JP7148413B2 (ja) 2022-10-05
CN109417500B (zh) 2021-04-20
WO2018005322A1 (en) 2018-01-04
JP2019526844A (ja) 2019-09-19
KR102464293B1 (ko) 2022-11-04
ES2882146T3 (es) 2021-12-01
EP3476084A1 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
CN109417500A (zh) 用于控制等时数据流的系统和方法
US10614857B2 (en) Calibrating media playback channels for synchronized presentation
EP3348078B1 (en) Wireless audio synchronization
JP2016539447A (ja) センサーデータのタイムアライメント
US10560780B2 (en) Phase alignment in an audio bus
WO2016127687A1 (zh) 一种同步媒体文件播放进度的方法、装置及系统
CN105577947B (zh) 控制方法及电子设备
US20200019517A1 (en) Wireless communication with peripheral device
US7434078B2 (en) Synchronization with hardware utilizing software clock slaving via a clock
US20200145704A1 (en) Synchronous playback system and synchronous playback method
TW201815070A (zh) 感測器時鐘估計方法及其裝置
EP3635971A1 (en) Correcting for a latency of a speaker
CN111092991B (zh) 歌词显示方法及装置、计算机存储介质
WO2018056781A1 (ko) 클라이언트 장치 및 그 로컬 클럭 스큐 보정 방법
US20190005974A1 (en) Alignment of bi-directional multi-stream multi-rate i2s audio transmitted between integrated circuits
JP2007501977A (ja) イベントのタイムスタンプ
CN112910592B (zh) 时钟同步方法及装置、终端及存储介质
TW200525935A (en) Universal adaptive synchronization scheme for distributed audio-video capture on heterogeneous computing platforms
US20060166627A1 (en) Staged locking of two phase locked loops
CN110335610A (zh) 多媒体翻译的控制方法及显示器
TW201933132A (zh) 分時多工(tdm)匯流排上的虛擬通用輸入/輸出(gpio)(vgi)
US7197658B2 (en) Synchronizing samples of a multimedia stream with a system clock
US10651860B2 (en) Asynchronous positional feedback for asynchronous and isochronous communication
WO2023273601A1 (zh) 一种音频同步方法及音频播放设备、音频源、存储介质
WO2022126334A1 (zh) 一种无线投屏的方法、源端设备和目的端设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant