This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2564CSTBTBLESW:在正常 HFP 模式下实现外部音频编解码器(CVSD)。

Guru**** 2540720 points
Other Parts Discussed in Thread: CC2564C, CC2564

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/859189/cc2564cstbtblesw-external-audio-codec-cvsd-implementation-in-normal-hfp-mode

器件型号:CC2564CSTBTBLESW
主题中讨论的其他器件:CC2564CCC2564

CC564C BT 控制器已用于 BT 4.2经典(A2DP 和 HFP)+ BLE 模式。 由于我们同时使用 BLE+HFP/A2DP、因此 BT 控制器无法配置为辅助 A2DP/HFP 模式。

从数据表中可以清楚地看出、在正常模式(A2DP/HFP)下、必须使用外部音频编解码器来编码和解码通过 BT 配置文件接收的音频数据包。

Bluetopia v4.2.1具有 SBC 编码器和解码功能。 但是、诸如 oneplus 3T (Android 9.0)、reddmi note 7 pro (Android 9.0)之类的电话在 HFP 配置文件中使用 CVSD 音频编解码器。

而空比堆栈不包含任何 CVSD 编码器/解码器功能。 我们希望获取有关 CVSD 编码器和解码器的参考/代码/示例。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Akshay、

    [引用用户="Akshay P22"]

    从数据表中可以清楚地看出、在正常模式(A2DP/HFP)下、必须使用外部音频编解码器来编码和解码通过 BT 配置文件接收的音频数据包。

    Bluetopia v4.2.1具有 SBC 编码器和解码功能。 但是、诸如 oneplus 3T (Android 9.0)、reddmi note 7 pro (Android 9.0)之类的电话在 HFP 配置文件中使用 CVSD 音频编解码器。

    而空比堆栈不包含任何 CVSD 编码器/解码器功能。 我们希望获取有关 CVSD 编码器和解码器的参考/代码/示例。  

    [/报价]

    外部编解码器 IC 和编码器/解码器是两个不同的组件。 编解码器 IC 执行从模拟音频到数字 PCM 信号的 ADC 和 DAC。 音频编解码器 IC 的 PCM 接口与 CC2564C 控制器的 I2S/PCM 接口(在语音呼叫或辅助 A2DP 情况下)或主机处理器(用于无辅助 A2DP)进行通信。

    另一方面、CVSD 和 mSBC 等编码方案用于对控制器的 PCM 接口与无线传输之间的音频数据进行编码/解码。 CC2564C 固件包含 CVSD 编码器/解码器的实现、因此无需在主机堆栈上实施。

    [引用 user="Akshay P22">并且 blutopia 栈不包含任何 CVSD 编码器/解码器功能。 我们希望获取有关 CVSD 编码器和解码器的参考/代码/示例。

    如上所述、主机堆栈不需要对 CVSD 帧进行编码/解码、因为在控制器固件中以低得多的级别处理 CVSD 帧。 关于窄带语音的参考代码/示例(使用 CVSD 编码)、您可以在 CC2564CSTBTBLWSW 的默认 HFPdemo_AG 或 HFPDemo_HF 代码示例中进行以下更改、以将演示仅限于窄带语音。 这样、您还可以支持 BLE 功能、同时对所有连接使用窄带语音。

    1、从 HFRE_SUPPORTED_FLOCTE_FCODEC 位掩码中排除 HFRE_HF_CODE_Negotiation_SUPPORTED_BIT。 因此、它看起来类似于以下代码段。

    #define HFRE_Supported_features (HFRE_CLI_SUPPORTED_BIT | HFRE_HF_ENHANGE_CAL_STATUS_SUPPORTED_BIT | HFRE_HF_SOICE_ENHANCED SUPPORTED_BIT | HFRE_HF_VOICE_INognition Supported_bit) 

    2.跳过对 bsc_EnableFeature (BluetoothStackID、bsc_feature_Wide、band_speech)的调用;在 OpenStack 函数中。

    /*跳过函数调用以启用 WBS 并设置 Result = 1参数以继续执行其余初始化。 //
    //结果= BSC_EnableFeature (BluetoothStackID、BSC_FEATE_Wide、BADBLE_Speech);
    结果= 1; 

    此致、

    Vihang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Vihang 的回复。

    要求是 HFP/A2DP + BLE 同时工作。 要实现此配置、不能将 BT 控制器用作辅助 HFP/A2DP 模式。

    CC2564C 的 PCM/I2S 线路在正常 HFP 配置中不有用、因此我们没有在设计中使用过。

    参考数据表中的以下快照、CC2564的正常 HFP 1.6架构不包含 mSBC、而 CC2564C 中的辅助 HFP 1.6架构包含 mSBC。

    普通 HFP 1.6 - Stack (Bluetopia)在 MCU 中包含 mSBC (本例中为 STM32F412)

    辅助 HFP 1.6 - CC2564C 包含 mSBC。

    由于 CC2564C 中的设计限制、我们无法将辅助 HFP 模式与 BLE 同时使用。  这意味着 mSBC 必须在堆栈中实现、该堆栈可在 Bluetopia 堆栈中使用(我们已经有了)。 但是、我们还需要在常规 HFP 配置文件中提供 CVSD 支持、因为某些电话(如 oneplus 3T、Nokia 6.1 plus、reddmi note 7 pro)在 HFP 配置文件中仅使用 CVSD。 Bluetopia 栈 v4.2.1不支持 CVSD。

    因此、我们需要在我们的控制器(STM32F412)固件中实现 CVSD。 我们是否可以获得相同的参考?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Akshay P22"]

    要求是 HFP/A2DP + BLE 同时工作。 要实现此配置、不能将 BT 控制器用作辅助 HFP/A2DP 模式。

    CC2564C 的 PCM/I2S 线路 在正常 HFP 配置中不有用、因此我们没有在设计中使用过。

    [/报价]

    没错。 但是、要使用窄带语音- NBS (带 CVSD)、您不需要辅助 HFP。 辅助 HFP 仅在使用宽带语音- WBS (带 mSBC)时使用。 窄带语音语音呼叫和 BLE 可在 CC256x 控制器中同时运行。

    [引用 USER="Akshay P22"]常规 HFP 1.6 - Stack (Bluetopia)在 MCU 中包含 mSBC (本例中为 STM32F412)

    这不是真的。 Bluetopia 协议栈中包含的 SBC 编解码器用于 A2DP 用例、而不是用于 HFP 或 WBS。

    [引用 user="Akshay P22"> 由于 CC2564C 中的设计限制、我们无法将辅助 HFP 模式与 BLE 同时使用。  [/报价]

    如上所述、CC2564C 控制器中没有阻止 NBS 语音(CVSD)和 BLE 同时运行的限制。 唯一的限制是 WBS 语音和 BLE 无法在 CC2564C 控制器中协同工作。 根据您的用例、似乎您希望无论如何都使用 NBS。 因此、我看不到您需要在主机堆栈中实现 CVSD 编解码器的原因。

    此致、

    Vihang