蓝牙协议栈 电话免提协议HFP(Hands-Free)SDP介绍

 2023-09-05 阅读 72 评论 0

摘要:零. 概述 主要介绍下蓝牙协议栈(bluetooth stack) 电话免提协议HFP(Hands-Free) SDP的介绍,包括HF/AG角色的SDP。 一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ,主

零. 概述

主要介绍下蓝牙协议栈(bluetooth stack) 电话免提协议HFP(Hands-Free) SDP的介绍,包括HF/AG角色的SDP。

一. 声明

本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。

第二篇: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学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144

蓝牙交流扣扣群:970324688

Github代码:https://github.com/sj15712795029/bluetooth_stack

入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708

蓝牙学习目录:https://blog.csdn.net/XiaoXiaoPengBo/article/details/107727900

--------------------------------------------------------------------------------------------------------------------------

二. HF的SDP

我们来看下代码中注册的HFP HF的SDP

static  uint8_t hfp_hf_service_record[] =
{SDP_DES_SIZE8, 0xb,SDP_UINT16, BT_ATTRIBUTE_SERVICE_CLASS_ID_LIST>>8&0xff, BT_ATTRIBUTE_SERVICE_CLASS_ID_LIST&0xff, /* Service class ID list attribute */SDP_DES_SIZE8, 6,SDP_UUID16, BT_SERVICE_CLASS_HANDSFREE>>8&0xff, BT_SERVICE_CLASS_HANDSFREE&0xff,SDP_UUID16, BT_SERVICE_CLASS_GENERIC_AUDIO>>8&0xff, BT_SERVICE_CLASS_GENERIC_AUDIO&0xff,SDP_DES_SIZE8, 0x11,SDP_UINT16, BT_ATTRIBUTE_PROTOCOL_DESCRIPTOR_LIST>>8&0xff, BT_ATTRIBUTE_PROTOCOL_DESCRIPTOR_LIST&0xff,/* Protocol descriptor list attribute */SDP_DES_SIZE8, 0xc,SDP_DES_SIZE8, 0x3,SDP_UUID16, BT_PROTOCOL_L2CAP>>8&0xff, BT_PROTOCOL_L2CAP&0xff, /*L2CAP*/SDP_DES_SIZE8, 0x5,SDP_UUID16, BT_PROTOCOL_RFCOMM>>8&0xff, BT_PROTOCOL_RFCOMM&0xff, /*RFCOMM*/SDP_UINT8, RFCOMM_HFP_HF_CHNL, /*RFCOMM channel*/SDP_DES_SIZE8, 0xd,SDP_UINT16, BT_ATTRIBUTE_BLUETOOTH_PROFILE_DESCRIPTOR_LIST>>8&0xff, BT_ATTRIBUTE_BLUETOOTH_PROFILE_DESCRIPTOR_LIST&0xff, /* profile descriptor List */SDP_DES_SIZE8, 0x8,SDP_DES_SIZE8,0x06,SDP_UUID16,BT_SERVICE_CLASS_HANDSFREE>>8&0xff, BT_SERVICE_CLASS_HANDSFREE&0xff,SDP_UINT16,0x01,0x07,			/* V1.7 */SDP_DES_SIZE8, 0x6,SDP_UINT16, BT_ATTRIBUTE_SUPPORTED_FEATURES>>8&0xff, BT_ATTRIBUTE_SUPPORTED_FEATURES&0xff,  /* support feature */SDP_UINT16,0x00,0x27,};

另外,我们看下手机来问询我们SDP,我们回复的btsnoop封包

SDP的数据元已经在SDP中分析了,我们在这里不做重复讲解

三.AG的SDP

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/630.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息