Bluetooth Spec【0】蓝牙核心架构

  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

。。。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录Day51 99. 岛屿数量,99. 岛屿数量,100. 岛屿的最大面积。

1.岛屿数量深搜 卡码网题目链接(ACM模式)(opens new window) 题目描述: 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接…

【机器学习与数据挖掘实战】案例06:基于Apriori算法的餐饮企业菜品关联分析

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支,专注于让计算机系统通过数据学习和改进。它利用统计和计算方法,使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数据集中发现模式、关联…

突破传统,探索单页网站的强大潜力!

单页网站简单、直接,而且设计通常令人惊叹,非常适合展示关键信息而不会让访问者不知所措。 然而,构建单页网站有其自身的挑战,尤其是在 SEO 方面。由于内容数量有限且针对特定关键字的页面较少,可能很难在 SERP 中进行…

攻防世界web新手第四题easyphp

<?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 6000000 && strlen($a) < 3){if(isset($b) && 8b184b substr(md5($b),-6,6)){$key1 1;}else{die("Emmm...再想想&quo…

Python大数据可视化:基于Python的王者荣耀战队的数据分析系统设计与实现_flask+hadoop+spider

开发语言&#xff1a;Python框架&#xff1a;flaskPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 比赛信息管理 看板展示 系统管理 摘要 本文使用Python与…

【已解决】pyinstaller打包ico图片报错:OSError: [WinError 225] 无法成功完成操作,因为文件包含病毒或潜在的垃圾软件。

起因&#xff1a; pyinstaller加上 --icon 参数打包时报错。 命令如下&#xff1a; 解决&#xff1a; 关闭 Windows 的病毒防护即可&#xff0c;步骤如下。 点屏幕右下角通知栏&#xff0c;进入“病毒和威胁防护”&#xff1a; 打开&#xff1a; 关闭实时保护&#xff08…

Cloudflare 边缘网络架构:无处不在的 BPF-2019

大家觉得有意义和帮助记得及时关注和点赞!!! 译者序边缘网络DDos Mitigation负载均衡TCP/UDP Socket DispatchSOCKMAPPrometheus - ebpf_exporter无处不在的 eBPF 边缘网络 Cloudflare 的服务器运行 Linux 系统。 我们的数据中心分为两类&#xff1a; 大的“核心”数据中心&a…

智慧园区小程序开发制作功能介绍

智慧园区小程序开发制作功能介绍 智慧园区小程序系统作为一款面向园区企业的一站式线上服务平台&#xff0c;可为企业提供数智化的园区办公服务。智慧园区小程序功能介绍 1、园区公告、政策信息查看足不出户掌握最新动态&#xff0c;“园区公告、政策信息”等信息。首页点击对应…

基于 Python Django 的农产品销售系统的研究与实现

大家好&#xff0c;我是stormjun&#xff0c;今天为大家带来的是基于 Python Django 的农产品销售系统的研究与实现。该系统采用 Python 语言 开发&#xff0c;MySql 作为数据库&#xff0c;系统功能完善 &#xff0c;实用性强 &#xff0c;可供大学生实战项目参考使用。 博主介…

WEB开发 - Flask 入门:Jinja2 模板语法进阶 Python

在上一阶段&#xff0c;我们一起学习了基于Python地 web框架Flask&#xff0c;并且初步了解了这个框架有一种渲染方式叫做 模板语法&#xff0c;今天&#xff0c;我们一起再来深入地了解和学习这个叫做Jinja2地模板语法。 WEB开发 - Flask 入门&#xff1a;由浅入深地带你学习…

基于SpringBoot在线音乐系统平台功能实现十八

一、前言介绍&#xff1a; 1.1 项目摘要 随着互联网技术的迅猛发展和普及&#xff0c;人们对音乐的获取和欣赏方式发生了巨大改变。传统的音乐播放方式&#xff0c;如CD、磁带或本地下载的音乐文件&#xff0c;已经不能满足用户日益增长的需求。用户更希望通过网络直接获取各…

【YOLOv3】源码(train.py)

概述 主要模块分析 参数解析与初始化 功能&#xff1a;解析命令行参数&#xff0c;设置训练配置项目经理制定详细的施工计划和资源分配日志记录与监控 功能&#xff1a;初始化日志记录器&#xff0c;配置监控系统项目经理使用监控和记录工具&#xff0c;实时跟踪施工进度和质量…

[原创](Modern C++)现代C++的第三方库的导入方式: 例如Visual Studio 2022导入GSL 4.1.0

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共23年] 职业生涯: 21年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse…

单片机与MQTT协议

MQTT 协议简述 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议&#xff09;&#xff0c;是一种基于发布 / 订阅&#xff08;publish/subscribe&#xff09;模式的 “轻量级” 通讯协议&#xff0c;该协议构建于 TCP/IP 协议上&#xf…

力扣矩阵-算法模版总结

lc-73.矩阵置零-(时隔14天)-12.27 思路&#xff1a;(23min22s) 1.直接遍历遇0将行列设0肯定不行&#xff0c;会影响后续判断&#xff0c;题目又要求原地算法&#xff0c;那么进一步考虑是否可以将元素为0&#xff0c;其行列需要设为0的位置给存储下来&#xff0c;最后再遍历根据…

C++的第一个程序

前言 在学习c之前&#xff0c;你一定还记得c语言的第一个程序 当时刚刚开始进行语言学习 因此告诉到&#xff0c;仅仅需要记住就可以 #include <stdio.h>int main(){printf("Hello World");return 0; }而对于c中的第一个程序&#xff0c;似乎有所变化 C的…

使用jvisualvm远程连接Linux服务器上java进程

使用jvisualvm连接远程服务器有两种方式&#xff1a;JMX和jstatd&#xff0c;两种方式都不能完美支持所有功能&#xff0c;例如JMX不支持VisualGC&#xff0c;jstatd不支持CPU监控&#xff0c;实际使用可同时配置上并按需选用。 一、jstatd连接 1、在Linux中配置远程授权 要监…

麒麟操作系统服务架构保姆级教程(六)部署PHP环境

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 本来小屁打算直接写LNMP架构的&#xff08;LB负载均衡NginxmysqlPHP&#xff09;&#xff0c;但是发现之前用过的包是红帽的吗&#xff0c;在麒麟上没法直接部署PHP&#xff0c;所以小屁用两天的时间…

SpringCloudAlibaba升级手册-nacos问题记录

目录 一、前言 二、升级过程 1.问题 2.原因 3.出处 4.理论解决 5.测试环境问题 6.Spring Cloud Alibaba版本对比 7. Spring Cloud Alibaba适配组件版本对比 8.降低Spring Cloud版本 9.SpringCloud与SpringBoot兼容对比表 10.naocs-client版本对比 三、最终解决 一…

[SAP ABAP] 程序备份

备份当前程序到本地的方式如下&#xff1a; 1.复制粘贴 Ctrl A 、Ctrl V 2.【实用程序】|【更多实用程序】|【上载/下载】|【下载】 ​ 3.快捷键&#xff0c;支持多种格式导出(.abap .html .pdf 等) 在事务码SE38(ABAP编辑器)屏幕右下角&#xff0c;点击【Options选项】图…