我是靠谱客的博主 矮小乌冬面,最近开发中收集的这篇文章主要介绍蓝牙基础(三):蓝牙协议栈总体认知蓝牙基础(三):蓝牙协议栈总体认知,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

蓝牙基础(三):蓝牙协议栈总体认知

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 蓝牙架构脑图

在这里插入图片描述

最后

以上就是矮小乌冬面为你收集整理的蓝牙基础(三):蓝牙协议栈总体认知蓝牙基础(三):蓝牙协议栈总体认知的全部内容,希望文章能够帮你解决蓝牙基础(三):蓝牙协议栈总体认知蓝牙基础(三):蓝牙协议栈总体认知所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部