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

经典BT的连接过程

传统蓝牙(Basic Rate/Enhanced Data Rate, BR/EDR)的连接过程涉及几个关键机制,下面我将详细解释inquire/inquire scan和page/pageScan的作用及相互关系。

一、Inquire与Inquire Scan

1. Inquire(查询)

作用:主动发现周围可用的蓝牙设备 (手机等)

  • 由主设备(Master)发起

  • 发送ID分组(Identification Packet)广播

  • 使用32个专用查询频率跳频

  • 典型持续10.24秒(可配置)


包类型方向内容说明
ID PacketMaster→Slave- 查询访问码(IAC)
- 通用查询访问码(GIAC: 0x9E8B33)或专用查询访问码(DIAC)
用于触发设备响应
FHS PacketSlave→Master- BD_ADDR(蓝牙地址)
- 设备类(Class of Device)
- 时钟偏移
- page扫描模式
包含设备关键信息
  • 频率:使用32个专用查询频率(2402+k×1MHz, k=0,1,...,31)

  • 时序:Slave每1.28秒监听11.25ms的查询窗口

  • 重试:Master会多次发送查询请求以提高发现概率

        

2. Inquire Scan(查询扫描)

作用:使设备能被其他设备发现(蓝牙耳机等)

  • 由从设备(Slave)执行

  • 在16个特定频率上监听查询请求

  • 扫描间隔通常为1.28秒(可配置)

关键参数

  • Inquiry Scan Interval:1.28s

  • Inquiry Scan Window:11.25ms~22.5ms

二、Page与Page Scan

1. Page(寻呼)

作用:建立实际连接

  • 由主设备发起

  • 使用目标设备的BD_ADDR和时钟估计

  • 在32个专用寻呼频率上跳频

  • 包含设备访问码(DAC)

包类型方向内容说明
ID PacketMaster→Slave设备访问码(DAC)基于目标Slave的BD_ADDR生成
ID PacketSlave→Master设备访问码(DAC)确认收到寻呼
FHS PacketMaster→Slave- BD_ADDR
- 主设备时钟
- 设备类
- page扫描模式
建立连接的关键信息
ID PacketSlave→Master设备访问码(DAC)确认连接建立
  • 频率:使用32个专用寻呼频率(与查询频率相同)

  • 时序:Slave每1.28秒(默认)监听11.25ms的页面扫描窗口

  • 时钟预测:Master使用Inquire阶段获取的时钟信息预测Slave的跳频序列

2. Page Scan(寻呼扫描)

作用:准备接受连接请求

  • 从设备监听寻呼请求

  • 使用16个特定频率

  • 必须知道设备的扫描周期才能有效寻呼

关键参数

  • Page Scan Interval:0.64s~2.56s

  • Page Scan Window:11.25ms~22.5ms

机制作用阶段发起方频率数主要目的
Inquire设备发现Master32发现周围设备
Inquire Scan设备发现Slave16响应查询请求
Page连接建立Master32发起实际连接
Page Scan连接建立Slave16准备接受连接

3. 包结构

ID packet:

| 72bit访问码 | 4bit包头 | 
  • 查询时使用GIAC(0x9E8B33)生成访问码

  • 寻呼时使用目标设备的BD_ADDR生成DAC

FHS packet:

| 72bit访问码 | 4bit包头 | 240bit有效载荷 |

有效载荷包含:

  • BD_ADDR (48bit)

  • 设备类 (24bit)

  • 时钟信息 (26bit)

  • 页面扫描模式 (3bit)

三、连接流程

  1. 发现阶段

    • Master开启Inquire

    • Slave开启Inquire Scan

    • Master获取Slave的BD_ADDR和时钟信息

  2. 连接阶段

    • Master使用获取的信息发起Page

    • Slave必须处于Page Scan模式

    • 建立ACL连接

  3. 配对阶段

    • 认证和加密(可选)

    • 建立L2CAP通道

注意事项:

  1. 时钟估计

    • Page过程需要预测Slave的时钟跳频序列

    • 通过Inquire获取的时钟信息用于提高连接速度

  2. 跳频同步

    • 连接建立后采用相同的跳频模式

    • 使用主设备时钟和BD_ADDR计算跳频序列

  3. 模式转换

    • 设备可以在Master/Slave角色间切换

    • 但一次连接中角色固定

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

相关文章:

  • 归并排序和统计排序
  • 智能工厂生产监控大屏-vue纯前端静态页面练习
  • AI智能体在软件测试中的应用与未来趋势
  • 开疆智能Ethernet转ModbusTCP网关连接测联无纸记录仪配置案例
  • python-pycharm切换python各种版本的环境与安装python各种版本的环境(pypi轮子下载)
  • C++第二十课:快递运费计算器 / 黑白配+石头剪刀布小游戏
  • SAP ALV导出excel 报 XML 错误的 /xl/sharedStrings.xml
  • 2025.08.09 江门两日游记
  • 4.2 寻址方式 (答案见原书 P341)
  • LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。
  • 硬件实现webrtc的编解码
  • 从前端框架到GIS开发系列课程(26)在mapbox中实现地球自转效果,并添加点击事件增强地图交互性
  • 【自动化运维神器Ansible】Ansible算术运算符详解:实现配置文件的动态计算
  • MS5905P 一款 12bit 分辨率的旋变数字转换器
  • GaussDB 常用数值类型
  • 在Ubuntu 22.04上安装远程桌面服务
  • C语言指针(五):回调函数与 qsort 的深层关联
  • 【大模型微调系列-03】 大模型数学基础直观入门
  • Codeforces Deque工艺
  • 专题三_二分_x 的平方根
  • Swift 实战:用最长递增子序列算法解“俄罗斯套娃信封”问题(LeetCode 354)
  • Effective C++ 条款42:了解 typename 的双重含义
  • 旅游管理实训室:旅游教育实践育人的关键支撑
  • spring中异步任务注解@Async和@scheduled的使用
  • 5G赋能井下“毛细血管”:巴拉素煤矿零散排水点智能监控系统
  • 基于阿里云音频识别模型的网页语音识别系统实现
  • Spring WebFlux 性能优化实践指南
  • 近日算法备案事项:九月批复审即将启动/赶11月批最后安全启动时间已过
  • week1-[顺序结构]跑道
  • YAML 中定义 List 的几种方式