![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
蓝牙协议栈
文章平均质量分 89
关于蓝牙协议栈的学习笔记,也包括了我搜集的相关的资料
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
在云巅
学如逆水行舟,不进则退!
展开
-
蓝牙协议栈学习笔记(序)
由于国内关于蓝牙的资料太少了,基本都是英文的,对于英语不太好的人,会有点痛苦。公司是做蓝牙的方案的,所以提供了一个很好的学习平台,在此万分感谢!一万读者就有一万个哈姆雷特,每个人对一个知识的学习都会有自己的理解,在这里我把我的关于蓝牙学习的笔记和一些小心得分享给大家,希望对大家有所帮助!首先声明我也是一个菜鸟,有问题或者是需要资料留言我,大家互相学习!一、学习方法授人鱼不如授人以渔,一...原创 2019-02-12 17:22:15 · 10226 阅读 · 41 评论 -
Frontline ComProbe Protocol Analysis System(CPAS)简单使用说明
好的工具总能事半功陪,这里我简单是说明一下CPAS蓝牙数据分析工具,在分析蓝牙协议的过程中,基本都会用到了。打开Capture File Viewer选择手机抓取的btsnoop_hci.log或者是sniffer抓出来的.cfa文件然后选择View->Frame Display,就可以看到数据界面了:1区显示的是协议包的解析结构,图中显示的是从controller读取蓝牙地址的返回值,通过选择View->Show Decode Pane显示2区是协议区,通过选择不同原创 2020-09-04 11:17:42 · 5046 阅读 · 0 评论 -
蓝牙学习笔记之HCI协议(一)
目录协议浅述HCI简介HCI协议数据格式HCI Command PacketHCI ACL Data PacketHCI Synchronous(SCO) Data PacketHCI Event PacketHCI命令和事件介绍Inquiry commandWrite Local Name CommandRead BD_ADDR CommandH...原创 2019-02-12 21:47:28 · 21032 阅读 · 5 评论 -
蓝牙学习笔记之L2CAP协议(二)
目录L2CAP协议浅述L2CAP简介通用操作信道标识符两个设备间操作层级间操作信道工作模式数据包传输格式面向连接通讯无连接通讯在重传、流控、流模式下的面向连接的通讯在LE credit模式下的面向连接的通讯信道命令传输格式信道命令分析状态机L2CAP协议数据分析L2CAP协议浅述L2CAP简介L2CAP全称为逻辑链路与适配...原创 2019-02-13 20:50:54 · 6726 阅读 · 3 评论 -
蓝牙学习笔记之RFCOMM协议(三)
目录RFCOMM协议概览协议浅述服务概述RS-232控制信号无调制解调器仿真多串口仿真RFCOMM帧类型RFCOMM帧格式Address字段Control字段Length字段Data字段FCS字段RFCCOMM协议数据分析RFCOMM协议概览协议浅述RFCOMM协议基于L2CAP协议的串行(9针RS-232)仿真。最新规范是V1...原创 2019-04-07 18:10:30 · 14211 阅读 · 3 评论 -
蓝牙学习笔记之SDP协议(四)
目录SDP协议简述SDP简介服务记录服务属性协议数据单元陈述协议描述一次完整的客户端访问举例SDP协议数据分析SDP协议简述SDP简介服务发现协议为应用程序提供了发现服务以及确定哪些服务属性是可以利用的能力。其client-server架构如下图:由上图可以看出,客户端访问服务器遵循请求-回复原则,即client向server请求服务及属...原创 2019-02-14 11:00:13 · 4370 阅读 · 0 评论 -
蓝牙学习笔记之ATT_GATT协议(五)
ATT&GATT协议简述关于这两个协议的简述我就不说了,在我序篇网盘链接,ATT_GATT目录下有一份《BLE4.0低功耗蓝牙协议总结.pdf》,不知道是哪位大佬写的,非常详细,而且通俗易懂,所以这里我就不献丑了!当然我个人也是抓了一份协议的数据进行了详细的分析,我这里贴一部分,详细的大家去网盘链接里下载!ATT_GATT协议数据分析下面我们将对ATT完整的一次建立过程进行...原创 2019-03-21 15:59:35 · 3289 阅读 · 0 评论 -
蓝牙学习笔记之HFP协议(六)
目录HFP协议浅述HFP简介角色HFP支持的特性AT指令介绍HFP控制交互流程建立服务层连接HFP协议数据分析HFP协议浅述在开始学习该协议之前,先说一下学习该协议的关键点:弄清该协议的应用场景,协议中定义的两个角色AG和HF 两个设备建立hfp连接的流程 基于AT指令集的控制-反馈机制,不知道AT指令集去看3GPP的电话协议HFP简介HF...原创 2019-02-15 20:28:33 · 9948 阅读 · 4 评论 -
蓝牙学习笔记之AVDTP_A2DP协议(七)
目录AVDTP协议简述AVDTP简介常用术语及定义AVDTP协议架构信道通讯流程信道通讯格式以及举例信道消息的格式信道交互实现举例数据传输流程基础服务报告服务恢复服务混合服务AVDTP协议数据分析AVDTP协议简述首先说一下该协议需要掌握的要点:弄清该协议的应用场景 协议中定义的两个角色INT和ACP 弄清什么是信道通讯及...原创 2019-02-18 18:49:56 · 9668 阅读 · 10 评论 -
蓝牙学习笔记之AVCTP_AVRCP协议(八)
目录AVCTP协议简述AVCTP简介Avctp协议数据格式无分包数据格式有分包数据格式AVRCP协议简述AVRCP简介Avrcp支持的特性Avrcp操作流程Avrcp定义的控制指令AVRCP协议数据交互格式获取TG所具有的能力(GetCapabilities)AVCTP_AVRCP协议数据分析AVCTP协议简述学习要点:avctp...原创 2019-02-19 12:56:56 · 12250 阅读 · 2 评论 -
蓝牙学习笔记之OBEX_PBAP协议(九)
目录OBEX_PBAP协议概览OBEX协议简介Obex对象模型(Object Model)Obex标题(Headers)标题描述(Header descriptions)Obex会话协议(Session Protocol)请求格式回复格式PBAP协议简介Pbap对象和格式对象类型对象实体PBAP特征PBAP功能举例PullPhoneB...原创 2019-02-19 19:52:41 · 4598 阅读 · 3 评论 -
蓝牙学习笔记之蓝牙架构(十)
目录写在前面简介核心系统架构主机(host)架构模块BR/EDR/LE控制器架构AMP控制器架构数据传输架构核心运输承载传输架构实体BR/EDR通用数据包LE通用数据包物理信道BR/EDR物理信道LE物理信道物理链路逻辑链路与逻辑传输L2CAP信道蓝牙安全概述安全架构写在前面 ...原创 2019-07-14 15:01:41 · 2578 阅读 · 0 评论 -
蓝牙学习笔记之GAP协议(十一)
目录协议简述规范定义的角色基于BR/EDR物理链路的角色基于LE物理链路的角色用户接口方面的定义及术语蓝牙地址蓝牙设备名称蓝牙pin码蓝牙设备类型外观特性配对工作模式--BR/EDR链路发现能力模式禁止可发现模式受限可发现模式通用可发现模式连接能力模式不可连接模式可连接模式可绑定模式不可绑定模式不可绑定模式...原创 2019-07-15 19:21:49 · 3114 阅读 · 3 评论 -
蓝牙学习笔记之LMP协议(十二)
协议简述链路管理器协议(LMP)用于控制和协商两个设备之间蓝牙连接操作的所有方面。这包括逻辑传输和逻辑链路的设置和控制,以及物理链路的控制。链路管理器协议用于在两个设备上的链路管理器(LM)之间进行通信。所有LMP消息应仅适用于发送和接收设备之间的物理链路和相关逻辑链路以及逻辑传输。该协议由一系列消息组成,这些消息应通过两个设备之间的ACL-C或ASB-C逻辑链路传输。LMP消息应由L...原创 2019-07-14 18:16:27 · 4764 阅读 · 0 评论 -
蓝牙学习笔记之安全规范(SS)(十三)
目录写在前面规范简述传统配对密钥管理密钥类型密钥生成Kinit生成单元密钥KA生成组合密钥KAB生成加密密钥KC生成主密钥Kmaster生成传统配对加密(E0)加密概念传统配对认证安全简单配对1阶段:公共密钥交换2阶段:认证阶段1认证阶段1:数字比较协议认证阶段1:带外协议认证阶段1:密钥输入协...原创 2019-07-14 18:49:24 · 819 阅读 · 0 评论 -
蓝牙学习笔记之SMP协议(十四)
目录写在前面SM规范简述安全管理器加密工具配对流程安全属性IO功能加密密钥大小配对算法低功耗蓝牙安全密钥和值的定义分发密钥的生成密钥分配安全管理器会话协议介绍命令格式写在前面安全规范协议,主要是描述LE控制器设备配对、认证、加密等过程进行规定,同时也对相关算法进行了说明。低功耗蓝牙的安全管理经历了几个阶段,L...原创 2019-07-14 20:16:43 · 3411 阅读 · 0 评论 -
项目使用说明(一)
目录环境说明硬件环境方式一方式二软件环境驱动替换安装vs2017企业版本使用说明环境说明硬件环境方式一选择使用蓝牙dongle,比如IVT的千月dongle,主要是为了提供蓝牙控制器端的支持方式二如果笔记本电脑自带蓝牙功能,可以直接使用软件环境驱动替换如上图,当插入dongle之后,我的电脑总共有两个蓝牙设备,如果想用千月作为...原创 2020-01-05 23:43:38 · 1405 阅读 · 7 评论 -
做蓝牙接收(二)
SDK简述首先我先简述一下整个开源sdk的目录结构:3rd-party:放的是各种算法,包括加密,音频编解码等等app(原example):各个协议的运用例程,本来各个例程之间是分离的,只能单独验证,这里我进行了整合,使之可以同时运行chipset:芯片相关,蓝牙厂商可以自定义一些hci指令,所以这里是为了适配蓝牙不同厂商的指令,我测试用的dongle是csr的,所以这里需要说明一下platform:平台相关,涉及到系统时钟以及任务的调度,这里是用的windows平台port:主原创 2020-06-26 21:59:25 · 823 阅读 · 0 评论 -
做蓝牙发射(三)
上篇我们介绍了如何做为蓝牙接收设备运行,这篇我们继续介绍作为蓝牙发射设备运行!这里所说的蓝牙发射是指hfp ag,audio source,spp client,gatt client。同样,打开stack_config.h,修改宏定义,打开APP_TYPE_CENTRAL由于是做发射,这里只初始化了接收部分,涉及的应用应用程序为a2dp_source,hfp_ag,spp_client,le_streamer_client,相关接口我已经做了封装,并汇集到app.c中,请自行查阅。运行原创 2020-06-26 22:17:29 · 1318 阅读 · 2 评论 -
GUI说明(四)
GUI是基于vs2017的MFC实现的主界面:主界面的相关控件都是在btstack_demoDlg.cpp中实现,包括蓝牙搜索显示,连接等,如下图所示:协议调试界面在主界面中点击profile test,会进入各个协议操作的GUI这里我用propsheet的方式进行绘制,每一页为一个单独的property sheet,初始化的时候,会将app_display函数一回调的方式注册给底层,当底层有事件上报时,根据不同的事件,分发给对应的sheet进行相应的ui显示。音频处理音原创 2020-06-26 23:12:44 · 619 阅读 · 0 评论