主要介绍下蓝牙协议栈(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的格式: