【BLE】基础知识(一)

资料来源:B站:我是鹏老师

https://www.bilibili.com/video/BV1ad4y1d7AM/?spm_id_from=333.337.search-card.all.click

1. 蓝牙广播 Advertising

  • 低功耗蓝牙一共40个信道
  • 频段范围从2402MHz 到 2480MHz
  • 每2MHz 一个信道
  • 其中37 38 39 是广播信道
  • 剩余的是 数据信道
  • 可以看出这3个信道是分布在不同的位置
  • 一个广播数据包最长37个字节 ,
  • 广播数据包总长度 = 6字节(设备地址) + 31字节(有效载荷数据) = 37字节。
  • 这个37字节的限制仅针对广播信道(37, 38, 39)上发送的广播包。设备建立连接后,在数据信道上传输的数据包其长度由不同的机制(MTU)决定,可以更长
  • 其中6个字节用作蓝牙设备的MAC地址
  • 剩下的31字节是用户数据
  • 用户字节由多段类型组成
  • 蓝牙规范里叫 AD Structure
  • 每一个类型由 长度 + 类型 + 内容组成
  • 其中 长度 = 类型 + 内容长度
  • 蓝牙设备名称采用的是 UTF-8 编码

  • 官方文档

2. 蓝牙广播类型

  • 蓝牙广播是从机主动发射的一些数据
  • 扫描响应 是 从机收到主机的 扫描请求后 回复给 主机的数据
  • 蓝牙广播和扫描响应的数据格式一样


    数据长度超过31字节 可以把一部分数据放在 扫描响应数据里面

3. 蓝牙状态切换

  • 共有5种状态
  • 广播态 扫描态 就绪态 连接态 发起态

4. 服务和特性


  • 每一个服务和特性都要有一个UUID
  • UUID有128位和16位之分,16位是一个简化版本的


5. 数据收发

  • 每一个特性可以看作一个数据点

  • 数据的收发都要依托于这些数据点

  • 每一个特征可以设置对应的几种数据权限

  • 创建特性的时候可以给特性赋予其中的一种或者几种权限

1. Read 读操作
  • 是主机读取从机 某个特征的值
  • 客户端发送一个"读请求",服务器回复一个"读响应",其中包含特征值的数据。
2. Write 写操作
  • 是主机修改 某个特征的值 【写完之后需要设备回应】
  • 客户端发送一个"写请求",服务器处理完成后,必须回复一个"写响应"来确认写入成功或失败。这是一种可靠的写入方式。
3. Write With No Response 无响应写入
  • 【写完之后不需要设备回应】
  • 客户端发送一个"写命令",服务器接收但不回复。如果数据包丢失,协议栈不会重传。
4. Notify 通知
  • 客户端必须先写入CCCD 为 0x0001 来"订阅"通知
  • 此后,每当服务器的特征值变化,它就会自动向客户端发送一个"通知"数据包。
  • 设备数据发生更新,通知主机来取数据, 需要主机订阅相应的通知才有效 【不需要主机回应】
5. Indicate 指示
  • 【需要主机回应】
  • 客户端必须先写入CCCD 为 0x0002 来"订阅"指示,服务器发送一个"指示"数据包。
    客户端收到后,必须回复一个"确认"帧。服务器收到确认后,才会认为发送成功,否则会重传。

依赖关系:Notify和Indicate功能依赖于一个特殊的描述符------客户端特征配置描述符。客户端必须通过写入该CCCD来启用或禁用通知/指示功能

6. UUID



  • 讲述每个特性 数值类型 以及 范围

7. SPP

  • SPP协议全称 : Serial Port Profile
  • 通过蓝牙实现的串口数据透传

  • 经典蓝牙的SPP协议
  • 在低功耗蓝牙规范里 并没有定义 SPP服务标准
  • 自定义一个特性实现 串口透传标准
相关推荐
LCG元1 小时前
STM32+ESP8266+MQTT 物联网气象站:从零搭建温湿度远程监测系统(附完整源码)
stm32·物联网·struts
FakeOccupational3 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存(D-Cache)结构+MPU+DMA&Cache+STM32CubeMX配置
笔记·stm32·缓存
殷忆枫4 小时前
基于K210与STM32的智能垃圾分类与物联网监管系统
stm32·物联网·分类
周洲08304 小时前
STM32 GPIO 外部中断深度解析:边沿触发 / 电平触发、NVIC 优先级配置、中断嵌套实战
stm32·单片机·嵌入式硬件
LCG元5 小时前
STM32F103 CAN 总线通信实战:标准库双机通信与过滤器配置精讲
stm32·单片机·嵌入式硬件
zlinear数据采集卡5 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
z20348315207 小时前
STM32单片机控制无源蜂鸣器播放《晴天》
stm32·单片机·嵌入式硬件
振南的单片机世界9 小时前
硬核菊花链:3个GPIO+无限74HC595=端口扩展“无限套娃”
arm开发·stm32·单片机·嵌入式硬件
LCG元12 小时前
STM32软件模拟I2C驱动多从机实战:AHT20温湿度 + BH1750光照 + 0.96寸OLED实时显示
stm32·单片机·嵌入式硬件
zcmodeltech15 小时前
工业生产线沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的自动化产线-智能车间-流水线全场景联动方案
数据库·stm32·嵌入式硬件·自动化·制造