掌桥专利:专业的专利平台
掌桥专利
首页

一种音频数模转换电路

文献发布时间:2023-06-19 12:16:29


一种音频数模转换电路

技术领域

本发明涉及DAC数字电路设计领域,具体涉及一种音频数模转换电路。

背景技术

典型的音频DAC电路不仅面积大、功耗大,且仅支持32k、44.1k、48k三种基频为准的采样率,对于其他采样率则不能很好支持。而由于这种特定的采样率,则要求这种典型设计的工作时钟必须是可以分出这三种基频或其2的幂次方频率值的时钟源才可以,如典型值为24.576M(用于分出48K和32K)和22.5792MHz(用于分出44.1K)的时钟源。典型的音频DAC电路对时钟源的要求过于严格,兼容性不好。

发明内容

为解决上述问题,本发明提供了一种音频数模转换电路,解决了对音频DAC电路工作时钟频率严格要求的限制,并且可以支持不同采样率的音频,应用和设计上更灵活。本发明的具体技术方案如下:

一种音频数模转换电路,所述电路包括:读写控制模块,用于接收APB总线信号,输出异步FIFO模块的写使能信号以及第一分频参数;时钟分频模块,与读写控制模块连接,用于接收音频数模转换电路的工作时钟以及读写控制模块输出的第一分频参数,输出相位同步的异步FIFO模块的读使能信号和CIC滤波器的数据处理使能信号;异步FIFO模块,分别与读写控制模块和时钟分频模块连接,用于在写入数据的时钟和读出数据的时钟这两个不同的时钟域之间进行数据交互处理;CIC滤波器,分别与时钟分频模块和异步FIFO模块连接,用于根据相位同步的异步FIFO模块的读使能信号和CIC滤波器的数据处理使能信号从异步FIFO模块中读出数据并进行滤波。与现有技术相比,本技术方案采用新的音频DAC架构,优化了传统架构中大量乘加运算、组合逻辑和寄存器,大大减小了硬件面积和设计复杂度;同时,解决了对音频DAC电路工作时钟频率严格要求的限制,并且可以支持不同采样率的音频,应用和设计上更灵活。

进一步地,所述音频数模转换电路还包括数据传输模块和数模转换模块,所述数据传输模块用于传输数据给异步FIFO模块,所述数模转换模块用于接收CIC滤波器滤波后的数据并将其转换成模拟信号。

进一步地,所述数据传输模块包括CPU控制器、DMA控制器和数据选择器,其中,CPU控制器和DMA控制器分别与数据选择器相连,数据选择器通过读写控制模块提供的数据选择信号选择CPU控制器或DMA控制器的数据给异步FIFO模块。

进一步地,所述读写控制模块提供的数据选择信号为音频数模转换电路的中断信号或请求信号;其中,当选择信号为中断信号时,选择CPU控制器的数据给异步FIFO模块,当选择信号为请求信号时,选择DMA控制器的数据给异步FIFO模块。

进一步地,所述时钟分频模块包括:除法器,与读写控制模块连接,用于接收第一分频参数并进行除法运算,得到第二分频参数;其中,被除数为预设值;第一计数器,与除法器连接,用于根据第二分频参数对工作时钟进行计数,得到第一计数序列;第一寄存器,与第一计数器连接,用于根据第一计数序列对工作时钟进行分频,得到CIC滤波器的数据处理使能信号及其频率值;第二计数器,与第一寄存器连接,用于根据所述预设值对CIC滤波器的数据处理使能信号进行计数,得到第二计数序列;第二寄存器,与第一寄存器连接,用于对CIC滤波器的数据处理使能信号进行延时,得到延时使能信号;第三寄存器,分别与第二计数器和第二寄存器连接,用于根据第二计数序列和所述延时使能信号对工作时钟进行分频,得到异步FIFO模块的读使能信号及其频率值;其中,CIC滤波器的数据处理使能信号和异步FIFO模块的读使能信号的相位同步。与现有技术相比,本技术方案对工作时钟的分频可以正确地产生原音频数据的采样率,因此支持各种不同采样率的音频数据源;第三寄存器根据第二计数序列和所述延时使能信号对工作时钟进行分频,可使得CIC滤波器的数据处理使能信号和异步FIFO模块的读使能信号保持同步,不产生相位偏差,确保CIC滤波器正确采集异步FIFO模块中的数据。

进一步地,所述第一计数器对工作时钟的上升沿进行计数,每当计数个数达到第二分频参数的值则归零重计。

进一步地,所述第二计数器对CIC滤波器的数据处理使能信号的上升沿进行计数,每当计数个数达到预设值则归零重计。

进一步地,所述第一寄存器在第一计数序列中每个归零的前一个数值处,设置CIC滤波器的数据处理使能信号为高电平,其余情况则设置为低电平,其频率值为工作时钟与第二分频参数的商。产生CIC滤波器的数据处理使能信号,以对数据进行过采样,提高数据的质量。

进一步地,所述第三寄存器在第二计数序列中每个归零处,且在延时使能信号为高电平时,设置异步FIFO模块的读使能信号为高电平,其余情况则设置为低电平,其频率值为工作时钟与第一分频参数的商。产生异步FIFO模块的读使能信号,以确保在写入数据的时钟和读出数据的时钟这两个不同的时钟域之间正确进行数据交互处理。

进一步地,所述第二寄存器对CIC滤波器的数据处理使能信号的延时时间为预设个数的工作时钟周期。可确保CIC滤波器的数据处理使能信号和异步FIFO模块的读使能信号保持同步,不产生相位偏差。

进一步地,所述读写控制模块的输出还包括音频数模转换电路使能信号和复位信号,用于作为时钟分频模块的输入。

附图说明

图1为典型的音频DAC电路示意图。

图2为本发明一种实施例所述音频数模转换电路示意图。

图3为本发明一种实施例所述时钟分频模块示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。

在下面的描述中,给出具体细节以提供对实施例的透彻理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实施实施例。例如,电路可以在框图中显示,以便不在不必要的细节中使实施例模糊。在其他情况下,为了不混淆实施例,可以不详细显示公知的电路、结构和技术。

如图1所示的一种典型音频DAC电路,不仅面积大、功耗大,且仅支持3种基频(32k、44.1k、48k)为准的采样率,对于其他采样率则不能很好支持。由于这种特定的采样率,则要求这种典型设计的工作时钟必须是可以分出这三种基频或其2的幂次方频率值的时钟源才可以,如典型值为24.576M(用于分出48K和32K)和22.5792MHz(用于分出44.1K)的时钟源。典型的音频DAC电路对时钟源的要求过于严格,兼容性不好。

因此,本发明实施例提出一种音频数模转换电路,如图2所示,所述电路包括:

读写控制模块,用于接收APB总线信号,APB总线用来连接外围设备,然后输出异步FIFO模块的写使能信号以及第一分频参数。所述第一分频参数由外围设备配置,外围设备在获取音频数模转换电路的工作时钟以及音频数据的采样率后,作商得到第一分频参数,所述工作时钟以及音频数据的采样率均为已知参数。所述读写控制模块是由一些不同地址的寄存器读写模块搭建而成的模块,通过操作APB总线信号来配置各个地址的寄存器值。APB总线为AMBA总线协议的其中一种,是常用的总线协议,其使用方法大致如下:APB总线有PCLK/PSEL/PENABLE/PWRITE/PADDR/PRDATA/PWDATA/PRESET等几种信号,当PENABLE、PSEL、PWRITE同时为1,在PCLK上升沿到来时,向PADDR中写入PWDATA值,即向地址为ADDR的寄存器读写模块中写入WDATA值;相反,当PENABLE、PSEL、PWRITE同时为0,在PCLK上升沿到来时,读PADDR中的PRDATA值,即读出地址为ADDR的寄存器读写模块中的值。所述读写控制模块中的数据输入和输出都是通过这种方式实现的。

时钟分频模块,与读写控制模块连接,用于接收音频数模转换电路的工作时钟以及读写控制模块输出的第一分频参数,输出相位同步的异步FIFO模块的读使能信号和CIC滤波器的数据处理使能信号。如图3所示,所述时钟分频模块包括:

除法器,与读写控制模块连接,用于接收第一分频参数并进行除法运算,得到第二分频参数。其中,被除数为预设值,具体指的是CIC滤波器的过采样率。优选地,过采样率设置为8。

第一计数器,与除法器连接,用于根据第二分频参数对工作时钟进行计数,得到第一计数序列。第一计数器从0开始计数,逢工作时钟的上升沿则加1,每当计数个数达到第二分频参数的值则归零重计。

第一寄存器,与第一计数器连接,用于根据第一计数序列对工作时钟进行分频,得到CIC滤波器的数据处理使能信号及其频率值。在第一计数序列中每个归零的前一个数值处,设置CIC滤波器的数据处理使能信号为高电平1,其余情况则设置为低电平0,其频率值为工作时钟与第二分频参数的商。需要说明的是,当复位信号为0,或音频数模转换电路使能信号为0时,CIC滤波器的数据处理使能信号也为0。所述复位信号为0表示音频数模转换电路进行复位,所述音频数模转换电路使能信号为0时表示音频数模转换电路没有处于工作状态。所述复位信号和音频数模转换电路使能信号作为读写控制模块的输出,分别传输到第一计数器、第一寄存器、第二计数器和第三寄存器。

第二计数器,与第一寄存器连接,用于根据所述预设值对CIC滤波器的数据处理使能信号进行计数,得到第二计数序列。第二计数器从0开始计数,逢工作时钟的上升沿则加1,每当计数个数达到预设值则归零重计。

第二寄存器,与第一寄存器连接,用于对CIC滤波器的数据处理使能信号进行延时,得到延时使能信号。所述第二寄存器对CIC滤波器的数据处理使能信号的延时时间为预设个数的工作时钟周期。优选地,对CIC滤波器的数据处理使能信号延时1个工作时钟的周期,可使第三寄存器输出的异步FIFO模块的读使能信号与CIC滤波器的数据处理使能信号的上升沿对齐。

第三寄存器,分别与第二计数器和第二寄存器连接,用于根据第二计数序列和所述延时使能信号对工作时钟进行分频,得到异步FIFO模块的读使能信号及其频率值。在第二计数序列中每个归零处,且在延时使能信号为高电平时,设置异步FIFO模块的读使能信号为高电平1,其余情况则设置为低电平0,其频率值为工作时钟与第一分频参数的商。同样的,当复位信号为0,或音频数模转换电路使能信号为0时,异步FIFO模块的读使能信号也为0。需要说明的是,异步FIFO模块的读使能信号的频率值与音频数据的采样率相等,如此一来,异步FIFO模块就可以在两个不同的时钟域下准确地读出音频数据。

此外,时钟分频模块的设计还使得CIC滤波器的数据处理使能信号和异步FIFO模块的读使能信号保持同步,没有相位偏差,否则CIC滤波器会因采集不到异步FIFO模块的数据而出错。上述时钟分频模块的设计则保证了两个信号的同步,同时又支持小范围采样率误差下的数据处理。

异步FIFO模块,分别与读写控制模块和时钟分频模块连接,用于在写入数据的时钟和读出数据的时钟这两个不同的时钟域之间进行数据交互处理。此模块为常见模块,不再进行赘述。

CIC滤波器,分别与时钟分频模块和异步FIFO模块连接,用于根据相位同步的异步FIFO模块的读使能信号和CIC滤波器的数据处理使能信号从异步FIFO模块中读出数据并进行滤波。CIC滤波器也称为积分-级联-梳状滤波器,是FIR滤波器中最优的一种,其使用了积分、梳状滤波器级联的方式。在内插CIC滤波器中,输入信号依次经过梳状滤波器、过采样、以及与梳状数目相同的积分环节。过采样率可以为8、16、32、64等,优选地,过采样率设置为8。CIC滤波器对异步FIFO模块中读出数据进行插值和积分,因此最终输出的数据在时域波形上更平滑,信噪比和总谐波失真等性能都有所提高。

参照图2,所述音频数模转换电路还包括数据传输模块和数模转换模块。

其中,所述数据传输模块用于传输数据给异步FIFO模块,包括CPU控制器、DMA控制器和数据选择器。CPU控制器和DMA控制器分别与数据选择器相连,数据选择器通过读写控制模块提供的数据选择信号选择CPU控制器或DMA控制器的数据给异步FIFO模块,即异步FIFO模块有两种数据来源。所述读写控制模块提供的数据选择信号为音频数模转换电路的中断信号或请求信号,当选择信号为中断信号时,选择CPU控制器的数据给异步FIFO模块,当选择信号为请求信号时,选择DMA控制器的数据给异步FIFO模块。

所述数模转换模块用于接收CIC滤波器滤波后的数据并将其转换成模拟信号。使用本发明所述的音频数模转换电路可以接近无损失地将源音频数据播放出来。与现有技术相比,本发明实施例采用新的音频DAC架构,优化了传统架构中大量乘加运算、组合逻辑和寄存器,大大减小了硬件面积和设计复杂度;同时,解决了对音频DAC电路工作时钟频率严格要求的限制,并且可以支持不同采样率的音频,应用和设计上更灵活。

下面结合具体例子对本发明所述的音频数模转换电路进行进一步的说明。

假设异步FIFO模块从CPU控制器或DMA控制器接收的原始音频数据的各项参数为Fin=1KHz,Fs=11.025K,ENOB=12bit,其中Fin表示音频数据的频率,Fs表示音频数据采样率,ENOB表示信号的有效位宽。

首先,外围设备根据工作时钟DAC_CLK和音频数据采样率Fs计算第一分频参数DAC_D2A_CLK_SCAL。所述工作时钟DAC_CLK为外部时钟源,其频率值不限于典型值24.576M和22.5792MHz。需要强调的是,时钟分频模块的输入时钟源是可以改变的,该模块的设计不依赖特定时钟频率工作,即不管外部时钟源为何种时钟,时钟分频模块都可以正常工作,且整个音频数模转换电路也可以正常工作。优选地,工作时钟选择频率大于20MHz的时钟源。优选地,在本实施例中,工作时钟选择48MHz的时钟源,这种比较普遍的时钟频率值的好处在于可以和SOC项目中其他模块公用一个时钟,从而节省时钟模块的资源占用,又不影响到音频数模转换电路的性能。因此,第一分频参数DAC_D2A_CLK_SCAL=DAC_CLK/Fs=48M/11.025K=4353。除法器接收到第一分频参数DAC_D2A_CLK_SCAL后计算第二分频参数CIC_CLK_SCAL=DAC_D2A_CLK_SCAL/OSR=4353/8=544,其中,OSR表示CIC滤波器的过采样率。

随后,第一计数器对工作时钟DAC_CLK进行计数,每逢上升沿计数,从0计到543后再从0计起,以此类推得到第一计数序列CIC_CLK_SCAL_CNT。每当CIC_CLK_SCAL_CNT计到543,设置CIC滤波器的数据处理使能信号CIC_DATA_EN为高电平1,获得CIC滤波器的数据处理使能信号CIC_DATA_EN=DAC_CLK/CIC_CLK_SCAL=48M/544=88.2K。

然后对CIC滤波器的数据处理使能信号CIC_DATA_EN进行计数,第二计数器从0计到7后再从0计起,以此类推得到第二计数序列CNT_CIC_EN。同时,第二寄存器对CIC滤波器的数据处理使能信号CIC_DATA_EN延时一个工作时钟DAC_CLK周期,得到延时使能信号CIC_DATA_EN_1T。每当CNT_CIC_EN=0且CIC_DATA_EN_1T=1时,设置异步FIFO模块的读使能信号AFIFO_REN为高电平1,获得异步FIFO模块的读使能信号AFIFO_REN=DAC_CLK/CIC_CLK_SCAL/8=48M/544/8=11.025K。可以看出,异步FIFO模块的读使能信号AFIFO_REN与音频数据采样率Fs一致,时钟分频模块将Fs进行了还原,本实施例所述的时钟分频模块适用各种不同音频数据源,不挑音频采样率。较优地,可以很好地做到支持11.025K-1M连续范围内的音频采样率。

需要强调的是,对数据处理使能信号CIC_DATA_EN进行计数和延时,可以使得CIC滤波器的数据处理使能信号CIC_DATA_EN和异步FIFO模块的读使能信号AFIFO_REN保持同步,没有相位偏差,否则CIC滤波器会因采集不到异步FIFO模块的数据而出错。

最后,CIC滤波器利用CIC_DATA_EN和AFIFO_REN对异步FIFO模块的数据进行插值和积分处理,以此提高音频数据的质量,使得经由数模转换模块播放出来的音频保真度更高。

显然,上述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,各个实施例之间的技术方案可以相互结合。此外,如果实施例中出现“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等术语,其指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位或以特定的方位构造和操作,因此不能理解为对本发明的限制。如果实施例中出现“第一”、“第二”、“第三”等术语,是为了便于相关特征的区分,不能理解为指示或暗示其相对重要性、次序的先后或者技术特征的数量。

另外,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。这些程序可以存储于计算机可读取存储介质(比如ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质)中。该程序在执行时,执行包括上述各方法实施例的步骤。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 一种时钟分频模块及音频播停可控的数模转换电路
  • 一种新型音频双解码的数模转换电路
技术分类

06120113237562