蓝牙----蓝牙协议栈Host层

蓝牙协议栈----Host层

  • 蓝牙物理层基本信息
  • 链路层的状态机
    • 进入连接态的步骤
    • 主动扫描与被动扫描
    • 链路层通信模式
  • 蓝牙地址
    • 蓝牙设备地址
    • 蓝牙标识地址
    • 蓝牙接入地址
  • 蓝牙广播信道管理
  • 蓝牙数据信道跳频


蓝牙协议栈Host层包括PHY、LL、HCL层,注重关注PHY物理层和LL链路层。

蓝牙物理层基本信息

► 蓝牙使用高斯频移键控GFSK
► 频率范围2.4000 GHz - 2.4835GHz,又划分为40个channel,
► 第一个通道的中心频率是2402MHz,最后一个通道的中心频率是2480MHz
► 有效频率偏移为:±185kHz

LE 物理层的四种工作模式:

  • LE 1M sym/s:三种模式,非编码模式,S=2映射编码模式,S=8映射编码模式。
  • LE 2M sym/s:1种模式, 非编码模式。

2M因为传输速率更快,所以具有更低的功耗
1Mcode因为由编码传递适用FEC纠错码,所以具有更远的连接距离

物理层调制方式符号速率信息速率通信距离数
LE 1M PHY1M sym/s1Mb/s1Mb/s1
LE CodedPHY S=21M sym/s1Mb/s500kb/s2
LE CodedPHY S=81M sym/s1Mb/s125kb/s4
LE 2M PHY1M sym/s2Mb/s2Mb/s0.8

链路层的状态机

  • Standby State(就绪态):设备上电后,设备处于就绪态
  • advertising State(广播态):设备进行广播数据和扫描响应数据发送。广播态在链路层有两种变化:广播态设备停止广播进入就绪态。广播态的设备收到发连接请求后进入连接态。
  • Scanning(扫描态):设备监听哪些设备正在广播,扫描态的设备停止扫描进入就绪态。
  • Initiating(发起态):设备处于发起态进而发起连接,处于发起态的发起者,收到想连接设备的广播报文,链路层会向其发起连接请求并进入连接态,广播者也进入了连接态
  • Connection(连接态):主设备从发起态进入连接态,从设备从广播态进入连接态。
    在这里插入图片描述

进入连接态的步骤

广播态不断发送广播
扫描态扫描到广播进入就绪态,再由就绪态进入发起态
发起态进入连接态;广播态进入连接态

主动扫描与被动扫描

  • 主动扫描:广播态设备接收了广播报文后,发送扫描请求给广播设备,并接收广播设备的扫描响应数据。
  • 被动扫描:广播态设备仅侦听正在广播的设备,并接收其发送的广播报文。

链路层通信模式

  • Advertiser — Scanner:广播者与扫描者之间通过广播信道传输数据,是一种一对多的通信方式,进行广播者到扫描者的单方向通信。
  • Master/Central — Slave/Peripheral:主从设备通过数据信道传输数据,是一种一对一的通信方式,没对主从机进行各自的双向通信。

蓝牙地址

蓝牙设备地址Device Addres
蓝牙标识地址Identity Address
蓝牙接入地址Access address

蓝牙设备地址

设备地址Device Addres为48bit有两大类公共地址、随机设备地址,一共有四种:
1.公共地址
公共设备地址创建时需要获得IEEE分配的MAC地址块
2.随机设备地址

随机静态地址:电源重启后设备赋予新的静态地址值
在这里插入图片描述

可解析的私有地址:为生成可解析私有地址设备必须有本地身份解析码(IRK)或对等身份解析码(IRK)。
可解析私有地址通过IRK和随机产生的24位随机数来生成。可解析私有地址的随机数被称为prand值。
一端通过IRK和Prand生成Hash,Prand和Hash做为可解析的私有地址发送;
发送另一端用接收到的Prand和使用的IRK计算得到Hash,与接收到的Hash比较,相同代表识别成功。
在这里插入图片描述

不可解析的私有地址
在这里插入图片描述

私有地址是实现蓝牙设备隐私(Privacy)的技术基础

蓝牙标识地址

► 如果一个设备仅支持public address, 那么该public address 可以作为这个设备的indentify address,在配对过程中使用
► 如果一个设备支持random static address,同样可以作为indentify address使用
► 如果一个设备使用的是resolvable private address,通过IRK解析之后的地址,是indentify addres

蓝牙接入地址

32Bit,用于标识一个蓝牙通信事件

蓝牙广播信道管理

BLE有12个channel与wifi的常用信道不重合,其中37,38,39用于广播,所有BLE设备共用这三个信道广播

► 每包广播数据,都会在37、38、39三个信道上依次发送一次。
► 广播信道的随机延时:每一个广播包实际发送的广播间隔,会+10ms以内的随机延时,避免和其他设备产生冲撞。
► 广播信道不允许发送超过37字节的数据。
►广播信道不支持5.0协议的2M PHY的传输速率。

蓝牙数据信道跳频

信道地图:
信道评估依靠RSSI(接收信号强度指示)PER(分组错误率)对每一个物理信道的可用性进行分类标注为可用或不可用。对于标注为不可用的物理信道在跳频时不予选用。信道地图由低功耗蓝牙连接中的中心设备绘制并提供给与其相连接的周边设备。

跳频公式:
f(n+1)=(fn+hop)mod37
fn:为上一次连接事件使用的信道索引(初始时此值为0);
f(n+1):为首次计算的下一次连接事件使用的信道索引;
hop:为跳频参数值,取值范围为5到16,由中心设备决定并在发起连接时通知与其连接的周边设备

CSA#1:
► 根据跳频算法计算后当f_(n+1) 为信道地图中的可用信道时直接使用
► 当f_(n+1) 为信道地图中的不可用信道时则重新计算。
○ 重新计算算法: f_new= f_(n+1) mod N,
f_new 为重新计算得到的信道地图索引所对应的信道 (信道地图中的可用信道从0开始升序编号)
N:指信道地图中可用信道数量。

CSA#2:跳频阶跃hop不是固定的。
hop每次计算的目的是:每个连接事件与先前的连接事件相比发生在最小频率偏移,避免干扰和多路径衰落效应。

跳频#1只适用于连接信道,跳频#2可以用在广播信道和连接信道。

自适应跳频AFH:允许蓝牙通过识别固定的干扰源并将其从可用信道列表中排除来适应环境。
信道地图重新获取,需要传递的参数:
新的信道图:channel Map
瞬时:设备双方使用新的channel Map的切换时间。

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

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

相关文章

win32 窗口过程学习1

上文的MDI的win32程序会挂掉;下面学习和检查一下窗口过程有没有问题; 1 主框架窗口过程,FrameWndProc; 窗口过程主要是按分支处理消息; 消息,message,是过程接收的第二个参数; 窗口…

Charles/Fiddler将证书安装到Android系统证书下的方法

基本情况参考此帖:Charles 安卓抓包 unknown 和证书无效的解决方案(无需改代码)_client ssl handshake failed: an unknown issue occu-CSDN博客 此解决方案仅适用于已root设备默认已经在电脑上安装并配置了Charles,安卓手机也下载…

介绍一下OpenCV中常用的图像处理函数

OpenCV中常用的图像处理函数有很多,以下是其中一些函数的介绍: - cvLoadImage():读入图像函数。 - imshow():显示图像函数。 - imwrite():保存图像函数。 - Mat srcImage imread():读入图像函数。 - …

电脑监控系统:企业网络安全解决方案

在当今数字化的世界里,企业的网络安全已经成为一项至关重要的任务。电脑监控系统作为一种有效的解决方案,正在被越来越多的企业所采用。 电脑监控系统是一种集成了多种安全功能的综合性解决方案,旨在为企业提供全面的网络安全防护。该系统能够…

GBASE南大通用分享-什么是OBM

GBASE南大通用分享 OBM(Orignal Brand Manufactuce,原始品牌制造商)。 即代工厂经营自有品牌,或者说生产商自行创立产品品牌,生产、销售拥有自主品牌的产品。由于代工厂做OBM要有完善的营销网络作支撑,渠道建设的费用很大&#x…

JavaWeb01--Tomcat

1、JavaWeb概述 Web开发是基于请求和响应的: 请求:浏览器(客户端)向服务器发送信息 响应:服务器向浏览器回送信息 请求和响应是成对出现的。 Web资源分类 所谓Web资源即放在Internet网上供外界访问的文件或程序&#x…

31、WEB攻防——通用漏洞文件上传JS验证mimeuser.ini语言特性

文章目录 文件上传一、前端验证二、.user.ini 文件上传 检测层面:前端、后端等检测内容:文件头、完整性、二次渲染等检测后缀:黑名单、白名单、MIME检测等绕过技巧:多后缀解析(php5、php7)、截断、中间件特…

代码随想录算法训练营第十四天|二叉树基础-二叉树迭代-二叉树

文章目录 二叉树基础二叉树种类满二叉树完全二叉树二叉搜索树平衡二叉搜索树 二叉树的存储方式链式存储顺序存储 二叉树的遍历方式二叉树的定义 二叉树的递归遍历144.二叉树的前序遍历代码: 145.二叉树的后序遍历代码: 94. 二叉树的中序遍历代码 二叉树的…

webpack tree shaking 摇树原理

Tree-shaking 是指在打包过程中通过静态分析,识别并删除未使用的代码,以减小最终输出文件的大小。Webpack 通过内置的 UglifyJS 插件或者 Terser 插件来实现 Tree-shaking。下面是简要的 webpack Tree-shaking 的原理: 标记未使用的代码&…

Anaconda 镜像清华大学开源软件镜像站

Anaconda 镜像使用帮助 Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。 Anaconda 安装包可以到 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirr…

「阿里云」幻兽帕鲁个人服务器已上线,3分钟快速搭建

基于阿里云搭建幻兽帕鲁服务器方法,1到2分钟部署完成,稳定运行无卡顿,阿里云服务器网aliyunfuwuqi.com分享保姆级手把手教程,基于阿里云计算巢、云服务器或无影云桌面都可以: 基于阿里云幻兽帕鲁服务器创建教程 基于…

EasyExcel实现导出图片到excel

pom依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.0</version> </dependency> 实体类&#xff1a; package com.aicut.monitor.vo;import com.aicut.monit…

CSDN年度报告图片卡通小人收集

摘要&#xff1a;CSDN推出的年度报告真的太赞了&#xff0c;还定制了诸如“情感的编织者”“敏锐的激励者”“灵感的捕捉者”“组织的表达者”“洞悉的指挥家”“心灵的领航员”“生动的记录者”“温暖的叙述者”“理性的探索者”等等精准且浪漫的标签&#xff0c;加上非常有灵…

代码随想录算法训练营29期Day30|LeetCode 332,51,37

文档讲解&#xff1a;回溯算法总结篇 重新安排行程 N皇后 解数独 51.N皇后 题目链接&#xff1a;https://leetcode.cn/problems/permutations/description/ 思路&#xff1a; 本题的基本含义就是有个N*N的棋盘&#xff0c;需要我们放N个皇后在上面&#xff0c;满足不能有任…

基于Java SSM框架实现在线考试系统项目【项目源码+论文说明】

基于java的SSM框架实现在线考试系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#…

2024年,AI大模型有哪些新看点?

自ChatGPT-4问世以来&#xff0c;过去的大半年中&#xff0c;我们虽然没有在ChatGPT发布一周年之际等来“ChatGPT-5”&#xff0c;但围绕ChatGPT&#xff0c;仍有不少新看点。其中的一些引发我们对人工智能(AI)与人的关系进行新的思考&#xff0c;另一些则为AI的发展和安全带来…

16-语句、表达式和海象操作符

让我们从两行最简单的 Python 代码开始。 >>> name piglei >>> print(fHello {name}!) Hello piglei!这是一个“Hello World”程序&#xff0c;你也许已经见过它无数次&#xff0c;对里面的每个字母都了如指掌。但你可能从未意识到&#xff0c;上面两行代码…

modelscope下载模型

# 私有模型下载&#xff0c;前提是您有响应模型权限 方法1 git lfs install git clone http://oauth2:your_git_tokenwww.modelscope.cn/<namespace>/<model-name>.git 如何获取git token 用您的账号登录https://www.modelscope.cn &#xff0c;在个人中心->访…

正确看待华为鸿蒙……是盲目跟风吗?

先要了解纯血鸿蒙是什么&#xff1f;与之前的套壳Android版本区别在哪&#xff1f;了解这核心东西之后才会真正的看出“纯血鸿蒙”的未来与发展。 纯血鸿蒙全栈自研 HarmonyOS NEXT系统底座全线自研&#xff0c;去掉了传统的Linux内核以及AOSP等代码&#xff0c;仅支持鸿蒙内…

3分钟搭建幻兽帕鲁私服,无需任何命令代码,点点鼠标一键部署

想玩《幻兽帕鲁》和朋友们一起乐呵呵&#xff1f;这个指南教你怎么在阿里云上弄个游戏服务器&#xff0c;超简单。点几下鼠标&#xff0c;2、3分钟就搞定&#xff0c;不用头疼设置那些复杂的东西。一键部署幻兽帕鲁私服&#xff0c;告诉你私服怎么搭建 本次利用阿里云服务器的…