1. 前言
从今天开始,我们要去剖析蓝牙协议了。
本文将分享开搞前需要先了解什么以及怎样去了解。
本专栏基于蓝牙核心文档 CORE 5.2,下载地址。
2. 核心文档目录
可以看到文档中总共有7卷,如图所示:
翻译成中文是这几个意思:
- 架构
- BR/EDR 控制器(BR/EDR指的是基本码率和增强码率)
- 主机
- 主机控制器接口
- Alternate MAC/PHYs (AMP) 控制器
- 低功耗控制器
- 无线共存
接下里我们将对每个卷进行简单的介绍,然后分享该如何去阅读它们。
3. 架构
该章节分为6个Part,需要重点关注Part A,其它Part基本算是了解的信息。
我们需要对蓝牙协议的架构有足够的了解,因为了解整个框架,才知道学习的重点在哪里。
4. BR/EDR 控制器
该章节分为8个Part,我认为初学者可以不用太纠结这部分的内容,因为这部分的实现是比较底层的。如果你是蓝牙应用开发者,建议放在HOST章节之后学习,甚至永远都放弃,实在用不到,因为这部分通常是芯片厂商干的活。
5. 主机
该章节是学习的重中之重,蓝牙协议的应用部分,平时作业的大部分内容都在这里,每个蓝牙开发者都应该要比较清楚这里的内容。总共分为8个Part,主要学习A B C F G H,额…好像全部都需要认真看。
6. 主机控制器接口
该章节描述了主机和控制器两个协议层之间的通讯接口,可以作为了解的部分,该部分也一般被蓝牙厂商所完成。
7. AMP 控制器
Alternate MAC/PHYs (AMP)是蓝牙核心系统的次要控制器(secondary Controllers)。BR/EDR的主要控制器用作搜索,配对,连接建立,连接维持。当两个BR/EDR蓝牙设备L2CAP连接建立后,AMP管理器能检测到另外一个设备的AMP管理器。当两个蓝牙设备都有AMP控制器,蓝牙核心系统提供一种机制,让数据流从主要控制器迁移到次要控制器。
每个AMP控制器一个协议适配层( Protocol Adaptation Layer,简称PAL)。在协议栈分层架构图中,PAL在MAC和PHY层之上。PAL的功能职责是把主控制器中的蓝牙协议映射到AMP控制器中去。
L2CAP通道可能创建到或者迁移到AMP控制器。当AMP功能不再需要或者AMP物理连接通信超时,L2CAP通道可能会迁移回BR/EDR主控制器。如果两个BR/EDR设备之间的ACL通信超时,那么所有AMP物理连接会全部断开。
AMP控制器可能被关闭,目的是降低功耗。
该部分可作为了解的部分,蓝牙应用开发者一般用不到。
8. 低功耗控制器
该部分为7个Part,是低功耗蓝牙的协议部分,如果你是一个BLE开发者,该部分应成为学习的重点。
9. 无线共存
有时候同一个天线需要同时适配两种协议,比如蓝牙和WIFI等。
10. 写在最后
朋友们,学习蓝牙又苦又累,要做好足够的准备。合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。
在学习过程中,建议先了解蓝牙架构(该背的要背),再做做一些比较基础的应用(可以去某宝买开发板,这样上手比较快),慢慢地了解基本概念,等那些概念心里都有大概了,再一点一点得去抠协议文档。
持续关注本专栏,一起剖析蓝牙协议。