蓝牙 宽带通话 (wide band speech)WBS 剖析(一) -- profile层

一.概述

WBS(wide band speech)通俗来讲就是蓝牙宽带通话,通话数据frequency 16K,采用msbc编解码(chip中实现)

和NBS(narrow band speech)相对,NBS通俗来讲是窄带通话,通话数据frequency 8K,采用CSVD编解码(chip中实现)

NBS是默认

二.实现

要实现WBS,总体来说比较复杂

要分两个阶段进行:

1.profile层(HFP AT COMMAND)

2.control bluetooth chip(如 CSR 通过 BCCMD)

三.profile层实现:

步骤:

1.First, in the initialization procedure, the HF shall send the AT+BRSF=<HF supported features>

command to the AG to both notify the AG of the supported features in the HF, as well as to

retrieve the supported features in the AG using the +BRSF result code.

2.Secondly, in the initialization procedure, if the HF supports the Codec Negotiation feature, it

shall check if the AT+BRSF command response from the AG has indicated that it supports the

Codec Negotiation feature. If both the HF and AG do support the Codec Negotiation feature

then the HF shall send the AT+BAC=<HF available codecs> command to the AG to notify the

AG of the available codecs in the HF.

HF Feature:

AG Feature:

3.通话时,AG会发送过来+BCS=ID

我们回复AT+BCS=ID

四.流程图:

实例:

这样接受了SCO连接,相当于profile层面启动了WBS

通过空中包分析发现编码方式确实变成了msbc

通常这时候要把MIC,PCM_IN,PCM_OUT,SPEAKER切换成16K

但是现在问题来了,切换16K后为什么还全都是杂音呢?

揭晓答案:

HFP profile层面只是通知手机要进行WBS通话了,但是local chip并不知道,也不会解析HFP层面的AT command

所以我们应该有一些机制告知chip一些消息,如CSR 需要 BCCMD告知,每个chip厂商都有自己的策略

由于告知芯片这个过程比较复杂,所以在下篇文章介绍(拿CSR举例)

时间: 2024-10-08 18:13:03

蓝牙 宽带通话 (wide band speech)WBS 剖析(一) -- profile层的相关文章

蓝牙 WBS 宽带通话 (wide band speech) 剖析(二) -- BCCMD control chip

一.概述 此文章接上篇文章:http://blog.csdn.net/xiaoxiaopengbo/article/details/51565016 此文介绍蓝牙通话WBS功能,通过BCCMD command方式来告知芯片DSP对通话data进行msbc编解码 如有不懂BCCMD看此文档:http://blog.csdn.net/xiaoxiaopengbo/article/details/51557771 二.flow图 三.步骤: 1.----------------------------

Android源码剖析之Framework层基础版

本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 关于Framework,就是应用层底下的控制层,离应用层最近,总想找个机会,写写WindowMangerService和ActivityManagerService(注意非控件,而是指一类服务)以及其他一些东西,对底层做一个更为全面的认识.而很早以前,写过一篇文章,来简述Android系统-" Android高级之系统介绍 ",同样今天我们在讲Framework层时也会再对系统做一个回顾

移动通信最先进的音频编解码器EVS及用好要做的工作

语音通信从最初的只有有线通信变成后来的有线通信与无线通信(移动通信)的竞争,当移动语音通信价格下来后有线语音通信明显处于逆势.如今移动语音通信的竞争对手是OTT(On The Top)语音,OTT语音是互联网厂商提供的服务,一般免费,如微信语音.目前语音通信技术上就分成了两大阵营:传统通信阵营和互联网阵营,互相竞争,推动着语音通信技术的发展.具体到编解码器上互联网阵营提出了涵盖语音和音乐的音频编解码器OPUS(OPUS是由非盈利的Xiph.org 基金会.Skype 和Mozilla 等共同主导

Android项目中的config.xml文件 “config.xml”

Android应用程序需要保存一些配置时,可以将这些配置项放置到values/config.xml文件中. 实例分析: <?xml version="1.0" encoding="utf-8"?> <!-- /* ** Copyright 2009, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "Lice

手机录音恢复与AMR结构解析

目前手机数据恢复已成主流因为存在删除清零等问题导致大家恢复手机完全变成了拼运气,看人品..手机恢复经常碰到手机需要恢复录音的且需求量较大,之前一直没对AMR研究过,经常有同行反馈所以最近做了些测试以及研究.. 因为手机录音的格式较多,3GP.AMR.OGG.WMA. WAV等格式,,目前只针对AMR进行了研究并且成功开发出了AMR碎片的提取工具.. 先看一下AMR的音频结构与编码: 1.amr codec种类 amr一般是指amr-nb,即8kHz采样,有8种比特率的编解码算法.另外有amr-w

蓝牙Bluez的编程实现

蓝牙的各个协议栈的简介 2 1.1.蓝牙技术 2 1.1.蓝牙协议栈 2 1.2.蓝牙技术的特点 4 1.2.1.蓝牙协议栈体系结构 4 1.2.2.蓝牙协议栈低层模块 5 1.2.3.软件模块 5 1.3.蓝牙的一些Profile 6 2.Bluez和D-Bus 8 2.1.Bluez和D-Bus体系结构 8 2.2.D-Bus介绍 10 2.3.Bluez的安全接口 14 2.4.Bluez适配器接口 19 2.5.Bluez配对 19 2.6.Bluez绑定 20 3.Bluez编程实现 

蓝牙核心规格

两种最常见的核心规格实施为蓝牙基本速率/增强数据率(BR/EDR)(已采纳为2.0/2.1版)和低功耗蓝牙(Bluetooth Low Energy)(已采纳为4.0/4.1/4.2版).每种实施都有不同的用例,且使用不同的芯片,以满足基本的硬件要求.双模式芯片皆可适用于此两种用例的应用. 区别: 蓝牙BR/EDR技术--建立相对短程.持续的无线连接,为播放音频流等用例的理想之选 低功耗蓝牙技术--允许快速进行相对远程的无线连接,为不需持续连接且所需电池寿命长的物联网(loT)应用的理想之选 双

Python脚本性能剖析

################### #Python脚本性能剖析 ################### cProfile/profile/hotshot用于统计Python脚本各部分运行频率和耗费时间等统计信息.pstats可用于格式化这些信息 cProfile,属C扩展.开销较小,适合剖析长时间执行的Python程序,推荐使用此模块 profile.纯Python模块,存在明显开销,但想对其扩展的话相对照较easy hotshot,实验性的C模块.主要关注开销最小化,现已不再被维护将来可能

android -- 蓝牙 bluetooth (一) 入门

前段时间在 网上看了一些关于android蓝牙的文章,发现大部分是基于老版本(4.1以前含4.1)的源码,虽然无碍了解蓝牙的基本原理和工作流程,但对着4.2.2的代码看起来总是有些遗憾.所以针对4.2.2版本代码整理下相关知识,当然蓝牙工作的主干流程是没有变的,上电.加载驱动这些动作少不了的,只是这些功能的实现代码位置变了不少.希望本文可以让大家对android4.2的蓝牙部分代码有一个初步的了解.         正文开始前,先明确代码版本:android  jellyBean 4.2.2,后