【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服务标准
  • 自定义一个特性实现 串口透传标准
相关推荐
十月的皮皮11 小时前
stm20260720-从新手 C 到量产 STM32 工程:程序设计推导指南
c语言·开发语言·stm32·stm32cubemx·hal库
开发笔记-阿牛11 小时前
解析一款有意思的产品||CK6159A语音芯片设计的儿童专注力训练机-舒尔特玩具
stm32·单片机·嵌入式硬件·音频
搞全栈小苏14 小时前
SIMetrix_simplis8.4安装教程——附安装包
stm32·单片机·嵌入式硬件·电力电子
qq_5739678214 小时前
STM32控制器
stm32·单片机·嵌入式硬件
某林21215 小时前
履带小车底盘stm32F103RCT6开发
人工智能·stm32·单片机·嵌入式硬件·架构·人机交互·ros2
做萤石二次开发的哈哈17 小时前
萤石 ERTC Windows SDK 包含哪些类型定义?
stm32·单片机·嵌入式硬件
亿道电子Emdoor17 小时前
【Aitium】PCB导出DXF文件出现eDuplicateRecordName报错
stm32·单片机·嵌入式硬件·altium
巴巴媛6661 天前
STM32学习笔记【38.DHT11实验】
笔记·stm32·学习
深圳市泰凌微电子1 天前
HK航顺 HK32F407RGT7替STM32F405RGT6 微控制器32位MCU
stm32·单片机·嵌入式硬件
小心亦新2 天前
STM32学习16--定时器输出比较2直流电机
stm32·嵌入式硬件·学习