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

BLE蓝牙协议栈分析

BLE——协议层次结构

image-20230809220244403

一、BLE Controller

Controller实现射频相关的模拟和数字部分,完成最基本的数据发送和接收,Controller对外接口是天线,对内接口是主机控制器接口HCI(Hostcontroller interface);

控制器包含物理层PHY(physicallayer),链路层LL(linker layer),直接测试模式DTM(Direct Test mode)以及主机控制器接口HCI。

1.1 Physical Layer

频率选择(2402-2480MHz) + 信道选择(40) + 信道间隔(2MHz) + 调制方式(GFSK) + 数据传输速率(1Mbps)+ 接收灵敏度 + 发射功率 + 杂散辐射 + 射频容差

1、信道选择

物理信道(Physical Channel)为: F=2402+k*2MHz ,k=0,…,39,共40个信道。

Physical Channel = RF Channel

1.2 Link Layer

信道分类(3+37) + 广播信道定义(37、38、39) + 数据通道分发(跳频) + 状态角色定义和切换 + 数据包校验重传

二、HCI

定义Host和Controller(通常是两颗IC)之间的通信协议,对理解蓝牙协议来说,是无关紧要的。向上为主机提供软件应用程序接口(API)。

HCI逻辑上定义一系列的命令,事件;

物理上有UART,SDIO,USB,SPI接口;

实际可能包含里面的任意1种或几种。常见RF测试时,我们常使用UART发送标准的HCI指令控制Controller。

三、BLE Host

主机host是蓝牙协议栈的核心部分,GAP层负责制定设备工作的角色,SS层负责指定安全连接,Logic Link层功能非常强大,官方作用为协议/通道的多路复用,负责上层应用数据(L2CAP Service Data Units,SDUs)的分割(和重组),生成协议数据单元(L2CAP Packet Data Units,PDUs),以满足用户数据传输对延时的要求,并便于后续的重传、流控等机制的实现。

3.1 L2CAP

逻辑链路控制与适配协议,将ACL数据分组,对高层应用的数据进行分组,并提供协议复用和服务质量交换等功能。通过协议多路复用、分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务。

image-20230809221701010

3.2 ATT(Attribute Protocol)

蓝牙属性协议,用于发现、读、写对端设备的协议

3.3 GATT(Generic Attribute Profile)

基于ATT协议,定义了数据交换的框架格式

image-20230809221124836

3.4 GAP(Generic Access Profile)

定义了蓝牙设备的基本要求。

对于LE,定义了一个物理层、链路层、L2CAP、ATT、GATT等

联系了所有的不同层之间的交互

http://www.lryc.cn/news/116920.html

相关文章:

  • flutter开发实战-BackdropFilter高斯模糊子Widget控件
  • 嵌入式面试刷题(day3)
  • JVM源码剖析之Java命令行参数全解
  • 抽象工厂模式-java实现
  • 机器学习笔记 - 基于Python发现最佳计算机视觉模型的神经架构搜索技术NAS
  • 机器学习---自编码器
  • vuejs 设计与实现 - 渲染器的设计
  • openCV 图像对象的创建和赋值
  • idea - 刷新 Git 分支数据 / 命令刷新 Git 分支数据
  • 线上电影购票选座H5小程序源码开发
  • QT正则校验
  • ChatGPT“侵入”校园,教学评价体制受冲击,需作出调整
  • 函数的声明和定义
  • 06微服务间的通信方式
  • 研发工程师玩转Kubernetes——local型PV和PVC绑定过程中的状态变化
  • HTTP——十一、Web的攻击技术
  • Python-OpenCV中的图像处理-图像金字塔
  • ArcGIS、ENVI、InVEST、FRAGSTATS技术教程
  • Unity-Linux部署WebGL项目MIME类型添加
  • MySQL:表的约束和基本查询
  • mysql统计近7天数据量,,按时间戳分组
  • 无涯教程-Perl - endnetent函数
  • Selenium的xpath高级写法-实用篇
  • 阿里云官方关于数据安全保护的声明
  • 【神经网络手写数字识别-最全源码(pytorch)】
  • React、Vue和Angular的优缺点
  • ArcGIS Pro根据不同条件显示不同标注
  • DynamicsCRM专栏导览
  • Vue自定义指令使用
  • python爬虫之scrapy框架介绍