Bluetooth Spec【0】蓝牙核心架构

news2025/7/18 6:34:45

  1. 蓝牙核心系统由一个主机、一个主控制器和零个或多个辅助控制器组成
  2. 蓝牙BR/ EDR核心系统的最小实现包括了由蓝牙规范定义的四个最低层和相关协议,以及一个公共服务层协议;服务发现协议(SDP)和总体配置文件要求在通用访问配置文件(GAP)中指定。BR/EDR核心系统包括对备用MAC/PHYs(AMPs)的支持,包括一个AMP管理器协议和支持外部引用的MAP/PHYs的协议适配层(PALs)。
  3. 蓝牙LE核心系统的最小实现涵盖了由蓝牙规范定义的四底层和相关协议以及两个公共服务层协议;安全管理器(SM)和属性协议(ATT)以及总体配置文件要求在通用属性配置文件(GATT)和GAT配置文件(GAP)中指定。结合蓝牙BR/EDR和LE的实现包括上面描述的两个最小实现。
  4. 一个完整的蓝牙应用程序需要许多额外的服务和更高级层次的协议,这些协议在蓝牙规范中定义,但这里没有描述。核心系统架构如图2.1所示。

  • 链路管理(Link Manager),链路控制(Link Controller),经典蓝牙无线射频模块(BR/EDR Radio blocks)构成了经典蓝牙控制器(BR/EDR Controller)。
  • AMP PAL),(AMP MAC),(AMP PHY)构成了(AMP Controller)。
  • 链路管理(Link Manager),链路控制(Link Controller),低功耗射频模块(LE Radio)构成了低功耗控制器(LE Controller)。
  • L2CAP, SDP and GAP 模块构成了BR/EDR主机。
  • L2CAP, SMP, ATT(Attribute protocol), GAP and GAP(Generic Attribute Profile)/ (GATT) 模块构成了LE主机。

2.1.1 Host architectural blocks

2.1.1.1 Channel manager

通道管理器负责创建、管理和关闭用于传输服务协议和应用程序数据流的L2CAP通道。通道管理器使用L2CAP协议与远程(对等)设备上的通道管理器进行交互,以创建这些L2CAP通道,并将其端点连接到适当的实体。通道管理器与其本地链路管理器或AMP PAL进行交互,以创建新的逻辑链路(如有必要),并配置这些链路,以为正在传输的数据类型提供所需的服务质量。

2.1.1.2 L2CAP resource manager

L2CAP资源管理器块负责管理向基带提交PDU(协议数据单元)片段的顺序以及通道之间的一些相对调度,以确保具有QoS承诺的L2CAP通道不会由于控制器资源耗尽而被拒绝对物理通道的访问。这是必需的,因为架构模型并不假定一个控制器具有无限的缓冲空间,或者假设HCI是一个具有无限带宽的管道。

L2CAP资源管理器还可以执行流量一致性监管,以确保应用程序在其协商的QoS设置的范围内提交L2CAPsdu。一般的蓝牙数据传输模型假定行为良好的应用程序,并没有定义期望实现如何处理这个问题。

2.1.1.3 Security Manager Protocol

安全管理器协议(SMP)是用于生成加密密钥和身份密钥的点对点协议。该协议在一个专用的固定的L2CAP通道上运行。SMP块还管理加密密钥和身份密钥的存储,并负责生成随机地址,并将随机地址解析为已知的设备身份。SMP块直接与控制器进行接口,以提供在加密或配对过程中用于加密和身份验证的存储密钥。此块仅在LE系统中使用。BR/EDR系统中的类似功能也包含在控制器中的链接管理器块中。SMP功能在LE系统上的主机中,以降低仅LE控制器的实现成本。

2.1.1.4 Attribute Protocol

属性协议(ATT)块实现了属性服务器和属性客户端之间的点对点协议。ATT客户端通过专用的固定L2CAP通道与远程设备上的ATT服务器进行通信。ATT客户端向ATT服务器发送命令、请求和确认。ATT服务器发送响应、通知和向客户指示。这些ATT客户端命令和请求提供了一种在具有ATT服务器的对等设备上读取和写属性值的方法。

2.1.1.5 AMP Manager protocol

AMP管理器是使用L2CAP与远程设备上的对等AMP管理器进行通信的一个层。它还直接与AMP PAL接口,用于AMP控制的目的。AMP经理负责发现远程AMP)并确定其可用性。它还收集有关远程AMP)的信息。此信息用于设置和管理AMP物理链接。AMP管理器使用一个专用的L2CAP信令通道与远程AMP管理器(s)通信。

2.1.1.6 Generic Attribute Profile

通用属性配置文件(GATT)块表示属性服务器的功能,以及可选择的属性客户端的功能。该配置文件描述了在属性服务器中使用的服务、特征和属性的层次结构。该块提供了用于发现、读取、写入和指示服务特性和属性的接口。GATT用于LE设备上的LE配置文件服务发现。

2.1.1.7 Generic Access Profile

通用访问配置文件(GAP)块 表示所有蓝牙设备通用的基本功能,如传输、协议和应用程序配置文件所使用的模式和访问过程。GAP服务包括设备发现、连接模式、安全性、认证、关联模型和服务发现。

2.1.2 BR/EDR/LE Controller architectural blocks

2.1.2.1 Device manager

设备管理器是基带中用来控制蓝牙设备的一般行为的功能块。它负责蓝牙系统中与数据传输没有直接关系的所有操作,如查询附近是否存在的蓝牙设备,连接到蓝牙设备,或使本地蓝牙设备可被其他设备发现或连接。

设备管理器请求从基带资源控制器访问传输介质,以执行其功能。设备管理器还控制由许多HCI命令所暗示的本地设备行为,例如管理设备本地名称、任何存储的链接键和其他功能。

2.1.2.2 Link manager

链接管理器负责创建、修改和发布逻辑链接(如果需要,还有它们相关的逻辑传输),以及更新与设备之间的物理链接相关的参数。链路管理器通过使用BR/EDR中的链路管理器协议(LMP)和LE中的链路层协议(LL)与远程蓝牙设备中的链路管理器进行通信来实现这一点。

LM或LL协议允许在需要时创建新的逻辑链路和逻辑传输,以及链路和传输属性的一般控制,如逻辑传输启用加密,适应物理链路的传输功率,或调整逻辑链路BR/EDR中的QoS设置。

2.1.2.3 Baseband resource manager

基带资源管理器负责对无线电媒体的所有访问。它有两个主要功能。它的核心是一个调度器,它将物理通道上的时间授予所有已经协商了访问合同的实体。另一个主要功能是与这些实体协商访问合同。访问合同实际上是一种对提供为用户应用程序提供预期性能所需的特定QoS的承诺。

访问合同和调度函数必须考虑到需要使用主控制器的任何行为。这包括(例如)通过逻辑链路和逻辑传输的连接设备之间的正常交换数据,以及使用无线电介质进行查询、进行连接、可发现或可连接,或在使用自适应跳频模式期间从未使用的载波中获取读数。

在BR/EDR系统中的某些情况下,逻辑链路的调度会导致将逻辑链路更改为与以前使用的物理通道不同的物理信道。这可能是(例如)由于参与散点网,一个定期查询功能,或页面扫描。当物理通道没有与时间槽对齐时,资源管理器还会考虑原始物理通道上的插槽和新物理通道上的插槽之间的重新排列时间。在某些情况下,由于两个物理通道被用作相同的设备时钟,插槽将自然对齐。

2.1.2.4 Link Controller

链路控制器负责对数据有效负载和与物理通道、逻辑传输和逻辑链路相关的参数对蓝牙数据包进行编码和解码。链路控制器执行BR/EDR中的链路控制协议信令和LE中的链路层协议(与资源管理器的调度功能紧密结合),用于通信流控制和确认和重传请求信号。对这些信号的解释是与基带数据包相关联的逻辑传输的一个特征。链路控制信令的解释和控制通常与资源管理器的调度器相关联。

2.1.2.5 PHY

PHY块负责传输和接收物理信道上的信息包。基带和PHY块之间的控制路径允许基带块控制PHY块的定时和频率载波。PHY块将数据流从物理通道和基带转换为所需的格式。

2.1.2.6 Isochronous Adaptation Layer

等时自适应层(ISOAL)使上层能够以灵活的方式向链路层发送或接收等时数据,使得上层中的数据包的大小和间隔可以与链路层中的数据包的大小和间隔不同。ISOAL使用碎片/重组或分割/重组操作将上层数据单元转换为底层数据单元(或相反)。

2.1.3 AMP Controller architectural blocks

。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2267261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PCA降维MATLAB代码解释及应用场景

代码整体功能概述 这段代码主要实现了以下几个功能:首先读取两个 CSV 文件中的数据,对数据进行归一化处理后合并,接着绘制原始数据的散点图进行可视化展示,然后应用主成分分析(PCA)算法对合并后的数据进行…

深入理解Redis

1.数据结构类型 数据结构-SDS-简单动态字符串 Redis构建了一种新字符串结构,称为简单动态字符串(Simple Dynamic String),简称SDS。 Redis未直接使用C语言的字符串,如:char* s = "hello",本质是字符数组: {h, e, l, l, o, \0}。因为C语言字符串存在很多问题…

数字后端培训项目Floorplan常见问题系列专题续集1

今天继续给大家分享下数字IC后端设计实现floorplan阶段常见问题系列专题。这些问题都是来自于咱们社区IC后端训练营学员提问的问题库。目前这部分问题库已经积累了4年了,后面会陆续分享这方面的问题。 希望对大家的数字后端学习和工作有所帮助。 数字后端项目Floor…

【TaskBasics】- KRTS C++示例精讲(3)

TaskBasics示例讲解 目录 TaskBasics示例讲解结构说明 项目打开请查看【BaseFunction精讲】。 结构说明 TaskBasics:应用层程序,主要用于人机交互、数据显示、内核层数据交互等; TaskBasics.h : 数据定义TaskBasics.cpp&#xff…

jenkins集成工具(一)部署php项目

目录 什么是CI 、CD Jenkins集成工具 一、Jenkins介绍 二、jenkins的安装和部署 环境部署 安装jenkins 安装gitlab 配置镜像源进行安装 修改密码 安装git工具 上传测试代码 Jenkins部署php项目wordpress 发布php代码 安装插件 测试代码发布 实现发布成功发送邮件…

在交叉编译中,常见的ELF(elf)到底是什么意思?

ELF 是 Executable and Linkable Format 的缩写,中文翻译为“可执行与可链接格式”。它是一种通用的文件格式,主要用于存储可执行文件、目标文件(编译后的中间文件)、动态库(.so 文件)以及内存转储文件&…

图神经网络_图嵌入_Struc2Vec

0 背景 之前的node embedding方式,都是基于近邻关系,但是有些节点没有近邻,也有结构相似性。如图中的u、v节点。 struc2vec算法适用于捕获结构相似性。 1 相似度(距离)计算 1.1 公式 f k ( u , v ) f k − 1 ( u …

Linux内核中Typec CC检测原理及主从模式切换原理

一,Typec CC引脚定义 可以看到,数据传输主要有TX/RX两组差分信号,CC1和CC2是两个关键引脚,作用很多: • 探测连接,区分正反面,区分DFP和UFP,也就是主从 • 配置Vbus,有US…

uniapp通过v-if进行判断时,会出现闪屏?【已解决】

1.问题:按钮切换时,通过v-if来判断,会出现闪烁情况,影响用户体验 2.v-if 闪烁问题可能的原因 ‌条件切换频繁‌:如果 v-if 指令的条件在短时间内频繁切换,会导致元素不断被销毁和重新创建,从而…

webrtc获取IceCandidate流程

在WebRTC(Web Real-Time Communication)中,ICECandidate是一个关键概念,它用于描述在建立点对点(P2P)连接时可以考虑的潜在通信端点。以下是关于WebRTC中ICECandidate的详细解释: 一、ICECandidate的定义 ICECandidate对象通常包含以下关键属性: foundation:用于唯一…

计算机网络习题(第1章 概论 第2章 数据通信基础)

第1章 概论 1、计算机网络 2、互联网 3、计算机网络体系结构 分层模型 OSI/RM 7层模型 TCP/IP 5层模型 协议、PDU、SDU、SAP等术语 数据封装(计算) 第2章 数据通信基础 1、数据通信系统组成 2、主要性能指标 数据传输速率 码元速率 时延 3…

Springboot项目下面使用Vue3 + ElementPlus搭建侧边栏首页

Springboot项目下面、在html 页面 Vue3 ElementPlus 搭建侧边栏首页 1、效果图 2、static 文件下面的项目结构 3、代码实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>首页</title><…

【C++11】可变参数模版

目录 一、可变参数模版 1.1 基本语法及原理 1.2 包拓展 1.3 empalce系列接口 一、可变参数模版 之前我们在C语言中就学过可变参数&#xff0c;但是模版类型是固定的&#xff0c;怎么变呢&#xff1f;这里c11就给出了可变参数模版 1.1 基本语法及原理 C11支持可变参数模…

FFmpeg在python里推流被处理过的视频流

链式算法处理视频流 视频源是本地摄像头 # codinggbk # 本地摄像头直接推流到 RTMP 服务器 import cv2 import mediapipe as mp import subprocess as sp# 初始化 Mediapipe mp_drawing mp.solutions.drawing_utils mp_drawing_styles mp.solutions.drawing_styles mp_holis…

我的秋招总结

我的秋招总结 个人背景 双非本&#xff0c;985硕&#xff0c;科班 准备情况 以求职为目的学习Java的时间大概一年。 八股&#xff0c;一开始主要是看B站黑马的八股文课程&#xff0c;背JavaGuide和小林coding还有面试鸭。 算法&#xff0c;250&#xff0c;刷了3遍左右 项目&…

C++:单例模式

创建自己的对象&#xff0c;同时确保对象的唯一性。 单例类只能有一个实例☞静态成员static☞静态成员 必须类外初始化 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例 静态成员类内部可以访问 构造函数私有化☞构造函数私有外部不能创建&#x…

RBTree(红黑树)

目录 红黑树的概念 红黑树的性质 红黑树节点的定义 红黑树的插入 1. 按照二叉搜索的树规则插入新节点 2. 检测新节点插入后&#xff0c;红黑树的性质是否造到破坏 红黑树的检测 红黑树的删除 红黑树和AVL树的比较 红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&…

linux自动化一键批量检查主机端口

1、准备 我们可以使用下面命令关闭一个端口 sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP我关闭的是22端口&#xff0c;各位可以关其它的或者打开其它端口测试&#xff0c;谨慎关闭22端口&#xff01;不然就会像我下面一样握手超时&#x1f62d;&#x1f62d;&…

Python大数据可视化:基于python大数据的电脑硬件推荐系统_flask+Hadoop+spider

开发语言&#xff1a;Python框架&#xff1a;flaskPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 价格区间界面 用户信息界面 品牌管理 笔记本管理 电脑主机…

AEO海关认证的注意事项

AEO海关认证的注意事项繁多且至关重要&#xff0c;企业需细致准备&#xff0c;确保万无一失。 首先&#xff0c;企业需深入研读相关政策文件&#xff0c;如《中华人民共和国海关注册登记和备案企业信用管理办法》及《海关高级认证企业标准》&#xff0c;以政策为指引&#xff0…