音频接口电路及其控制方法、音频设备转让专利

申请号 : CN202110179586.2

文献号 : CN112637102B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈千里姚猛梁小江蒲莉娟

申请人 : 深圳市创成微电子有限公司

摘要 :

本发明提供了一种音频接口电路及其控制方法、音频设备,该方法包括:仲裁逻辑电路分别测量各第二音频接口与第一音频接口之间的时钟频偏;对于各第二音频接口,仲裁逻辑电路根据时钟频偏获取其缓存深度的参考值和时钟调整参数的第一当前值;仲裁逻辑电路对各音频接口配置缓存;仲裁逻辑电路检测缓存状态,若检测到第一缓存标志事件,则确定相关的第二音频接口,并增大其第一当前值中的调整量和时钟数量,若检测到第二缓存标志事件,则确定相关的第二音频接口,并减小其第一当前值中的调整量和增大时钟数量。本发明能够有效缓解一主模式的音频接口和多个从模式的音频接口之间,由于时钟偏差导致音频噪声问题的发生,并且更为简单高效。

权利要求 :

1.一种音频接口电路的控制方法,其特征在于,所述音频接口电路包括仲裁逻辑电路、缓存电路、第一音频接口和多个第二音频接口,所述第一音频接口用于发送所述第二音频接口接收的音频数据,所述缓存电路用作所述第一音频接口和多个所述第二音频接口的缓存,所述方法包括:

步骤S100:所述仲裁逻辑电路分别测量工作在从模式下的各所述第二音频接口与工作在主模式下的所述第一音频接口之间的时钟频偏;

步骤S200:对于各所述第二音频接口,所述仲裁逻辑电路根据其与所述第一音频接口之间的时钟频偏在预存储的信息中获取其缓存深度的参考值和时钟调整参数的第一当前值,所述时钟调整参数包括单次时钟频率调整任务中需要调整的时钟数量和对第一音频接口的时钟分频计数器的初始值进行调整的调整量;

步骤S300:所述仲裁逻辑电路根据所述第一音频接口的缓存深度的初始预设值、各所述第二音频接口的缓存深度的参考值对所述缓存电路进行缓存资源划分,以对所述第一音频接口、多个所述第二音频接口中的各音频接口配置缓存,并向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照一第二音频接口的第一当前值开始执行一次时钟频率调整任务;

步骤S400:在所述第一音频接口、多个所述第二音频接口分别采用各自被配置的缓存进行音频传输时,所述仲裁逻辑电路检测所述第一音频接口、各所述第二音频接口的缓存状态,若检测到其中任一音频接口发生缓存变化趋势为减少的第一缓存标志事件,则执行步骤S500,若检测到缓存变化趋势为增加的第二缓存标志事件,则执行步骤S600;

步骤S500:所述仲裁逻辑电路确定与所述第一缓存标志事件相关的第二音频接口,并增大其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第二当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第二当前值开始执行一次时钟频率调整任务;

步骤S600:所述仲裁逻辑电路确定与所述第二缓存标志事件相关的第二音频接口,并减小其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第三当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第三当前值开始执行一次时钟频率调整任务。

2.根据权利要求1所述的方法,其特征在于,所述第一缓存标志事件为1/2空标志事件,所述第二缓存标志事件为1/2满标志事件。

3.根据权利要求1所述的方法,其特征在于,所述步骤S500还包括:若所述仲裁逻辑电路检测到第三缓存标志事件,则所述仲裁逻辑电路增大第二当前值中的所述调整量和增大第二当前值中的所述时钟数量,得到时钟调整参数的第四当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第四当前值开始执行一次时钟频率调整任务,所述第一缓存标志事件和所述第三缓存标志事件由同一音频接口发生,所述第三缓存标志事件为将空标志事件或空标志事件;

所述步骤S600还包括:若所述仲裁逻辑电路检测到第四缓存标志事件,则所述仲裁逻辑电路减小第三当前值中的所述调整量和增大第三当前值中的所述时钟数量,得到时钟调整参数的第五当前值,然后向所述第一音频接口发送时 钟调整触发信号,使所述第一音频接口按照所述第五当前值开始执行一次时钟频率调整任务,所述第二缓存标志事件和所述第四缓存标志事件由同一音频接口发生,所述第四缓存标志事件为将满标志事件或满标志事件。

4.根据权利要求1所述的方法,其特征在于,所述步骤S500还包括:在所述第一音频接口按照所述第二当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为增加的第五缓存标志事件,则所述仲裁逻辑电路对所述缓存电路进行缓存资源重新划分,增大发生所述第五缓存标志事件的音频接口的缓存深度和减小发生所述第一缓存标志事件的音频接口的缓存深度,以及确定与所述第五缓存标志事件相关的第二音频接口,并减小其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第六当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第六当前值开始执行一次时钟频率调整任务,其中,所述第一缓存标志事件和所述第五缓存标志事件由不同音频接口发生;

所述步骤S600还包括:在所述第一音频接口按照所述第三当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为减少的第六缓存标志事件,则所述仲裁逻辑电路对所述缓存电路进行缓存资源重新划分,减小发生所述第六缓存标志事件的音频接口的缓存深度和增大发生所述第二缓存标志事件的音频接口的缓存深度,以及确定与所述第六缓存标志事件相关的第二音频接口,并增大其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第七当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第七当前值开始执行一次时钟频率调整任务,其中,所述第二缓存标志事件和所述第六缓存标志事件由不同音频接口发生。

5.根据权利要求4所述的方法,其特征在于,所述第五缓存标志事件为1/2满标志事件、将满标志事件、满标志事件中的任意一种,所述第六缓存标志事件为1/2空标志事件、将空标志事件、空标志事件中的任意一种。

6.根据权利要求1所述的方法,其特征在于,所述步骤S500还包括:在所述第一音频接口按照所述第二当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为减少的第七缓存标志事件,则所述仲裁逻辑电路确定与所述第七缓存标志事件相关的第二音频接口,并增大其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第八当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第八当前值开始执行一次时钟频率调整任务,其中,所述第一缓存标志事件和所述第七缓存标志事件由不同音频接口发生;

所述步骤S600还包括:在所述第一音频接口按照所述第三当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为增加的第八缓存标志事件,则所述仲裁逻辑电路确定与所述第八缓存标志事件相关的第二音频接口,并减小其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第九当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第九当前值开始执行一次时钟频率调整任务,其中,所述第二缓存标志事件和所述第八缓存标志事件由不同音频接口发生。

7.根据权利要求6所述的方法,其特征在于,所述第七缓存标志事件为1/2空标志事件、将空标志事件、空标志事件中的任意一种,所述第八缓存标志事件为1/2满标志事件、将满标志事件、满标志事件中的任意一种。

8.根据权利要求1‑7任一项所述的方法,其特征在于,在步骤S100中,对于各所述第二音频接口,所述仲裁逻辑电路通过以下方式测量其与所述第一音频接口之间的时钟频偏:在所述仲裁逻辑电路按照所述第一音频接口和各所述第二音频接口的缓存深度的初始预设值对所述缓存电路进行缓存资源划分后,当一待测量的第二音频接口接收的音频数据由所述第一音频接口发出时,所述仲裁逻辑电路检测所述第一音频接口的缓存状态,若检测到将空标志事件,则控制所述第一音频接口的时钟分频计数器的值为 ,若检测到将满标志事件,则控制所述第一音频接口的时钟分频计数器的值为 ,并测量所述第一音频接口的缓存状态从将满到将空的时间 ,其中, 为一预设值且为正;

所述仲裁逻辑电路通过以下方式计算所述待测量的第二音频接口与所述第一音频接口之间的时钟频偏;

其中, 为所述待测量的第二音频接口与所述第一音频接口之间的时钟频偏, 为所述第一音频接口的缓存深度的初始预设值, 为系统时钟频率, 为所述第一音频接口的时钟分频计数器的初始预设值。

9.一种音频接口电路,其特征在于,所述音频接口电路包括仲裁逻辑电路、一可工作在主模式下的第一音频接口、多个可工作在从模式下的第二音频接口以及一缓存电路,所述第一音频接口用于发送所述第二音频接口接收的音频数据,所述缓存电路用作所述第一音频接口和多个所述第二音频接口的缓存,所述仲裁逻辑电路可实现权利要求1‑8任一项所述的控制方法。

10.根据权利要求9所述的音频接口电路,其特征在于,所述缓存电路的缓存空间为一片RAM。

11.根据权利要求9所述的音频接口电路,其特征在于,所述音频接口电路中的第一音频接口包括I2S接口、USB接口、SPDIF接口中的一种,所述音频接口电路中的第二音频接口包括I2S接口、USB接口、SPDIF接口中的一种或多种。

12.一种音频设备,其特征在于,包括权利要求9至11任一项所述的音频接口电路。

13.根据权利要求12所述的音频设备,其特征在于,所述音频设备为声卡、PC、手机、平板电脑或音箱。

说明书 :

音频接口电路及其控制方法、音频设备

技术领域

[0001] 本发明涉及音频技术领域,尤其涉及一种音频接口电路及其控制方法、音频设备。

背景技术

[0002] 在不同的音频设备(如声卡、手机、电脑、音箱等)之间进行音频数据传输时,由于不同设备的时钟不同源,数据在接收和发送过程中必然会出现上溢或者下溢的情况,并且
由于音频是连续数据,当出现上溢或下溢时,很可能出现丢帧情况,进而产生音频噪声。例
如,对于两个不同的音频设备,虽然理论上都是12M晶振,I2S频率都是48KHz,但两个音频设
备的时钟源相对独立,由于时钟的天然偏差 (一般不大于±100PPM),两音频设备之间的时
钟偏差会造成数据传输不同步问题,数据在接收和发送过程中必然会出现上溢或者下溢,
从而容易导致声音丢失或失真等现象。
[0003] 为解决上述问题,现有技术大都是通过恢复时钟达到同步目的,如采用锁相环同步或者gaderner算法同步方式,但这些方式实现起来较为复杂。

发明内容

[0004] 基于上述现状,本发明的主要目的在于提供一种音频接口电路及其控制方法、音频设备,能够有效缓解一主模式的音频接口和多个从模式的音频接口之间,由于时钟偏差
导致音频噪声问题的发生,并且相比现有技术更为简单高效。
[0005] 为实现上述目的,本发明的技术方案提供了一种音频接口电路的控制方法,所述音频接口电路包括仲裁逻辑电路、缓存电路、第一音频接口和多个第二音频接口,所述第一
音频接口用于发送所述第二音频接口接收的音频数据,所述缓存电路用作所述第一音频接
口和多个所述第二音频接口的缓存,所述方法包括:
[0006] 步骤S100:所述仲裁逻辑电路分别测量工作在从模式下的各所述第二音频接口与工作在主模式下的所述第一音频接口之间的时钟频偏;
[0007] 步骤S200:对于各所述第二音频接口,所述仲裁逻辑电路根据其与所述第一音频接口之间的时钟频偏在预存储的信息中获取其缓存深度的参考值和时钟调整参数的第一
当前值,所述时钟调整参数包括单次时钟频率调整任务中需要调整的时钟数量和对第一音
频接口的时钟分频计数器的初始值进行调整的调整量;
[0008] 步骤S300:所述仲裁逻辑电路根据所述第一音频接口的缓存深度的初始预设值、各所述第二音频接口的缓存深度的参考值对所述缓存电路进行缓存资源划分,以对所述第
一音频接口、多个所述第二音频接口中的各音频接口配置缓存,并向所述第一音频接口发
送时钟调整触发信号,使所述第一音频接口按照一第二音频接口的第一当前值开始执行一
次时钟频率调整任务;
[0009] 步骤S400:在所述第一音频接口、多个所述第二音频接口分别采用各自被配置的缓存进行音频传输时,所述仲裁逻辑电路检测所述第一音频接口、各所述第二音频接口的
缓存状态,若检测到其中任一音频接口发生缓存变化趋势为减少的第一缓存标志事件,则
执行步骤S500,若检测到缓存变化趋势为增加的第二缓存标志事件,则执行步骤S600;
[0010] 步骤S500:所述仲裁逻辑电路确定与所述第一缓存标志事件相关的第二音频接口,并增大其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时
钟调整参数的第二当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一
音频接口按照所述第二当前值开始执行一次时钟频率调整任务;
[0011] 步骤S600:所述仲裁逻辑电路确定与所述第二缓存标志事件相关的第二音频接口,并减小其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时
钟调整参数的第三当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一
音频接口按照所述第三当前值开始执行一次时钟频率调整任务。
[0012] 进一步地,所述第一缓存标志事件为1/2空标志事件,所述第二缓存标志事件为1/2满标志事件。
[0013] 进一步地,所述步骤S500还包括:若所述仲裁逻辑电路检测到第三缓存标志事件,则所述仲裁逻辑电路增大第二当前值中的所述调整量和增大第二当前值中的所述时钟数
量,得到时钟调整参数的第四当前值,然后向所述第一音频接口发送时钟调整触发信号,使
所述第一音频接口按照所述第四当前值开始执行一次时钟频率调整任务,所述第一缓存标
志事件和所述第三缓存标志事件由同一音频接口发生,所述第三缓存标志事件为将空标志
事件或空标志事件;
[0014] 所述步骤S600还包括:若所述仲裁逻辑电路检测到第四缓存标志事件,则所述仲裁逻辑电路减小第三当前值中的所述调整量和增大第三当前值中的所述时钟数量,得到时
钟调整参数的第五当前值,然后向所述第一音频接口发送钟调整触发信号,使所述第一音
频接口按照所述第五当前值开始执行一次时钟频率调整任务,所述第二缓存标志事件和所
述第四缓存标志事件由同一音频接口发生,所述第四缓存标志事件为将满标志事件或满标
志事件。
[0015] 进一步地,所述步骤S500还包括:在所述第一音频接口按照所述第二当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为增加的第五缓存标志事件,则所述仲
裁逻辑电路对所述缓存电路进行缓存资源重新划分,增大发生所述第五缓存标志事件的音
频接口的缓存深度和减小发生所述第一缓存标志事件的音频接口的缓存深度,以及确定与
所述第五缓存标志事件相关的第二音频接口,并减小其第一当前值中的所述调整量和增大
其第一当前值中的所述时钟数量,得到时钟调整参数的第六当前值,然后向所述第一音频
接口发送时钟调整触发信号,使所述第一音频接口按照所述第六当前值开始执行一次时钟
频率调整任务,其中,所述第一缓存标志事件和所述第五缓存标志事件由不同音频接口发
生;
[0016] 所述步骤S600还包括:在所述第一音频接口按照所述第三当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为减少的第六缓存标志事件,则所述仲裁逻辑电路
对所述缓存电路进行缓存资源重新划分,减小发生所述第六缓存标志事件的音频接口的缓
存深度和增大发生所述第二缓存标志事件的音频接口的缓存深度,以及确定与所述第六缓
存标志事件相关的第二音频接口,并增大其第一当前值中的所述调整量和增大其第一当前
值中的所述时钟数量,得到时钟调整参数的第七当前值,然后向所述第一音频接口发送时
钟调整触发信号,使所述第一音频接口按照所述第七当前值开始执行一次时钟频率调整任
务,其中,所述第二缓存标志事件和所述第六缓存标志事件由不同音频接口发生。
[0017] 进一步地,所述第五缓存标志事件为1/2满标志事件、将满标志事件、满标志事件中的任意一种,所述第六缓存标志事件为1/2空标志事件、将空标志事件、空标志事件中的
任意一种。
[0018] 进一步地,所述步骤S500还包括:在所述第一音频接口按照所述第二当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为减少的第七缓存标志事件,则所述仲
裁逻辑电路确定与所述第七缓存标志事件相关的第二音频接口,并增大其第一当前值中的
所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第八当前值,然
后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第八当前值
开始执行一次时钟频率调整任务,其中,所述第一缓存标志事件和所述第七缓存标志事件
由不同音频接口发生;
[0019] 所述步骤S600还包括:在所述第一音频接口按照所述第三当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为增加的第八缓存标志事件,则所述仲裁逻辑电路
确定与所述第八缓存标志事件相关的第二音频接口,并减小其第一当前值中的所述调整量
和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第九当前值,然后向所述第
一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第九当前值开始执行一
次时钟频率调整任务,其中,所述第二缓存标志事件和所述第八缓存标志事件由不同音频
接口发生。
[0020] 进一步地,所述第七缓存标志事件为1/2空标志事件、将空标志事件、空标志事件中的任意一种,所述第八缓存标志事件为1/2满标志事件、将满标志事件、满标志事件中的
任意一种。
[0021] 进一步地,在步骤S100中,对于各所述第二音频接口,所述仲裁逻辑电路通过以下方式测量其与所述第一音频接口之间的时钟频偏:
[0022] 在所述仲裁逻辑电路按照所述第一音频接口和各所述第二音频接口的缓存深度的初始预设值对所述缓存电路进行缓存资源划分后,当一待测量的第二音频接口接收的音
频数据由所述第一音频接口发出时,所述仲裁逻辑电路检测所述第一音频接口的缓存状
态,若检测到将空标志事件,则控制所述第一音频接口的时钟分频计数器的值为
,若检测到将满标志事件,则控制所述第一音频接口的时钟分频计数器的值为
,并测量所述第一音频接口的缓存状态从将满到将空的时间 ,其中, 为一预
设值且为正;
[0023] 所述仲裁逻辑电路通过以下方式计算所述待测量的第二音频接口与所述第一音频接口之间的时钟频偏;
[0024] ;
[0025] 其中, 为所述待测量的第二音频接口与所述第一音频接口之间的时钟频偏,为所述第一音频接口的缓存深度的初始预设值, 为系统时钟频率, 为所述第一
音频接口的时钟分频计数器的初始预设值。
[0026] 为实现上述目的,本发明的技术方案还提供了一种音频接口电路,所述音频接口电路包括仲裁逻辑电路、一可工作在主模式下的第一音频接口、多个可工作在从模式下的
第二音频接口以及一缓存电路,所述第一音频接口用于发送所述第二音频接口接收的音频
数据,所述缓存电路用作所述第一音频接口和多个所述第二音频接口的缓存,所述仲裁逻
辑电路可实现上述的控制方法。
[0027] 进一步地,所述缓存电路的缓存空间为一片RAM。
[0028] 进一步地,所述音频接口电路中的第一音频接口包括I2S接口、USB接口、SPDIF接口中的一种,所述音频接口电路中的第二音频接口包括I2S接口、USB接口、SPDIF接口中的
一种或多种。
[0029] 为实现上述目的,本发明的技术方案还提供了一种音频设备,包括上述的音频接口电路。
[0030] 进一步地,所述音频设备为声卡、PC、手机、平板电脑或音箱。
[0031] 本发明提供的音频接口电路的控制方法,音频接口电路中的各音频接口共用一缓存电路,在开始工作时,首先通过测量音频接口电路中各第二音频接口与第一音频接口之
间的时钟频偏,然后根据该时钟频偏对缓存电路进行缓存资源划分,并获取对应的时钟调
整参数的第一当前值,在之后的音频传输时,仲裁逻辑电路检测各音频接口的缓存状态,利
用缓存标志和相应的时钟调整参数的第一当前值对第一音频接口的时钟频率进行调整,以
减少出现上溢或者下溢的问题,能够有效缓解由于时钟偏差导致音频噪声的问题的发生,
并且相比现有技术更为简单高效,避免了采用复杂同步算法带来的成本增加,另外,还能够
合理的设置各音频接口的缓存深度,有利于避免音频接口的缓存深度设置过大可能造成的
音频播放延时较大的问题,以及缓存深度设置过小可能造成的容易上溢或下溢的问题。

附图说明

[0032] 通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
[0033] 图1是本发明实施例提供的一种音频接口电路的控制方法流程图;
[0034] 图2是本发明实施例提供的对第一音频接口执行一次时钟频率调整任务的示意图;
[0035] 图3是本发明实施例提供的一种音频接口电路的示意图;
[0036] 图4是本发明实施例提供的音频接口电路中音频接口之间进行音频传输的示意图。

具体实施方式

[0037] 以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分,为了避免混淆本发明的实质,
公知的方法、过程、流程、元件并没有详细叙述。
[0038] 此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
[0039] 除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含
义。
[0040] 在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义
是两个或两个以上。
[0041] 需要说明的是,本发明中采用步骤编号(字母或数字编号)来指代某些具体的方法步骤,仅仅是出于描述方便和简洁的目的,而绝不是用字母或数字来限制这些方法步骤的
顺序。本领域的技术人员能够明了,相关方法步骤的顺序,应由技术本身决定,不应因步骤
编号的存在而被不适当地限制。
[0042] 参见图1,图1是本发明实施例提供的一种音频接口电路的控制方法的流程图,所述音频接口电路包括仲裁逻辑电路、一可工作在主模式下的第一音频接口、多个可工作在
从模式下的第二音频接口以及一缓存电路,所述第一音频接口用于发送各所述第二音频接
口接收的音频数据,所述缓存电路用作所述第一音频接口和多个所述第二音频接口的缓
存,即第一音频接口和多个所述第二音频接口共用该缓存电路,所述方法包括:
[0043] 步骤S100:所述仲裁逻辑电路分别测量各工作在从模式下的所述第二音频接口与工作在主模式下的所述第一音频接口之间的时钟频偏;
[0044] 步骤S200:对于各所述第二音频接口,所述仲裁逻辑电路根据其与所述第一音频接口之间的时钟频偏在预存储的信息中获取其缓存深度的参考值和时钟调整参数的第一
当前值,所述时钟调整参数包括单次时钟频率调整任务中需要调整的时钟数量B和对第一
音频接口的时钟分频计数器的初始值进行调整的调整量a,其中,所述调整量为正表示增加
所述时钟分频计数器的值,所述调整量为负表示减小所述时钟分频计数器的值;
[0045] 例如,该预存储的信息可以是一配置表,该配置表包括不同时钟频偏与时钟调整参数的不同第一当前值、不同缓存深度的参考值之间的对应关系,即在得到时钟频率后,可
以在该配置表中进行查询,得到对应的第一当前值和缓存深度的参考值;
[0046] 其中,参见图2,Wclk为第一音频接口的时钟,Sysclk为音频接口电路所在的音频设备的系统时钟,该时钟调整参数包括对第一音频接口执行一次时钟频率调整任务中,需
要调整的时钟数量B和对第一音频接口的时钟分频计数器的初始值进行调整的调整量a,即
对第一音频接口执行一次时钟频率调整任务时,需要对第一音频接口的B个时钟进行调整,
需要调整的每一个时钟的周期增加或减小|a|个系统时钟的周期;
[0047] 可以理解的是,在上述配置表中,若第一音频接口的时钟偏快,则第一当前值中的a为正,若第一音频接口的时钟偏慢,则第一当前值中的a为负;
[0048] 其中,在上述的预存储的信息中,在时钟频偏为正(为正表示第一音频接口的时钟偏快)的情况下,时钟频偏越大,则时钟数量B增大,调整量a增大,缓存深度的参考值增大,
在时钟频偏为负(为负表示第一音频接口的时钟偏慢)的情况下,时钟频偏越小(绝对值越
大),则时钟数量B增大,调整量a减小(绝对值增大),缓存深度的参考值增大;
[0049] 步骤S300:所述仲裁逻辑电路根据所述第一音频接口的缓存深度的初始预设值、各所述第二音频接口的缓存深度的参考值对所述缓存电路进行缓存资源划分,以对所述第
一音频接口、多个所述第二音频接口中的各音频接口配置缓存,并向所述第一音频接口发
送时钟调整触发信号,使所述第一音频接口按照一第二音频接口的第一当前值开始执行一
次时钟频率调整任务,其中,该一第二音频接口的第一当前值可以是时钟频偏的绝对值最
大的第二音频接口的第一当前值,即在该步骤中,第一音频接口可以仅按照上述时钟频偏
的绝对值最大的第二音频接口的第一当前值执行一次时钟频率调整任务;
[0050] 由于第一音频接口和多个第二音频接口共用该缓存电路,因此,上述各音频接口的缓存之和即为该缓存电路的缓存大小;
[0051] 例如,可以根据第一音频接口的缓存深度的初始预设值、各第二音频接口的缓存深度的参考值之间的比例对缓存电路进行缓存资源划分,在该比例中,音频接口的值越大,
划分得到的缓存越大;
[0052] 例如,若该音频接口电路包括两个第二音频接口120和130,第一音频接口的缓存深度的初始预设值、第二音频接口120的缓存深度的参考值、第二音频接口130的缓存深度
的参考值之间的比例为13:12:11,则缓存资源划分后,第一音频接口的缓存深度占缓存电
路的缓存大小的13/36,第二音频接口120的缓存深度占缓存电路的缓存大小的12/36,第二
音频接口130的缓存深度占缓存电路的缓存大小的11/36;
[0053] 其中,仲裁逻辑电路可以向缓存电路发送相应的缓存深度配置信号,实现对缓存电路进行缓存资源划分;
[0054] 步骤S400:在所述第一音频接口、多个所述第二音频接口分别采用各自被配置的缓存进行音频传输时,所述仲裁逻辑电路检测所述第一音频接口、各所述第二音频接口的
缓存状态,若检测到其中任一音频接口发生缓存变化趋势为减少的第一缓存标志事件,则
执行步骤S500,若检测到缓存变化趋势为增加的第二缓存标志事件,则执行步骤S600;
[0055] 例如,该第一缓存标志事件可以是1/2空标志事件或将空标志事件;即在检测到任意一音频接口发生该第一缓存标志事件时,说明第一音频接口的时钟偏快,需通过步骤
S500对第一音频接口的时钟进行调整,以避免出现由于下溢产生的音频噪声;
[0056] 例如,该第二缓存标志事件可以是1/2满标志事件或将满标志事件;即在检测到任意一音频接口发生该第二缓存标志事件时,说明第一音频接口的时钟偏慢,需通过步骤
S600对第一音频接口的时钟进行调整,以避免出现由于上溢产生的音频噪声;
[0057] 步骤S500:所述仲裁逻辑电路确定与所述第一缓存标志事件相关的第二音频接口,并增大其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时
钟调整参数的第二当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一
音频接口按照所述第二当前值开始执行一次时钟频率调整任务;
[0058] 可以理解的是,若发生第一缓存标志事件的音频接口为一第二音频接口,则与该第一缓存标志事件相关的第二音频接口即为发生该第一缓存标志事件的第二音频接口,若
发生第一缓存标志事件的音频接口为第一音频接口,则与该第一缓存标志事件相关的第二
音频接口即为该第一缓存标志事件发生时,与第一音频接口进行音频传输的第二音频接
口;
[0059] 不同第二音频接口的读写缓存空间的起始地址和结束地址是不同的(每个接口的缓存空间都是一段连续地址),仲裁逻辑电路可以根据操作的地址块来判断是哪个接口读
写,进而根据对应接口的第一当前值进行调整;
[0060] 步骤S600:所述仲裁逻辑电路确定与所述第二缓存标志事件相关的第二音频接口,并减小其第一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时
钟调整参数的第三当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一
音频接口按照所述第三当前值开始执行一次时钟频率调整任务;
[0061] 可以理解的是,若发生第二缓存标志事件的音频接口为一第二音频接口,则与该第二缓存标志事件相关的第二音频接口即为发生该第二缓存标志事件的第二音频接口,若
发生第二缓存标志事件的音频接口为第一音频接口,则与该第二缓存标志事件相关的第二
音频接口即为该第二缓存标志事件发生时,与第一音频接口进行音频传输的第二音频接
口。
[0062] 本发明实施例提供的音频接口电路的控制方法,音频接口电路中的各音频接口共用一缓存电路,在开始工作时,首先通过测量音频接口电路中各第二音频接口与第一音频
接口之间的时钟频偏,然后根据该时钟频偏对缓存电路进行缓存资源划分,并获取对应的
时钟调整参数的第一当前值,在之后的音频传输时,仲裁逻辑电路检测各音频接口的缓存
状态,利用缓存标志和相应的时钟调整参数的第一当前值对第一音频接口的时钟频率进行
调整,以减少出现上溢或者下溢的问题,能够有效缓解由于时钟偏差导致音频噪声的问题
的发生,并且相比现有技术更为简单高效,避免了采用复杂同步算法带来的成本增加,另
外,还能够合理的设置各音频接口的缓存深度,有利于避免音频接口的缓存深度设置过大
可能造成的音频播放延时较大的问题,以及缓存深度设置过小可能造成的容易上溢或下溢
的问题。
[0063] 例如,在一实施例中,所述第一缓存标志事件为1/2空标志事件,所述第二缓存标志事件为1/2满标志事件,以便能够及时对第一音频接口的时钟进行调整。
[0064] 优选地,在一实施例中,上述的步骤S500还包括:若所述仲裁逻辑电路检测到第三缓存标志事件,则所述仲裁逻辑电路增大第二当前值中的所述调整量和增大第二当前值中
的所述时钟数量,得到时钟调整参数的第四当前值,然后向所述第一音频接口发送时钟调
整触发信号,使所述第一音频接口按照所述第四当前值开始执行一次时钟频率调整任务,
所述第一缓存标志事件和所述第三缓存标志事件由同一音频接口发生,所述第三缓存标志
事件为将空标志事件或空标志事件;
[0065] 即在步骤S500中,若在执行一次时钟频率调整任务后,仍未改变该音频接口缓存下溢的趋势,并且下溢的趋势进一步加剧,则需要再次执行一次时钟频率调整任务,且在该
次时钟频率调整任务中,需要进一步的调整时钟调整参数,即增大时钟频率的调整速度,以
避免下溢造成的音频噪声,其中,仲裁逻辑电路可以按照预设值增大第二当前值中的所述
调整量a和增大第二当前值中的所述时钟数量B。
[0066] 优选地,在一实施例中,所述步骤S600还包括:若所述仲裁逻辑电路检测到第四缓存标志事件,则所述仲裁逻辑电路减小第三当前值中的所述调整量和增大第三当前值中的
所述时钟数量,得到时钟调整参数的第五当前值,然后向所述第一音频接口发送钟调整触
发信号,使所述第一音频接口按照所述第五当前值开始执行一次时钟频率调整任务,所述
第二缓存标志事件和所述第四缓存标志事件由同一音频接口发生,所述第四缓存标志事件
为将满标志事件或满标志事件。
[0067] 即在步骤S600中,若在执行一次时钟频率调整任务后,仍未改变该音频接口缓存上溢的趋势,并且上溢的趋势进一步加剧,则需要再次执行一次时钟频率调整任务,且在该
次时钟频率调整任务中,需要进一步的调整时钟调整参数,即增大时钟频率的调整速度,以
避免下溢造成的音频噪声。
[0068] 优选地,在一实施例中,所述步骤S500还包括:在所述第一音频接口按照所述第二当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为增加的第五缓存标志事
件,则所述仲裁逻辑电路对所述缓存电路进行缓存资源重新划分,增大发生所述第五缓存
标志事件的音频接口的缓存深度和减小发生所述第一缓存标志事件的音频接口的缓存深
度,以及确定与所述第五缓存标志事件相关的第二音频接口,并减小其第一当前值中的所
述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第六当前值,然后
向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第六当前值开
始执行一次时钟频率调整任务,其中,所述第一缓存标志事件和所述第五缓存标志事件由
不同音频接口发生;
[0069] 即在步骤S500中,在第一音频接口按照第二当前值调整时钟时,若仲裁逻辑电路检测到另一音频接口发生了缓存标志事件,并且该事件为缓存变化趋势为增加的事件,则
说明调整后的第一音频接口的时钟频率偏慢,需要利用与该缓存标志事件相关的第二音频
接口的第一当前值增大第一音频接口的时钟频率,同时,还要对缓存电路进行缓存资源重
新划分,增大缓存变化趋势为增加的音频接口的缓存深度和减小缓存变化趋势为减小的音
频接口的缓存深度;
[0070] 这样,仲裁逻辑电路在对第一音频接口的时钟频率进行调整的同时,还对各个音频接口的缓存深度进行动态调整,不仅有利于避免由于下溢或上溢造成的音频噪声,还能
够实现更合理的使用缓存电路,有利于减少缓存电路的缓存资源浪费。
[0071] 例如,所述第五缓存标志事件为1/2满标志事件、将满标志事件、满标志事件中的任意一种;
[0072] 可以理解的是,若发生第五缓存标志事件的音频接口为一第二音频接口,则与该第五缓存标志事件相关的第二音频接口即为发生该第五缓存标志事件的第二音频接口,若
发生第五缓存标志事件的音频接口为第一音频接口,则与该第五缓存标志事件相关的第二
音频接口即为该第五缓存标志事件发生时,与第一音频接口进行音频传输的第二音频接
口。
[0073] 优选地,在一实施例中,所述步骤S600还包括:在所述第一音频接口按照所述第三当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为减少的第六缓存标志事
件,则所述仲裁逻辑电路对所述缓存电路进行缓存资源重新划分,减小发生所述第六缓存
标志事件的音频接口的缓存深度和增大发生所述第二缓存标志事件的音频接口的缓存深
度,以及确定与所述第六缓存标志事件相关的第二音频接口,并增大其第一当前值中的所
述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第七当前值,然后
向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所述第七当前值开
始执行一次时钟频率调整任务,其中,所述第二缓存标志事件和所述第六缓存标志事件由
不同音频接口发生。
[0074] 即在步骤S600中,在第一音频接口按照第三当前值调整时钟时,若仲裁逻辑电路检测到另一音频接口发生了缓存标志事件,并且该事件为缓存变化趋势为减少的事件,则
说明调整后的第一音频接口的时钟频率偏快,需要利用与该缓存标志事件相关的第二音频
接口的第一当前值减小第一音频接口的时钟频率,同时,还要对缓存电路进行缓存资源重
新划分,增大缓存变化趋势为增加的音频接口的缓存深度和减小缓存变化趋势为减小的音
频接口的缓存深度;
[0075] 这样,仲裁逻辑电路在对第一音频接口的时钟频率进行调整的同时,还对各个音频接口的缓存深度进行动态调整,不仅有利于避免由于下溢或上溢造成的音频噪声,还能
够实现更合理的使用缓存电路,有利于减少缓存电路的缓存资源浪费。
[0076] 例如,该第六缓存标志事件为1/2空标志事件、将空标志事件、空标志事件中的任意一种。
[0077] 可以理解的是,若发生第六缓存标志事件的音频接口为一第二音频接口,则与该第六缓存标志事件相关的第二音频接口即为发生该第五缓存标志事件的第二音频接口,若
发生第五缓存标志事件的音频接口为第一音频接口,则该第五缓存标志事件相关的第二音
频接口即为该第五缓存标志事件发生时,与第一音频接口进行音频传输的第二音频接口。
[0078] 优选地,在一实施例中,所述步骤S500还包括:在所述第一音频接口按照所述第二当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为减少的第七缓存标志事
件,则所述仲裁逻辑电路确定与所述第七缓存标志事件相关的第二音频接口,并增大其第
一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第
八当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所
述第八当前值开始执行一次时钟频率调整任务,其中,所述第一缓存标志事件和所述第七
缓存标志事件由不同音频接口发生;
[0079] 即在步骤S500中,在第一音频接口按照第二当前值调整时钟时,若仲裁逻辑电路检测到另一音频接口发生了缓存标志事件,并且该事件为缓存变化趋势为减小的事件,则
说明调整后的第一音频接口的时钟频率偏快,仲裁逻辑电路可利用与该缓存标志事件相关
的第二音频接口的第一当前值减小第一音频接口的时钟频率,以进一步增大时钟的调整速
度,在此情况下,仲裁逻辑电路可以不对缓存电路进行缓存资源重新划分;
[0080] 例如,该所述第七缓存标志事件为1/2空标志事件、将空标志事件、空标志事件中的任意一种。
[0081] 优选地,在一实施例中,所述步骤S600还包括:在所述第一音频接口按照所述第三当前值执行一次时钟频率调整任务时,若检测到缓存变化趋势为增加的第八缓存标志事
件,则所述仲裁逻辑电路确定与所述第八缓存标志事件相关的第二音频接口,并减小其第
一当前值中的所述调整量和增大其第一当前值中的所述时钟数量,得到时钟调整参数的第
九当前值,然后向所述第一音频接口发送时钟调整触发信号,使所述第一音频接口按照所
述第九当前值开始执行一次时钟频率调整任务,其中,所述第二缓存标志事件和所述第八
缓存标志事件由不同音频接口发生。
[0082] 即在步骤S600中,在第一音频接口按照第三当前值调整时钟时,若仲裁逻辑电路检测到另一音频接口发生了缓存标志事件,并且该事件为缓存变化趋势为增加的事件,则
说明调整后的第一音频接口的时钟频率偏慢,仲裁逻辑电路可利用与该缓存标志事件相关
的第二音频接口的第一当前值增加第一音频接口的时钟频率,以进一步增大时钟的调整速
度,在此情况下,仲裁逻辑电路可以不对缓存电路进行缓存资源重新划分。
[0083] 例如,所述第八缓存标志事件为1/2满标志事件、将满标志事件、满标志事件中的任意一种。
[0084] 例如,在一实施例中,在步骤S100中,对于各所述第二音频接口,所述仲裁逻辑电路通过以下方式测量其与所述第一音频接口之间的时钟频偏:
[0085] 在所述仲裁逻辑电路按照所述第一音频接口和各所述第二音频接口的缓存深度的初始预设值对所述缓存电路进行缓存资源划分后,当一待测量的第二音频接口接收的音
频数据由所述第一音频接口发出时,所述仲裁逻辑电路检测所述第一音频接口的缓存状
态,若检测到将空标志事件,则控制所述第一音频接口的时钟分频计数器的值为
,若检测到将满标志事件,则控制所述第一音频接口的时钟分频计数器的值为
,并测量所述第一音频接口的缓存状态从将满到将空的时间 ,其中, 为一预
设值且为正;
[0086] 所述仲裁逻辑电路通过以下方式计算所述待测量的第二音频接口与所述第一音频接口之间的时钟频偏;
[0087] ;
[0088] 其中, 为所述待测量的第二音频接口与所述第一音频接口之间的时钟频偏,为所述第一音频接口的缓存深度的初始预设值, 为系统时钟频率, 为所述第一
音频接口的时钟分频计数器的初始预设值。
[0089] 例如,参见图3,本发明实施例提供的音频接口电路,该音频接口电路为一主多从的数据交互系统,包括仲裁逻辑电路200、一可工作在主模式下的第一音频接口110、两个可
工作在从模式下的第二音频接口120和130以及一缓存电路300,第一音频接口110、两个可
工作在从模式下的第二音频接口120和130共用缓存电路300,该缓存电路300可以是一FIFO
存储电路,其包括第一音频接口110的缓存FIFO_0、第二音频接口120的缓存FIFO_1和第二
音频接口130的缓存FIFO_2,仲裁逻辑电路200可以通过缓存深度配置信号改变缓存FIFO_
0、缓存FIFO_1和缓存FIFO_2的大小;
[0090] 参见图4,第一音频接口110(时钟为Clk3)用于发送第二音频接口120接收的音频数据和第二音频接口120接收的音频数据,第一音频接口110的时钟为Clk3,第二音频接口
120的时钟为Clk1,第二音频接口130的时钟为Clk2,第二音频接口120接收的音频数据先存
储至FIFO_1中,然后经过MCU(微控制单元)的处理后输出至缓存FIFO_0,再通过第一音频接
口110发送出去,第二音频接口130接收的音频数据先存储至FIFO_2中,然后经过MCU(微控
制单元)的处理后输出至缓存FIFO_0,再通过第一音频接口110发送出去,仲裁逻辑电路可
以通过时钟调整触发信号改变第一音频接口110的时钟Clk3的频率;
[0091] 包含上述音频接口电路的音频设备的工作过程如下:
[0092] 音频设备上电后采用默认配置进行工作,包括系统时钟Fs、缓存FIFO_0的深度的初始预设值Fdp(FIFO_1和FIFO_2的也有较大的初始值)、第一音频接口的时钟分频计数器
的初始预设值CNT、时钟数量B的预设初始值B0和调整量a的预设初始值a0,例如,a0为8,B0
为64;
[0093] 由于系统上电后的时钟调整颗粒(a0、B0)过于粗,可能会造成缓存FIFO_0频繁溢出的情况,因此需要通过如下方式得到相对精确的a和B,具体过程如下:
[0094] 第1步:在默认配置下,当第二音频接口120接收的音频数据由第一音频接口110发出时,假设第一音频接口110的时钟频率略高于第二音频接口120的时钟频率,那么在没有
时钟调整的情况下缓存FIFO_0必将会出现下溢,所以首先,在缓存FIFO_0即将下溢时,将第
一音频接口的时钟分频计数器的值由初始值CNT调整为CNT+a0,以用来对第一音频接口的
时钟频率进行粗调,从Fs/CNT调整为Fs/(CNT+a0),由于粗调并不能让第一音频接口110和
第二音频接口120变成严格的时钟同步,所以缓存FIFO_0将在一段时间后会到达即将上溢
状态,此时将时钟分频计数器的值由CNT+a0调整为CNT‑a0,以保证音频连续输出。如此循环
一次就可以测量第一音频接口的缓存FIFO_0从即将上溢(将满)到即将下溢(将空)的时间
T1。
[0095] 当第二音频接口130接收的音频数据由第一音频接口110发出时,按上述操作同样可以得到第一音频接口110的缓存FIFO_0从即将上溢到即将下溢的时间T2。
[0096] 在开始传输音频数据时,Fs、CNT以及Fdp固定,仲裁逻辑电路只需要通过定时器或计数器即可得到FIFO_0从即将上溢到即将下溢的时间;
[0097] 第2步:将第1步得到的T1带入到公式(1)可以得到第一音频接口110和第二音频接口120之间的频偏Fq1,将T2代入公式(1)可以得到第一音频接口110和第二音频接口130之
间的频偏Fq2。
[0098]   (1)
[0099] 然后在一预先存储的配置表中查询得到时钟频偏Fq1对应的时钟调整参数的第一当前值(包括a的值a1和B的值B1)和缓存深度的参考值(K1),以及时钟频偏Fq2对应的时钟
调整参数的第一当前值(包括a的值a2和B的值B2)和缓存深度的参考值(K2);
[0100] 本发明中,考虑到时钟频率调整的范围,因此引入了一次时钟频率调整任务中需要调整的时钟数量B;
[0101] 其中,上述的配置表可预先通过MATLAB建模可得到,具体地,已知频偏Fq,可根据公式(2)建立MATLAB模型,将MATLAB模型生成的包含Fq,a,B,Fs/CNT和缓存深度的参考值的
配置表导入到上述音频接口电路所在的音频设备中;
[0102] (2)
[0103] 第3步:按照Fdp:K1:K2这样的比例对缓存电路300进行缓存资源划分,确定FIFO_0、FIFO_1、FIFO_2的深度大小;
[0104] 第4步:无论怎样设定时钟调整参数a和B,也不能使主、从音频接口的时钟调整为同频同相,只能让两个时钟频率和相位无限靠近,所以各个音频接口的缓存经过一定时间
后可能还会溢出,本发明实施例将每个音频接口的将空(aempty)、将满(afull)、上溢(满,
full)、下溢(空,empty)、1/2上溢(1/2满,1/2 full)和1/2下溢(1/2空,1/2empty)标志位送
入到仲裁逻辑电路中,当上述三个音频接口(共18个标志位)的任一标志位有效,仲裁逻辑
电路将给出第一音频接口的时钟调整方案,即通过合理的设置a和B值,以让音频设备1的第
一音频接口的传输延时最小,且动态功耗最小。需要说明的是,a和B值设置越合适,那么时
钟调整的间隔时间就越长,效果也就越好。
[0105] 第5步:将更新后的a和B送给音频设备1的第一音频接口,对其时钟进行实时调整,其中,当第4步中所述的任一标志位有效,则重复第5步内容。
[0106] 在长时间的音频数据交互中,将根据每个接口中的6种标志位,灵活的调整a、B和FIFO深度值。
[0107] 例如,当仲裁逻辑电路收到缓存 FIFO_1的 1/2空标志位,说明第一音频接口电路110的时钟频率比第二音频接口120的时钟频率偏快,所以在a1、B1的基础上直接增大a和B
值(例如,可在a1、B1的基础上增大25%),之后向第一音频接口电路发送相应的时钟调整触
发信号;同样的,当收到缓存FIFO_1的将空标志位时,再增大a和B值(例如,可在上述增大
25%后的a1、B1的基础上增大50%),之后向第一音频接口电路发送相应的时钟调整触发信
号;当收到缓存 FIFO_1的空标志位时,再增大a和B值(例如,可在上述增大50%后的a1、B1的
基础上增大75%),之后向第一音频接口电路发送相应的时钟调整触发信号。
[0108] 若在上述调整过程中,又检测到缓存FIFO_2的1/2满标志位,说明调整后的第一音频接口的时钟频率比第二音频接口130的时钟频率偏慢,所以需要在a2、B2的基础上减小a
值和增大B值(例如,可在a2的基础上减小25%,在B2的基础上增大25%),之后向第一音频接
口电路发送相应的时钟调整触发信号,同时增大缓存FIFO_2的深度(例如,FIFO_2的深度+
1),同时减小缓存 FIFO_1的深度(例如,FIFO_1的深度‑1),同样的,若检测到缓存FIFO_2的
将满标志位,需要继续减小a值和增大B值(例如,可以在上述减小25%后的a2基础上减小
50%,在上述增大25%后的B2基础上增大50%),之后向第一音频接口电路发送相应的时钟调
整触发信号,同时增大缓存FIFO_2的深度(例如,FIFO_2的深度+2),减小FIFO_1的深度(例
如,FIFO_1的深度‑2);若检测到FIFO_2的满标志位,需要继续减小a值和增大B的值(例如,
可在上述减小50%后的a2基础上减小75%,在上述增大50%后的B2基础上增大75%),之后向第
一音频接口电路发送相应的时钟调整触发信号,同时增大FIFO_2的深度(例如,FIFO_2的深
度+4),减小FIFO_1的深度(例如,FIFO_1的深度‑4)。
[0109] 其中,在由缓存FIFO_1的标志位触发的时钟频率调整任务执行完成之后,若检测到第二音频接口130的6种标志位中的任一,则只进行a和B的相应调整,各音频接口的缓存
深度可不进行调整。
[0110] 其中,本发明实施例中,a1,a2,B1,B2为时钟调整的初始值,只用到一次,后续将在调整后的a和B值上进行增大或减小。
[0111] 其中,音频的左、右声道可单独配置。
[0112] 例如,本发明实施例中的音频接口电路的工作过程可以包括如下几个情况:
[0113] (1)当第一音频接口的3种空标志位(1/2空、将空、空)中的任一有效,在根据该标志位调整第一音频接口的时钟频率的过程中,若检测到第二音频接口120或第二音频接口
130的3种满标志位(1/2满,将满,满)任一有效,则减小a的值和增大B的值,同时增大缓存
FIFO_1和缓存FIFO_2深度,减小缓存FIFO_0的深度。
[0114] (2)当第一音频接口的3种空标志位(1/2空、将空、空)中的任一有效,在根据该标志位调整第一音频接口的时钟频率的过程中,若检测到第二音频接口120或第二音频接口
130的3种空标志位(1/2空,将空,空)任一有效,则增大a的值和B的值,各音频接口的缓存深
度不做调整。
[0115] (3)当第一音频接口的3种满标志位(1/2满、将满、满)中的任一有效,在根据该标志位调整第一音频接口的时钟频率的过程中,若检测到第二音频接口120或第二音频接口
130的3种满标志位(1/2满,将满,满)任一有效,则减小a的值和增大B的值,各音频接口的缓
存深度不做调整。
[0116] (4)当第一音频接口的3种满标志位(1/2满、将满、满)中的任一有效,在根据该标志位调整第一音频接口的时钟频率的过程中,若检测到第二音频接口120或第二音频接口
130的3种空标志位(1/2空、将空、空)任一有效,则增大a的值和B的值,同时减小缓存FIFO_1
和缓存FIFO_2的深度,增大缓存FIFO_0的深度。
[0117] (5)当第一音频接口的6种标志位中的任一有效,若此时未进行第一音频接口的时钟调整,将直接调整a和B的值,不会对各音频接口的缓存深度做出调整。
[0118] 以上五种情况中,第一音频接口、第二音频接口的位置可以互换。
[0119] 本发明提供的音频接口电路的控制方法,首先通过输入音频,可以在10ms内估算不同时钟域的音频接口间(一主多从)的时钟偏差。然后根据时钟偏差,仲裁逻辑电路会给
出主模式的音频接口的初始时钟调整信息和所有数据流接口的FIFO深度的初始调整值。在
之后的数据交互过程中,每个音频接口的各个缓存标志位都会被送入到仲裁逻辑电路中,
一旦标志位触发,仲裁逻辑电路将给出主模式的音频接口的速率调整方案和各音频接口的
缓存深度调整方案。时钟频率和缓存深度的调整伴随着整个数据交互过程,这种简单高效
的频率跟随机制,可以有效杜绝音频数据由于上溢或下溢导致的音频噪声。
[0120] 其中,本发明中,音频接口电路中的仲裁逻辑电路为逻辑电路,可以减少控制延时,能够及时进行响应,有利于提高音频接口电路性能。
[0121] 本发明实施例还提供了一种音频接口电路,所述音频接口电路包括仲裁逻辑电路、一可工作在主模式下的第一音频接口、多个可工作在从模式下的第二音频接口以及一
缓存电路,所述第一音频接口用于发送所述第二音频接口接收的音频数据,所述缓存电路
用作所述第一音频接口和多个所述第二音频接口的缓存,所述仲裁逻辑电路可实现上述的
控制方法。
[0122] 优选地,在一实施例中,所述缓存电路为一FIFO存储电路,缓存电路包括缓存控制逻辑和缓存空间,缓存空间可以是一片RAM,例如,可以是一片SRAM。
[0123] 本发明提供的音频接口电路,通过各音频接口的标志位实时调整主模式的音频接口的时钟,简化了时钟同步逻辑,减少复杂同步算法的调用,节省了芯片面积和成本,并且
能够动态调整各音频接口的缓存深度,从而更加合理的使用缓存电路,在多个音频接口联
动时,可以避免缓存深度固定造成某一音频接口永远达不到将空或将满造成的资源浪费。
[0124] 此外,由于通常情况下音频接口的缓存深度不能太大,太大可能造成音频播放延时较大,本实施例提供的音频接口电路,不仅解决了音频数据由于时钟偏差造成的音频噪
声,有利于避免音频接口的缓存深度设置过大可能造成的音频播放延时较大的问题,也避
免了音频接口的缓存深度太小同时调整范围太大造成的FIFO频繁上溢或下溢,进而导致功
耗增加的问题。
[0125] 例如,在一实施例中,所述音频接口电路中的第一音频接口包括I2S接口、USB接口、SPDIF接口中的一种,所述音频接口电路中的第二音频接口包括I2S接口、USB接口、
SPDIF接口中的一种或多种。
[0126] 本发明实施例还提供了一种音频设备,包括上述的音频接口电路。
[0127] 例如,该音频设备为声卡、PC、手机、平板电脑或音箱。
[0128] 其中,在该音频设备中,工作在从模式下的各第二音频接口可以分别接收外部的不同音频设备发送的音频数据,各第二音频接口接收的音频数据经过处理后通过工作在主
模式下的第一音频接口发出。
[0129] 其中,第二音频接口接收的音频数据可以是保存的一段语音文件,也可以是其他接口发送的录音、伴奏或背景音乐等音频数据,在经过混响或变声等处理后,通过第一音频
接口将处理后的数据发送给耳机、功放或其他监听设备等。
[0130] 本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
[0131] 应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替
换,都将包含于本发明的权利要求范围内。