当前位置: 首页 > article >正文

BLE 协议栈(GAP,GATT;HCI,LL,PHY)

文章目录蓝牙发展历程蓝牙协议分层蓝牙协议栈架构一、主协议层(Host)1.1 GAP(Generic Access Profile,通用访问规范)1.2 GATT(Generic Attribute Profile,通用属性规范)1.3 SM(Security Manager,安全管理)1.4 ATT(Attribute Protocol,属性协议)1.5 L2CAP(Logical Link Control and Adaptation Protocol,逻辑链路 控制 和 适配协议)二、控制层(Controller)2.1 主机控制器(HCI,Host Controller),也称为 设备管理器2.2 链路层(LL,Link Layer)2.3 物理层(PHY)蓝牙(Bluetooth®):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换。蓝牙由蓝牙技术联盟(SIG,Special Interest Group)管理。蓝牙的波段为2.4GHz短距离无线电频段。蓝牙发展历程序号时间标准特性12010年6月蓝牙4.0(Bluetooth Smart)极低的运行和待机功耗, 支持BLE(低功耗蓝牙)22013年12月蓝牙4.1(软件更新)支持与 LTE 共存,允许设备同时作为中心和外围角色,引入IPv6优化32014年12月蓝牙4.2(硬件更新)(1)实现物联网:支持灵活的互联网连接选项(IPv6/6LoWPAN或Bluetooth Smart网关)。(2)让Bluetooth Smart 更智能:业界领先的隐私权限、节能效益和堪称业界标准的安全性能。(3)让Bluetooth Smart 更快速:吞吐量速度和封包容量提升。42016年6月16日蓝牙5.0(1)针对低功耗设备, 有着更广的覆盖范围和相较现在四倍的速度提升。(2)传输速度上限为24Mbps, 是之前4.2LE版本的两倍(codePHY:500Kbps / 125Kbps)(3)有效工作距离可达300米, 是之前4.2LE版本的4倍(2M PHY)(4)为应对移动客户端需求, 其功耗更低, 且兼容老的版本。52017年7月19日-开始全面支持mesh网状网,实现多对多通信62019年1月28日蓝牙5.1添加方向定位功能,实现厘米级定位;优化GATT缓存72020年1月15日蓝牙5.2引入LE音频(LE Audio),支持多重串流和广播音频;新增增强版ATT82021年7月13日蓝牙5.3提升稳定性、节能性和安全性;优化信道选择和广播设置92023年1月31日蓝牙5.4支持带响应的广播(PAwR),为电子价签等应用提供标准化协议102024年8月27日蓝牙6.0引入信道探测实现高精度测距;优化数据包格式和链路层性能蓝牙协议分层蓝牙协议栈架构物理层射频控制器层 Controller主机控制器接口 HCI主机层 Host应用层 Application应用程序(健康/家居/音频等)GAP通用访问规范GATT通用属性规范SM安全管理器ATT属性协议L2CAP逻辑链路控制与适配协议HCI主机控制器接口LL链路层PHY物理层2.4GHz 射频一、主协议层(Host)1.1 GAP(Generic Access Profile,通用访问规范)GAP是应用层能够直接访问BLE协议栈的最底层,它包括管理广播和连接事件的有关参数。GAP模块代表了所有蓝牙设备的共用基础功能,如传输,协议或者应用规范所使用的模式和访问过程。GAP的服务包括设备发现,连接方式,安全,认证,关联模型和服务发现等。GAP工作流程:主机/集中器(Master/Central)从机/外围设备(Slave/Peripheral)主机/集中器(Master/Central)从机/外围设备(Slave/Peripheral)进入广播状态扫描窗口内监听loop[广播事件]连接建立数据交换(连接状态)设置广播参数(间隔20ms-10.24s)广播数据包(31字节)扫描请求(可选)扫描响应(31字节,可选)连接请求1、角色:为了创建和维护一个BLE连接,引入角色这一概念。一个BLE设备不是主机Master(集中器) 角色,就是从机Slave(外围设备) 角色,这是根据是谁发起这个连接来确定的:主机Master设备总是连接的发起者,而从机Slave总是被连接者。这个访问与连接过程,都在通用访问规范(GAP)进行实现的。2、广播advertising:主机能够与从机建立连接,从机必须处于广播状态,它每经过一个时间间隔发送一次广播数据包,这个时间间隔称为广播间隔,它的范围是20ms到10.24s。广播间隔影响建立连接的时间。主机发送一个连接请求来发起连接之前,必须接收到一个广播数据包。从机发送一个广播数据包之后一小段时间内,只监听连接请求。一个广播数据包最多能携带31个字节的数据,它通常包含:用户可读的名字,关于设备发送数据包的有关信息,用于表示此设备是否可被发现的标志 等类似的标志。当主机接收到广播数据包后,可能发送请求更多数据包的请求,称为扫描回应。如果它被设置成主动扫描,从机将会发送一个扫描回应作为对主机请求的回应,扫描回应也最多可以携带31字节的数据。广播,包括扫描请求和扫描回应,必须在远离WLAN使用的2.4G频段之外的3个频率(37/38/39)上,以防止被WiFi干扰。3、扫描:主机监听广播数据包和 发送扫描请求的过程,有两个定时参数:扫描窗口和扫描间隔。4、连接:主机和从机第一次交换数据定义为连接状态。1.2 GATT(Generic Attribute Profile,通用属性规范)GATT是真正传输数据所在的层。包括了一个数据传输和存储框架以及基本操作。GATT定义了两类角色:服务器(server)和客户端(client),GATT角色无需和GAP角色绑定,但是可能由更高层的规范进行指定。GATT层次结构:ServiceProfileCharacteristic服务1Service服务2Service特性1Characteristic特性2Characteristic属性:声明Attribute句柄=0x0001UUID=0x2803属性:值Attribute句柄=0x0002UUID=0x2A00属性:描述符Attribute句柄=0x0003UUID=0x2902CCCD(1)角色:除了GAP定义了角色之外,BLE还定义了另外2种角色:GATT服务器和GATT客户端,它们完全独立于GAP的角色。提供数据的设备称为GATT服务器,访问GATT服务器而获得数据的设备称为GATT客户端。在应用中,外围设备peripheral 称为服务器(server),集中器central 作为客户端(client)。注意:一个设备可以同时作为服务器和客户端。GATT通信过程:GATT服务器(Peripheral)GATT客户端(Central)GATT服务器(Peripheral)GATT客户端(Central)组织属性表发现服务(读取UUID)返回服务列表发现特性(读取句柄)返回特性列表读取特性值返回当前值写入特性值写入响应通知/指示(值变化时)确认(仅指示)(2)GATT的规范层次:一个GATT服务器通过一个称为属性表的表格组织数据,这些数据就是真正发送的数据。属性(attribute):一个属性包含句柄、UUID、值,句柄是属性在GATT表中的索引,在一个设备中每一个属性的句柄都是唯一的。UUID包含属性表中数据类型的信息,它是理解属性表中的值的每一个字节的意义的关键信息。在一个GATT表中可能有许多属性,这些属性可能有相同的UUID。特性(characteristic):一个特性至少2个属性:一个属性用于声明,一个属性用于存放特性的值。描述符(descriptor):任何在特性中的属性不是定义为属性值就是为描述符。客户端特性配置描述符(Client Characteristic Configuration Descriptor,CCCD)服务(service)Profile(配置数据文件)1.3 SM(Security Manager,安全管理)SM负责蓝牙设备之间的配对和密钥分发,提供安全连接和数据加密功能。它定义了配对方法(如Just Works、Passkey Entry、Numeric Comparison等)以及加密密钥的生成和存储机制,确保通信的机密性和完整性。安全管理流程:响应设备(Responder)发起设备(Initiator)响应设备(Responder)发起设备(Initiator)

相关文章:

BLE 协议栈(GAP,GATT;HCI,LL,PHY)

文章目录 蓝牙发展历程 蓝牙协议分层 蓝牙协议栈架构 一、主协议层(Host) 1.1 GAP(Generic Access Profile,通用访问规范) 1.2 GATT(Generic Attribute Profile,通用属性规范) 1.3 SM(Security Manager,安全管理) 1.4 ATT(Attribute Protocol,属性协议) 1.5 L2CA…...

用COMSOL 6.1仿真光纤等波导的三维弯曲、模场分布及波束包络方法

COMSOL模型仿真光纤等波导的三维弯曲,模场分布,波束包络方法 Comsol6.1版本自建仿真模型 最近在研究光纤等波导相关的课题,发现COMSOL 6.1在波导特性仿真这块真是个强大的工具。今天就来和大家分享一下如何用它自建模型,实现对波…...

NAS玩家必备:用Docker部署超级玛丽遇到的5个典型问题及解决方案

NAS玩家必备:用Docker部署超级玛丽遇到的5个典型问题及解决方案 在NAS上通过Docker部署经典游戏《超级玛丽》本应是个轻松愉快的过程,但实际操作中不少玩家却频频踩坑。本文将聚焦五个最具代表性的技术难题,从镜像拉取失败到远程访问配置&…...

Midjourney小白必看:从Discord入门到生成第一张AI艺术图的完整指南

Midjourney小白必看:从Discord入门到生成第一张AI艺术图的完整指南 第一次接触Midjourney时,我完全被Discord的界面搞懵了——满屏的英文频道、闪烁的消息通知,还有那些看起来像黑话的斜杠命令。直到摸索出这套保姆级操作流程,才发…...

.bash_profile和.bashrc的区别及应用

总结 .bash_profile是当用户登录后被加载的文件, 随后该文件会显式调用 .bashrc. 其内容主要为设置环境变量. .bashrc是每次启动新的shell时, 或者被 .bash_profile调用时加载的文件. 其内容主要为设置功能shopt和设置别名alias, 也可用来设置环境变量. shell与bash shell是…...

基于vue+springboot+nodejs的高校教职工教师健康监护管理系统 企业员工健康管理系统

目录技术选型与架构设计核心模块划分关键实现步骤数据安全与合规测试与部署方案扩展性设计项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术选型与架构设计 前端框架:Vue.js 3.x(Composition API&…...

从零配置神州路由器IPv6路由:OSPFv3邻居建立失败的7个排查步骤

神州路由器IPv6路由实战:OSPFv3邻居建立深度排错指南 IPv6网络部署已成为企业级基础设施升级的必然选择,而OSPFv3作为IPv6环境下的动态路由协议,在实际配置过程中常会遇到邻居关系无法建立的困扰。本文将针对神州路由器平台,系统梳…...

PowerPaint-V1 Gradio Java开发实战:SpringBoot微服务集成指南

PowerPaint-V1 Gradio Java开发实战:SpringBoot微服务集成指南 1. 引言 如果你正在寻找一种将PowerPaint-V1 Gradio图像修复能力集成到Java微服务中的方法,那么你来对地方了。作为Java开发者,你可能已经注意到大多数AI模型都提供Python接口…...

若依(ruoyi)字典管理实战:如何在Thymeleaf中高效使用下拉框与单选框

若依(ruoyi)字典管理实战:Thymeleaf下拉框与单选框高效应用指南 在Java企业级开发领域,若依框架(ruoyi)凭借其完善的权限体系和丰富的功能组件,已成为众多开发团队的首选技术栈。其中,字典管理模块作为基础数据标准化的重要工具&a…...

24/7自动化助手:OpenClaw+Qwen3-32B实现定时任务

24/7自动化助手:OpenClawQwen3-32B实现定时任务 1. 为什么需要自动化定时任务? 凌晨三点,我的服务器突然宕机了。当我第二天早上发现时,已经错过了黄金恢复期。这次事故让我意识到——人类需要睡眠,但机器不需要。如…...

第七章 数组【C语言】

一、数组的概念、二、 一维数组(一)定义(二)初始化没有赋初值,B[ ]所有元素是未知的(四)存储int a0,a1,a2,a3,a4;----- 不连续的存储空间int arr[5]; ------占用连续的存储空间printf("%d\…...

【Filter / Interceptor】过滤器(Filter)与拦截器(Interceptor)全方位对比解析(附底层原理 + 核心对比表)

文章目录过滤器(Filter)与拦截器(Interceptor)系统性知识体系一、核心定位与体系总览【重点】核心对比表二、过滤器(Filter)2.1 核心定义与底层原理2.2 核心API与生命周期2.2.1 核心接口2.2.2 生命周期方法…...

避坑指南:Android多语言适配中常见的5个问题及解决方案

Android多语言适配实战:5个高频踩坑点与工程化解决方案 第一次在跨国团队接手多语言项目时,我对着西班牙语界面上显示的乱码字符发了半小时呆。那次经历让我明白,Android多语言适配远不止创建values-en文件夹那么简单。本文将分享那些官方文档…...

基于STM32单片机的智能台灯系统 [单片机]-计算机毕业设计源码+LW文档

摘要:本文设计了一种基于STM32单片机的智能台灯系统,旨在实现台灯的智能化控制,满足用户在不同环境下的照明需求。该系统以STM32F103单片机为核心,集成超声波测距、光强检测、人体感应、按键控制等多种传感器和模块。通过这些模块…...

激光雷达俯仰角正态分布曲线预测合格率

激光雷达俯仰角正态分布曲线预测合格率一、前言二、说明三、整体架构流程四、技术细节与代码分析1. 数据读取与处理 (get_data 和 plotting_parameters)2. 正态分布参数计算 (mathematics)3. 正态分布曲线构建与可视化4. 合格率计算:数值积分 (func 和 quad)五、结果…...

C#蓝牙通信实战:如何用InTheHand.Net库快速连接HC-05模块(附完整代码)

C#蓝牙通信实战:从HC-05模块连接到工业级应用开发 在物联网和智能硬件开发领域,蓝牙通信技术因其低功耗、低成本和高可靠性成为连接移动设备与嵌入式系统的首选方案。本文将深入探讨如何利用C#和InTheHand.Net库实现与HC-05蓝牙模块的高效通信&#xff0…...

AI写专著必备!深度剖析热门工具,让专著撰写如行云流水

利用AI工具撰写学术专著的探讨 撰写学术专著不仅仅是展示学术能力,更是对心理素质的一次考验。与团队合作的论文写作不同,专著的编写通常是一个人的孤独过程。从选题到构建框架,再到内容的撰写与修改,每个环节几乎都需要研究者独…...

AI专著写作新趋势!工具大集合,让学术专著创作不再繁琐

对于学术研究者来说,撰写一本学术专著并不是一次灵光乍现的成就,而是一场漫长的“持久战”。从一开始的选题想法,到逐步搭建出严谨的章节结构,再到字斟句酌地填充内容、核查文献引用,这每一步都充满了困难。研究者们不…...

分布式最优潮流:从理论到实践

分布式最优潮流关键词:网络划分;分布式光伏;集群电压控制;分布式优化;有功缩减 参考文档:《含分布式光伏的配电网集群划分和集群电压协调控制》 仿真平台:MATLAB 主要内容:本文以全局…...

Pixel Dimension Fissioner实际作品集:16-bit工坊生成的广告文案诗歌手稿

Pixel Dimension Fissioner实际作品集:16-bit工坊生成的广告文案&诗歌手稿 1. 像素语言工坊的创意革命 在数字创作领域,一款名为"像素语言维度裂变器"的工具正在掀起一场文本创作的革命。这款基于MT5-Zero-Shot-Augment核心引擎构建的文…...

终极云端渗透测试速查表:3大云平台安全检测与防御指南

终极云端渗透测试速查表:3大云平台安全检测与防御指南 【免费下载链接】CloudPentestCheatsheets This repository contains a collection of cheatsheets I have put together for tools related to pentesting organizations that leverage cloud providers. 项…...

HTML转图片不求人:Python imgkit + wkhtmltoimage的5分钟快速入门教程

HTML转图片实战指南:Python imgkit与wkhtmltoimage高效解决方案 在当今数据驱动的开发环境中,将HTML内容快速转换为图片的需求日益增多——无论是生成报告截图、保存网页快照,还是创建社交媒体分享图片。Python开发者可以借助imgkit和wkhtml…...

当信号遇见MATLAB:手把手玩转采样与重建的魔法

MATLAB滤波器 信号与系统 sa函数信号采样与重建 基于MATLAB的设计抽样信号采样与重建。 (供学习交流)带源码,带注释。 6500字信号采样:从连续到离散的魔术 实验室的示波器屏幕上跳动着优美的正弦曲线,窗外的蝉鸣声忽…...

RK3568开发板Debian系统从编译到配置全流程指南(附常见问题解决)

RK3568开发板Debian系统从编译到配置全流程指南(附常见问题解决) 在嵌入式开发领域,RK3568凭借其强大的四核Cortex-A55架构和丰富的接口资源,已成为众多物联网和边缘计算项目的首选平台。而Debian作为最稳定的Linux发行版之一&…...

告别繁琐编译!用Conda一键安装脉冲星数据分析软件(DSPSR、PSRCHIVE、TEMPO2)

脉冲星研究者的效率革命:用Conda三分钟部署专业分析环境 当你在凌晨三点收到观测数据时,最不想面对的就是花两小时解决软件依赖冲突。传统源码编译安装PSRCHIVE或DSPSR的过程,就像在雷区跳踢踏舞——一个错误的库版本就能让所有努力前功尽弃。…...

如何快速搭建你的在线私人音乐厅:NeteaseCloudWebApp完整指南 [特殊字符]

如何快速搭建你的在线私人音乐厅:NeteaseCloudWebApp完整指南 🎵 【免费下载链接】NeteaseCloudWebApp This is a vue for NeteaseCloud projects! 项目地址: https://gitcode.com/gh_mirrors/ne/NeteaseCloudWebApp 想要拥有一个属于自己的在线音…...

通义千问1.5-1.8B-Chat-GPTQ-Int4创意应用:AE视频片段创意构思与脚本生成

通义千问1.5-1.8B-Chat-GPTQ-Int4创意应用:AE视频片段创意构思与脚本生成 1. 引言:当视频创作遇上AI助手 你有没有过这样的经历?盯着After Effects空白的合成窗口,脑子里有一个很酷的创意,比如一个充满科技感的开场动…...

如何快速解决Waydroid镜像下载慢问题:5种高效加速方案

如何快速解决Waydroid镜像下载慢问题:5种高效加速方案 【免费下载链接】waydroid Waydroid uses a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/wa/waydroid …...

红外遥控硬件设计与NEC协议实现详解

1. 红外遥控系统硬件设计原理红外遥控技术是消费电子领域最成熟、成本最低的无线人机交互方案之一。从早期黑白电视机到现代智能空调,其核心逻辑始终未变:发射端将按键操作编码为调制脉冲信号,经红外载波发射;接收端捕获并解调该信…...

终极指南:如何使用MyBatis Dynamic SQL快速构建类型安全的动态SQL查询

终极指南:如何使用MyBatis Dynamic SQL快速构建类型安全的动态SQL查询 【免费下载链接】mybatis-dynamic-sql SQL DSL (Domain Specific Language) for Kotlin and Java. Supports rendering for MyBatis or Spring JDBC Templates 项目地址: https://gitcode.com…...