主要介紹下藍牙協議棧(bluetooth stack)傳統藍牙音頻協議之 音視頻分布傳輸協議的錯誤碼以及Service Capablities介紹,
其中Service Capablities包括以下幾種:

本專欄文章我們會以連載的方式持續更新,本專欄計劃更新內容如下:

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

-------------------------------------------------------------------------------------------------------------------------
CSDN學院鏈接(進入選擇你想要學習的課程):
藍牙交流扣扣群:970324688
Github代碼:
入手開發板:
藍牙學習目錄:
--------------------------------------------------------------------------------------------------------------------------
AVDTP錯誤碼在后續signal command中會多次用到,所以我們提前來做說明,有如下幾種:





由于Service Capablities在后續AVDTP_GET_CAPABILITIES_RSP/AVDTP_SET_CONFIGURATION_CMD/AVDTP_GET_CONFIGURATION_RSP/AVDTP_RECONFIGURE_CMD這幾種command中都會用到,所以我們來提前做說明:
其中Service Capablities格式如下:

此部分也是類似于T L V(Type Length Value)的類型,
其中Service Category就是TYPE,值如下:

其中Length Of Service Capabilities (LOSC)就是類似于length,也就是后續Service Capabilities Information Elements的長度
Service Capabilities Information Elements?這個就是特定的值,這個要分很大的篇章來講,因為這么多種類,不同的種類有不同格式




其中Media Type跟Media Codec Type在以下鏈接中:
其中Media Type有如下值:

其中Media Codec Type有如下值:

此部分的Media Codec Specific Information Elements就是上層的一些codec信息,比如下圖是SBC的,當然我們在A2DP的時候會講到其他media codec的格式:






