avatar

松果工作室

欢迎光临

  • 首页
  • freeRTOS
  • ESP
  • 开发手册
  • 快速笔记
  • 个人收藏
  • 工具
Home 低功耗蓝牙BLE
文章

低功耗蓝牙BLE

Posted 2023-11-12 Updated 2024-09- 28
By YCP
16~20 min read

官网
主要参考资料

蓝牙广播

包含 3 个广播信道[37 38 39]和 37 个数据信道
频段范围从2402Mhz~2480MHz
40个信道
一个广播数据包最长 37 字节
[mac地址 x 6字节 + 用户使用 x 31字节]

用户使用的 31字节又包括若干个广播数据结构体[AD Structure]

每一个蓝牙数据结构体 [AD Structure] 由3部分组成
[长度 x 1字节 ,类型 x 1字节 ,内容 x n字节]

蓝牙数据结构体

例:
0x04 0x09 0x41 0x42 0x43 0x03 0x19 0x80 0x81 + 自动补 0 凑足 37字节
|长度4 类型 数据1 数据2 数据3 长度3 类型 数据1 数据2|

至于 类型 看官方文档 ,有很多补充

数据类型

蓝牙广播分为 4 类

  • 可连接非定向[最常用的广播方式]
  • 可连接定向[用于快速连接]
  • 不可连接非定向[用于信标传感器]
  • 可扫描非定向[在不可连接非定向上加上扫描响应的功能,可扫描不可连接非定向]

4类蓝牙广播

至于扫描响应和广播的关系 ,两者从数据包格式上看是一样的
因此如果广播包的 31字节不够用,可以把他们塞进扫描响应
扫描响应是被动 ,广播是主动


蓝牙的状态切换

是个状态机

蓝牙的状态切换


蓝牙的服务与特性[应用层]

蓝牙协议栈

BLE设备 - 服务 - 特性

HCI :主机控制接口

UUID :用于区分各个服务和特性 ,128 bit
也可以使用16位的 ,基于UUID基地址0000xxxx-0000-1000-8000-00805F9B34FB


数据收发

低功耗蓝牙的通信基于特性

数据点权限

数据收发


16bit UUID

蓝牙联盟已经定义了一些UUID用于指定服务和特性[0x180D 心率 ,0x180F 电池 ,0x2A00 设备名字 ,等等]
Assigned Number Type


SPP协议

经典蓝牙常用,如 HC-05 的蓝牙透传
低功耗蓝牙需自定义

GAP角色

  • 广播者:广播但无法连接
  • 观察者:扫描广播不建立连接
  • 外围设备:可广播可作为从机在链路层建立连接
  • 中心设备:可扫描广播可在链路层与多个从机建立连接

地址(8*6)

  • 公共地址:全球唯一,需向IEEE缴纳费用
  • 随机地址:最后两位需要注意

蓝牙协议栈

截屏2024-09-28 上午11.35.19.png

  • HOST(主机):

    • L2CAP(提供数据封装服务,使得上层应用无需关注控制细节,链接应用层和控制器)
    • ATT(定义属性实体,并定义其读写通知指示等操作)
    • GATT(两个设备通信依靠这个实现,包括GATT服务端客户端)
    • SMP(安全管理协议)
    • GAP(对外接口,管理蓝牙广播、链接、设备绑定)
  • CONTROLLER(控制器):PHY基带物理层 + LL链路层

  • HCI(主机控制接口):在CH592中主机控制器一体

坑和笔记
ESP
License:  CC BY 4.0
Share

Further Reading

Dec 23, 2024

其他笔记

EC800K AT连接移远云 配置过程 # 配置产品信息(初次连接需配置) AT+QIOTCFG="productinfo","pxxxxt","cDVTxxxxxxxxWGVB" # 连接开发者中心 AT+QIOTREG=1 # 查询当前连接状态(+QIOTSTATE: 8为正常) AT+QI

Jun 21, 2024

环形滤波算法

#include <stdio.h> #include <stdlib.h> #define BUFFER_SIZE 10 // 缓冲区大小 #define THRESHOLD 180

Jun 17, 2024

STM32 ADC采集的三种方式

采样周期 单个采集模式 ADC_Settings: 程序使用 uint16_t ADC_Read(

OLDER

Think different

NEWER

ESPNOW

Recently Updated

  • ESP32(八) 简单的webserver
  • ESP32(七) NVS
  • ESP32(四) STA & AP
  • 多级菜单
  • ESP32(五) ESP32 OTA

Trending Tags

WCH Linux Elec freeRTOS STM ESP Flutter Others SwiftUI

Contents

©2025 松果工作室. Some rights reserved.

Using the Halo theme Chirpy