概述
蓝牙基础(三):蓝牙协议栈总体认知
0 前言
初入门经典蓝牙学习,网上资料参差不齐,本博客旨在整理自己的一些总结内容,建立整体功能认识,以便后续深入学习。
1 蓝牙整体架构
蓝牙的整体核心架构如下图
1.1 蓝牙构成
- 蓝牙的构成可分为主机(Host)和控制器(Controller),控制器由可分为主控制器和辅助控制器。
- 主机是非核心配置文件下方和主机控制器接口(HCI)上方的所有层,控制器是HCI层以下的所有层。
- 从图中可以看出,整个蓝牙框架中有三种控制器,分别是BR/EDR Controller、LE Controller和AMP Controller。这里主要关注前两种,经典蓝牙控制器和低功耗蓝牙控制器
注意主机定义中的非核心文件配置Profile
1.2 蓝牙核心系统
蓝牙核心系统,也就是最小系统,这里分BT和BLE进行讨论。
对于BT,网上也有BR/EDR的叫法,这里暂称为BT,代表经典蓝牙,与BLE低功耗蓝牙相区分
还是以上面的整体框架图为准,不管是BT还是BLE,其最小系统都可分为
- 底层硬件模块/底层协议
- 中间协议层/核心协议层
(1)底层硬件模块 / 底层协议
这一部分对应着图中的控制器Controller部分
BT Controller:链路管理器(Link Manager)、基带与链路控制器(BaseBand&Link Controller)以及射频(BT Radio)
BLE Controller:链路层(Link Layer)和物理层(PHY)
(2)中间协议层 / 核心协议层
BT:逻辑链路控制和适配层协议(L2CAP)、服务发现协议(SDP)、通用访问协议(GAP)
BLE:逻辑链路控制和适配层协议(L2CAP)、安全管理器(SM)、属性协议(ATT)、通用属性协议(GATT)和通用访问协议(GAP)
此外,还有主机控制器接口(HCI)。
上述也可以从主机Host 和 控制器Controller 的角度理解
对于BT:
最小主机:L2CAP、SDP、GAP
控制器:LM、BB&LC、RF
对于BLE:
最小主机:L2CAP、ATT、GATT、SM、GAP
控制器:LL、PHY
1.3 蓝牙协议分层
软件上总是分层设计,比如之前在嵌入式系统提到的硬件层—硬件驱动层—操作系统层—应用层等。
在蓝牙协议栈中也是分层设计的,但不同的人有不同的理解,分层也有所不同,这里所述的分层,有资料总结的结论,也有博主自己的理解。
蓝牙协议栈分层结构如下
- 应用层
- 高层协议
- 核心协议
- 底层协议
有资料将“高层协议”和“核心协议”统称为中间协议层
这里博主将下图中的高层协议分拆为了高层协议和核心协议,为什么这么分呢?
核心协议层是上面提到的L2CAP、SDP、GAP等基础协议,这些协议是蓝牙系统不可缺少的基本构成协议。也就是说不管开发过程中如何裁剪蓝牙协议栈,这些协议都是包含在内的
高层协议则可以提供更多的服务与功能,比如通话使用的HFP、音频播放使用的A2DP、AVRCP、串口透传SPP协议等
1.5 蓝牙架构脑图
最后
以上就是矮小乌冬面为你收集整理的蓝牙基础(三):蓝牙协议栈总体认知蓝牙基础(三):蓝牙协议栈总体认知的全部内容,希望文章能够帮你解决蓝牙基础(三):蓝牙协议栈总体认知蓝牙基础(三):蓝牙协议栈总体认知所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复