多通道音频对准方案转让专利

申请号 : CN201580061443.4

文献号 : CN107113501A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·哈里哈兰L·阿马里利奥J·阿西欧A·巴拉托斯H·G·格鲁伯

申请人 : 高通股份有限公司

摘要 :

公开了多通道音频对准方案。本公开的一方面提供了跨音频源处的多个相关音频通道的音频样本的累积。诸相关音频通道指示了它们的互相关,并且当所有相关音频通道有数据要传送时,源将数据释放到串行低功率芯片间媒体总线(SLIMbus)的时隙上,使得各相关音频通道在时隙的给定分段窗口内。该累积在每个分段窗口的边界处被重复。类似地,累积可以在音频阱处被执行。若来自所有相关阱的状态信号指示已经达到预定阈值,那么该音频阱内的组件可以仅读取接收到的数据。通过提供此类累积选项,跨多个音频数据通道维持音频保真度。

权利要求 :

1.一种控制音频流的方法,包括:

将与第一音频通道相关联的第一数据从音频流提供到主控方音频源中的第一端口;

将与第二音频通道相关联的第二数据从所述音频流提供到所述主控方音频源中的第二端口;

在所述第一端口处,在第一先进先出(FIFO)寄存器中累积所述第一数据;

在所述第二端口处,在第二FIFO寄存器中累积所述第二数据;

将所述第一和第二端口编程为以相同通道速率操作;以及在分段窗口边界,排空所述第一和第二FIFO寄存器,从而所述第一音频通道和所述第二音频通道中的相等的音频样本能够被编组并被以时分格式置于对应于所述分段窗口边界的分段窗口中。

2.如权利要求1所述的方法,其特征在于,进一步包括将所述第一数据从所述主控方音频源推送到从属方音频阱。

3.如权利要求1所述的方法,其特征在于,进一步包括由从属方音频阱从所述主控方音频源拉取所述第一数据。

4.如权利要求1所述的方法,其特征在于,进一步包括检测误差情况。

5.如权利要求4所述的方法,其特征在于,进一步包括在检测所述误差情况之后从所述主控方音频源输出空数据。

6.如权利要求1所述的方法,其特征在于,进一步包括,检测所述第一数据和所述第二数据是否超过预定水印水平。

7.如权利要求6所述的方法,其特征在于,进一步包括若所述第一数据或所述第二数据任一者未超过所述预定水印水平,则跳过数据输出。

8.一种控制音频流的方法,包括:

将与第一音频通道相关联的第一数据从音频流提供到从属方音频源中的第一端口;

将与第二音频通道相关联的第二数据从所述音频流提供到所述从属方音频源中的第二端口;

在所述第一端口处,在第一先进先出(FIFO)寄存器中累积所述第一数据;

在所述第二端口处,在第二FIFO寄存器中累积所述第二数据;

将所述第一和第二端口编程为以相同通道速率操作;以及在分段窗口边界,排空所述第一和第二FIFO寄存器,从而所述第一音频通道和所述第二音频通道中的相等的音频样本能够被编组并被以时分格式置于对应于所述分段窗口边界的分段窗口中。

9.如权利要求8所述的方法,其特征在于,进一步包括将所述第一数据从所述从属方音频源推送到主控方音频阱。

10.如权利要求8所述的方法,其特征在于,进一步包括由主控方音频阱从所述从属方音频源拉取所述第一数据。

11.如权利要求8所述的方法,其特征在于,进一步包括检测误差情况。

12.如权利要求11所述的方法,其特征在于,进一步包括在检测所述误差情况之后从所述从属方音频源输出空数据。

13.如权利要求8所述的方法,其特征在于,进一步包括,检测所述第一数据和所述第二数据是否超过预定水印水平。

14.如权利要求13所述的方法,其特征在于,进一步包括若所述第一数据或所述第二数据任一者所述预定水印水平,则跳过数据输出。

15.一种控制音频流的方法,包括:

在主控方音频阱中的第一端口处从音频总线接收与第一音频通道相关联的第一数据;

在所述主控方音频阱中的第二端口处从所述音频总线接收与第二音频通道相关联的第二数据;

在所述第一端口处,在第一先进先出(FIFO)寄存器中累积所述第一数据;

在所述第二端口处,在第二FIFO寄存器中累积所述第二数据;

将所述第一和第二端口编程为以相同通道速率操作;

将所述第一FIFO寄存器处的第一计数和第一预定阈值作比较;

若所述第一计数超过所述第一预定阈值,则设置第一准备信号;

将所述第二FIFO寄存器处的第二计数和第二预定阈值作比较;

若所述第二计数超过所述第二预定阈值,则设置第二准备信号;以及若所述第一准备信号和所述第二准备信号被设置,则允许所述第一和第二FIFO寄存器的内容被读取。

16.一种控制音频流的方法,包括:

在从属方音频阱中的第一端口处从音频总线接收与第一音频通道相关联的第一数据;

在所述从属方音频阱中的第二端口处从所述音频总线接收与第二音频通道相关联的第二数据;

在所述第一端口处,在第一先进先出(FIFO)寄存器中累积所述第一数据;

在所述第二端口处,在第二FIFO寄存器中累积所述第二数据;

将所述第一和第二端口编程为以相同通道速率操作;

将所述第一FIFO寄存器处的第一计数和第一预定阈值作比较;

若所述第一计数超过所述第一预定阈值,则设置第一准备信号;

将所述第二FIFO寄存器处的第二计数和第二预定阈值作比较;

若所述第二计数超过所述第二预定阈值,则设置第二准备信号;以及若所述第一准备信号和所述第二准备信号被设置,则允许所述第一和第二FIFO寄存器的内容被读取。

说明书 :

多通道音频对准方案

[0001] 优先权要求
[0002] 本申请要求于2014年11月14日提交的题为“MULTI-CHANNEL AUDIO ALIGNMENT SCHEMES(多通道音频对准方案)”的美国专利申请SN.14/541,577的优先权,其通过援引整体纳入于此。
[0003] 背景
[0004] I.公开领域
[0005] 本公开的技术一般涉及由 宣布的串行低功率芯片间媒体总线(SLIMbus)规范,并尤其涉及使用SLIMbus管理多个相关音频通道。II.背景技术
[0006] 电子设备(诸如移动电话和平板计算机)在当代社会上已变得普及以供支持各种日常使用。这些电子设备通常各自包括话筒以及扬声器。电子设备中使用的典型的话筒和扬声器具有模拟接口,该模拟接口需要专用的两(2)个端口导线来连接每个设备。然而,电子设备可包括多个音频设备,诸如多个话筒和/或扬声器。由此,可能期望允许此类电子设备中的微处理器或其他控制设备能够在公共通信总线上将音频数据传达至多个音频设备。进一步,还可能期望提供所定义的用于在公共通信总线上向电子设备中的不同音频设备传输涉及音频通道的数字数据的通信协议。
[0007] 联盟已经确立了串行低功率芯片间媒体总线(SLIMbusTM)标准,该标准的版本1.01于2008年12月3日被公布给采纳者。该标准的副本可以由 成员在www.mipi.org/specifications/serial-low-power-inter-chip-media-bus-slimbussm-specification找到。SLIMbus被设计为移动终端产业中音频数据的接口,其允许调制解调器、应用处理器、和自立编解码芯片之间的通信。SLIMbus是具有载送给定音频通道的样本的毗连时隙的时分复用(TDM)总线。当带宽准许时,在总线上同时可以定义一个以上通道。
SLIMbus已经被移动终端产业内的许多成员普遍采纳。
[0008] 当在使用SLIMbus的计算设备中提供一个以上通道时,SLIMbus标准并未解决这些数据通道如何能够在目的地侧对准从而提供最优的音频保真度。相应地,可以通过提供相关通道对准以具有音频保真度的相应增加而改进SLIMbus标准。
[0009] 公开概述
[0010] 详细描述供所公开的诸方面包括多音频通道对准方案。具体而言,本公开的诸方面提供了跨音频源处的多个相关音频通道的音频样本的累积。诸相关音频通道指示了它们的互相关,并且当所有相关音频通道有数据要传送时,源将数据释放到串行低功率芯片间媒体总线(SLIMbus)的时隙上,使得各相关音频通道在时隙的给定分段窗口内。该累积在每个分段窗口的边界处被重复。类似地,累积可以在音频阱处被执行。若来自所有相关阱的状态信号指示已经达到预定阈值,那么该音频阱内的组件可以仅读取接收到的数据。通过提供此类累积选项,跨多个音频数据通道维持音频保真度。
[0011] 就此而言,在一方面定义了一种控制音频流的方法。该方法包括将与第一音频通道相关联的第一数据从音频流提供到音频服务中的第一端口。该方法还包括将与第二音频通道相关联的第二数据从该音频流提供到该音频源中的第二端口。该方法进一步包括,在该第一端口处,在第一先进先出(FIFO)寄存器中累积该第一数据。该方法还包括,在该第二端口处,在第二FIFO寄存器中累积该第二数据,以及将该第一和第二端口编程为以相同的通道速率操作。该方法进一步包括,在分段窗口边界,排空该第一和第二FIFO寄存器,从而该第一音频通道和该第二音频通道中的相等的音频样本能够被编组并被以时分格式置于对应于该分段窗口边界的分段窗口中。
[0012] 在另一方面,定义了一种控制音频流的方法。该方法包括将与第一音频通道相关联的第一数据从音频流提供到从属方音频源中的第一端口。该方法还包括将与第二音频通道相关联的第二数据从该音频流提供到该从属方音频源中的第二端口。该方法进一步包括,在该第一端口处,在第一FIFO寄存器中累积该第一数据,以及在该第二端口处,在第二FIFO寄存器中累积该第二数据。该方法进一步包括将该第一和第二端口编程为以相同通道速率操作。该方法还包括,在分段窗口边界,排空该第一和第二FIFO寄存器,从而该第一音频通道和该第二音频通道中的相等的音频样本能够被编组并被以时分格式置于对应于该分段窗口边界的分段窗口中。
[0013] 在另一方面,定义了一种控制音频流的方法。该方法包括在主控方音频阱中的第一端口处从音频总线接收与第一音频通道相关联的第一数据。该方法还包括在该主控方音频阱中的第二端口处从该音频总线接收与第二音频通道相关联的第二数据。该方法进一步包括,在该第一端口处,在第一FIFO寄存器中累积该第一数据。该方法还包括,在该第二端口处,在第二FIFO寄存器中累积该第二数据。该方法还包括将该第一和第二端口编程为以相同通道速率操作。该方法进一步包括将该第一FIFO寄存器处的第一计数和第一预定阈值作比较。该方法包括若该第一计数超过该第一预定阈值,则设置第一准备信号。该方法还包括将该第二FIFO寄存器处的第二计数和第二预定阈值作比较。该方法进一步包括若该第二计数超过该第二预定阈值,则设置第二准备信号。该方法还包括若该第一准备信号和该第二准备信号被设置,则允许该第一和第二FIFO寄存器的内容被读取。
[0014] 在另一方面,公开了一种控制音频流的方法。该方法包括在从属方音频阱中的第一端口处从音频总线接收与第一音频通道相关联的第一数据。该方法还包括在该从属方音频阱中的第二端口处从该音频总线接收与第二音频通道相关联的第二数据。该方法进一步包括,在该第一端口处,在第一FIFO寄存器中累积该第一数据。该方法还包括,在该第二端口处,在第二FIFO寄存器中累积该第二数据。该方法还包括将该第一和第二端口编程为以相同通道速率操作。该方法进一步包括将该第一FIFO寄存器处的第一计数和第一预定阈值作比较。该方法包括若该第一计数超过该第一预定阈值,则设置第一准备信号。该方法还包括将该第二FIFO寄存器处的第二计数和第二预定阈值作比较。该方法进一步包括若该第二计数超过该第二预定阈值,则设置第二准备信号。该方法还包括若该第一准备信号和该第二准备信号被设置,则允许该第一和第二FIFO寄存器的内容被读取。
[0015] 附图简述
[0016] 图1是具有音频元件的示例性移动终端的框图;
[0017] 图2是驱动外部音频系统的示例性移动终端的框图;
[0018] 图3是具有相关联组件的SLIMbus的简化框图;
[0019] 图4是SLIMbus组件内的端口和在两个组件之间延伸的SLIMbus的简化框图;
[0020] 图5是如何在SLIMbus上的单个分段窗口内提供相关音频通道的简化时序图;
[0021] 图6是根据本公开的示例性方面的音频源组件内的元件的简化框图;
[0022] 图7是根据本公开的示例性方面的音频阱组件内的元件的简化框图;
[0023] 图8是源累积以及传送相关通道的过程的流程图;
[0024] 图9是阱接收以及累积相关通道的过程的流程图;
[0025] 图10是与主控方阱从从属方源拉取数据相关联的示例性过程的流程图;
[0026] 图11是与从属方阱从主控方源拉取数据相关联的示例性过程的流程图;
[0027] 图12是与从属方源向主控方阱推送数据相关联的示例性过程的流程图;
[0028] 图13是与主控方源向从属方阱推送数据相关联的示例性过程的流程图。
[0029] 详细描述
[0030] 现在参照附图,描述了本公开的若干示例性方面。措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
[0031] 详细描述供所公开的诸方面包括多通道音频对准方案。具体而言,本公开的诸方面提供了跨音频源处的多个相关音频通道的音频样本的累积。诸相关音频通道指示了它们的互相关,并且当所有相关音频通道有数据要传送时,源将数据释放到SLIMbus的时隙上,使得各相关音频通道在时隙的给定分段窗口内。该累积在每个分段窗口的边界处被重复。类似地,累积可以在音频阱处被执行。若来自所有相关阱的状态信号指示已经达到预定阈值,那么该音频阱内的组件可以仅读取接收到的数据。通过提供此类累积选项,跨多个音频数据通道维持音频保真度。
[0032] 在述及与本公开相关联的示例性方法和过程之前,参照图1-7提供了此类方法和过程可以在其中实现的硬件元件的概览。参照图8和9提供了诸示例性过程。
[0033] 就此而言,图1解说了移动终端10的示例。虽然具体解说了移动终端10,但是针对多通道音频采用时分复用总线的其他基于处理器的系统也可以受益于本公开的诸方面。在此示例中,移动终端10包括一个或多个中央处理单元(CPU)12,每个CPU 12包括一个或多个处理器14。处理器14可包括处置音频处理的一个或多个应用处理器。(诸)CPU 12可具有耦合到(诸)处理器14以用于对临时存储的数据快速访问的高速缓存存储器16。(诸)CPU 12被耦合至系统总线18,并且可将移动终端10中所包括的诸设备进行相互耦合。如众所周知的,(诸)CPU 12通过在系统总线18上交换地址、控制、以及数据信息来与这些其他设备通信。例如,(诸)CPU 12可将总线事务请求传达给存储器控制器20以访问存储器单元22(0)-22(N)。尽管未在图1中解说,但可提供多个系统总线18,其中每个系统总线18构成不同的织构。类似地,在一示例性方面,诸系统总线18中的一者可以是用于音频的串行低功率芯片间媒体总线(SLIMbus)。在另一示例性方面,SLIMbus可以针对一个或多个输入设备(例如,话筒)而存在,以及针对一个或多个输出设备(例如,扬声器)而存在。
[0034] 其它设备可连接到系统总线18。如图1中所解说的,作为示例,这些设备可包括存储器系统,该存储器系统包括存储器控制器20和存储器单元20(0)-22(N),一个或多个输入设备24、一个或多个输出设备26、一个或多个网络接口设备28、以及一个或多个显示器控制器30。(诸)输入设备24可包括任何类型的输入设备,包括但不限于输入键、开关、话筒、语音处理器等。在输入设备24是话筒的事件中,其可以连接到SLIMbus。(诸)输出设备26可包括任何类型的输出设备,包括但不限于音频(诸如扬声器)、视频、其他视觉指示器等。在输出设备26是扬声器的事件中,其可以连接到SLIMbus。(诸)网络接口设备28可以是被配置成允许去往和来自网络32的数据交换的任何设备。网络32可以是任何类型的网络,包括但不限于:有线或无线网络、私有或公共网络、局域网(LAN)、广域网(WAN)、无线局域网(WLAN)和因特网。(诸)网络接口设备28可被配置成支持所期望的任何类型的通信协议。
[0035] (诸)CPU 12还可被配置成在系统总线18上访问(诸)显示器控制器30以控制发送至一个或多个显示器34的信息。(诸)显示器控制器30经由一个或多个视频处理器36向(诸)显示器34发送要显示的信息,视频处理器36将要显示的信息处理成适于(诸)显示器34的格式。(诸)显示器34可包括任何类型的显示器,包括但不限于:阴极射线管(CRT)、发光二极管(LED)显示器、液晶显示器(LCD)、等离子显示器等。
[0036] 虽然移动终端10可包括由SLIMbus耦合的复数个扬声器和/或复数个话筒,但是移动终端10可以诸如通过扩展坞站(或无线地)耦合到外部声音系统。就此而言,图2解说了5.1通道环绕声系统40,其中移动终端10与扩展坞站42相关联。扩展坞站42可包括中央扬声器44并耦合到前扬声器46(L)和46(R),以及后扬声器48(L)和48(R)以及次重低扬声器50。
很好理解,每个扬声器44、46(L)、46(R)、48(L)和48(R)以及次重低扬声器50可以具有单独的音频通道。当扬声器44、46(L)、46(R)、48(L)和48(R)和次重低扬声器50的输出被正确对准时,听众52可以体验高音频保真度。
[0037] 不管诸音频组件是移动终端10(或其他基于处理器的设备)的内部系统还是外部系统,移动终端10(或其他基于处理器的设备)可包括SLIMbus以在音频组件(诸如,调制解调器、编解码器和/或应用处理器)之间移动音频数据。就此而言,简化音频系统60在图3中解说。简化音频系统60可包括主控方62(有时被称作主控方设备,但是因为“设备”有时候具有特定的惯用含义,所以下文中主要简称为“主控方”)和从属方设备64(1)-64(4),这些从属方设备通信地耦合到SLIMbus通信总线66作为组件。在示例性方面,从属方设备64(1)-64(4)可以是话筒、扬声器、或其他音频设备。主控方62可以是应用处理器、编解码器或调试解调器,并使用两个信号:共用时钟导线70上传达的时钟信号68,和共用数据导线74上传达的数据信号72来与从属方设备64(1)-64(4)通信。虽然图3中仅解说了四个从属方设备64(1)-64(4),应领会更多或更少的组件可以耦合到SLIMbus通信总线66。应领会,主控方62可具有与其相关联的控制系统(CS)76,控制系统76可以是硬件实现的处理器,该处理器具有存储在与该处理器相关联的存储器中的相关联软件。在示例性方面,控制系统76是主控方62的片上系统(SoC)的一部分。在替换的示例性方面,控制系统76可以与移动终端10的CPU 12相关联。在进一步的示例性方面,从属方设备64(1)-64(4)各自具有相应的从属方控制系统78(1)-78(4)。
[0038] 应当领会,简化音频系统60内的每个组件可包括多个端口,每个端口可以被指派给不同的音频通道。图4中解说了该布置的示例性方面。具体而言,音频系统80可包括第一组件82(1)和第二组件82(2)。第一组件82(1)可包括复数个端口84,其中解说了端口84(m)和84(n)。类似地,第二组件82(2)可包括复数个端口84,其中解说了端口84(x)和84(y)。端口84接收音频通道86。具体而言,端口84(m)接收第一音频通道86(1),而端口84(n)接收第二音频通道86(2)。串行化器(未解说)组装了音频数据并将音频数据放置在数据导线74上。第二组件82(2)使用解串器(未解说)来提取数据并将数据传递到恰适的端口84。在该示例中,第一音频通道86(1)的数据被传递给端口84(x),而第二音频通道86(2)的数据被传递给端口84(y)。端口84将分开的音频通道86(1)和86(2)传递给恰适的信号处理块88(1)和88(2)。
[0039] 本公开的示例性方面提供了累积相关音频通道86的音频数据并将相应相关音频通道86的对应样本放置在共用数据导线74上的TDM信号内的分段窗口中。就此而言,图5提供了信号流90的解说,其中通道样本s11和s12是从第一音频通道86(1)采样的,而通道样本s21和s22是从第二音频通道86(2)采样的。来自同一一般采样点的样本被累积并在同一分段窗口92中被放置到共用数据导线74上。在每个分段窗口边界处完成累积。第二组件82(2)将共用数据导线74上的数据串行化并重组样本。经重组的样本94在接收机处被对准。
[0040] 为了使得样本在源处对准,可以在每个端口处使用先进先出(FIFO)寄存器。图6提供了源内的FIFO寄存器的框图。在该示例中,源是第一组件82(1)(并且还可以是主控方62)。第一组件82(1)包括控制系统,该控制系统可以是CS 76。虽然在图6中被解说为处理器,但是应当领会处理器可以用一些其他信号处理实体来代替并且仍然是CS 76。CS 76与直接存储器访问(DMA)模块100通信。虽然解说为DMA,但是应当领会可以使用一些其他数据获取实体。DMA模块100生成了第一音频通道86(1)和第二音频通道86(2)。第一音频通道86(1)在端口84(m)处被提供给FIFO 102。串行化器(并行到串行(P2S))104撷取FIFO 102的输出并将经串行化的信号传递给复用器(MUX)106。类似地,第二音频通道86(2)在端口84(n)处被提供给FIFO 108。串行化器110撷取FIFO 108的输出并将经串行化的信号传递该MUX 
106。来自时钟导线70的时钟信号被按需或按期望提供给端口84。TDM控制信号控制MUX 106将相应的样本放在数据导线74上。信号通过由分段窗口逻辑116控制的开关112、114从端口
84被传递给MUX 106。在使用中,FIFO 102、108为相应的音频通道86收集(或累积)数据,并且当已经累积了预定量的数据时,设置标志或状态指示符。基于何时所有的相关通道已经指示了足量的数据累积,分段窗口逻辑116向MUX 106释放数据。用这种方式,音频通道86的相关样本的数据在数据导线74上的同一分段窗口中结束。由此,累积提供了在初始化之后每个分段窗口处的样本对准。该对准帮助改进了音频保真度。
[0041] 在接收侧,样本和相位对准二者对于帮助改进音频保真度而言可以是合乎需要的。参照图7提供了此类接收侧组件的结构。音频数据在分用器(DEMUX)120处接收自数据导线74,该DEMUX 120将接收到的信号拆分并将拆分信号122(x)和122(y)提供给相应端口84(x)、84(y)。端口84还从时钟导线70接收了时钟信号68。端口84(x)在与FIFO 126(x)相关联的解串器(串行到并行(S2P))124(x)处接收拆分信号122(x)。FIFO 126(x)向误差生成逻辑128(x)提供状态消息,以及向比较器130(x)提供计数。比较器130(x)比较计数和水印(或其他预定义阈值)132(x)并基于该比较输出准备信号134(x)(即,若计数超过水印132(x),则准备信号134被启用)。误差生成逻辑128(x)选择性地向误差总线136提供误差信号。准备信号134(x)被提供给准备总线138。
[0042] 继续参照图7,本公开的示例性方面通过评估误差总线136上的信息来检查是否有多通道小组中的任何通道具有误差情况(诸如下溢或上溢情况)来执行误差处置。若存在误差情况,那么本公开的示例性方面中止该通道并替之以空数据直到该流恢复或采取其他校正动作。当采取校正动作时,该流被还原或恢复为小组。
[0043] 继续参照图7,端口84(x)还包括为第一比较器142(x)和第二比较器144(x)设置状态的编组寄存器140(x)。第一比较器142(x)从准备总线138接收信号。第二比较器144(x)从误差总线136接收信号。基于比较器142(x)、144(x)的比较,开关146(x)、148(x)被打开或闭合以将时钟信号从时钟150提供给FIFO 126(x)。基于时钟信号是否被提供到FIFO 126(x),数据被从FIFO 126(x)拉取至信号处理块152(x)以供进一步处理(例如,传递给扬声器)。来自时钟150的时钟信号还被传递给信号处理块152(x)和152(y)。通过用FIFO 126(x)和FIFO 126(y)所使用的相同的时钟信号来为信号处理块152(x)和152(y)定时,样本对准被保留并且音频保真度被改进。
[0044] 继续参照图7,端口84(y)具有执行类似功能的类似元件,尽管被用a(y)指定。应当领会,水印132的值和编组寄存器140中的信息可以按需或按期望由消息控制或编程实体来编程。
[0045] 针对该结构背景,示例性过程160被提供来解说第一组件82(1)处的相关端口是如何被链接的。如所解说的,第一组件82(1)是源组件。过程160始于控制系统76搜集要通过两个(或更多)音频通道发送出去的音频数据(框162)。控制系统76和DMA 100用第一通道音频数据预填充端口(m)的FIFO102(框164)。控制系统76和DMA 100随后用第二通道音频数据预填充端口(n)的FIFO 108(框166)。管理设备(未示出)将端口84编程为相同的通道速率(例如,48kHz)(框168)。
[0046] 继续参照图8,管理设备同时激活两个端口84上的通道(框170)。来自两个端口84的两个音频通道的给定数目个样本填充在同一分段窗口中(框172)。管理器确定这是否是数据的结束(框174),其中该过程如上所述重复,或若框174得到确认的回答,那么该过程就结束并重置端口(框176)。
[0047] 图9解说了解说用以在接收侧上链接通道的示例性技术的过程180。即,第二组件82(2)是阱组件。就此而言,过程180始于处理器编程水印132(x)以及端口(x)的编组寄存器
140(x)(框182)。处理器编程水印132(y)和端口(y)的编组寄存器140(y)(框184)。注意,处理器可以在第二组件82(2)中或可以在第一组件82(1)中,并且编程可以由跨数据导线74发送的消息来实现。
[0048] 继续参照图9,管理器设备(未示出)可以用相同的通道速率来编程端口84(x)和84(y)(框186)。管理器设备同时激活两个端口上的通道(框188)。各种各样的事情可能发生。在第一实例中,FIFO 126(x)开始填充,并且准备信号134(x)也被持续更新(框190)。准备信号134(x)通过准备总线138被传递给端口84(y)。在第二实例中,FIFO 126(y)开始填充,并且准备信号134(y)也被持续更新(框192)。准备信号134(y)通过准备总线138被传递给端口
84(x)。同时,时钟150被打开并被提供给端口84(x)和84(y)以及其他信号处理块152(x)和
152(y)(框194)。一旦所有涉及端口发信号通知准备就绪(框196),则在端口84(x)和84(y)二者发信号通知准备就绪时读取时钟通过FIFO 126(x)和126(y)(框198)。
[0049] 继续参照图9,端口84(x)和84(y)继续用来自数据导线74的数据填充(框200),并且两个音频通道的相同数目的样本同时从FIFO 126(x)和126(y)被拉取到相应的信号处理块152(x)和152(y)(框202)。控制器检查是否有来自任何端口的误差信号(框204)。若存在误差,那么控制器禁用FIFO 126(x)和126(y)的读取,并等待处理器干预(框206)。若框204处没有误差,那么控制器检查是否有音频数据的结束(框208)。若存在结束,那么过程180结束(框210)。否则,过程180如所指示的那样重复。
[0050] 虽然上文的讨论构想了累积数据以提升多通道音频流的通道对准背后的一般概念,但是存在数种可能的方式,这可以取决于源和阱的主控方/从属方性质来实现。即,源可以是主控方或从属方,以及阱可以类似地是主控方或从属方。进一步,源可以推送数据,或者阱可以拉取数据。在图10-13中提供了这些不同变形的示例性方面。
[0051] 就此而言,图10解说了示例性过程220,其中源是从属方,且主控方阱从从属方源拉取数据。在过程220中,数据的流速率由主控方阱确定并被传递到传送方源FIFO寄存器。由此,在重置(框222)之后,当总线端口被置于空闲状态(框224)时,诸组件监视总线通道是否已被启用(框226)。当回答是否定的时,过程200如所述地重复。一旦总线通道被启用,那么过程220分叉。
[0052] 继续参照图10,总线端口初始被置于活跃状态(框228)。控制系统78确定通道是否在分段窗口边界(框230)。若对于框230的回答为否,过程220意识到总线端口在端口数据准备就绪之前就是活跃的(框232)。然而,若对于框230的回答为是,那么控制系统78检查是否所有相关通道处于水印水平(框234)。若对于框234的回答为否,那么该过程意识到总线端口在端口数据准备就绪之前就是活跃的(框232)。然而,若对于框234的回答为是,那么总线端口启动并指示数据准备状态(框236)。
[0053] 继续参照图10,在意识到总线端口在端口数据可用之前就活跃(框232)之后,控制系统78确定发射机是否已到达所传送时隙(框238)。若对框238的回答为否,那么过程220返回到框230。然而,若对于框238的回答为是,那么发射机输出不具有存在性的空数据(框240),且该空数据被提供给外部总线(框242)。当控制系统78确定通道是否已被禁用时(框
244),继续空数据。若对于框244的回答为否,那么过程返回到框230,其中若总线在内部数据阱之前启动则进行任何恰适的误差处置(框246)。然而,若对于框244的回答为是,那么端口进入关闭状态(框248),并且该过程返回到框224。
[0054] 继续参照图10,并返回框236,控制系统78确定是否已到达所传送时隙(框250)。若对于框250的回答为否,那么重复该确定。若存在误差,那么误差信号被提供给误差总线并指示误差状态(框252)。从框252的误差状态,端口进入关闭状态(框248),且过程返回框224。若框250处不存在误差且到达了时隙,那么源输出具有存在状态集的第一有效数据(框
254)且数据被发送给外部总线(框242)。过程220以确定是否已到达所传送时隙来继续(框
256)。若对框256的回答为否,过程220重复,如所述的。若对于框256的回答是发生了误差,那么过程220进入误差状态(框252),如先前所描述的。若对于框256的回答为是,到达了所传送时隙,那么控制系统78确定总线上是否存在主控方阱数据拉取指示—即,由阱设置的样本请求“SRQ”标签补充由源设置的数据存在“P”总线标签以指示用于该所传送时隙的有效数据(框258)。当想要拉取数据的阱在拉取协议中设置了SRQ时,在推送协议中,可以设置数据选通(“STR”)标签。若存在误差,误差状态被断言(框252),端口进入关闭状态(框248),且该过程返回框224,如先前所描述的。若对于框258的回答为否,那么源退让或跳过数据输出(框260)。若对于框258的回答为是,那么有效数据被输出(框262)。控制系统78确定通道是否已被禁用(框264)。若对框264的回答为否,那么过程220返回到框256,如所述的。若对于框264的回答为是,那么端口进入关闭状态(框248),并且该过程返回到框224,如先前所描述的。
[0055] 继续参照图10,并返回框226,源还确定内部数据源是否已被启用(框266)。若对框266的回答为否,过程220循环,如所解说的。一旦对于框266的回答为是,那么内部源进入数据启动状态(框268)。源确定是否有内部数据源请求要发送(框270)。若框270处存在误差,那么误差状态被断言(框252),端口进入关闭状态(框248),且该过程返回框224。若对框270的回答为否,过程220循环,如所解说的。一旦对于框270的回答为是,那么源确定是否多通道小组中的所有相关通道都处在水印水平或在水印水平以上(框272)。若检测到误差,那么误差状态被断言(框252),端口进入关闭状态(框248),且该过程返回框224。若对于框272的回答为否,那么数据被忽视(框274)。然而,若对于框272的回答为是,那么有效数据被输入且确收(ACK)响应被生成(框276)。数据随后从外部源被拉取(框278)。控制系统78确定通道是否已被禁用(框280)。若对框280的回答为否,那么该过程循环回到框270,若所述的。若对于框280的回答为是,那么端口进入关闭状态(框248),并且该过程返回到框224。
[0056] 图11示出了与从属方阱从主控方源拉取数据的示例性方面相关联的过程290的流程图。就此而言,过程290始于重置(框292)以及总线端口进入空闲状态(框294)。过程290确定总线通道是否已经被启用(框296)。只要框296是否定的,那么过程290循环,如所指示的。一旦总线通道被启用,总线端口进入活跃状态(框298)。过程290确定内部数据阱是否已被启用(框300)。只要框300是否定的,那么过程290循环,如所指示的。一旦内部数据阱被启用,那么过程290分叉。
[0057] 继续参照图11,过程290以内部阱进入数据启动状态来继续(框302)。控制系统78确定是否所有相关通道处于指定的水印水平(框304)。若对于框304的回答是否定的,那么内部数据阱进入空数据状态(框306)。控制系统78确定是否有内部数据阱请求(框308)。若对框308的回答为否,那么过程290回环,如所指示的。若对框308的回答为是,存在内部数据阱请求,那么空数据被输出(框310)。该数据被提供到内部阱(312)。控制系统78确定通道是否已被禁用(框314)。若对框314的回答是否定的,该过程回环,如所指示的。若对于框314的回答为肯定的,那么过程290继续到端口关闭状态(框316),且过程290返回到总线端口处于空闲状态(框294),如所指示的。若总线在内部数据阱启动之前启动,那么可以发生误差处置。
[0058] 继续参照图11,若对于框304的回答为是,通道处于水印水平或在水印水平之上,那么数据阱进入启动状态(框318)。控制系统78确定是否有内部数据阱请求(框320)。只要没有内部数据阱请求,过程290就回环,如所指示的。若在框320处存在内部数据阱请求,那么源输出有效数据(框322)。该数据被提供到内部阱(框324)。控制系统78确定通道是否已被禁用(框326)。若对框326的回答是否定的,那么过程290循环回框320,如所指示的。若对于框326的回答为是,那么通道被禁用,端口进入关闭状态(框316)并循环回总线端口处于空闲状态(框294),如先前所描述的。若在框320处存在与内部数据阱请求相关联的误差,那么阱进入误差状态(框328),并且端口进入关闭状态(框316),如先前所描述的。
[0059] 继续参照图11和框300,与内部阱进入数据启动状态并发地,总线端口启动并指示总线端口处于数据准备状态(框330)。控制系统78确定数据是否在分段窗口边界(框332)。只要对于框332的回答是否定的(并且不存在误差),过程290就回环,如所指示的。若存在误差,那么过程290进入误差状态(框328),如先前所讨论的。若对于框332的回答为是,数据处于分段窗口边界,那么控制系统78确定所有相关通道是否处于水印水平或在水印水平之上(框334)。再次,若存在误差,那么过程290进入误差状态(框328),如先前所讨论的。如果对框334的回答是否定的,则控制系统78确定是否已到达所传送时隙(框336)。若存在误差,那么过程290进入误差状态(框328),如先前所讨论的。若不存在误差,那么只要未到达所传送时隙,过程290就循环,如所指示的。一旦已到达所传送时隙,数据被忽视并且总线样本请求总线标志位(SRQ)不被阱断言(框338)。然而,若框334被肯定回答(即,相关通道在水印水平处或在水印水平之上),那么控制系统78确定是否已到达所传送时隙(框340)。若存在误差,那么过程290进入误差状态(框328),如先前所讨论的。只要不存在误差,并且未到达所传送时隙,过程290就循环,如所指示的。一旦已到达所传送时隙,有效数据被输入且SRQ标志位被阱断言以确认来自源的数据存在(框342)。数据从总线被拉取(框344)。控制系统78确定通道是否已被禁用(框346)。若对框346的回答是否定的,那么过程290如所指示地返回框
332,否则端口进入关闭状态(框316),如先前所讨论的。
[0060] 图12示出了与从属方源向主控方阱推送数据的示例性方面相关联的过程350的流程图。过程350始于重置(框352)以及总线端口进入空闲状态(框354)。控制系统78确定总线通道是否已被启用(框356)。只要总线通道未被启用,过程350就循环,如所指示的。一旦总线通道被启用,那么过程350分叉。跟随一条路径,总线端口进入活跃状态(框358)。控制系统78确定数据是否在分段边界窗口(框360)。若对于框360的回答为否,那么总线端口在端口数据可用之前就是活跃的(框362)。控制系统78确定是否已到达所传送时隙(框364)。若对框364的回答为否,那么过程350循环回框360,如所指示的。若对于框364的回答为是,那么在不具有存在指示的情况下空数据被输出(框366),与提供给外部总线的数据一起发送(框368)。控制系统78确定通道是否已被禁用(框370)。若通道未被禁用,过程350返回框360,如所指示的。若通道已经被禁用,那么端口进入关闭状态(框372),并随后返回框354,如所指示的。
[0061] 继续参照图12,并返回框360,若框360被肯定回答,那么控制系统78确定是否所有的通道处于水印水平(框374)。若对框374的回答是否定的,那么过程350行进到框362,如所指示的。一旦对于框374的回答是肯定的,那么总线端口进入启动状态且数据准备就绪(框376)。控制系统78确定是否已到达所传送时隙(框378)。若存在误差,那么过程350进入误差状态(框380)且随后端口进入关闭状态(框372),如先前所讨论的。只要没到达所传送时隙,过程350就循环,如所指示的。一旦已到达所传送时隙,则有效数据与存在状态集合(即,总线存在(“P”)标志和STR标志的集合)一起被输出(框382)。数据被发送到外部总线(框368)。
控制系统78确定数据是否在分段窗口边界(框384)。若存在误差,那么过程350进入误差状态(框380)且随后端口进入关闭状态(框372),如先前所讨论的。若不存在误差,且只要未到达分段窗口边界,那么过程350就循环,如所指示的。一旦到达分段窗口边界,控制系统78确定所有相关通道是否处于水印水平或在水印水平之上(框386)。再次,若存在误差,那么过程350进入误差状态(框380)且随后端口进入关闭状态(框372),如先前所讨论的。若不存在误差,且通道并非所有都在水印水平之上,那么控制系统78确定是否已到达所传送时隙(框
388)。若存在误差,过程350进入误差状态(框380)且随后端口进入关闭状态(框372),如先前所讨论的。若不存在误差,并且未到达所传送时隙,过程350就循环,如所指示的。一旦已到达所传送时隙,那么源输出不具有存在集合的空数据,即,无总线P标志或STR标志的集合(框390)。空数据被输出到外部总线(框392)。若不存在误差,且所有通道都在水印阈值之上,那么控制系统78确定是否已到达所传送时隙(框394)。若存在误差,过程350进入误差状态(框380)且随后端口进入关闭状态(框372),如先前所讨论的。若不存在误差且未到达所传送时隙,则源输出具有存在状态集合(即,总线P标志和STR标志的集合)的有效数据(框
396)。数据被输出到外部总线(框392)。控制系统78确定通道是否已被禁用(框398)。若对框
398的回答是否定的,那么过程350返回到框384,如所指示的。若通道已经被禁用,那么端口进入关闭状态(框372),如先前所指示的。
[0062] 继续参照图12,并同时返回框356,控制系统78确定内部数据源是否已被启用(框400)。若对框400的回答是否定的,那么过程350循环,如所指示的。一旦内部数据源被启用,内部源进入数据启动状态(框402)。控制系统78确定内部数据源是否具有发送请求(框
404)。若存在误差,过程350进入误差状态(框380)且随后端口进入关闭状态(框372),如先前所讨论的。若不存在误差且对框404的回答是否定的,那么过程350循环,如所指示的。一旦存在发送请求,内部数据源输入有效数据(框406)。数据来自内部数据源408。控制系统78确定通道是否已被禁用(框410)。若对框410的回答是否定的,过程350返回到框404。若对于框410的回答是肯定的,端口进入关闭状态(框372),如先前所讨论的。
[0063] 图13示出了与主控方源向从属方阱推送数据的示例性方面相关联的过程420的流程图。过程420始于重置(框422),以及总线端口进入空闲状态(框424)。控制系统78确定总线通道是否已被启用(框426)。只要总线通道未被启用,过程420就循环,如所指示的。一旦总线通道被启用,总线端口进入活跃状态(框428)。控制系统78确定内部数据阱是否已被启用(框430)。只要对于框430的回答是否定的,过程420就循环,如所指示的。一旦对于框430的回答是肯定的,过程420分叉。
[0064] 继续参照图13,过程420以内部阱进入数据启动状态来继续(框432)。控制系统78确定是否所有相关的通道处于水印水平(框434)。若对于框434的回答是否定的,那么内部数据阱进入空数据状态(框436)。控制系统78确定是否存在内部数据阱请求(框438)。若对框438的回答是否定的,过程420循环回框434,如所指示的。若对于框438的回答是肯定的,那么空数据被输出(框440)到内部阱(框442)。控制系统78确定通道是否已被禁用(框444)。若对于框444的回答为否,过程420循环回框434,如所指示的。若对于框444的回答为是,那么端口进入关闭状态(框446)且返回到框424,如所指示的。
[0065] 继续参照图13,若对于框434的回答为是,那么数据阱进入启动状态(框448)。控制系统78确定是否存在内部数据阱请求(框450)。若存在误差,过程420进入误差状态(框452)且随后端口进入关闭状态(框446),如先前所讨论的。若不存在误差,且对于框450的回答是否定的,那么过程420循环回框450,如所指示的。若不存在误差,且对于框450的回答是肯定的,控制系统78确定是否所有相关的通道都处于水印水平,或超过水印水平(框454)。若存在误差,过程420进入误差状态(框452)且随后端口进入关闭状态(框446),如先前所讨论的。若不存在误差且对于框454的回答是否定的,过程420跳过输出(框456)。若对于框454的回答是肯定的,那么有效数据被发送且ACK响应被提供(框458)。数据被发送到内部阱(框460)。控制系统78确定通道是否已被禁用(框462)。若对框462的回答是否定的,过程420循环回框450,如所指示的。若对于框462的回答是肯定的,那么端口进入关闭状态(框446),如先前所指示的。
[0066] 继续参照图13,在框430之后,过程420还使得总线端口启动并进入数据准备状态(框464)。控制系统78确定是否已到达所传送时隙(框466)。若存在误差,那么处理器420进入误差状态(框452),且随后端口进入关闭状态(框446),如先前所讨论的。若不存在误差,且对于框466的回答是否定的,那么过程420循环,如所指示的。若对于框466的回答是肯定的,那么已经到达所传送时隙,且数据源随后将断言有效样本请求选通STR标志以及相关联的数据存在P标志来指示存在有效数据来用于该所传送时隙(框468)。若存在误差,那么处理器420进入误差状态(框452),且随后端口进入关闭状态(框446),如先前所讨论的。若不存在误差且对于框468的回答是否定的,那么跳过数据输入时隙(框470)。若对于框468的回答是肯定的,那么输入有效数据(框472)。从总线源数据接收数据(框474)。控制系统78确定通道是否已被禁用(框476)。若通道未被禁用,那么过程420循环至框466,如所指示的。若通道已经被禁用,那么端口进入关闭状态(框446),如先前所讨论的。
[0067] 注意,虽然图10-13是从从属方控制系统78所做的工作呈现的,应当领会本公开的示例性方面讲这些概念延伸到主控方控制系统76。进一步,使用水印来定义何时启动的概念在从属方和主控方二者上呈现。使用水印来在逐样本的基础上断言存在或SQR/STR的概念假设了对于音频时间基准的临近,这在从属方侧是常见的,但也可以在主控方侧发现。
[0068] 如上文所提及的,根据本文所公开的诸方面的多通道音频对准方案可在任何基于处理器的设备中被提供或被集成到任何基于处理器的设备中。不作为限定性的示例包括机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD)播放器、以及便携式数字视频播放器。虽然任何此类设备可以受益于本公开的诸方面,但是本公开尤其适合于与根据SLIMbus协议操作的设备联用。
[0069] 本领域技术人员将进一步领会,结合本文所公开的诸方面描述的各种解说性逻辑块、模块、电路和算法可被实现为电子硬件、存储在存储器中或另一计算机可读介质中并由处理器或其它处理设备执行的指令、或这两者的组合。作为示例,本文中描述的设备可在任何电路、硬件组件、集成电路(IC)、或IC芯片中采用。本文所公开的存储器可以是任何类型和大小的存储器,且可配置成存储所需的任何类型的信息。为清楚地解说这种可互换性,以上已经以其功能性的形式一般地描述了各种解说性组件、框、模块、电路和步骤。此类功能性如何被实现取决于具体应用、设计选择、和/或加诸于整体系统上的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。
[0070] 结合本文中公开的诸方面描述的各种解说性逻辑块、模块、以及电路可用设计成执行本文中描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。处理器可以是微处理器,但在替换方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。
[0071] 本文所公开的各方面可被体现为硬件和存储在硬件中的指令,并且可驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其它形式的计算机可读介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取/写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在远程站中。在替换方案中,处理器和存储介质可作为分立组件驻留在远程站、基站或服务器中。
[0072] 还注意到,本文任何示例性方面中描述的操作步骤是为了提供示例和讨论而被描述的。所描述的操作可按除了所解说的顺序之外的众多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可在多个不同步骤中执行。另外,示例性方面中讨论的一个或多个操作步骤可被组合。将理解,如对本领域技术人员显而易见地,在流程图中解说的操作步骤可进行众多不同的修改。本领域技术人员还将理解,可使用各种不同技术中的任何一种来表示信息和信号。例如,贯穿上面说明始终可能被述及的数据、指令、命令、信息、信号、比特、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
[0073] 提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员而言将容易是显而易见的,并且本文中所定义的普适原理可被应用到其他变型而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖特征一致的最广义的范围。