由于HFP feature小節(jié)太多,所以我們計(jì)劃本章把相近的feature合并,本文章主要講下電話免提協(xié)議HFP(Hands-Free Profile)Audio Connection handing以及Audio Connection transfer during an outgoing call,就是一下HFP feature中的NO.3跟NO.7。
其中Audio Connection handing包括:
1)Audio Connection set up(建立SCO連接)
2)Audio Connection release(斷開SCO連接)
3)Codec Connection set up(Codec建立)。
其中Audio Connection transfer during an outgoing call包括:
1)Audio Connection transfer towards the HF(建立SCO連接)
2)Audio Connection transfer towards the AG(斷開SCO連接)。

另外,這兩個(gè)feature我也錄制了btsnoop,在資料中的...\STM32_UBUNTU_BLUETOOTH\2-藍(lán)牙資料\藍(lán)牙協(xié)議分析hfp_audio_transfer.log,還生成了流程圖等。
本專欄文章我們會(huì)以連載的方式持續(xù)更新,本專欄計(jì)劃更新內(nèi)容如下:

第一篇:藍(lán)牙綜合介紹 ,主要介紹藍(lán)牙的一些概念,產(chǎn)生背景,發(fā)展軌跡,市面藍(lán)牙介紹,以及藍(lán)牙開發(fā)板介紹。
第二篇:Transport層介紹,主要介紹藍(lán)牙協(xié)議棧跟藍(lán)牙芯片之前的硬件傳輸協(xié)議,比如基于UART的H4,H5,BCSP,基于USB的H2等
第三篇:傳統(tǒng)藍(lán)牙controller介紹,主要介紹傳統(tǒng)藍(lán)牙芯片的介紹,包括射頻層(RF),基帶層(baseband),鏈路管理層(LMP)等
第四篇:傳統(tǒng)藍(lán)牙host介紹,主要介紹傳統(tǒng)藍(lán)牙的協(xié)議棧,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的協(xié)議吧。
第五篇:低功耗藍(lán)牙controller介紹,主要介紹低功耗藍(lán)牙芯片,包括物理層(PHY),鏈路層(LL)
第六篇:低功耗藍(lán)牙host介紹,低功耗藍(lán)牙協(xié)議棧的介紹,包括HCI,L2CAP,ATT,GATT,SM等
第七篇:藍(lán)牙芯片介紹,主要介紹一些藍(lán)牙芯片的初始化流程,基于HCI vendor command的擴(kuò)展
第八篇:附錄,主要介紹以上常用名詞的介紹以及一些特殊流程的介紹等。
另外,開發(fā)板如下所示,對于想學(xué)習(xí)藍(lán)牙協(xié)議棧的最好人手一套。以便更好的學(xué)習(xí)藍(lán)牙協(xié)議棧,相信我,學(xué)完這一套視頻你將擁有修改任何協(xié)議棧的能力(比如Linux下的bluez,Android下的bluedroid)。

-------------------------------------------------------------------------------------------------------------------------
CSDN學(xué)院鏈接(進(jìn)入選擇你想要學(xué)習(xí)的課程):
藍(lán)牙交流扣扣群:970324688
Github代碼:
入手開發(fā)板:
藍(lán)牙學(xué)習(xí)目錄:
--------------------------------------------------------------------------------------------------------------------------

Audio connection handing分為3個(gè)部分介紹,audio connection大家要通過看HCI protocol中的SCO才能知道,我來給大家用最簡短的概括,說白了就是一個(gè)數(shù)據(jù)通道,主要傳輸電話音頻數(shù)據(jù)。
Aududio connection HF & AG都可以建立.
1)?從AG建立audio connection如圖所示

Btsnoop流程如下:


2)?從HF建立audio connetion的過程如下:

AT BCC (Bluetooth Codec Connection)
這個(gè)AT command主要是觸發(fā)AG來建立codec connection
流程如下:



HF和AG都可以主動(dòng)斷開SCO,主動(dòng)斷開通過HCI command ,remote斷開會(huì)收到HCI disconnect的event

Codec connection的建立也很簡單,在SLC建立得而時(shí)候如果發(fā)送過AT BAC,那么AG會(huì)發(fā)送 BCS選擇codec id,HF回復(fù)AT BCS回復(fù)相同得而codec id,然后AG回復(fù)OK




此部分比較簡單,transfer towards to the HF就是建立SCO,transfer towards to the AG就是斷開SCO,不再重復(fù)