CN108089834A - 一种播放同步方法、装置和usb声卡 - Google Patents
一种播放同步方法、装置和usb声卡 Download PDFInfo
- Publication number
- CN108089834A CN108089834A CN201711083439.5A CN201711083439A CN108089834A CN 108089834 A CN108089834 A CN 108089834A CN 201711083439 A CN201711083439 A CN 201711083439A CN 108089834 A CN108089834 A CN 108089834A
- Authority
- CN
- China
- Prior art keywords
- write
- data buffer
- audio data
- reading
- slave device
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/165—Management of the audio stream, e.g. setting of volume, audio stream path
-
- 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
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
-
- 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)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种播放同步方法、装置和USB声卡。本发明的技术方案获取主设备写指针写入数据的写入次数和从设备读指针读取数据的读取次数,通过判断两者的大小关系确定主从设备的数据传输是否同步。若是不同步,则调整读指针的位置,使写指针与读指针重新处于同步状态,即写入数据与读取数据再次同步。解决了主从设备时钟相对独立,由于时钟偏差造成数据传输不同步引起的播放不同步的问题。
Description
技术领域
本发明涉及通讯数据传输领域,尤其涉及一种播放同步方法、装置和USB声卡。
背景技术
在设备进行视频或音频播放时,通常涉及到两个设备之间的信号转换和数据传输操作。进行数据传输的两个设备为主设备和从设备,在主设备和从设备之间进行数据传输时,由于主设备和从设备的时钟源相对独立,因此在数据传输时,主设备和从设备的时钟偏差会造成数据传输不同步问题,从而导致声音丢失或失真等现象。现有技术针对主从设备时钟不同步问题提出了增加外围电路等方法,但增加外围电路导致主从设备的设计复杂度增大,成本增加。
发明内容
为了解决上述背景技术中存在的主设备和从设备时钟不同步造成声音丢失以及失真等问题,本发明提供了一种播放同步方法、装置和USB声卡。
根据本发明的一个方面,提供一种播放同步方法,该方法包括:分别累计主设备的写指针向音频数据缓冲区中写入数据的写入次数和从设备的读指针从所述音频数据缓冲区中读取数据的读取次数,在所述写入次数累计至预定次数时,判断所述写入次数与所述读取次数的大小关系;
若所述写入次数大于所述读取次数,将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,所述一定长度为所述写入次数和所述读取次数的差值与数据包长度的乘积;
若所述写入次数小于所述读取次数,将所述从设备的读指针指向0数据缓冲区,并在主设备的写指针向所述音频数据缓冲区中新写入数据的次数等于所述读取次数和所述写入次数的差值后,将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置。
优选地,该方法还包括:定期获取主设备的写指针在所述音频数据缓冲区中的写入位置和从设备的读指针在所述音频数据缓冲区中的读取位置;
若所述写入位置与所述读取位置的差值小于数据包长度,或者所述写入位置与所述读取位置的差值大于所述音频数据缓冲区长度与数据包长度的差值,则将所述音频数据缓冲区内的数据清空,并将所述写入次数和所述读取次数清零。
优选地,在将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,或者将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置之后,该方法还包括:
将所述写入次数和所述读取次数清零,分别重新累计。
根据本发明的另一个方面,提供一种播放同步装置,该装置包括:
次数累计单元,被配置为分别累计主设备的写指针向音频数据缓冲区中写入数据的写入次数和从设备的读指针从所述音频数据缓冲区中读取数据的读取次数;
判断单元,被配置为在所述写入次数累计至预定次数时,判断所述写入次数与所述读取次数的大小关系;
第一处理单元,被配置为在所述判断单元判断所述写入次数大于所述读取次数时,将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,所述一定长度为所述写入次数和所述读取次数的差值与数据包长度的乘积;
第二处理单元,被配置为在所述判断单元判断所述写入次数小于所述读取次数时,将所述从设备的读指针指向0数据缓冲区,并在主设备的写指针向所述音频数据缓冲区中新写入数据的次数等于所述读取次数和所述写入次数的差值后,将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置。
优选地,该装置还包括:
位置获取单元,被配置为定期获取主设备的写指针在所述音频数据缓冲区中的写入位置和从设备的读指针在所述音频数据缓冲区中的读取位置;
数据清空单元,被配置为若所述写入位置与所述读取位置的差值小于数据包长度,或者所述写入位置与所述读取位置的差值大于所述音频数据缓冲区长度与数据包长度的差值,则将所述音频数据缓冲区内的数据清空,并将所述写入次数和所述读取次数清零。
优选地,该装置还包括次数清零单元,
所述次数清零单元,被配置为在将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,或者将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置之后,将所述写入次数和所述读取次数清零,分别重新累计。
根据本发明的再一方面,提供一种USB声卡,该USB声卡包括音频数据缓冲区、0数据缓冲区、次数累计单元、判断单元、第一处理单元和第二处理单元;
所述次数累计单元,被配置为分别累计主设备的写指针向所述音频数据缓冲区中写入数据的写入次数和从设备的读指针从所述音频数据缓冲区中读取数据的读取次数;
所述判断单元,被配置为在所述写入次数累计至预定次数时,判断所述写入次数与所述读取次数的大小关系;
所述第一处理单元,被配置为在所述判断单元判断所述写入次数大于所述读取次数时,将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,所述一定长度为所述写入次数和所述读取次数的差值与数据包长度的乘积;
所述第二处理单元,被配置为在所述判断单元判断所述写入次数小于所述读取次数时,将所述从设备的读指针指向所述0数据缓冲区,并在主设备的写指针向所述音频数据缓冲区中新写入数据的次数等于所述读取次数和所述写入次数的差值后,将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置。
优选地,该USB声卡还包括:
位置获取单元,被配置为定期获取主设备的写指针在所述音频数据缓冲区中的写入位置和从设备的读指针在所述音频数据缓冲区中的读取位置;
数据清空单元,被配置为若所述写入位置与所述读取位置的差值小于数据包长度,或者所述写入位置与所述读取位置的差值大于所述音频数据缓冲区长度与数据包长度的差值,则将所述音频数据缓冲区内的数据清空,并将所述写入次数和所述读取次数清零。
优选地,该USB声卡还包括次数清零单元,所述次数清零单元,被配置为在将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,或者将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置之后,将所述写入次数和所述读取次数清零,分别重新累计。
本发明的提供的USB声卡包括音频数据缓冲区、0数据缓冲区、存储器和处理器,所述存储器和所述处理器之间通过内部总线通讯连接,所述存储器存储有能够被所述处理器执行的计算机程序,所述计算机程序被所述处理器执行时能够实现上述的方法步骤。
本发明的有益效果是:
根据本发明的技术方案,在主从设备读写数据时,获取读指针读取数据的次数和写指针写入数据的次数,通过判断写入次数与读取次数的大小关系,检测读写操作是否同步。在读写操作不同步的情况下,对读取数据的操作进行相应的调整,使得读写数据同步。采用该技术方案,通过纯软件的方法实现主从设备的数据同步,无需增加外围电路,简化了硬件的设计。在数据传输不同步时,及时进行同步处理,减少在同步过程中的数据丢失,提高读写数据同步的精度。
附图说明
图1为本发明实施例提供的一种播放同步方法的流程图;
图2为本发明实施例提供的一种播放同步装置;
图3为本发明实施例提供的一种USB声卡。
具体实施方式
为了解决背景技术中提出的技术问题,本申请的发明人想到采用纯软件方式,通过调整读取数据的操作,使得主从设备写入数据与读取数据同步,进而使得播放同步。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
图1为本发明实施例提供的一种播放同步方法的流程图,参见图1,本实施例的播放同步方法包括:
步骤S101,分别累计主设备的写指针向音频数据缓冲区中写入数据的写入次数和从设备的读指针从音频数据缓冲区中读取数据的读取次数。
步骤S102,在写入次数累计至预定次数时,判断写入次数与读取次数的大小关系。
主设备每向音频数据缓冲区写入数据一次,写入次数累计加一;同时,从设备每从音频数据缓冲区读取数据一次,读取次数也累计加一。主设备和从设备每隔预定时间分别写入数据和读取数据一次,由于主从设备的时钟相对独立,主从设备的时钟偏差会造成写入数据的速度和读取数据的速度不同步,从而导致写入次数和读取次数存在不一致的情况。在写入次数累计至预定次数时,获取此时从设备的读取次数,并将其与写入次数进行对比,判断两者的大小关系,即可得知此时主设备写入数据和从设备读取数据的快慢情况。
步骤S103,若写入次数大于读取次数,将从设备的读指针在音频数据缓冲区向读取方向移动一定长度;若写入次数小于读取次数,将从设备的读指针指向0数据缓冲区。
主从设备在读写数据时,每次写入数据和读取数据的长度为一个数据包的长度。若写入次数大于读取次数,说明主设备写入数据的速度较快,从设备读取数据的速度太慢,写入数据与读取数据不同步。若不进行操作,主设备写入数据与从设备读取数据的差距越来越大,可能会造成设备播放过程中声音丢失的现象。此时,将从设备的读指针在音频数据缓冲区向读取方向移动一定长度,使得写入数据和读取数据同步。移动的一定长度为写入次数和读取次数的差值与数据包长度的乘积。这一操作使读指针和写指针的距离与开始时刻的距离保持相等,读指针再次与写指针同步。
若写入次数小于读取次数,说明主设备写入数据的速度较慢,从设备读取数据的速度太快,写入数据与读取数据也不同步。若不进行操作,可能会造成设备播放过程中声音失真的现象。此时,将从设备的读指针指向0数据缓冲区,读取0数据缓冲区中的数据0,停止从音频数据缓冲区读取主设备写入的数据。在主设备的写指针向音频数据缓冲区中新写入数据的次数等于读取次数和写入次数的差值后,将从设备的读指针重新指向在音频数据缓冲区的原位置。读指针指向0数据缓冲区后,写指针继续向音频数据缓冲区写入数据,当继续写入数据的次数等于判断时读取次数与写入次数的差值时,将读指针从0数据缓冲区中返回,重新指向在音频数据缓冲区中离开前的位置,开始读取数据。
若写入次数等于读取次数,说明写入数据与读取数据的速度相等,两者处于同步的状态,此时不需要进行读指针的操作。
在本发明的一个实施例中,该播放同步方法还包括位置判断的步骤。具体地,定期获取主设备的写指针在音频数据缓冲区中的写入位置和从设备的读指针在音频数据缓冲区中的读取位置。获取写指针的写入位置和读指针的读取位置,是为了判断写入数据与读取数据是否超出极限状态。若写入位置与读取位置的差值小于数据包长度,或者写入位置与读取位置的差值大于音频数据缓冲区的长度与数据包长度的差值,说明写入数据与读取数据的相对状态已经超出了极限状态。写入位置与读取位置的差值小于数据包长度,说明读指针读取数据过快,读指针继续读取数据导致读取数据的位置可能会超过写指针写入数据的位置,造成数据溢出;写入位置与读取位置的差值大于音频数据缓冲区的长度与数据包长度的差值,说明读指针读取数据过慢,若写指针继续写入数据,会将未读取的数据覆盖,导致数据丢失。获取写指针的写入位置和读指针的读取位置,在判断两者的差值处于上述两种极限状态下,将音频数据缓冲区内的数据清空,写指针和读指针也清空,累计的写入次数和读取次数清零,从头开始写入数据和读取数据,以便读写数据的同步,保证读写数据的完整性。
在本发明的一个实施例中,每完成一次写入次数和读取次数的大小关系判断后,从设备的读指针进行相应的移动操作。在移动操作进行完成后,需要重新累计写入次数和读取次数,进行下一次的获取判断。具体地,在将从设备的读指针在音频数据缓冲区中向读取方向移动一定长度,或者将从设备的读指针重新指向在音频数据缓冲区的原位置,完成读指针的移动操作,使得读写数据同步后,将写入次数和读取次数清零,分别重新开始累计,等待下一次的判断。
实施例二
图2为本发明实施例提供的一种播放同步装置,参见图2,该播放同步装置包括:
次数累计单元201,用于累计主设备的写指针向音频数据缓冲区中写入数据的写入次数,和从设备的读指针从音频数据缓冲区中读取数据的读取次数。具体地,可以使用累加器一和累加器二暂存写入次数和读取次数,写指针每写入数据一次和读指针每读取数据一次,算术逻辑单元将写入次数和读取次数分别执行一次累计加一的算术运算,并将运算结果存放在累加器一和累加器二中。
判断单元202,用于在写入次数累计至预定次数时,判断写入次数与读取次数的大小关系。具体地,在累加器一中的写入次数达到预定次数时,利用处理器获取累加器二中的读取次数,并判断写入次数和读取次数的大小关系。
第一处理单元203,用于在判断单元202判断写入次数大于读取次数时,将从设备的读指针在音频数据缓冲区中向读取方向移动一定长度。该一定长度为写入次数和读取次数的差值与数据包长度的乘积。
写入次数大于读取次数,说明主设备写入数据的速度较快,从设备读取数据的速度太慢,写入数据与读取数据不同步。判断到该种状况,处理器将从设备的读指针在音频数据缓冲区向读取方向移动一定长度,使得写入数据和读取数据同步。移动的一定长度为写入次数和读取次数的差值与数据包长度的乘积。
第二处理单元204,用于在判断单元202判断写入次数小于读取次数时,将从设备的读指针指向0数据缓冲区,并在主设备的写指针向音频数据缓冲区中新写入数据的次数等于读取次数和写入次数的差值后,将从设备的读指针重新指向音频数据缓冲区的原位置。
写入次数小于读取次数,说明主设备写入数据的速度较慢,从设备读取数据的速度太快,写入数据与读取数据也不同步。此时,利用处理器将从设备的读指针指向0数据缓冲区,读取0数据缓冲区中的数据0,停止从音频数据缓冲区读取主设备写入的数据。在主设备的写指针向音频数据缓冲区中新写入数据的次数等于读取次数和写入次数的差值后,将从设备的读指针重新指向在音频数据缓冲区的原位置。
在本发明的一个实施例中,该播放同步装置还包括:位置获取单元和数据清空单元(图2中未示出)。
位置获取单元,用于定期获取主设备的写指针在音频数据缓冲区中的写入位置和从设备的读指针在音频数据缓冲区中的读取位置。具体地,利用处理器中的算法单元可以获取写指针的写入位置和读指针的读取位置,并存放在指定的存储单元内。
数据清空单元,用于在写入位置与读取位置的差值小于数据包长度,或者写入位置与读取位置的差值大于音频数据缓冲区长度与数据包长度的差值,则将音频数据缓冲区内的数据清空,并将写入次数和所述读取次数清零。
处理器获取指定存储单元内的写入位置和读取位置,并利用算术逻辑单元进行位置的逻辑减运算,若两者的差值小于数据包长度,或者大于音频数据缓冲区的长度与数据包长度的差值,说明写入数据与读取数据的相对状态已经超出了极限状态。将音频数据缓冲区内的数据清空重新写入和读取数据,并将累加器一和累加器二中的写入次数和读取次数清零,重新开始累计。
在本发明的一个实施例中,该播放同步装置还包括次数清零单元(图2中未示出),用于在将从设备的读指针在音频数据缓冲区中向读取方向移动一定长度,或者将从设备的读指针重新指向在音频数据缓冲区的原位置之后,将写入次数和读取次数清零,分别重新累计。具体地,在读指针的移动操作完成后,将累加器一和累加器二中的写入次数和读取次数全部清零,重新开始累计,等待下一次的获取判断。
本实施例提供的一种播放同步装置可以用于执行上一实施例中的一种播放同步方法,其原理和技术效果类似,此处不再赘述。
实施例三
图3为本发明实施例提供的一种USB声卡,参见图3,该USB声卡包括:音频数据缓冲区301、0数据缓冲区302、次数累计单元201、判断单元202、第一处理单元203和第二处理单元204。
次数累计单元201,用于分别累计主设备的写指针向音频数据缓冲区301中写入数据的写入次数和从设备的读指针从音频数据缓冲区301中读取数据的读取次数。
判断单元202,用于在写入次数累计至预定次数时,判断述写入次数与读取次数的大小关系。
第一处理单元203,用于在判断单元202判断写入次数大于读取次数时,将从设备的读指针在音频数据缓冲区中向读取方向移动一定长度,一定长度为写入次数和读取次数的差值与数据包长度的乘积。
第二处理单元204,用于在判断单元202判断写入次数小于读取次数时,将从设备的读指针指向0数据缓冲区302,并在主设备的写指针向音频数据缓冲区301中新写入数据的次数等于读取次数和写入次数的差值后,将从设备的读指针重新指向在音频数据缓冲区301的原位置。
在本发明的一个实施例中,该USB声卡还包括:位置获取单元和数据清空单元(图3中未示出)
位置获取单元,用于定期获取主设备的写指针在音频数据缓冲区中的写入位置和从设备的读指针在音频数据缓冲区中的读取位置。
数据清空单元,用于在写入位置与读取位置的差值小于数据包长度,或者写入位置与读取位置的差值大于音频数据缓冲区长度与数据包长度的差值,则将音频数据缓冲区内的数据清空,并将写入次数和所述读取次数清零。
在本发明的一个实施例中,该USB声卡还包括次数清零单元(图3中未示出),用于在将从设备的读指针在音频数据缓冲区中向读取方向移动一定长度,或者将从设备的读指针重新指向在音频数据缓冲区的原位置之后,将写入次数和读取次数清零,分别重新累计。
本实施例提供的一种USB声卡包括上一实施例中的播放同步装置,可以用于执行上述实施例中的一种播放同步方法,其原理和技术效果类似,此处不再赘述。
在本发明的一个实施例中,该USB声卡还包括存储器和处理器,存储器和处理器之间通过内部总线通讯连接,存储器存储有能够被处理器执行的计算机程序,该计算机程序被处理器执行时能够实现上述的方法步骤。
综上所述,本发明实施的技术方案,获取主设备写指针写入数据的写入次数和从设备读指针读取数据的读取次数,通过判断两者的大小关系确定主从设备的数据传输是否同步。若是不同步,则调整读指针的位置,使写指针与读指针重新处于同步状态,即写入数据与读取数据再次同步。解决了主从设备时钟相对独立,由于时钟偏差造成数据传输不同步的问题。
本发明的技术方案还给出了当写入数据和读取数据的状态超出极限状态的解决方案。获取写指针的写入位置和读指针的读取位置,通过两者的差值判断读写数据是否超出极限状态。若超出极限状态,则将所有写入和读取的数据清空,重新开始读写数据。解决了读写数据超出极限状态引起的数据溢出和数据丢失等问题。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种播放同步方法,其特征在于,该方法包括:
分别累计主设备的写指针向音频数据缓冲区中写入数据的写入次数和从设备的读指针从所述音频数据缓冲区中读取数据的读取次数,在所述写入次数累计至预定次数时,判断所述写入次数与所述读取次数的大小关系;
若所述写入次数大于所述读取次数,将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,所述一定长度为所述写入次数和所述读取次数的差值与数据包长度的乘积;
若所述写入次数小于所述读取次数,将所述从设备的读指针指向0数据缓冲区,并在主设备的写指针向所述音频数据缓冲区中新写入数据的次数等于所述读取次数和所述写入次数的差值后,将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
定期获取主设备的写指针在所述音频数据缓冲区中的写入位置和从设备的读指针在所述音频数据缓冲区中的读取位置;
若所述写入位置与所述读取位置的差值小于数据包长度,或者所述写入位置与所述读取位置的差值大于所述音频数据缓冲区长度与数据包长度的差值,则将所述音频数据缓冲区内的数据清空,并将所述写入次数和所述读取次数清零。
3.根据权利要求1或2所述的方法,其特征在于,在将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,或者将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置之后,该方法还包括:
将所述写入次数和所述读取次数清零,分别重新累计。
4.一种播放同步装置,其特征在于,该装置包括:
次数累计单元,被配置为分别累计主设备的写指针向音频数据缓冲区中写入数据的写入次数和从设备的读指针从所述音频数据缓冲区中读取数据的读取次数;
判断单元,被配置为在所述写入次数累计至预定次数时,判断所述写入次数与所述读取次数的大小关系;
第一处理单元,被配置为在所述判断单元判断所述写入次数大于所述读取次数时,将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,所述一定长度为所述写入次数和所述读取次数的差值与数据包长度的乘积;
第二处理单元,被配置为在所述判断单元判断所述写入次数小于所述读取次数时,将所述从设备的读指针指向0数据缓冲区,并在主设备的写指针向所述音频数据缓冲区中新写入数据的次数等于所述读取次数和所述写入次数的差值后,将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置。
5.根据权利要求4所述的装置,其特征在于,该装置还包括:
位置获取单元,被配置为定期获取主设备的写指针在所述音频数据缓冲区中的写入位置和从设备的读指针在所述音频数据缓冲区中的读取位置;
数据清空单元,被配置为若所述写入位置与所述读取位置的差值小于数据包长度,或者所述写入位置与所述读取位置的差值大于所述音频数据缓冲区长度与数据包长度的差值,则将所述音频数据缓冲区内的数据清空,并将所述写入次数和所述读取次数清零。
6.根据权利要求4或5所述的装置,其特征在于,该装置还包括次数清零单元,
所述次数清零单元,被配置为在将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,或者将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置之后,将所述写入次数和所述读取次数清零,分别重新累计。
7.一种USB声卡,其特征在于,包括音频数据缓冲区、0数据缓冲区、次数累计单元、判断单元、第一处理单元和第二处理单元;
所述次数累计单元,被配置为分别累计主设备的写指针向所述音频数据缓冲区中写入数据的写入次数和从设备的读指针从所述音频数据缓冲区中读取数据的读取次数;
所述判断单元,被配置为在所述写入次数累计至预定次数时,判断所述写入次数与所述读取次数的大小关系;
所述第一处理单元,被配置为在所述判断单元判断所述写入次数大于所述读取次数时,将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,所述一定长度为所述写入次数和所述读取次数的差值与数据包长度的乘积;
所述第二处理单元,被配置为在所述判断单元判断所述写入次数小于所述读取次数时,将所述从设备的读指针指向所述0数据缓冲区,并在主设备的写指针向所述音频数据缓冲区中新写入数据的次数等于所述读取次数和所述写入次数的差值后,将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置。
8.根据权利要求7所述的USB声卡,其特征在于,该USB声卡还包括:
位置获取单元,被配置为定期获取主设备的写指针在所述音频数据缓冲区中的写入位置和从设备的读指针在所述音频数据缓冲区中的读取位置;
数据清空单元,被配置为若所述写入位置与所述读取位置的差值小于数据包长度,或者所述写入位置与所述读取位置的差值大于所述音频数据缓冲区长度与数据包长度的差值,则将所述音频数据缓冲区内的数据清空,并将所述写入次数和所述读取次数清零。
9.根据权利要求7或8所述的USB声卡,其特征在于,该USB声卡还包括次数清零单元,
所述次数清零单元,被配置为在将所述从设备的读指针在所述音频数据缓冲区中向读取方向移动一定长度,或者将所述从设备的读指针重新指向在所述音频数据缓冲区的原位置之后,将所述写入次数和所述读取次数清零,分别重新累计。
10.一种USB声卡,其特征在于,包括音频数据缓冲区、0数据缓冲区、存储器和处理器,所述存储器和所述处理器之间通过内部总线通讯连接,所述存储器存储有能够被所述处理器执行的计算机程序,所述计算机程序被所述处理器执行时能够实现权利要求1-3任意一项所述的方法步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711083439.5A CN108089834B (zh) | 2017-11-07 | 2017-11-07 | 一种播放同步方法、装置和usb声卡 |
PCT/CN2017/118089 WO2019090928A1 (zh) | 2017-11-07 | 2017-12-22 | 一种播放同步方法、装置和usb声卡 |
US16/651,168 US10963213B2 (en) | 2017-11-07 | 2017-12-22 | Playback synchronization method and device and USB sound card |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711083439.5A CN108089834B (zh) | 2017-11-07 | 2017-11-07 | 一种播放同步方法、装置和usb声卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108089834A true CN108089834A (zh) | 2018-05-29 |
CN108089834B CN108089834B (zh) | 2021-04-30 |
Family
ID=62171861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711083439.5A Active CN108089834B (zh) | 2017-11-07 | 2017-11-07 | 一种播放同步方法、装置和usb声卡 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10963213B2 (zh) |
CN (1) | CN108089834B (zh) |
WO (1) | WO2019090928A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112887773A (zh) * | 2021-01-22 | 2021-06-01 | 昆腾微电子股份有限公司 | 一种音频设备的同步方法及装置 |
CN113535629A (zh) * | 2020-04-15 | 2021-10-22 | 瑞昱半导体股份有限公司 | 数据传输系统、电路与方法 |
CN114442992A (zh) * | 2022-01-25 | 2022-05-06 | 杭州国芯科技股份有限公司 | 一种usb声卡音频传输协议的切换方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12112091B2 (en) * | 2023-03-03 | 2024-10-08 | Qualcomm Incorporated | Unifying multiple audio bus interfaces in an audio system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060280483A1 (en) * | 2005-06-09 | 2006-12-14 | Sadao Tsuruga | Recording/output apparatus and recording/output method |
CN102591815A (zh) * | 2011-12-27 | 2012-07-18 | Tcl集团股份有限公司 | 一种用环形数据缓冲区读写批量数据的方法及装置 |
CN103093778A (zh) * | 2011-11-02 | 2013-05-08 | 广达电脑股份有限公司 | 音频处理系统及音频信号暂存器的调整方法 |
CN104603868A (zh) * | 2012-09-07 | 2015-05-06 | 夏普株式会社 | 存储器控制装置、便携终端、存储器控制程序和计算机可读取的记录介质 |
CN107277295A (zh) * | 2017-06-22 | 2017-10-20 | 北京数码视讯科技股份有限公司 | 视频同步处理装置及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918073A (en) * | 1997-06-27 | 1999-06-29 | Advanced Micro Devices, Inc. | System and method for equalizing data buffer storage and fetch rates of peripheral devices |
JP3417392B2 (ja) * | 2000-09-08 | 2003-06-16 | ヤマハ株式会社 | 同期制御装置 |
CN1464685A (zh) * | 2002-06-13 | 2003-12-31 | 优创科技(深圳)有限公司 | 一种在网络终端缓冲区中处理音频流回放的方法 |
US7281077B2 (en) * | 2005-04-06 | 2007-10-09 | Qlogic, Corporation | Elastic buffer module for PCI express devices |
CN101296217B (zh) * | 2007-04-24 | 2011-07-06 | 中芯国际集成电路制造(上海)有限公司 | 弹性缓冲装置 |
CN107293316B (zh) * | 2016-04-13 | 2020-01-03 | 青岛海信电器股份有限公司 | 一种音频数据处理方法及装置 |
US10291671B2 (en) * | 2016-09-28 | 2019-05-14 | Arris Enterprises Llc | Packet prioritization based on packet time stamp information |
-
2017
- 2017-11-07 CN CN201711083439.5A patent/CN108089834B/zh active Active
- 2017-12-22 US US16/651,168 patent/US10963213B2/en active Active
- 2017-12-22 WO PCT/CN2017/118089 patent/WO2019090928A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060280483A1 (en) * | 2005-06-09 | 2006-12-14 | Sadao Tsuruga | Recording/output apparatus and recording/output method |
CN103093778A (zh) * | 2011-11-02 | 2013-05-08 | 广达电脑股份有限公司 | 音频处理系统及音频信号暂存器的调整方法 |
CN102591815A (zh) * | 2011-12-27 | 2012-07-18 | Tcl集团股份有限公司 | 一种用环形数据缓冲区读写批量数据的方法及装置 |
CN104603868A (zh) * | 2012-09-07 | 2015-05-06 | 夏普株式会社 | 存储器控制装置、便携终端、存储器控制程序和计算机可读取的记录介质 |
CN107277295A (zh) * | 2017-06-22 | 2017-10-20 | 北京数码视讯科技股份有限公司 | 视频同步处理装置及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535629A (zh) * | 2020-04-15 | 2021-10-22 | 瑞昱半导体股份有限公司 | 数据传输系统、电路与方法 |
CN113535629B (zh) * | 2020-04-15 | 2024-03-15 | 瑞昱半导体股份有限公司 | 数据传输系统、电路与方法 |
CN112887773A (zh) * | 2021-01-22 | 2021-06-01 | 昆腾微电子股份有限公司 | 一种音频设备的同步方法及装置 |
CN114442992A (zh) * | 2022-01-25 | 2022-05-06 | 杭州国芯科技股份有限公司 | 一种usb声卡音频传输协议的切换方法 |
CN114442992B (zh) * | 2022-01-25 | 2024-01-02 | 杭州国芯科技股份有限公司 | 一种usb声卡音频传输协议的切换方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019090928A1 (zh) | 2019-05-16 |
CN108089834B (zh) | 2021-04-30 |
US20200272410A1 (en) | 2020-08-27 |
US10963213B2 (en) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108089834A (zh) | 一种播放同步方法、装置和usb声卡 | |
CN101692346B (zh) | 一种存储器数据采样装置及一种采样控制器 | |
ATE303649T1 (de) | Verfahren zur synchronisation der auslesezeit eines hochgeschwindigkeitsspeichers | |
KR101673233B1 (ko) | 트랜잭션 분할 장치 및 방법 | |
EP1903447A1 (en) | Audio processor, input/output processing apparatus, and information processing apparatus | |
CN115309676B (zh) | 一种异步fifo读写控制方法、系统及电子设备 | |
JP6523707B2 (ja) | ラップ読出しから連続読出しを行うメモリサブシステム | |
KR20200088499A (ko) | 포인터 오프셋이 있는 비동기식 버퍼 | |
US7457913B2 (en) | Finding a data pattern in a memory | |
US6853588B2 (en) | First-in first-out memory circuit and method for executing same | |
US8751853B2 (en) | Quad-data rate controller and implementing method thereof | |
CN116580743B (zh) | 一种内存读采样电路及其延时调节方法及读采样装置 | |
CN108897696B (zh) | 一种基于DDRx存储器的大容量FIFO控制器 | |
US20070226429A1 (en) | Memory including a write training block | |
CN104063352B (zh) | Pipe的弹性缓冲电路及其状态同步方法 | |
CN102403008A (zh) | 音频播放中数据流断点续接的方法和系统、fifo控制器 | |
KR100282519B1 (ko) | 플래시 메모리의 데이터 리드속도 향상회로 | |
JP5132074B2 (ja) | メモリアクセス装置 | |
JP7310536B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2020135524A (ja) | 演算装置 | |
TW200703013A (en) | Target readiness protocol for contiguous writes | |
US20110238930A1 (en) | Transmission apparatus and control data processing method and program | |
CN219179825U (zh) | 时间去偏差电路、系统及电子设备 | |
US7852689B2 (en) | Semiconductor integrated circuit and method of measuring a maximum delay | |
JP2010061498A (ja) | メモリ制御装置、半導体試験装置およびメモリ制御方法 |
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 |