蓝牙通信技术基础
章节导入
蓝牙通信是物联网与嵌入式面试的常考模块,核心考察协议栈分层理解、BR/EDR与BLE差异、物理层与链路层机制。面试官通常从“宏观架构”切入,追问“微观参数”(如速率、功耗、连接流程)。本章节用一张架构对比图 + 三个高频问答卡片,帮你快速建立知识骨架与应答逻辑。
知识结构:蓝牙协议栈分层与双模对比
| 层级 | BR/EDR(经典蓝牙) | BLE(低功耗蓝牙) |
|---|---|---|
| 物理层 | 79个1MHz频道,GFSK调制 | 40个2MHz频道,GFSK + LE Coded (500k/125k) |
| 链路层 | LMP + L2CAP(传统) | LL + L2CAP(精简)、广播模式 + 连接状态机 |
| ATT/GATT | AVDTP、RFCOMM(上层) | 属性协议 + 通用属性配置文件 |
| 应用场景 | 音频流、文件传输(~3Mbps) | IoT传感器、Beacon(~1Mbps/2Mbps) |
| 连接建立 | 查询 → 寻呼 → 连接(约10s) | 广播 → SCAN → 发起连接(<3ms) |
面试问答卡片
问题1:请描述蓝牙协议栈的架构分层,并说明各层的主要职责。
考察点:协议栈整体认知、分层思维、对 Host-Controller 架构的理解。
回答框架:总→分→总。先概括协议栈由“Controller(PHY/LL)+ Host(L2CAP/SM/ATT/GATT)+ Apps”组成,然后分三层简述,最后强调分层解耦对调试/测试的意义。
示例回答:蓝牙协议栈采用HCI接口分为Controller和Host。Controller包含RF物理层(2.4GHz、79/40频道)和链路层(LMP/LL);Host包含L2CAP(数据包分段重组)、安全管理(SM)以及ATT/GATT定义属性交互。应用层通过Profile(如HFP、ANP)调用。这种分层让芯片厂商和OS厂商独立开发、便于兼容。
可能追问:1) HCI接口传输方式有哪些?2) L2CAP协议如何实现MTU协商?3) 为什么BLE没有BR/EDR的LMP而用LL?
避坑提醒:不要混淆“规范层(Core/Profiles)”与“协议层”。很多面试官会细问GATT结构,建议提前掌握Service/Characteristic树状图。
问题2:BR/EDR和BLE有哪些核心区别?各自适合什么场景?
考察点:双模技术差异理解、选型思维、对功耗/速率/延迟的权衡。
回答框架:先点明“双模共享RF但使用不同协议栈”,然后从频道数、调制速率、连接方式、功耗、应用场景五个维度对比。
示例回答:BR/EDR使用79个1MHz频道,速率达3Mbps,适合持续传输的音频(HSP/HFP)和文件(OPP);BLE改用40个2MHz频道,速率1Mbps(可扩展2Mbps),支持广播和极短连接,功耗降低90%以上,适合传感器、Beacon、医疗设备。两者可通过双模芯片共存,但连接流程完全不同:BR/EDR需寻呼配对,BLE直接广播扫描发起。
可能追问:1) BLE 5.0/5.1/5.2相比4.x有哪些新特性?2) 如何实现BR/EDR与BLE的共存调度?3) 为什么BLE不支持语音?
避坑提醒:不要只背参数,要体现“为什么BLE省电”——比如连接事件数、广播间隔、电源管理策略。面试官希望听到你对功耗机制的理解。
问题3:蓝牙物理层和链路层的关键技术是什么?请结合跳频机制说明。
考察点:底层原理理解、干扰规避机制、听你是否真正参与过底层调试或阅读过Core Spec。
回答框架:物理层→频道与调制→自适应跳频(AFH)触发条件与实现流程→链路层设备角色状态机。
示例回答:物理层使用2.4G ISM频段,BR/EDR分79个1MHz频道(1-79),BLE用40个2MHz频道(0-39);采用GFSK调制。AFH蓝牙主机检测到Wi-Fi或干扰后标记“坏频道”,链路管理器在信道映射中排除这些频道,并用伪随机序列跳转,保证与Wi-Fi共存。链路层负责设备角色切换(主从)、连接建立和包传输,LMP/LL控制同步和功率管理。
可能追问:1) 如何实现AFH频点检测?需要多少RSSI样本?2) BLE的跳频与BR/EDR有什么不同?3) 物理层Coded PHY的工作原理?
避坑提醒:不要只背概念,建议结合自己的项目(如开发板连接手机)讲实际遇到过跳频失败的问题。如果没做过,可以说“我在学习Core Spec Vol.6时,注意到了AFH Channel Classification的具体步骤”。