ASRC

概述

ASRC(Asynchronous Sample Rate Converter,异步采样速率转换器)通过改变离散信号的采样率以获得基础连续信号的新离散表示。

功能特性

ASRC 模块支持:

  • 支持 4 个 ASRC 模块。

  • 支持上行模式或下行模式,下行模式支持 ASRC 经过硬件混音 mixer 模块输出, mixer 模块共 2 个。

上行模式时与其他模块的连接关系图如下所示。

../../_images/ASRC_rx_mode_connection.png

ASRC rx 模式与其它模块连接示意图

硬件混音流程如下, mixer 输入由 data 和 tone 构成, data 来自 music 或者 voice, tone 来自提示音, data 和 tone 的混合比例可调, data 和 tone 可单独播放。

../../_images/Mixer_flow.png

mixer 模块使用示意图

下行模式时与其他模块的连接关系图如下所示。

../../_images/ASRC_tx_mode_connection.png

ASRC tx 模式与其它模块连接示意图

  • 输入数据位宽为 32 bit,支持低 24 bit、低 16 bit、双 16 bit 和高 24 bit 有效

  • 支持对输入数字音频信号进行增益控制,调整精度为 0.1875 dB,范围为 -95.8125 dB ~+ 95.8125 dB。

  • 典型输入采样率: 8 kHz、16 kHz、32 kHz、44.1 kHz、48 kHz、96 kHz 和最大 192 kHz 等多种配置。

  • 典型输出采样率: 192 kHz、200 kHz、384 kHz、400 kHz、768 kHz 和 800 kHz 等多种配置。

  • 支持 PPM 调整,控制数据传输速率。

  • ASRC0、ASRC1 支持硬件 stream EQ,可以增强或者削弱特定频率范围内信号能量。

单个 EQ 模块支持最大 32 个 biqaud filter, 1 个 DRC。 单个 EQ 模块支持两组参数切换。 单个 EQ 模块支持对输入放大 2^N 倍, N=1~8,支持对输入缩小 2^M 倍, M=1~8。 单个 EQ 模块支持对输出缩小 2^M 倍, M=1~8。 支持典型输入采样率: 8 kHz、16 kHz、32 kHz、44.1 kHz、48 kHz、96 kHz 和 192 kHz 等多种配置。

STREAM EQ 与其他模块的连接关系图如下所示。

../../_images/STREAM_EQ_connection.png

STREAM EQ与其它模块连接示意图

结构图

单个 ASRC 的内部结构如下图所示。

../../_images/ASRC_architecture.png

ASRC 结构图

单个 STREAM EQ 的内部结构如下图所示。

../../_images/STREAM_EQ_architecture.png

STREAM EQ 结构图

API 介绍

Defines

WQ_ASRC_AUX_OFFSET

Enums

enum _WQ_ASRC_TYPE

Values:

enumerator WQ_ASRC_TYPE_MAIN
enumerator WQ_ASRC_TYPE_AUX
enumerator WQ_ASRC_TYPE_MAX
struct wq_asrc_config

Public Members

void *irq_param

asrc interrupt callback function input parameter

wq_asrc_int_hook irq_cb

asrc interrupt callback function

WQ_ASRC_INT_TYPE irq_type

asrc interrupt type

uint32_t freq_in
uint32_t freq_out
int32_t ppm
WQ_ASRC_MODE mode
WQ_ASRC_LATCH_SRC latch
WQ_ASRC_TRIGGER_SRC trigger
WQ_ASRC_BIT_FORMAT format
WQ_AUDIO_TIMER_ID timer_id
int8_t left_shift
bool mixer_en
bool asrc_drv_by_i2stx_en

not support, must be false