Bluetooth LE相关学习笔记

news2025/1/16 5:09:41

The Bluetooth LE Specifications

在这里插入图片描述

The Bluetooth Core Specification

核心规范适用于 Bluetooth LE和Bluetooth Classic,它定义了蓝牙的体系结构及其层次,描述和定义了蓝牙的关键特性,定义了设备在协议栈的特定层上进行重要操作的方法和通信的协议。

Profile Specifications

当两个BLE设备通过一个连接进行通信时,通常情况下客户端/服务器关系已经形成。服务器包含状态数据,客户端以某种方式使用这些数据。配置文件规范定义了相关设备(如智能手表,耳机)所承担的角色,特别是定义了客户端设备的行为以及和它连接的服务器设备如何工作。

Service Specifications

服务规范定义了单个服务及其包含的特征值和描述符。服务规范中定义了承载服务的设备响应各种条件和状态数据值后所要表现的行为。

The Bluetooth LE Stack

BLE协议栈是上面提到的核心规范中具体内容,主要包括两大块,分别是控制层(Controller),主协议层(Host)。BLE协议栈包含OSI七层模型中的所有层。
在这里插入图片描述

Physical Layer

PHY层定义了BLE射频技术的各个方面,包括调制方案、频段、信道使用、发射机和接收机特性;同时定义了几种不同的、支持的物理层参数组合,并将其称为PHYs。物理层定义了如何使用发射或接收装置对数据进行编码和解码,以便传输和接收,以及适用的其他无线电相关参数和属性。BLE工作在2.4GHz未授权频段,范围是2400MHz到2483.5MHz,共40个通道,通道间隔2MHz。
在这里插入图片描述
BLE采用了一种称为高斯频移键控( Gaussian Frequency Shift Keying,GFSK )的调制方案。GFSK的工作原理是取一个具有所选信道(载波)中心频率的信号,并将其向上平移指定的量表示数字值为1或向下平移相同的量表示二进制值为0来对信号进行高斯滤波,以降低频率突变时的噪声。
在这里插入图片描述
物理层速率分为三种:
LE 1M:使用1 Msym / s的符号速率,要求频率偏差至少为185 kHz,且不使用特殊编码。所有设备必须支持LE 1M PHY。ࣹ
LE 2M:采用2 Msym / s的符号速率,要求频率偏差至少为370 kHz。设备对LE 2M PHY的支持是可选的。
LE Coded:使用1 Msym / s的符号速率,但数据包在LL层要经过一个名为前向纠错(Forward Error Correction FEC )的编码,增大了传输的有效范围,但降低了应用的数据速率。设备对LE Coded PHY的支持是可选的。
在这里插入图片描述
BLE的射频部分是半双工工作,发射和接收分时复用。

Link Layer

LL层定义了空中接口数据包格式、比特流处理程序如错误检查、空中通信和链路控制的状态机和协议。LL层的有两种数据包类型,不经过FEC编码的数据包:
在这里插入图片描述
经过FEC编码的数据包:
在这里插入图片描述
Access Address接入地址:接收者使用接入地址来区分信号和背景噪声,并确定数据包与接收设备的相关性。例如,一对连接的设备交换具有相同随机分配的访问地址的数据包,不参与连接的设备将忽略这些数据包,因为访问地址与它们无关。广播包使用相同的访问地址,其值为0x8E89BED6,这表明这些数据包可能被所有设备接收。

LL层状态:
在这里插入图片描述
在这里插入图片描述

Isochronous Adaptation Layer

ISOAL层允许等时通信的设备使用不同的帧持续时间。对整帧的PDU进行分割和重组或者对非整帧的PDU进行分片和重组。
数据处理过程:
在这里插入图片描述
非整帧PDU的分片和重组:
在这里插入图片描述
在这里插入图片描述
整帧PDU的分割和重组:
在这里插入图片描述
在这里插入图片描述

Host Controller Interface

主机控制器接口( Host Controller Interface,HCI )定义了一个标准化的接口,为主机组件和控制器之间的命令和数据双向通信提供了一个良好的功能接口,通过该接口,主机可以向控制器发出命令,控制器可以与主机通信。蓝牙LE和蓝牙BR / EDR均使用HCI。仅从功能方面定义接口,不考虑具体的实现机制时HCI如下:
在这里插入图片描述
HCI是可选的,如果在一颗芯片上实现BLE协议栈就不需要HCI。4种HCI传输接口类型:

  1. UART
  2. USB
  3. Secure Digital (SD)
  4. Three-wire UART

Logical Link Control and Adaptation Protocol

逻辑链路控制与适配协议( L2CAP )层负责协议封装、重传及流量控制以及对服务数据单元( SDU )的分割与重组。L2CAP层对LL层进行了封装,LL层只关心传输的数据本身,L2CAP需要区分是普通通道还是加密通道(例如属性协议ATT或者安全管理协议SMP),同时把封装后的数据单元送至合适的层进行处理。L2CAP还要负责连接间隔的管理。
在这里插入图片描述

Attribute Protocol

属性协议( ATT )由两个设备使用,一个充当客户端角色,另一个充当服务器角色,用于允许发现和使用服务器的属性表中的数据。服务器公开一系列称为属性的复合数据项,属性由服务器组织在一个称为属性表的索引列表中。

每个属性包含一个句柄、一个通用唯一标识符( Universally Unique Identifier,UUID )、一个值和一组权限。句柄是一个唯一的索引值,ATT客户端可以用它引用属性表中的特定条目;UUID标识属性的类型;值字段是包含属性值的字节数组;权限字段是一组标志,表示是否允许读、写或两种访问形式,以及允许访问必须满足的任何其他安全条件。

请求和响应PDU格式:
在这里插入图片描述
通知PDU格式:
在这里插入图片描述
指示和确认PDU格式:
在这里插入图片描述
ATT PDU的最大长度取决于已建立的最大传输单元( Maximum Transmission Unit,MTU )值。

ATT定义了交易的概念。比如:来自客户端的请求PDU期望服务器在30秒内返回一个响应PDU或者服务器发送的指示信息预计在30秒内由客户端以确认PDU进行回复,那么每个请求/响应或指示/确认形成一个事务。如果事务超时,则将其视为已失败,并且不能使用当前承载实例发送任何类型的PDU。
ATT采用顺序交易模式。这意味着,如果一个ATT交易已经开始,那么在当前交易完成之前,不再有其他ATT PDU被同一个承载实例处理。当从远程设备收到预期的响应或确认PDU或等待30秒后交易超时时,则认为交易已经完成。

Security Manager Protocol

安全管理器协议( SMP )是协议栈安全管理器组件的一部分。它支持配对、绑定和密钥分发等安全相关过程的执行。

Generic Attribute Profile

GATT是对ATT的进一步封装,主要用来规范Attribute中的数据内容,并用分组的概念对Attribute进行管理,引入新的类型被称为服务、特征值和描述符。一个BLE设备可以有多个服务,一个服务可以有多个特征值,一个特征值可以有多个描述符。
在这里插入图片描述

Generic Access Profile

GAP定义了在BLE通信过程中的角色、安全等级和模式,以及主要用来广播,扫描和发起连接。4种角色分别为Broadcaster、Observer、Peripheral和Central。
在这里插入图片描述

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

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

相关文章

【圣诞限定】2022的末尾,送TA一颗圣诞树吧

2022年圣诞节,很高兴能遇见你。 一、前言 不知不觉又到年末啦,今年遇到了超级超级棒的人,希望能跟他一起做很多很多事,完成很多很多未完成的心愿。既然是圣诞节限定,那就送他一颗圣诞树吧🎄天天开心&#…

开发者百宝箱——DevToys

开发者百宝箱——DevToys 文章目录 简介安装转换类型编码/解码格式化生成器文本处理图片设置参考文献 简介 DevToys 是一个开发人员的工具箱,基于 UWP 开发,免费开源无广告,支持中文,功能有: 转换类型 JSON / YAML…

【C语言进阶】指针的进阶

在初级阶段的《指针》章节已经接触过了,我们知道了指针的概念: 1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 2. 指针的大小是固定的4/8个字节(32位平台/64位平台)。 3. 指针是有类型&#…

Word处理控件Aspose.Words功能演示:使用 C# 将 PowerPoint 演示文稿转换为 Word 文档

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处…

Android自动化打包记录--Jenkins+Docker+WSL2

Android自动化打包记录--JenkinsDockerWSL2前言自动化流程测试环境生产环境自动化原理Windows下安装Ubuntu安装步骤相关error处理error: 0x8007019eerror: 0x800701bc、0x80370102WSL访问WindowsWSL访问内网Ubuntu下Docker内容安装运行HelloWorld拉取镜像镜像和容器命令创建镜像…

你不一定了解MySQL中的Decimal数据类型

一、前言 在此之前笔者写过一篇博客《你说精通MySQL其实很菜jī(1):你不一定会的基本技巧或知识点(值得一看)》,本文内容是从那篇博客截取出来的。MySQL中Decimal数据类型大家经常使用到,但是&a…

从零了解多线程(万字详解)

目录 为什么要引入多线程? 为什么线程更轻? 线程和进程的关系 多线程的弊端 Thread类 用Thread类创建一个线程并启动它 用一段通过多线程体现并发执行的效果 start和run的区别 使用jdl自带的工具包jconsole查看当前java进程中的所有线程 调用栈 注意: jave中创建线…

Duplicate File Finder Pro - 重复文件查找器,给你的 Mac 清理出大量磁盘空间

Duplicate File Finder Pro - 重复文件查找器,给你的 Mac 清理出大量磁盘空间 重复文件查找器 Duplicate File Finder Pro 是一个实用程序,只需3次点击就能在Mac上找到重复的文件。拖放功能和尽可能多的文件夹,你想,然后按下扫描按…

理解Linux中的进程状态

文章目录运行状态阻塞状态挂起状态磁盘睡眠状态暂停状态追踪停止状态僵尸状态死亡状态孤儿状态Linux内核进程状态源代码一台电脑一般只有一个CPU、一个磁盘(无论一台电脑有几个CPU、磁盘,数量都是远少于进程的,这里举例用一个)。运…

2022年广西食品安全管理员模拟试题及答案

百分百题库提供食品安全管理员考试试题、食品安全管理员考试预测题、食品安全管理员考试真题、食品安全管理员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 一、单选题 1.(重点)《上海市集体用餐配…

深度对比MemcacheD 和 Redis,论你不知道的二三事

谈到深度对比MemcacheD 和 Redis,作为老牌程序员首先想到的就是Memcache好一点,毕竟更节省内存。还可以存图片视频之类的,大部分市面上的cache都是MemcacheD。 但是评价一款cache并不能只看这一方面不是~ 数据存储的安全系数 要知道&#…

2023春招面试题:Redis数据库面试题整理

redis是什么?(必会) Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能非关系型(NoSQL)的(key-value)键值对数据库。可以用作数据库、缓存、消息中间件等。 redis…

STM32F103学习

目录 1、框架了解 2.GPIO (1)开漏输出与推挽输出 (2)基本知识了解 HAL库函数: 配置流程: (3)按键实验:STM32的按键开发基础_哔哩哔哩_bilibili 3、时钟 时钟框图…

力扣(leetcode)经典题目分享第3期——栈和队列

栈和队列一. 选择题1.1 进出栈顺序1.2 循环队列1.3 队列的基本运算1.4 循环队列的有效长度二. OJ练习题2.1 括号匹配问题2.2 用队列实现栈2.3 用栈实现队列2.4 循环队列总结:一. 选择题 1.1 进出栈顺序 若进栈序列为 1,2,3,4 ,进栈过程中可以出栈&…

unreal编译源码搭建dedicated server的流水账——但是细

参考视频: B站的视频: https://www.bilibili.com/video/BV1wk4y1m7wz/?spm_id_from333.337.search-card.all.click&vd_sourced33b44674c517c8b7928e8d3ac316b37 YouTube的视频: https://www.youtube.com/watch?vAKiGajA7AXM 和上面的视…

基于STM32CUBEMX驱动多个VL6180X

概述 VL6180X是基于ST FlightSense™专利技术的最新产品。这是一个突破性的技术,实现了独立于目标反射率的绝对距离测量。现有技术通过测量反射光的光量来估算距离,这种方法的最大缺点是被测物体的颜色和表面对测量精度影响很大,而VL6180X则…

云端办公后,协同软件也能轻松做好项目管理

最近很多朋友在后台问我,数字化移动办公环境下如何做好项目管理,但是问题不够聚焦,所以我决定从自己的理解出发,分享一下项目管理的一些心得。需要说明的是,传统项目管理和互联网项目管理存在很大的差异,尤…

MyBatis源码(二)如何执行sql

前言 接着environmentElement获取数据源信息后,同级执行代码的mappersElement。 Mybatis源码(三)如何操作数据库 MyBatis源码(二)如何执行sql Mybatis源码(一)获取数据源 结构小结 分析ma…

Leetcode 2. 两数相加(高精度加法模板)

Leetcode 2. 两数相加 题目 思路 链表从头开始存放数据的个位十位 百位新建一个链表C,将链表A和B每一个相加的结果存放在C中,注意加法的进位 代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode n…

实力领航|万应智谷云平台成功入选2022中国互联网大会“互联网助力经济社会数字化转型”特色案例

近日,以“发展数字经济 促进数字文明”为主题,由工业和信息化部、深圳市人民政府主办,中国互联网协会、广东省通信管理局、深圳市工业和信息化局等单位承办的2022(第二十一届)中国互联网大会在深圳国际会展中心召开。开…