蓝牙系统的核心组成解析

一、硬件层:看得见的物理载体

1. 射频模块(Radio Frequency Module)

  • 专业描述:工作在2.4GHz ISM频段,支持GFSK/π/4 DQPSK/8DPSK调制方式

  • 功能类比:相当于人的"嘴巴"和"耳朵"

    • 发射端:把数字信号转为无线电波(说话)

    • 接收端:将电波还原为数字信号(听声)

2. 基带控制器(Baseband Controller)

  • 关键技术

    • 时分双工(TDD):交替发送/接收数据

    • 自适应跳频:79个信道中随机切换

  • 生活示例:像交通警察指挥车辆交替通行,同时动态调整车道避免拥堵

3. 天线系统

  • 设计要点

    • PCB板载天线(智能手表常用)

    • 陶瓷天线(TWS耳机主流方案)

  • 性能影响

    • 天线效率>50%可实现10米传输

    • 手机金属边框可能导致信号盲区


二、协议栈:看不见的通信规则

1. 控制器子系统(Controller Stack)

协议层功能实现类比说明
物理层(PHY)电磁波信号生成与解析摩尔斯电码发报机
链路层(LL)设备发现/连接管理/数据包封装快递包裹分拣中心
主机控制接口(HCI)硬件与软件的通信桥梁计算机的USB接口

2. 主机子系统(Host Stack)

  • L2CAP层

    • 数据分片重组(最大支持65535字节)

    • 协议复用(同时支持多个服务通道)

    • 生活场景:把大件家具拆成零件运输,到目的地再组装

  • ATT/GATT

    • 属性协议定义数据存储结构(如心率值=0x2A37)

    • 智能手表示例

      python

      复制

      # 伪代码示例
      if 读取UUID 0x2A37: 返回当前心率值
      if 写入UUID 0x2A19: 调整报警阈值

三、核心系统架构

1. 双模架构(BR/EDR + BLE)

  • 经典模式(BR/EDR)

    • 持续连接(如音响系统)

    • 功耗:约1mA(相当于LED指示灯)

  • 低功耗模式(BLE)

    • 事件驱动连接(如门锁)

    • 功耗:0.01mA(相当于电子表)

2. 网络拓扑

  • 星型网络(Piconet)

    Piconet示意图

    • 主设备:手机/电脑

    • 从设备:耳机/鼠标/键盘

  • 网状网络(Mesh)

    mermaid

    复制

    graph TDA[手机] --> B[客厅灯]B --> C[卧室灯]C --> D[厨房灯]D --> A

四、软件生态:让硬件活起来

1. 配置文件(Profile)

  • 通用配置

    • GAP(Generic Access Profile):设备可见性控制

    • SDAP(Service Discovery Application Profile):服务发现

  • 应用专用

    Profile名称功能典型设备
    A2DP高质量音频传输蓝牙音箱
    HID人机交互设备游戏手柄
    HOGP低功耗人机设备智能手表表冠

2. 开发框架

  • 嵌入式开发

    c

    复制

    // BLE广播示例代码
    void ble_advertise() {set_advertising_data("Device: SmartLock");set_scan_response("UUID: 0xFDAB");start_advertising();
    }
  • 移动端开发
    Android使用BluetoothGatt类,iOS使用CoreBluetooth框架


五、安全与能耗管理

1. 安全防护体系

  • 配对流程

    1. 临时密钥生成(类似一次性密码本)

    2. 双向认证(设备互相确认身份)

    3. 长期密钥存储(建立信任关系)

  • 攻击防御

    • 防中间人攻击:使用NFC辅助配对

    • 防重放攻击:每个数据包包含随机数

2. 功耗优化技术

  • 连接参数协商

    参数音频设备健康监测设备
    连接间隔15ms1s
    监控超时2s6s
  • 电源状态

    • Active模式:全功能运行(耗电大户)

    • Sniff模式:间歇性监听(类似打盹)

    • Hold模式:暂停连接(深度睡眠)


六、现实世界的系统协同

以智能家居场景为例

  1. 门锁(BLE Peripheral)

    • 持续广播UUID_0x1810(门锁服务)

    • 收到手机指令后通过GPIO控制电机

  2. 手机(Central)

    • 扫描到门锁信号强度RSSI>-70dBm

    • 通过ATT协议写入开锁指令

  3. 中继设备(Mesh Relay)

    • 自动转发数据包扩大覆盖范围

    • 采用泛洪传输确保可靠性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35309.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeRobot源码剖析——对机器人各个动作策略的统一封装:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 过去2年多的深入超过此前7年,全靠夜以继日的勤奋,一天当两天用,抠论文 抠代码 和大模型及具身同事讨论,是目前日常 而具身库里,idp3、π0、lerobot值得反复研究,故,近期我一直在抠π0及l…

ISP--Gamma Correction

文章目录 现象Gamma产生的原因CRT属性导致人眼的亮度特性 gamma校正LUT法线性插值法模拟gamma法 现象 从上往下看左侧黑色块黑得越来越严重,对比度也在逐渐加深。此时灰阶的高亮区获得的数据位变少,暗区获得的数据位变多,暗区细节会更多。但是…

光谱相机识别瓶子材质的技术原理和应用案例

一、技术原理 ‌光谱特征差异识别‌ 不同材质的塑料(如PET、PP、PE等)因化学结构差异,在近红外或可见光波段会呈现独特的光谱反射曲线。例如,高光谱相机通过分析数百个窄波段的光谱数据,可生成每种材质的“光谱指纹”…

某快餐店用户市场数据挖掘与可视化

1、必要库的载入 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns2、加载并清洗数据 # 2.1 加载数据 df pd.read_csv(/home/mw/input/survey6263/mcdonalds.csv)# 2.2 数据清洗 # 2.2.1 检查缺失值 print(缺失值情况:) print(df.isn…

MySQL 衍生表(Derived Tables)

在SQL的查询语句select …. from …中,跟在from子句后面的通常是一张拥有定义的实体表,而有的时候我们会用子查询来扮演实体表的角色,这个在from子句中的子查询会返回一个结果集,这个结果集可以像普通的实体表一样查询、连接&…

Electron使用WebAssembly实现CRC-16 MAXIM校验

Electron使用WebAssembly实现CRC-16 MAXIM校验 将C/C语言代码,经由WebAssembly编译为库函数,可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-16 MAXIM格式校验的方式。 CRC-16 MAXIM校验函数WebAssembly源文件 C语言实…

HTB 学习笔记 【中/英】《前端 vs. 后端》P3

📌 这篇文章讲了什么? 介绍了 前端(客户端) 和 后端(服务器端) 的区别。解释了 全栈开发(Full Stack Development),即前端后端开发。介绍了 前端和后端常用的技术。讨论…

SpringBoot集成ElasticSearch实现支持错别字检索和关键字高亮的模糊查询

文章目录 一、背景二、环境准备1.es8集群2.Kibana3.Canal 三、集成到SpringBoot1.新增依赖2.es配置类3.建立索引4.修改查询方法 四、修改前端 一、背景 我们在开发项目的搜索引擎的时候,如果当数据量庞大、同时又需要支持全文检索模糊查询,甚至你想做到…

麒麟系统使用-安装 SQL Developer

文章目录 前言一、基础准备1.基本环境2.相关包下载 二、进行相关配置1.配置JAVA2.配置SQL Developer 总结 前言 作为我国自主研发的操作系统,麒麟系统在使用时需要考虑安装相应的app。尽管麒麟系统是基于linux开发,可由于版本的一些差异,麒麟…

PrimeTime:timing_report_unconstrained_paths变量

相关阅读 PrimeTimehttps://blog.csdn.net/weixin_45791458/category_12900271.html?spm1001.2014.3001.5482 PrimeTime自Q-2019.12版本起引入了timing_report_unconstrained_paths变量(默认值为false),该变量控制是否在使用report_timing命…

洛谷 P1115 最大子段和(前缀和详解)c++

题目链接:P1115 最大子段和 - 洛谷 1.题目分析 2.算法原理 解法:利用前缀和 思考:如何求出以a[i]为结尾的所有子区间中最大的子段和 假设 i 等于5,以 a[ i ] 为结尾的区间一共是五段(黑色线条部分)&#…

JetBrains(全家桶: IDEA、WebStorm、GoLand、PyCharm) 2024.3+ 2025 版免费体验方案

JetBrains(全家桶: IDEA、WebStorm、GoLand、PyCharm) 2024.3 2025 版免费体验方案 前言 JetBrains IDE 是许多开发者的主力工具,但从 2024.02 版本起,JetBrains 调整了试用政策,新用户不再享有默认的 30 天免费试用…

【数据分析】数据筛选与访问行列元素3

访问元素 .loc属性可以通过传入index的值访问行数据。 .loc属性允许传入两个参数,分别是index的值和columns的值,参数间用“逗号”隔开,这样便可以访问数据中的元素。 1. 访问单个元素 访问单个元素比较简单,只需要通过它的in…

C++ std::list超详细指南:基础实践(手搓list)

目录 一.核心特性 1.双向循环链表结构 2.头文件:#include 3.时间复杂度 4.内存特性 二.构造函数 三.list iterator的使用 1.学习list iterator之前我们要知道iterator的区分 ​编辑 2.begin()end() 3.rbegin()rend() 四.list关键接口 1.empty() 2. size…

【免费】2004-2017年各地级市进出口总额数据

2004-2017年各地级市进出口总额数据 1、时间:2004-2017年 2、来源:城市年鉴 3、指标:进出口贸易总额 4、范围:286个地级市 5、指标说明:进出口总额是指一个国家在特定时期内(通常为一年)所…

谈谈 undefined 和 null

*** 补充 null 和 ‘’

【第15届蓝桥杯】软件赛CB组省赛

个人主页:Guiat 归属专栏:算法竞赛真题题解 文章目录 A. 握手问题(填空题)B. 小球反弹(填空题)C. 好数D. R格式E. 宝石组合F. 数字接龙G. 爬山H. 拔河 正文 总共8道题。 A. 握手问题(填空题&…

【计算机视觉】工业表计读数(2)--表计检测

1. 简介 工业表计(如压力表、电表、气表等)在工控系统、能源管理等领域具有重要应用。然而,传统人工抄表不仅工作量大、效率低,而且容易产生数据误差。近年来,基于深度学习的目标检测方法在工业检测中展现出极大优势&…

提示词工程(Prompt Engineering)

https://www.bilibili.com/video/BV1PX9iYQEry 一、懂原理,要知道 为什么有的指令有效,有的指令无效为什么同样的指令有时有效,又是无效怎么提升指令有效的概率 大模型应用架构师想什么? 怎样能更准确?答&#xff1…

从Instagram到画廊:社交平台如何改变艺术家的展示方式

从Instagram到画廊:社交平台如何改变艺术家的展示方式 在数字时代,艺术家的展示方式正在经历一场革命。社交平台,尤其是Instagram,已经成为艺术家展示作品、与观众互动和建立品牌的重要渠道。本文将探讨社交平台如何改变艺术家的…