CN101233706A - 数据流同步 - Google Patents
数据流同步 Download PDFInfo
- Publication number
- CN101233706A CN101233706A CNA200680027835XA CN200680027835A CN101233706A CN 101233706 A CN101233706 A CN 101233706A CN A200680027835X A CNA200680027835X A CN A200680027835XA CN 200680027835 A CN200680027835 A CN 200680027835A CN 101233706 A CN101233706 A CN 101233706A
- Authority
- CN
- China
- Prior art keywords
- buffer
- buffer storage
- sampling rate
- threshold position
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/062—Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
- H04J3/0632—Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Information Transfer Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
将接收设备处理从异步设备接收到的数据分组流的速率与异步设备传输数据分组的速率同步。设备在缓冲存储器中存储接收到的数据分组,并以由采样速率控制器所决定的采样速率对来自缓冲存储器的数据进行处理。根据存储器填充程度指针的阈值比较,调整采样速率,以将处理数据的速率与从异步设备接收数据的速率进行同步。通过上述速率的同步,可避免缓冲器上溢出和下溢出情况。
Description
技术领域
本发明主要涉及信号处理技术,尤其是异步环境中的数据分组流同步技术。
背景技术
以稳定速率对如视频与音频信号等同步数据进行成流处理,以确保以最好的质量向用户呈现视频或音频。同步数据处理或传输过程中的严重延迟会导致视频或音频呈现混乱。这将降低所提供给用户的视频或音频的质量,而这在很多应用中都是不可接受的。
在实时异步***中,数据同步处理将变得更加困难。在异步***中,数据会以分组的形式从第一设备传输到第二设备。图1示出了一种现有***100,用于将数据流(例如,音频或视频数据)从计算设备101(例如,个人计算机(PC))通过通用串行总线(USB)连接115传输到输出设备120。如图所示,计算设备101包括主机控制器110,通过USB连接115与USB设备120相连。
在典型的现有***中,输出设备120的USB设备控制器接收主机控制器110通过USB连接115传输过来的数据分组流。在输出设备能够进行数据分组采样或处理前,设备控制器125在缓冲存储器130中存储这些数据分组。采样接口以基于输出设备时钟的采样速率从缓冲存储器130中获取数据,然后再将这些数据传输至数模(D/A)转换器160。D/A转换器将数字信号转换成模拟形式,以便输出设备将这些数据输出给用户。
主机控制器110与输出设备120之间传输数据分组的速率由CLK1(计算设备101的时钟信号)所决定。这正如前文所述,采样速率或者输出设备120处理来自主机控制器110数据的速率是由CLK2(输出设备时钟)所决定。由于***的异步特性,计算设备110向输出设备120发送数据分组的速率可能与输出设备120处理数据分组的速率不同。
如果主机控制器110以比输出设备120处理数据分组的速率更快的速率发送数据分组,缓冲存储器将可被填满。这种情况被称作缓冲器上溢出情况。当缓冲存储器被填满之后,任何随后到达的数据分组都将被丢弃。当处理如音频和视频这些同步数据时,缓冲器上溢出是不可接受的,因为它将导致丢失的数据无法呈现给用户。这种情况会导致所呈现的音频或视频的混乱或不完整。
如果输出设备120以比主机控制器110发送数据分组的速率更快的速率处理数据分组,一段时间后,缓冲存储器将会完全变空。输出设备将等候下一个数据分组的抵达以回放给用户。这种情况被称为缓冲器下溢出情况。当传输如音频和视频这些同步数据时,缓冲器下溢出也是不可接受的,因为它将导致在输出设备等候下一个数据分组时所造成的音频或视频的停顿。
在相反的情况下也是如此。当音频或视频数据被输入设备获取到并传输至计算设备(如个人计算机)时,相同的问题也可能会发生。如果设备正在以高于计算设备处理数据分组的速率获取并发送数据至计算设备,那么获取设备中的缓冲器则会发生上溢出情况,进而导致数据丢失。同样,如果设备以低于计算设备处理数据分组的速率来获取并发送数据至计算设备,那么下溢出情况就将发生。
发明内容
本发明将接收设备处理从异步设备接收到的数据分组流的速率与异步设备传输数据分组的速率同步。在一个实施例中,设备在缓冲存储器中保存所接收到的数据分组,并以由采样速率控制器所决定的采样速率对来自缓冲存储器的数据进行处理。可以调整采样速率,以使处理数据的速率与接收异步设备所发送的数据的速率同步。通过对上述速率进行同步,可以避免缓冲器上溢出和下溢出情况。
在一个实施例中,可以监测缓冲存储器的缓冲程度,以确定该如何调整采样速率。在一个实施例中,缓冲存储器中包括用来指示缓冲存储器的缓冲程度的指针。缓冲存储器的缓冲程度可与缓冲存储器内的阈值位置进行比较,以确定该如何调整采样速率。在一个实施例中,如果缓冲存储器的缓冲程度低于所述阈值,可降低采样速率,以使设备处理数据分组的速率与传输数据分组的速率接近同步。如果缓冲存储器的缓冲程度高于所述阈值位置,可提高采样速率。经过一段时间,采样速率将变得与异步设备传输数据分组的速率同步。
可参考本发明的实施例,在附图中示出了这些实施例的示例。这些附图是示例性的,并非限制性的。尽管通过这些实施例对本发明进行描述,但应该了解的是并不倾向于将本发明的范围仅限定为这些特定的实施例。
附图说明
图1是一种在异步环境中处理数据流的现有***的方框图。
图2是根据本发明一个实施例的数据流同步***的方框图。
图3示出了包括多个数据分组310的数据流300。
图4示出了根据本发明一个实施例的缓冲存储器230的实现方式。
图5是示出了在输出设备以与主机控制器向输出设备传输数据分组的速率相同的速率处理数据分组流的***中,数据分组流、分组结尾(EOP)标识符和缓冲程度之间的关系的曲线图。
图6是根据本发明一个实施例的采样速率控制器240的方框图。
图7示出了根据本发明一个实施例的用于调整采样速率的方框图。
图8是示出了数据分组、分组结尾(EOP)标识符、缓冲存储器缓冲程度、相对于阈值的锁定程度与采样校正之间的关系的曲线图。
图9是根据本发明一个实施例的、对从获取设备920传输至计算设备的数据流进行同步的***的方框图。
图10是根据本发明一个实施例的同步数据分组流的流程图1000。
具体实施方式
下面所描述的是用于对两个异步设备之间处理数据分组流的速率与传输数据分组流的速率进行同步的***、设备和方法。在下面的描述中,为了解释说明的目的,将会列出详细的细节以便于理解本发明。但是显然,对于本领域普通技术人员,也可以不需要这些细节来实施本发明。此外,本领域普通技术人员将会意识到以下所描述的关于本发明的实施例可由多种媒介实现,包括软件、硬件、固件或其组合。因此,下面所描述的流程图既是为了对本发明特定的实施例进行举例说明,也是为了避免对本发明的模糊理解。
说明书中所提及的“一个实施例”、“优选实施例”或“实施例”意味着所描述的与实施例相关的特定特征、结构、特性或功能至少包括于本发明的一个实施例中。本说明书不同地方出现的短语“在一个实施例中”不必全都表示同一个实施例。
图2是根据本发明一个实施例的数据流同步***200的方框图。***200包括USB主机控制器110,通过USB连接115与输出设备220相连。输出设备220包括设备控制器125、缓冲存储器230、缓冲锁存器235、采样速率控制器240、采样接口150和数模(D/A)转换器160。主机控制器110、设备控制器125、采样接口150和D/A转换器160都是本领域公知的器件。缓冲存储器230可使用包括固态存储设备在内的公知存储设备来实现。类似地,缓冲锁存器235可使用包括但不局限于D锁存器、SR触发器和JK触发器在内的公知锁存器来实现。
如图所示,主机控制器110可位于PC或其它计算设备101上,用于在计算设备101与输出设备220之间传输数据分组流。图3示出了数据分组流300的示例。流300由按照有规则的时间间隔(图3中以T标注)传输的多个数据分组310A-N构成。每个数据分组310可包括一个或多个报头字段320、数据330和用于标识数据分组结尾的分组结尾(EOP)标识符325。
输出设备220通过设备控制器125顺序地接收数据分组流,其中包括用于从USB连接115接收数据的低层硬件。在设备控制器125接收到每个数据分组后,将其存储在缓冲存储器230内。设备控制器125还对每个数据分组的EOP标识符325进行检测,当检测到EOP标识符时,将EOP信号输出到缓冲锁存器335。采样接口150对来自缓冲存储器230的数据进行存取,并将其提供给D/A转换器160。采样接口对来自缓冲存储器230的数据进行存取的速率被称为采样速率。在一个实施例中,采样速率由采样速率控制器240使用输出设备时钟(CLK2)和缓冲偏移值(详见下文)决定。D/A转换器160将从缓冲存储器230获得的数字数据转换为模拟形式,以便由输出设备220回放。
应当注意的是:主机控制器110由计算设备的***时钟CLK1控制,而输出设备220则由设备时钟CLK2控制。***的异步特性意味着:主机控制器110向输出设备220传输数据分组的速率可能与输出设备220处理数据分组的速率不同。如果主机控制器传输数据分组流的速率快于输出设备220处理数据分组的速率,则一段时间后,可能发生上溢出情况。如果主机控制器传输数据分组的速率慢于输出设备220处理数据的速率,则一段时间后,可能发生下溢出情况。如图3所示,主机控制器110以有规则的时间间隔将数据分组传输或下载至设备控制器125。在一个实施例中,每个分组的EOP标识符可用于标示出主机控制器向输出设备220发送数据分组的速率。
图4示出了根据本发明一个实施例的缓冲存储器230的示例。在本示例中,缓冲存储器230是先进先出(FIFO)存储器,具有等同于三个数据分组大小的缓冲器容量。就本示例而言,假设每个数据分组的尺寸为Q(如图3所示)。因此,缓冲存储器230的尺寸P=3Q。在一个实施例中,缓冲存储器230包括用于指示缓冲存储器230的缓冲程度的缓冲程度指针440。如稍后所述,缓冲程度指针440可作为用于调整采样速率的反馈信号,以使输出设备220处理数据的速率与主机控制器110传输数据的速率相同步。
在一个实施例中,可以将目标指针450用作缓冲存储器230内的阈值参考位置。用户可根据优化缓冲器使用的***需要来定义目标指针450。在一个实施例中,目标指针标识缓冲存储器230内的阈值位置。此阈值位置可以是接收到每个EOP标识符时、有效地避免了上溢出或下溢出情况的发生的、缓冲存储器230的最佳缓冲程度。
图5示出了在输出设备处理数据分组的速率与主机控制器向输出设备传输数据分组流的速率同步的***中,数据分组流、EOP指示符和缓冲程度之间的关系。如图5所示,缓冲程度开始增长,直至缓冲器填充至程度Q,Q表示数据分组的大小。此时,已经接收到第一数据分组。在本示例中,在第一数据分组到达后,输出设备开始将数据回放T/2的持续时间(即第一EOP到达后的T/2)。当流中的下一个数据分组开始抵达时,缓冲存储器已经存储了大约X2=Q/2个字节的数据,而缓冲存储器230中至少有2Q字节的空闲空间。如图5所示,随着输出设备接收与回放数据分组,缓冲存储器230持续被填充与清空。
应当注意的是:在图5所示的同步***中,缓冲存储器230被填充至一半位置,随即开始降低,直至达到缓冲程度X2,随后当下一个数据分组抵达时,再次被填充至缓冲器的中间。还要注意的是:每次在EOP标识符出现时,缓冲器都处于一半被填充的位置点。在一个实施例中,这是缓冲存储器230内的阈值位置。因此,如图4所示,目标指针450为缓冲存储器230的中心点提供了参照。在图4所示的缓冲存储器230的实施例中,缓冲存储器230以先进先出的方式由右至左被填充。如果缓冲程度指针440处于目标指针450右侧,则缓冲器尚未被填充至一半;如果缓冲程度指针440处于目标指针450左侧,则缓冲器已被填充过半。无论缓冲程度指针所示缓冲程度低于或高于由目标指针450所代表的阈值位置,均可以调整采样速率,以使采样速率与主机控制器向输出设备传输数据分组流的速率接近同步。
在图2所示的实施例中,每当设备控制器遇到EOP标识符225时,将缓冲程度指针440和目标指针450锁存至缓冲锁存器235中。可以将缓冲程度指针440与目标指针450和一个缓冲偏移值x1进行比较,用于表示缓冲程度指针440相对于目标指针450的位置,可以将其输出至采样速率控制器240。采样速率控制器240可使用缓冲偏移值x1来调整采样接口150处理数据分组的采样速率。
在调整采样速率的同时,缓冲存储器230的缓冲程度将相应地增长或降低。因此,当接收到下一个EOP指针时,缓冲程度指针440的缓冲程度将逐渐接近目标指针450的阈值。在接收到每一个EOP指针时,持续调整采样速率,直到缓冲程度指针440落在目标指针450上为止。此时,输出设备处理从主机控制器接收的数据的速率与主机控制器传输数据流的速率相同步。
图6示出了根据本发明的采样速率控制器240的一个实施例。在此实施例中,采样速率控制器包括与校正功能模块620相连的除法计数器610。除法计数器是本领域普通技术人员所公知的。校正功能模块620可通过硬件、软件、固件或其组合来实现。
在一个实施例中,采样速率控制器接收来自缓冲锁存器235的缓冲偏移值x1和输出设备220的设备时钟(CLK2)作为输入。将设备时钟(CLK2)输入除法计数器610,除法计数器610将设备时钟除以整数值N,将设备时钟(CLK2)的频率降低N倍。输出时钟是采样时钟,决定了采样接口150的采样频率。本领域普通技术人员将意识到可以根据多种与应用有关的因素来确定N的取值,其中包括所需采样速率等。
在本发明的一个实施例中,校正功能模块620接收缓冲偏移值x1作为输入。缓冲偏移值x1是目标指针450(阈值位置)与缓冲程度指针440之间的差值。如果缓冲程度指针440小于目标指针450,x1的值为正值。与之相反,如果缓冲程度指针440大于目标指针450,x1的值为负值。
在一个实施例中,可根据公式N(x1)调整N的取值,其中N(x1)是基于x1的取值的函数。本领域普通技术人员将意识到:存在多种函数,可用于根据缓冲偏移值x1来调整N的取值,以实现所需的采样频率升高或降低。在一个实施例中,如果x1的值为负数,则N(x1)=N-1;如果x 1的值为正数,则N(x1)=N+1。这些函数根据x1的取值将N的取值增加或减小1。如果x1=0,N的值保持不变。
如果x1的值为正数,则缓冲程度低于缓冲存储器230内的阈值指针。这表示输出设备220处理从主机控制器110接收到的数据的速率比数据分组流传输至输出设备220的速率快。如果不对数据处理速率进行调整,输出设备220可能会进入需要等待下一个用于回放给用户的数据分组的阶段。如果输出设备220正在输出音频或视频,这将引起数据回放的延迟,用户则可能将其看作断续(choppiness)。在这种情况下,本发明增大N的取值,以降低采样速率的频率。这将降低输出设备220处理数据分组的速率。可以在设备控制器125每次接收到EOP时,调整N的取值。一段时间后,可以使处理数据分组的速率与主机控制器110传输数据分组流的速率同步。
同样,如果x1为负数,缓冲程度高于缓冲存储器230内的阈值指针。通过减小N的取值,提高采样速率的频率,从而提高输出设备220处理数据的速率。随着N值经过一段时间的调整,输出设备220处理数据分组的速率可变得与主机控制器110传输数据分组流的速率同步。
图7示出了根据本发明、用于调整采样速率的可选实施例。图7示出了与用于调整设备时钟(CLK2)的校正功能模块720相连的用于产生设备时钟(CLK2)的锁相环(PLL)710,以使设备时钟(CLK2)与主机控制器110传输数据分组流的速率同步。PLL 710包括两个除法计数器730和740、相位检测器750和数控振荡器(DC0)760。在另一个实施例中,可使用压控振荡器(VCO)来替代DCO 760。除法计数器730和740、相位检测器750和数控振荡器760都是本领域公知的器件。
在这个实施例中,PLL 710接收输入时钟和调整值N和M,作为输入。将输入时钟fin输入除法计数器730。在一个实施例中,输入时钟fin为输出设备220的源时钟。除法计数器730将输入时钟的频率除以输入值N。将降低了频率的时钟输出至相位检测器750。相位检测器750将降低了频率的时钟与由DCO 760产生的反馈时钟信号对准。在本实施例中,已将除法计数器740***在DCO 760和相位检测器750之间的反馈环路中,以增加从相位检测器750输出的时钟的频率。在本实施例中,从DCO 760输出的时钟的频率等于M乘以从除法计数器730输出的时钟的频率。
图7的实施例得到:从PLL 710输出的设备时钟CLK2为CLK2=(fin)*(M/N)。如图7所示,可将设备时钟(CLK2)输出至除法计数器780,以生成决定设备采样速率的采样时钟。采样时钟的频率f1=CLK2/L,可重写为f1=((fin)*(M/N))/L。可将采样时钟输出至采样接口150,以控制采样速率,并由此控制输出设备220处理数据分组的速率。
M、N和L的取值可由用户或设计人员根据应用的需要来设置,以提供所需采样频率。例如,假设输入时钟的频率fin=48MHz,而用户想得到频率f1=12.228MHz的初始采样时钟,可以将初始值设置为M=6144、N=6000和L=4。这将产生所需频率f1=12.228MHz的采样时钟。
可调整M和/或N的取值来改变从PLL 710输出的设备时钟(CLK2)的频率。在本发明的一个实施例中,校正功能模块720根据输入的缓冲偏移值x1来调整M和/或N的取值。在一个实施例中,x1为目标指针450(阈值位置)与缓冲程度指针440之间的差值。如果缓冲程度指针440小于目标指针450,x1的值为正值。相反,如果缓冲程度指针440大于目标指针,x1的值为负值。
在一个实施例中,可分别根据函数M(x1)和/或N(x1),调整M和/或N的取值。在一个实施例中,当x1为正数时,可根据函数M(x1)=M-1和N(x1)=N-1来调整N和M,以降低设备时钟(CLK2)和采样时钟的频率(如上文所述)。当x 1为负数时,可根据函数M(x1)=M+1和N(x1)=N+1来调整M和N,以提高设备时钟(CLK2)和采样时钟的频率。本领域普通技术人员将意识到:存在多种函数M(x1)和N(x1),可用于根据输入x1来调整M和N的取值。应该注意的是:可彼此独立地调整M和N的值。例如,在一个实施例中,对于减小N的取值的给定缓冲偏移值x1,增加M的取值,反之亦然。此类调整也将对设备时钟(CLK2)和采样时钟的频率产生提高或降低的影响。
回到上面的示例中,假设M、N和L的取值已被设定,以获得初始采样频率12.288MHz。如果缓冲偏移值x1为负,可将M和N的取值增加1,以调整从PLL 710输出的设备时钟(CLK2)的频率,从而调整采样时钟的频率。使用上述函数M(x1)和N(x1),新的设备时钟为CLK2=(48MHz)*(6145/6001)=49.1518080MHz。将设备时钟除以L,得到采样时钟f1=(49.1518080MHz)/4=12.287952MHz。采样时钟频率的这个小改变将降低输出设备的采样速率。采样速率的小幅下降可引起缓冲存储器230的缓冲程度小幅提高,从而当下一个EOP标识符到达时,缓冲程度指针440将更接近目标指针450。
应该注意的是:图6和图7中的实施例仅为基于缓冲存储器230的缓冲程度提高或降低采样速率的众多方法中的两种。本领域普通技术人员将意识到其他实施方式也是可能的并应当包括在本发明的范围内。
图8是示出了数据分组、分组结尾信号、缓冲存储器缓冲程度、相对于阈值的锁定程度和采样校正之间的关系。如图所示,数据分组每隔时间间隔T到达。时间间隔T表示主机控制器110向输出设备220传输数据分组流的速率。应当注意:当遇到每个分组结尾(EOP)标识符时,将缓冲程度指针440(图8中以x3代表)锁存到缓冲锁存器235中。虚线810表示阈值,即目标指针450。
缓冲偏移值x1表示锁存值x3与阈值位置之间的差值。当x1高于阈值位置时,降低采样速率,在图表中的采样速率校正部分以负号(-)表示。应当注意:当采样速率降低时,缓冲程度指针x3也降低,直至其低于阈值。一旦发生此情况,增加采样速率,在采样校正速率图表中以正号(+)表示。采样速率得到持续调整直至***达到稳定状态,当在每个EOP标识符抵达时,缓冲程度指针均落在阈值位置上时,***即达到稳定状态。
在图8中,稳定状态发生在第17个数据分组处。从这点开始,采样速率与主机控制将数据发送或下载至输出设备的速率相匹配。在这种情况下,***不可能发生关于缓冲存储器230的上溢出或下溢出情况。应当注意:图表的采样速率校正部分在数据分组17之后全部为零。这表明采样速率已经达到稳定状态,不再需要进一步的调整。如果主机控制器改变其传输数据分组的速率,***将再次开始调整采样速率,直至确定与主机控制器的数据分组速率相匹配的新采样速率。
前文所讨论的几个实施例描述了当从主机控制器110向输出设备220传输数据流以便由输出设备220输出时,如何将采样速率与主机控制器110的数据速率同步。图9示出了本发明的一个实施例,用于在从获取设备920向主机控制器110传送数据流时,将采样速率与主机控制器的数据速率同步。这种情况会发生在获取设备920获取数据时,如视频或音频记录设备。
当从视频或音频获取设备上传数据时,主机控制器110发起“流开始”命令,以启动获取设备920中的获取处理。获取设备920获取模拟音频或视频数据,并将其输入至模数(A/D)转换器960,A/D转换器960将模拟音频或视频信号转换为相应的数字表示。采样接口150可持续对来自A/D转换器960的数据进行采样,并将数据存储在缓冲存储器230中。采样接口150的数据采样速率由采样速率控制器240决定。
缓冲存储器230持续填充数据,直至设备控制器125接收到来自主机控制器110的输入令牌。每当设备控制器125接收到输入令牌时,设备控制器125将数据分组从缓冲存储器230传递至主机控制器110。设备控制器125还向缓冲锁存器235输出输入令牌已接收信号。输入令牌可用作主机控制器110请求来自获取设备920的数据分组的速率的表示。因此,输入令牌已接收信号起到了与图2所示的实施例中所描述的EOP标识符相同的作用。
如果输入设备的采样速率大于主机控制器传输输入令牌的速率,则可能发生缓冲器上溢出情况,进而导致数据丢失。类似地,如果输入设备的采样速率低于主机控制器传输输入令牌的速率,则可能发生缓冲器下溢出情况。如果缓冲器下溢出情况发生,当接收到下一个输入令牌时,缓冲器内可能没有足够的数据用来发送数据分组。
本发明可通过将从主机控制器110接收输入令牌的速率与获取设备920处理数据的速率同步,防止上溢出或下溢出情况的发生。如图9所示,在一个实施例中,每当输入令牌已接收信号被输出至缓冲锁存器235时,可将缓冲程度指针440锁存在缓冲锁存器235中。通过按照由输入令牌所决定的时间间隔对缓冲程度进行监测并调整采样速率(如前文所述),可将采样速率与主机控制器110请求数据分组的速率相同步。
图10示出了根据本发明的、用于调整采样速率的方法的流程图。在步骤1010中,接收数据分组流。在步骤1020中,当接收到数据分组流中的每个数据分组时,将其存储在缓冲存储器中。如前文所述,可将数据分组顺序地存储到先进先出(FIFO)存储器中,直至***准备好对这些数据分组进行处理。如前文所述,所述***根据采样速率来处理这些分组。
在步骤1030中,监测缓冲存储器的缓冲程度,以确定在给定时间点,缓冲存储器内填充了多少数据分组流中的数据分组。在一个实施例中,当接收到EOP标识符时,监测缓冲存储器的缓冲程度。在步骤1040中,根据缓冲存储器的缓冲程度相对于缓冲存储器阈值位置的关系,调整采样速率。在一个实施例中,阈值位置可为缓冲存储器的中间点。在此实施例中,可根据缓冲存储器的填充程度相对于缓冲存储器中间点的关系,来调整采样速率。在另一个实施例中,阈值可由用户确定。
在一个实施例中,可以将缓冲存储器的缓冲程度与阈值位置进行比较,以确定缓冲程度与阈值位置之间的关系。如果缓冲程度低于阈值位置,可降低采样速率,以使缓冲器被进一步填充。降低采样速率可使采样速率进一步与接收设备请求发送数据分组的速率同步。如果缓冲程度高于阈值位置,可提高采样速率,以降低输入数据分组填充缓冲器的量。此外,降低采样速率可使其进一步与接收设备请求传输数据分组的速率保持一致。
虽然已经参照特定实施例,对本发明进行了描述,但本领域普通技术人员应当意识到可以提供多种修改。例如,虽然已经参照通过USB连接相连的设备,对本发明进行了描述,但本领域普通技术人员应当意识到本发明并不局限于USB设备,也可用于数据流需要同步或受益于同步的任何异步环境。可受益于本发明的其他数据流技术的示例包括但不局限:PCI、火线(IEEE 1394)和语音IP(VoIP)数据流。可以对本发明进行变更和修改,本发明仅由所附权利要求限定。
Claims (19)
1.一个***,用于将第一设备处理从异步设备接收到的数据分组的第一速率与所述异步设备传输所述数据分组的第二速率同步,所述***包括:
缓冲存储器,用于存储从所述异步设备接收到的数据分组,所述缓冲存储器包括用于指示缓冲存储器的缓冲程度的指针;以及
采样速率控制器,用于根据所述指针的位置与所述缓冲存储器内的阈值位置之间的关系,调整所述第一速率,
其中经过一段时间后,将处理来自所述缓冲存储器的数据分组的所述第一速率与所述异步设备传输数据分组的第二速率同步。
2.根据权利要求1所述的***,其特征在于如果所述指针高于所述阈值位置,则所述采样速率控制器增大所述第一速率。
3.根据权利要求1所述的***,其特征在于如果所述指针低于所述阈值位置,则所述采样速率控制器减小所述第一速率。
4.根据权利要求1所述的***,其特征在于所述阈值位置为所述缓冲存储器的中间。
5.根据权利要求1所述的***,其特征在于所述阈值位置由用户定义。
6.根据权利要求1所述的***,其特征在于所述缓冲存储器为先进先出(FIFO)存储器设备。
7.一种方法,用于调整在第一设备中处理多个数据分组的采样速率,以防止缓冲存储器发生下溢出或上溢出情况,所述方法包括:
接收来自第二设备的数据分组流;
在接收到每个数据分组时,将其存储在所述缓冲存储器中;
以由所述采样速率所决定的速率,处理来自所述缓冲存储器的数据分组;
监测所述缓冲存储器的缓冲程度;以及
根据所述缓冲存储器的缓冲程度与所述缓冲存储器内的阈值位置之间的关系,调整所述采样速率,
其中经过一段时间后,将所述采样速率与所述第二设备向所述第一设备传输数据分组流的速率同步。
8.根据权利要求7所述的方法,其特征在于所述缓冲程度提供了关于缓冲器有多少正在被使用的指示。
9.根据权利要求7所述的方法,其特征在于如果所述缓冲存储器的缓冲程度高于所述阈值位置,则减小所述采样速率。
10.根据权利要求7所述的方法,其特征在于如果所述缓冲存储器的缓冲程度低于所述阈值位置,则增大所述采样速率。
11.根据权利要求7所述的方法,其特征在于所述阈值位置为所述缓冲存储器的中间。
12.一种方法,用于调整将数据存储到获取设备的缓冲存储器的采样速率,所述方法包括:
接收来自第二设备的输入令牌;
将所述获取设备所获取的数据存储在缓冲存储器中,其中以由所述采样速率所决定的速率,存储所述数据;
监测所述缓冲存储器的缓冲程度;以及
根据所述缓冲存储器的缓冲程度与所述缓冲存储器内的阈值位置之间的关系,调整所述采样速率,
其中经过一段时间后,将所述采样速率与所述第二设备传输所述输入令牌的速率同步。
13.根据权利要求12所述的方法,其特征在于所述缓冲程度提供了关于缓冲器有多少正在被使用的指示。
14.根据权利要求12所述的方法,其特征在于如果所述缓冲存储器的缓冲程度高于所述阈值位置,则减小所述采样速率。
15.根据权利要求12所述的方法,其特征在于如果所述缓冲存储器的缓冲程度低于所述阈值位置,则增大所述采样速率。
16.根据权利要求12所述的方法,其特征在于所述阈值位置为所述缓冲存储器的中间。
17.一种采样速率控制器,用于根据用于存储数据分组流的缓冲存储器的缓冲程度来调整采样时钟,所述采样速率控制器包括:
除法计数器,用于接收输入时钟,并将输入时钟除以一除数,以生成所述采样时钟;以及
校正功能模块,用于根据所述缓冲存储器的缓冲程度与所述缓冲存储器内的阈值位置之间的关系,调整所述除数的值。
18.根据权利要求17所述的采样速率控制器,其特征在于如果所述缓冲存储器的缓冲程度高于所述阈值位置,则增大所述除数的值。
19.根据权利要求17所述的采样速率控制器,其特征在于如果所述缓冲存储器的缓冲程度低于所述阈值位置,则减小所述除数的值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US70370705P | 2005-07-29 | 2005-07-29 | |
US60/703,707 | 2005-07-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101233706A true CN101233706A (zh) | 2008-07-30 |
Family
ID=37388348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200680027835XA Pending CN101233706A (zh) | 2005-07-29 | 2006-07-28 | 数据流同步 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20080186972A1 (zh) |
EP (1) | EP1913719A1 (zh) |
JP (1) | JP2009503986A (zh) |
CN (1) | CN101233706A (zh) |
TW (1) | TW200731702A (zh) |
WO (1) | WO2007013044A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102540968A (zh) * | 2010-12-09 | 2012-07-04 | 中国科学院沈阳计算技术研究所有限公司 | 一种面向数控***的数据流反馈调度方法 |
CN103493424A (zh) * | 2011-04-08 | 2014-01-01 | 晶像股份有限公司 | 对从数据流中重新产生的时钟信号的调整 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098868B1 (en) | 2007-03-20 | 2015-08-04 | Qurio Holdings, Inc. | Coordinating advertisements at multiple playback devices |
US7805373B1 (en) * | 2007-07-31 | 2010-09-28 | Qurio Holdings, Inc. | Synchronizing multiple playback device timing utilizing DRM encoding |
US8060904B1 (en) | 2008-02-25 | 2011-11-15 | Qurio Holdings, Inc. | Dynamic load based ad insertion |
US7971115B2 (en) * | 2009-01-31 | 2011-06-28 | Xilinx, Inc. | Method and apparatus for detecting and correcting errors in a parallel to serial circuit |
US8861669B2 (en) * | 2009-09-30 | 2014-10-14 | Synaptics Incorporated | Stream clock recovery in high definition multimedia digital system |
US9935858B1 (en) * | 2015-08-24 | 2018-04-03 | Xangati, Inc | Enhanched flow processing |
TWI734326B (zh) | 2019-12-30 | 2021-07-21 | 新唐科技股份有限公司 | 音訊同步處理電路及其方法 |
CN115904307B (zh) * | 2023-03-08 | 2023-06-06 | 鹏城实验室 | 一种数据缓存器溢出处理方法及通信*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06141026A (ja) * | 1992-10-26 | 1994-05-20 | Matsushita Electric Ind Co Ltd | クロック再生方法およびクロック再生装置 |
SE515201C2 (sv) * | 1993-11-26 | 2001-06-25 | Ericsson Telefon Ab L M | Förfarande och anordning för klocksignalgenerering |
FR2737367B1 (fr) * | 1995-07-28 | 1997-10-17 | Thomson Multimedia Sa | Procede et dispositif de synchronisation d'horloges d'encodeurs et decodeurs numeriques |
US5790538A (en) * | 1996-01-26 | 1998-08-04 | Telogy Networks, Inc. | System and method for voice Playout in an asynchronous packet network |
US5949795A (en) * | 1997-02-14 | 1999-09-07 | General Instrument Corporation | Processing asynchronous data within a set-top decoder |
US6301258B1 (en) * | 1997-12-04 | 2001-10-09 | At&T Corp. | Low-latency buffering for packet telephony |
US6347380B1 (en) * | 1999-03-03 | 2002-02-12 | Kc Technology, Inc. | System for adjusting clock rate to avoid audio data overflow and underrun |
JP3465227B2 (ja) * | 2000-01-26 | 2003-11-10 | 日本電気エンジニアリング株式会社 | 電話端末装置 |
AUPQ896300A0 (en) * | 2000-07-24 | 2000-08-17 | Nec Australia Pty Ltd | A clock synchronisation method for usb sink devices |
US7177306B2 (en) * | 2002-09-30 | 2007-02-13 | Texas Instruments Incorporated | Calculation of clock skew using measured jitter buffer depth |
JP2004221951A (ja) * | 2003-01-15 | 2004-08-05 | Alps Electric Co Ltd | 伝送データのジッター補正方法 |
-
2006
- 2006-07-26 TW TW095127348A patent/TW200731702A/zh unknown
- 2006-07-28 EP EP06780239A patent/EP1913719A1/en not_active Withdrawn
- 2006-07-28 WO PCT/IB2006/052595 patent/WO2007013044A1/en active Application Filing
- 2006-07-28 JP JP2008523523A patent/JP2009503986A/ja active Pending
- 2006-07-28 CN CNA200680027835XA patent/CN101233706A/zh active Pending
- 2006-07-28 US US11/996,298 patent/US20080186972A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102540968A (zh) * | 2010-12-09 | 2012-07-04 | 中国科学院沈阳计算技术研究所有限公司 | 一种面向数控***的数据流反馈调度方法 |
CN102540968B (zh) * | 2010-12-09 | 2013-12-04 | 中国科学院沈阳计算技术研究所有限公司 | 一种面向数控***的数据流反馈调度方法 |
CN103493424A (zh) * | 2011-04-08 | 2014-01-01 | 晶像股份有限公司 | 对从数据流中重新产生的时钟信号的调整 |
CN103493424B (zh) * | 2011-04-08 | 2015-09-30 | 晶像股份有限公司 | 对从数据流中重新产生的时钟信号的调整 |
Also Published As
Publication number | Publication date |
---|---|
WO2007013044A1 (en) | 2007-02-01 |
US20080186972A1 (en) | 2008-08-07 |
TW200731702A (en) | 2007-08-16 |
EP1913719A1 (en) | 2008-04-23 |
JP2009503986A (ja) | 2009-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101233706A (zh) | 数据流同步 | |
US6937568B1 (en) | Adaptive rate shaping to prevent overflow | |
US6865241B1 (en) | Method and apparatus for sampling digital data at a virtually constant rate, and transferring that data into a non-constant sampling rate device | |
US7352836B1 (en) | System and method of cross-clock domain rate matching | |
US7234007B2 (en) | Adjustable elasticity FIFO buffer have a number of storage cells equal to a frequency offset times a number of data units in a data stream | |
US7898956B2 (en) | Credit-based rate control for high-speed interfaces | |
EP0926851A2 (en) | Method of an apparatus for multiplexing and demultiplexing digital signal streams | |
US10038450B1 (en) | Circuits for and methods of transmitting data in an integrated circuit | |
JPH08507668A (ja) | 直列データ・バス用スキュー除去装置 | |
US5995570A (en) | Recovering a clock signal in a multimedia network using time stamps | |
JP2004364293A (ja) | 適応型速度管理、適応型ポインタ管理及び周波数ロックされた適応型ポインタ管理のための方法及びシステム | |
US7480282B2 (en) | Methods and apparatus for controlling ethernet packet transfers between clock domains | |
US5912880A (en) | System and method for ATM CBR timing recovery | |
US6757304B1 (en) | Method and apparatus for data communication and storage wherein a IEEE1394/firewire clock is synchronized to an ATM network clock | |
JPH03101537A (ja) | ビットレート適合用装置 | |
JPH09247156A (ja) | 回線接続装置 | |
JPH05507398A (ja) | 非同期転送モード型ディジタル電気通信ネットワークの端末装置用同期装置 | |
EP3975456A1 (en) | Clock synchronization device, optical transmitter, optical receiver and method | |
US7697555B1 (en) | Fibre channel SERDES with elastic transmitter FIFO | |
KR100457508B1 (ko) | 타임 스탬프 옵셋 설정 장치 및 그 방법 | |
US7656325B1 (en) | Serializer-deserializer (SerDes) having a predominantly digital architecture and method of deserializing data | |
EP0396669B1 (en) | Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer | |
JPH11112938A (ja) | 画像パケット通信システム | |
CN114762274B (zh) | 速率调节装置和方法 | |
CN111124982B (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080730 |